{"version":3,"file":"js/chunk-vendors.cd0b9c3c.js","mappings":"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MAAM,IAChB0P,EAAM,IAAI1P,MAAM,KAChBgT,EAAgB,IAAIhT,MAAM,MAG1B6P,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,IAGEP,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEuC,EAA0B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC7DpD,EAA2B,CAC7B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE6B,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,KAGEyD,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,GAEEnC,EAA4B,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAC/D+C,EAA6B,CAC/B,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,KAEE5E,EAA4B,CAC9B,EACA,EACA,EACA,EACA,GACA,EACA,EACA,GACA,GACA,EACA,GACA,GACA,GACA,EACA,GACA,IACA,GACA,GACA,GACA,IACA,EACA,GACA,GACA,IACA,IACA,IACA,IACA,EACA,GACA,GACA,GACA,IACA,GACA,GACA,IACA,IACA,GACA,GACA,GACA,GACA,IACA,GACA,IACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,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AGA,GAAYT,IAAOS,EACxCuF,EAAU3T,GACZiO,GAAsB,GAExBzN,EAAM,MAAQ8C,EAAGL,GACjB0Q,EAAU9T,GAAMoO,GAAY,GAAKR,EAASjN,KAC1CmT,EAAUtQ,EAAQ7C,IAClByC,GAAA,QA5CQ,IA8CN2K,GACF+F,EAAU9S,GAEL3B,CAAA,UA8HAo6C,EAAW16C,GAClBA,EAAUkO,KAAK2O,IAAI3O,KAAKyO,IAAI3c,EAAS,GAAI,KAErC4B,GAAkB5B,IAAA,SA1qBCA,GAAA,QACnBC,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,IAGOK,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvBuB,EAAII,GAAQhC,EAAIK,GAAKN,EAAK,IAAM,KACpC6B,EAAIqM,KAAK2O,IAAI3O,KAAKyO,IAAI9a,EAAG,GAAI,KAC7BT,EAAO8O,EAAO5P,IAAMuB,CAAA,SAElBZ,EAAO,CACT,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAEOW,EAAI,EAAGA,EAAI,GAAIA,IAAK,KACvB6C,EAAIxC,GAAQhB,EAAKW,GAAK5B,EAAK,IAAM,KACrCyE,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,IAAIhd,EAAEyvM,IAAA,IACjB5gM,EAAIX,KAAK8O,IAAIhd,EAAEwvM,IACf9gM,EAAIR,KAAK8O,IAAIhd,EAAEuvM,IACf7qM,EAAIgK,GAAKtN,EAAI,GAAKa,EACpBhC,GAAK0O,GAAKvN,EAAI,GAAKa,GAAKjC,EAAEsvM,GAC1BrvM,GAAKuC,GAAKiC,EAAI,GAAKmK,GAAK5O,EAAEqvM,GAE1BpvM,GADAA,GAAK4O,GAAKpK,EAAI,GAAKmK,GAAK5O,EAAEovM,IACjBzgM,GAAK1M,EAAMO,GAAKoM,EAAMC,GAAKD,EACpC3O,GAAK,MAAQD,EAAEqP,EACfpP,GAAK,MAAQD,EAAE6O,EACf5O,GAAK,MAAQD,EAAEkvM,GAAA,IACTjuM,IAAOhB,GAAKyO,GAAKzM,EAAKhC,GAAKyE,GAAK1E,EAAEmvM,GAAMlvM,GAAK,MAAQD,EAAEgV,EAAA,MAE5D/U,EAAI,EACTD,EAAIC,EAAI,EAAI,UAGZ,GAAKD,GAAA,MACDM,GAAKA,EAAE+qK,KAAOrrK,EAAI81L,GAAGj0L,IADV7B,CAAA,KAIjB21L,GAAK,GACPxU,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,UAEFyU,GAAK,GACL0Y,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,GAEJ55L,EAAE,aAAc,iBAChB5U,EAAKu/M,WAAa,kBACT,YAETv/M,EAAKw/M,WAAa,SAASx/M,GAAA,OAClBA,CAAA,EAETA,EAAKy/M,WAAa,SAASz/M,EAAGC,EAAGK,GAAA,OACxBL,EAAEK,EAAI,IAEfN,EAAK0/M,WAAa,SAAS1/M,EAAGC,EAAGK,GAAA,OACxBL,EAAEK,EAAI,IAEfN,EAAK2/M,WAAa,SAAS3/M,EAAGC,EAAGK,GAAA,OACxBL,EAAEK,EAAI,IAEfN,EAAK4/M,WAAa,SAAS5/M,EAAGC,EAAGK,GAAA,O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M,EAAE,KACPg7M,GAAKh7M,EAAE,MACPi7M,GAAKj7M,EAAE,KACPk7M,GAAKl7M,EAAE,KACP86M,GAAK,EACLuB,GAAKrB,GACL1hB,GAAK2hB,GACLmB,GAAIlB,GACJoB,GAAIvB,GACJ9I,GAAK,EACLvC,GAAK,EACL0C,GAAK,EACLzC,GAAK,EACLN,GAAK,EACLO,GAAK,EACL2C,GAAK,EACLrF,GAAK,EACLC,GAAK,EACLC,GAAK,EACLC,GAAK,GACL0G,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,IACpEhD,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,KAEF8C,GAAK,CACH,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEFljL,GAAK,EACL2pL,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,IA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IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,OAGvD,CACE,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAErD,CACE,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACnD,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAEr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2ZNuK,GAAA,EACA5O,EAAO2P,EAAS3P,EAAMC,EAAmBK,GACzCsO,EAAuB/M,IAGvBwC,EAhaM,EAiaNrE,EAAO2P,EAAS3P,EAAMC,EAAmBK,GACzCN,EAAO+P,EAAc/P,EAAMC,GAC3BoE,EAlaM,EAmaNuK,GAAA,EACA5O,EAAO2P,EAAS3P,EAAMC,EAAmBK,GACzCsO,EAAuB/M,EACvB7B,EAAO+P,EAAc/P,EAAMC,GAAA,OAxC7BoE,EA/XQ,EAgYRrE,EAAO2P,EAAS3P,EAAMC,EAAmBK,QAdzC+D,EAAOzC,EAjXC,EADA,EAmXR5B,EAAO2P,EAAS3P,EAAMC,EAAmBK,GAAA,OAuDpCN,CAAA,OAcJ0rN,eAAenqJ,WAAa,SAASvhE,GACpCA,IACFiB,EAAcjB,EAAQ+rN,cACtB9pN,EAAejC,EAAQgsN,eACvBpqN,EAAW5B,EAAQisN,WACnB7qN,EAAYpB,EAAQksN,YACpBt9M,EAAuB5O,EAAQmsN,oBAAA,OAI9BT,eAAenqJ,WAAWvhE,GACxBsB,KAAKoqN,cAAA,MAGVzrN,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,IA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IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,IAAQ,EACR,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","sources":["webpack://ixsight/../node_modules/tslib/tslib.es6.js","webpack://ixsight/../node_modules/@lit/reactive-element/css-tag.js","webpack://ixsight/../node_modules/@lit/reactive-element/reactive-element.js","webpack://ixsight/../node_modules/lit-html/lit-html.js","webpack://ixsight/../node_modules/lit-element/lit-element.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/custom-element.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/property.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/state.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/base.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/event-options.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/query.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/query-all.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/query-async.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","webpack://ixsight/../node_modules/@lit/reactive-element/decorators/query-assigned-nodes.js","webpack://ixsight/../node_modules/lottie-web/build/player/lottie.js","webpack://ixsight/../src/lottie-player.styles.ts","webpack://ixsight/../src/versions.ts","webpack://ixsight/../src/lottie-player.ts","webpack://ixsight/./node_modules/highcharts/highcharts-more.js","webpack://ixsight/./node_modules/highcharts/highcharts.js","webpack://ixsight/./node_modules/highcharts/modules/exporting.js","webpack://ixsight/../node_modules/src/Util.ts","webpack://ixsight/../src/css/layout/bounds.ts","webpack://ixsight/../node_modules/css-line-break/node_modules/src/Util.ts","webpack://ixsight/../node_modules/css-line-break/node_modules/utrie/node_modules/src/index.ts","webpack://ixsight/../node_modules/css-line-break/node_modules/src/Trie.ts","webpack://ixsight/../node_modules/src/linebreak-trie.ts","webpack://ixsight/../node_modules/src/LineBreak.ts","webpack://ixsight/../src/css/syntax/tokenizer.ts","webpack://ixsight/../src/css/syntax/parser.ts","webpack://ixsight/../src/css/types/length.ts","webpack://ixsight/../src/css/types/length-percentage.ts","webpack://ixsight/../src/css/types/angle.ts","webpack://ixsight/../src/css/types/color.ts","webpack://ixsight/../src/css/property-descriptors/background-clip.ts","webpack://ixsight/../src/css/property-descriptors/background-color.ts","webpack://ixsight/../src/css/types/functions/gradient.ts","webpack://ixsight/../src/css/types/functions/linear-gradient.ts","webpack://ixsight/../src/css/types/functions/-prefix-linear-gradient.ts","webpack://ixsight/../src/css/types/functions/-webkit-gradient.ts","webpack://ixsight/../src/css/types/functions/radial-gradient.ts","webpack://ixsight/../src/css/types/functions/-prefix-radial-gradient.ts","webpack://ixsight/../src/css/types/image.ts","webpack://ixsight/../src/css/property-descriptors/background-size.ts","webpack://ixsight/../src/css/property-descriptors/background-image.ts","webpack://ixsight/../src/css/property-descriptors/background-origin.ts","webpack://ixsight/../src/css/property-descriptors/background-position.ts","webpack://ixsight/../src/css/property-descriptors/background-repeat.ts","webpack://ixsight/../src/css/property-descriptors/line-break.ts","webpack://ixsight/../src/css/property-descriptors/border-color.ts","webpack://ixsight/../src/css/property-descriptors/border-radius.ts","webpack://ixsight/../src/css/property-descriptors/border-style.ts","webpack://ixsight/../src/css/property-descriptors/border-width.ts","webpack://ixsight/../src/css/property-descriptors/color.ts","webpack://ixsight/../src/css/property-descriptors/direction.ts","webpack://ixsight/../src/css/property-descriptors/display.ts","webpack://ixsight/../src/css/property-descriptors/float.ts","webpack://ixsight/../src/css/property-descriptors/letter-spacing.ts","webpack://ixsight/../src/css/property-descriptors/word-break.ts","webpack://ixsight/../src/css/property-descriptors/line-height.ts","webpack://ixsight/../src/css/property-descriptors/list-style-image.ts","webpack://ixsight/../src/css/property-descriptors/list-style-position.ts","webpack://ixsight/../src/css/property-descriptors/list-style-type.ts","webpack://ixsight/../src/css/property-descriptors/margin.ts","webpack://ixsight/../src/css/property-descriptors/overflow.ts","webpack://ixsight/../src/css/property-descriptors/overflow-wrap.ts","webpack://ixsight/../src/css/property-descriptors/padding.ts","webpack://ixsight/../src/css/property-descriptors/text-align.ts","webpack://ixsight/../src/css/property-descriptors/position.ts","webpack://ixsight/../src/css/property-descriptors/text-shadow.ts","webpack://ixsight/../src/css/property-descriptors/text-transform.ts","webpack://ixsight/../src/css/property-descriptors/transform.ts","webpack://ixsight/../src/css/property-descriptors/transform-origin.ts","webpack://ixsight/../src/css/property-descriptors/visibility.ts","webpack://ixsight/../node_modules/text-segmentation/node_modules/src/Util.ts","webpack://ixsight/../src/css/property-descriptors/z-index.ts","webpack://ixsight/../src/css/types/time.ts","webpack://ixsight/../src/css/property-descriptors/opacity.ts","webpack://ixsight/../src/css/property-descriptors/text-decoration-color.ts","webpack://ixsight/../src/css/property-descriptors/text-decoration-line.ts","webpack://ixsight/../src/css/property-descriptors/font-family.ts","webpack://ixsight/../src/css/property-descriptors/font-size.ts","webpack://ixsight/../src/css/property-descriptors/font-weight.ts","webpack://ixsight/../src/css/property-descriptors/font-variant.ts","webpack://ixsight/../src/css/property-descriptors/font-style.ts","webpack://ixsight/../src/core/bitwise.ts","webpack://ixsight/../src/css/property-descriptors/content.ts","webpack://ixsight/../src/css/property-descriptors/counter-increment.ts","webpack://ixsight/../src/css/property-descriptors/counter-reset.ts","webpack://ixsight/../src/css/property-descriptors/duration.ts","webpack://ixsight/../src/css/property-descriptors/quotes.ts","webpack://ixsight/../src/css/property-descriptors/box-shadow.ts","webpack://ixsight/../src/css/property-descriptors/paint-order.ts","webpack://ixsight/../src/css/property-descriptors/webkit-text-stroke-color.ts","webpack://ixsight/../src/css/property-descriptors/webkit-text-stroke-width.ts","webpack://ixsight/../src/css/index.ts","webpack://ixsight/../src/core/debugger.ts","webpack://ixsight/../src/dom/element-container.ts","webpack://ixsight/../node_modules/src/grapheme-break-trie.ts","webpack://ixsight/../node_modules/text-segmentation/node_modules/utrie/node_modules/src/index.ts","webpack://ixsight/../node_modules/text-segmentation/node_modules/src/Trie.ts","webpack://ixsight/../node_modules/src/GraphemeBreak.ts","webpack://ixsight/../src/dom/document-cloner.ts","webpack://ixsight/../src/core/features.ts","webpack://ixsight/../src/css/layout/text.ts","webpack://ixsight/../src/dom/text-container.ts","webpack://ixsight/../src/dom/replaced-elements/image-element-container.ts","webpack://ixsight/../src/dom/replaced-elements/canvas-element-container.ts","webpack://ixsight/../src/dom/replaced-elements/svg-element-container.ts","webpack://ixsight/../src/dom/elements/li-element-container.ts","webpack://ixsight/../src/dom/elements/ol-element-container.ts","webpack://ixsight/../src/dom/replaced-elements/input-element-container.ts","webpack://ixsight/../src/dom/elements/select-element-container.ts","webpack://ixsight/../src/dom/elements/textarea-element-container.ts","webpack://ixsight/../src/dom/replaced-elements/iframe-element-container.ts","webpack://ixsight/../src/dom/node-parser.ts","webpack://ixsight/../src/css/types/functions/counter.ts","webpack://ixsight/../src/render/bound-curves.ts","webpack://ixsight/../src/core/cache-storage.ts","webpack://ixsight/../src/render/vector.ts","webpack://ixsight/../src/render/bezier-curve.ts","webpack://ixsight/../src/render/effects.ts","webpack://ixsight/../src/render/path.ts","webpack://ixsight/../src/render/stacking-context.ts","webpack://ixsight/../src/render/border.ts","webpack://ixsight/../src/render/box-sizing.ts","webpack://ixsight/../src/render/background.ts","webpack://ixsight/../src/core/util.ts","webpack://ixsight/../src/render/font-metrics.ts","webpack://ixsight/../src/render/renderer.ts","webpack://ixsight/../src/render/canvas/canvas-renderer.ts","webpack://ixsight/../src/render/canvas/foreignobject-renderer.ts","webpack://ixsight/../src/core/logger.ts","webpack://ixsight/../src/core/context.ts","webpack://ixsight/../src/index.ts","webpack://ixsight/./node_modules/fflate/esm/browser.js","webpack://ixsight/../src/libs/globalObject.js","webpack://ixsight/../src/libs/console.js","webpack://ixsight/../src/libs/FileSaver.js","webpack://ixsight/../src/libs/AtobBtoa.js","webpack://ixsight/../src/libs/rgbcolor.js","webpack://ixsight/../src/libs/md5.js","webpack://ixsight/../src/libs/rc4.js","webpack://ixsight/../src/libs/pdfsecurity.js","webpack://ixsight/../src/libs/pdfname.js","webpack://ixsight/../src/jspdf.js","webpack://ixsight/../src/modules/acroform.js","webpack://ixsight/../src/libs/fontFace.js","webpack://ixsight/../src/modules/addimage.js","webpack://ixsight/../src/modules/annotations.js","webpack://ixsight/../src/modules/arabic.js","webpack://ixsight/../src/modules/autoprint.js","webpack://ixsight/../src/modules/canvas.js","webpack://ixsight/../src/modules/cell.js","webpack://ixsight/../src/modules/javascript.js","webpack://ixsight/../src/modules/context2d.js","webpack://ixsight/../src/modules/filters.js","webpack://ixsight/../src/modules/fileloading.js","webpack://ixsight/../src/modules/html.js","webpack://ixsight/../src/modules/outline.js","webpack://ixsight/../src/modules/jpeg_support.js","webpack://ixsight/../src/libs/png.js","webpack://ixsight/../src/modules/split_text_to_size.js","webpack://ixsight/../src/libs/omggif.js","webpack://ixsight/../src/libs/JPEGEncoder.js","webpack://ixsight/../src/libs/BMPDecoder.js","webpack://ixsight/../src/libs/WebPDecoder.js","webpack://ixsight/../src/modules/png_support.js","webpack://ixsight/../src/modules/gif_support.js","webpack://ixsight/../src/modules/bmp_support.js","webpack://ixsight/../src/modules/webp_support.js","webpack://ixsight/../src/modules/rgba_support.js","webpack://ixsight/../src/modules/setlanguage.js","webpack://ixsight/../src/modules/standard_fonts_metrics.js","webpack://ixsight/../src/modules/ttfsupport.js","webpack://ixsight/../src/modules/svg.js","webpack://ixsight/../src/modules/total_pages.js","webpack://ixsight/../src/modules/viewerpreferences.js","webpack://ixsight/../src/modules/xmp_metadata.js","webpack://ixsight/../src/modules/utf8.js","webpack://ixsight/../src/modules/vfs.js","webpack://ixsight/../src/libs/bidiEngine.js","webpack://ixsight/../src/libs/ttffont.js","webpack://ixsight/./node_modules/lodash.debounce/index.js","webpack://ixsight/./node_modules/moment/locale/af.js","webpack://ixsight/./node_modules/moment/locale/ar-dz.js","webpack://ixsight/./node_modules/moment/locale/ar-kw.js","webpack://ixsight/./node_modules/moment/locale/ar-ly.js","webpack://ixsight/./node_modules/moment/locale/ar-ma.js","webpack://ixsight/./node_modules/moment/locale/ar-ps.js","webpack://ixsight/./node_modules/moment/locale/ar-sa.js","webpack://ixsight/./node_modules/moment/locale/ar-tn.js","webpack://ixsight/./node_modules/moment/locale/ar.js","webpack://ixsight/./node_modules/moment/locale/az.js","webpack://ixsight/./node_modules/moment/locale/be.js","webpack://ixsight/./node_modules/moment/locale/bg.js","webpack://ixsight/./node_modules/moment/locale/bm.js","webpack://ixsight/./node_modules/moment/locale/bn-bd.js","webpack://ixsight/./node_modules/moment/locale/bn.js","webpack://ixsight/./node_modules/moment/locale/bo.js","webpack://ixsight/./node_modules/moment/locale/br.js","webpack://ixsight/./node_modules/moment/locale/bs.js","webpack://ixsight/./node_modules/moment/locale/ca.js","webpack://ixsight/./node_modules/moment/locale/cs.js","webpack://ixsight/./node_modules/moment/locale/cv.js","webpack://ixsight/./node_modules/moment/locale/cy.js","webpack://ixsight/./node_modules/moment/locale/da.js","webpack://ixsight/./node_modules/moment/locale/de-at.js","webpack://ixsight/./node_modules/moment/locale/de-ch.js","webpack://ixsight/./node_modules/moment/locale/de.js","webpack://ixsight/./node_modules/moment/locale/dv.js","webpack://ixsight/./node_modules/moment/locale/el.js","webpack://ixsight/./node_modules/moment/locale/en-au.js","webpack://ixsight/./node_modules/moment/locale/en-ca.js","webpack://ixsight/./node_modules/moment/locale/en-gb.js","webpack://ixsight/./node_modules/moment/locale/en-ie.js","webpack://ixsight/./node_modules/moment/locale/en-il.js","webpack://ixsight/./node_modules/moment/locale/en-in.js","webpack://ixsight/./node_modules/moment/locale/en-nz.js","webpack://ixsight/./node_modules/moment/locale/en-sg.js","webpack://ixsight/./node_modules/moment/locale/eo.js","webpack://ixsight/./node_modules/moment/locale/es-do.js","webpack://ixsight/./node_modules/moment/locale/es-mx.js","webpack://ixsight/./node_modules/moment/locale/es-us.js","webpack://ixsight/./node_modules/moment/locale/es.js","webpack://ixsight/./node_modules/moment/locale/et.js","webpack://ixsight/./node_modules/moment/locale/eu.js","webpack://ixsight/./node_modules/moment/locale/fa.js","webpack://ixsight/./node_modules/moment/locale/fi.js","webpack://ixsight/./node_modules/moment/locale/fil.js","webpack://ixsight/./node_modules/moment/locale/fo.js","webpack://ixsight/./node_modules/moment/locale/fr-ca.js","webpack://ixsight/./node_modules/moment/locale/fr-ch.js","webpack://ixsight/./node_modules/moment/locale/fr.js","webpack://ixsight/./node_modules/moment/locale/fy.js","webpack://ixsight/./node_modules/moment/locale/ga.js","webpack://ixsight/./node_modules/moment/locale/gd.js","webpack://ixsight/./node_modules/moment/locale/gl.js","webpack://ixsight/./node_modules/moment/locale/gom-deva.js","webpack://ixsight/./node_modules/moment/locale/gom-latn.js","webpack://ixsight/./node_modules/moment/locale/gu.js","webpack://ixsight/./node_modules/moment/locale/he.js","webpack://ixsight/./node_modules/moment/locale/hi.js","webpack://ixsight/./node_modules/moment/locale/hr.js","webpack://ixsight/./node_modules/moment/locale/hu.js","webpack://ixsight/./node_modules/moment/locale/hy-am.js","webpack://ixsight/./node_modules/moment/locale/id.js","webpack://ixsight/./node_modules/moment/locale/is.js","webpack://ixsight/./node_modules/moment/locale/it-ch.js","webpack://ixsight/./node_modules/moment/locale/it.js","webpack://ixsight/./node_modules/moment/locale/ja.js","webpack://ixsight/./node_modules/moment/locale/jv.js","webpack://ixsight/./node_modules/moment/locale/ka.js","webpack://ixsight/./node_modules/moment/locale/kk.js","webpack://ixsight/./node_modules/moment/locale/km.js","webpack://ixsight/./node_modules/moment/locale/kn.js","webpack://ixsight/./node_modules/moment/locale/ko.js","webpack://ixsight/./node_modules/moment/locale/ku-kmr.js","webpack://ixsight/./node_modules/moment/locale/ku.js","webpack://ixsight/./node_modules/moment/locale/ky.js","webpack://ixsight/./node_modules/moment/locale/lb.js","webpack://ixsight/./node_modules/moment/locale/lo.js","webpack://ixsight/./node_modules/moment/locale/lt.js","webpack://ixsight/./node_modules/moment/locale/lv.js","webpack://ixsight/./node_modules/moment/locale/me.js","webpack://ixsight/./node_modules/moment/locale/mi.js","webpack://ixsight/./node_modules/moment/locale/mk.js","webpack://ixsight/./node_modules/moment/locale/ml.js","webpack://ixsight/./node_modules/moment/locale/mn.js","webpack://ixsight/./node_modules/moment/locale/mr.js","webpack://ixsight/./node_modules/moment/locale/ms-my.js","webpack://ixsight/./node_modules/moment/locale/ms.js","webpack://ixsight/./node_modules/moment/locale/mt.js","webpack://ixsight/./node_modules/moment/locale/my.js","webpack://ixsight/./node_modules/moment/locale/nb.js","webpack://ixsight/./node_modules/moment/locale/ne.js","webpack://ixsight/./node_modules/moment/locale/nl-be.js","webpack://ixsight/./node_modules/moment/locale/nl.js","webpack://ixsight/./node_modules/moment/locale/nn.js","webpack://ixsight/./node_modules/moment/locale/oc-lnc.js","webpack://ixsight/./node_modules/moment/locale/pa-in.js","webpack://ixsight/./node_modules/moment/locale/pl.js","webpack://ixsight/./node_modules/moment/locale/pt-br.js","webpack://ixsight/./node_modules/moment/locale/pt.js","webpack://ixsight/./node_modules/moment/locale/ro.js","webpack://ixsight/./node_modules/moment/locale/ru.js","webpack://ixsight/./node_modules/moment/locale/sd.js","webpack://ixsight/./node_modules/moment/locale/se.js","webpack://ixsight/./node_modules/moment/locale/si.js","webpack://ixsight/./node_modules/moment/locale/sk.js","webpack://ixsight/./node_modules/moment/locale/sl.js","webpack://ixsight/./node_modules/moment/locale/sq.js","webpack://ixsight/./node_modules/moment/locale/sr-cyrl.js","webpack://ixsight/./node_modules/moment/locale/sr.js","webpack://ixsight/./node_modules/moment/locale/ss.js","webpack://ixsight/./node_modules/moment/locale/sv.js","webpack://ixsight/./node_modules/moment/locale/sw.js","webpack://ixsight/./node_modules/moment/locale/ta.js","webpack://ixsight/./node_modules/moment/locale/te.js","webpack://ixsight/./node_modules/moment/locale/tet.js","webpack://ixsight/./node_modules/moment/locale/tg.js","webpack://ixsight/./node_modules/moment/locale/th.js","webpack://ixsight/./node_modules/moment/locale/tk.js","webpack://ixsight/./node_modules/moment/locale/tl-ph.js","webpack://ixsight/./node_modules/moment/locale/tlh.js","webpack://ixsight/./node_modules/moment/locale/tr.js","webpack://ixsight/./node_modules/moment/locale/tzl.js","webpack://ixsight/./node_modules/moment/locale/tzm-latn.js","webpack://ixsight/./node_modules/moment/locale/tzm.js","webpack://ixsight/./node_modules/moment/locale/ug-cn.js","webpack://ixsight/./node_modules/moment/locale/uk.js","webpack://ixsight/./node_modules/moment/locale/ur.js","webpack://ixsight/./node_modules/moment/locale/uz-latn.js","webpack://ixsight/./node_modules/moment/locale/uz.js","webpack://ixsight/./node_modules/moment/locale/vi.js","webpack://ixsight/./node_modules/moment/locale/x-pseudo.js","webpack://ixsight/./node_modules/moment/locale/yo.js","webpack://ixsight/./node_modules/moment/locale/zh-cn.js","webpack://ixsight/./node_modules/moment/locale/zh-hk.js","webpack://ixsight/./node_modules/moment/locale/zh-mo.js","webpack://ixsight/./node_modules/moment/locale/zh-tw.js","webpack://ixsight/./node_modules/moment/moment.js","webpack://ixsight/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://ixsight/./node_modules/vue-router/dist/vue-router.esm.js","webpack://ixsight/./node_modules/vue/dist/vue.runtime.esm.js","webpack://ixsight/./node_modules/date-format-parse/es/util.js","webpack://ixsight/./node_modules/date-format-parse/es/locale/en.js","webpack://ixsight/./node_modules/date-format-parse/es/format.js","webpack://ixsight/./node_modules/date-format-parse/es/parse.js","webpack://ixsight/./node_modules/vue2-datepicker/index.esm.js","webpack://ixsight/./node_modules/vue2-datepicker/locale/de.js","webpack://ixsight/./node_modules/vuex/dist/vuex.esm.js","webpack://ixsight/./node_modules/xlsx/dist/cpexcel.js","webpack://ixsight/./node_modules/xlsx/jszip.js","webpack://ixsight/./node_modules/xlsx/xlsx.js","webpack://ixsight/./node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://ixsight/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://ixsight/./node_modules/axios/lib/helpers/bind.js","webpack://ixsight/./node_modules/axios/lib/utils.js","webpack://ixsight/./node_modules/axios/lib/core/AxiosError.js","webpack://ixsight/./node_modules/axios/lib/helpers/null.js","webpack://ixsight/./node_modules/axios/lib/helpers/toFormData.js","webpack://ixsight/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://ixsight/./node_modules/axios/lib/helpers/buildURL.js","webpack://ixsight/./node_modules/axios/lib/core/InterceptorManager.js","webpack://ixsight/./node_modules/axios/lib/defaults/transitional.js","webpack://ixsight/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://ixsight/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://ixsight/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://ixsight/./node_modules/axios/lib/platform/browser/index.js","webpack://ixsight/./node_modules/axios/lib/platform/common/utils.js","webpack://ixsight/./node_modules/axios/lib/platform/index.js","webpack://ixsight/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://ixsight/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://ixsight/./node_modules/axios/lib/defaults/index.js","webpack://ixsight/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://ixsight/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://ixsight/./node_modules/axios/lib/core/transformData.js","webpack://ixsight/./node_modules/axios/lib/cancel/isCancel.js","webpack://ixsight/./node_modules/axios/lib/cancel/CanceledError.js","webpack://ixsight/./node_modules/axios/lib/core/settle.js","webpack://ixsight/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://ixsight/./node_modules/axios/lib/helpers/speedometer.js","webpack://ixsight/./node_modules/axios/lib/helpers/throttle.js","webpack://ixsight/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://ixsight/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://ixsight/./node_modules/axios/lib/helpers/cookies.js","webpack://ixsight/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://ixsight/./node_modules/axios/lib/helpers/combineURLs.js","webpack://ixsight/./node_modules/axios/lib/core/buildFullPath.js","webpack://ixsight/./node_modules/axios/lib/core/mergeConfig.js","webpack://ixsight/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://ixsight/./node_modules/axios/lib/adapters/xhr.js","webpack://ixsight/./node_modules/axios/lib/helpers/composeSignals.js","webpack://ixsight/./node_modules/axios/lib/helpers/trackStream.js","webpack://ixsight/./node_modules/axios/lib/adapters/fetch.js","webpack://ixsight/./node_modules/axios/lib/adapters/adapters.js","webpack://ixsight/./node_modules/axios/lib/core/dispatchRequest.js","webpack://ixsight/./node_modules/axios/lib/env/data.js","webpack://ixsight/./node_modules/axios/lib/helpers/validator.js","webpack://ixsight/./node_modules/axios/lib/core/Axios.js","webpack://ixsight/./node_modules/axios/lib/cancel/CancelToken.js","webpack://ixsight/./node_modules/axios/lib/helpers/spread.js","webpack://ixsight/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://ixsight/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://ixsight/./node_modules/axios/lib/axios.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,e=Symbol(),n=new Map;class s{constructor(t,n){if(this._$cssResult$=!0,n!==e)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t}get styleSheet(){let e=n.get(this.cssText);return t&&void 0===e&&(n.set(this.cssText,e=new CSSStyleSheet),e.replaceSync(this.cssText)),e}toString(){return this.cssText}}const o=t=>new s(\"string\"==typeof t?t:t+\"\",e),r=(t,...n)=>{const o=1===t.length?t[0]:n.reduce(((e,n,s)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(n)+t[s+1]),t[0]);return new s(o,e)},i=(e,n)=>{t?e.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((t=>{const n=document.createElement(\"style\"),s=window.litNonce;void 0!==s&&n.setAttribute(\"nonce\",s),n.textContent=t.cssText,e.appendChild(n)}))},S=t?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const n of t.cssRules)e+=n.cssText;return o(e)})(t):t;export{s as CSSResult,i as adoptStyles,r as css,S as getCompatibleStyle,t as supportsAdoptingStyleSheets,o as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window.trustedTypes,r=e?e.emptyScript:\"\",h=window.reactiveElementPolyfillSupport,o={toAttribute(t,i){switch(i){case Boolean:t=t?r:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},n=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:o,reflect:!1,hasChanged:n};class a extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var i;null!==(i=this.l)&&void 0!==i||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Eh(s,i);void 0!==e&&(this._$Eu.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(\"finalized\"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Eh(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$Eg)&&void 0!==i?i:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$Eg)||void 0===i||i.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Et.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$ES(t,i,s=l){var e,r;const h=this.constructor._$Eh(t,s);if(void 0!==h&&!0===s.reflect){const n=(null!==(r=null===(e=s.converter)||void 0===e?void 0:e.toAttribute)&&void 0!==r?r:o.toAttribute)(i,s.type);this._$Ei=t,null==n?this.removeAttribute(h):this.setAttribute(h,n),this._$Ei=null}}_$AK(t,i){var s,e,r;const h=this.constructor,n=h._$Eu.get(t);if(void 0!==n&&this._$Ei!==n){const t=h.getPropertyOptions(n),l=t.converter,a=null!==(r=null!==(e=null===(s=l)||void 0===s?void 0:s.fromAttribute)&&void 0!==e?e:\"function\"==typeof l?l:null)&&void 0!==r?r:o.fromAttribute;this._$Ei=n,this[n]=a(i,t.type),this._$Ei=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||n)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$Ei!==t&&(void 0===this._$E_&&(this._$E_=new Map),this._$E_.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$Ep=this._$EC())}async _$EC(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,i)=>this[i]=t)),this._$Et=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$EU()}catch(t){throw i=!1,this._$EU(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$Eg)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$E_&&(this._$E_.forEach(((t,i)=>this._$ES(i,this[i],t))),this._$E_=void 0),this._$EU()}updated(t){}firstUpdated(t){}}a.finalized=!0,a.elementProperties=new Map,a.elementStyles=[],a.shadowRootOptions={mode:\"open\"},null==h||h({ReactiveElement:a}),(null!==(s=globalThis.reactiveElementVersions)&&void 0!==s?s:globalThis.reactiveElementVersions=[]).push(\"1.2.1\");export{a as ReactiveElement,o as defaultConverter,n as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=globalThis.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+e,n=`<${o}>`,l=document,h=(t=\"\")=>l.createComment(t),r=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,d=Array.isArray,u=t=>{var i;return d(t)||\"function\"==typeof(null===(i=t)||void 0===i?void 0:i[Symbol.iterator])},c=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,a=/>/g,f=/>|[ \t\\n\f\\r](?:([^\\s\"'>=/]+)([ \t\\n\f\\r]*=[ \t\\n\f\\r]*(?:[^ \t\\n\f\\r\"'`<>=]|(\"|')|))|$)/g,_=/'/g,m=/\"/g,g=/^(?:script|style|textarea)$/i,p=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),$=p(1),y=p(2),b=Symbol.for(\"lit-noChange\"),w=Symbol.for(\"lit-nothing\"),T=new WeakMap,x=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new N(i.insertBefore(h(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l},A=l.createTreeWalker(l,129,null,!1),C=(t,i)=>{const o=t.length-1,l=[];let h,r=2===i?\"\":\"\",d=c;for(let i=0;i\"===u[0]?(d=null!=h?h:c,p=-1):void 0===u[1]?p=-2:(p=d.lastIndex-u[2].length,o=u[1],d=void 0===u[3]?f:'\"'===u[3]?m:_):d===m||d===_?d=f:d===v||d===a?d=c:(d=f,h=void 0);const y=d===f&&t[i+1].startsWith(\"/>\")?\" \":\"\";r+=d===c?s+n:p>=0?(l.push(o),s.slice(0,p)+\"$lit$\"+s.slice(p)+e+y):s+e+(-2===p?(l.push(void 0),i):y)}const u=r+(t[o]||\"\")+(2===i?\"\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==s?s.createHTML(u):u,l]};class E{constructor({strings:t,_$litType$:s},n){let l;this.parts=[];let r=0,d=0;const u=t.length-1,c=this.parts,[v,a]=C(t,s);if(this.el=E.createElement(v,n),A.currentNode=this.el.content,2===s){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(l=A.nextNode())&&c.length0){l.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=w}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=P(this,t,i,0),n=!r(t)||t!==this._$AH&&t!==b,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.1.2\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst n=n=>e=>\"function\"==typeof e?((n,e)=>(window.customElements.define(n,e),e))(n,e):((n,e)=>{const{kind:t,elements:i}=e;return{kind:t,elements:i,finisher(e){window.customElements.define(n,e)}}})(n,e);export{n as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}};function e(e){return(n,t)=>void 0!==t?((i,e,n)=>{e.constructor.createProperty(n,i)})(e,n,t):i(e,n)}export{e as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e){return r({finisher:(r,t)=>{Object.assign(r.prototype[t],e)}})}export{e as eventOptions};\n//# sourceMappingURL=event-options.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(i,n){return o({descriptor:o=>{const t={get(){var o,n;return null!==(n=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(n){const n=\"symbol\"==typeof o?Symbol():\"__\"+o;t.get=function(){var o,t;return void 0===this[n]&&(this[n]=null!==(t=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==t?t:null),this[n]}}return t}})}export{i as query};\n//# sourceMappingURL=query.js.map\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e){return r({descriptor:r=>({get(){var r,o;return null!==(o=null===(r=this.renderRoot)||void 0===r?void 0:r.querySelectorAll(e))&&void 0!==o?o:[]},enumerable:!0,configurable:!0})})}export{e as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import{decorateProperty as r}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction e(e){return r({descriptor:r=>({async get(){var r;return await this.updateComplete,null===(r=this.renderRoot)||void 0===r?void 0:r.querySelector(e)},enumerable:!0,configurable:!0})})}export{e as queryAsync};\n//# sourceMappingURL=query-async.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{decorateProperty as e}from\"./base.js\";import{queryAssignedElements as t}from\"./query-assigned-elements.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o,n,r){let l,s=o;return\"object\"==typeof o?(s=o.slot,l=o):l={flatten:n},r?t({slot:s,flatten:n,selector:r}):e({descriptor:e=>({get(){var e,t;const o=\"slot\"+(s?`[name=${s}]`:\":not([name])\"),n=null===(e=this.renderRoot)||void 0===e?void 0:e.querySelector(o);return null!==(t=null==n?void 0:n.assignedNodes(l))&&void 0!==t?t:[]},enumerable:!0,configurable:!0})})}export{o as queryAssignedNodes};\n//# sourceMappingURL=query-assigned-nodes.js.map\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","/**\n * Copyright 2021 Design Barn Inc.\n */\n\nimport { css } from \"lit\";\n\nexport default css`\n * {\n box-sizing: border-box;\n }\n\n :host {\n --lottie-player-toolbar-height: 35px;\n --lottie-player-toolbar-background-color: transparent;\n --lottie-player-toolbar-icon-color: #999;\n --lottie-player-toolbar-icon-hover-color: #222;\n --lottie-player-toolbar-icon-active-color: #555;\n --lottie-player-seeker-track-color: #ccc;\n --lottie-player-seeker-thumb-color: rgba(0, 107, 120, 0.8);\n --lottie-player-seeker-display: block;\n\n display: block;\n width: 100%;\n height: 100%;\n }\n\n .main {\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n }\n\n .animation {\n width: 100%;\n height: 100%;\n display: flex;\n }\n .animation.controls {\n height: calc(100% - 35px);\n }\n\n .toolbar {\n display: flex;\n align-items: center;\n justify-items: center;\n background-color: var(--lottie-player-toolbar-background-color);\n margin: 0 5px;\n height: 35px;\n }\n\n .toolbar button {\n cursor: pointer;\n fill: var(--lottie-player-toolbar-icon-color);\n display: flex;\n background: none;\n border: 0;\n padding: 0;\n outline: none;\n height: 100%;\n }\n\n .toolbar button:hover {\n fill: var(--lottie-player-toolbar-icon-hover-color);\n }\n\n .toolbar button.active {\n fill: var(--lottie-player-toolbar-icon-active-color);\n }\n\n .toolbar button.active:hover {\n fill: var(--lottie-player-toolbar-icon-hover-color);\n }\n\n .toolbar button:focus {\n outline: 1px dotted var(--lottie-player-toolbar-icon-active-color);\n }\n\n .toolbar button svg {\n }\n\n .toolbar button.disabled svg {\n display: none;\n }\n\n .seeker {\n -webkit-appearance: none;\n width: 95%;\n outline: none;\n background-color: var(--lottie-player-toolbar-background-color);\n display: var(--lottie-player-seeker-display);\n }\n\n .seeker::-webkit-slider-runnable-track {\n width: 100%;\n height: 5px;\n cursor: pointer;\n background: var(--lottie-player-seeker-track-color);\n border-radius: 3px;\n }\n .seeker::-webkit-slider-thumb {\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background: var(--lottie-player-seeker-thumb-color);\n cursor: pointer;\n -webkit-appearance: none;\n margin-top: -5px;\n }\n .seeker:focus::-webkit-slider-runnable-track {\n background: #999;\n }\n .seeker::-moz-range-track {\n width: 100%;\n height: 5px;\n cursor: pointer;\n background: var(--lottie-player-seeker-track-color);\n border-radius: 3px;\n }\n .seeker::-moz-range-thumb {\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background: var(--lottie-player-seeker-thumb-color);\n cursor: pointer;\n }\n .seeker::-ms-track {\n width: 100%;\n height: 5px;\n cursor: pointer;\n background: transparent;\n border-color: transparent;\n color: transparent;\n }\n .seeker::-ms-fill-lower {\n background: var(--lottie-player-seeker-track-color);\n border-radius: 3px;\n }\n .seeker::-ms-fill-upper {\n background: var(--lottie-player-seeker-track-color);\n border-radius: 3px;\n }\n .seeker::-ms-thumb {\n border: 0;\n height: 15px;\n width: 15px;\n border-radius: 50%;\n background: var(--lottie-player-seeker-thumb-color);\n cursor: pointer;\n }\n .seeker:focus::-ms-fill-lower {\n background: var(--lottie-player-seeker-track-color);\n }\n .seeker:focus::-ms-fill-upper {\n background: var(--lottie-player-seeker-track-color);\n }\n\n .error {\n display: flex;\n justify-content: center;\n height: 100%;\n align-items: center;\n }\n`;\n","export const LOTTIE_PLAYER_VERSION = \"2.0.4\";\nexport const LOTTIE_WEB_VERSION = \"^5.12.2\";\n","// eslint-disable-next-line header/header\nimport { LitElement, html } from \"lit\";\nimport { customElement, property, query } from \"lit/decorators.js\";\nimport { TemplateResult } from \"lit/html.js\";\nimport * as lottie from \"lottie-web/build/player/lottie\";\n\nimport styles from \"./lottie-player.styles\";\nimport { LOTTIE_PLAYER_VERSION, LOTTIE_WEB_VERSION } from \"./versions\";\n\n// import ResizeObserver from \"resize-observer-polyfill\";\n\n// Define valid player states\nexport enum PlayerState {\n Destroyed = \"destroyed\",\n Error = \"error\",\n Frozen = \"frozen\",\n Loading = \"loading\",\n Paused = \"paused\",\n Playing = \"playing\",\n Stopped = \"stopped\",\n}\n\n// Define play modes\nexport enum PlayMode {\n Bounce = \"bounce\",\n Normal = \"normal\",\n}\n\n// Define player events\nexport enum PlayerEvents {\n Complete = \"complete\",\n Destroyed = \"destroyed\",\n Error = \"error\",\n Frame = \"frame\",\n Freeze = \"freeze\",\n Load = \"load\",\n Loop = \"loop\",\n Pause = \"pause\",\n Play = \"play\",\n Ready = \"ready\",\n Rendered = \"rendered\",\n Stop = \"stop\",\n}\n\nexport interface Versions {\n lottiePlayerVersion: string;\n lottieWebVersion: string;\n}\n\n/**\n * Parse a resource into a JSON object or a URL string\n */\nexport function parseSrc(src: string | object): string | object {\n if (typeof src === \"object\") {\n return src;\n }\n\n try {\n return JSON.parse(src);\n } catch (e) {\n // Try construct an absolute URL from the src URL\n const srcUrl: URL = new URL(src, window.location.href);\n\n return srcUrl.toString();\n }\n}\n\nfunction isLottie(json: Record): boolean {\n const mandatory: string[] = [\"v\", \"ip\", \"op\", \"layers\", \"fr\", \"w\", \"h\"];\n\n return mandatory.every((field: string) =>\n Object.prototype.hasOwnProperty.call(json, field)\n );\n}\n\nasync function fromURL(url: string): Promise> {\n if (typeof url !== \"string\") {\n throw new Error(`The url value must be a string`);\n }\n\n let json;\n\n try {\n // Try construct an absolute URL from the src URL\n const srcUrl: URL = new URL(url);\n\n // Fetch the JSON file from the URL\n const result: any = await fetch(srcUrl.toString());\n\n json = await result.json();\n } catch (err) {\n throw new Error(\n `An error occurred while trying to load the Lottie file from URL`\n );\n }\n\n return json;\n}\n/**\n * LottiePlayer web component class\n *\n * @export\n * @class LottiePlayer\n * @extends {LitElement}\n */\n@customElement(\"lottie-player\")\nexport class LottiePlayer extends LitElement {\n /**\n * Autoplay animation on load.\n */\n @property({ type: Boolean })\n public autoplay: boolean = false;\n\n /**\n * Background color.\n */\n @property({ type: String, reflect: true })\n public background?: string = \"transparent\";\n\n /**\n * Show controls.\n */\n @property({ type: Boolean })\n public controls: boolean = false;\n\n /**\n * Number of times to loop animation.\n */\n @property({ type: Number })\n public count?: number;\n\n /**\n * Player state.\n */\n @property({ type: String })\n public currentState: PlayerState = PlayerState.Loading;\n\n /**\n * Animation description for screen readers.\n */\n @property({ type: String })\n public description: string = \"Lottie animation\";\n\n /**\n * Direction of animation.\n */\n @property({ type: Number })\n public direction: number = 1;\n\n /**\n * Disable checking if the Lottie is valid before loading\n */\n @property({ type: Boolean })\n public disableCheck?: boolean = false;\n\n /**\n * Disable using shadow dom as the root\n */\n @property({ type: Boolean })\n public disableShadowDOM: boolean = false;\n\n /**\n * Whether to play on mouse hover\n */\n @property({ type: Boolean })\n public hover: boolean = false;\n\n /**\n * Intermission\n */\n @property()\n public intermission: number = 1;\n\n /**\n * Whether to loop animation.\n */\n @property({ type: Boolean, reflect: true })\n public loop: boolean = false;\n\n /**\n * Play mode.\n */\n @property()\n public mode: PlayMode = PlayMode.Normal;\n\n /**\n * Aspect ratio to pass to lottie-web.\n */\n @property({ type: String })\n public preserveAspectRatio: string = \"xMidYMid meet\";\n\n /**\n * Renderer to use.\n */\n @property({ type: String })\n public renderer: \"svg\" = \"svg\";\n\n /**\n * Viewbox size for renderer settings\n */\n @property({ type: String })\n public viewBoxSize?: string;\n\n /**\n * seeker\n */\n\n @property()\n public seeker: any;\n\n /**\n * Animation speed.\n */\n @property({ type: Number })\n public speed: number = 1;\n\n /**\n * Bodymovin JSON data or URL to JSON.\n */\n @property({ type: String })\n public src?: string;\n\n /**\n * Enable web workers\n */\n @property({ type: Boolean })\n public webworkers?: boolean;\n\n /**\n * Animation container.\n */\n @query(\".animation\")\n protected container!: HTMLElement;\n\n private _io: IntersectionObserver | undefined = undefined;\n\n // private _ro: ResizeObserver | undefined = undefined;\n private _lottie?: any;\n\n private _prevState?: any;\n\n private _counter: number = 1;\n\n /**\n * Configure and initialize lottie-web player instance.\n */\n public async load(src: string | object) {\n const options: any = {\n container: this.container,\n loop: false,\n autoplay: false,\n renderer: this.renderer,\n rendererSettings: {\n preserveAspectRatio: this.preserveAspectRatio,\n clearCanvas: false,\n progressiveLoad: true,\n hideOnTransparent: true,\n ...(this.viewBoxSize && { viewBoxSize: this.viewBoxSize }),\n },\n };\n\n // Load the resource information\n try {\n const srcParsed = parseSrc(src);\n let jsonData = {};\n let srcAttrib = typeof srcParsed === \"string\" ? \"path\" : \"animationData\";\n\n // Clear previous animation, if any\n if (this._lottie) {\n this._lottie.destroy();\n }\n\n if (this.webworkers) {\n lottie.useWebWorker(true);\n }\n\n // Initialize lottie player and load animation\n this._lottie = lottie.loadAnimation({\n ...options,\n\n [srcAttrib]: srcParsed,\n });\n\n // Attach the event listeners before we check the requested json file for errors\n this._attachEventListeners();\n\n if (!this.disableCheck) {\n // Fetch resource if src is a remote URL\n if (srcAttrib === \"path\") {\n jsonData = await fromURL(srcParsed as string);\n srcAttrib = \"animationData\";\n } else {\n jsonData = srcParsed;\n }\n\n if (!isLottie(jsonData)) {\n this.currentState = PlayerState.Error;\n this.dispatchEvent(new CustomEvent(PlayerEvents.Error));\n }\n }\n } catch (err) {\n this.currentState = PlayerState.Error;\n this.dispatchEvent(new CustomEvent(PlayerEvents.Error));\n }\n }\n\n /**\n * Returns the lottie-web instance used in the component.\n */\n public getLottie(): any {\n return this._lottie;\n }\n\n /**\n * Returns the lottie-web version and this player's version\n */\n public getVersions(): Versions {\n return {\n lottieWebVersion: LOTTIE_WEB_VERSION,\n lottiePlayerVersion: LOTTIE_PLAYER_VERSION,\n };\n }\n\n /**\n * Start playing animation.\n */\n public play() {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.play();\n this.currentState = PlayerState.Playing;\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Play));\n }\n\n /**\n * Pause animation play.\n */\n public pause(): void {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.pause();\n this.currentState = PlayerState.Paused;\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Pause));\n }\n\n /**\n * Stops animation play.\n */\n public stop(): void {\n if (!this._lottie) {\n return;\n }\n\n this._counter = 1;\n this._lottie.stop();\n this.currentState = PlayerState.Stopped;\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Stop));\n }\n\n /**\n * Destroy animation and lottie-player element.\n */\n public destroy(): void {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.destroy();\n this._lottie = null;\n this.currentState = PlayerState.Destroyed;\n this.dispatchEvent(new CustomEvent(PlayerEvents.Destroyed));\n this.remove();\n }\n\n /**\n * Seek to a given frame.\n */\n public seek(value: number | string): void {\n if (!this._lottie) {\n return;\n }\n\n // Extract frame number from either number or percentage value\n const matches = /^(\\d+)(%?)$/.exec(value.toString());\n\n if (!matches) {\n return;\n }\n\n // Calculate and set the frame number\n const frame =\n matches[2] === \"%\"\n ? (this._lottie.totalFrames * Number(matches[1])) / 100\n : Number(matches[1]);\n\n // Set seeker to new frame number\n this.seeker = frame;\n\n // Send lottie player to the new frame\n if (this.currentState === PlayerState.Playing) {\n this._lottie.goToAndPlay(frame, true);\n } else {\n this._lottie.goToAndStop(frame, true);\n this._lottie.pause();\n }\n }\n\n /**\n * Snapshot the current frame as SVG.\n *\n * If 'download' argument is boolean true, then a download is triggered in browser.\n */\n public snapshot(download: boolean = true): string | void {\n if (!this.shadowRoot) return;\n\n // Get SVG element and serialize markup\n const svgElement = this.shadowRoot.querySelector(\".animation svg\") as Node;\n const data = new XMLSerializer().serializeToString(svgElement);\n\n // Trigger file download\n if (download) {\n const element = document.createElement(\"a\");\n\n element.href = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(\n data\n )}`;\n element.download = `download_${this.seeker}.svg`;\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n }\n\n return data;\n }\n\n /**\n * Sets animation play speed.\n *\n * @param value Playback speed.\n */\n public setSpeed(value = 1): void {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.setSpeed(value);\n }\n\n /**\n * Animation play direction.\n *\n * @param value Direction values.\n */\n public setDirection(value: number): void {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.setDirection(value);\n }\n\n /**\n * Sets the looping of the animation.\n *\n * @param value Whether to enable looping. Boolean true enables looping.\n */\n public setLooping(value: boolean): void {\n if (this._lottie) {\n this.loop = value;\n this._lottie.loop = value;\n }\n }\n\n /**\n * Toggle playing state.\n */\n public togglePlay(): void {\n return this.currentState === PlayerState.Playing\n ? this.pause()\n : this.play();\n }\n\n /**\n * Toggles animation looping.\n */\n public toggleLooping(): void {\n this.setLooping(!this.loop);\n }\n\n /**\n * Resize animation.\n */\n public resize() {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.resize();\n }\n\n /**\n * Returns the styles for the component.\n */\n static get styles() {\n return styles;\n }\n\n /**\n * Cleanup on component destroy.\n */\n public disconnectedCallback(): void {\n // Don't clean up if node is still connected to the context (i.e. this is a move).\n if (this.isConnected) return;\n\n // Remove intersection observer for detecting component being out-of-view.\n if (this._io) {\n this._io.disconnect();\n this._io = undefined;\n }\n\n // Remove resize observer for detecting resize/reflow events affecting element.\n // if (this._ro) {\n // this._ro.disconnect();\n // this._ro = undefined;\n // }\n\n // Remove the attached Visibility API's change event listener.\n document.removeEventListener(\"visibilitychange\", this._onVisibilityChange);\n\n // Destroy the animation instance and element\n this.destroy();\n }\n\n public render(): TemplateResult | void {\n const className: string = this.controls ? \"main controls\" : \"main\";\n const animationClass: string = this.controls\n ? \"animation controls\"\n : \"animation\";\n\n return html` \n \n ${this.currentState === PlayerState.Error\n ? html`
⚠️
`\n : undefined}\n \n ${this.controls && !this.disableShadowDOM\n ? this.renderControls()\n : undefined}\n `;\n }\n\n protected createRenderRoot(): Element | ShadowRoot {\n if (this.disableShadowDOM) this.style.display = \"block\";\n\n return this.disableShadowDOM ? this : super.createRenderRoot();\n }\n\n /**\n * Initialize everything on component first render.\n */\n protected firstUpdated(): void {\n // Add intersection observer for detecting component being out-of-view.\n if (\"IntersectionObserver\" in window) {\n this._io = new IntersectionObserver(\n (entries: IntersectionObserverEntry[]) => {\n if (entries[0].isIntersecting) {\n if (this.currentState === PlayerState.Frozen) {\n this.play();\n }\n } else if (this.currentState === PlayerState.Playing) {\n this.freeze();\n }\n }\n );\n\n this._io.observe(this.container);\n }\n\n // Add listener for Visibility API's change event.\n if (typeof document.hidden !== \"undefined\") {\n document.addEventListener(\"visibilitychange\", this._onVisibilityChange);\n }\n\n // Setup lottie player\n if (this.src) {\n this.load(this.src);\n }\n this.dispatchEvent(new CustomEvent(PlayerEvents.Rendered));\n }\n\n protected renderControls(): TemplateResult {\n const isPlaying: boolean = this.currentState === PlayerState.Playing;\n const isPaused: boolean = this.currentState === PlayerState.Paused;\n const isStopped: boolean = this.currentState === PlayerState.Stopped;\n\n return html`\n \n \n ${isPlaying\n ? html`\n \n `\n : html`\n \n `}\n \n \n \n \n \n \n {\n this._prevState = this.currentState;\n this.freeze();\n }}\n @mouseup=${() => {\n this._prevState === PlayerState.Playing && this.play();\n }}\n aria-valuemin=\"1\"\n aria-valuemax=\"100\"\n role=\"slider\"\n aria-valuenow=${this.seeker}\n tabindex=\"0\"\n aria-label=\"lottie-seek-input\"\n />\n \n \n \n \n \n \n `;\n }\n\n /**\n * Handle visibility change events.\n */\n private readonly _onVisibilityChange = (): void => {\n if (document.hidden === true && this.currentState === PlayerState.Playing) {\n this.freeze();\n } else if (this.currentState === PlayerState.Frozen) {\n this.play();\n }\n }\n\n /**\n * Handles click and drag actions on the progress track.\n */\n private _handleSeekChange(e: any): void {\n if (!this._lottie || isNaN(e.target.value)) {\n return;\n }\n\n const frame: number = (e.target.value / 100) * this._lottie.totalFrames;\n\n this.seek(frame);\n }\n\n private _attachEventListeners(): void {\n this._lottie.addEventListener(\"enterFrame\", () => {\n this.seeker =\n (this._lottie.currentFrame / this._lottie.totalFrames) * 100;\n\n this.dispatchEvent(\n new CustomEvent(PlayerEvents.Frame, {\n detail: {\n frame: this._lottie.currentFrame,\n seeker: this.seeker,\n },\n })\n );\n });\n\n // Handle animation play complete\n this._lottie.addEventListener(\"complete\", () => {\n if (this.currentState !== PlayerState.Playing) {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Complete));\n\n return;\n }\n\n if (!this.loop || (this.count && this._counter >= this.count)) {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Complete));\n\n if (this.mode === PlayMode.Bounce) {\n if (this._lottie.currentFrame === 0) {\n return;\n }\n } else {\n return;\n }\n }\n\n if (this.mode === PlayMode.Bounce) {\n if (this.count) {\n this._counter += 0.5;\n }\n\n setTimeout(() => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Loop));\n\n if (this.currentState === PlayerState.Playing) {\n this._lottie.setDirection(this._lottie.playDirection * -1);\n this._lottie.play();\n }\n }, this.intermission);\n } else {\n if (this.count) {\n this._counter += 1;\n }\n\n window.setTimeout(() => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Loop));\n\n if (this.currentState === PlayerState.Playing) {\n if (this.direction === -1) {\n // Prevents flickering\n this.seek(\"99%\");\n this.play();\n } else {\n this._lottie.stop();\n this._lottie.play();\n }\n }\n }, this.intermission);\n }\n });\n\n // Handle lottie-web ready event\n this._lottie.addEventListener(\"DOMLoaded\", () => {\n // Set initial playback speed and direction\n this.setSpeed(this.speed);\n this.setDirection(this.direction);\n\n // Start playing if autoplay is enabled\n if (this.autoplay) {\n if (this.direction === -1) this.seek(\"100%\");\n this.play();\n }\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Ready));\n });\n\n // Handle animation data load complete\n this._lottie.addEventListener(\"data_ready\", () => {\n this.dispatchEvent(new CustomEvent(PlayerEvents.Load));\n });\n\n // Set error state when animation load fail event triggers\n this._lottie.addEventListener(\"data_failed\", () => {\n this.currentState = PlayerState.Error;\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Error));\n });\n\n // Set handlers to auto play animation on hover if enabled\n this.container.addEventListener(\"mouseenter\", () => {\n if (this.hover && this.currentState !== PlayerState.Playing) {\n this.play();\n }\n });\n this.container.addEventListener(\"mouseleave\", () => {\n if (this.hover && this.currentState === PlayerState.Playing) {\n this.stop();\n }\n });\n }\n\n /**\n * Freeze animation play.\n * This internal state pauses animation and is used to differentiate between\n * user requested pauses and component instigated pauses.\n */\n private freeze(): void {\n if (!this._lottie) {\n return;\n }\n\n this._lottie.pause();\n this.currentState = PlayerState.Frozen;\n\n this.dispatchEvent(new CustomEvent(PlayerEvents.Freeze));\n }\n}\n","!/**\n * Highcharts JS v11.4.4 (2024-07-02)\n *\n * (c) 2009-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */function(t){\"object\"==typeof module&&module.exports?(t.default=t,module.exports=t):\"function\"==typeof define&&define.amd?define(\"highcharts/highcharts-more\",[\"highcharts\"],function(e){return t(e),t.Highcharts=e,t}):t(\"undefined\"!=typeof Highcharts?Highcharts:void 0)}(function(t){\"use strict\";var e=t?t._modules:{};function i(e,i,s,o){e.hasOwnProperty(i)||(e[i]=o.apply(null,s),\"function\"==typeof CustomEvent&&t.win.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:i,module:e[i]}})))}i(e,\"Extensions/Pane/PaneComposition.js\",[e[\"Core/Utilities.js\"]],function(t){let{addEvent:e,correctFloat:i,defined:s,pick:o}=t;function a(t){let e;let i=this;return t&&i.pane.forEach(s=>{r(t.chartX-i.plotLeft,t.chartY-i.plotTop,s.center)&&(e=s)}),e}function r(t,e,o,a,r){let n=!0,l=o[0],h=o[1],p=Math.sqrt(Math.pow(t-l,2)+Math.pow(e-h,2));if(s(a)&&s(r)){let s=Math.atan2(i(e-h,8),i(t-l,8));r!==a&&(n=a>r?s>=a&&s<=Math.PI||s<=r&&s>=-Math.PI:s>=a&&s<=i(r,8))}return p<=Math.ceil(o[2]/2)&&n}function n(t){this.polar&&(t.options.inverted&&([t.x,t.y]=[t.y,t.x]),t.isInsidePlot=this.pane.some(e=>r(t.x,t.y,e.center,e.axis&&e.axis.normalizedStartAngleRad,e.axis&&e.axis.normalizedEndAngleRad)))}function l(t){let e=this.chart;t.hoverPoint&&t.hoverPoint.plotX&&t.hoverPoint.plotY&&e.hoverPane&&!r(t.hoverPoint.plotX,t.hoverPoint.plotY,e.hoverPane.center)&&(t.hoverPoint=void 0)}function h(t){let e=this.chart;e.polar?(e.hoverPane=e.getHoverPane(t),t.filter=function(i){return i.visible&&!(!t.shared&&i.directTouch)&&o(i.options.enableMouseTracking,!0)&&(!e.hoverPane||i.xAxis.pane===e.hoverPane)}):e.hoverPane=void 0}return{compose:function(t,i){let s=t.prototype;s.getHoverPane||(s.collectionsWithUpdate.push(\"pane\"),s.getHoverPane=a,e(t,\"afterIsInsidePlot\",n),e(i,\"afterGetHoverData\",l),e(i,\"beforeGetHoverData\",h))}}}),i(e,\"Extensions/Pane/PaneDefaults.js\",[],function(){return{pane:{center:[\"50%\",\"50%\"],size:\"85%\",innerSize:\"0%\",startAngle:0},background:{shape:\"circle\",borderRadius:0,borderWidth:1,borderColor:\"#cccccc\",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,\"#ffffff\"],[1,\"#e6e6e6\"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:\"105%\"}}}),i(e,\"Extensions/Pane/Pane.js\",[e[\"Series/CenteredUtilities.js\"],e[\"Extensions/Pane/PaneComposition.js\"],e[\"Extensions/Pane/PaneDefaults.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{extend:o,merge:a,splat:r}=s;class n{constructor(t,e){this.coll=\"pane\",this.init(t,e)}init(t,e){this.chart=e,this.background=[],e.pane.push(this),this.setOptions(t)}setOptions(t){this.options=t=a(i.pane,this.chart.angular?{background:{}}:void 0,t)}render(){let t=this.options,e=this.chart.renderer;this.group||(this.group=e.g(\"pane-group\").attr({zIndex:t.zIndex||0}).add()),this.updateCenter();let s=this.options.background;if(s){let t=Math.max((s=r(s)).length,this.background.length||0);for(let e=0;ea,e.y=e.high,e._plotY=e.plotY,e.plotY=o,l[t]=e.dataLabel,e.dataLabel=e.dataLabelUpper,e.below=i,c?s.align||(s.align=i?\"right\":\"left\"):s.verticalAlign||(s.verticalAlign=i?\"top\":\"bottom\")}for(this.options.dataLabels=s,r.drawDataLabels&&r.drawDataLabels.apply(this,arguments),t=n;t--;)(e=a[t])&&(e.dataLabelUpper=e.dataLabel,e.dataLabel=l[t],delete e.dataLabels,e.y=e.low,e.plotY=e._plotY)}if(o.enabled||this.hasDataLabels?.()){for(t=n;t--;)if(e=a[t]){let{plotHigh:t=0,plotLow:s=0}=e;i=o.inside?ts,e.below=!i,c?o.align||(o.align=i?\"left\":\"right\"):o.verticalAlign||(o.verticalAlign=i?\"bottom\":\"top\")}this.options.dataLabels=o,r.drawDataLabels&&r.drawDataLabels.apply(this,arguments)}if(s.enabled)for(t=n;t--;)(e=a[t])&&(e.dataLabels=[e.dataLabelUpper,e.dataLabel].filter(function(t){return!!t}));this.options.dataLabels=h}}alignDataLabel(){n.alignDataLabel.apply(this,arguments)}modifyMarkerSettings(){let t={marker:this.options.marker,symbol:this.symbol};if(this.options.lowMarker){let{options:{marker:t,lowMarker:e}}=this;this.options.marker=g(t,e),e.symbol&&(this.symbol=e.symbol)}return t}restoreMarkerSettings(t){this.options.marker=t.marker,this.symbol=t.symbol}drawPoints(){let t,e;let i=this.points.length,s=this.modifyMarkerSettings();for(r.drawPoints.apply(this,arguments),this.restoreMarkerSettings(s),t=0;t=0&&e.plotY<=this.yAxis.len&&e.plotX>=0&&e.plotX<=this.xAxis.len),t++;for(r.drawPoints.apply(this,arguments),t=0;t● {series.name}: {point.low} - {point.high}
'},trackByArea:!0,dataLabels:{align:void 0,verticalAlign:void 0,xLow:0,xHigh:0,yLow:0,yHigh:0}}),l(f,\"afterTranslate\",function(){\"low,high\"===this.pointArrayMap.join(\",\")&&this.points.forEach(t=>{let e=t.high,i=t.plotY;t.isNull?t.plotY=void 0:(t.plotLow=i,t.plotHigh=c(e)?this.yAxis.translate(this.dataModify?this.dataModify.modifyValue(e):e,!1,!0,void 0,!0):void 0,this.dataModify&&(t.yBottom=t.plotHigh))})},{order:0}),l(f,\"afterTranslate\",function(){this.points.forEach(t=>{if(this.chart.polar)this.highToXY(t),t.plotLow=t.plotY,t.tooltipPos=[((t.plotHighX||0)+(t.plotLowX||0))/2,((t.plotHigh||0)+(t.plotLow||0))/2];else{let e=t.pos(!1,t.plotLow),i=t.pos(!1,t.plotHigh);e&&i&&(e[0]=(e[0]+i[0])/2,e[1]=(e[1]+i[1])/2),t.tooltipPos=e}})},{order:3}),p(f.prototype,{deferTranslatePolar:!0,pointArrayMap:[\"low\",\"high\"],pointClass:t,pointValKey:\"low\",setStackedPoints:o}),i.registerSeriesType(\"arearange\",f),f}),i(e,\"Series/AreaSplineRange/AreaSplineRangeSeries.js\",[e[\"Series/AreaRange/AreaRangeSeries.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{spline:{prototype:s}}=e.seriesTypes,{merge:o,extend:a}=i;class r extends t{}return r.defaultOptions=o(t.defaultOptions),a(r.prototype,{getPointSpline:s.getPointSpline}),e.registerSeriesType(\"areasplinerange\",r),r}),i(e,\"Series/BoxPlot/BoxPlotSeriesDefaults.js\",[],function(){return{threshold:null,tooltip:{pointFormat:' {series.name}
Maximum: {point.high}
Upper quartile: {point.q3}
Median: {point.median}
Lower quartile: {point.q1}
Minimum: {point.low}
'},whiskerLength:\"50%\",fillColor:\"#ffffff\",lineWidth:1,medianWidth:2,whiskerWidth:2}}),i(e,\"Series/BoxPlot/BoxPlotSeries.js\",[e[\"Series/BoxPlot/BoxPlotSeriesDefaults.js\"],e[\"Series/Column/ColumnSeries.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,o){let{noop:a}=i,{crisp:r,extend:n,merge:l,pick:h}=o;class p extends e{pointAttribs(){return{}}translate(){let t=this.yAxis,e=this.pointArrayMap;super.translate.apply(this),this.points.forEach(function(i){e.forEach(function(e){null!==i[e]&&(i[e+\"Plot\"]=t.translate(i[e],0,1,0,1))}),i.plotHigh=i.highPlot})}drawPoints(){let t,e,i,s,o,a,n,l,p,d,c,u,g;let f=this.points,b=this.options,m=this.chart,y=m.renderer,x=!1!==this.doQuartiles,P=this.options.whiskerLength;for(let S of f){let f=(l=S.graphic)?\"animate\":\"attr\",M=S.shapeArgs,L={},C={},k={},v={},A=S.color||this.color;if(void 0!==S.plotY){let w;p=M.width,c=(d=M.x)+p,u=p/2,t=x?S.q1Plot:S.lowPlot,e=x?S.q3Plot:S.lowPlot,i=S.highPlot,s=S.lowPlot,l||(S.graphic=l=y.g(\"point\").add(this.group),S.stem=y.path().addClass(\"highcharts-boxplot-stem\").add(l),P&&(S.whiskers=y.path().addClass(\"highcharts-boxplot-whisker\").add(l)),x&&(S.box=y.path(n).addClass(\"highcharts-boxplot-box\").add(l)),S.medianShape=y.path(a).addClass(\"highcharts-boxplot-median\").add(l)),m.styledMode||(C.stroke=S.stemColor||b.stemColor||A,C[\"stroke-width\"]=h(S.stemWidth,b.stemWidth,b.lineWidth),C.dashstyle=S.stemDashStyle||b.stemDashStyle||b.dashStyle,S.stem.attr(C),P&&(k.stroke=S.whiskerColor||b.whiskerColor||A,k[\"stroke-width\"]=h(S.whiskerWidth,b.whiskerWidth,b.lineWidth),k.dashstyle=S.whiskerDashStyle||b.whiskerDashStyle||b.dashStyle,S.whiskers.attr(k)),x&&(L.fill=S.fillColor||b.fillColor||A,L.stroke=b.lineColor||A,L[\"stroke-width\"]=b.lineWidth||0,L.dashstyle=S.boxDashStyle||b.boxDashStyle||b.dashStyle,S.box.attr(L)),v.stroke=S.medianColor||b.medianColor||A,v[\"stroke-width\"]=h(S.medianWidth,b.medianWidth,b.lineWidth),v.dashstyle=S.medianDashStyle||b.medianDashStyle||b.dashStyle,S.medianShape.attr(v));let T=r((S.plotX||0)+(this.pointXOffset||0)+(this.barW||0)/2,S.stem.strokeWidth());if(w=[[\"M\",T,e],[\"L\",T,i],[\"M\",T,t],[\"L\",T,s]],S.stem[f]({d:w}),x){let i=S.box.strokeWidth();t=r(t,i),e=r(e,i),w=[[\"M\",d=r(d,i),e],[\"L\",d,t],[\"L\",c=r(c,i),t],[\"L\",c,e],[\"L\",d,e],[\"Z\"]],S.box[f]({d:w})}if(P){let t=S.whiskers.strokeWidth();i=r(S.highPlot,t),s=r(S.lowPlot,t),w=[[\"M\",r(T-(g=\"string\"==typeof P&&/%$/.test(P)?u*parseFloat(P)/100:Number(P)/2)),i],[\"L\",r(T+g),i],[\"M\",r(T-g),s],[\"L\",r(T+g),s]],S.whiskers[f]({d:w})}w=[[\"M\",d,o=r(S.medianPlot,S.medianShape.strokeWidth())],[\"L\",c,o]],S.medianShape[f]({d:w})}}}toYData(t){return[t.low,t.q1,t.median,t.q3,t.high]}}return p.defaultOptions=l(e.defaultOptions,t),n(p.prototype,{pointArrayMap:[\"low\",\"q1\",\"median\",\"q3\",\"high\"],pointValKey:\"high\",drawDataLabels:a,setStackedPoints:a}),s.registerSeriesType(\"boxplot\",p),p}),i(e,\"Series/Bubble/BubbleLegendDefaults.js\",[],function(){return{borderColor:void 0,borderWidth:2,className:void 0,color:void 0,connectorClassName:void 0,connectorColor:void 0,connectorDistance:60,connectorWidth:1,enabled:!1,labels:{className:void 0,allowOverlap:!1,format:\"\",formatter:void 0,align:\"right\",style:{fontSize:\"0.9em\",color:\"#000000\"},x:0,y:0},maxSize:60,minSize:10,legendIndex:0,ranges:{value:void 0,borderColor:void 0,color:void 0,connectorColor:void 0},sizeBy:\"area\",sizeByAbsoluteValue:!1,zIndex:1,zThreshold:0}}),i(e,\"Series/Bubble/BubbleLegendItem.js\",[e[\"Core/Color/Color.js\"],e[\"Core/Templating.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{parse:o}=t,{noop:a}=i,{arrayMax:r,arrayMin:n,isNumber:l,merge:h,pick:p,stableSort:d}=s;return class{constructor(t,e){this.setState=a,this.init(t,e)}init(t,e){this.options=t,this.visible=!0,this.chart=e.chart,this.legend=e}addToLegend(t){t.splice(this.options.legendIndex,0,this)}drawLegendSymbol(t){let e;let i=p(t.options.itemDistance,20),s=this.legendItem||{},o=this.options,a=o.ranges,r=o.connectorDistance;if(!a||!a.length||!l(a[0].value)){t.options.bubbleLegend.autoRanges=!0;return}d(a,function(t,e){return e.value-t.value}),this.ranges=a,this.setOptions(),this.render();let n=this.getMaxLabelSize(),h=this.ranges[0].radius,c=2*h;e=(e=r-h+n.width)>0?e:0,this.maxLabel=n,this.movementX=\"left\"===o.labels.align?e:0,s.labelWidth=c+e+i,s.labelHeight=c+n.height/2}setOptions(){let t=this.ranges,e=this.options,i=this.chart.series[e.seriesIndex],s=this.legend.baseline,a={zIndex:e.zIndex,\"stroke-width\":e.borderWidth},r={zIndex:e.zIndex,\"stroke-width\":e.connectorWidth},n={align:this.legend.options.rtl||\"left\"===e.labels.align?\"right\":\"left\",zIndex:e.zIndex},l=i.options.marker.fillOpacity,d=this.chart.styledMode;t.forEach(function(c,u){d||(a.stroke=p(c.borderColor,e.borderColor,i.color),a.fill=p(c.color,e.color,1!==l?o(i.color).setOpacity(l).get(\"rgba\"):i.color),r.stroke=p(c.connectorColor,e.connectorColor,i.color)),t[u].radius=this.getRangeRadius(c.value),t[u]=h(t[u],{center:t[0].radius-t[u].radius+s}),d||h(!0,t[u],{bubbleAttribs:h(a),connectorAttribs:h(r),labelAttribs:n})},this)}getRangeRadius(t){let e=this.options,i=this.options.seriesIndex,s=this.chart.series[i],o=e.ranges[0].value,a=e.ranges[e.ranges.length-1].value,r=e.minSize,n=e.maxSize;return s.getRadius.call(this,a,o,r,n,t)}render(){let t=this.legendItem||{},e=this.chart.renderer,i=this.options.zThreshold;for(let s of(this.symbols||(this.symbols={connectors:[],bubbleItems:[],labels:[]}),t.symbol=e.g(\"bubble-legend\"),t.label=e.g(\"bubble-legend-item\").css(this.legend.itemStyle||{}),t.symbol.translateX=0,t.symbol.translateY=0,t.symbol.add(t.label),t.label.add(t.group),this.ranges))s.value>=i&&this.renderRange(s);this.hideOverlappingLabels()}renderRange(t){let e=this.ranges[0],i=this.legend,s=this.options,o=s.labels,a=this.chart,r=a.series[s.seriesIndex],n=a.renderer,l=this.symbols,h=l.labels,p=t.center,d=Math.abs(t.radius),c=s.connectorDistance||0,u=o.align,g=i.options.rtl,f=s.borderWidth,b=s.connectorWidth,m=e.radius||0,y=p-d-f/2+b/2,x=(y%1?1:.5)-(b%2?0:.5),P=n.styledMode,S=g||\"left\"===u?-c:c;\"center\"===u&&(S=0,s.connectorDistance=0,t.labelAttribs.align=\"center\"),l.bubbleItems.push(n.circle(m,p+x,d).attr(P?{}:t.bubbleAttribs).addClass((P?\"highcharts-color-\"+r.colorIndex+\" \":\"\")+\"highcharts-bubble-legend-symbol \"+(s.className||\"\")).add(this.legendItem.symbol)),l.connectors.push(n.path(n.crispLine([[\"M\",m,y],[\"L\",m+S,y]],s.connectorWidth)).attr(P?{}:t.connectorAttribs).addClass((P?\"highcharts-color-\"+this.options.seriesIndex+\" \":\"\")+\"highcharts-bubble-legend-connectors \"+(s.connectorClassName||\"\")).add(this.legendItem.symbol));let M=n.text(this.formatLabel(t)).attr(P?{}:t.labelAttribs).css(P?{}:o.style).addClass(\"highcharts-bubble-legend-labels \"+(s.labels.className||\"\")).add(this.legendItem.symbol),L={x:m+S+s.labels.x,y:y+s.labels.y+.4*M.getBBox().height};M.attr(L),h.push(M),M.placed=!0,M.alignAttr=L}getMaxLabelSize(){let t,e;return this.symbols.labels.forEach(function(i){e=i.getBBox(!0),t=t?e.width>t.width?e:t:e}),t||{}}formatLabel(t){let i=this.options,s=i.labels.formatter,o=i.labels.format,{numberFormatter:a}=this.chart;return o?e.format(o,t):s?s.call(t):a(t.value,1)}hideOverlappingLabels(){let t=this.chart,e=this.options.labels.allowOverlap,i=this.symbols;!e&&i&&(t.hideOverlappingLabels(i.labels),i.labels.forEach(function(t,e){t.newOpacity?t.newOpacity!==t.oldOpacity&&i.connectors[e].show():i.connectors[e].hide()}))}getRanges(){let t=this.legend.bubbleLegend,e=t.chart.series,i=t.options.ranges,s,o,a=Number.MAX_VALUE,d=-Number.MAX_VALUE;return e.forEach(function(t){t.isBubble&&!t.ignoreSeries&&(o=t.zData.filter(l)).length&&(a=p(t.options.zMin,Math.min(a,Math.max(n(o),!1===t.options.displayNegative?t.options.zThreshold:-Number.MAX_VALUE))),d=p(t.options.zMax,Math.max(d,r(o))))}),s=a===d?[{value:d}]:[{value:a},{value:(a+d)/2},{value:d,autoRanges:!0}],i.length&&i[0].radius&&s.reverse(),s.forEach(function(t,e){i&&i[e]&&(s[e]=h(i[e],t))}),s}predictBubbleSizes(){let t=this.chart,e=t.legend.options,i=e.floating,s=\"horizontal\"===e.layout,o=s?t.legend.lastLineHeight:0,a=t.plotSizeX,r=t.plotSizeY,n=t.series[this.options.seriesIndex],l=n.getPxExtremes(),h=Math.ceil(l.minPxSize),p=Math.ceil(l.maxPxSize),d=Math.min(r,a),c,u=n.options.maxSize;return i||!/%$/.test(u)?c=p:(c=(d+o)*(u=parseFloat(u))/100/(u/100+1),(s&&r-c>=a||!s&&a-c>=r)&&(c=p)),[h,Math.ceil(c)]}updateRanges(t,e){let i=this.legend.options.bubbleLegend;i.minSize=t,i.maxSize=e,i.ranges=this.getRanges()}correctSizes(){let t=this.legend,e=this.chart.series[this.options.seriesIndex].getPxExtremes();Math.abs(Math.ceil(e.maxPxSize)-this.options.maxSize)>1&&(this.updateRanges(this.options.minSize,e.maxPxSize),t.render())}}}),i(e,\"Series/Bubble/BubbleLegendComposition.js\",[e[\"Series/Bubble/BubbleLegendDefaults.js\"],e[\"Series/Bubble/BubbleLegendItem.js\"],e[\"Core/Defaults.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,o){let{setOptions:a}=i,{composed:r}=s,{addEvent:n,objectEach:l,pushUnique:h,wrap:p}=o;function d(t,e,i){let s,o,a;let r=this.legend,n=c(this)>=0;r&&r.options.enabled&&r.bubbleLegend&&r.options.bubbleLegend.autoRanges&&n?(s=r.bubbleLegend.options,o=r.bubbleLegend.predictBubbleSizes(),r.bubbleLegend.updateRanges(o[0],o[1]),s.placed||(r.group.placed=!1,r.allItems.forEach(t=>{(a=t.legendItem||{}).group&&(a.group.translateY=void 0)})),r.render(),s.placed||(this.getMargins(),this.axes.forEach(function(t){t.visible&&t.render(),s.placed||(t.setScale(),t.updateNames(),l(t.ticks,function(t){t.isNew=!0,t.isNewLabel=!0}))}),this.getMargins()),s.placed=!0,t.call(this,e,i),r.bubbleLegend.correctSizes(),b(r,u(r))):(t.call(this,e,i),r&&r.options.enabled&&r.bubbleLegend&&(r.render(),b(r,u(r))))}function c(t){let e=t.series,i=0;for(;io.height&&(o.height=e[l].itemHeight);o.step=n}return i}function g(t){let i=this.bubbleLegend,s=this.options,o=s.bubbleLegend,a=c(this.chart);i&&i.ranges&&i.ranges.length&&(o.ranges.length&&(o.autoRanges=!!o.ranges[0].autoRanges),this.destroyItem(i)),a>=0&&s.enabled&&o.enabled&&(o.seriesIndex=a,this.bubbleLegend=new e(o,this),this.bubbleLegend.addToLegend(t.allItems))}function f(t){let e;if(t.defaultPrevented)return!1;let i=t.legendItem,s=this.chart,o=i.visible;this&&this.bubbleLegend&&(i.visible=!o,i.ignoreSeries=o,e=c(s)>=0,this.bubbleLegend.visible!==e&&(this.update({bubbleLegend:{enabled:e}}),this.bubbleLegend.visible=e),i.visible=o)}function b(t,e){let i=t.allItems,s=t.options.rtl,o,a,r,n,l=0;i.forEach((t,i)=>{(n=t.legendItem||{}).group&&(o=n.group.translateX||0,a=n.y||0,((r=t.movementX)||s&&t.ranges)&&(r=s?o-t.options.maxSize/2:o+r,n.group.attr({translateX:r})),i>e[l].step&&l++,n.group.attr({translateY:Math.round(a+e[l].height/2)}),n.y=a+e[l].height/2)})}return{compose:function(e,i){h(r,\"Series.BubbleLegend\")&&(a({legend:{bubbleLegend:t}}),p(e.prototype,\"drawChartBox\",d),n(i,\"afterGetAllItems\",g),n(i,\"itemClick\",f))}}}),i(e,\"Series/Bubble/BubblePoint.js\",[e[\"Core/Series/Point.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{seriesTypes:{scatter:{prototype:{pointClass:s}}}}=e,{extend:o}=i;class a extends s{haloPath(e){return t.prototype.haloPath.call(this,0===e?0:(this.marker&&this.marker.radius||0)+e)}}return o(a.prototype,{ttBelow:!1}),a}),i(e,\"Series/Bubble/BubbleSeries.js\",[e[\"Series/Bubble/BubbleLegendComposition.js\"],e[\"Series/Bubble/BubblePoint.js\"],e[\"Core/Color/Color.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,o,a){let{parse:r}=i,{composed:n,noop:l}=s,{series:h,seriesTypes:{column:{prototype:p},scatter:d}}=o,{addEvent:c,arrayMax:u,arrayMin:g,clamp:f,extend:b,isNumber:m,merge:y,pick:x,pushUnique:P}=a;function S(){let t=this.len,{coll:e,isXAxis:i,min:s}=this,o=i?\"xData\":\"yData\",a=(this.max||0)-(s||0),r=0,n=t,l=t/a,h;(\"xAxis\"===e||\"yAxis\"===e)&&(this.series.forEach(t=>{if(t.bubblePadding&&t.reserveSpace()){this.allowZoomOutside=!0,h=!0;let e=t[o];if(i&&((t.onPoint||t).getRadii(0,0,t),t.onPoint&&(t.radii=t.onPoint.radii)),a>0){let i=e.length;for(;i--;)if(m(e[i])&&this.dataMin<=e[i]&&e[i]<=this.max){let o=t.radii&&t.radii[i]||0;r=Math.min((e[i]-s)*l-o,r),n=Math.max((e[i]-s)*l+o,n)}}}}),h&&a>0&&!this.logarithmic&&(n-=t,l*=(t+Math.max(0,r)-Math.min(n,t))/t,[[\"min\",\"userMin\",r],[\"max\",\"userMax\",n]].forEach(t=>{void 0===x(this.options[t[0]],this[t[1]])&&(this[t[0]]+=t[2]/l)})))}class M extends d{static compose(e,i,s){t.compose(i,s),P(n,\"Series.Bubble\")&&c(e,\"foundExtremes\",S)}animate(t){!t&&this.points.length{if(s.bubblePadding&&s.reserveSpace()){let o=(s.onPoint||s).getZExtremes();o&&(e=Math.min(x(e,o.zMin),o.zMin),i=Math.max(x(i,o.zMax),o.zMax),t=!0)}}),t?(r={zMin:e,zMax:i},this.chart.bubbleZExtremes=r):r={zMin:0,zMax:0}}for(o=0,s=t.length;o0&&(p=(o-t)/h)}return n&&p>=0&&(p=Math.sqrt(p)),Math.ceil(i+p*(s-i))/2}hasData(){return!!this.processedXData.length}markerAttribs(t,e){let i=super.markerAttribs(t,e),{height:s=0,width:o=0}=i;return this.chart.inverted?b(i,{x:(t.plotX||0)-o/2,y:(t.plotY||0)-s/2}):i}pointAttribs(t,e){let i=this.options.marker.fillOpacity,s=h.prototype.pointAttribs.call(this,t,e);return 1!==i&&(s.fill=r(s.fill).setOpacity(i).get(\"rgba\")),s}translate(){super.translate.call(this),this.getRadii(),this.translateBubble()}translateBubble(){let{data:t,options:e,radii:i}=this,{minPxSize:s}=this.getPxExtremes(),o=t.length;for(;o--;){let a=t[o],r=i?i[o]:0;\"z\"===this.zoneAxis&&(a.negative=(a.z||0)<(e.zThreshold||0)),m(r)&&r>=s/2?(a.marker=b(a.marker,{radius:r,width:2*r,height:2*r}),a.dlBox={x:a.plotX-r,y:a.plotY-r,width:2*r,height:2*r}):(a.shapeArgs=a.plotY=a.dlBox=void 0,a.isInside=!1)}}getPxExtremes(){let t=Math.min(this.chart.plotWidth,this.chart.plotHeight),e=e=>{let i;return\"string\"==typeof e&&(i=/%$/.test(e),e=parseInt(e,10)),i?t*e/100:e},i=e(x(this.options.minSize,8)),s=Math.max(e(x(this.options.maxSize,\"20%\")),i);return{minPxSize:i,maxPxSize:s}}getZExtremes(){let t=this.options,e=(this.zData||[]).filter(m);if(e.length){let i=x(t.zMin,f(g(e),!1===t.displayNegative?t.zThreshold||0:-Number.MAX_VALUE,Number.MAX_VALUE)),s=x(t.zMax,u(e));if(m(i)&&m(s))return{zMin:i,zMax:s}}}}return M.defaultOptions=y(d.defaultOptions,{dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{z:e}=this.point;return m(e)?t(e,-1):\"\"},inside:!0,verticalAlign:\"middle\"},animationLimit:250,marker:{lineColor:null,lineWidth:1,fillOpacity:.5,radius:null,states:{hover:{radiusPlus:0}},symbol:\"circle\"},minSize:8,maxSize:\"20%\",softThreshold:!1,states:{hover:{halo:{size:5}}},tooltip:{pointFormat:\"({point.x}, {point.y}), Size: {point.z}\"},turboThreshold:0,zThreshold:0,zoneAxis:\"z\"}),b(M.prototype,{alignDataLabel:p.alignDataLabel,applyZones:l,bubblePadding:!0,isBubble:!0,pointArrayMap:[\"y\",\"z\"],pointClass:e,parallelArrays:[\"x\",\"y\",\"z\"],trackerGroups:[\"group\",\"dataLabelsGroup\"],specialGroup:\"group\",zoneAxis:\"z\"}),c(M,\"updatedData\",t=>{delete t.target.chart.bubbleZExtremes}),c(M,\"remove\",t=>{delete t.target.chart.bubbleZExtremes}),o.registerSeriesType(\"bubble\",M),M}),i(e,\"Series/ColumnRange/ColumnRangePoint.js\",[e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{seriesTypes:{column:{prototype:{pointClass:{prototype:i}}},arearange:{prototype:{pointClass:s}}}}=t,{extend:o,isNumber:a}=e;class r extends s{isValid(){return a(this.low)}}return o(r.prototype,{setState:i.setState}),r}),i(e,\"Series/ColumnRange/ColumnRangeSeries.js\",[e[\"Series/ColumnRange/ColumnRangePoint.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{noop:o}=e,{seriesTypes:{arearange:a,column:r,column:{prototype:n}}}=i,{addEvent:l,clamp:h,extend:p,isNumber:d,merge:c,pick:u}=s;class g extends a{setOptions(){return c(!0,arguments[0],{stacking:void 0}),a.prototype.setOptions.apply(this,arguments)}translate(){return n.translate.apply(this)}pointAttribs(){return n.pointAttribs.apply(this,arguments)}translate3dPoints(){return n.translate3dPoints.apply(this,arguments)}translate3dShapes(){return n.translate3dShapes.apply(this,arguments)}afterColumnTranslate(){let t,e,i,s;let o=this.yAxis,a=this.xAxis,r=a.startAngleRad,n=this.chart,l=this.xAxis.isRadial,p=Math.max(n.chartWidth,n.chartHeight)+999;this.points.forEach(g=>{let f=g.shapeArgs||{},b=this.options.minPointLength,m=g.plotY,y=o.translate(g.high,0,1,0,1);if(d(y)&&d(m)){if(g.plotHigh=h(y,-p,p),g.plotLow=h(m,-p,p),s=g.plotHigh,Math.abs(t=u(g.rectPlotY,g.plotY)-g.plotHigh)● {series.name}: {point.low} - {point.high}
'},whiskerWidth:null}}),i(e,\"Series/ErrorBar/ErrorBarSeries.js\",[e[\"Series/BoxPlot/BoxPlotSeries.js\"],e[\"Series/Column/ColumnSeries.js\"],e[\"Series/ErrorBar/ErrorBarSeriesDefaults.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,o){let{arearange:a}=s.seriesTypes,{addEvent:r,merge:n,extend:l}=o;class h extends t{getColumnMetrics(){return this.linkedParent&&this.linkedParent.columnMetrics||e.prototype.getColumnMetrics.call(this)}drawDataLabels(){let t=this.pointValKey;if(a)for(let e of(a.prototype.drawDataLabels.call(this),this.points))e.y=e[t]}toYData(t){return[t.low,t.high]}}return h.defaultOptions=n(t.defaultOptions,i),r(h,\"afterTranslate\",function(){for(let t of this.points)t.plotLow=t.plotY},{order:0}),l(h.prototype,{pointArrayMap:[\"low\",\"high\"],pointValKey:\"high\",doQuartiles:!1}),s.registerSeriesType(\"errorbar\",h),h}),i(e,\"Series/Gauge/GaugePoint.js\",[e[\"Core/Series/SeriesRegistry.js\"]],function(t){let{series:{prototype:{pointClass:e}}}=t;return class extends e{setState(t){this.state=t}}}),i(e,\"Series/Gauge/GaugeSeries.js\",[e[\"Series/Gauge/GaugePoint.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{noop:o}=e,{series:a,seriesTypes:{column:r}}=i,{clamp:n,isNumber:l,extend:h,merge:p,pick:d,pInt:c,defined:u}=s;class g extends a{translate(){let t=this.yAxis,e=this.options,i=t.center;this.generatePoints(),this.points.forEach(s=>{let o=p(e.dial,s.dial),a=c(o.radius)*i[2]/200,r=c(o.baseLength)*a/100,h=c(o.rearLength)*a/100,d=o.baseWidth,g=o.topWidth,f=e.overshoot,b=t.startAngleRad+t.translate(s.y,void 0,void 0,void 0,!0);(l(f)||!1===e.wrap)&&(f=l(f)?f/180*Math.PI:0,b=n(b,t.startAngleRad-f,t.endAngleRad+f)),b=180*b/Math.PI,s.shapeType=\"path\";let m=o.path||[[\"M\",-h,-d/2],[\"L\",r,-d/2],[\"L\",a,-g/2],[\"L\",a,g/2],[\"L\",r,d/2],[\"L\",-h,d/2],[\"Z\"]];s.shapeArgs={d:m,translateX:i[0],translateY:i[1],rotation:b},s.plotX=i[0],s.plotY=i[1],u(s.y)&&t.max-t.min&&(s.percentage=(s.y-t.min)/(t.max-t.min)*100)})}drawPoints(){let t=this,e=t.chart,i=t.yAxis.center,s=t.pivot,o=t.options,a=o.pivot,r=e.renderer;t.points.forEach(i=>{let s=i.graphic,a=i.shapeArgs,n=a.d,l=p(o.dial,i.dial);s?(s.animate(a),a.d=n):i.graphic=r[i.shapeType](a).addClass(\"highcharts-dial\").add(t.group),e.styledMode||i.graphic[s?\"animate\":\"attr\"]({stroke:l.borderColor,\"stroke-width\":l.borderWidth,fill:l.backgroundColor})}),s?s.animate({translateX:i[0],translateY:i[1]}):a&&(t.pivot=r.circle(0,0,a.radius).attr({zIndex:2}).addClass(\"highcharts-pivot\").translate(i[0],i[1]).add(t.group),e.styledMode||t.pivot.attr({fill:a.backgroundColor,stroke:a.borderColor,\"stroke-width\":a.borderWidth}))}animate(t){let e=this;t||e.points.forEach(t=>{let i=t.graphic;i&&(i.attr({rotation:180*e.yAxis.startAngleRad/Math.PI}),i.animate({rotation:t.shapeArgs.rotation},e.options.animation))})}render(){this.group=this.plotGroup(\"group\",\"series\",this.visible?\"inherit\":\"hidden\",this.options.zIndex,this.chart.seriesGroup),a.prototype.render.call(this),this.group.clip(this.chart.clipRect)}setData(t,e){a.prototype.setData.call(this,t,!1),this.processData(),this.generatePoints(),d(e,!0)&&this.chart.redraw()}hasData(){return!!this.points.length}}return g.defaultOptions=p(a.defaultOptions,{dataLabels:{borderColor:\"#cccccc\",borderRadius:3,borderWidth:1,crop:!1,defer:!1,enabled:!0,verticalAlign:\"top\",y:15,zIndex:2},dial:{backgroundColor:\"#000000\",baseLength:\"70%\",baseWidth:3,borderColor:\"#cccccc\",borderWidth:0,radius:\"80%\",rearLength:\"10%\",topWidth:1},pivot:{radius:5,borderWidth:0,borderColor:\"#cccccc\",backgroundColor:\"#000000\"},tooltip:{headerFormat:\"\"},showInLegend:!1}),h(g.prototype,{angular:!0,directTouch:!0,drawGraph:o,drawTracker:r.prototype.drawTracker,fixedBox:!0,forceDL:!0,noSharedTooltip:!0,pointClass:t,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),i.registerSeriesType(\"gauge\",g),g}),i(e,\"Series/DragNodesComposition.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{composed:i}=t,{addEvent:s,pushUnique:o}=e;function a(){let t,e,i;let o=this;o.container&&(t=s(o.container,\"mousedown\",t=>{let a=o.hoverPoint;a&&a.series&&a.series.hasDraggableNodes&&a.series.options.draggable&&(a.series.onMouseDown(a,t),e=s(o.container,\"mousemove\",t=>a&&a.series&&a.series.onMouseMove(a,t)),i=s(o.container.ownerDocument,\"mouseup\",t=>(e(),i(),a&&a.series&&a.series.onMouseUp(a,t))))})),s(o,\"destroy\",function(){t()})}return{compose:function(t){o(i,\"DragNodes\")&&s(t,\"load\",a)},onMouseDown:function(t,e){let i=this.chart.pointer?.normalize(e)||e;t.fixedPosition={chartX:i.chartX,chartY:i.chartY,plotX:t.plotX,plotY:t.plotY},t.inDragMode=!0},onMouseMove:function(t,e){if(t.fixedPosition&&t.inDragMode){let i,s;let o=this.chart,a=o.pointer?.normalize(e)||e,r=t.fixedPosition.chartX-a.chartX,n=t.fixedPosition.chartY-a.chartY,l=o.graphLayoutsLookup;(Math.abs(r)>5||Math.abs(n)>5)&&(i=t.fixedPosition.plotX-r,s=t.fixedPosition.plotY-n,o.isInsidePlot(i,s)&&(t.plotX=i,t.plotY=s,t.hasDragged=!0,this.redrawHalo(t),l.forEach(t=>{t.restartSimulation()})))}},onMouseUp:function(t){t.fixedPosition&&(t.hasDragged&&(this.layout.enableSimulation?this.layout.start():this.chart.redraw()),t.inDragMode=t.hasDragged=!1,this.options.fixedDraggable||delete t.fixedPosition)},redrawHalo:function(t){t&&this.halo&&this.halo.attr({d:t.haloPath(this.options.states.hover.halo.size)})}}}),i(e,\"Series/GraphLayoutComposition.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{setAnimation:s}=t,{composed:o}=e,{addEvent:a,pushUnique:r}=i;function n(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation()}),this.redraw())}function l(){this.graphLayoutsLookup&&(this.graphLayoutsLookup.forEach(t=>{t.updateSimulation(!1)}),this.redraw())}function h(){this.graphLayoutsLookup&&this.graphLayoutsLookup.forEach(t=>{t.stop()})}function p(){let t,e=!1,i=i=>{i.maxIterations--&&isFinite(i.temperature)&&!i.isStable()&&!i.enableSimulation&&(i.beforeStep&&i.beforeStep(),i.step(),t=!1,e=!0)};if(this.graphLayoutsLookup){for(s(!1,this),this.graphLayoutsLookup.forEach(t=>t.start());!t;)t=!0,this.graphLayoutsLookup.forEach(i);e&&this.series.forEach(t=>{t&&t.layout&&t.render()})}}return{compose:function(t){r(o,\"GraphLayout\")&&(a(t,\"afterPrint\",n),a(t,\"beforePrint\",l),a(t,\"predraw\",h),a(t,\"render\",p))},integrations:{},layouts:{}}}),i(e,\"Series/PackedBubble/PackedBubblePoint.js\",[e[\"Core/Chart/Chart.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Series/SeriesRegistry.js\"]],function(t,e,i){let{seriesTypes:{bubble:{prototype:{pointClass:s}}}}=i;return class extends s{destroy(){return this.series?.layout&&this.series.layout.removeElementFromCollection(this,this.series.layout.nodes),e.prototype.destroy.apply(this,arguments)}firePointEvent(){let t=this.series.options;if(this.isParentNode&&t.parentNode){let i=t.allowPointSelect;t.allowPointSelect=t.parentNode.allowPointSelect,e.prototype.firePointEvent.apply(this,arguments),t.allowPointSelect=i}else e.prototype.firePointEvent.apply(this,arguments)}select(){let i=this.series.chart;this.isParentNode?(i.getSelectedPoints=i.getSelectedParentNodes,e.prototype.select.apply(this,arguments),i.getSelectedPoints=t.prototype.getSelectedPoints):e.prototype.select.apply(this,arguments)}}}),i(e,\"Series/PackedBubble/PackedBubbleSeriesDefaults.js\",[e[\"Core/Utilities.js\"]],function(t){let{isNumber:e}=t;return{minSize:\"10%\",maxSize:\"50%\",sizeBy:\"area\",zoneAxis:\"y\",crisp:!1,tooltip:{pointFormat:\"Value: {point.value}\"},draggable:!0,useSimulation:!0,parentNode:{allowPointSelect:!1},dataLabels:{formatter:function(){let{numberFormatter:t}=this.series.chart,{value:i}=this.point;return e(i)?t(i,-1):\"\"},parentNodeFormatter:function(){return this.name},parentNodeTextPath:{enabled:!0},padding:0,style:{transition:\"opacity 2000ms\"}},layoutAlgorithm:{initialPositions:\"circle\",initialPositionRadius:20,bubblePadding:5,parentNodeLimit:!1,seriesInteraction:!0,dragBetweenSeries:!1,parentNodeOptions:{maxIterations:400,gravitationalConstant:.03,maxSpeed:50,initialPositionRadius:100,seriesInteraction:!0,marker:{fillColor:null,fillOpacity:1,lineWidth:null,lineColor:null,symbol:\"circle\"}},enableSimulation:!0,type:\"packedbubble\",integration:\"packedbubble\",maxIterations:1e3,splitSeries:!1,maxSpeed:5,gravitationalConstant:.01,friction:-.981}}}),i(e,\"Series/Networkgraph/VerletIntegration.js\",[],function(){return{attractive:function(t,e,i){let s=t.getMass(),o=-i.x*e*this.diffTemperature,a=-i.y*e*this.diffTemperature;t.fromNode.fixedPosition||(t.fromNode.plotX-=o*s.fromNode/t.fromNode.degree,t.fromNode.plotY-=a*s.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.plotX+=o*s.toNode/t.toNode.degree,t.toNode.plotY+=a*s.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return(e-t)/t},barycenter:function(){let t=this.options.gravitationalConstant||0,e=(this.barycenter.xFactor-(this.box.left+this.box.width)/2)*t,i=(this.barycenter.yFactor-(this.box.top+this.box.height)/2)*t;this.nodes.forEach(function(t){t.fixedPosition||(t.plotX-=e/t.mass/t.degree,t.plotY-=i/t.mass/t.degree)})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.5)},integrate:function(t,e){let i=-t.options.friction,s=t.options.maxSpeed,o=e.prevX,a=e.prevY,r=(e.plotX+e.dispX-o)*i,n=(e.plotY+e.dispY-a)*i,l=Math.abs,h=l(r)/(r||1),p=l(n)/(n||1),d=h*Math.min(s,Math.abs(r)),c=p*Math.min(s,Math.abs(n));e.prevX=e.plotX+e.dispX,e.prevY=e.plotY+e.dispY,e.plotX+=d,e.plotY+=c,e.temperature=t.vectorLength({x:d,y:c})},repulsive:function(t,e,i){let s=e*this.diffTemperature/t.mass/t.degree;t.fixedPosition||(t.plotX+=i.x*s,t.plotY+=i.y*s)},repulsiveForceFunction:function(t,e){return(e-t)/t*(e>t?1:0)}}}),i(e,\"Series/PackedBubble/PackedBubbleIntegration.js\",[e[\"Core/Globals.js\"],e[\"Series/Networkgraph/VerletIntegration.js\"]],function(t,e){let{noop:i}=t;return{barycenter:function(){let t,e;let i=this.options.gravitationalConstant,s=this.box,o=this.nodes;for(let a of o)this.options.splitSeries&&!a.isParentNode?(t=a.series.parentNode.plotX,e=a.series.parentNode.plotY):(t=s.width/2,e=s.height/2),a.fixedPosition||(a.plotX-=(a.plotX-t)*i/(a.mass*Math.sqrt(o.length)),a.plotY-=(a.plotY-e)*i/(a.mass*Math.sqrt(o.length)))},getK:i,integrate:e.integrate,repulsive:function(t,e,i,s){let o=e*this.diffTemperature/t.mass/t.degree,a=i.x*o,r=i.y*o;t.fixedPosition||(t.plotX+=a,t.plotY+=r),s.fixedPosition||(s.plotX-=a,s.plotY-=r)},repulsiveForceFunction:function(t,e,i,s){return Math.min(t,(i.marker.radius+s.marker.radius)/2)}}}),i(e,\"Series/Networkgraph/EulerIntegration.js\",[],function(){return{attractive:function(t,e,i,s){let o=t.getMass(),a=i.x/s*e,r=i.y/s*e;t.fromNode.fixedPosition||(t.fromNode.dispX-=a*o.fromNode/t.fromNode.degree,t.fromNode.dispY-=r*o.fromNode/t.fromNode.degree),t.toNode.fixedPosition||(t.toNode.dispX+=a*o.toNode/t.toNode.degree,t.toNode.dispY+=r*o.toNode/t.toNode.degree)},attractiveForceFunction:function(t,e){return t*t/e},barycenter:function(){let t=this.options.gravitationalConstant,e=this.barycenter.xFactor,i=this.barycenter.yFactor;this.nodes.forEach(function(s){if(!s.fixedPosition){let o=s.getDegree(),a=o*(1+o/2);s.dispX+=(e-s.plotX)*t*a/s.degree,s.dispY+=(i-s.plotY)*t*a/s.degree}})},getK:function(t){return Math.pow(t.box.width*t.box.height/t.nodes.length,.3)},integrate:function(t,e){e.dispX+=e.dispX*t.options.friction,e.dispY+=e.dispY*t.options.friction;let i=e.temperature=t.vectorLength({x:e.dispX,y:e.dispY});0!==i&&(e.plotX+=e.dispX/i*Math.min(Math.abs(e.dispX),t.temperature),e.plotY+=e.dispY/i*Math.min(Math.abs(e.dispY),t.temperature))},repulsive:function(t,e,i,s){t.dispX+=i.x/s*e/t.degree,t.dispY+=i.y/s*e/t.degree},repulsiveForceFunction:function(t,e){return e*e/t}}}),i(e,\"Series/Networkgraph/QuadTreeNode.js\",[],function(){class t{constructor(t){this.body=!1,this.isEmpty=!1,this.isInternal=!1,this.nodes=[],this.box=t,this.boxSize=Math.min(t.width,t.height)}divideBox(){let e=this.box.width/2,i=this.box.height/2;this.nodes[0]=new t({left:this.box.left,top:this.box.top,width:e,height:i}),this.nodes[1]=new t({left:this.box.left+e,top:this.box.top,width:e,height:i}),this.nodes[2]=new t({left:this.box.left+e,top:this.box.top+i,width:e,height:i}),this.nodes[3]=new t({left:this.box.left,top:this.box.top+i,width:e,height:i})}getBoxPosition(t){let e=t.plotXthis.step())):(this.simulation=!1,this.series.forEach(t=>{p(t,\"afterSimulation\")}))}}stop(){this.simulation&&r.cancelAnimationFrame(this.simulation)}setArea(t,e,i,s){this.box={left:t,top:e,width:i,height:s}}setK(){this.k=this.options.linkLength||this.integration.getK(this)}addElementsToCollection(t,e){for(let i of t)-1===e.indexOf(i)&&e.push(i)}removeElementFromCollection(t,e){let i=e.indexOf(t);-1!==i&&e.splice(i,1)}clear(){this.nodes.length=0,this.links.length=0,this.series.length=0,this.resetSimulation()}resetSimulation(){this.forcedStop=!1,this.systemTemperature=0,this.setMaxIterations(),this.setTemperature(),this.setDiffTemperature()}restartSimulation(){this.simulation?this.resetSimulation():(this.setInitialRendering(!1),this.enableSimulation?this.start():this.setMaxIterations(1),this.chart&&this.chart.redraw(),this.setInitialRendering(!0))}setMaxIterations(t){this.maxIterations=d(t,this.options.maxIterations)}setTemperature(){this.temperature=this.startTemperature=Math.sqrt(this.nodes.length)}setDiffTemperature(){this.diffTemperature=this.startTemperature/(this.options.maxIterations+1)}setInitialRendering(t){this.initialRendering=t}createQuadTree(){this.quadTree=new s(this.box.left,this.box.top,this.box.width,this.box.height),this.quadTree.insertNodes(this.nodes)}initPositions(){let t=this.options.initialPositions;if(h(t))for(let e of(t.call(this),this.nodes))l(e.prevX)||(e.prevX=e.plotX),l(e.prevY)||(e.prevY=e.plotY),e.dispX=0,e.dispY=0;else\"circle\"===t?this.setCircularPositions():this.setRandomPositions()}setCircularPositions(){let t;let e=this.box,i=this.nodes,s=2*Math.PI/(i.length+1),o=i.filter(function(t){return 0===t.linksTo.length}),a={},r=this.options.initialPositionRadius,n=t=>{for(let e of t.linksFrom||[])a[e.toNode.id]||(a[e.toNode.id]=!0,l.push(e.toNode),n(e.toNode))},l=[];for(let t of o)l.push(t),n(t);if(l.length)for(let t of i)-1===l.indexOf(t)&&l.push(t);else l=i;for(let i=0,o=l.length;i{let e=t*t/Math.PI;return e-Math.floor(e)};for(let a=0,r=i.length;athis.barnesHutApproximation(t,e));else{let t,e,i;for(let s of this.nodes)for(let o of this.nodes)s===o||s.fixedPosition||(i=this.getDistXY(s,o),0!==(e=this.vectorLength(i))&&(t=this.repulsiveForce(e,this.k),this.force(\"repulsive\",s,t*o.mass,i,e)))}}attractiveForces(){let t,e,i;for(let s of this.links)s.fromNode&&s.toNode&&(t=this.getDistXY(s.fromNode,s.toNode),0!==(e=this.vectorLength(t))&&(i=this.attractiveForce(e,this.k),this.force(\"attractive\",s,i,t,e)))}applyLimits(){for(let t of this.nodes)t.fixedPosition||(this.integration.integrate(this,t),this.applyLimitBox(t,this.box),t.dispX=0,t.dispY=0)}applyLimitBox(t,e){let i=t.radius;t.plotX=n(t.plotX,e.left+i,e.width-i),t.plotY=n(t.plotY,e.top+i,e.height-i)}coolDown(t,e,i){return t-e*i}isStable(){return 1e-5>Math.abs(this.systemTemperature-this.prevSystemTemperature)||this.temperature<=0}getSystemTemperature(){let t=0;for(let e of this.nodes)t+=e.temperature;return t}vectorLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}getDistR(t,e){let i=this.getDistXY(t,e);return this.vectorLength(i)}getDistXY(t,e){let i=t.plotX-e.plotX,s=t.plotY-e.plotY;return{x:i,y:s,absX:Math.abs(i),absY:Math.abs(s)}}}return c}),i(e,\"Series/PackedBubble/PackedBubbleLayout.js\",[e[\"Series/GraphLayoutComposition.js\"],e[\"Series/PackedBubble/PackedBubbleIntegration.js\"],e[\"Series/Networkgraph/ReingoldFruchtermanLayout.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{addEvent:o,pick:a}=s;function r(){let t=this.series,e=[];return t.forEach(t=>{t.parentNode&&t.parentNode.selected&&e.push(t.parentNode)}),e}function n(){this.allDataPoints&&delete this.allDataPoints}class l extends i{constructor(){super(...arguments),this.index=NaN,this.nodes=[],this.series=[]}static compose(s){i.compose(s),t.integrations.packedbubble=e,t.layouts.packedbubble=l;let a=s.prototype;a.getSelectedParentNodes||(o(s,\"beforeRedraw\",n),a.getSelectedParentNodes=r)}beforeStep(){this.options.marker&&this.series.forEach(t=>{t&&t.calculateParentRadius()})}isStable(){let t=Math.abs(this.prevSystemTemperature-this.systemTemperature);return 1>Math.abs(10*this.systemTemperature/Math.sqrt(this.nodes.length))&&t<1e-5||this.temperature<=0}setCircularPositions(){let t=this.box,e=this.nodes,i=2*Math.PI/(e.length+1),s=this.options.initialPositionRadius,o,r,n=0;for(let l of e)this.options.splitSeries&&!l.isParentNode?(o=l.series.parentNode.plotX,r=l.series.parentNode.plotY):(o=t.width/2,r=t.height/2),l.plotX=l.prevX=a(l.plotX,o+s*Math.cos(l.index||n*i)),l.plotY=l.prevY=a(l.plotY,r+s*Math.sin(l.index||n*i)),l.dispX=0,l.dispY=0,n++}repulsiveForces(){let t,e,i;let s=this,o=s.options.bubblePadding,a=s.nodes;a.forEach(r=>{r.degree=r.mass,r.neighbours=0,a.forEach(a=>{t=0,r!==a&&!r.fixedPosition&&(s.options.seriesInteraction||r.series===a.series)&&(i=s.getDistXY(r,a),(e=s.vectorLength(i)-(r.marker.radius+a.marker.radius+o))<0&&(r.degree+=.01,r.neighbours++,t=s.repulsiveForce(-e/Math.sqrt(r.neighbours),s.k,r,a)),s.force(\"repulsive\",r,t*a.mass,i,a,e))})})}applyLimitBox(t,e){let i,s;this.options.splitSeries&&!t.isParentNode&&this.options.parentNodeLimit&&(i=this.getDistXY(t,t.series.parentNode),(s=t.series.parentNodeRadius-t.marker.radius-this.vectorLength(i))<0&&s>-2*t.marker.radius&&(t.plotX-=.01*i.x,t.plotY-=.01*i.y)),super.applyLimitBox(t,e)}}return t.layouts.packedbubble=l,l}),i(e,\"Series/SimulationSeriesUtilities.js\",[e[\"Core/Utilities.js\"],e[\"Core/Animation/AnimationUtilities.js\"]],function(t,e){let{merge:i,syncTimeout:s}=t,{animObject:o}=e;return{initDataLabels:function(){let t=this.options.dataLabels;if(!this.dataLabelsGroup){let e=this.initDataLabelsGroup();return!this.chart.styledMode&&t?.style&&e.css(t.style),e.attr({opacity:0}),this.visible&&e.show(),e}return this.dataLabelsGroup.attr(i({opacity:1},this.getPlotBox(\"data-labels\"))),this.dataLabelsGroup},initDataLabelsDefer:function(){let t=this.options.dataLabels;t?.defer&&this.options.layoutAlgorithm?.enableSimulation?s(()=>{this.deferDataLabels=!1},t?o(t.animation).defer:0):this.deferDataLabels=!1}}}),i(e,\"Extensions/TextPath.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{deg2rad:i}=t,{addEvent:s,merge:o,uniqueKey:a,defined:r,extend:n}=e;function l(t,e){e=o(!0,{enabled:!0,attributes:{dy:-5,startOffset:\"50%\",textAnchor:\"middle\"}},e);let i=this.renderer.url,l=this.text||this,h=l.textPath,{attributes:p,enabled:d}=e;if(t=t||h&&h.path,h&&h.undo(),t&&d){let e=s(l,\"afterModifyTree\",e=>{if(t&&d){let s=t.attr(\"id\");s||t.attr(\"id\",s=a());let o={x:0,y:0};r(p.dx)&&(o.dx=p.dx,delete p.dx),r(p.dy)&&(o.dy=p.dy,delete p.dy),l.attr(o),this.attr({transform:\"\"}),this.box&&(this.box=this.box.destroy());let h=e.nodes.slice(0);e.nodes.length=0,e.nodes[0]={tagName:\"textPath\",attributes:n(p,{\"text-anchor\":p.textAnchor,href:`${i}#${s}`}),children:h}}});l.textPath={path:t,undo:e}}else l.attr({dx:0,dy:0}),delete l.textPath;return this.added&&(l.textCache=\"\",this.renderer.buildText(l)),this}function h(t){let e=t.bBox,s=this.element?.querySelector(\"textPath\");if(s){let t=[],{b:o,h:a}=this.renderer.fontMetrics(this.element),r=a-o,n=RegExp('(|]*>|<\\\\/tspan>)',\"g\"),l=s.innerHTML.replace(n,\"\").split(/]*>/),h=l.length,p=(t,e)=>{let{x:a,y:n}=e,l=(s.getRotationOfChar(t)-90)*i,h=Math.cos(l),p=Math.sin(l);return[[a-r*h,n-r*p],[a+o*h,n+o*p]]};for(let e=0,i=0;i{t.mass=2,t.degree=1,t.collisionNmb=1}),r.setArea(0,0,this.chart.plotWidth,this.chart.plotHeight),r.addElementsToCollection([this],r.series),r.addElementsToCollection(this.points,r.nodes)}addSeriesLayout(){let t=this.options.layoutAlgorithm=this.options.layoutAlgorithm||{},e=t.type||\"packedbubble\",s=this.chart.graphLayoutsStorage,o=this.chart.graphLayoutsLookup,a=k(t,t.parentNodeOptions,{enableSimulation:this.layout.options.enableSimulation}),r=s[e+\"-series\"];r||(s[e+\"-series\"]=r=new i.layouts[e],r.init(a),o.splice(r.index,0,r)),this.parentNodeLayout=r,this.createParentNodes()}calculateParentRadius(){let t=this.seriesBox();this.parentNodeRadius=x(Math.sqrt(2*this.parentNodeMass/Math.PI)+20,20,t?Math.max(Math.sqrt(Math.pow(t.width,2)+Math.pow(t.height,2))/2+20,20):Math.sqrt(2*this.parentNodeMass/Math.PI)+20),this.parentNode&&(this.parentNode.marker.radius=this.parentNode.radius=this.parentNodeRadius)}calculateZExtremes(){let t=this.chart.series,e=this.options.zMin,i=this.options.zMax,s=1/0,o=-1/0;return e&&i?[e,i]:(t.forEach(t=>{t.yData.forEach(t=>{P(t)&&(t>o&&(o=t),t{this.parentNodeMass+=Math.PI*Math.pow(t.marker.radius,2)}),this.calculateParentRadius(),i.nodes.forEach(t=>{t.seriesIndex===this.index&&(o=!0)}),i.setArea(0,0,e.plotWidth,e.plotHeight),o||(a||(a=new t(this,{mass:this.parentNodeRadius/2,marker:r,dataLabels:{inside:!1},states:{normal:{marker:r},hover:{marker:r}},dataLabelOnNull:!0,degree:this.parentNodeRadius,isParentNode:!0,seriesIndex:this.index})),this.parentNode&&(a.plotX=this.parentNode.plotX,a.plotY=this.parentNode.plotY),this.parentNode=a,i.addElementsToCollection([this],i.series),i.addElementsToCollection([a],i.nodes))}deferLayout(){let t=this.options.layoutAlgorithm;this.visible&&(this.addLayout(),t.splitSeries&&this.addSeriesLayout())}destroy(){this.chart.graphLayoutsLookup&&this.chart.graphLayoutsLookup.forEach(t=>{t.removeElementFromCollection(this,t.series)},this),this.parentNode&&this.parentNodeLayout&&(this.parentNodeLayout.removeElementFromCollection(this.parentNode,this.parentNodeLayout.nodes),this.parentNode.dataLabel&&(this.parentNode.dataLabel=this.parentNode.dataLabel.destroy())),g.destroy.apply(this,arguments)}drawDataLabels(){!this.deferDataLabels&&(g.drawDataLabels.call(this,this.points),this.parentNode&&(this.parentNode.formatPrefix=\"parentNode\",g.drawDataLabels.call(this,[this.parentNode])))}drawGraph(){if(!this.layout||!this.layout.options.splitSeries)return;let t=this.chart,e=this.layout.options.parentNodeOptions.marker,i={fill:e.fillColor||c(this.color).brighten(.4).get(),opacity:e.fillOpacity,stroke:e.lineColor||this.color,\"stroke-width\":v(e.lineWidth,this.options.lineWidth)},s={};this.parentNodesGroup=this.plotGroup(\"parentNodesGroup\",\"parentNode\",this.visible?\"inherit\":\"hidden\",.1,t.seriesGroup),this.group?.attr({zIndex:2}),this.calculateParentRadius(),this.parentNode&&P(this.parentNode.plotX)&&P(this.parentNode.plotY)&&P(this.parentNodeRadius)&&(s=k({x:this.parentNode.plotX-this.parentNodeRadius,y:this.parentNode.plotY-this.parentNodeRadius,width:2*this.parentNodeRadius,height:2*this.parentNodeRadius},i),this.parentNode.graphic||(this.graph=this.parentNode.graphic=t.renderer.symbol(i.symbol).add(this.parentNodesGroup)),this.parentNode.graphic.attr(s))}drawTracker(){let t;let e=this.parentNode;super.drawTracker(),e&&(t=L(e.dataLabels)?e.dataLabels:e.dataLabel?[e.dataLabel]:[],e.graphic&&(e.graphic.element.point=e),t.forEach(t=>{(t.div||t.element).point=e}))}getPointRadius(){let t,e,i,s;let o=this.chart,a=o.plotWidth,r=o.plotHeight,n=this.options,l=n.useSimulation,h=Math.min(a,r),p={},d=[],c=o.allDataPoints||[],u=c.length;[\"minSize\",\"maxSize\"].forEach(t=>{let e=parseInt(n[t],10),i=/%$/.test(n[t]);p[t]=i?h*e/100:e*Math.sqrt(u)}),o.minRadius=t=p.minSize/Math.sqrt(u),o.maxRadius=e=p.maxSize/Math.sqrt(u);let g=l?this.calculateZExtremes():[t,e];c.forEach((o,a)=>{i=l?x(o[2],g[0],g[1]):o[2],0===(s=this.getRadius(g[0],g[1],t,e,i))&&(s=null),c[a][2]=s,d.push(s)}),this.radii=d}init(){return g.init.apply(this,arguments),m.call(this),this.eventsToUnbind.push(y(this,\"updatedData\",function(){this.chart.series.forEach(t=>{t.type===this.type&&(t.isDirty=!0)},this)})),this}onMouseUp(t){if(t.fixedPosition&&!t.removed){let i;let s=this.layout,o=this.parentNodeLayout;o&&s.options.dragBetweenSeries&&o.nodes.forEach(e=>{t&&t.marker&&e!==t.series.parentNode&&(i=s.getDistXY(t,e),s.vectorLength(i)-e.marker.radius-t.marker.radius<0&&(e.series.addPoint(k(t.options,{plotX:t.plotX,plotY:t.plotY}),!1),s.removeElementFromCollection(t,s.nodes),t.remove()))}),e.onMouseUp.apply(this,arguments)}}placeBubbles(t){let e=this.checkOverlap,i=this.positionBubble,s=[],o=1,a=0,r=0,n,l=[],h,p=t.sort((t,e)=>e[2]-t[2]);if(p.length){if(s.push([[0,0,p[0][2],p[0][3],p[0][4]]]),p.length>1)for(s.push([[0,0-p[1][2]-p[0][2],p[1][2],p[1][3],p[1][4]]]),h=2;h1&&s[o-1][r+1]&&e(n,s[o-1][r+1])?(r++,s[o].push(i(s[o][a],s[o-1][r],p[h])),a++):(a++,s[o].push(n));this.chart.stages=s,this.chart.rawPositions=[].concat.apply([],s),this.resizeRadius(),l=this.chart.rawPositions}return l}pointAttribs(t,e){let i=this.options,s=t&&t.isParentNode,o=i.marker;s&&i.layoutAlgorithm&&i.layoutAlgorithm.parentNodeOptions&&(o=i.layoutAlgorithm.parentNodeOptions.marker);let a=o.fillOpacity,r=g.pointAttribs.call(this,t,e);return 1!==a&&(r[\"fill-opacity\"]=a),r}positionBubble(t,e,i){let s=Math.asin,o=Math.acos,a=Math.pow,r=Math.abs,n=(0,Math.sqrt)(a(t[0]-e[0],2)+a(t[1]-e[1],2)),l=o((a(n,2)+a(i[2]+e[2],2)-a(i[2]+t[2],2))/(2*(i[2]+e[2])*n)),h=s(r(t[0]-e[0])/n),p=(t[1]-e[1]<0?0:Math.PI)+l+h*((t[0]-e[0])*(t[1]-e[1])<0?1:-1),d=Math.cos(p),c=Math.sin(p);return[e[0]+(e[2]+i[2])*c,e[1]-(e[2]+i[2])*d,i[2],i[3],i[4]]}render(){let t=[];g.render.apply(this,arguments),!this.options.dataLabels.allowOverlap&&(this.data.forEach(e=>{L(e.dataLabels)&&e.dataLabels.forEach(e=>{t.push(e)})}),this.options.useSimulation&&this.chart.hideOverlappingLabels(t))}resizeRadius(){let t,e,i,s,o;let a=this.chart,r=a.rawPositions,n=Math.min,l=Math.max,h=a.plotLeft,p=a.plotTop,d=a.plotHeight,c=a.plotWidth;for(let a of(t=i=Number.POSITIVE_INFINITY,e=s=Number.NEGATIVE_INFINITY,r))o=a[2],t=n(t,a[0]-o),e=l(e,a[0]+o),i=n(i,a[1]-o),s=l(s,a[1]+o);let u=[e-t,s-i],g=[(c-h)/u[0],(d-p)/u[1]],f=n.apply([],g);if(Math.abs(f-1)>1e-10){for(let t of r)t[2]*=f;this.placeBubbles(r)}else a.diffY=d/2+p-i-(s-i)/2,a.diffX=c/2+h-t-(e-t)/2}seriesBox(){let t;let e=this.chart,i=this.data,s=Math.max,o=Math.min,a=[e.plotLeft,e.plotLeft+e.plotWidth,e.plotTop,e.plotTop+e.plotHeight];return i.forEach(e=>{P(e.plotX)&&P(e.plotY)&&e.marker.radius&&(t=e.marker.radius,a[0]=o(a[0],e.plotX-t),a[1]=s(a[1],e.plotX+t),a[2]=o(a[2],e.plotY-t),a[3]=s(a[3],e.plotY+t))}),C(a.width/a.height)?a:null}setVisible(){let t=this;g.setVisible.apply(t,arguments),t.parentNodeLayout&&t.graph?t.visible?(t.graph.show(),t.parentNode.dataLabel&&t.parentNode.dataLabel.show()):(t.graph.hide(),t.parentNodeLayout.removeElementFromCollection(t.parentNode,t.parentNodeLayout.nodes),t.parentNode.dataLabel&&t.parentNode.dataLabel.hide()):t.layout&&(t.visible?t.layout.addElementsToCollection(t.points,t.layout.nodes):t.points.forEach(e=>{t.layout.removeElementFromCollection(e,t.layout.nodes)}))}translate(){let t,e,i;let s=this.chart,o=this.data,a=this.index,r=this.options.useSimulation;for(let n of(this.processedXData=this.xData,this.generatePoints(),P(s.allDataPoints)||(s.allDataPoints=this.accumulateAllPoints(),this.getPointRadius()),r?i=s.allDataPoints:(i=this.placeBubbles(s.allDataPoints),this.options.draggable=!1),i))n[3]===a&&(t=o[n[4]],e=v(n[2],void 0),r||(t.plotX=n[0]-s.plotLeft+s.diffX,t.plotY=n[1]-s.plotTop+s.diffY),C(e)&&(t.marker=S(t.marker,{radius:e,width:2*e,height:2*e}),t.radius=e));r&&this.deferLayout(),M(this,\"afterTranslate\")}}return A.defaultOptions=k(f.defaultOptions,a),S(A.prototype,{pointClass:o,axisTypes:[],directTouch:!0,forces:[\"barycenter\",\"repulsive\"],hasDraggableNodes:!0,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointArrayMap:[\"value\"],pointValKey:\"value\",requireSorting:!1,trackerGroups:[\"group\",\"dataLabelsGroup\",\"parentNodesGroup\"],initDataLabels:b,alignDataLabel:g.alignDataLabel,indexateNodes:u,onMouseDown:e.onMouseDown,onMouseMove:e.onMouseMove,redrawHalo:e.redrawHalo,searchPoint:u}),n.registerSeriesType(\"packedbubble\",A),A}),i(e,\"Series/Polygon/PolygonSeriesDefaults.js\",[],function(){return{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:\"\"},trackByArea:!0,legendSymbol:\"rectangle\"}}),i(e,\"Series/Polygon/PolygonSeries.js\",[e[\"Core/Globals.js\"],e[\"Series/Polygon/PolygonSeriesDefaults.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{noop:o}=t,{area:a,line:r,scatter:n}=i.seriesTypes,{extend:l,merge:h}=s;class p extends n{getGraphPath(){let t=r.prototype.getGraphPath.call(this),e=t.length+1;for(;e--;)(e===t.length||\"M\"===t[e][0])&&e>0&&t.splice(e,0,[\"Z\"]);return this.areaPath=t,t}drawGraph(){this.options.fillColor=this.color,a.prototype.drawGraph.call(this)}}return p.defaultOptions=h(n.defaultOptions,e),l(p.prototype,{type:\"polygon\",drawTracker:r.prototype.drawTracker,setStackedPoints:o}),i.registerSeriesType(\"polygon\",p),p}),i(e,\"Core/Axis/RadialAxisDefaults.js\",[],function(){return{circular:{gridLineWidth:1,labels:{align:void 0,x:0,y:void 0,style:{textOverflow:\"none\"}},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},radial:{gridLineInterpolation:\"circle\",gridLineWidth:1,labels:{align:\"right\",padding:5,x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},radialGauge:{endOnTick:!1,gridLineWidth:0,labels:{align:\"center\",distance:-25,x:0,y:void 0},lineWidth:1,minorGridLineWidth:0,minorTickInterval:\"auto\",minorTickLength:10,minorTickPosition:\"inside\",minorTickWidth:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickPosition:\"inside\",tickWidth:2,title:{rotation:0,text:\"\"},zIndex:2}}}),i(e,\"Core/Axis/RadialAxis.js\",[e[\"Core/Axis/RadialAxisDefaults.js\"],e[\"Core/Defaults.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){var o;let{defaultOptions:a}=e,{composed:r,noop:n}=i,{addEvent:l,correctFloat:h,defined:p,extend:d,fireEvent:c,isObject:u,merge:g,pick:f,pushUnique:b,relativeLength:m,wrap:y}=s;return function(e){function s(){this.autoConnect=this.isCircular&&void 0===f(this.userMax,this.options.max)&&h(this.endAngleRad-this.startAngleRad)===h(2*Math.PI),!this.isCircular&&this.chart.inverted&&this.max++,this.autoConnect&&(this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0)}function o(){return()=>{if(this.isRadial&&this.tickPositions&&this.options.labels&&!0!==this.options.labels.allowOverlap)return this.tickPositions.map(t=>this.ticks[t]&&this.ticks[t].label).filter(t=>!!t)}}function x(){return n}function P(t,e,i){let s=this.pane.center,o=t.value,a,r,n;return this.isCircular?(p(o)?t.point&&(t.point.shapeArgs||{}).start&&(o=this.chart.inverted?this.translate(t.point.rectPlotY,!0):t.point.x):(r=t.chartX||0,n=t.chartY||0,o=this.translate(Math.atan2(n-i,r-e)-this.startAngleRad,!0)),r=(a=this.getPosition(o)).x,n=a.y):(p(o)||(r=t.chartX,n=t.chartY),p(r)&&p(n)&&(i=s[1]+this.chart.plotTop,o=this.translate(Math.min(Math.sqrt(Math.pow(r-e,2)+Math.pow(n-i,2)),s[2]/2)-s[3]/2,!0))),[o,r||0,n||0]}function S(t,e,i){let s=this.pane.center,o=this.chart,a=this.left||0,r=this.top||0,n,l=f(e,s[2]/2-this.offset),h;return void 0===i&&(i=this.horiz?0:this.center&&-this.center[3]/2),i&&(l+=i),this.isCircular||void 0!==e?((h=this.chart.renderer.symbols.arc(a+s[0],r+s[1],l,l,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0})).xBounds=[a+s[0]],h.yBounds=[r+s[1]-l]):(n=this.postTranslate(this.angleRad,l),h=[[\"M\",this.center[0]+o.plotLeft,this.center[1]+o.plotTop],[\"L\",n.x,n.y]]),h}function M(){this.constructor.prototype.getOffset.call(this),this.chart.axisOffset[this.side]=0}function L(t,e,i){let s=this.chart,o=t=>{if(\"string\"==typeof t){let e=parseInt(t,10);return d.test(t)&&(e=e*n/100),e}return t},a=this.center,r=this.startAngleRad,n=a[2]/2,l=Math.min(this.offset,0),h=this.left||0,p=this.top||0,d=/%$/,c=this.isCircular,u,g,b,m,y,x,P=f(o(i.outerRadius),n),S=o(i.innerRadius),M=f(o(i.thickness),10);if(\"polygon\"===this.options.gridLineInterpolation)x=this.getPlotLinePath({value:t}).concat(this.getPlotLinePath({value:e,reverse:!0}));else{t=Math.max(t,this.min),e=Math.min(e,this.max);let o=this.translate(t),n=this.translate(e);c||(P=o||0,S=n||0),\"circle\"!==i.shape&&c?(u=r+(o||0),g=r+(n||0)):(u=-Math.PI/2,g=1.5*Math.PI,y=!0),P-=l,M-=l,x=s.renderer.symbols.arc(h+a[0],p+a[1],P,P,{start:Math.min(u,g),end:Math.max(u,g),innerR:f(S,P-M),open:y,borderRadius:i.borderRadius}),c&&(b=(g+u)/2,m=h+a[0]+a[2]/2*Math.cos(b),x.xBounds=b>-Math.PI/2&&b-Math.PI&&b<0||b>Math.PI?-10:10)}return x}function C(t){let e=this.pane.center,i=this.chart,s=i.inverted,o=t.reverse,a=this.pane.options.background?this.pane.options.background[0]||this.pane.options.background:{},r=a.innerRadius||\"0%\",n=a.outerRadius||\"100%\",l=e[0]+i.plotLeft,h=e[1]+i.plotTop,p=this.height,d=t.isCrosshair,c=e[3]/2,u=t.value,g,f,b,y,x,P,S,M,L,C=this.getPosition(u),k=C.x,v=C.y;if(d&&(u=(M=this.getCrosshairPosition(t,l,h))[0],k=M[1],v=M[2]),this.isCircular)f=Math.sqrt(Math.pow(k-l,2)+Math.pow(v-h,2)),b=\"string\"==typeof r?m(r,1):r/f,y=\"string\"==typeof n?m(n,1):n/f,e&&c&&(b<(g=c/f)&&(b=g),yp)&&(u=0),\"circle\"===this.options.gridLineInterpolation)L=this.getLinePath(0,u,c);else if(L=[],i[s?\"yAxis\":\"xAxis\"].forEach(t=>{t.pane===this.pane&&(x=t)}),x){S=x.tickPositions,x.autoConnect&&(S=S.concat([S[0]])),o&&(S=S.slice().reverse()),u&&(u+=c);for(let t=0;tMath.PI&&(a-=t),r>Math.PI&&(r-=t),this.normalizedStartAngleRad=a,this.normalizedEndAngleRad=r}}function T(t){this.isRadial&&(t.align=void 0,t.preventDefault())}function N(){if(this.chart&&this.chart.labelCollectors){let t=this.labelCollector?this.chart.labelCollectors.indexOf(this.labelCollector):-1;t>=0&&this.chart.labelCollectors.splice(t,1)}}function X(t){let e;let i=this.chart,s=i.angular,o=i.polar,a=this.isXAxis,r=this.coll,l=t.userOptions.pane||0,h=this.pane=i.pane&&i.pane[l];if(\"colorAxis\"===r){this.isRadial=!1;return}s?(s&&a?(this.isHidden=!0,this.createLabelCollector=x,this.getOffset=n,this.redraw=E,this.render=E,this.setScale=n,this.setCategories=n,this.setTitle=n):A(this),e=!a):o&&(A(this),e=this.horiz),s||o?(this.isRadial=!0,this.labelCollector||(this.labelCollector=this.createLabelCollector()),this.labelCollector&&i.labelCollectors.push(this.labelCollector)):this.isRadial=!1,h&&e&&(h.axis=this),this.isCircular=e}function R(){this.isRadial&&this.beforeSetTickPositions()}function Y(t){let e=this.label;if(!e)return;let i=this.axis,s=e.getBBox(),o=i.options.labels,a=(i.translate(this.pos)+i.startAngleRad+Math.PI/2)/Math.PI*180%360,r=Math.round(a),n=p(o.y)?0:-(.3*s.height),l=o.y,h,d=20,c=o.align,u=\"end\",g=r<0?r+360:r,b=g,y=0,x=0;i.isRadial&&(h=i.getPosition(this.pos,i.center[2]/2+m(f(o.distance,-25),i.center[2]/2,-i.center[2]/2)),\"auto\"===o.rotation?e.attr({rotation:a}):p(l)||(l=i.chart.renderer.fontMetrics(e).b-s.height/2),p(c)||(i.isCircular?(s.width>i.len*i.tickInterval/(i.max-i.min)&&(d=0),c=a>d&&a<180-d?\"left\":a>180+d&&a<360-d?\"right\":\"center\"):c=\"center\",e.attr({align:c})),\"auto\"===c&&2===i.tickPositions.length&&i.isCircular&&(g>90&&g<180?g=180-g:g>270&&g<=360&&(g=540-g),b>180&&b<=360&&(b=360-b),(i.pane.options.startAngle===r||i.pane.options.startAngle===r+360||i.pane.options.startAngle===r-360)&&(u=\"start\"),c=r>=-90&&r<=90||r>=-360&&r<=-270||r>=270&&r<=360?\"start\"===u?\"right\":\"left\":\"start\"===u?\"left\":\"right\",b>70&&b<110&&(c=\"center\"),g<15||g>=180&&g<195?y=.3*s.height:g>=15&&g<=35?y=\"start\"===u?0:.75*s.height:g>=195&&g<=215?y=\"start\"===u?.75*s.height:0:g>35&&g<=90?y=\"start\"===u?-(.25*s.height):s.height:g>215&&g<=270&&(y=\"start\"===u?s.height:-(.25*s.height)),b<15?x=\"start\"===u?-(.15*s.height):.15*s.height:b>165&&b<=180&&(x=\"start\"===u?.15*s.height:-(.15*s.height)),e.attr({align:c}),e.translate(x,y+n)),t.pos.x=h.x+(o.x||0),t.pos.y=h.y+(l||0))}function j(t){this.axis.getPosition&&d(t.pos,this.axis.getPosition(this.pos))}function I({options:t}){t.xAxis&&g(!0,e.radialDefaultOptions.circular,t.xAxis),t.yAxis&&g(!0,e.radialDefaultOptions.radialGauge,t.yAxis)}function D(t,e){let i=this.chart,s=this.center;return t=this.startAngleRad+t,{x:i.plotLeft+s[0]+Math.cos(t)*e,y:i.plotTop+s[1]+Math.sin(t)*e}}function E(){this.isDirty=!1}function B(){let t,e;this.constructor.prototype.setAxisSize.call(this),this.isRadial&&(this.pane.updateCenter(this),t=this.center=this.pane.center.slice(),this.isCircular?this.sector=this.endAngleRad-this.startAngleRad:(e=this.postTranslate(this.angleRad,t[3]/2),t[0]=e.x-this.chart.plotLeft,t[1]=e.y-this.chart.plotTop),this.len=this.width=this.height=(t[2]-t[3])*f(this.sector,1)/2)}function z(){this.constructor.prototype.setAxisTranslation.call(this),this.center&&(this.isCircular?this.transA=(this.endAngleRad-this.startAngleRad)/(this.max-this.min||1):this.transA=(this.center[2]-this.center[3])/2/(this.max-this.min||1),this.isXAxis?this.minPixelPadding=this.transA*this.minPointOffset:this.minPixelPadding=0)}function O(t){let{coll:i}=this,{angular:s,inverted:o,polar:r}=this.chart,n={};s?this.isXAxis||(n=g(a.yAxis,e.radialDefaultOptions.radialGauge)):r&&(n=this.horiz?g(a.xAxis,e.radialDefaultOptions.circular):g(\"xAxis\"===i?a.xAxis:a.yAxis,e.radialDefaultOptions.radial)),o&&\"yAxis\"===i&&(n.stackLabels=u(a.yAxis,!0)?a.yAxis.stackLabels:{},n.reversedStacks=!0);let l=this.options=g(n,t);l.plotBands||(l.plotBands=[]),c(this,\"afterSetOptions\")}function W(t,e,i,s,o,a,r){let n;let l=this.axis;return l.isRadial?[\"M\",e,i,\"L\",(n=l.getPosition(this.pos,l.center[2]/2+s)).x,n.y]:t.call(this,e,i,s,o,a,r)}e.radialDefaultOptions=g(t),e.compose=function(t,e){return b(r,\"Axis.Radial\")&&(l(t,\"afterInit\",w),l(t,\"autoLabelAlign\",T),l(t,\"destroy\",N),l(t,\"init\",X),l(t,\"initialAxisTranslation\",R),l(e,\"afterGetLabelPosition\",Y),l(e,\"afterGetPosition\",j),l(i,\"setOptions\",I),y(e.prototype,\"getMarkPath\",W)),t}}(o||(o={})),o}),i(e,\"Series/PolarComposition.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/Series.js\"],e[\"Extensions/Pane/Pane.js\"],e[\"Core/Axis/RadialAxis.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,o,a){let{animObject:r}=t,{composed:n}=e,{addEvent:l,defined:h,find:p,isNumber:d,merge:c,pick:u,pushUnique:g,relativeLength:f,splat:b,uniqueKey:m,wrap:y}=a;function x(){(this.pane||[]).forEach(t=>{t.render()})}function P(t){let e=t.args[0].xAxis,i=t.args[0].yAxis,s=t.args[0].chart;e&&i&&(\"polygon\"===i.gridLineInterpolation?(e.startOnTick=!0,e.endOnTick=!0):\"polygon\"===e.gridLineInterpolation&&s.inverted&&(i.startOnTick=!0,i.endOnTick=!0))}function S(){this.pane||(this.pane=[]),this.options.pane=b(this.options.pane),this.options.pane.forEach(t=>{new s(t,this)},this)}function M(t){let e=t.args.marker,i=this.chart.xAxis[0],s=this.chart.yAxis[0],o=this.chart.inverted,a=o?s:i,r=o?i:s;if(this.chart.polar){t.preventDefault();let i=(e.attr?e.attr(\"start\"):e.start)-a.startAngleRad,s=e.attr?e.attr(\"r\"):e.r,o=(e.attr?e.attr(\"end\"):e.end)-a.startAngleRad,n=e.attr?e.attr(\"innerR\"):e.innerR;t.result.x=i+a.pos,t.result.width=o-i,t.result.y=r.len+r.pos-s,t.result.height=s-n}}function L(t){let e=this.chart;if(e.polar&&e.hoverPane&&e.hoverPane.axis){t.preventDefault();let i=e.hoverPane.center,s=e.mouseDownX||0,o=e.mouseDownY||0,a=t.args.chartY,r=t.args.chartX,n=2*Math.PI,l=e.hoverPane.axis.startAngleRad,h=e.hoverPane.axis.endAngleRad,p=e.inverted?e.xAxis[0]:e.yAxis[0],d={},c=\"arc\";if(d.x=i[0]+e.plotLeft,d.y=i[1]+e.plotTop,this.zoomHor){let t=l>0?h-l:Math.abs(l)+Math.abs(h),u=Math.atan2(o-e.plotTop-i[1],s-e.plotLeft-i[0])-l,g=Math.atan2(a-e.plotTop-i[1],r-e.plotLeft-i[0])-l;d.r=i[2]/2,d.innerR=i[3]/2,u<=0&&(u+=n),g<=0&&(g+=n),gh+(n-t)/2&&(g=u,u=l<=0?l:0);let f=d.start=Math.max(u+l,l),b=d.end=Math.min(g+l,h);if(\"polygon\"===p.options.gridLineInterpolation){let t=e.hoverPane.axis,s=f-t.startAngleRad+t.pos,o=p.getPlotLinePath({value:p.max}),a=t.toValue(s),r=t.toValue(s+(b-f));if(ai[2]/2&&(p=i[2]/2),nt.max?(o[a].isNull=!0,o[a].plotY=NaN):o[a].isNull=o[a].isValid&&!o[a].isValid());this.hasClipCircleSetter||(this.hasClipCircleSetter=!!this.eventsToUnbind.push(l(this,\"afterRender\",function(){let t;s.polar&&!1!==this.options.clip&&(t=this.yAxis.pane.center,this.clipCircle?this.clipCircle.animate({x:t[0],y:t[1],r:t[2]/2,innerR:t[3]/2}):this.clipCircle=function(t,e,i,s,o){let a=m(),r=t.createElement(\"clipPath\").attr({id:a}).add(t.defs),n=o?t.arc(e,i,s,o,0,2*Math.PI).add(r):t.circle(e,i,s).add(r);return n.id=a,n.clipPath=r,n}(s.renderer,t[0],t[1],t[2]/2,t[3]/2),this.group.clip(this.clipCircle),this.setClip=e.noop)})))}}function v(t){let e=this.chart,i=this.xAxis,s=this.yAxis,o=i.pane&&i.pane.center,a=t.chartX-(o&&o[0]||0)-e.plotLeft,r=t.chartY-(o&&o[1]||0)-e.plotTop,n=e.inverted?{clientX:t.chartX-s.pos,plotY:t.chartY-i.pos}:{clientX:180+-180/Math.PI*Math.atan2(a,r)};return this.searchKDTree(n)}function A(t,e,i,s){let o=s.tickInterval,a=s.tickPositions,r=p(a,t=>t>=i),n=p([...a].reverse(),t=>t<=e);return h(r)||(r=a[a.length-1]),h(n)||(n=a[0],r+=o,t[0][0]=\"L\",t.unshift(t[t.length-3])),(t=t.slice(a.indexOf(n),a.indexOf(r)+1))[0][0]=\"M\",t}function w(t,e){return p(this.pane||[],t=>t.options.id===e)||t.call(this,e)}function T(t,e,s,o,a,r){let n,l,h;let p=this.chart,d=u(o.inside,!!this.options.stacking);if(p.polar){if(n=e.rectPlotX/Math.PI*180,p.inverted)this.forceDL=p.isInsidePlot(e.plotX,e.plotY),d&&e.shapeArgs?(l=e.shapeArgs,a=c(a,{x:(h=this.yAxis.postTranslate(((l.start||0)+(l.end||0))/2-this.xAxis.startAngleRad,e.barX+e.pointWidth/2)).x-p.plotLeft,y:h.y-p.plotTop})):e.tooltipPos&&(a=c(a,{x:e.tooltipPos[0],y:e.tooltipPos[1]})),o.align=u(o.align,\"center\"),o.verticalAlign=u(o.verticalAlign,\"middle\");else{var g;let t,e;null===(g=o).align&&(t=n>20&&n<160?\"left\":n>200&&n<340?\"right\":\"center\",g.align=t),null===g.verticalAlign&&(e=n<45||n>315?\"bottom\":n>135&&n<225?\"top\":\"middle\",g.verticalAlign=e),o=g}i.prototype.alignDataLabel.call(this,e,s,o,a,r),this.isRadialBar&&e.shapeArgs&&e.shapeArgs.start===e.shapeArgs.end?s.hide():s.show()}else t.call(this,e,s,o,a,r)}function N(){let t=this.options,e=t.stacking,i=this.chart,s=this.xAxis,o=this.yAxis,r=o.reversed,n=o.center,l=s.startAngleRad,p=s.endAngleRad-l,c=t.threshold,u=0,g,b,m,y,x,P=0,S=0,M,L,C,k,v,A,w,T;if(s.isRadial)for(m=(g=this.points).length,y=o.translate(o.min),x=o.translate(o.max),c=t.threshold||0,i.inverted&&d(c)&&h(u=o.translate(c))&&(u<0?u=0:u>p&&(u=p),this.translatedThreshold=u+l);m--;){if(A=(b=g[m]).barX,L=b.x,C=b.y,b.shapeType=\"arc\",i.inverted){b.plotY=o.translate(C),e&&o.stacking?(v=o.stacking.stacks[(C<0?\"-\":\"\")+this.stackKey],this.visible&&v&&v[L]&&!b.isNull&&(k=v[L].points[this.getStackIndicator(void 0,L,this.index).key],P=o.translate(k[0]),S=o.translate(k[1]),h(P)&&(P=a.clamp(P,0,p)))):(P=u,S=b.plotY),P>S&&(S=[P,P=S][0]),r?S>y?S=y:Py||Sx?S=x:(Sx)&&(P=S=0),o.min>o.max&&(P=S=r?p:0),P+=l,S+=l,n&&(b.barX=A+=n[3]/2),w=Math.max(A,0),T=Math.max(A+b.pointWidth,0);let i=t.borderRadius,s=f((\"object\"==typeof i?i.radius:i)||0,T-w);b.shapeArgs={x:n[0],y:n[1],r:T,innerR:w,start:P,end:S,borderRadius:s},b.opacity=P===S?0:void 0,b.plotY=(h(this.translatedThreshold)&&(Pn[1])}}function X(t,e){let i,s;let o=this;if(this.chart.polar){e=e||this.points;for(let t=0;t{void 0===t.polarPlotY&&o.polar.toXY(t)})}let a=t.apply(this,[].slice.call(arguments,1));return s&&e.pop(),a}function R(t,e){let i=this.chart,s={xAxis:[],yAxis:[]};return i.polar?i.axes.forEach(t=>{if(\"colorAxis\"===t.coll)return;let o=t.isXAxis,a=t.center,r=e.chartX-a[0]-i.plotLeft,n=e.chartY-a[1]-i.plotTop;s[o?\"xAxis\":\"yAxis\"].push({axis:t,value:t.translate(o?Math.PI-Math.atan2(r,n):Math.sqrt(Math.pow(r,2)+Math.pow(n,2)),!0)})}):s=t.call(this,e),s}function Y(t,e){this.chart.polar||t.call(this,e)}function j(t,i){let s=this,o=this.chart,a=this.group,n=this.markerGroup,l=this.xAxis&&this.xAxis.center,h=o.plotLeft,p=o.plotTop,d=this.options.animation,c,g,f,b,m,y;o.polar?s.isRadialBar?i||(s.startAngleRad=u(s.translatedThreshold,s.xAxis.startAngleRad),e.seriesTypes.pie.prototype.animate.call(s,i)):(d=r(d),s.is(\"column\")?i||(g=l[3]/2,s.points.forEach(t=>{f=t.graphic,m=(b=t.shapeArgs)&&b.r,y=b&&b.innerR,f&&b&&(f.attr({r:g,innerR:g}),f.animate({r:m,innerR:y},s.options.animation))})):i?(c={translateX:l[0]+h,translateY:l[1]+p,scaleX:.001,scaleY:.001},a.attr(c),n&&n.attr(c)):(c={translateX:h,translateY:p,scaleX:1,scaleY:1},a.animate(c,d),n&&n.animate(c,d))):t.call(this,i)}function I(t,e,i,s){let o,a;if(this.chart.polar){if(s){let t=(a=function t(e,i,s,o){let a,r,n,l,h,p;let d=o?1:0,c=(a=i>=0&&i<=e.length-1?i:i<0?e.length-1+i:0)-1<0?e.length-(1+d):a-1,u=a+1>e.length-1?d:a+1,g=e[c],f=e[u],b=g.plotX,m=g.plotY,y=f.plotX,x=f.plotY,P=e[a].plotX,S=e[a].plotY;r=(1.5*P+b)/2.5,n=(1.5*S+m)/2.5,l=(1.5*P+y)/2.5,h=(1.5*S+x)/2.5;let M=Math.sqrt(Math.pow(r-P,2)+Math.pow(n-S,2)),L=Math.sqrt(Math.pow(l-P,2)+Math.pow(h-S,2)),C=Math.atan2(n-S,r-P);p=Math.PI/2+(C+Math.atan2(h-S,l-P))/2,Math.abs(C-p)>Math.PI/2&&(p-=Math.PI),r=P+Math.cos(p)*M,n=S+Math.sin(p)*M;let k={rightContX:l=P+Math.cos(Math.PI+p)*L,rightContY:h=S+Math.sin(Math.PI+p)*L,leftContX:r,leftContY:n,plotX:P,plotY:S};return s&&(k.prevPointCont=t(e,c,!1,o)),k}(e,s,!0,this.connectEnds)).prevPointCont&&a.prevPointCont.rightContX,i=a.prevPointCont&&a.prevPointCont.rightContY;o=[\"C\",d(t)?t:a.plotX,d(i)?i:a.plotY,d(a.leftContX)?a.leftContX:a.plotX,d(a.leftContY)?a.leftContY:a.plotY,a.plotX,a.plotY]}else o=[\"M\",i.plotX,i.plotY]}else o=t.call(this,e,i,s);return o}function D(t,e,i=this.plotY){if(!this.destroyed){let{plotX:s,series:o}=this,{chart:a}=o;return a.polar&&d(s)&&d(i)?[s+(e?a.plotLeft:0),i+(e?a.plotTop:0)]:t.call(this,e,i)}}class E{static compose(t,e,i,a,r,h,p,d,c,u){if(s.compose(e,i),o.compose(t,r),g(n,\"Polar\")){let t=e.prototype,s=h.prototype,o=i.prototype,r=a.prototype;if(l(e,\"afterDrawChartBox\",x),l(e,\"getAxes\",S),l(e,\"init\",P),y(t,\"get\",w),y(o,\"getCoordinates\",R),y(o,\"pinch\",Y),l(i,\"getSelectionMarkerAttrs\",L),l(i,\"getSelectionBox\",M),l(a,\"afterInit\",C),l(a,\"afterTranslate\",k,{order:2}),l(a,\"afterColumnTranslate\",N,{order:4}),y(r,\"animate\",j),y(s,\"pos\",D),d){let t=d.prototype;y(t,\"alignDataLabel\",T),y(t,\"animate\",j)}if(c&&y(c.prototype,\"getGraphPath\",X),u){let t=u.prototype;y(t,\"getPointSpline\",I),p&&(p.prototype.getPointSpline=t.getPointSpline)}}}constructor(t){this.series=t}arc(t,e,i,s){let o=this.series,a=o.xAxis.center,r=o.yAxis.len,n=a[3]/2,l=r-e+n,h=r-u(t,r)+n;return o.yAxis.reversed&&(l<0&&(l=n),h<0&&(h=n)),{x:a[0],y:a[1],r:l,innerR:h,start:i,end:s}}toXY(t){let e=this.series,i=e.chart,s=e.xAxis,o=e.yAxis,a=t.plotX,r=i.inverted,n=t.y,l=t.plotY,h=r?a:o.len-l,p;if(r&&e&&!e.isRadialBar&&(t.plotY=l=d(n)?o.translate(n):0),t.rectPlotX=a,t.rectPlotY=l,o.center&&(h+=o.center[3]/2),d(l)){let e=r?o.postTranslate(l,h):s.postTranslate(a,h);t.plotX=t.polarPlotX=e.x-i.plotLeft,t.plotY=t.polarPlotY=e.y-i.plotTop}e.kdByAngle?((p=(a/Math.PI*180+s.pane.options.startAngle)%360)<0&&(p+=360),t.clientX=p):t.clientX=t.plotX}}return E}),i(e,\"Core/Axis/WaterfallAxis.js\",[e[\"Core/Globals.js\"],e[\"Core/Axis/Stacking/StackItem.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){var s;let{composed:o}=t,{addEvent:a,objectEach:r,pushUnique:n}=i;return function(t){function i(){let t=this.waterfall.stacks;t&&(t.changed=!1,delete t.alreadyChanged)}function s(){let t=this.options.stackLabels;t&&t.enabled&&this.waterfall.stacks&&this.waterfall.renderStackTotals()}function l(){this.waterfall||(this.waterfall=new p(this))}function h(){let t=this.axes;for(let e of this.series)if(e.options.stacking){for(let e of t)e.isXAxis||(e.waterfall.stacks.changed=!0);break}}t.compose=function(t,e){n(o,\"Axis.Waterfall\")&&(a(t,\"init\",l),a(t,\"afterBuildStacks\",i),a(t,\"afterRender\",s),a(e,\"beforeRedraw\",h))};class p{constructor(t){this.axis=t,this.stacks={changed:!1}}renderStackTotals(){let t=this.axis,i=t.waterfall.stacks,s=t.stacking&&t.stacking.stackTotalGroup,o=new e(t,t.options.stackLabels||{},!1,0,void 0);this.dummyStackItem=o,s&&r(i,t=>{r(t,(t,i)=>{o.total=t.stackTotal,o.x=+i,t.label&&(o.label=t.label),e.prototype.render.call(o,s),t.label=o.label,delete o.label})}),o.total=null}}t.Composition=p}(s||(s={})),s}),i(e,\"Series/Waterfall/WaterfallPoint.js\",[e[\"Series/Column/ColumnSeries.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{isNumber:s}=i;class o extends t.prototype.pointClass{getClassName(){let t=e.prototype.getClassName.call(this);return this.isSum?t+=\" highcharts-sum\":this.isIntermediateSum&&(t+=\" highcharts-intermediate-sum\"),t}isValid(){return s(this.y)||this.isSum||!!this.isIntermediateSum}}return o}),i(e,\"Series/Waterfall/WaterfallSeriesDefaults.js\",[],function(){return{dataLabels:{inside:!0},lineWidth:1,lineColor:\"#333333\",dashStyle:\"Dot\",borderColor:\"#333333\",states:{hover:{lineWidthPlus:0}}}}),i(e,\"Series/Waterfall/WaterfallSeries.js\",[e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"],e[\"Core/Axis/WaterfallAxis.js\"],e[\"Series/Waterfall/WaterfallPoint.js\"],e[\"Series/Waterfall/WaterfallSeriesDefaults.js\"]],function(t,e,i,s,o){let{column:a,line:r}=t.seriesTypes,{addEvent:n,arrayMax:l,arrayMin:h,correctFloat:p,crisp:d,extend:c,isNumber:u,merge:g,objectEach:f,pick:b}=e;function m(t,e){return Object.hasOwnProperty.call(t,e)}class y extends a{generatePoints(){a.prototype.generatePoints.apply(this);for(let t=0,e=this.points.length;t0?i:void 0);let s=a.prototype.pointAttribs.call(this,t,e);return delete s.dashstyle,s}getGraphPath(){return[[\"M\",0,0]]}getCrispPath(){let t=this.data.filter(t=>u(t.y)),e=this.yAxis,i=t.length,s=this.graph?.strokeWidth()||0,o=this.xAxis.reversed,a=this.yAxis.reversed,r=this.options.stacking,n=[];for(let l=1;l0?-c.height:0;if(g&&c&&i){let t;let p=g[l-1];if(r){let i=p.connectorThreshold;t=d(e.translate(i,!1,!0,!1,!0)+(a?f:0),s)}else t=d(c.y+(h.minPointLengthOffset||0),s);n.push([\"M\",(c.x||0)+(o?0:c.width||0),t],[\"L\",(i.x||0)+(o&&i.width||0),t])}if(c&&n.length&&(!r&&p<0&&!a||p>0&&a)){let t=n[n.length-2];t&&\"number\"==typeof t[2]&&(t[2]+=c.height||0);let e=n[n.length-1];e&&\"number\"==typeof e[2]&&(e[2]+=c.height||0)}}return n}drawGraph(){r.prototype.drawGraph.call(this),this.graph&&this.graph.attr({d:this.getCrispPath()})}setStackedPoints(t){let e=this.options,i=t.waterfall?.stacks,s=e.threshold||0,o=this.stackKey,a=this.xData,r=a.length,n=s,l=n,h,p=0,d=0,c=0,u,g,f,b,m,y,x,P,S=(t,e,i,s)=>{if(h){if(u)for(;ix.indexOf(o)&&(P=!0),i[o]||(i[o]={});let t=i[o];if(t)for(let i=0;i=0?h.posTotal+=m:h.negTotal+=m,b=e.data[i],g=h.absolutePos=h.posTotal,f=h.absoluteNeg=h.negTotal,h.stackTotal=g+f,u=h.stackState.length,b&&b.isIntermediateSum?(S(c,d,0,c),c=d,d=s,n^=l,l^=n,n^=l):b&&b.isSum?(S(s,p,u,0),n=s):(S(n,m,0,p),b&&(p+=m,d+=m)),h.stateIndex++,h.threshold=n,n+=h.stackTotal;i.changed=!1,i.alreadyChanged||(i.alreadyChanged=[]),i.alreadyChanged.push(o)}}getExtremes(){let t,e,i;let s=this.options.stacking;return s?(t=this.yAxis.waterfall.stacks,e=this.stackedYNeg=[],i=this.stackedYPos=[],\"overlap\"===s?f(t[this.stackKey],function(t){e.push(h(t.stackState)),i.push(l(t.stackState))}):f(t[this.stackKey],function(t){e.push(t.negTotal+t.threshold),i.push(t.posTotal+t.threshold)}),{dataMin:h(e),dataMax:l(i)}):{dataMin:this.dataMin,dataMax:this.dataMax}}}return y.defaultOptions=g(a.defaultOptions,o),y.compose=i.compose,c(y.prototype,{pointValKey:\"y\",showLine:!0,pointClass:s}),n(y,\"afterColumnTranslate\",function(){let{options:t,points:e,yAxis:i}=this,s=b(t.minPointLength,5),o=s/2,a=t.threshold||0,r=t.stacking,n=i.waterfall.stacks[this.stackKey],l=a,h=a,p,f,y,x;for(let t=0;t=0?f:f-L,m(e,\"absolutePos\")&&delete e.absolutePos,m(e,\"absoluteNeg\")&&delete e.absoluteNeg):(L>=0?(f=e.threshold+e.posTotal,e.posTotal-=L,p=f):(f=e.threshold+e.negTotal,e.negTotal-=L,p=f-L),!e.posTotal&&u(e.absolutePos)&&m(e,\"absolutePos\")&&(e.posTotal=e.absolutePos,delete e.absolutePos),!e.negTotal&&u(e.absoluteNeg)&&m(e,\"absoluteNeg\")&&(e.negTotal=e.absoluteNeg,delete e.absoluteNeg)),b.isSum||(e.connectorThreshold=e.threshold+e.stackTotal),i.reversed?(y=L>=0?p-L:p+L,x=p):(y=p,x=p-L),b.below=y<=a,S.y=i.translate(y,!1,!0,!1,!0),S.height=Math.abs(S.y-i.translate(x,!1,!0,!1,!0));let s=i.waterfall.dummyStackItem;s&&(s.x=t,s.label=n[t].label,s.setOffset(this.pointXOffset||0,this.barW||0,this.stackedYNeg[t],this.stackedYPos[t],void 0,this.xAxis))}}else p=Math.max(h,h+L)+M[0],S.y=i.translate(p,!1,!0,!1,!0),b.isSum?(S.y=i.translate(M[1],!1,!0,!1,!0),S.height=Math.min(i.translate(M[0],!1,!0,!1,!0),i.len)-S.y,b.below=M[1]<=a):b.isIntermediateSum?(L>=0?(y=M[1]+l,x=l):(y=l,x=M[1]+l),i.reversed&&(y^=x,x^=y,y^=x),S.y=i.translate(y,!1,!0,!1,!0),S.height=Math.abs(S.y-Math.min(i.translate(x,!1,!0,!1,!0),i.len)),l+=M[1],b.below=y<=a):(S.height=P>0?i.translate(h,!1,!0,!1,!0)-S.y:i.translate(h,!1,!0,!1,!0)-i.translate(h-P,!1,!0,!1,!0),h+=P,b.below=hparseInt(i.userAgent.split(\"Firefox/\")[1],10),i.marginNames=[\"plotTop\",\"marginRight\",\"marginBottom\",\"plotLeft\"],i.noop=function(){},i.supportsPassiveEvents=function(){let t=!1;if(!i.isMS){let e=Object.defineProperty({},\"passive\",{get:function(){t=!0}});i.win.addEventListener&&i.win.removeEventListener&&(i.win.addEventListener(\"testPassive\",i.noop,e),i.win.removeEventListener(\"testPassive\",i.noop,e))}return t}(),i.charts=[],i.composed=[],i.dateFormats={},i.seriesTypes={},i.symbolSizes={},i.chartCount=0,e}),i(e,\"Core/Utilities.js\",[e[\"Core/Globals.js\"]],function(t){let e;let{charts:i,doc:s,win:r}=t;function o(e,i,s,n){let a=i?\"Highcharts error\":\"Highcharts warning\";32===e&&(e=`${a}: Deprecated member`);let h=p(e),l=h?`${a} #${e}: www.highcharts.com/errors/${e}/`:e.toString();if(void 0!==n){let t=\"\";h&&(l+=\"?\"),C(n,function(e,i){t+=`\n - ${i}: ${e}`,h&&(l+=encodeURI(i)+\"=\"+encodeURI(e))}),l+=t}M(t,\"displayError\",{chart:s,code:e,message:l,params:n},function(){if(i)throw Error(l);r.console&&-1===o.messages.indexOf(l)&&console.warn(l)}),o.messages.push(l)}function n(t,e){return parseInt(t,e||10)}function a(t){return\"string\"==typeof t}function h(t){let e=Object.prototype.toString.call(t);return\"[object Array]\"===e||\"[object Array Iterator]\"===e}function l(t,e){return!!t&&\"object\"==typeof t&&(!e||!h(t))}function d(t){return l(t)&&\"number\"==typeof t.nodeType}function c(t){let e=t&&t.constructor;return!!(l(t,!0)&&!d(t)&&e&&e.name&&\"Object\"!==e.name)}function p(t){return\"number\"==typeof t&&!isNaN(t)&&t<1/0&&t>-1/0}function u(t){return null!=t}function g(t,e,i){let s;let r=a(e)&&!u(i),o=(e,i)=>{u(e)?t.setAttribute(i,e):r?(s=t.getAttribute(i))||\"class\"!==i||(s=t.getAttribute(i+\"Name\")):t.removeAttribute(i)};return a(e)?o(i,e):C(e,o),s}function f(t){return h(t)?t:[t]}function m(t,e){let i;for(i in t||(t={}),e)t[i]=e[i];return t}function x(){let t=arguments,e=t.length;for(let i=0;i1e14?t:parseFloat(t.toPrecision(e||14))}(o||(o={})).messages=[],Math.easeInOutSine=function(t){return -.5*(Math.cos(Math.PI*t)-1)};let S=Array.prototype.find?function(t,e){return t.find(e)}:function(t,e){let i;let s=t.length;for(i=0;it.order-e.order),t.forEach(t=>{!1===t.fn.call(e,r)&&r.preventDefault()})}o&&!r.defaultPrevented&&o.call(e,r)}C({map:\"map\",each:\"forEach\",grep:\"filter\",reduce:\"reduce\",some:\"some\"},function(e,i){t[i]=function(t){return o(32,!1,void 0,{[`Highcharts.${i}`]:`use Array.${e}`}),Array.prototype[e].apply(t,[].slice.call(arguments,1))}});let w=function(){let t=Math.random().toString(36).substring(2,9)+\"-\",i=0;return function(){return\"highcharts-\"+(e?\"\":t)+i++}}();return r.jQuery&&(r.jQuery.fn.highcharts=function(){let e=[].slice.call(arguments);if(this[0])return e[0]?(new t[a(e[0])?e.shift():\"Chart\"](this[0],e[0],e[1]),this):i[g(this[0],\"data-highcharts-chart\")]}),{addEvent:function(e,i,s,r={}){let o=\"function\"==typeof e&&e.prototype||e;Object.hasOwnProperty.call(o,\"hcEvents\")||(o.hcEvents={});let n=o.hcEvents;t.Point&&e instanceof t.Point&&e.series&&e.series.chart&&(e.series.chart.runTrackerClick=!0);let a=e.addEventListener;a&&a.call(e,i,s,!!t.supportsPassiveEvents&&{passive:void 0===r.passive?-1!==i.indexOf(\"touch\"):r.passive,capture:!1}),n[i]||(n[i]=[]);let h={fn:s,order:\"number\"==typeof r.order?r.order:1/0};return n[i].push(h),n[i].sort((t,e)=>t.order-e.order),function(){k(e,i,s)}},arrayMax:function(t){let e=t.length,i=t[0];for(;e--;)t[e]>i&&(i=t[e]);return i},arrayMin:function(t){let e=t.length,i=t[0];for(;e--;)t[e]e?t{let s=e%2/2,r=i?-1:1;return(Math.round(t*r-s)+s)*r},css:y,defined:u,destroyObjectProperties:function(t,e,i){C(t,function(s,r){s!==e&&s?.destroy&&s.destroy(),(s?.destroy||!i)&&delete t[r]})},diffObjects:function(t,e,i,s){let r={};return function t(e,r,o,n){let a=i?r:e;C(e,function(i,d){if(!n&&s&&s.indexOf(d)>-1&&r[d]){i=f(i),o[d]=[];for(let e=0;e{if(t.length>1)for(o=s=t.length-1;o>0;o--)(r=t[o]-t[o-1])<0&&!n?(e?.(),e=void 0):r&&(void 0===i||r=i-1&&(i=Math.floor(s)),Math.max(0,i-(t(e,\"padding-left\",!0)||0)-(t(e,\"padding-right\",!0)||0))}if(\"height\"===i)return Math.max(0,Math.min(e.offsetHeight,e.scrollHeight)-(t(e,\"padding-top\",!0)||0)-(t(e,\"padding-bottom\",!0)||0));let a=r.getComputedStyle(e,void 0);return a&&(o=a.getPropertyValue(i),x(s,\"opacity\"!==i)&&(o=n(o))),o},inArray:function(t,e,i){return o(32,!1,void 0,{\"Highcharts.inArray\":\"use Array.indexOf\"}),e.indexOf(t,i)},insertItem:function(t,e){let i;let s=t.options.index,r=e.length;for(i=t.options.isInternal?r:0;i=t))&&(r||!(a<=(e[o]+(e[o+1]||e[o]))/2)));o++);return v(n*i,-Math.round(Math.log(.001)/Math.LN10))},objectEach:C,offset:function(t){let e=s.documentElement,i=t.parentElement||t.parentNode?t.getBoundingClientRect():{top:0,left:0,width:0,height:0};return{top:i.top+(r.pageYOffset||e.scrollTop)-(e.clientTop||0),left:i.left+(r.pageXOffset||e.scrollLeft)-(e.clientLeft||0),width:i.width,height:i.height}},pad:function(t,e,i){return Array((e||2)+1-String(t).replace(\"-\",\"\").length).join(i||\"0\")+t},pick:x,pInt:n,pushUnique:function(t,e){return 0>t.indexOf(e)&&!!t.push(e)},relativeLength:function(t,e,i){return/%$/.test(t)?e*parseFloat(t)/100+(i||0):parseFloat(t)},removeEvent:k,replaceNested:function(t,...e){let i,s;do for(s of(i=t,e))t=t.replace(s[0],s[1]);while(t!==i);return t},splat:f,stableSort:function(t,e){let i,s;let r=t.length;for(s=0;s0?setTimeout(t,e,i):(t.call(0,i),-1)},timeUnits:{millisecond:1,second:1e3,minute:6e4,hour:36e5,day:864e5,week:6048e5,month:24192e5,year:314496e5},uniqueKey:w,useSerialIds:function(t){return e=x(t,e)},wrap:function(t,e,i){let s=t[e];t[e]=function(){let t=arguments,e=this;return i.apply(this,[function(){return s.apply(e,arguments.length?arguments:t)}].concat([].slice.call(arguments)))}}}}),i(e,\"Core/Chart/ChartDefaults.js\",[],function(){return{alignThresholds:!1,panning:{enabled:!1,type:\"x\"},styledMode:!1,borderRadius:0,colorCount:10,allowMutatingData:!0,ignoreHiddenSeries:!0,spacing:[10,10,15,10],resetZoomButton:{theme:{},position:{}},reflow:!0,type:\"line\",zooming:{singleTouch:!1,resetButton:{theme:{zIndex:6},position:{align:\"right\",x:-10,y:10}}},width:null,height:null,borderColor:\"#334eff\",backgroundColor:\"#ffffff\",plotBorderColor:\"#cccccc\"}}),i(e,\"Core/Color/Palettes.js\",[],function(){return{colors:[\"#2caffe\",\"#544fc5\",\"#00e272\",\"#fe6a35\",\"#6b8abc\",\"#d568fb\",\"#2ee0ca\",\"#fa4b42\",\"#feb56a\",\"#91e8e1\"]}}),i(e,\"Core/Time.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{win:i}=t,{defined:s,error:r,extend:o,isNumber:n,isObject:a,merge:h,objectEach:l,pad:d,pick:c,splat:p,timeUnits:u}=e,g=t.isSafari&&i.Intl&&i.Intl.DateTimeFormat.prototype.formatRange,f=t.isSafari&&i.Intl&&!i.Intl.DateTimeFormat.prototype.formatRange;class m{constructor(t){this.options={},this.useUTC=!1,this.variableTimezone=!1,this.Date=i.Date,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.update(t)}get(t,e){if(this.variableTimezone||this.timezoneOffset){let i=e.getTime(),s=i-this.getTimezoneOffset(e);e.setTime(s);let r=e[\"getUTC\"+t]();return e.setTime(i),r}return this.useUTC?e[\"getUTC\"+t]():e[\"get\"+t]()}set(t,e,i){if(this.variableTimezone||this.timezoneOffset){if(\"Milliseconds\"===t||\"Seconds\"===t||\"Minutes\"===t&&this.getTimezoneOffset(e)%36e5==0)return e[\"setUTC\"+t](i);let s=this.getTimezoneOffset(e),r=e.getTime()-s;e.setTime(r),e[\"setUTC\"+t](i);let o=this.getTimezoneOffset(e);return r=e.getTime()+o,e.setTime(r)}return this.useUTC||g&&\"FullYear\"===t?e[\"setUTC\"+t](i):e[\"set\"+t](i)}update(t={}){let e=c(t.useUTC,!0);this.options=t=h(!0,this.options,t),this.Date=t.Date||i.Date||Date,this.useUTC=e,this.timezoneOffset=e&&t.timezoneOffset||void 0,this.getTimezoneOffset=this.timezoneOffsetFunction(),this.variableTimezone=e&&!!(t.getTimezoneOffset||t.timezone)}makeTime(t,e,i,s,r,o){let n,a,h;return this.useUTC?(n=this.Date.UTC.apply(0,arguments),a=this.getTimezoneOffset(n),n+=a,a!==(h=this.getTimezoneOffset(n))?n+=h-a:a-36e5!==this.getTimezoneOffset(n-36e5)||f||(n-=36e5)):n=new this.Date(t,e,c(i,1),c(s,0),c(r,0),c(o,0)).getTime(),n}timezoneOffsetFunction(){let t=this,e=this.options,i=e.getTimezoneOffset;return this.useUTC?e.timezone?t=>{try{let i=`shortOffset,${e.timezone||\"\"}`,[s,r,o,a,h=0]=(m.formatCache[i]=m.formatCache[i]||Intl.DateTimeFormat(\"en\",{timeZone:e.timezone,timeZoneName:\"shortOffset\"})).format(t).split(/(GMT|:)/).map(Number),l=-(36e5*(o+h/60));if(n(l))return l}catch(t){r(34)}return 0}:this.useUTC&&i?t=>6e4*i(t.valueOf()):()=>6e4*(t.timezoneOffset||0):t=>6e4*new Date(t.toString()).getTimezoneOffset()}dateFormat(e,i,r){if(!s(i)||isNaN(i))return t.defaultOptions.lang&&t.defaultOptions.lang.invalidDate||\"\";e=c(e,\"%Y-%m-%d %H:%M:%S\");let n=this,a=new this.Date(i),h=this.get(\"Hours\",a),p=this.get(\"Day\",a),u=this.get(\"Date\",a),g=this.get(\"Month\",a),f=this.get(\"FullYear\",a),m=t.defaultOptions.lang,x=m&&m.weekdays,y=m&&m.shortWeekdays;return l(o({a:y?y[p]:x[p].substr(0,3),A:x[p],d:d(u),e:d(u,2,\" \"),w:p,b:m.shortMonths[g],B:m.months[g],m:d(g+1),o:g+1,y:f.toString().substr(2,2),Y:f,H:d(h),k:h,I:d(h%12||12),l:h%12||12,M:d(this.get(\"Minutes\",a)),p:h<12?\"AM\":\"PM\",P:h<12?\"am\":\"pm\",S:d(this.get(\"Seconds\",a)),L:d(Math.floor(i%1e3),3)},t.dateFormats),function(t,s){for(;-1!==e.indexOf(\"%\"+s);)e=e.replace(\"%\"+s,\"function\"==typeof t?t.call(n,i):t)}),r?e.substr(0,1).toUpperCase()+e.substr(1):e}resolveDTLFormat(t){return a(t,!0)?t:{main:(t=p(t))[0],from:t[1],to:t[2]}}getTimeTicks(t,e,i,r){let n,a,h,l;let d=this,p=d.Date,g=[],f={},m=new p(e),x=t.unitRange,y=t.count||1;if(r=c(r,1),s(e)){d.set(\"Milliseconds\",m,x>=u.second?0:y*Math.floor(d.get(\"Milliseconds\",m)/y)),x>=u.second&&d.set(\"Seconds\",m,x>=u.minute?0:y*Math.floor(d.get(\"Seconds\",m)/y)),x>=u.minute&&d.set(\"Minutes\",m,x>=u.hour?0:y*Math.floor(d.get(\"Minutes\",m)/y)),x>=u.hour&&d.set(\"Hours\",m,x>=u.day?0:y*Math.floor(d.get(\"Hours\",m)/y)),x>=u.day&&d.set(\"Date\",m,x>=u.month?1:Math.max(1,y*Math.floor(d.get(\"Date\",m)/y))),x>=u.month&&(d.set(\"Month\",m,x>=u.year?0:y*Math.floor(d.get(\"Month\",m)/y)),a=d.get(\"FullYear\",m)),x>=u.year&&(a-=a%y,d.set(\"FullYear\",m,a)),x===u.week&&(l=d.get(\"Day\",m),d.set(\"Date\",m,d.get(\"Date\",m)-l+r+(l4*u.month||d.getTimezoneOffset(e)!==d.getTimezoneOffset(i));let p=m.getTime();for(n=1;p1?p=d.makeTime(a,t,o,c+n*y):p+=x*y,n++;g.push(p),x<=u.hour&&g.length<1e4&&g.forEach(function(t){t%18e5==0&&\"000000000\"===d.dateFormat(\"%H%M%S%L\",t)&&(f[t]=\"day\")})}return g.info=o(t,{higherRanks:f,totalRange:x*y}),g}getDateFormat(t,e,i,s){let r=this.dateFormat(\"%m-%d %H:%M:%S.%L\",e),o=\"01-01 00:00:00.000\",n={millisecond:15,second:12,minute:9,hour:6,day:3},a=\"millisecond\",h=a;for(a in u){if(t===u.week&&+this.dateFormat(\"%w\",e)===i&&r.substr(6)===o.substr(6)){a=\"week\";break}if(u[a]>t){a=h;break}if(n[a]&&r.substr(n[a])!==o.substr(n[a]))break;\"week\"!==a&&(h=a)}return this.resolveDTLFormat(s[a]).main}}return m.formatCache={},m}),i(e,\"Core/Defaults.js\",[e[\"Core/Chart/ChartDefaults.js\"],e[\"Core/Globals.js\"],e[\"Core/Color/Palettes.js\"],e[\"Core/Time.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r){let{isTouchDevice:o}=e,{fireEvent:n,merge:a}=r,h={colors:i.colors,symbols:[\"circle\",\"diamond\",\"square\",\"triangle\",\"triangle-down\"],lang:{loading:\"Loading...\",months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],weekdays:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],decimalPoint:\".\",numericSymbols:[\"k\",\"M\",\"G\",\"T\",\"P\",\"E\"],resetZoom:\"Reset zoom\",resetZoomTitle:\"Reset zoom level 1:1\",thousandsSep:\" \"},global:{buttonTheme:{fill:\"#f7f7f7\",padding:8,r:2,stroke:\"#cccccc\",\"stroke-width\":1,style:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",fontWeight:\"normal\"},states:{hover:{fill:\"#e6e6e6\"},select:{fill:\"#e6e9ff\",style:{color:\"#000000\",fontWeight:\"bold\"}},disabled:{style:{color:\"#cccccc\"}}}}},time:{Date:void 0,getTimezoneOffset:void 0,timezone:void 0,timezoneOffset:0,useUTC:!0},chart:t,title:{style:{color:\"#333333\",fontWeight:\"bold\"},text:\"Chart title\",align:\"center\",margin:15,widthAdjust:-44},subtitle:{style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"center\",widthAdjust:-44},caption:{margin:15,style:{color:\"#666666\",fontSize:\"0.8em\"},text:\"\",align:\"left\",verticalAlign:\"bottom\"},plotOptions:{},legend:{enabled:!0,align:\"center\",alignColumns:!0,className:\"highcharts-no-tooltip\",events:{},layout:\"horizontal\",itemMarginBottom:2,itemMarginTop:2,labelFormatter:function(){return this.name},borderColor:\"#999999\",borderRadius:0,navigation:{style:{fontSize:\"0.8em\"},activeColor:\"#0022ff\",inactiveColor:\"#cccccc\"},itemStyle:{color:\"#333333\",cursor:\"pointer\",fontSize:\"0.8em\",textDecoration:\"none\",textOverflow:\"ellipsis\"},itemHoverStyle:{color:\"#000000\"},itemHiddenStyle:{color:\"#666666\",textDecoration:\"line-through\"},shadow:!1,itemCheckboxStyle:{position:\"absolute\",width:\"13px\",height:\"13px\"},squareSymbol:!0,symbolPadding:5,verticalAlign:\"bottom\",x:0,y:0,title:{style:{fontSize:\"0.8em\",fontWeight:\"bold\"}}},loading:{labelStyle:{fontWeight:\"bold\",position:\"relative\",top:\"45%\"},style:{position:\"absolute\",backgroundColor:\"#ffffff\",opacity:.5,textAlign:\"center\"}},tooltip:{enabled:!0,animation:{duration:300,easing:t=>Math.sqrt(1-Math.pow(t-1,2))},borderRadius:3,dateTimeLabelFormats:{millisecond:\"%A, %e %b, %H:%M:%S.%L\",second:\"%A, %e %b, %H:%M:%S\",minute:\"%A, %e %b, %H:%M\",hour:\"%A, %e %b, %H:%M\",day:\"%A, %e %b %Y\",week:\"Week from %A, %e %b %Y\",month:\"%B %Y\",year:\"%Y\"},footerFormat:\"\",headerShape:\"callout\",hideDelay:500,padding:8,shape:\"callout\",shared:!1,snap:o?25:10,headerFormat:'{point.key}
',pointFormat:' {series.name}: {point.y}
',backgroundColor:\"#ffffff\",borderWidth:void 0,shadow:!0,stickOnContact:!1,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"},useHTML:!1},credits:{enabled:!0,href:\"https://www.highcharts.com?credits\",position:{align:\"right\",x:-10,verticalAlign:\"bottom\",y:-5},style:{cursor:\"pointer\",color:\"#999999\",fontSize:\"0.6em\"},text:\"Highcharts.com\"}};h.chart.styledMode=!1;let l=new s(h.time);return{defaultOptions:h,defaultTime:l,getOptions:function(){return h},setOptions:function(t){return n(e,\"setOptions\",{options:t}),a(!0,h,t),(t.time||t.global)&&(e.time?e.time.update(a(h.global,h.time,t.global,t.time)):e.time=l),h}}}),i(e,\"Core/Color/Color.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{isNumber:i,merge:s,pInt:r}=e;class o{static parse(t){return t?new o(t):o.None}constructor(e){let i,s,r,n;this.rgba=[NaN,NaN,NaN,NaN],this.input=e;let a=t.Color;if(a&&a!==o)return new a(e);if(\"object\"==typeof e&&void 0!==e.stops)this.stops=e.stops.map(t=>new o(t[1]));else if(\"string\"==typeof e){if(this.input=e=o.names[e.toLowerCase()]||e,\"#\"===e.charAt(0)){let t=e.length,i=parseInt(e.substr(1),16);7===t?s=[(16711680&i)>>16,(65280&i)>>8,255&i,1]:4===t&&(s=[(3840&i)>>4|(3840&i)>>8,(240&i)>>4|240&i,(15&i)<<4|15&i,1])}if(!s)for(r=o.parsers.length;r--&&!s;)(i=(n=o.parsers[r]).regex.exec(e))&&(s=n.parse(i))}s&&(this.rgba=s)}get(t){let e=this.input,r=this.rgba;if(\"object\"==typeof e&&void 0!==this.stops){let i=s(e);return i.stops=[].slice.call(i.stops),this.stops.forEach((e,s)=>{i.stops[s]=[i.stops[s][0],e.get(t)]}),i}return r&&i(r[0])?\"rgb\"!==t&&(t||1!==r[3])?\"a\"===t?`${r[3]}`:\"rgba(\"+r.join(\",\")+\")\":\"rgb(\"+r[0]+\",\"+r[1]+\",\"+r[2]+\")\":e}brighten(t){let e=this.rgba;if(this.stops)this.stops.forEach(function(e){e.brighten(t)});else if(i(t)&&0!==t)for(let i=0;i<3;i++)e[i]+=r(255*t),e[i]<0&&(e[i]=0),e[i]>255&&(e[i]=255);return this}setOpacity(t){return this.rgba[3]=t,this}tweenTo(t,e){let s=this.rgba,r=t.rgba;if(!i(s[0])||!i(r[0]))return t.input||\"none\";let o=1!==r[3]||1!==s[3];return(o?\"rgba(\":\"rgb(\")+Math.round(r[0]+(s[0]-r[0])*(1-e))+\",\"+Math.round(r[1]+(s[1]-r[1])*(1-e))+\",\"+Math.round(r[2]+(s[2]-r[2])*(1-e))+(o?\",\"+(r[3]+(s[3]-r[3])*(1-e)):\"\")+\")\"}}return o.names={white:\"#ffffff\",black:\"#000000\"},o.parsers=[{regex:/rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d?(?:\\.\\d+)?)\\s*\\)/,parse:function(t){return[r(t[1]),r(t[2]),r(t[3]),parseFloat(t[4],10)]}},{regex:/rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)/,parse:function(t){return[r(t[1]),r(t[2]),r(t[3]),1]}}],o.None=new o(\"\"),o}),i(e,\"Core/Animation/Fx.js\",[e[\"Core/Color/Color.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{parse:s}=t,{win:r}=e,{isNumber:o,objectEach:n}=i;class a{constructor(t,e,i){this.pos=NaN,this.options=e,this.elem=t,this.prop=i}dSetter(){let t=this.paths,e=t&&t[0],i=t&&t[1],s=this.now||0,r=[];if(1!==s&&e&&i){if(e.length===i.length&&s<1)for(let t=0;t=h+this.startTime?(this.now=this.end,this.pos=1,this.update(),l[this.prop]=!0,i=!0,n(l,function(t){!0!==t&&(i=!1)}),i&&a&&a.call(o),e=!1):(this.pos=r.easing((s-this.startTime)/h),this.now=this.start+(this.end-this.start)*this.pos,this.update(),e=!0),e}initPath(t,e,i){let s=t.startX,r=t.endX,n=i.slice(),a=t.isArea,h=a?2:1,l=e&&i.length>e.length&&i.hasStackedCliffs,d,c,p,u,g=e&&e.slice();if(!g||l)return[n,n];function f(t,e){for(;t.length{let s=d(t.options.animation);a=n(e)&&i(e.defer)?r.defer:Math.max(a,s.duration+s.defer),h=Math.min(r.duration,s.duration)}),t.renderer.forExport&&(a=0),{defer:Math.max(0,a-h),duration:Math.min(a,h)}},setAnimation:function(t,e){e.renderer.globalAnimation=l(t,e.options.chart.animation,!0)},stop:c}}),i(e,\"Core/Renderer/HTML/AST.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{SVG_NS:i,win:s}=t,{attr:r,createElement:o,css:n,error:a,isFunction:h,isString:l,objectEach:d,splat:c}=e,{trustedTypes:p}=s,u=p&&h(p.createPolicy)&&p.createPolicy(\"highcharts\",{createHTML:t=>t}),g=u?u.createHTML(\"\"):\"\",f=function(){try{return!!new DOMParser().parseFromString(g,\"text/html\")}catch(t){return!1}}();class m{static filterUserAttributes(t){return d(t,(e,i)=>{let s=!0;-1===m.allowedAttributes.indexOf(i)&&(s=!1),-1!==[\"background\",\"dynsrc\",\"href\",\"lowsrc\",\"src\"].indexOf(i)&&(s=l(e)&&m.allowedReferences.some(t=>0===e.indexOf(t))),s||(a(33,!1,void 0,{\"Invalid attribute in config\":`${i}`}),delete t[i]),l(e)&&t[i]&&(t[i]=e.replace(/{let i=e.split(\":\").map(t=>t.trim()),s=i.shift();return s&&i.length&&(t[s.replace(/-([a-z])/g,t=>t[1].toUpperCase())]=i.join(\":\")),t},{})}static setElementHTML(t,e){t.innerHTML=m.emptyHTML,e&&new m(e).addToDOM(t)}constructor(t){this.nodes=\"string\"==typeof t?this.parseMarkup(t):t}addToDOM(e){return function e(s,o){let h;return c(s).forEach(function(s){let l;let c=s.tagName,p=s.textContent?t.doc.createTextNode(s.textContent):void 0,u=m.bypassHTMLFiltering;if(c){if(\"#text\"===c)l=p;else if(-1!==m.allowedTags.indexOf(c)||u){let a=\"svg\"===c?i:o.namespaceURI||i,h=t.doc.createElementNS(a,c),g=s.attributes||{};d(s,function(t,e){\"tagName\"!==e&&\"attributes\"!==e&&\"children\"!==e&&\"style\"!==e&&\"textContent\"!==e&&(g[e]=t)}),r(h,u?g:m.filterUserAttributes(g)),s.style&&n(h,s.style),p&&h.appendChild(p),e(s.children||[],h),l=h}else a(33,!1,void 0,{\"Invalid tagName in config\":c})}l&&o.appendChild(l),h=l}),h}(this.nodes,e)}parseMarkup(t){let e;let i=[];if(t=t.trim().replace(/ style=([\"'])/g,\" data-style=$1\"),f)e=new DOMParser().parseFromString(u?u.createHTML(t):t,\"text/html\");else{let i=o(\"div\");i.innerHTML=t,e={body:i}}let s=(t,e)=>{let i=t.nodeName.toLowerCase(),r={tagName:i};\"#text\"===i&&(r.textContent=t.textContent||\"\");let o=t.attributes;if(o){let t={};[].forEach.call(o,e=>{\"data-style\"===e.name?r.style=m.parseStyle(e.value):t[e.name]=e.value}),r.attributes=t}if(t.childNodes.length){let e=[];[].forEach.call(t.childNodes,t=>{s(t,e)}),e.length&&(r.children=e)}e.push(r)};return[].forEach.call(e.body.childNodes,t=>s(t,i)),i}}return m.allowedAttributes=[\"alt\",\"aria-controls\",\"aria-describedby\",\"aria-expanded\",\"aria-haspopup\",\"aria-hidden\",\"aria-label\",\"aria-labelledby\",\"aria-live\",\"aria-pressed\",\"aria-readonly\",\"aria-roledescription\",\"aria-selected\",\"class\",\"clip-path\",\"color\",\"colspan\",\"cx\",\"cy\",\"d\",\"dx\",\"dy\",\"disabled\",\"fill\",\"filterUnits\",\"flood-color\",\"flood-opacity\",\"height\",\"href\",\"id\",\"in\",\"in2\",\"markerHeight\",\"markerWidth\",\"offset\",\"opacity\",\"operator\",\"orient\",\"padding\",\"paddingLeft\",\"paddingRight\",\"patternUnits\",\"r\",\"radius\",\"refX\",\"refY\",\"role\",\"scope\",\"slope\",\"src\",\"startOffset\",\"stdDeviation\",\"stroke\",\"stroke-linecap\",\"stroke-width\",\"style\",\"tableValues\",\"result\",\"rowspan\",\"summary\",\"target\",\"tabindex\",\"text-align\",\"text-anchor\",\"textAnchor\",\"textLength\",\"title\",\"type\",\"valign\",\"width\",\"x\",\"x1\",\"x2\",\"xlink:href\",\"y\",\"y1\",\"y2\",\"zIndex\"],m.allowedReferences=[\"https://\",\"http://\",\"mailto:\",\"/\",\"../\",\"./\",\"#\"],m.allowedTags=[\"a\",\"abbr\",\"b\",\"br\",\"button\",\"caption\",\"circle\",\"clipPath\",\"code\",\"dd\",\"defs\",\"div\",\"dl\",\"dt\",\"em\",\"feComponentTransfer\",\"feComposite\",\"feDropShadow\",\"feFlood\",\"feFuncA\",\"feFuncB\",\"feFuncG\",\"feFuncR\",\"feGaussianBlur\",\"feMorphology\",\"feOffset\",\"feMerge\",\"feMergeNode\",\"filter\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"hr\",\"i\",\"img\",\"li\",\"linearGradient\",\"marker\",\"ol\",\"p\",\"path\",\"pattern\",\"pre\",\"rect\",\"small\",\"span\",\"stop\",\"strong\",\"style\",\"sub\",\"sup\",\"svg\",\"table\",\"text\",\"textPath\",\"thead\",\"title\",\"tbody\",\"tspan\",\"td\",\"th\",\"tr\",\"u\",\"ul\",\"#text\"],m.emptyHTML=g,m.bypassHTMLFiltering=!1,m}),i(e,\"Core/Templating.js\",[e[\"Core/Defaults.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{defaultOptions:i,defaultTime:s}=t,{extend:r,getNestedProperty:o,isArray:n,isNumber:a,isObject:h,pick:l,pInt:d}=e,c={add:(t,e)=>t+e,divide:(t,e)=>0!==e?t/e:\"\",eq:(t,e)=>t==e,each:function(t){let e=arguments[arguments.length-1];return!!n(t)&&t.map((i,s)=>p(e.body,r(h(i)?i:{\"@this\":i},{\"@index\":s,\"@first\":0===s,\"@last\":s===t.length-1}))).join(\"\")},ge:(t,e)=>t>=e,gt:(t,e)=>t>e,if:t=>!!t,le:(t,e)=>t<=e,lt:(t,e)=>tt*e,ne:(t,e)=>t!=e,subtract:(t,e)=>t-e,unless:t=>!t};function p(t=\"\",e,r){let n=/\\{([\\w\\:\\.\\,;\\-\\/<>%@\"'’= #\\(\\)]+)\\}/g,a=/\\(([\\w\\:\\.\\,;\\-\\/<>%@\"'= ]+)\\)/g,h=[],d=/f$/,g=/\\.(\\d)/,f=i.lang,m=r&&r.time||s,x=r&&r.numberFormatter||u,y=(t=\"\")=>{let i;return\"true\"===t||\"false\"!==t&&((i=Number(t)).toString()===t?i:o(t,e))},b,v,S=0,C;for(;null!==(b=n.exec(t));){let i=a.exec(b[1]);i&&(b=i,C=!0),v&&v.isBlock||(v={ctx:e,expression:b[1],find:b[0],isBlock:\"#\"===b[1].charAt(0),start:b.index,startInner:b.index+b[0].length,length:b[0].length});let s=b[1].split(\" \")[0].replace(\"#\",\"\");c[s]&&(v.isBlock&&s===v.fn&&S++,v.fn||(v.fn=s));let r=\"else\"===b[1];if(v.isBlock&&v.fn&&(b[1]===`/${v.fn}`||r)){if(S)!r&&S--;else{let e=v.startInner,i=t.substr(e,b.index-e);void 0===v.body?(v.body=i,v.startInner=b.index+b[0].length):v.elseBody=i,v.find+=i+b[0],r||(h.push(v),v=void 0)}}else v.isBlock||h.push(v);if(i&&!v?.isBlock)break}return h.forEach(i=>{let s,o;let{body:n,elseBody:a,expression:h,fn:u}=i;if(u){let t=[i],l=h.split(\" \");for(o=c[u].length;o--;)t.unshift(y(l[o+1]));s=c[u].apply(e,t),i.isBlock&&\"boolean\"==typeof s&&(s=p(s?n:a,e,r))}else{let t=h.split(\":\");if(s=y(t.shift()||\"\"),t.length&&\"number\"==typeof s){let e=t.join(\":\");if(d.test(e)){let t=parseInt((e.match(g)||[\"\",\"-1\"])[1],10);null!==s&&(s=x(s,t,f.decimalPoint,e.indexOf(\",\")>-1?f.thousandsSep:\"\"))}else s=m.dateFormat(e,s)}}t=t.replace(i.find,l(s,\"\"))}),C?p(t,e,r):t}function u(t,e,s,r){let o,n;t=+t||0,e=+e;let h=i.lang,c=(t.toString().split(\".\")[1]||\"\").split(\"e\")[0].length,p=t.toString().split(\"e\"),u=e;-1===e?e=Math.min(c,20):a(e)?e&&p[1]&&p[1]<0&&((n=e+ +p[1])>=0?(p[0]=(+p[0]).toExponential(n).split(\"e\")[0],e=n):(p[0]=p[0].split(\".\")[0]||0,t=e<20?(p[0]*Math.pow(10,p[1])).toFixed(e):0,p[1]=0)):e=2;let g=(Math.abs(p[1]?p[0]:t)+Math.pow(10,-Math.max(e,c)-1)).toFixed(e),f=String(d(g)),m=f.length>3?f.length%3:0;return s=l(s,h.decimalPoint),r=l(r,h.thousandsSep),o=(t<0?\"-\":\"\")+(m?f.substr(0,m)+r:\"\"),0>+p[1]&&!u?o=\"0\":o+=f.substr(m).replace(/(\\d{3})(?=\\d)/g,\"$1\"+r),e?o+=s+g.slice(-e):0==+o&&(o=\"0\"),p[1]&&0!=+o&&(o+=\"e\"+p[1]),o}return{dateFormat:function(t,e,i){return s.dateFormat(t,e,i)},format:p,helpers:c,numberFormat:u}}),i(e,\"Core/Renderer/RendererRegistry.js\",[e[\"Core/Globals.js\"]],function(t){var e,i;let s;return(i=e||(e={})).rendererTypes={},i.getRendererType=function(t=s){return i.rendererTypes[t]||i.rendererTypes[s]},i.registerRendererType=function(e,r,o){i.rendererTypes[e]=r,(!s||o)&&(s=e,t.Renderer=r)},e}),i(e,\"Core/Renderer/RendererUtilities.js\",[e[\"Core/Utilities.js\"]],function(t){var e;let{clamp:i,pick:s,pushUnique:r,stableSort:o}=t;return(e||(e={})).distribute=function t(e,n,a){let h=e,l=h.reducedLen||n,d=(t,e)=>t.target-e.target,c=[],p=e.length,u=[],g=c.push,f,m,x,y=!0,b,v,S=0,C;for(f=p;f--;)S+=e[f].size;if(S>l){for(o(e,(t,e)=>(e.rank||0)-(t.rank||0)),x=(C=e[0].rank===e[e.length-1].rank)?p/2:-1,m=C?x:p-1;x&&S>l;)b=e[f=Math.floor(m)],r(u,f)&&(S-=b.size),m+=x,C&&m>=e.length&&(x/=2,m=x);u.sort((t,e)=>e-t).forEach(t=>g.apply(c,e.splice(t,1)))}for(o(e,d),e=e.map(t=>({size:t.size,targets:[t.target],align:s(t.align,.5)}));y;){for(f=e.length;f--;)b=e[f],v=(Math.min.apply(0,b.targets)+Math.max.apply(0,b.targets))/2,b.pos=i(v-b.size*b.align,0,n-b.size);for(f=e.length,y=!1;f--;)f>0&&e[f-1].pos+e[f-1].size>e[f].pos&&(e[f-1].size+=e[f].size,e[f-1].targets=e[f-1].targets.concat(e[f].targets),e[f-1].align=.5,e[f-1].pos+e[f-1].size>n&&(e[f-1].pos=n-e[f-1].size),e.splice(f,1),y=!0)}return g.apply(h,c),f=0,e.some(e=>{let i=0;return(e.targets||[]).some(()=>(h[f].pos=e.pos+i,void 0!==a&&Math.abs(h[f].pos-h[f].target)>a)?(h.slice(0,f+1).forEach(t=>delete t.pos),h.reducedLen=(h.reducedLen||n)-.1*n,h.reducedLen>.1*n&&t(h,n,a),!0):(i+=h[f].size,f++,!1))}),o(h,d),h},e}),i(e,\"Core/Renderer/SVG/SVGElement.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Color/Color.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{animate:r,animObject:o,stop:n}=t,{deg2rad:a,doc:h,svg:l,SVG_NS:d,win:c}=i,{addEvent:p,attr:u,createElement:g,crisp:f,css:m,defined:x,erase:y,extend:b,fireEvent:v,isArray:S,isFunction:C,isObject:k,isString:M,merge:w,objectEach:A,pick:T,pInt:P,pushUnique:L,replaceNested:O,syncTimeout:D,uniqueKey:E}=s;class I{_defaultGetter(t){let e=T(this[t+\"Value\"],this[t],this.element?this.element.getAttribute(t):null,0);return/^-?[\\d\\.]+$/.test(e)&&(e=parseFloat(e)),e}_defaultSetter(t,e,i){i.setAttribute(e,t)}add(t){let e;let i=this.renderer,s=this.element;return t&&(this.parentGroup=t),void 0!==this.textStr&&\"text\"===this.element.nodeName&&i.buildText(this),this.added=!0,(!t||t.handleZ||this.zIndex)&&(e=this.zIndexSetter()),e||(t?t.element:i.box).appendChild(s),this.onAdd&&this.onAdd(),this}addClass(t,e){let i=e?\"\":this.attr(\"class\")||\"\";return(t=(t||\"\").split(/ /g).reduce(function(t,e){return -1===i.indexOf(e)&&t.push(e),t},i?[i]:[]).join(\" \"))!==i&&this.attr(\"class\",t),this}afterSetters(){this.doTransform&&(this.updateTransform(),this.doTransform=!1)}align(t,e,i,s=!0){let r,o,n,a;let h={},l=this.renderer,d=l.alignedObjects,c=!!t;t?(this.alignOptions=t,this.alignByTranslate=e,this.alignTo=i):(t=this.alignOptions||{},e=this.alignByTranslate,i=this.alignTo);let p=!i||M(i)?i||\"renderer\":void 0;p&&(c&&L(d,this),i=void 0);let u=T(i,l[p],l),g=t.align,f=t.verticalAlign;return r=(u.x||0)+(t.x||0),o=(u.y||0)+(t.y||0),\"right\"===g?n=1:\"center\"===g&&(n=2),n&&(r+=((u.width||0)-(t.width||0))/n),h[e?\"translateX\":\"x\"]=Math.round(r),\"bottom\"===f?a=1:\"middle\"===f&&(a=2),a&&(o+=((u.height||0)-(t.height||0))/a),h[e?\"translateY\":\"y\"]=Math.round(o),s&&(this[this.placed?\"animate\":\"attr\"](h),this.placed=!0),this.alignAttr=h,this}alignSetter(t){let e={left:\"start\",center:\"middle\",right:\"end\"};e[t]&&(this.alignValue=t,this.element.setAttribute(\"text-anchor\",e[t]))}animate(t,e,i){let s=o(T(e,this.renderer.globalAnimation,!0)),n=s.defer;return h.hidden&&(s.duration=0),0!==s.duration?(i&&(s.complete=i),D(()=>{this.element&&r(this,t,s)},n)):(this.attr(t,void 0,i||s.complete),A(t,function(t,e){s.step&&s.step.call(this,t,{prop:e,pos:1,elem:this})},this)),this}applyTextOutline(t){let e=this.element;-1!==t.indexOf(\"contrast\")&&(t=t.replace(/contrast/g,this.renderer.getContrast(e.style.fill)));let s=t.split(\" \"),r=s[s.length-1],o=s[0];if(o&&\"none\"!==o&&i.svg){this.fakeTS=!0,o=o.replace(/(^[\\d\\.]+)(.*?)$/g,function(t,e,i){return 2*Number(e)+i}),this.removeTextOutline();let t=h.createElementNS(d,\"tspan\");u(t,{class:\"highcharts-text-outline\",fill:r,stroke:r,\"stroke-width\":o,\"stroke-linejoin\":\"round\"});let i=e.querySelector(\"textPath\")||e;[].forEach.call(i.childNodes,e=>{let i=e.cloneNode(!0);i.removeAttribute&&[\"fill\",\"stroke\",\"stroke-width\",\"stroke\"].forEach(t=>i.removeAttribute(t)),t.appendChild(i)});let s=0;[].forEach.call(i.querySelectorAll(\"text tspan\"),t=>{s+=Number(t.getAttribute(\"dy\"))});let n=h.createElementNS(d,\"tspan\");n.textContent=\"​\",u(n,{x:Number(e.getAttribute(\"x\")),dy:-s}),t.appendChild(n),i.insertBefore(t,i.firstChild)}}attr(t,e,i,s){let{element:r}=this,o=I.symbolCustomAttribs,a,h,l=this,d;return\"string\"==typeof t&&void 0!==e&&(a=t,(t={})[a]=e),\"string\"==typeof t?l=(this[t+\"Getter\"]||this._defaultGetter).call(this,t,r):(A(t,function(e,i){d=!1,s||n(this,i),this.symbolName&&-1!==o.indexOf(i)&&(h||(this.symbolAttr(t),h=!0),d=!0),this.rotation&&(\"x\"===i||\"y\"===i)&&(this.doTransform=!0),d||(this[i+\"Setter\"]||this._defaultSetter).call(this,e,i,r)},this),this.afterSetters()),i&&i.call(this),l}clip(t){if(t&&!t.clipPath){let e=E()+\"-\",i=this.renderer.createElement(\"clipPath\").attr({id:e}).add(this.renderer.defs);b(t,{clipPath:i,id:e,count:0}),t.add(i)}return this.attr(\"clip-path\",t?`url(${this.renderer.url}#${t.id})`:\"none\")}crisp(t,e){e=Math.round(e||t.strokeWidth||0);let i=t.x||this.x||0,s=t.y||this.y||0,r=(t.width||this.width||0)+i,o=(t.height||this.height||0)+s,n=f(i,e),a=f(s,e);return b(t,{x:n,y:a,width:f(r,e)-n,height:f(o,e)-a}),x(t.strokeWidth)&&(t.strokeWidth=e),t}complexColor(t,i,s){let r=this.renderer,o,n,a,h,l,d,c,p,u,g,f=[],m;v(this.renderer,\"complexColor\",{args:arguments},function(){if(t.radialGradient?n=\"radialGradient\":t.linearGradient&&(n=\"linearGradient\"),n){if(a=t[n],l=r.gradients,d=t.stops,u=s.radialReference,S(a)&&(t[n]=a={x1:a[0],y1:a[1],x2:a[2],y2:a[3],gradientUnits:\"userSpaceOnUse\"}),\"radialGradient\"===n&&u&&!x(a.gradientUnits)&&(h=a,a=w(a,r.getRadialAttr(u,h),{gradientUnits:\"userSpaceOnUse\"})),A(a,function(t,e){\"id\"!==e&&f.push(e,t)}),A(d,function(t){f.push(t)}),l[f=f.join(\",\")])g=l[f].attr(\"id\");else{a.id=g=E();let t=l[f]=r.createElement(n).attr(a).add(r.defs);t.radAttr=h,t.stops=[],d.forEach(function(i){0===i[1].indexOf(\"rgba\")?(c=(o=e.parse(i[1])).get(\"rgb\"),p=o.get(\"a\")):(c=i[1],p=1);let s=r.createElement(\"stop\").attr({offset:i[0],\"stop-color\":c,\"stop-opacity\":p}).add(t);t.stops.push(s)})}m=\"url(\"+r.url+\"#\"+g+\")\",s.setAttribute(i,m),s.gradient=f,t.toString=function(){return m}}})}css(t){let e=this.styles,i={},s=this.element,r,o=!e;if(e&&A(t,function(t,s){e&&e[s]!==t&&(i[s]=t,o=!0)}),o){e&&(t=b(e,i)),null===t.width||\"auto\"===t.width?delete this.textWidth:\"text\"===s.nodeName.toLowerCase()&&t.width&&(r=this.textWidth=P(t.width)),b(this.styles,t),r&&!l&&this.renderer.forExport&&delete t.width;let o=w(t);s.namespaceURI===this.SVG_NS&&([\"textOutline\",\"textOverflow\",\"width\"].forEach(t=>o&&delete o[t]),o.color&&(o.fill=o.color)),m(s,o)}return this.added&&(\"text\"===this.element.nodeName&&this.renderer.buildText(this),t.textOutline&&this.applyTextOutline(t.textOutline)),this}dashstyleSetter(t){let e,i=this[\"stroke-width\"];if(\"inherit\"===i&&(i=1),t=t&&t.toLowerCase()){let s=t.replace(\"shortdashdotdot\",\"3,1,1,1,1,1,\").replace(\"shortdashdot\",\"3,1,1,1\").replace(\"shortdot\",\"1,1,\").replace(\"shortdash\",\"3,1,\").replace(\"longdash\",\"8,3,\").replace(/dot/g,\"1,3,\").replace(\"dash\",\"4,3,\").replace(/,$/,\"\").split(\",\");for(e=s.length;e--;)s[e]=\"\"+P(s[e])*T(i,NaN);t=s.join(\",\").replace(/NaN/g,\"none\"),this.element.setAttribute(\"stroke-dasharray\",t)}}destroy(){let t=this,e=t.element||{},i=t.renderer,s=e.ownerSVGElement,r=\"SPAN\"===e.nodeName&&t.parentGroup||void 0,o,a;if(e.onclick=e.onmouseout=e.onmouseover=e.onmousemove=e.point=null,n(t),t.clipPath&&s){let e=t.clipPath;[].forEach.call(s.querySelectorAll(\"[clip-path],[CLIP-PATH]\"),function(t){t.getAttribute(\"clip-path\").indexOf(e.element.id)>-1&&t.removeAttribute(\"clip-path\")}),t.clipPath=e.destroy()}if(t.connector=t.connector?.destroy(),t.stops){for(a=0;ae&&e.join?(i?t+\" \":\"\")+e.join(\" \"):(e||\"\").toString(),\"\")),/(NaN| {2}|^$)/.test(t)&&(t=\"M 0 0\"),this[e]!==t&&(i.setAttribute(e,t),this[e]=t)}fillSetter(t,e,i){\"string\"==typeof t?i.setAttribute(e,t):t&&this.complexColor(t,e,i)}hrefSetter(t,e,i){i.setAttributeNS(\"http://www.w3.org/1999/xlink\",e,t)}getBBox(t,e){let i,s,r,o;let{alignValue:n,element:a,renderer:h,styles:l,textStr:d}=this,{cache:c,cacheKeys:p}=h,u=a.namespaceURI===this.SVG_NS,g=T(e,this.rotation,0),f=h.styledMode?a&&I.prototype.getStyle.call(a,\"font-size\"):l.fontSize;if(x(d)&&(-1===(o=d.toString()).indexOf(\"<\")&&(o=o.replace(/\\d/g,\"0\")),o+=[\"\",h.rootFontSize,f,g,this.textWidth,n,l.textOverflow,l.fontWeight].join(\",\")),o&&!t&&(i=c[o]),!i||i.polygon){if(u||h.forExport){try{r=this.fakeTS&&function(t){let e=a.querySelector(\".highcharts-text-outline\");e&&m(e,{display:t})},C(r)&&r(\"none\"),i=a.getBBox?b({},a.getBBox()):{width:a.offsetWidth,height:a.offsetHeight,x:0,y:0},C(r)&&r(\"\")}catch(t){}(!i||i.width<0)&&(i={x:0,y:0,width:0,height:0})}else i=this.htmlGetBBox();s=i.height,u&&(i.height=s=({\"11px,17\":14,\"13px,20\":16})[`${f||\"\"},${Math.round(s)}`]||s),g&&(i=this.getRotatedBox(i,g));let t={bBox:i};v(this,\"afterGetBBox\",t),i=t.bBox}if(o&&(\"\"===d||i.height>0)){for(;p.length>250;)delete c[p.shift()];c[o]||p.push(o),c[o]=i}return i}getRotatedBox(t,e){let{x:i,y:s,width:r,height:o}=t,{alignValue:n,translateY:h,rotationOriginX:l=0,rotationOriginY:d=0}=this,c={right:1,center:.5}[n||0]||0,p=Number(this.element.getAttribute(\"y\")||0)-(h?0:s),u=e*a,g=(e-90)*a,f=Math.cos(u),m=Math.sin(u),x=r*f,y=r*m,b=Math.cos(g),v=Math.sin(g),[[S,C],[k,M]]=[l,d].map(t=>[t-t*f,t*m]),w=i+c*(r-x)+S+M+p*b,A=w+x,T=A-o*b,P=T-x,L=s+p-c*y-C+k+p*v,O=L+y,D=O-o*v,E=D-y,I=Math.min(w,A,T,P),j=Math.min(L,O,D,E),B=Math.max(w,A,T,P)-I,R=Math.max(L,O,D,E)-j;return{x:I,y:j,width:B,height:R,polygon:[[w,L],[A,O],[T,D],[P,E]]}}getStyle(t){return c.getComputedStyle(this.element||this,\"\").getPropertyValue(t)}hasClass(t){return -1!==(\"\"+this.attr(\"class\")).split(\" \").indexOf(t)}hide(){return this.attr({visibility:\"hidden\"})}htmlGetBBox(){return{height:0,width:0,x:0,y:0}}constructor(t,e){this.onEvents={},this.opacity=1,this.SVG_NS=d,this.element=\"span\"===e||\"body\"===e?g(e):h.createElementNS(this.SVG_NS,e),this.renderer=t,this.styles={},v(this,\"afterInit\")}on(t,e){let{onEvents:i}=this;return i[t]&&i[t](),i[t]=p(this.element,t,e),this}opacitySetter(t,e,i){let s=Number(Number(t).toFixed(3));this.opacity=s,i.setAttribute(e,s)}reAlign(){this.alignOptions?.width&&\"left\"!==this.alignOptions.align&&(this.alignOptions.width=this.getBBox().width,this.placed=!1,this.align())}removeClass(t){return this.attr(\"class\",(\"\"+this.attr(\"class\")).replace(M(t)?RegExp(`(^| )${t}( |$)`):t,\" \").replace(/ +/g,\" \").trim())}removeTextOutline(){let t=this.element.querySelector(\"tspan.highcharts-text-outline\");t&&this.safeRemoveChild(t)}safeRemoveChild(t){let e=t.parentNode;e&&e.removeChild(t)}setRadialReference(t){let e=this.element.gradient&&this.renderer.gradients[this.element.gradient];return this.element.radialReference=t,e&&e.radAttr&&e.animate(this.renderer.getRadialAttr(t,e.radAttr)),this}shadow(t){let{renderer:e}=this,i=w(this.parentGroup?.rotation===90?{offsetX:-1,offsetY:-1}:{},k(t)?t:{}),s=e.shadowDefinition(i);return this.attr({filter:t?`url(${e.url}#${s})`:\"none\"})}show(t=!0){return this.attr({visibility:t?\"inherit\":\"visible\"})}\"stroke-widthSetter\"(t,e,i){this[e]=t,i.setAttribute(e,t)}strokeWidth(){if(!this.renderer.styledMode)return this[\"stroke-width\"]||0;let t=this.getStyle(\"stroke-width\"),e=0,i;return/px$/.test(t)?e=P(t):\"\"!==t&&(u(i=h.createElementNS(d,\"rect\"),{width:t,\"stroke-width\":0}),this.element.parentNode.appendChild(i),e=i.getBBox().width,i.parentNode.removeChild(i)),e}symbolAttr(t){let e=this;I.symbolCustomAttribs.forEach(function(i){e[i]=T(t[i],e[i])}),e.attr({d:e.renderer.symbols[e.symbolName](e.x,e.y,e.width,e.height,e)})}textSetter(t){t!==this.textStr&&(delete this.textPxLength,this.textStr=t,this.added&&this.renderer.buildText(this),this.reAlign())}titleSetter(t){let e=this.element,i=e.getElementsByTagName(\"title\")[0]||h.createElementNS(this.SVG_NS,\"title\");e.insertBefore?e.insertBefore(i,e.firstChild):e.appendChild(i),i.textContent=O(T(t,\"\"),[/<[^>]*>/g,\"\"]).replace(/</g,\"<\").replace(/>/g,\">\")}toFront(){let t=this.element;return t.parentNode.appendChild(t),this}translate(t,e){return this.attr({translateX:t,translateY:e})}updateTransform(t=\"transform\"){let{element:e,matrix:i,rotation:s=0,rotationOriginX:r,rotationOriginY:o,scaleX:n,scaleY:a,translateX:h=0,translateY:l=0}=this,d=[\"translate(\"+h+\",\"+l+\")\"];x(i)&&d.push(\"matrix(\"+i.join(\",\")+\")\"),s&&(d.push(\"rotate(\"+s+\" \"+T(r,e.getAttribute(\"x\"),0)+\" \"+T(o,e.getAttribute(\"y\")||0)+\")\"),this.text?.element.tagName===\"SPAN\"&&this.text.attr({rotation:s,rotationOriginX:(r||0)-this.padding,rotationOriginY:(o||0)-this.padding})),(x(n)||x(a))&&d.push(\"scale(\"+T(n,1)+\" \"+T(a,1)+\")\"),d.length&&!(this.text||this).textPath&&e.setAttribute(t,d.join(\" \"))}visibilitySetter(t,e,i){\"inherit\"===t?i.removeAttribute(e):this[e]!==t&&i.setAttribute(e,t),this[e]=t}xGetter(t){return\"circle\"===this.element.nodeName&&(\"x\"===t?t=\"cx\":\"y\"===t&&(t=\"cy\")),this._defaultGetter(t)}zIndexSetter(t,e){let i=this.renderer,s=this.parentGroup,r=(s||i).element||i.box,o=this.element,n=r===i.box,a,h,l,d=!1,c,p=this.added,u;if(x(t)?(o.setAttribute(\"data-z-index\",t),t=+t,this[e]===t&&(p=!1)):x(this[e])&&o.removeAttribute(\"data-z-index\"),this[e]=t,p){for((t=this.zIndex)&&s&&(s.handleZ=!0),u=(a=r.childNodes).length-1;u>=0&&!d;u--)c=!x(l=(h=a[u]).getAttribute(\"data-z-index\")),h!==o&&(t<0&&c&&!n&&!u?(r.insertBefore(o,a[u]),d=!0):(P(l)<=t||c&&(!x(t)||t>=0))&&(r.insertBefore(o,a[u+1]),d=!0));d||(r.insertBefore(o,a[n?3:0]),d=!0)}return d}}return I.symbolCustomAttribs=[\"anchorX\",\"anchorY\",\"clockwise\",\"end\",\"height\",\"innerR\",\"r\",\"start\",\"width\",\"x\",\"y\"],I.prototype.strokeSetter=I.prototype.fillSetter,I.prototype.yGetter=I.prototype.xGetter,I.prototype.matrixSetter=I.prototype.rotationOriginXSetter=I.prototype.rotationOriginYSetter=I.prototype.rotationSetter=I.prototype.scaleXSetter=I.prototype.scaleYSetter=I.prototype.translateXSetter=I.prototype.translateYSetter=I.prototype.verticalAlignSetter=function(t,e){this[e]=t,this.doTransform=!0},I}),i(e,\"Core/Renderer/SVG/SVGLabel.js\",[e[\"Core/Renderer/SVG/SVGElement.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{defined:i,extend:s,isNumber:r,merge:o,pick:n,removeEvent:a}=e;class h extends t{constructor(t,e,i,s,r,o,n,a,l,d){let c;super(t,\"g\"),this.paddingLeftSetter=this.paddingSetter,this.paddingRightSetter=this.paddingSetter,this.doUpdate=!1,this.textStr=e,this.x=i,this.y=s,this.anchorX=o,this.anchorY=n,this.baseline=l,this.className=d,this.addClass(\"button\"===d?\"highcharts-no-tooltip\":\"highcharts-label\"),d&&this.addClass(\"highcharts-\"+d),this.text=t.text(void 0,0,0,a).attr({zIndex:1}),\"string\"==typeof r&&((c=/^url\\((.*?)\\)$/.test(r))||this.renderer.symbols[r])&&(this.symbolKey=r),this.bBox=h.emptyBBox,this.padding=3,this.baselineOffset=0,this.needsBox=t.styledMode||c,this.deferredAttr={},this.alignFactor=0}alignSetter(t){let e={left:0,center:.5,right:1}[t];e!==this.alignFactor&&(this.alignFactor=e,this.bBox&&r(this.xSetting)&&this.attr({x:this.xSetting}))}anchorXSetter(t,e){this.anchorX=t,this.boxAttr(e,Math.round(t)-this.getCrispAdjust()-this.xSetting)}anchorYSetter(t,e){this.anchorY=t,this.boxAttr(e,t-this.ySetting)}boxAttr(t,e){this.box?this.box.attr(t,e):this.deferredAttr[t]=e}css(e){if(e){let t={};e=o(e),h.textProps.forEach(i=>{void 0!==e[i]&&(t[i]=e[i],delete e[i])}),this.text.css(t),\"fontSize\"in t||\"fontWeight\"in t?this.updateTextPadding():(\"width\"in t||\"textOverflow\"in t)&&this.updateBoxSize()}return t.prototype.css.call(this,e)}destroy(){a(this.element,\"mouseenter\"),a(this.element,\"mouseleave\"),this.text&&this.text.destroy(),this.box&&(this.box=this.box.destroy()),t.prototype.destroy.call(this)}fillSetter(t,e){t&&(this.needsBox=!0),this.fill=t,this.boxAttr(e,t)}getBBox(t,e){this.textStr&&0===this.bBox.width&&0===this.bBox.height&&this.updateBoxSize();let{padding:i,height:s=0,translateX:r=0,translateY:o=0,width:a=0}=this,h=n(this.paddingLeft,i),l=e??(this.rotation||0),d={width:a,height:s,x:r+this.bBox.x-h,y:o+this.bBox.y-i+this.baselineOffset};return l&&(d=this.getRotatedBox(d,l)),d}getCrispAdjust(){return(this.renderer.styledMode&&this.box?this.box.strokeWidth():this[\"stroke-width\"]?parseInt(this[\"stroke-width\"],10):0)%2/2}heightSetter(t){this.heightSetting=t,this.doUpdate=!0}afterSetters(){super.afterSetters(),this.doUpdate&&(this.updateBoxSize(),this.doUpdate=!1)}onAdd(){this.text.add(this),this.attr({text:n(this.textStr,\"\"),x:this.x||0,y:this.y||0}),this.box&&i(this.anchorX)&&this.attr({anchorX:this.anchorX,anchorY:this.anchorY})}paddingSetter(t,e){r(t)?t!==this[e]&&(this[e]=t,this.updateTextPadding()):this[e]=void 0}rSetter(t,e){this.boxAttr(e,t)}strokeSetter(t,e){this.stroke=t,this.boxAttr(e,t)}\"stroke-widthSetter\"(t,e){t&&(this.needsBox=!0),this[\"stroke-width\"]=t,this.boxAttr(e,t)}\"text-alignSetter\"(t){this.textAlign=t}textSetter(t){void 0!==t&&this.text.attr({text:t}),this.updateTextPadding(),this.reAlign()}updateBoxSize(){let t;let e=this.text,o={},n=this.padding,a=this.bBox=(!r(this.widthSetting)||!r(this.heightSetting)||this.textAlign)&&i(e.textStr)?e.getBBox(void 0,0):h.emptyBBox;this.width=this.getPaddedWidth(),this.height=(this.heightSetting||a.height||0)+2*n;let l=this.renderer.fontMetrics(e);if(this.baselineOffset=n+Math.min((this.text.firstLineMetrics||l).b,a.height||1/0),this.heightSetting&&(this.baselineOffset+=(this.heightSetting-l.h)/2),this.needsBox&&!e.textPath){if(!this.box){let t=this.box=this.symbolKey?this.renderer.symbol(this.symbolKey):this.renderer.rect();t.addClass((\"button\"===this.className?\"\":\"highcharts-label-box\")+(this.className?\" highcharts-\"+this.className+\"-box\":\"\")),t.add(this)}t=this.getCrispAdjust(),o.x=t,o.y=(this.baseline?-this.baselineOffset:0)+t,o.width=Math.round(this.width),o.height=Math.round(this.height),this.box.attr(s(o,this.deferredAttr)),this.deferredAttr={}}}updateTextPadding(){let t=this.text;if(!t.textPath){this.updateBoxSize();let e=this.baseline?0:this.baselineOffset,s=n(this.paddingLeft,this.padding);i(this.widthSetting)&&this.bBox&&(\"center\"===this.textAlign||\"right\"===this.textAlign)&&(s+=({center:.5,right:1})[this.textAlign]*(this.widthSetting-this.bBox.width)),(s!==t.x||e!==t.y)&&(t.attr(\"x\",s),t.hasBoxWidthChanged&&(this.bBox=t.getBBox(!0)),void 0!==e&&t.attr(\"y\",e)),t.x=s,t.y=e}}widthSetter(t){this.widthSetting=r(t)?t:void 0,this.doUpdate=!0}getPaddedWidth(){let t=this.padding,e=n(this.paddingLeft,t),i=n(this.paddingRight,t);return(this.widthSetting||this.bBox.width||0)+e+i}xSetter(t){this.x=t,this.alignFactor&&(t-=this.alignFactor*this.getPaddedWidth(),this[\"forceAnimate:x\"]=!0),this.xSetting=Math.round(t),this.attr(\"translateX\",this.xSetting)}ySetter(t){this.ySetting=this.y=Math.round(t),this.attr(\"translateY\",this.ySetting)}}return h.emptyBBox={width:0,height:0,x:0,y:0},h.textProps=[\"color\",\"direction\",\"fontFamily\",\"fontSize\",\"fontStyle\",\"fontWeight\",\"lineHeight\",\"textAlign\",\"textDecoration\",\"textOutline\",\"textOverflow\",\"whiteSpace\",\"width\"],h}),i(e,\"Core/Renderer/SVG/Symbols.js\",[e[\"Core/Utilities.js\"]],function(t){let{defined:e,isNumber:i,pick:s}=t;function r(t,i,r,o,n){let a=[];if(n){let h=n.start||0,l=s(n.r,r),d=s(n.r,o||r),c=2e-4/Math.max(l,1),p=Math.abs((n.end||0)-h-2*Math.PI)0&&d0)return c;if(t+l>s-h){if(d>e+h&&de+h&&d0){let i=dr&&lh&&c.splice(1,1,[\"L\",l-6,e],[\"L\",l,e-6],[\"L\",l+6,e],[\"L\",s-a,e]);return c},circle:function(t,e,i,s){return r(t+i/2,e+s/2,i/2,s/2,{start:.5*Math.PI,end:2.5*Math.PI,open:!1})},diamond:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s/2],[\"L\",t+i/2,e+s],[\"L\",t,e+s/2],[\"Z\"]]},rect:o,roundedRect:n,square:o,triangle:function(t,e,i,s){return[[\"M\",t+i/2,e],[\"L\",t+i,e+s],[\"L\",t,e+s],[\"Z\"]]},\"triangle-down\":function(t,e,i,s){return[[\"M\",t,e],[\"L\",t+i,e],[\"L\",t+i/2,e+s],[\"Z\"]]}}}),i(e,\"Core/Renderer/SVG/TextBuilder.js\",[e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{doc:s,SVG_NS:r,win:o}=e,{attr:n,extend:a,fireEvent:h,isString:l,objectEach:d,pick:c}=i;return class{constructor(t){let e=t.styles;this.renderer=t.renderer,this.svgElement=t,this.width=t.textWidth,this.textLineHeight=e&&e.lineHeight,this.textOutline=e&&e.textOutline,this.ellipsis=!!(e&&\"ellipsis\"===e.textOverflow),this.noWrap=!!(e&&\"nowrap\"===e.whiteSpace)}buildSVG(){let e=this.svgElement,i=e.element,r=e.renderer,o=c(e.textStr,\"\").toString(),n=-1!==o.indexOf(\"<\"),a=i.childNodes,h=!e.added&&r.box,d=[o,this.ellipsis,this.noWrap,this.textLineHeight,this.textOutline,e.getStyle(\"font-size\"),this.width].join(\",\");if(d!==e.textCache){e.textCache=d,delete e.actualWidth;for(let t=a.length;t--;)i.removeChild(a[t]);if(n||this.ellipsis||this.width||e.textPath||-1!==o.indexOf(\" \")&&(!this.noWrap||//g.test(o))){if(\"\"!==o){h&&h.appendChild(i);let s=new t(o);this.modifyTree(s.nodes),s.addToDOM(i),this.modifyDOM(),this.ellipsis&&-1!==(i.textContent||\"\").indexOf(\"…\")&&e.attr(\"title\",this.unescapeEntities(e.textStr||\"\",[\"<\",\">\"])),h&&h.removeChild(i)}}else i.appendChild(s.createTextNode(this.unescapeEntities(o)));l(this.textOutline)&&e.applyTextOutline&&e.applyTextOutline(this.textOutline)}}modifyDOM(){let t;let e=this.svgElement,i=n(e.element,\"x\");for(e.firstLineMetrics=void 0;t=e.element.firstChild;)if(/^[\\s\\u200B]*$/.test(t.textContent||\" \"))e.element.removeChild(t);else break;[].forEach.call(e.element.querySelectorAll(\"tspan.highcharts-br\"),(t,s)=>{t.nextSibling&&t.previousSibling&&(0===s&&1===t.previousSibling.nodeType&&(e.firstLineMetrics=e.renderer.fontMetrics(t.previousSibling)),n(t,{dy:this.getLineHeight(t.nextSibling),x:i}))});let a=this.width||0;if(!a)return;let h=(t,o)=>{let h=t.textContent||\"\",l=h.replace(/([^\\^])-/g,\"$1- \").split(\" \"),d=!this.noWrap&&(l.length>1||e.element.childNodes.length>1),c=this.getLineHeight(o),p=0,u=e.actualWidth;if(this.ellipsis)h&&this.truncate(t,h,void 0,0,Math.max(0,a-.8*c),(t,e)=>t.substring(0,e)+\"…\");else if(d){let h=[],d=[];for(;o.firstChild&&o.firstChild!==t;)d.push(o.firstChild),o.removeChild(o.firstChild);for(;l.length;)l.length&&!this.noWrap&&p>0&&(h.push(t.textContent||\"\"),t.textContent=l.join(\" \").replace(/- /g,\"-\")),this.truncate(t,void 0,l,0===p&&u||0,a,(t,e)=>l.slice(0,e).join(\" \").replace(/- /g,\"-\")),u=e.actualWidth,p++;d.forEach(e=>{o.insertBefore(e,t)}),h.forEach(e=>{o.insertBefore(s.createTextNode(e),t);let a=s.createElementNS(r,\"tspan\");a.textContent=\"​\",n(a,{dy:c,x:i}),o.insertBefore(a,t)})}},l=t=>{[].slice.call(t.childNodes).forEach(i=>{i.nodeType===o.Node.TEXT_NODE?h(i,t):(-1!==i.className.baseVal.indexOf(\"highcharts-br\")&&(e.actualWidth=0),l(i))})};l(e.element)}getLineHeight(t){let e=t.nodeType===o.Node.TEXT_NODE?t.parentElement:t;return this.textLineHeight?parseInt(this.textLineHeight.toString(),10):this.renderer.fontMetrics(e||this.svgElement.element).h}modifyTree(t){let e=(i,s)=>{let{attributes:r={},children:o,style:n={},tagName:h}=i,l=this.renderer.styledMode;if(\"b\"===h||\"strong\"===h?l?r.class=\"highcharts-strong\":n.fontWeight=\"bold\":(\"i\"===h||\"em\"===h)&&(l?r.class=\"highcharts-emphasized\":n.fontStyle=\"italic\"),n&&n.color&&(n.fill=n.color),\"br\"===h){r.class=\"highcharts-br\",i.textContent=\"​\";let e=t[s+1];e&&e.textContent&&(e.textContent=e.textContent.replace(/^ +/gm,\"\"))}else\"a\"===h&&o&&o.some(t=>\"#text\"===t.tagName)&&(i.children=[{children:o,tagName:\"tspan\"}]);\"#text\"!==h&&\"a\"!==h&&(i.tagName=\"tspan\"),a(i,{attributes:r,style:n}),o&&o.filter(t=>\"#text\"!==t.tagName).forEach(e)};t.forEach(e),h(this.svgElement,\"afterModifyTree\",{nodes:t})}truncate(t,e,i,s,r,o){let n,a;let h=this.svgElement,{rotation:l}=h,d=[],c=i?1:0,p=(e||i||\"\").length,u=p,g=function(e,r){let o=r||e,n=t.parentNode;if(n&&void 0===d[o]&&n.getSubStringLength)try{d[o]=s+n.getSubStringLength(0,i?o+1:o)}catch(t){}return d[o]};if(h.rotation=0,s+(a=g(t.textContent.length))>r){for(;c<=p;)u=Math.ceil((c+p)/2),i&&(n=o(i,u)),a=g(u,n&&n.length-1),c===p?c=p+1:a>r?p=u-1:c=u;0===p?t.textContent=\"\":e&&p===e.length-1||(t.textContent=n||o(e||i,u))}i&&i.splice(0,u),h.actualWidth=a,h.rotation=l}unescapeEntities(t,e){return d(this.renderer.escapes,function(i,s){e&&-1!==e.indexOf(i)||(t=t.toString().replace(RegExp(i,\"g\"),s))}),t}}}),i(e,\"Core/Renderer/SVG/SVGRenderer.js\",[e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Defaults.js\"],e[\"Core/Color/Color.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/RendererRegistry.js\"],e[\"Core/Renderer/SVG/SVGElement.js\"],e[\"Core/Renderer/SVG/SVGLabel.js\"],e[\"Core/Renderer/SVG/Symbols.js\"],e[\"Core/Renderer/SVG/TextBuilder.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o,n,a,h,l){let d;let{defaultOptions:c}=e,{charts:p,deg2rad:u,doc:g,isFirefox:f,isMS:m,isWebKit:x,noop:y,SVG_NS:b,symbolSizes:v,win:S}=s,{addEvent:C,attr:k,createElement:M,crisp:w,css:A,defined:T,destroyObjectProperties:P,extend:L,isArray:O,isNumber:D,isObject:E,isString:I,merge:j,pick:B,pInt:R,replaceNested:z,uniqueKey:N}=l;class W{constructor(t,e,i,s,r,o,n){let a,h;let l=this.createElement(\"svg\").attr({version:\"1.1\",class:\"highcharts-root\"}),d=l.element;n||l.css(this.getStyle(s||{})),t.appendChild(d),k(t,\"dir\",\"ltr\"),-1===t.innerHTML.indexOf(\"xmlns\")&&k(d,\"xmlns\",this.SVG_NS),this.box=d,this.boxWrapper=l,this.alignedObjects=[],this.url=this.getReferenceURL(),this.createElement(\"desc\").add().element.appendChild(g.createTextNode(\"Created with Highcharts 11.4.4\")),this.defs=this.createElement(\"defs\").add(),this.allowHTML=o,this.forExport=r,this.styledMode=n,this.gradients={},this.cache={},this.cacheKeys=[],this.imgCount=0,this.rootFontSize=l.getStyle(\"font-size\"),this.setSize(e,i,!1),f&&t.getBoundingClientRect&&((a=function(){A(t,{left:0,top:0}),h=t.getBoundingClientRect(),A(t,{left:Math.ceil(h.left)-h.left+\"px\",top:Math.ceil(h.top)-h.top+\"px\"})})(),this.unSubPixelFix=C(S,\"resize\",a))}definition(e){return new t([e]).addToDOM(this.defs.element)}getReferenceURL(){if((f||x)&&g.getElementsByTagName(\"base\").length){if(!T(d)){let e=N(),i=new t([{tagName:\"svg\",attributes:{width:8,height:8},children:[{tagName:\"defs\",children:[{tagName:\"clipPath\",attributes:{id:e},children:[{tagName:\"rect\",attributes:{width:4,height:4}}]}]},{tagName:\"rect\",attributes:{id:\"hitme\",width:8,height:8,\"clip-path\":`url(#${e})`,fill:\"rgba(0,0,0,0.001)\"}}]}]).addToDOM(g.body);A(i,{position:\"fixed\",top:0,left:0,zIndex:9e5});let s=g.elementFromPoint(6,6);d=\"hitme\"===(s&&s.id),g.body.removeChild(i)}if(d)return z(S.location.href.split(\"#\")[0],[/<[^>]*>/g,\"\"],[/([\\('\\)])/g,\"\\\\$1\"],[/ /g,\"%20\"])}return\"\"}getStyle(t){return this.style=L({fontFamily:\"Helvetica, Arial, sans-serif\",fontSize:\"1rem\"},t),this.style}setStyle(t){this.boxWrapper.css(this.getStyle(t))}isHidden(){return!this.boxWrapper.getBBox().width}destroy(){let t=this.defs;return this.box=null,this.boxWrapper=this.boxWrapper.destroy(),P(this.gradients||{}),this.gradients=null,this.defs=t.destroy(),this.unSubPixelFix&&this.unSubPixelFix(),this.alignedObjects=null,null}createElement(t){return new this.Element(this,t)}getRadialAttr(t,e){return{cx:t[0]-t[2]/2+(e.cx||0)*t[2],cy:t[1]-t[2]/2+(e.cy||0)*t[2],r:(e.r||0)*t[2]}}shadowDefinition(t){let e=[`highcharts-drop-shadow-${this.chartIndex}`,...Object.keys(t).map(e=>`${e}-${t[e]}`)].join(\"-\").toLowerCase().replace(/[^a-z\\d\\-]/g,\"\"),i=j({color:\"#000000\",offsetX:1,offsetY:1,opacity:.15,width:5},t);return this.defs.element.querySelector(`#${e}`)||this.definition({tagName:\"filter\",attributes:{id:e,filterUnits:i.filterUnits},children:this.getShadowFilterContent(i)}),e}getShadowFilterContent(t){return[{tagName:\"feDropShadow\",attributes:{dx:t.offsetX,dy:t.offsetY,\"flood-color\":t.color,\"flood-opacity\":Math.min(5*t.opacity,1),stdDeviation:t.width/2}}]}buildText(t){new h(t).buildSVG()}getContrast(t){let e=i.parse(t).rgba.map(t=>{let e=t/255;return e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4)}),s=.2126*e[0]+.7152*e[1]+.0722*e[2];return 1.05/(s+.05)>(s+.05)/.05?\"#FFFFFF\":\"#000000\"}button(e,i,s,r,o={},n,a,h,l,d){let p=this.label(e,i,s,l,void 0,void 0,d,void 0,\"button\"),u=this.styledMode,g=arguments,f=0;o=j(c.global.buttonTheme,o),u&&(delete o.fill,delete o.stroke,delete o[\"stroke-width\"]);let x=o.states||{},y=o.style||{};delete o.states,delete o.style;let b=[t.filterUserAttributes(o)],v=[y];return u||[\"hover\",\"select\",\"disabled\"].forEach((e,i)=>{b.push(j(b[0],t.filterUserAttributes(g[i+5]||x[e]||{}))),v.push(b[i+1].style),delete b[i+1].style}),C(p.element,m?\"mouseover\":\"mouseenter\",function(){3!==f&&p.setState(1)}),C(p.element,m?\"mouseout\":\"mouseleave\",function(){3!==f&&p.setState(f)}),p.setState=(t=0)=>{if(1!==t&&(p.state=f=t),p.removeClass(/highcharts-button-(normal|hover|pressed|disabled)/).addClass(\"highcharts-button-\"+[\"normal\",\"hover\",\"pressed\",\"disabled\"][t]),!u){p.attr(b[t]);let e=v[t];E(e)&&p.css(e)}},p.attr(b[0]),!u&&(p.css(L({cursor:\"default\"},y)),d&&p.text.css({pointerEvents:\"none\"})),p.on(\"touchstart\",t=>t.stopPropagation()).on(\"click\",function(t){3!==f&&r.call(p,t)})}crispLine(t,e){let[i,s]=t;return T(i[1])&&i[1]===s[1]&&(i[1]=s[1]=w(i[1],e)),T(i[2])&&i[2]===s[2]&&(i[2]=s[2]=w(i[2],e)),t}path(t){let e=this.styledMode?{}:{fill:\"none\"};return O(t)?e.d=t:E(t)&&L(e,t),this.createElement(\"path\").attr(e)}circle(t,e,i){let s=E(t)?t:void 0===t?{}:{x:t,y:e,r:i},r=this.createElement(\"circle\");return r.xSetter=r.ySetter=function(t,e,i){i.setAttribute(\"c\"+e,t)},r.attr(s)}arc(t,e,i,s,r,o){let n;E(t)?(e=(n=t).y,i=n.r,s=n.innerR,r=n.start,o=n.end,t=n.x):n={innerR:s,start:r,end:o};let a=this.symbol(\"arc\",t,e,i,i,n);return a.r=i,a}rect(t,e,i,s,r,o){let n=E(t)?t:void 0===t?{}:{x:t,y:e,r,width:Math.max(i||0,0),height:Math.max(s||0,0)},a=this.createElement(\"rect\");return this.styledMode||(void 0!==o&&(n[\"stroke-width\"]=o,L(n,a.crisp(n))),n.fill=\"none\"),a.rSetter=function(t,e,i){a.r=t,k(i,{rx:t,ry:t})},a.rGetter=function(){return a.r||0},a.attr(n)}roundedRect(t){return this.symbol(\"roundedRect\").attr(t)}setSize(t,e,i){this.width=t,this.height=e,this.boxWrapper.animate({width:t,height:e},{step:function(){this.attr({viewBox:\"0 0 \"+this.attr(\"width\")+\" \"+this.attr(\"height\")})},duration:B(i,!0)?void 0:0}),this.alignElements()}g(t){let e=this.createElement(\"g\");return t?e.attr({class:\"highcharts-\"+t}):e}image(t,e,i,s,r,o){let n={preserveAspectRatio:\"none\"};D(e)&&(n.x=e),D(i)&&(n.y=i),D(s)&&(n.width=s),D(r)&&(n.height=r);let a=this.createElement(\"image\").attr(n),h=function(e){a.attr({href:t}),o.call(a,e)};if(o){a.attr({href:\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\"});let e=new S.Image;C(e,\"load\",h),e.src=t,e.complete&&h({})}else a.attr({href:t});return a}symbol(t,e,i,s,r,o){let n,a,h,l;let d=this,c=/^url\\((.*?)\\)$/,u=c.test(t),f=!u&&(this.symbols[t]?t:\"circle\"),m=f&&this.symbols[f];if(m)\"number\"==typeof e&&(a=m.call(this.symbols,e||0,i||0,s||0,r||0,o)),n=this.path(a),d.styledMode||n.attr(\"fill\",\"none\"),L(n,{symbolName:f||void 0,x:e,y:i,width:s,height:r}),o&&L(n,o);else if(u){h=t.match(c)[1];let s=n=this.image(h);s.imgwidth=B(o&&o.width,v[h]&&v[h].width),s.imgheight=B(o&&o.height,v[h]&&v[h].height),l=t=>t.attr({width:t.width,height:t.height}),[\"width\",\"height\"].forEach(t=>{s[`${t}Setter`]=function(t,e){this[e]=t;let{alignByTranslate:i,element:s,width:r,height:n,imgwidth:a,imgheight:h}=this,l=\"width\"===e?a:h,d=1;o&&\"within\"===o.backgroundSize&&r&&n&&a&&h?(d=Math.min(r/a,n/h),k(s,{width:Math.round(a*d),height:Math.round(h*d)})):s&&l&&s.setAttribute(e,l),!i&&a&&h&&this.translate(((r||0)-a*d)/2,((n||0)-h*d)/2)}}),T(e)&&s.attr({x:e,y:i}),s.isImg=!0,T(s.imgwidth)&&T(s.imgheight)?l(s):(s.attr({width:0,height:0}),M(\"img\",{onload:function(){let t=p[d.chartIndex];0===this.width&&(A(this,{position:\"absolute\",top:\"-999em\"}),g.body.appendChild(this)),v[h]={width:this.width,height:this.height},s.imgwidth=this.width,s.imgheight=this.height,s.element&&l(s),this.parentNode&&this.parentNode.removeChild(this),d.imgCount--,d.imgCount||!t||t.hasLoaded||t.onload()},src:h}),this.imgCount++)}return n}clipRect(t,e,i,s){return this.rect(t,e,i,s,0)}text(t,e,i,s){let r={};if(s&&(this.allowHTML||!this.forExport))return this.html(t,e,i);r.x=Math.round(e||0),i&&(r.y=Math.round(i)),T(t)&&(r.text=t);let o=this.createElement(\"text\").attr(r);return s&&(!this.forExport||this.allowHTML)||(o.xSetter=function(t,e,i){let s=i.getElementsByTagName(\"tspan\"),r=i.getAttribute(e);for(let i=0,o;it.align())}}return L(W.prototype,{Element:o,SVG_NS:b,escapes:{\"&\":\"&\",\"<\":\"<\",\">\":\">\",\"'\":\"'\",'\"':\""\"},symbols:a,draw:y}),r.registerRendererType(\"svg\",W,!0),W}),i(e,\"Core/Renderer/HTML/HTMLElement.js\",[e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/SVG/SVGElement.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{composed:r}=e,{attr:o,css:n,createElement:a,defined:h,extend:l,pInt:d,pushUnique:c}=s;function p(t,e,s){let r=this.div?.style||s.style;i.prototype[`${e}Setter`].call(this,t,e,s),r&&(r[e]=t)}let u=(t,e)=>{if(!t.div){let s=o(t.element,\"class\"),r=t.css,n=a(\"div\",s?{className:s}:void 0,{position:\"absolute\",left:`${t.translateX||0}px`,top:`${t.translateY||0}px`,...t.styles,display:t.display,opacity:t.opacity,visibility:t.visibility},t.parentGroup?.div||e);t.classSetter=(t,e,i)=>{i.setAttribute(\"class\",t),n.className=t},t.translateXSetter=t.translateYSetter=(e,i)=>{t[i]=e,n.style[\"translateX\"===i?\"left\":\"top\"]=`${e}px`,t.doTransform=!0},t.opacitySetter=t.visibilitySetter=p,t.css=e=>(r.call(t,e),e.cursor&&(n.style.cursor=e.cursor),e.pointerEvents&&(n.style.pointerEvents=e.pointerEvents),t),t.on=function(){return i.prototype.on.apply({element:n,onEvents:t.onEvents},arguments),t},t.div=n}return t.div};class g extends i{static compose(t){c(r,this.compose)&&(t.prototype.html=function(t,e,i){return new g(this,\"span\").attr({text:t,x:Math.round(e),y:Math.round(i)})})}constructor(t,e){super(t,e),this.css({position:\"absolute\",...t.styledMode?{}:{fontFamily:t.style.fontFamily,fontSize:t.style.fontSize}}),this.element.style.whiteSpace=\"nowrap\"}getSpanCorrection(t,e,i){this.xCorr=-t*i,this.yCorr=-e}css(t){let e;let{element:i}=this,s=\"SPAN\"===i.tagName&&t&&\"width\"in t,r=s&&t.width;return s&&(delete t.width,this.textWidth=d(r)||void 0,e=!0),t?.textOverflow===\"ellipsis\"&&(t.whiteSpace=\"nowrap\",t.overflow=\"hidden\"),l(this.styles,t),n(i,t),e&&this.updateTransform(),this}htmlGetBBox(){let{element:t}=this;return{x:t.offsetLeft,y:t.offsetTop,width:t.offsetWidth,height:t.offsetHeight}}updateTransform(){if(!this.added){this.alignOnAdd=!0;return}let{element:t,renderer:e,rotation:i,rotationOriginX:s,rotationOriginY:r,styles:o,textAlign:a=\"left\",textWidth:l,translateX:d=0,translateY:c=0,x:p=0,y:u=0}=this,g={left:0,center:.5,right:1}[a],f=o.whiteSpace;if(n(t,{marginLeft:`${d}px`,marginTop:`${c}px`}),\"SPAN\"===t.tagName){let o=[i,a,t.innerHTML,l,this.textAlign].join(\",\"),d=-(this.parentGroup?.padding*1)||0,c,m=!1;if(l!==this.oldTextWidth){let e=this.textPxLength?this.textPxLength:(n(t,{width:\"\",whiteSpace:f||\"nowrap\"}),t.offsetWidth),s=l||0;(s>this.oldTextWidth||e>s)&&(/[ \\-]/.test(t.textContent||t.innerText)||\"ellipsis\"===t.style.textOverflow)&&(n(t,{width:e>s||i?l+\"px\":\"auto\",display:\"block\",whiteSpace:f||\"normal\"}),this.oldTextWidth=l,m=!0)}this.hasBoxWidthChanged=m,o!==this.cTT&&(c=e.fontMetrics(t).b,h(i)&&(i!==(this.oldRotation||0)||a!==this.oldAlign)&&this.setSpanRotation(i,d,d),this.getSpanCorrection(!h(i)&&this.textPxLength||t.offsetWidth,c,g));let{xCorr:x=0,yCorr:y=0}=this,b=(s??p)-x-p-d,v=(r??u)-y-u-d;n(t,{left:`${p+x}px`,top:`${u+y}px`,transformOrigin:`${b}px ${v}px`}),this.cTT=o,this.oldRotation=i,this.oldAlign=a}}setSpanRotation(t,e,i){n(this.element,{transform:`rotate(${t}deg)`,transformOrigin:`${e}% ${i}px`})}add(t){let e;let i=this.renderer.box.parentNode,s=[];if(this.parentGroup=t,t&&!(e=t.div)){let r=t;for(;r;)s.push(r),r=r.parentGroup;for(let t of s.reverse())e=u(t,i)}return(e||i).appendChild(this.element),this.added=!0,this.alignOnAdd&&this.updateTransform(),this}textSetter(e){e!==this.textStr&&(delete this.bBox,delete this.oldTextWidth,t.setElementHTML(this.element,e??\"\"),this.textStr=e,this.doTransform=!0)}alignSetter(t){this.alignValue=this.textAlign=t,this.doTransform=!0}xSetter(t,e){this[e]=t,this.doTransform=!0}}let f=g.prototype;return f.visibilitySetter=f.opacitySetter=p,f.ySetter=f.rotationSetter=f.rotationOriginXSetter=f.rotationOriginYSetter=f.xSetter,g}),i(e,\"Core/Axis/AxisDefaults.js\",[],function(){var t,e;return(e=t||(t={})).xAxis={alignTicks:!0,allowDecimals:void 0,panningEnabled:!0,zIndex:2,zoomEnabled:!0,dateTimeLabelFormats:{millisecond:{main:\"%H:%M:%S.%L\",range:!1},second:{main:\"%H:%M:%S\",range:!1},minute:{main:\"%H:%M\",range:!1},hour:{main:\"%H:%M\",range:!1},day:{main:\"%e %b\"},week:{main:\"%e %b\"},month:{main:\"%b '%y\"},year:{main:\"%Y\"}},endOnTick:!1,gridLineDashStyle:\"Solid\",gridZIndex:1,labels:{autoRotationLimit:80,distance:15,enabled:!0,indentation:10,overflow:\"justify\",reserveSpace:void 0,rotation:void 0,staggerLines:0,step:0,useHTML:!1,zIndex:7,style:{color:\"#333333\",cursor:\"default\",fontSize:\"0.8em\"}},maxPadding:.01,minorGridLineDashStyle:\"Solid\",minorTickLength:2,minorTickPosition:\"outside\",minorTicksPerMajor:5,minPadding:.01,offset:void 0,reversed:void 0,reversedStacks:!1,showEmpty:!0,showFirstLabel:!0,showLastLabel:!0,startOfWeek:1,startOnTick:!1,tickLength:10,tickPixelInterval:100,tickmarkPlacement:\"between\",tickPosition:\"outside\",title:{align:\"middle\",useHTML:!1,x:0,y:0,style:{color:\"#666666\",fontSize:\"0.8em\"}},type:\"linear\",uniqueNames:!0,visible:!0,minorGridLineColor:\"#f2f2f2\",minorGridLineWidth:1,minorTickColor:\"#999999\",lineColor:\"#333333\",lineWidth:1,gridLineColor:\"#e6e6e6\",gridLineWidth:void 0,tickColor:\"#333333\"},e.yAxis={reversedStacks:!0,endOnTick:!0,maxPadding:.05,minPadding:.05,tickPixelInterval:72,showLastLabel:!0,labels:{x:void 0},startOnTick:!0,title:{text:\"Values\"},stackLabels:{animation:{},allowOverlap:!1,enabled:!1,crop:!0,overflow:\"justify\",formatter:function(){let{numberFormatter:t}=this.axis.chart;return t(this.total||0,-1)},style:{color:\"#000000\",fontSize:\"0.7em\",fontWeight:\"bold\",textOutline:\"1px contrast\"}},gridLineWidth:1,lineWidth:0},t}),i(e,\"Core/Foundation.js\",[e[\"Core/Utilities.js\"]],function(t){var e;let{addEvent:i,isFunction:s,objectEach:r,removeEvent:o}=t;return(e||(e={})).registerEventOptions=function(t,e){t.eventOptions=t.eventOptions||{},r(e.events,function(e,r){t.eventOptions[r]!==e&&(t.eventOptions[r]&&(o(t,r,t.eventOptions[r]),delete t.eventOptions[r]),s(e)&&(t.eventOptions[r]=e,i(t,r,e,{order:0})))})},e}),i(e,\"Core/Axis/Tick.js\",[e[\"Core/Templating.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{deg2rad:s}=e,{clamp:r,correctFloat:o,defined:n,destroyObjectProperties:a,extend:h,fireEvent:l,isNumber:d,merge:c,objectEach:p,pick:u}=i;return class{constructor(t,e,i,s,r){this.isNew=!0,this.isNewLabel=!0,this.axis=t,this.pos=e,this.type=i||\"\",this.parameters=r||{},this.tickmarkOffset=this.parameters.tickmarkOffset,this.options=this.parameters.options,l(this,\"init\"),i||s||this.addLabel()}addLabel(){let e=this,i=e.axis,s=i.options,r=i.chart,a=i.categories,c=i.logarithmic,p=i.names,g=e.pos,f=u(e.options&&e.options.labels,s.labels),m=i.tickPositions,x=g===m[0],y=g===m[m.length-1],b=(!f.step||1===f.step)&&1===i.tickInterval,v=m.info,S=e.label,C,k,M,w=this.parameters.category||(a?u(a[g],p[g],g):g);c&&d(w)&&(w=o(c.lin2log(w))),i.dateTime&&(v?C=(k=r.time.resolveDTLFormat(s.dateTimeLabelFormats[!s.grid&&v.higherRanks[g]||v.unitName])).main:d(w)&&(C=i.dateTime.getXDateFormat(w,s.dateTimeLabelFormats||{}))),e.isFirst=x,e.isLast=y;let A={axis:i,chart:r,dateTimeLabelFormat:C,isFirst:x,isLast:y,pos:g,tick:e,tickPositionInfo:v,value:w};l(this,\"labelFormat\",A);let T=e=>f.formatter?f.formatter.call(e,e):f.format?(e.text=i.defaultLabelFormatter.call(e),t.format(f.format,e,r)):i.defaultLabelFormatter.call(e),P=T.call(A,A),L=k&&k.list;L?e.shortenLabel=function(){for(M=0;M0&&r+c*p>h&&(v=Math.round((o-r)/Math.cos(d*s))):(y=r-c*p,b=r+(1-c)*p,yh&&(m=h-t.x+m*c,x=-1),(m=Math.min(g,m))m||e.autoRotation&&(l.styles||{}).width)&&(v=m)),v&&(this.shortenLabel?this.shortenLabel():(f.width=Math.floor(v)+\"px\",(i.style||{}).textOverflow||(f.textOverflow=\"ellipsis\"),l.css(f)))}moveLabel(t,e){let i=this,s=i.label,r=i.axis,o=!1,n;s&&s.textStr===t?(i.movedLabel=s,o=!0,delete i.label):p(r.ticks,function(e){o||e.isNew||e===i||!e.label||e.label.textStr!==t||(i.movedLabel=e.label,o=!0,e.labelPos=i.movedLabel.xy,delete e.label)}),!o&&(i.labelPos||s)&&(n=i.labelPos||s.xy,i.movedLabel=i.createLabel(t,e,n),i.movedLabel&&i.movedLabel.attr({opacity:0}))}render(t,e,i){let s=this.axis,r=s.horiz,n=this.pos,a=u(this.tickmarkOffset,s.tickmarkOffset),h=this.getPosition(r,n,a,e),d=h.x,c=h.y,p=s.pos,g=p+s.len,f=r?d:c;!s.chart.polar&&this.isNew&&(o(f)g)&&(i=0);let m=u(i,this.label&&this.label.newOpacity,1);i=u(i,1),this.isActive=!0,this.renderGridLine(e,i),this.renderMark(h,i),this.renderLabel(h,e,m,t),this.isNew=!1,l(this,\"afterRender\")}renderGridLine(t,e){let i=this.axis,s=i.options,r={},o=this.pos,n=this.type,a=u(this.tickmarkOffset,i.tickmarkOffset),h=i.chart.renderer,l=this.gridLine,d,c=s.gridLineWidth,p=s.gridLineColor,g=s.gridLineDashStyle;\"minor\"===this.type&&(c=s.minorGridLineWidth,p=s.minorGridLineColor,g=s.minorGridLineDashStyle),l||(i.chart.styledMode||(r.stroke=p,r[\"stroke-width\"]=c||0,r.dashstyle=g),n||(r.zIndex=1),t&&(e=0),this.gridLine=l=h.path().attr(r).addClass(\"highcharts-\"+(n?n+\"-\":\"\")+\"grid-line\").add(i.gridGroup)),l&&(d=i.getPlotLinePath({value:o+a,lineWidth:l.strokeWidth(),force:\"pass\",old:t,acrossPanes:!1}))&&l[t||this.isNew?\"attr\":\"animate\"]({d:d,opacity:e})}renderMark(t,e){let i=this.axis,s=i.options,r=i.chart.renderer,o=this.type,n=i.tickSize(o?o+\"Tick\":\"tick\"),a=t.x,h=t.y,l=u(s[\"minor\"!==o?\"tickWidth\":\"minorTickWidth\"],!o&&i.isXAxis?1:0),d=s[\"minor\"!==o?\"tickColor\":\"minorTickColor\"],c=this.mark,p=!c;n&&(i.opposite&&(n[0]=-n[0]),c||(this.mark=c=r.path().addClass(\"highcharts-\"+(o?o+\"-\":\"\")+\"tick\").add(i.axisGroup),i.chart.styledMode||c.attr({stroke:d,\"stroke-width\":l})),c[p?\"attr\":\"animate\"]({d:this.getMarkPath(a,h,n[0],c.strokeWidth(),i.horiz,r),opacity:e}))}renderLabel(t,e,i,s){let r=this.axis,o=r.horiz,n=r.options,a=this.label,h=n.labels,l=h.step,c=u(this.tickmarkOffset,r.tickmarkOffset),p=t.x,g=t.y,f=!0;a&&d(p)&&(a.xy=t=this.getLabelPosition(p,g,a,o,h,c,s,l),(!this.isFirst||this.isLast||n.showFirstLabel)&&(!this.isLast||this.isFirst||n.showLastLabel)?!o||h.step||h.rotation||e||0===i||this.handleOverflow(t):f=!1,l&&s%l&&(f=!1),f&&d(t.y)?(t.opacity=i,a[this.isNewLabel?\"attr\":\"animate\"](t).show(!0),this.isNewLabel=!1):(a.hide(),this.isNewLabel=!0))}replaceMovedLabel(){let t=this.label,e=this.axis;t&&!this.isNew&&(t.animate({opacity:0},void 0,t.destroy),delete this.label),e.isDirty=!0,this.label=this.movedLabel,delete this.movedLabel}}}),i(e,\"Core/Axis/Axis.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Axis/AxisDefaults.js\"],e[\"Core/Color/Color.js\"],e[\"Core/Defaults.js\"],e[\"Core/Foundation.js\"],e[\"Core/Globals.js\"],e[\"Core/Axis/Tick.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o,n,a){let{animObject:h}=t,{xAxis:l,yAxis:d}=e,{defaultOptions:c}=s,{registerEventOptions:p}=r,{deg2rad:u}=o,{arrayMax:g,arrayMin:f,clamp:m,correctFloat:x,defined:y,destroyObjectProperties:b,erase:v,error:S,extend:C,fireEvent:k,getClosestDistance:M,insertItem:w,isArray:A,isNumber:T,isString:P,merge:L,normalizeTickInterval:O,objectEach:D,pick:E,relativeLength:I,removeEvent:j,splat:B,syncTimeout:R}=a,z=(t,e)=>O(e,void 0,void 0,E(t.options.allowDecimals,e<.5||void 0!==t.tickAmount),!!t.tickAmount);C(c,{xAxis:l,yAxis:L(l,d)});class N{constructor(t,e,i){this.init(t,e,i)}init(t,e,i=this.coll){let s=\"xAxis\"===i,r=this.isZAxis||(t.inverted?!s:s);this.chart=t,this.horiz=r,this.isXAxis=s,this.coll=i,k(this,\"init\",{userOptions:e}),this.opposite=E(e.opposite,this.opposite),this.side=E(e.side,this.side,r?this.opposite?0:2:this.opposite?1:3),this.setOptions(e);let o=this.options,n=o.labels,a=o.type;this.userOptions=e,this.minPixelPadding=0,this.reversed=E(o.reversed,this.reversed),this.visible=o.visible,this.zoomEnabled=o.zoomEnabled,this.hasNames=\"category\"===a||!0===o.categories,this.categories=A(o.categories)&&o.categories||(this.hasNames?[]:void 0),this.names||(this.names=[],this.names.keys={}),this.plotLinesAndBandsGroups={},this.positiveValuesOnly=!!this.logarithmic,this.isLinked=y(o.linkedTo),this.ticks={},this.labelEdge=[],this.minorTicks={},this.plotLinesAndBands=[],this.alternateBands={},this.len??(this.len=0),this.minRange=this.userMinRange=o.minRange||o.maxZoom,this.range=o.range,this.offset=o.offset||0,this.max=void 0,this.min=void 0;let h=E(o.crosshair,B(t.options.tooltip.crosshairs)[s?0:1]);this.crosshair=!0===h?{}:h,-1===t.axes.indexOf(this)&&(s?t.axes.splice(t.xAxis.length,0,this):t.axes.push(this),w(this,t[this.coll])),t.orderItems(this.coll),this.series=this.series||[],t.inverted&&!this.isZAxis&&s&&!y(this.reversed)&&(this.reversed=!0),this.labelRotation=T(n.rotation)?n.rotation:void 0,p(this,o),k(this,\"afterInit\")}setOptions(t){let e=this.horiz?{labels:{autoRotation:[-45],padding:4},margin:15}:{labels:{padding:1},title:{rotation:90*this.side}};this.options=L(e,c[this.coll],t),k(this,\"afterSetOptions\",{userOptions:t})}defaultLabelFormatter(){let t=this.axis,{numberFormatter:e}=this.chart,i=T(this.value)?this.value:NaN,s=t.chart.time,r=t.categories,o=this.dateTimeLabelFormat,n=c.lang,a=n.numericSymbols,h=n.numericSymbolMagnitude||1e3,l=t.logarithmic?Math.abs(i):t.tickInterval,d=a&&a.length,p,u;if(r)u=`${this.value}`;else if(o)u=s.dateFormat(o,i);else if(d&&a&&l>=1e3)for(;d--&&void 0===u;)l>=(p=Math.pow(h,d+1))&&10*i%p==0&&null!==a[d]&&0!==i&&(u=e(i/p,-1)+a[d]);return void 0===u&&(u=Math.abs(i)>=1e4?e(i,-1):e(i,-1,void 0,\"\")),u}getSeriesExtremes(){let t;let e=this;k(this,\"getSeriesExtremes\",null,function(){e.hasVisibleSeries=!1,e.dataMin=e.dataMax=e.threshold=void 0,e.softThreshold=!e.isXAxis,e.series.forEach(i=>{if(i.reserveSpace()){let s=i.options,r,o=s.threshold,n,a;if(e.hasVisibleSeries=!0,e.positiveValuesOnly&&0>=(o||0)&&(o=void 0),e.isXAxis)(r=i.xData)&&r.length&&(r=e.logarithmic?r.filter(t=>t>0):r,n=(t=i.getXExtremes(r)).min,a=t.max,T(n)||n instanceof Date||(r=r.filter(T),n=(t=i.getXExtremes(r)).min,a=t.max),r.length&&(e.dataMin=Math.min(E(e.dataMin,n),n),e.dataMax=Math.max(E(e.dataMax,a),a)));else{let t=i.applyExtremes();T(t.dataMin)&&(n=t.dataMin,e.dataMin=Math.min(E(e.dataMin,n),n)),T(t.dataMax)&&(a=t.dataMax,e.dataMax=Math.max(E(e.dataMax,a),a)),y(o)&&(e.threshold=o),(!s.softThreshold||e.positiveValuesOnly)&&(e.softThreshold=!1)}}})}),k(this,\"afterGetSeriesExtremes\")}translate(t,e,i,s,r,o){let n=this.linkedParent||this,a=s&&n.old?n.old.min:n.min;if(!T(a))return NaN;let h=n.minPixelPadding,l=(n.isOrdinal||n.brokenAxis?.hasBreaks||n.logarithmic&&r)&&n.lin2val,d=1,c=0,p=s&&n.old?n.old.transA:n.transA,u=0;return p||(p=n.transA),i&&(d*=-1,c=n.len),n.reversed&&(d*=-1,c-=d*(n.sector||n.len)),e?(u=(t=t*d+c-h)/p+a,l&&(u=n.lin2val(u))):(l&&(t=n.val2lin(t)),u=d*(t-a)*p+c+d*h+(T(o)?p*o:0),n.isRadial||(u=x(u))),u}toPixels(t,e){return this.translate(t,!1,!this.horiz,void 0,!0)+(e?0:this.pos)}toValue(t,e){return this.translate(t-(e?0:this.pos),!0,!this.horiz,void 0,!0)}getPlotLinePath(t){let e=this,i=e.chart,s=e.left,r=e.top,o=t.old,n=t.value,a=t.lineWidth,h=o&&i.oldChartHeight||i.chartHeight,l=o&&i.oldChartWidth||i.chartWidth,d=e.transB,c=t.translatedValue,p=t.force,u,g,f,x,y;function b(t,e,i){return\"pass\"!==p&&(ti)&&(p?t=m(t,e,i):y=!0),t}let v={value:n,lineWidth:a,old:o,force:p,acrossPanes:t.acrossPanes,translatedValue:c};return k(this,\"getPlotLinePath\",v,function(t){u=f=(c=m(c=E(c,e.translate(n,void 0,void 0,o)),-1e5,1e5))+d,g=x=h-c-d,T(c)?e.horiz?(g=r,x=h-e.bottom+(i.scrollablePixelsY||0),u=f=b(u,s,s+e.width)):(u=s,f=l-e.right+(i.scrollablePixelsX||0),g=x=b(g,r,r+e.height)):(y=!0,p=!1),t.path=y&&!p?void 0:i.renderer.crispLine([[\"M\",u,g],[\"L\",f,x]],a||1)}),v.path}getLinearTickPositions(t,e,i){let s,r,o;let n=x(Math.floor(e/t)*t),a=x(Math.ceil(i/t)*t),h=[];if(x(n+t)===n&&(o=20),this.single)return[e];for(s=n;s<=a&&(h.push(s),(s=x(s+t,o))!==r);)r=s;return h}getMinorTickInterval(){let{minorTicks:t,minorTickInterval:e}=this.options;return!0===t?E(e,\"auto\"):!1!==t?e:void 0}getMinorTickPositions(){let t=this.options,e=this.tickPositions,i=this.minorTickInterval,s=this.pointRangePadding||0,r=(this.min||0)-s,o=(this.max||0)+s,n=o-r,a=[],h;if(n&&n/i(t.xIncrement?t.xData?.slice(0,2):t.xData)||[]))||0),this.dataMax-this.dataMin)),T(i)&&T(s)&&T(r)&&i-s=r,o=(r-i+s)/2,a=[s-o,E(t.min,s-o)],n&&(a[2]=e?e.log2lin(this.dataMin):this.dataMin),h=[(s=g(a))+r,E(t.max,s+r)],n&&(h[2]=e?e.log2lin(this.dataMax):this.dataMax),(i=f(h))-st-e),t=M([i]))}return t&&e?Math.min(t,e):t||e}nameToX(t){let e=A(this.options.categories),i=e?this.categories:this.names,s=t.options.x,r;return t.series.requireSorting=!1,y(s)||(s=this.options.uniqueNames&&i?e?i.indexOf(t.name):E(i.keys[t.name],-1):t.series.autoIncrement()),-1===s?!e&&i&&(r=i.length):r=s,void 0!==r?(this.names[r]=t.name,this.names.keys[t.name]=r):t.x&&(r=t.x),r}updateNames(){let t=this,e=this.names;e.length>0&&(Object.keys(e.keys).forEach(function(t){delete e.keys[t]}),e.length=0,this.minRange=this.userMinRange,(this.series||[]).forEach(e=>{e.xIncrement=null,(!e.points||e.isDirtyData)&&(t.max=Math.max(t.max,e.xData.length-1),e.processData(),e.generatePoints()),e.data.forEach(function(i,s){let r;i?.options&&void 0!==i.name&&void 0!==(r=t.nameToX(i))&&r!==i.x&&(i.x=r,e.xData[s]=r)})}))}setAxisTranslation(){let t=this,e=t.max-t.min,i=t.linkedParent,s=!!t.categories,r=t.isXAxis,o=t.axisPointRange||0,n,a=0,h=0,l,d=t.transA;(r||s||o)&&(n=t.getClosest(),i?(a=i.minPointOffset,h=i.pointRangePadding):t.series.forEach(function(e){let i=s?1:r?E(e.options.pointRange,n,0):t.axisPointRange||0,l=e.options.pointPlacement;if(o=Math.max(o,i),!t.single||s){let t=e.is(\"xrange\")?!r:r;a=Math.max(a,t&&P(l)?0:i/2),h=Math.max(h,t&&\"on\"===l?0:i)}}),l=t.ordinal&&t.ordinal.slope&&n?t.ordinal.slope/n:1,t.minPointOffset=a*=l,t.pointRangePadding=h*=l,t.pointRange=Math.min(o,t.single&&s?1:e),r&&n&&(t.closestPointRange=n)),t.translationSlope=t.transA=d=t.staticScale||t.len/(e+h||1),t.transB=t.horiz?t.left:t.bottom,t.minPixelPadding=d*a,k(this,\"afterSetAxisTranslation\")}minFromRange(){let{max:t,min:e}=this;return T(t)&&T(e)&&t-e||void 0}setTickInterval(t){let{categories:e,chart:i,dataMax:s,dataMin:r,dateTime:o,isXAxis:n,logarithmic:a,options:h,softThreshold:l}=this,d=T(this.threshold)?this.threshold:void 0,c=this.minRange||0,{ceiling:p,floor:u,linkedTo:g,softMax:f,softMin:m}=h,b=T(g)&&i[this.coll]?.[g],v=h.tickPixelInterval,C=h.maxPadding,M=h.minPadding,w=0,A,P=T(h.tickInterval)&&h.tickInterval>=0?h.tickInterval:void 0,L,O,D,I;if(o||e||b||this.getTickAmount(),D=E(this.userMin,h.min),I=E(this.userMax,h.max),b?(this.linkedParent=b,A=b.getExtremes(),this.min=E(A.min,A.dataMin),this.max=E(A.max,A.dataMax),h.type!==b.options.type&&S(11,!0,i)):(l&&y(d)&&T(s)&&T(r)&&(r>=d?(L=d,M=0):s<=d&&(O=d,C=0)),this.min=E(D,L,r),this.max=E(I,O,s)),T(this.max)&&T(this.min)&&(a&&(this.positiveValuesOnly&&!t&&0>=Math.min(this.min,E(r,this.min))&&S(10,!0,i),this.min=x(a.log2lin(this.min),16),this.max=x(a.log2lin(this.max),16)),this.range&&T(r)&&(this.userMin=this.min=D=Math.max(r,this.minFromRange()||0),this.userMax=I=this.max,this.range=void 0)),k(this,\"foundExtremes\"),this.adjustForMinRange(),T(this.min)&&T(this.max)){if(!T(this.userMin)&&T(m)&&mthis.max&&(this.max=I=f),e||this.axisPointRange||this.stacking?.usePercentage||b||!(w=this.max-this.min)||(!y(D)&&M&&(this.min-=w*M),y(I)||!C||(this.max+=w*C)),!T(this.userMin)&&T(u)&&(this.min=Math.max(this.min,u)),!T(this.userMax)&&T(p)&&(this.max=Math.min(this.max,p)),l&&T(r)&&T(s)){let t=d||0;!y(D)&&this.min=t?this.min=h.minRange?Math.min(t,this.max-c):t:!y(I)&&this.max>t&&s<=t&&(this.max=h.minRange?Math.max(t,this.min+c):t)}!i.polar&&this.min>this.max&&(y(h.min)?this.max=this.min:y(h.max)&&(this.min=this.max)),w=this.max-this.min}if(this.min!==this.max&&T(this.min)&&T(this.max)?b&&!P&&v===b.options.tickPixelInterval?this.tickInterval=P=b.tickInterval:this.tickInterval=E(P,this.tickAmount?w/Math.max(this.tickAmount-1,1):void 0,e?1:w*v/Math.max(this.len,v)):this.tickInterval=1,n&&!t){let t=this.min!==this.old?.min||this.max!==this.old?.max;this.series.forEach(function(e){e.forceCrop=e.forceCropping?.(),e.processData(t)}),k(this,\"postProcessData\",{hasExtremesChanged:t})}this.setAxisTranslation(),k(this,\"initialAxisTranslation\"),this.pointRange&&!P&&(this.tickInterval=Math.max(this.pointRange,this.tickInterval));let j=E(h.minTickInterval,o&&!this.series.some(t=>t.noSharedTooltip)?this.closestPointRange:0);!P&&this.tickIntervalMath.max(2*this.len,200))a=[this.min,this.max],S(19,!1,this.chart);else if(this.dateTime)a=this.getTimeTicks(this.dateTime.normalizeTimeTickInterval(this.tickInterval,t.units),this.min,this.max,t.startOfWeek,this.ordinal?.positions,this.closestPointRange,!0);else if(this.logarithmic)a=this.logarithmic.getLogTickPositions(this.tickInterval,this.min,this.max);else{let t=this.tickInterval,e=t;for(;e<=2*t;)if(a=this.getLinearTickPositions(this.tickInterval,this.min,this.max),this.tickAmount&&a.length>this.tickAmount)this.tickInterval=z(this,e*=1.1);else break}a.length>this.len&&(a=[a[0],a[a.length-1]])[0]===a[1]&&(a.length=1),i&&(this.tickPositions=a,(h=i.apply(this,[this.min,this.max]))&&(a=h))}this.tickPositions=a,this.paddedTicks=a.slice(0),this.trimTicks(a,o,n),!this.isLinked&&T(this.min)&&T(this.max)&&(this.single&&a.length<2&&!this.categories&&!this.series.some(t=>t.is(\"heatmap\")&&\"between\"===t.options.pointPlacement)&&(this.min-=.5,this.max+=.5),e||h||this.adjustTickAmount()),k(this,\"afterSetTickPositions\")}trimTicks(t,e,i){let s=t[0],r=t[t.length-1],o=!this.isOrdinal&&this.minPointOffset||0;if(k(this,\"trimTicks\"),!this.isLinked){if(e&&s!==-1/0)this.min=s;else for(;this.min-o>t[0];)t.shift();if(i)this.max=r;else for(;this.max+o{let{horiz:e,options:i}=t;return[e?i.left:i.top,i.width,i.height,i.pane].join(\",\")},o=r(this);i[this.coll].forEach(function(i){let{series:n}=i;n.length&&n.some(t=>t.visible)&&i!==e&&r(i)===o&&(t=!0,s.push(i))})}if(t&&n){s.forEach(t=>{let i=t.getThresholdAlignment(e);T(i)&&a.push(i)});let t=a.length>1?a.reduce((t,e)=>t+=e,0)/a.length:void 0;s.forEach(e=>{e.thresholdAlignment=t})}return t}getThresholdAlignment(t){if((!T(this.dataMin)||this!==t&&this.series.some(t=>t.isDirty||t.isDirtyData))&&this.getSeriesExtremes(),T(this.threshold)){let t=m((this.threshold-(this.dataMin||0))/((this.dataMax||0)-(this.dataMin||0)),0,1);return this.options.reversed&&(t=1-t),t}}getTickAmount(){let t=this.options,e=t.tickPixelInterval,i=t.tickAmount;y(t.tickInterval)||i||!(this.leno.push(x(o[o.length-1]+p)),f=()=>o.unshift(x(o[0]-p));if(T(a)&&(u=a<.5?Math.ceil(a*(n-1)):Math.floor(a*(n-1)),r.reversed&&(u=n-1-u)),t.hasData()&&T(s)&&T(i)){let a=()=>{t.transA*=(h-1)/(n-1),t.min=r.startOnTick?o[0]:Math.min(s,o[0]),t.max=r.endOnTick?o[o.length-1]:Math.max(i,o[o.length-1])};if(T(u)&&T(t.threshold)){for(;o[u]!==l||o.length!==n||o[0]>s||o[o.length-1]t.threshold?f():g();if(p>8*t.tickInterval)break;p*=2}a()}else if(h0&&c{i=i||t.isDirtyData||t.isDirty,s=s||t.xAxis&&t.xAxis.isDirty||!1}),this.setAxisSize();let r=this.len!==(this.old&&this.old.len);r||i||s||this.isLinked||this.forceRedraw||this.userMin!==(this.old&&this.old.userMin)||this.userMax!==(this.old&&this.old.userMax)||this.alignToOthers()?(e&&\"yAxis\"===t&&e.buildStacks(),this.forceRedraw=!1,this.userMinRange||(this.minRange=void 0),this.getSeriesExtremes(),this.setTickInterval(),e&&\"xAxis\"===t&&e.buildStacks(),this.isDirty||(this.isDirty=r||this.min!==this.old?.min||this.max!==this.old?.max)):e&&e.cleanStacks(),i&&delete this.allExtremes,k(this,\"afterSetScale\")}setExtremes(t,e,i=!0,s,r){this.series.forEach(t=>{delete t.kdTree}),k(this,\"setExtremes\",r=C(r,{min:t,max:e}),t=>{this.userMin=t.min,this.userMax=t.max,this.eventArgs=t,i&&this.chart.redraw(s)})}setAxisSize(){let t=this.chart,e=this.options,i=e.offsets||[0,0,0,0],s=this.horiz,r=this.width=Math.round(I(E(e.width,t.plotWidth-i[3]+i[1]),t.plotWidth)),o=this.height=Math.round(I(E(e.height,t.plotHeight-i[0]+i[2]),t.plotHeight)),n=this.top=Math.round(I(E(e.top,t.plotTop+i[0]),t.plotHeight,t.plotTop)),a=this.left=Math.round(I(E(e.left,t.plotLeft+i[3]),t.plotWidth,t.plotLeft));this.bottom=t.chartHeight-o-n,this.right=t.chartWidth-r-a,this.len=Math.max(s?r:o,0),this.pos=s?a:n}getExtremes(){let t=this.logarithmic;return{min:t?x(t.lin2log(this.min)):this.min,max:t?x(t.lin2log(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}}getThreshold(t){let e=this.logarithmic,i=e?e.lin2log(this.min):this.min,s=e?e.lin2log(this.max):this.max;return null===t||t===-1/0?t=i:t===1/0?t=s:i>t?t=i:s15&&e<165?t.align=\"right\":e>195&&e<345&&(t.align=\"left\")}),i.align}tickSize(t){let e=this.options,i=E(e[\"tick\"===t?\"tickWidth\":\"minorTickWidth\"],\"tick\"===t&&this.isXAxis&&!this.categories?1:0),s=e[\"tick\"===t?\"tickLength\":\"minorTickLength\"],r;i&&s&&(\"inside\"===e[t+\"Position\"]&&(s=-s),r=[s,i]);let o={tickSize:r};return k(this,\"afterTickSize\",o),o.tickSize}labelMetrics(){let t=this.chart.renderer,e=this.ticks,i=e[Object.keys(e)[0]]||{};return this.chart.renderer.fontMetrics(i.label||i.movedLabel||t.box)}unsquish(){let t=this.options.labels,e=t.padding||0,i=this.horiz,s=this.tickInterval,r=this.len/(((this.categories?1:0)+this.max-this.min)/s),o=t.rotation,n=x(.8*this.labelMetrics().h),a=Math.max(this.max-this.min,0),h=function(t){let i=(t+2*e)/(r||1);return(i=i>1?Math.ceil(i):1)*s>a&&t!==1/0&&r!==1/0&&a&&(i=Math.ceil(a/s)),x(i*s)},l=s,d,c=Number.MAX_VALUE,p;if(i){if(!t.staggerLines&&(T(o)?p=[o]:r=-90&&i<=90)&&(e=(t=h(Math.abs(n/Math.sin(u*i))))+Math.abs(i/360))g&&(g=e.label.textPxLength)}),this.maxLabelLength=g,this.autoRotation)g>h&&g>d.h?l.rotation=this.labelRotation:this.labelRotation=0;else if(a&&(p=h,!c))for(u=\"clip\",m=i.length;!n&&m--;)(f=s[i[m]].label)&&(\"ellipsis\"===f.styles.textOverflow?f.css({textOverflow:\"clip\"}):f.textPxLength>a&&f.css({width:a+\"px\"}),f.getBBox().height>this.len/i.length-(d.h-d.f)&&(f.specificTextOverflow=\"ellipsis\"));l.rotation&&(p=g>.5*t.chartHeight?.33*t.chartHeight:g,c||(u=\"ellipsis\")),this.labelAlign=r.align||this.autoLabelAlign(this.labelRotation),this.labelAlign&&(l.align=this.labelAlign),i.forEach(function(t){let e=s[t],i=e&&e.label,r=o.width,n={};i&&(i.attr(l),e.shortenLabel?e.shortenLabel():p&&!r&&\"nowrap\"!==o.whiteSpace&&(pr.g(e).attr({zIndex:n}).addClass(`highcharts-${i.toLowerCase()}${o} `+(this.isRadial?`highcharts-radial-axis${o} `:\"\")+(s.className||\"\")).add(t);this.axisGroup||(this.gridGroup=o(\"grid\",\"-grid\",s.gridZIndex),this.axisGroup=o(\"axis\",\"\",s.zIndex),this.labelGroup=o(\"axis-labels\",\"-labels\",s.labels.zIndex))}getOffset(){let t=this,{chart:e,horiz:i,options:s,side:r,ticks:o,tickPositions:n,coll:a}=t,h=e.inverted&&!t.isZAxis?[1,0,3,2][r]:r,l=t.hasData(),d=s.title,c=s.labels,p=T(s.crossing),u=e.axisOffset,g=e.clipOffset,f=[-1,1,1,-1][r],m,x=0,b,v=0,S=0,C,M;if(t.showAxis=m=l||s.showEmpty,t.staggerLines=t.horiz&&c.staggerLines||void 0,t.createGroups(),l||t.isLinked?(n.forEach(function(e){t.generateTick(e)}),t.renderUnsquish(),t.reserveSpaceDefault=0===r||2===r||({1:\"left\",3:\"right\"})[r]===t.labelAlign,E(c.reserveSpace,!p&&null,\"center\"===t.labelAlign||null,t.reserveSpaceDefault)&&n.forEach(function(t){S=Math.max(o[t].getLabelSize(),S)}),t.staggerLines&&(S*=t.staggerLines),t.labelOffset=S*(t.opposite?-1:1)):D(o,function(t,e){t.destroy(),delete o[e]}),d?.text&&!1!==d.enabled&&(t.addTitle(m),m&&!p&&!1!==d.reserveSpace&&(t.titleOffset=x=t.axisTitle.getBBox()[i?\"height\":\"width\"],v=y(b=d.offset)?0:E(d.margin,i?5:10))),t.renderLine(),t.offset=f*E(s.offset,u[r]?u[r]+(s.margin||0):0),t.tickRotCorr=t.tickRotCorr||{x:0,y:0},M=0===r?-t.labelMetrics().h:2===r?t.tickRotCorr.y:0,C=Math.abs(S)+v,S&&(C-=M,C+=f*(i?E(c.y,t.tickRotCorr.y+f*c.distance):E(c.x,f*c.distance))),t.axisTitleMargin=E(b,C),t.getMaxLabelDimensions&&(t.maxLabelDimensions=t.getMaxLabelDimensions(o,n)),\"colorAxis\"!==a&&g){let e=this.tickSize(\"tick\");u[r]=Math.max(u[r],(t.axisTitleMargin||0)+x+f*t.offset,C,n&&n.length&&e?e[0]+f*t.offset:0);let i=!t.axisLine||s.offset?0:t.axisLine.strokeWidth()/2;g[h]=Math.max(g[h],i)}k(this,\"afterGetOffset\")}getLinePath(t){let e=this.chart,i=this.opposite,s=this.offset,r=this.horiz,o=this.left+(i?this.width:0)+s,n=e.chartHeight-this.bottom-(i?this.height:0)+s;return i&&(t*=-1),e.renderer.crispLine([[\"M\",r?this.left:o,r?n:this.top],[\"L\",r?e.chartWidth-this.right:o,r?n:e.chartHeight-this.bottom]],t)}renderLine(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass(\"highcharts-axis-line\").add(this.axisGroup),this.chart.styledMode||this.axisLine.attr({stroke:this.options.lineColor,\"stroke-width\":this.options.lineWidth,zIndex:7}))}getTitlePosition(t){let e=this.horiz,i=this.left,s=this.top,r=this.len,o=this.options.title,n=e?i:s,a=this.opposite,h=this.offset,l=o.x,d=o.y,c=this.chart.renderer.fontMetrics(t),p=t?Math.max(t.getBBox(!1,0).height-c.h-1,0):0,u={low:n+(e?0:r),middle:n+r/2,high:n+(e?r:0)}[o.align],g=(e?s+this.height:i)+(e?1:-1)*(a?-1:1)*(this.axisTitleMargin||0)+[-p,p,c.f,-p][this.side],f={x:e?u+l:g+(a?this.width:0)+h+l,y:e?g+d-(a?this.height:0)+h:u+d};return k(this,\"afterGetTitlePosition\",{titlePosition:f}),f}renderMinorTick(t,e){let i=this.minorTicks;i[t]||(i[t]=new n(this,t,\"minor\")),e&&i[t].isNew&&i[t].render(null,!0),i[t].render(null,!1,1)}renderTick(t,e,i){let s=this.isLinked,r=this.ticks;(!s||t>=this.min&&t<=this.max||this.grid&&this.grid.isColumn)&&(r[t]||(r[t]=new n(this,t)),i&&r[t].isNew&&r[t].render(e,!0,-1),r[t].render(e))}render(){let t,e;let i=this,s=i.chart,r=i.logarithmic,a=s.renderer,l=i.options,d=i.isLinked,c=i.tickPositions,p=i.axisTitle,u=i.ticks,g=i.minorTicks,f=i.alternateBands,m=l.stackLabels,x=l.alternateGridColor,y=l.crossing,b=i.tickmarkOffset,v=i.axisLine,S=i.showAxis,C=h(a.globalAnimation);if(i.labelEdge.length=0,i.overlap=!1,[u,g,f].forEach(function(t){D(t,function(t){t.isActive=!1})}),T(y)){let t=this.isXAxis?s.yAxis[0]:s.xAxis[0],e=[1,-1,-1,1][this.side];if(t){let s=t.toPixels(y,!0);i.horiz&&(s=t.len-s),i.offset=e*s}}if(i.hasData()||d){let a=i.chart.hasRendered&&i.old&&T(i.old.min);i.minorTickInterval&&!i.categories&&i.getMinorTickPositions().forEach(function(t){i.renderMinorTick(t,a)}),c.length&&(c.forEach(function(t,e){i.renderTick(t,e,a)}),b&&(0===i.min||i.single)&&(u[-1]||(u[-1]=new n(i,-1,null,!0)),u[-1].render(-1))),x&&c.forEach(function(n,a){e=void 0!==c[a+1]?c[a+1]+b:i.max-b,a%2==0&&n=.5)t=Math.round(t),l=n.getLinearTickPositions(t,e,i);else if(t>=.08){let s,r,n,a,h,d,c;let p=Math.floor(e);for(s=t>.3?[1,2,4]:t>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9],r=p;re&&(!o||d<=i)&&void 0!==d&&l.push(d),d>i&&(c=!0),d=h}else{let d=this.lin2log(e),c=this.lin2log(i),p=o?n.getMinorTickInterval():h.tickInterval,u=h.tickPixelInterval/(o?5:1),g=o?a/n.tickPositions.length:a;t=s(t=r(\"auto\"===p?null:p,this.minorAutoInterval,(c-d)*u/(g||1))),l=n.getLinearTickPositions(t,d,c).map(this.log2lin),o||(this.minorAutoInterval=t/5)}return o||(n.tickInterval=t),l}lin2log(t){return Math.pow(10,t)}log2lin(t){return Math.log(t)/Math.LN10}}t.Additions=n}(e||(e={})),e}),i(e,\"Core/Axis/PlotLineOrBand/PlotLineOrBandAxis.js\",[e[\"Core/Utilities.js\"]],function(t){var e;let{erase:i,extend:s,isNumber:r}=t;return function(t){let e;function o(t){return this.addPlotBandOrLine(t,\"plotBands\")}function n(t,i){let s=this.userOptions,r=new e(this,t);if(this.visible&&(r=r.render()),r){if(this._addedPlotLB||(this._addedPlotLB=!0,(s.plotLines||[]).concat(s.plotBands||[]).forEach(t=>{this.addPlotBandOrLine(t)})),i){let e=s[i]||[];e.push(t),s[i]=e}this.plotLinesAndBands.push(r)}return r}function a(t){return this.addPlotBandOrLine(t,\"plotLines\")}function h(t,e,i){i=i||this.options;let s=this.getPlotLinePath({value:e,force:!0,acrossPanes:i.acrossPanes}),o=[],n=this.horiz,a=!r(this.min)||!r(this.max)||tthis.max&&e>this.max,h=this.getPlotLinePath({value:t,force:!0,acrossPanes:i.acrossPanes}),l,d=1,c;if(h&&s)for(a&&(c=h.toString()===s.toString(),d=0),l=0;l{v?.on(e,t=>{n[e].apply(this,[t])})}),this.eventsAdded=!0),(w||!v.d)&&S?.length?v.attr({d:S}):v&&(S?(v.show(),v.animate({d:S})):v.d&&(v.hide(),b&&(this.label=b=b.destroy()))),y&&(r(y.text)||r(y.formatter))&&S?.length&&t.width>0&&t.height>0&&!S.isFlat?(y=h({align:i&&k?\"center\":void 0,x:i?!k&&4:10,verticalAlign:!i&&k?\"middle\":void 0,y:i?k?16:10:k?6:-4,rotation:i&&!k?90:0},y),this.renderLabel(y,S,k,c)):b&&b.hide(),this}renderLabel(t,e,r,o){let n=this.axis,a=n.chart.renderer,l=this.label;l||(this.label=l=a.text(this.getLabelText(t),0,0,t.useHTML).attr({align:t.textAlign||t.align,rotation:t.rotation,class:\"highcharts-plot-\"+(r?\"band\":\"line\")+\"-label \"+(t.className||\"\"),zIndex:o}),n.chart.styledMode||l.css(h({fontSize:\"0.8em\",textOverflow:\"ellipsis\"},t.style)),l.add());let d=e.xBounds||[e[0][1],e[1][1],r?e[2][1]:e[0][1]],c=e.yBounds||[e[0][2],e[1][2],r?e[2][2]:e[0][2]],p=s(d),u=s(c);if(l.align(t,!1,{x:p,y:u,width:i(d)-p,height:i(c)-u}),!l.alignValue||\"left\"===l.alignValue){let e=t.clip?n.width:n.chart.chartWidth;l.css({width:(90===l.rotation?n.height-(l.alignAttr.y-n.top):e-(l.alignAttr.x-n.left))+\"px\"})}l.show(!0)}getLabelText(t){return r(t.formatter)?t.formatter.call(this):t.text}destroy(){n(this.axis.plotLinesAndBands,this),delete this.axis,o(this)}}return c}),i(e,\"Core/Tooltip.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Templating.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/RendererUtilities.js\"],e[\"Core/Renderer/RendererRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o){var n;let{animObject:a}=t,{format:h}=e,{composed:l,doc:d,isSafari:c}=i,{distribute:p}=s,{addEvent:u,clamp:g,css:f,discardElement:m,extend:x,fireEvent:y,isArray:b,isNumber:v,isString:S,merge:C,pick:k,pushUnique:M,splat:w,syncTimeout:A}=o;class T{constructor(t,e,i){this.allowShared=!0,this.crosshairs=[],this.distance=0,this.isHidden=!0,this.isSticky=!1,this.options={},this.outside=!1,this.chart=t,this.init(t,e),this.pointer=i}bodyFormatter(t){return t.map(function(t){let e=t.series.tooltipOptions;return(e[(t.point.formatPrefix||\"point\")+\"Formatter\"]||t.point.tooltipFormatter).call(t.point,e[(t.point.formatPrefix||\"point\")+\"Format\"]||\"\")})}cleanSplit(t){this.chart.series.forEach(function(e){let i=e&&e.tt;i&&(!i.isActive||t?e.tt=i.destroy():i.isActive=!1)})}defaultFormatter(t){let e;let i=this.points||w(this);return(e=(e=[t.tooltipFooterHeaderFormatter(i[0])]).concat(t.bodyFormatter(i))).push(t.tooltipFooterHeaderFormatter(i[0],!0)),e}destroy(){this.label&&(this.label=this.label.destroy()),this.split&&(this.cleanSplit(!0),this.tt&&(this.tt=this.tt.destroy())),this.renderer&&(this.renderer=this.renderer.destroy(),m(this.container)),o.clearTimeout(this.hideTimer)}getAnchor(t,e){let i;let{chart:s,pointer:r}=this,o=s.inverted,n=s.plotTop,a=s.plotLeft;if((t=w(t))[0].series&&t[0].series.yAxis&&!t[0].series.yAxis.options.reversedStacks&&(t=t.slice().reverse()),this.followPointer&&e)void 0===e.chartX&&(e=r.normalize(e)),i=[e.chartX-a,e.chartY-n];else if(t[0].tooltipPos)i=t[0].tooltipPos;else{let s=0,r=0;t.forEach(function(t){let e=t.pos(!0);e&&(s+=e[0],r+=e[1])}),s/=t.length,r/=t.length,this.shared&&t.length>1&&e&&(o?s=e.chartX:r=e.chartY),i=[s-a,r-n]}return i.map(Math.round)}getClassName(t,e,i){let s=this.options,r=t.series,o=r.options;return[s.className,\"highcharts-label\",i&&\"highcharts-tooltip-header\",e?\"highcharts-tooltip-box\":\"highcharts-tooltip\",!i&&\"highcharts-color-\"+k(t.colorIndex,r.colorIndex),o&&o.className].filter(S).join(\" \")}getLabel(){let t=this,e=this.chart.styledMode,s=this.options,o=this.split&&this.allowShared,n=this.container,a=this.chart.renderer;if(this.label){let t=!this.label.hasClass(\"highcharts-label\");(!o&&t||o&&!t)&&this.destroy()}if(!this.label){if(this.outside){let t=this.chart.options.chart.style,e=r.getRendererType();this.container=n=i.doc.createElement(\"div\"),n.className=\"highcharts-tooltip-container\",f(n,{position:\"absolute\",top:\"1px\",pointerEvents:\"none\",zIndex:Math.max(this.options.style.zIndex||0,(t&&t.zIndex||0)+3)}),this.renderer=a=new e(n,0,0,t,void 0,void 0,a.styledMode)}if(o?this.label=a.g(\"tooltip\"):(this.label=a.label(\"\",0,0,s.shape,void 0,void 0,s.useHTML,void 0,\"tooltip\").attr({padding:s.padding,r:s.borderRadius}),e||this.label.attr({fill:s.backgroundColor,\"stroke-width\":s.borderWidth||0}).css(s.style).css({pointerEvents:s.style.pointerEvents||(this.shouldStickOnContact()?\"auto\":\"none\")})),t.outside){let e=this.label;[e.xSetter,e.ySetter].forEach((i,s)=>{e[s?\"ySetter\":\"xSetter\"]=r=>{i.call(e,t.distance),e[s?\"y\":\"x\"]=r,n&&(n.style[s?\"top\":\"left\"]=`${r}px`)}})}this.label.attr({zIndex:8}).shadow(s.shadow).add()}return n&&!n.parentElement&&i.doc.body.appendChild(n),this.label}getPlayingField(){let{body:t,documentElement:e}=d,{chart:i,distance:s,outside:r}=this;return{width:r?Math.max(t.scrollWidth,e.scrollWidth,t.offsetWidth,e.offsetWidth,e.clientWidth)-2*s:i.chartWidth,height:r?Math.max(t.scrollHeight,e.scrollHeight,t.offsetHeight,e.offsetHeight,e.clientHeight):i.chartHeight}}getPosition(t,e,i){let{distance:s,chart:r,outside:o,pointer:n}=this,{inverted:a,plotLeft:h,plotTop:l,polar:d}=r,{plotX:c=0,plotY:p=0}=i,u={},g=a&&i.h||0,{height:f,width:m}=this.getPlayingField(),x=n.getChartPosition(),y=t=>t*x.scaleX,b=t=>t*x.scaleY,v=i=>{let n=\"x\"===i;return[i,n?m:f,n?t:e].concat(o?[n?y(t):b(e),n?x.left-s+y(c+h):x.top-s+b(p+l),0,n?m:f]:[n?t:e,n?c+h:p+l,n?h:l,n?h+r.plotWidth:l+r.plotHeight])},S=v(\"y\"),C=v(\"x\"),M,w=!!i.negative;!d&&r.hoverSeries?.yAxis?.reversed&&(w=!w);let A=!this.followPointer&&k(i.ttBelow,!d&&!a===w),T=function(t,e,i,r,n,a,h){let l=o?\"y\"===t?b(s):y(s):s,d=(i-r)/2,c=re?m:m+g)}},P=function(t,e,i,r,o){if(oe-s)return!1;oe-r/2?u[t]=e-r-2:u[t]=o-i/2},L=function(t){[S,C]=[C,S],M=t},O=()=>{!1!==T.apply(0,S)?!1!==P.apply(0,C)||M||(L(!0),O()):M?u.x=u.y=0:(L(!0),O())};return(a&&!d||this.len>1)&&L(),O(),u}hide(t){let e=this;o.clearTimeout(this.hideTimer),t=k(t,this.options.hideDelay),this.isHidden||(this.hideTimer=A(function(){let i=e.getLabel();e.getLabel().animate({opacity:0},{duration:t?150:t,complete:()=>{i.hide(),e.container&&e.container.remove()}}),e.isHidden=!0},t))}init(t,e){this.chart=t,this.options=e,this.crosshairs=[],this.isHidden=!0,this.split=e.split&&!t.inverted&&!t.polar,this.shared=e.shared||this.split,this.outside=k(e.outside,!!(t.scrollablePixelsX||t.scrollablePixelsY))}shouldStickOnContact(t){return!!(!this.followPointer&&this.options.stickOnContact&&(!t||this.pointer.inClass(t.target,\"highcharts-tooltip\")))}move(t,e,i,s){let r=this,o=a(!r.isHidden&&r.options.animation),n=r.followPointer||(r.len||0)>1,h={x:t,y:e};n||(h.anchorX=i,h.anchorY=s),o.step=()=>r.drawTracker(),r.getLabel().animate(h,o)}refresh(t,e){let{chart:i,options:s,pointer:r,shared:n}=this,a=w(t),l=a[0],d=[],c=s.format,p=s.formatter||this.defaultFormatter,u=i.styledMode,g={};if(!s.enabled||!l.series)return;o.clearTimeout(this.hideTimer),this.allowShared=!(!b(t)&&t.series&&t.series.noSharedTooltip),this.followPointer=!this.split&&l.series.tooltipOptions.followPointer;let f=this.getAnchor(t,e),m=f[0],x=f[1];n&&this.allowShared?(r.applyInactiveState(a),a.forEach(function(t){t.setState(\"hover\"),d.push(t.getLabelConfig())}),(g=l.getLabelConfig()).points=d):g=l.getLabelConfig(),this.len=d.length;let v=S(c)?h(c,g,i):p.call(g,this),C=l.series;if(this.distance=k(C.tooltipOptions.distance,16),!1===v)this.hide();else{if(this.split&&this.allowShared)this.renderSplit(v,a);else{let t=m,o=x;if(e&&r.isDirectTouch&&(t=e.chartX-i.plotLeft,o=e.chartY-i.plotTop),i.polar||!1===C.options.clip||a.some(e=>r.isDirectTouch||e.series.shouldShowTooltip(t,o))){let t=this.getLabel();(!s.style.width||u)&&t.css({width:(this.outside?this.getPlayingField():i.spacingBox).width+\"px\"}),t.attr({class:this.getClassName(l),text:v&&v.join?v.join(\"\"):v}),u||t.attr({stroke:s.borderColor||l.color||C.color||\"#666666\"}),this.updatePosition({plotX:m,plotY:x,negative:l.negative,ttBelow:l.ttBelow,h:f[2]||0})}else{this.hide();return}}this.isHidden&&this.label&&this.label.attr({opacity:1}).show(),this.isHidden=!1}y(this,\"refresh\")}renderSplit(t,e){let i=this,{chart:s,chart:{chartWidth:r,chartHeight:o,plotHeight:n,plotLeft:a,plotTop:h,scrollablePixelsY:l=0,scrollablePixelsX:u,styledMode:f},distance:m,options:y,options:{positioner:b},pointer:v}=i,{scrollLeft:C=0,scrollTop:M=0}=s.scrollablePlotArea?.scrollingContainer||{},w=i.outside&&\"number\"!=typeof u?d.documentElement.getBoundingClientRect():{left:C,right:C+r,top:M,bottom:M+o},A=i.getLabel(),T=this.renderer||s.renderer,P=!!(s.xAxis[0]&&s.xAxis[0].opposite),{left:L,top:O}=v.getChartPosition(),D=h+M,E=0,I=n-l;function j(t,e,s,r,o=!0){let n,a;return s?(n=P?0:I,a=g(t-r/2,w.left,w.right-r-(i.outside?L:0))):(n=e-D,a=g(a=o?t-r-m:t+m,o?a:w.left,w.right)),{x:a,y:n}}S(t)&&(t=[!1,t]);let B=t.slice(0,e.length+1).reduce(function(t,s,r){if(!1!==s&&\"\"!==s){let o=e[r-1]||{isHeader:!0,plotX:e[0].plotX,plotY:n,series:{}},l=o.isHeader,d=l?i:o.series,c=d.tt=function(t,e,s){let r=t,{isHeader:o,series:n}=e;if(!r){let t={padding:y.padding,r:y.borderRadius};f||(t.fill=y.backgroundColor,t[\"stroke-width\"]=y.borderWidth??1),r=T.label(\"\",0,0,y[o?\"headerShape\":\"shape\"],void 0,void 0,y.useHTML).addClass(i.getClassName(e,!0,o)).attr(t).add(A)}return r.isActive=!0,r.attr({text:s}),f||r.css(y.style).attr({stroke:y.borderColor||e.color||n.color||\"#333333\"}),r}(d.tt,o,s.toString()),p=c.getBBox(),u=p.width+c.strokeWidth();l&&(E=p.height,I+=E,P&&(D-=E));let{anchorX:x,anchorY:v}=function(t){let e,i;let{isHeader:s,plotX:r=0,plotY:o=0,series:l}=t;if(s)e=Math.max(a+r,a),i=h+n/2;else{let{xAxis:t,yAxis:s}=l;e=t.pos+g(r,-m,t.len+m),l.shouldShowTooltip(0,s.pos-h+o,{ignoreX:!0})&&(i=s.pos+o)}return{anchorX:e=g(e,w.left-m,w.right+m),anchorY:i}}(o);if(\"number\"==typeof v){let e=p.height+1,s=b?b.call(i,u,e,o):j(x,v,l,u);t.push({align:b?0:void 0,anchorX:x,anchorY:v,boxWidth:u,point:o,rank:k(s.rank,l?1:0),size:e,target:s.y,tt:c,x:s.x})}else c.isActive=!1}return t},[]);!b&&B.some(t=>{let{outside:e}=i,s=(e?L:0)+t.anchorX;return ss})&&(B=B.map(t=>{let{x:e,y:i}=j(t.anchorX,t.anchorY,t.point.isHeader,t.boxWidth,!1);return x(t,{target:i,x:e})})),i.cleanSplit(),p(B,I);let R={left:L,right:L};B.forEach(function(t){let{x:e,boxWidth:s,isHeader:r}=t;!r&&(i.outside&&L+eR.right&&(R.right=L+e))}),B.forEach(function(t){let{x:e,anchorX:s,anchorY:r,pos:o,point:{isHeader:n}}=t,a={visibility:void 0===o?\"hidden\":\"inherit\",x:e,y:(o||0)+D,anchorX:s,anchorY:r};if(i.outside&&e0&&(n||(a.x=e+t,a.anchorX=s+t),n&&(a.x=(R.right-R.left)/2,a.anchorX=s+t))}t.tt.attr(a)});let{container:z,outside:N,renderer:W}=i;if(N&&z&&W){let{width:t,height:e,x:i,y:s}=A.getBBox();W.setSize(t+i,e+s,!1),z.style.left=R.left+\"px\",z.style.top=O+\"px\"}c&&A.attr({opacity:1===A.opacity?.999:1})}drawTracker(){if(!this.shouldStickOnContact()){this.tracker&&(this.tracker=this.tracker.destroy());return}let t=this.chart,e=this.label,i=this.shared?t.hoverPoints:t.hoverPoint;if(!e||!i)return;let s={x:0,y:0,width:0,height:0},r=this.getAnchor(i),o=e.getBBox();r[0]+=t.plotLeft-(e.translateX||0),r[1]+=t.plotTop-(e.translateY||0),s.x=Math.min(0,r[0]),s.y=Math.min(0,r[1]),s.width=r[0]<0?Math.max(Math.abs(r[0]),o.width-r[0]):Math.max(Math.abs(r[0]),o.width),s.height=r[1]<0?Math.max(Math.abs(r[1]),o.height-Math.abs(r[1])):Math.max(Math.abs(r[1]),o.height),this.tracker?this.tracker.attr(s):(this.tracker=e.renderer.rect(s).addClass(\"highcharts-tracker\").add(e),t.styledMode||this.tracker.attr({fill:\"rgba(0,0,0,0)\"}))}styledModeFormat(t){return t.replace('style=\"font-size: 0.8em\"','class=\"highcharts-header\"').replace(/style=\"color:{(point|series)\\.color}\"/g,'class=\"highcharts-color-{$1.colorIndex} {series.options.className} {point.options.className}\"')}tooltipFooterHeaderFormatter(t,e){let i=t.series,s=i.tooltipOptions,r=i.xAxis,o=r&&r.dateTime,n={isFooter:e,labelConfig:t},a=s.xDateFormat,l=s[e?\"footerFormat\":\"headerFormat\"];return y(this,\"headerFormatter\",n,function(e){o&&!a&&v(t.key)&&(a=o.getXDateFormat(t.key,s.dateTimeLabelFormats)),o&&a&&(t.point&&t.point.tooltipDateKeys||[\"key\"]).forEach(function(t){l=l.replace(\"{point.\"+t+\"}\",\"{point.\"+t+\":\"+a+\"}\")}),i.chart.styledMode&&(l=this.styledModeFormat(l)),e.text=h(l,{point:t,series:i},this.chart)}),n.text}update(t){this.destroy(),this.init(this.chart,C(!0,this.options,t))}updatePosition(t){let{chart:e,container:i,distance:s,options:r,pointer:o,renderer:n}=this,{height:a=0,width:h=0}=this.getLabel(),{left:l,top:d,scaleX:c,scaleY:p}=o.getChartPosition(),u=(r.positioner||this.getPosition).call(this,h,a,t),g=(t.plotX||0)+e.plotLeft,m=(t.plotY||0)+e.plotTop,x;n&&i&&(r.positioner&&(u.x+=l-s,u.y+=d-s),x=(r.borderWidth||0)+2*s+2,n.setSize(h+x,a+x,!1),(1!==c||1!==p)&&(f(i,{transform:`scale(${c}, ${p})`}),g*=c,m*=p),g+=l-u.x,m+=d-u.y),this.move(Math.round(u.x),Math.round(u.y||0),g,m)}}return(n=T||(T={})).compose=function(t){M(l,\"Core.Tooltip\")&&u(t,\"afterInit\",function(){let t=this.chart;t.options.tooltip&&(t.tooltip=new n(t,t.options.tooltip,this))})},T}),i(e,\"Core/Series/Point.js\",[e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Defaults.js\"],e[\"Core/Templating.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r){let{animObject:o}=e,{defaultOptions:n}=i,{format:a}=s,{addEvent:h,crisp:l,erase:d,extend:c,fireEvent:p,getNestedProperty:u,isArray:g,isFunction:f,isNumber:m,isObject:x,merge:y,pick:b,syncTimeout:v,removeEvent:S,uniqueKey:C}=r;class k{animateBeforeDestroy(){let t=this,e={x:t.startXPos,opacity:0},i=t.getGraphicalProps();i.singular.forEach(function(i){t[i]=t[i].animate(\"dataLabel\"===i?{x:t[i].startXPos,y:t[i].startYPos,opacity:0}:e)}),i.plural.forEach(function(e){t[e].forEach(function(e){e.element&&e.animate(c({x:t.startXPos},e.startYPos?{x:e.startXPos,y:e.startYPos}:{}))})})}applyOptions(t,e){let i=this.series,s=i.options.pointValKey||i.pointValKey;return c(this,t=k.prototype.optionsToObject.call(this,t)),this.options=this.options?c(this.options,t):t,t.group&&delete this.group,t.dataLabels&&delete this.dataLabels,s&&(this.y=k.prototype.getNestedProperty.call(this,s)),this.selected&&(this.state=\"select\"),\"name\"in this&&void 0===e&&i.xAxis&&i.xAxis.hasNames&&(this.x=i.xAxis.nameToX(this)),void 0===this.x&&i?this.x=e??i.autoIncrement():m(t.x)&&i.options.relativeXValue&&(this.x=i.autoIncrement(t.x)),this.isNull=this.isValid&&!this.isValid(),this.formatPrefix=this.isNull?\"null\":\"point\",this}destroy(){if(!this.destroyed){let t=this,e=t.series,i=e.chart,s=e.options.dataSorting,r=i.hoverPoints,n=o(t.series.chart.renderer.globalAnimation),a=()=>{for(let e in(t.graphic||t.graphics||t.dataLabel||t.dataLabels)&&(S(t),t.destroyElements()),t)delete t[e]};t.legendItem&&i.legend.destroyItem(t),r&&(t.setState(),d(r,t),r.length||(i.hoverPoints=null)),t===i.hoverPoint&&t.onMouseOut(),s&&s.enabled?(this.animateBeforeDestroy(),v(a,n.duration)):a(),i.pointCount--}this.destroyed=!0}destroyElements(t){let e=this,i=e.getGraphicalProps(t);i.singular.forEach(function(t){e[t]=e[t].destroy()}),i.plural.forEach(function(t){e[t].forEach(function(t){t&&t.element&&t.destroy()}),delete e[t]})}firePointEvent(t,e,i){let s=this,r=this.series.options;s.manageEvent(t),\"click\"===t&&r.allowPointSelect&&(i=function(t){!s.destroyed&&s.select&&s.select(null,t.ctrlKey||t.metaKey||t.shiftKey)}),p(s,t,e,i)}getClassName(){return\"highcharts-point\"+(this.selected?\" highcharts-point-select\":\"\")+(this.negative?\" highcharts-negative\":\"\")+(this.isNull?\" highcharts-null-point\":\"\")+(void 0!==this.colorIndex?\" highcharts-color-\"+this.colorIndex:\"\")+(this.options.className?\" \"+this.options.className:\"\")+(this.zone&&this.zone.className?\" \"+this.zone.className.replace(\"highcharts-negative\",\"\"):\"\")}getGraphicalProps(t){let e,i;let s=this,r=[],o={singular:[],plural:[]};for((t=t||{graphic:1,dataLabel:1}).graphic&&r.push(\"graphic\",\"connector\"),t.dataLabel&&r.push(\"dataLabel\",\"dataLabelPath\",\"dataLabelUpper\"),i=r.length;i--;)s[e=r[i]]&&o.singular.push(e);return[\"graphic\",\"dataLabel\"].forEach(function(e){let i=e+\"s\";t[e]&&s[i]&&o.plural.push(i)}),o}getLabelConfig(){return{x:this.category,y:this.y,color:this.color,colorIndex:this.colorIndex,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}}getNestedProperty(t){return t?0===t.indexOf(\"custom.\")?u(t,this.options):this[t]:void 0}getZone(){let t=this.series,e=t.zones,i=t.zoneAxis||\"y\",s,r=0;for(s=e[0];this[i]>=s.value;)s=e[++r];return this.nonZonedColor||(this.nonZonedColor=this.color),s&&s.color&&!this.options.color?this.color=s.color:this.color=this.nonZonedColor,s}hasNewShapeType(){return(this.graphic&&(this.graphic.symbolName||this.graphic.element.nodeName))!==this.shapeType}constructor(t,e,i){this.formatPrefix=\"point\",this.visible=!0,this.series=t,this.applyOptions(e,i),this.id??(this.id=C()),this.resolveColor(),t.chart.pointCount++,p(this,\"afterInit\")}isValid(){return(m(this.x)||this.x instanceof Date)&&m(this.y)}optionsToObject(t){let e=this.series,i=e.options.keys,s=i||e.pointArrayMap||[\"y\"],r=s.length,o={},n,a=0,h=0;if(m(t)||null===t)o[s[0]]=t;else if(g(t))for(!i&&t.length>r&&(\"string\"==(n=typeof t[0])?o.name=t[0]:\"number\"===n&&(o.x=t[0]),a++);h0?k.prototype.setNestedProperty(o,t[a],s[h]):o[s[h]]=t[a]),a++,h++;else\"object\"==typeof t&&(o=t,t.dataLabels&&(e.hasDataLabels=()=>!0),t.marker&&(e._hasPointMarkers=!0));return o}pos(t,e=this.plotY){if(!this.destroyed){let{plotX:i,series:s}=this,{chart:r,xAxis:o,yAxis:n}=s,a=0,h=0;if(m(i)&&m(e))return t&&(a=o?o.pos:r.plotLeft,h=n?n.pos:r.plotTop),r.inverted&&o&&n?[n.len-e+h,o.len-i+a]:[i+a,e+h]}}resolveColor(){let t=this.series,e=t.chart.options.chart,i=t.chart.styledMode,s,r,o=e.colorCount,n;delete this.nonZonedColor,t.options.colorByPoint?(i||(s=(r=t.options.colors||t.chart.options.colors)[t.colorCounter],o=r.length),n=t.colorCounter,t.colorCounter++,t.colorCounter===o&&(t.colorCounter=0)):(i||(s=t.color),n=t.colorIndex),this.colorIndex=b(this.options.colorIndex,n),this.color=b(this.options.color,s)}setNestedProperty(t,e,i){return i.split(\".\").reduce(function(t,i,s,r){let o=r.length-1===s;return t[i]=o?e:x(t[i],!0)?t[i]:{},t[i]},t),t}shouldDraw(){return!this.isNull}tooltipFormatter(t){let e=this.series,i=e.tooltipOptions,s=b(i.valueDecimals,\"\"),r=i.valuePrefix||\"\",o=i.valueSuffix||\"\";return e.chart.styledMode&&(t=e.chart.tooltip.styledModeFormat(t)),(e.pointArrayMap||[\"y\"]).forEach(function(e){e=\"{point.\"+e,(r||o)&&(t=t.replace(RegExp(e+\"}\",\"g\"),r+e+\"}\"+o)),t=t.replace(RegExp(e+\"}\",\"g\"),e+\":,.\"+s+\"f}\")}),a(t,{point:this,series:this.series},e.chart)}update(t,e,i,s){let r;let o=this,n=o.series,a=o.graphic,h=n.chart,l=n.options;function d(){o.applyOptions(t);let s=a&&o.hasMockGraphic,d=null===o.y?!s:s;a&&d&&(o.graphic=a.destroy(),delete o.hasMockGraphic),x(t,!0)&&(a&&a.element&&t&&t.marker&&void 0!==t.marker.symbol&&(o.graphic=a.destroy()),t?.dataLabels&&o.dataLabel&&(o.dataLabel=o.dataLabel.destroy())),r=o.index,n.updateParallelArrays(o,r),l.data[r]=x(l.data[r],!0)||x(t,!0)?o.options:b(t,l.data[r]),n.isDirty=n.isDirtyData=!0,!n.fixedBox&&n.hasCartesianSeries&&(h.isDirtyBox=!0),\"point\"===l.legendType&&(h.isDirtyLegend=!0),e&&h.redraw(i)}e=b(e,!0),!1===s?d():o.firePointEvent(\"update\",{options:t},d)}remove(t,e){this.series.removePoint(this.series.data.indexOf(this),t,e)}select(t,e){let i=this,s=i.series,r=s.chart;t=b(t,!i.selected),this.selectedStaging=t,i.firePointEvent(t?\"select\":\"unselect\",{accumulate:e},function(){i.selected=i.options.selected=t,s.options.data[s.data.indexOf(i)]=i.options,i.setState(t&&\"select\"),e||r.getSelectedPoints().forEach(function(t){let e=t.series;t.selected&&t!==i&&(t.selected=t.options.selected=!1,e.options.data[e.data.indexOf(t)]=t.options,t.setState(r.hoverPoints&&e.options.inactiveOtherPoints?\"inactive\":\"\"),t.firePointEvent(\"unselect\"))})}),delete this.selectedStaging}onMouseOver(t){let{inverted:e,pointer:i}=this.series.chart;i&&(t=t?i.normalize(t):i.getChartCoordinatesFromPoint(this,e),i.runPointActions(t,this))}onMouseOut(){let t=this.series.chart;this.firePointEvent(\"mouseOut\"),this.series.options.inactiveOtherPoints||(t.hoverPoints||[]).forEach(function(t){t.setState()}),t.hoverPoints=t.hoverPoint=null}manageEvent(t){let e=y(this.series.options.point,this.options),i=e.events?.[t];f(i)&&(!this.hcEvents?.[t]||this.hcEvents?.[t]?.map(t=>t.fn).indexOf(i)===-1)?(this.importedUserEvent?.(),this.importedUserEvent=h(this,t,i)):this.importedUserEvent&&!i&&this.hcEvents?.[t]&&(S(this,t),delete this.hcEvents[t],Object.keys(this.hcEvents)||delete this.importedUserEvent)}setState(e,i){let s=this.series,r=this.state,o=s.options.states[e||\"normal\"]||{},a=n.plotOptions[s.type].marker&&s.options.marker,h=a&&!1===a.enabled,l=a&&a.states&&a.states[e||\"normal\"]||{},d=!1===l.enabled,u=this.marker||{},g=s.chart,f=a&&s.markerAttribs,x=s.halo,y,v,S,C=s.stateMarkerGraphic,k;if((e=e||\"\")===this.state&&!i||this.selected&&\"select\"!==e||!1===o.enabled||e&&(d||h&&!1===l.enabled)||e&&u.states&&u.states[e]&&!1===u.states[e].enabled)return;if(this.state=e,f&&(y=s.markerAttribs(this,e)),this.graphic&&!this.hasMockGraphic){if(r&&this.graphic.removeClass(\"highcharts-point-\"+r),e&&this.graphic.addClass(\"highcharts-point-\"+e),!g.styledMode){v=s.pointAttribs(this,e),S=b(g.options.chart.animation,o.animation);let t=v.opacity;s.options.inactiveOtherPoints&&m(t)&&(this.dataLabels||[]).forEach(function(e){e&&!e.hasClass(\"highcharts-data-label-hidden\")&&(e.animate({opacity:t},S),e.connector&&e.connector.animate({opacity:t},S))}),this.graphic.animate(v,S)}y&&this.graphic.animate(y,b(g.options.chart.animation,l.animation,a.animation)),C&&C.hide()}else e&&l&&(k=u.symbol||s.symbol,C&&C.currentSymbol!==k&&(C=C.destroy()),y&&(C?C[i?\"animate\":\"attr\"]({x:y.x,y:y.y}):k&&(s.stateMarkerGraphic=C=g.renderer.symbol(k,y.x,y.y,y.width,y.height).add(s.markerGroup),C.currentSymbol=k)),!g.styledMode&&C&&\"inactive\"!==this.state&&C.attr(s.pointAttribs(this,e))),C&&(C[e&&this.isInside?\"show\":\"hide\"](),C.element.point=this,C.addClass(this.getClassName(),!0));let M=o.halo,w=this.graphic||C,A=w&&w.visibility||\"inherit\";M&&M.size&&w&&\"hidden\"!==A&&!this.isCluster?(x||(s.halo=x=g.renderer.path().add(w.parentGroup)),x.show()[i?\"animate\":\"attr\"]({d:this.haloPath(M.size)}),x.attr({class:\"highcharts-halo highcharts-color-\"+b(this.colorIndex,s.colorIndex)+(this.className?\" \"+this.className:\"\"),visibility:A,zIndex:-1}),x.point=this,g.styledMode||x.attr(c({fill:this.color||s.color,\"fill-opacity\":M.opacity},t.filterUserAttributes(M.attributes||{})))):x?.point?.haloPath&&!x.point.destroyed&&x.animate({d:x.point.haloPath(0)},null,x.hide),p(this,\"afterSetState\",{state:e})}haloPath(t){let e=this.pos();return e?this.series.chart.renderer.symbols.circle(l(e[0],1)-t,e[1]-t,2*t,2*t):[]}}return k}),i(e,\"Core/Pointer.js\",[e[\"Core/Color/Color.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){var s;let{parse:r}=t,{charts:o,composed:n,isTouchDevice:a}=e,{addEvent:h,attr:l,css:d,extend:c,find:p,fireEvent:u,isNumber:g,isObject:f,objectEach:m,offset:x,pick:y,pushUnique:b,splat:v}=i;class S{applyInactiveState(t){let e=[],i;(t||[]).forEach(function(t){i=t.series,e.push(i),i.linkedParent&&e.push(i.linkedParent),i.linkedSeries&&(e=e.concat(i.linkedSeries)),i.navigatorSeries&&e.push(i.navigatorSeries)}),this.chart.series.forEach(function(t){-1===e.indexOf(t)?t.setState(\"inactive\",!0):t.options.inactiveOtherPoints&&t.setAllPointsToState(\"inactive\")})}destroy(){let t=this;this.eventsToUnbind.forEach(t=>t()),this.eventsToUnbind=[],!e.chartCount&&(S.unbindDocumentMouseUp&&(S.unbindDocumentMouseUp=S.unbindDocumentMouseUp()),S.unbindDocumentTouchEnd&&(S.unbindDocumentTouchEnd=S.unbindDocumentTouchEnd())),clearInterval(t.tooltipTimeout),m(t,function(e,i){t[i]=void 0})}getSelectionMarkerAttrs(t,e){let i={args:{chartX:t,chartY:e},attrs:{},shapeType:\"rect\"};return u(this,\"getSelectionMarkerAttrs\",i,i=>{let s;let{chart:r,zoomHor:o,zoomVert:n}=this,{mouseDownX:a=0,mouseDownY:h=0}=r,l=i.attrs;l.x=r.plotLeft,l.y=r.plotTop,l.width=o?1:r.plotWidth,l.height=n?1:r.plotHeight,o&&(s=t-a,l.width=Math.max(1,Math.abs(s)),l.x=(s>0?0:s)+a),n&&(s=e-h,l.height=Math.max(1,Math.abs(s)),l.y=(s>0?0:s)+h)}),i}drag(t){let{chart:e}=this,{mouseDownX:i=0,mouseDownY:s=0}=e,{panning:o,panKey:n,selectionMarkerFill:a}=e.options.chart,h=e.plotLeft,l=e.plotTop,d=e.plotWidth,c=e.plotHeight,p=f(o)?o.enabled:o,u=n&&t[`${n}Key`],g=t.chartX,m=t.chartY,x,y=this.selectionMarker;if((!y||!y.touch)&&(gh+d&&(g=h+d),ml+c&&(m=l+c),this.hasDragged=Math.sqrt(Math.pow(i-g,2)+Math.pow(s-m,2)),this.hasDragged>10)){x=e.isInsidePlot(i-h,s-l,{visiblePlotOnly:!0});let{shapeType:n,attrs:d}=this.getSelectionMarkerAttrs(g,m);(e.hasCartesianSeries||e.mapView)&&this.hasZoom&&x&&!u&&!y&&(this.selectionMarker=y=e.renderer[n](),y.attr({class:\"highcharts-selection-marker\",zIndex:7}).add(),e.styledMode||y.attr({fill:a||r(\"#334eff\").setOpacity(.25).get()})),y&&y.attr(d),x&&!y&&p&&e.pan(t,o)}}dragStart(t){let e=this.chart;e.mouseIsDown=t.type,e.cancelClick=!1,e.mouseDownX=t.chartX,e.mouseDownY=t.chartY}getSelectionBox(t){let e={args:{marker:t},result:t.getBBox()};return u(this,\"getSelectionBox\",e),e.result}drop(t){let e;let{chart:i,selectionMarker:s}=this;for(let t of i.axes)t.isPanning&&(t.isPanning=!1,(t.options.startOnTick||t.options.endOnTick||t.series.some(t=>t.boosted))&&(t.forceRedraw=!0,t.setExtremes(t.userMin,t.userMax,!1),e=!0));if(e&&i.redraw(),s&&t){if(this.hasDragged){let e=this.getSelectionBox(s);i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(\"xAxis\"===t.coll&&this.zoomX||\"yAxis\"===t.coll&&this.zoomY)),selection:{originalEvent:t,xAxis:[],yAxis:[],...e},from:e})}g(i.index)&&(this.selectionMarker=s.destroy())}i&&g(i.index)&&(d(i.container,{cursor:i._cursor}),i.cancelClick=this.hasDragged>10,i.mouseIsDown=!1,this.hasDragged=0,this.pinchDown=[])}findNearestKDPoint(t,e,i){let s;return t.forEach(function(t){let r=!(t.noSharedTooltip&&e)&&0>t.options.findNearestPointBy.indexOf(\"y\"),o=t.searchPoint(i,r);f(o,!0)&&o.series&&(!f(s,!0)||function(t,i){let s=t.distX-i.distX,r=t.dist-i.dist,o=i.series.group?.zIndex-t.series.group?.zIndex;return 0!==s&&e?s:0!==r?r:0!==o?o:t.series.index>i.series.index?-1:1}(s,o)>0)&&(s=o)}),s}getChartCoordinatesFromPoint(t,e){let{xAxis:i,yAxis:s}=t.series,r=t.shapeArgs;if(i&&s){let o=t.clientX??t.plotX??0,n=t.plotY||0;return t.isNode&&r&&g(r.x)&&g(r.y)&&(o=r.x,n=r.y),e?{chartX:s.len+s.pos-n,chartY:i.len+i.pos-o}:{chartX:o+i.pos,chartY:n+s.pos}}if(r&&r.x&&r.y)return{chartX:r.x,chartY:r.y}}getChartPosition(){if(this.chartPosition)return this.chartPosition;let{container:t}=this.chart,e=x(t);this.chartPosition={left:e.left,top:e.top,scaleX:1,scaleY:1};let{offsetHeight:i,offsetWidth:s}=t;return s>2&&i>2&&(this.chartPosition.scaleX=e.width/s,this.chartPosition.scaleY=e.height/i),this.chartPosition}getCoordinates(t){let e={xAxis:[],yAxis:[]};for(let i of this.chart.axes)e[i.isXAxis?\"xAxis\":\"yAxis\"].push({axis:i,value:i.toValue(t[i.horiz?\"chartX\":\"chartY\"])});return e}getHoverData(t,e,i,s,r,o){let n=[],a=function(t){return t.visible&&!(!r&&t.directTouch)&&y(t.options.enableMouseTracking,!0)},h=e,l,d={chartX:o?o.chartX:void 0,chartY:o?o.chartY:void 0,shared:r};u(this,\"beforeGetHoverData\",d),l=h&&!h.stickyTracking?[h]:i.filter(t=>t.stickyTracking&&(d.filter||a)(t));let c=s&&t||!o?t:this.findNearestKDPoint(l,r,o);return h=c&&c.series,c&&(r&&!h.noSharedTooltip?(l=i.filter(function(t){return d.filter?d.filter(t):a(t)&&!t.noSharedTooltip})).forEach(function(t){let e=p(t.points,function(t){return t.x===c.x&&!t.isNull});f(e)&&(t.boosted&&t.boost&&(e=t.boost.getPoint(e)),n.push(e))}):n.push(c)),u(this,\"afterGetHoverData\",d={hoverPoint:c}),{hoverPoint:d.hoverPoint,hoverSeries:h,hoverPoints:n}}getPointFromEvent(t){let e=t.target,i;for(;e&&!i;)i=e.point,e=e.parentNode;return i}onTrackerMouseOut(t){let e=this.chart,i=t.relatedTarget,s=e.hoverSeries;this.isDirectTouch=!1,!s||!i||s.stickyTracking||this.inClass(i,\"highcharts-tooltip\")||this.inClass(i,\"highcharts-series-\"+s.index)&&this.inClass(i,\"highcharts-tracker\")||s.onMouseOut()}inClass(t,e){let i=t,s;for(;i;){if(s=l(i,\"class\")){if(-1!==s.indexOf(e))return!0;if(-1!==s.indexOf(\"highcharts-container\"))return!1}i=i.parentElement}}constructor(t,e){this.hasDragged=0,this.pointerCaptureEventsToUnbind=[],this.eventsToUnbind=[],this.options=e,this.chart=t,this.runChartClick=!!e.chart.events?.click,this.pinchDown=[],this.setDOMEvents(),u(this,\"afterInit\")}normalize(t,e){let i=t.touches,s=i?i.length?i.item(0):y(i.changedTouches,t.changedTouches)[0]:t;e||(e=this.getChartPosition());let r=s.pageX-e.left,o=s.pageY-e.top;return c(t,{chartX:Math.round(r/=e.scaleX),chartY:Math.round(o/=e.scaleY)})}onContainerClick(t){let e=this.chart,i=e.hoverPoint,s=this.normalize(t),r=e.plotLeft,o=e.plotTop;!e.cancelClick&&(i&&this.inClass(s.target,\"highcharts-tracker\")?(u(i.series,\"click\",c(s,{point:i})),e.hoverPoint&&i.firePointEvent(\"click\",s)):(c(s,this.getCoordinates(s)),e.isInsidePlot(s.chartX-r,s.chartY-o,{visiblePlotOnly:!0})&&u(e,\"click\",s)))}onContainerMouseDown(t){let i=(1&(t.buttons||t.button))==1;t=this.normalize(t),e.isFirefox&&0!==t.button&&this.onContainerMouseMove(t),(void 0===t.button||i)&&(this.zoomOption(t),i&&t.preventDefault?.(),this.dragStart(t))}onContainerMouseLeave(t){let{pointer:e}=o[y(S.hoverChartIndex,-1)]||{};t=this.normalize(t),this.onContainerMouseMove(t),e&&!this.inClass(t.relatedTarget,\"highcharts-tooltip\")&&(e.reset(),e.chartPosition=void 0)}onContainerMouseEnter(){delete this.chartPosition}onContainerMouseMove(t){let e=this.chart,i=e.tooltip,s=this.normalize(t);this.setHoverChartIndex(t),(\"mousedown\"===e.mouseIsDown||this.touchSelect(s))&&this.drag(s),!e.openMenu&&(this.inClass(s.target,\"highcharts-tracker\")||e.isInsidePlot(s.chartX-e.plotLeft,s.chartY-e.plotTop,{visiblePlotOnly:!0}))&&!(i&&i.shouldStickOnContact(s))&&(this.inClass(s.target,\"highcharts-no-tooltip\")?this.reset(!1,0):this.runPointActions(s))}onDocumentTouchEnd(t){this.onDocumentMouseUp(t)}onContainerTouchMove(t){this.touchSelect(t)?this.onContainerMouseMove(t):this.touch(t)}onContainerTouchStart(t){this.touchSelect(t)?this.onContainerMouseDown(t):(this.zoomOption(t),this.touch(t,!0))}onDocumentMouseMove(t){let e=this.chart,i=e.tooltip,s=this.chartPosition,r=this.normalize(t,s);!s||e.isInsidePlot(r.chartX-e.plotLeft,r.chartY-e.plotTop,{visiblePlotOnly:!0})||i&&i.shouldStickOnContact(r)||r.target!==e.container.ownerDocument&&this.inClass(r.target,\"highcharts-tracker\")||this.reset()}onDocumentMouseUp(t){o[y(S.hoverChartIndex,-1)]?.pointer?.drop(t)}pinch(t){let e=this,{chart:i,hasZoom:s,lastTouches:r}=e,o=[].map.call(t.touches||[],t=>e.normalize(t)),n=o.length,a=1===n&&(e.inClass(t.target,\"highcharts-tracker\")&&i.runTrackerClick||e.runChartClick),h=i.tooltip,l=1===n&&y(h?.options.followTouchMove,!0);n>1?e.initiated=!0:l&&(e.initiated=!1),s&&e.initiated&&!a&&!1!==t.cancelable&&t.preventDefault(),\"touchstart\"===t.type?(e.pinchDown=o,e.res=!0,i.mouseDownX=t.chartX):l?this.runPointActions(e.normalize(t)):r&&(u(i,\"touchpan\",{originalEvent:t,touches:o},()=>{let e=t=>{let e=t[0],i=t[1]||e;return{x:e.chartX,y:e.chartY,width:i.chartX-e.chartX,height:i.chartY-e.chartY}};i.transform({axes:i.axes.filter(t=>t.zoomEnabled&&(this.zoomHor&&t.horiz||this.zoomVert&&!t.horiz)),to:e(o),from:e(r),trigger:t.type})}),e.res&&(e.res=!1,this.reset(!1,0))),e.lastTouches=o}reset(t,e){let i=this.chart,s=i.hoverSeries,r=i.hoverPoint,o=i.hoverPoints,n=i.tooltip,a=n&&n.shared?o:r;t&&a&&v(a).forEach(function(e){e.series.isCartesian&&void 0===e.plotX&&(t=!1)}),t?n&&a&&v(a).length&&(n.refresh(a),n.shared&&o?o.forEach(function(t){t.setState(t.state,!0),t.series.isCartesian&&(t.series.xAxis.crosshair&&t.series.xAxis.drawCrosshair(null,t),t.series.yAxis.crosshair&&t.series.yAxis.drawCrosshair(null,t))}):r&&(r.setState(r.state,!0),i.axes.forEach(function(t){t.crosshair&&r.series[t.coll]===t&&t.drawCrosshair(null,r)}))):(r&&r.onMouseOut(),o&&o.forEach(function(t){t.setState()}),s&&s.onMouseOut(),n&&n.hide(e),this.unDocMouseMove&&(this.unDocMouseMove=this.unDocMouseMove()),i.axes.forEach(function(t){t.hideCrosshair()}),i.hoverPoints=i.hoverPoint=void 0)}runPointActions(t,e,i){let s=this.chart,r=s.series,n=s.tooltip&&s.tooltip.options.enabled?s.tooltip:void 0,a=!!n&&n.shared,l=e||s.hoverPoint,d=l&&l.series||s.hoverSeries,c=(!t||\"touchmove\"!==t.type)&&(!!e||d&&d.directTouch&&this.isDirectTouch),u=this.getHoverData(l,d,r,c,a,t);l=u.hoverPoint,d=u.hoverSeries;let g=u.hoverPoints,f=d&&d.tooltipOptions.followPointer&&!d.tooltipOptions.split,m=a&&d&&!d.noSharedTooltip;if(l&&(i||l!==s.hoverPoint||n&&n.isHidden)){if((s.hoverPoints||[]).forEach(function(t){-1===g.indexOf(t)&&t.setState()}),s.hoverSeries!==d&&d.onMouseOver(),this.applyInactiveState(g),(g||[]).forEach(function(t){t.setState(\"hover\")}),s.hoverPoint&&s.hoverPoint.firePointEvent(\"mouseOut\"),!l.series)return;s.hoverPoints=g,s.hoverPoint=l,l.firePointEvent(\"mouseOver\",void 0,()=>{n&&l&&n.refresh(m?g:l,t)})}else if(f&&n&&!n.isHidden){let e=n.getAnchor([{}],t);s.isInsidePlot(e[0],e[1],{visiblePlotOnly:!0})&&n.updatePosition({plotX:e[0],plotY:e[1]})}this.unDocMouseMove||(this.unDocMouseMove=h(s.container.ownerDocument,\"mousemove\",t=>o[S.hoverChartIndex??-1]?.pointer?.onDocumentMouseMove(t)),this.eventsToUnbind.push(this.unDocMouseMove)),s.axes.forEach(function(e){let i;let r=y((e.crosshair||{}).snap,!0);!r||(i=s.hoverPoint)&&i.series[e.coll]===e||(i=p(g,t=>t.series&&t.series[e.coll]===e)),i||!r?e.drawCrosshair(t,i):e.hideCrosshair()})}setDOMEvents(){let t=this.chart.container,e=t.ownerDocument;t.onmousedown=this.onContainerMouseDown.bind(this),t.onmousemove=this.onContainerMouseMove.bind(this),t.onclick=this.onContainerClick.bind(this),this.eventsToUnbind.push(h(t,\"mouseenter\",this.onContainerMouseEnter.bind(this)),h(t,\"mouseleave\",this.onContainerMouseLeave.bind(this))),S.unbindDocumentMouseUp||(S.unbindDocumentMouseUp=h(e,\"mouseup\",this.onDocumentMouseUp.bind(this)));let i=this.chart.renderTo.parentElement;for(;i&&\"BODY\"!==i.tagName;)this.eventsToUnbind.push(h(i,\"scroll\",()=>{delete this.chartPosition})),i=i.parentElement;this.eventsToUnbind.push(h(t,\"touchstart\",this.onContainerTouchStart.bind(this),{passive:!1}),h(t,\"touchmove\",this.onContainerTouchMove.bind(this),{passive:!1})),S.unbindDocumentTouchEnd||(S.unbindDocumentTouchEnd=h(e,\"touchend\",this.onDocumentTouchEnd.bind(this),{passive:!1})),this.setPointerCapture(),h(this.chart,\"redraw\",this.setPointerCapture.bind(this))}setPointerCapture(){if(!a)return;let t=this.pointerCaptureEventsToUnbind,e=this.chart,i=e.container,s=y(e.options.tooltip?.followTouchMove,!0)&&e.series.some(t=>t.options.findNearestPointBy.indexOf(\"y\")>-1);!this.hasPointerCapture&&s?(t.push(h(i,\"pointerdown\",t=>{t.target?.hasPointerCapture(t.pointerId)&&t.target?.releasePointerCapture(t.pointerId)}),h(i,\"pointermove\",t=>{e.pointer?.getPointFromEvent(t)?.onMouseOver(t)})),e.styledMode||d(i,{\"touch-action\":\"none\"}),i.className+=\" highcharts-no-touch-action\",this.hasPointerCapture=!0):this.hasPointerCapture&&!s&&(t.forEach(t=>t()),t.length=0,e.styledMode||d(i,{\"touch-action\":y(e.options.chart.style?.[\"touch-action\"],\"manipulation\")}),i.className=i.className.replace(\" highcharts-no-touch-action\",\"\"),this.hasPointerCapture=!1)}setHoverChartIndex(t){let i=this.chart,s=e.charts[y(S.hoverChartIndex,-1)];if(s&&s!==i){let e={relatedTarget:i.container};t&&!t?.relatedTarget&&(t={...e,...t}),s.pointer?.onContainerMouseLeave(t||e)}s&&s.mouseIsDown||(S.hoverChartIndex=i.index)}touch(t,e){let i;let{chart:s,pinchDown:r=[]}=this;this.setHoverChartIndex(),1===(t=this.normalize(t)).touches.length?s.isInsidePlot(t.chartX-s.plotLeft,t.chartY-s.plotTop,{visiblePlotOnly:!0})&&!s.openMenu?(e&&this.runPointActions(t),\"touchmove\"===t.type&&(i=!!r[0]&&Math.pow(r[0].chartX-t.chartX,2)+Math.pow(r[0].chartY-t.chartY,2)>=16),y(i,!0)&&this.pinch(t)):e&&this.reset():2===t.touches.length&&this.pinch(t)}touchSelect(t){return!!(this.chart.zooming.singleTouch&&t.touches&&1===t.touches.length)}zoomOption(t){let e=this.chart,i=e.inverted,s=e.zooming.type||\"\",r,o;/touch/.test(t.type)&&(s=y(e.zooming.pinchType,s)),this.zoomX=r=/x/.test(s),this.zoomY=o=/y/.test(s),this.zoomHor=r&&!i||o&&i,this.zoomVert=o&&!i||r&&i,this.hasZoom=r||o}}return(s=S||(S={})).compose=function(t){b(n,\"Core.Pointer\")&&h(t,\"beforeRender\",function(){this.pointer=new s(this,this.options)})},S}),i(e,\"Core/Legend/LegendSymbol.js\",[e[\"Core/Utilities.js\"]],function(t){var e;let{extend:i,merge:s,pick:r}=t;return function(t){function e(t,e,o){let n=this.legendItem=this.legendItem||{},{chart:a,options:h}=this,{baseline:l=0,symbolWidth:d,symbolHeight:c}=t,p=this.symbol||\"circle\",u=c/2,g=a.renderer,f=n.group,m=l-Math.round(c*(o?.4:.3)),x={},y,b=h.marker,v=0;if(a.styledMode||(x[\"stroke-width\"]=Math.min(h.lineWidth||0,24),h.dashStyle?x.dashstyle=h.dashStyle:\"square\"===h.linecap||(x[\"stroke-linecap\"]=\"round\")),n.line=g.path().addClass(\"highcharts-graph\").attr(x).add(f),o&&(n.area=g.path().addClass(\"highcharts-area\").add(f)),x[\"stroke-linecap\"]&&(v=Math.min(n.line.strokeWidth(),d)/2),d){let t=[[\"M\",v,m],[\"L\",d-v,m]];n.line.attr({d:t}),n.area?.attr({d:[...t,[\"L\",d-v,l],[\"L\",v,l]]})}if(b&&!1!==b.enabled&&d){let t=Math.min(r(b.radius,u),u);0===p.indexOf(\"url\")&&(b=s(b,{width:c,height:c}),t=0),n.symbol=y=g.symbol(p,d/2-t,m-t,2*t,2*t,i({context:\"legend\"},b)).addClass(\"highcharts-point\").add(f),y.isMarker=!0}}t.areaMarker=function(t,i){e.call(this,t,i,!0)},t.lineMarker=e,t.rectangle=function(t,e){let i=e.legendItem||{},s=t.options,o=t.symbolHeight,n=s.squareSymbol,a=n?o:t.symbolWidth;i.symbol=this.chart.renderer.rect(n?(t.symbolWidth-o)/2:0,t.baseline-o+1,a,o,r(t.options.symbolRadius,o/2)).addClass(\"highcharts-point\").attr({zIndex:3}).add(i.group)}}(e||(e={})),e}),i(e,\"Core/Series/SeriesDefaults.js\",[],function(){return{lineWidth:2,allowPointSelect:!1,crisp:!0,showCheckbox:!1,animation:{duration:1e3},enableMouseTracking:!0,events:{},marker:{enabledThreshold:2,lineColor:\"#ffffff\",lineWidth:0,radius:4,states:{normal:{animation:!0},hover:{animation:{duration:150},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:\"#cccccc\",lineColor:\"#000000\",lineWidth:2}}},point:{events:{}},dataLabels:{animation:{},align:\"center\",borderWidth:0,defer:!0,formatter:function(){let{numberFormatter:t}=this.series.chart;return\"number\"!=typeof this.y?\"\":t(this.y,-1)},padding:5,style:{fontSize:\"0.7em\",fontWeight:\"bold\",color:\"contrast\",textOutline:\"1px contrast\"},verticalAlign:\"bottom\",x:0,y:0},cropThreshold:300,opacity:1,pointRange:0,softThreshold:!0,states:{normal:{animation:!0},hover:{animation:{duration:150},lineWidthPlus:1,marker:{},halo:{size:10,opacity:.25}},select:{animation:{duration:0}},inactive:{animation:{duration:150},opacity:.2}},stickyTracking:!0,turboThreshold:1e3,findNearestPointBy:\"x\"}}),i(e,\"Core/Series/SeriesRegistry.js\",[e[\"Core/Globals.js\"],e[\"Core/Defaults.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){var r;let{defaultOptions:o}=e,{extend:n,extendClass:a,merge:h}=s;return function(e){function s(t,s){let r=o.plotOptions||{},n=s.defaultOptions,a=s.prototype;return a.type=t,a.pointClass||(a.pointClass=i),!e.seriesTypes[t]&&(n&&(r[t]=n),e.seriesTypes[t]=s,!0)}e.seriesTypes=t.seriesTypes,e.registerSeriesType=s,e.seriesType=function(t,r,l,d,c){let p=o.plotOptions||{};if(r=r||\"\",p[t]=h(p[r],l),delete e.seriesTypes[t],s(t,a(e.seriesTypes[r]||function(){},d)),e.seriesTypes[t].prototype.type=t,c){class s extends i{}n(s.prototype,c),e.seriesTypes[t].prototype.pointClass=s}return e.seriesTypes[t]}}(r||(r={})),r}),i(e,\"Core/Series/Series.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Defaults.js\"],e[\"Core/Foundation.js\"],e[\"Core/Globals.js\"],e[\"Core/Legend/LegendSymbol.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Series/SeriesDefaults.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Renderer/SVG/SVGElement.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o,n,a,h,l){let{animObject:d,setAnimation:c}=t,{defaultOptions:p}=e,{registerEventOptions:u}=i,{svg:g,win:f}=s,{seriesTypes:m}=a,{arrayMax:x,arrayMin:y,clamp:b,correctFloat:v,crisp:S,defined:C,destroyObjectProperties:k,diffObjects:M,erase:w,error:A,extend:T,find:P,fireEvent:L,getClosestDistance:O,getNestedProperty:D,insertItem:E,isArray:I,isNumber:j,isString:B,merge:R,objectEach:z,pick:N,removeEvent:W,splat:G,syncTimeout:H}=l;class X{constructor(){this.zoneAxis=\"y\"}init(t,e){let i;L(this,\"init\",{options:e});let s=this,r=t.series;this.eventsToUnbind=[],s.chart=t,s.options=s.setOptions(e);let o=s.options,n=!1!==o.visible;s.linkedSeries=[],s.bindAxes(),T(s,{name:o.name,state:\"\",visible:n,selected:!0===o.selected}),u(this,o);let a=o.events;(a&&a.click||o.point&&o.point.events&&o.point.events.click||o.allowPointSelect)&&(t.runTrackerClick=!0),s.getColor(),s.getSymbol(),s.parallelArrays.forEach(function(t){s[t+\"Data\"]||(s[t+\"Data\"]=[])}),s.isCartesian&&(t.hasCartesianSeries=!0),r.length&&(i=r[r.length-1]),s._i=N(i&&i._i,-1)+1,s.opacity=s.options.opacity,t.orderItems(\"series\",E(this,r)),o.dataSorting&&o.dataSorting.enabled?s.setDataSortingOptions():s.points||s.data||s.setData(o.data,!1),L(this,\"afterInit\")}is(t){return m[t]&&this instanceof m[t]}bindAxes(){let t;let e=this,i=e.options,s=e.chart;L(this,\"bindAxes\",null,function(){(e.axisTypes||[]).forEach(function(r){(s[r]||[]).forEach(function(s){t=s.options,(N(i[r],0)===s.index||void 0!==i[r]&&i[r]===t.id)&&(E(e,s.series),e[r]=s,s.isDirty=!0)}),e[r]||e.optionalAxis===r||A(18,!0,s)})}),L(this,\"afterBindAxes\")}updateParallelArrays(t,e,i){let s=t.series,r=j(e)?function(i){let r=\"y\"===i&&s.toYData?s.toYData(t):t[i];s[i+\"Data\"][e]=r}:function(t){Array.prototype[e].apply(s[t+\"Data\"],i)};s.parallelArrays.forEach(r)}hasData(){return this.visible&&void 0!==this.dataMax&&void 0!==this.dataMin||this.visible&&this.yData&&this.yData.length>0}hasMarkerChanged(t,e){let i=t.marker,s=e.marker||{};return i&&(s.enabled&&!i.enabled||s.symbol!==i.symbol||s.height!==i.height||s.width!==i.width)}autoIncrement(t){let e=this.options,i=e.pointIntervalUnit,s=e.relativeXValue,r=this.chart.time,o=this.xIncrement,n,a;return(o=N(o,e.pointStart,0),this.pointInterval=a=N(this.pointInterval,e.pointInterval,1),s&&j(t)&&(a*=t),i&&(n=new r.Date(o),\"day\"===i?r.set(\"Date\",n,r.get(\"Date\",n)+a):\"month\"===i?r.set(\"Month\",n,r.get(\"Month\",n)+a):\"year\"===i&&r.set(\"FullYear\",n,r.get(\"FullYear\",n)+a),a=n.getTime()-o),s&&j(t))?o+a:(this.xIncrement=o+a,o)}setDataSortingOptions(){let t=this.options;T(this,{requireSorting:!1,sorted:!1,enabledDataSorting:!0,allowDG:!1}),C(t.pointRange)||(t.pointRange=1)}setOptions(t){let e;let i=this.chart,s=i.options.plotOptions,r=i.userOptions||{},o=R(t),n=i.styledMode,a={plotOptions:s,userOptions:o};L(this,\"setOptions\",a);let h=a.plotOptions[this.type],l=r.plotOptions||{},d=l.series||{},c=p.plotOptions[this.type]||{},u=l[this.type]||{};this.userOptions=a.userOptions;let g=R(h,s.series,u,o);this.tooltipOptions=R(p.tooltip,p.plotOptions.series?.tooltip,c?.tooltip,i.userOptions.tooltip,l.series?.tooltip,u.tooltip,o.tooltip),this.stickyTracking=N(o.stickyTracking,u.stickyTracking,d.stickyTracking,!!this.tooltipOptions.shared&&!this.noSharedTooltip||g.stickyTracking),null===h.marker&&delete g.marker,this.zoneAxis=g.zoneAxis||\"y\";let f=this.zones=(g.zones||[]).map(t=>({...t}));return(g.negativeColor||g.negativeFillColor)&&!g.zones&&(e={value:g[this.zoneAxis+\"Threshold\"]||g.threshold||0,className:\"highcharts-negative\"},n||(e.color=g.negativeColor,e.fillColor=g.negativeFillColor),f.push(e)),f.length&&C(f[f.length-1].value)&&f.push(n?{}:{color:this.color,fillColor:this.fillColor}),L(this,\"afterSetOptions\",{options:g}),g}getName(){return N(this.options.name,\"Series \"+(this.index+1))}getCyclic(t,e,i){let s,r;let o=this.chart,n=`${t}Index`,a=`${t}Counter`,h=i?.length||o.options.chart.colorCount;!e&&(C(r=N(\"color\"===t?this.options.colorIndex:void 0,this[n]))?s=r:(o.series.length||(o[a]=0),s=o[a]%h,o[a]+=1),i&&(e=i[s])),void 0!==s&&(this[n]=s),this[t]=e}getColor(){this.chart.styledMode?this.getCyclic(\"color\"):this.options.colorByPoint?this.color=\"#cccccc\":this.getCyclic(\"color\",this.options.color||p.plotOptions[this.type].color,this.chart.options.colors)}getPointsCollection(){return(this.hasGroupedData?this.points:this.data)||[]}getSymbol(){let t=this.options.marker;this.getCyclic(\"symbol\",t.symbol,this.chart.options.symbols)}findPointIndex(t,e){let i,s,r;let n=t.id,a=t.x,h=this.points,l=this.options.dataSorting;if(n){let t=this.chart.get(n);t instanceof o&&(i=t)}else if(this.linkedParent||this.enabledDataSorting||this.options.relativeXValue){let e=e=>!e.touched&&e.index===t.index;if(l&&l.matchByName?e=e=>!e.touched&&e.name===t.name:this.options.relativeXValue&&(e=e=>!e.touched&&e.options.x===t.x),!(i=P(h,e)))return}return i&&void 0!==(r=i&&i.index)&&(s=!0),void 0===r&&j(a)&&(r=this.xData.indexOf(a,e)),-1!==r&&void 0!==r&&this.cropped&&(r=r>=this.cropStart?r-this.cropStart:r),!s&&j(r)&&h[r]&&h[r].touched&&(r=void 0),r}updateData(t,e){let i=this.options,s=i.dataSorting,r=this.points,o=[],n=this.requireSorting,a=t.length===r.length,h,l,d,c,p=!0;if(this.xIncrement=null,t.forEach(function(t,e){let l;let d=C(t)&&this.pointClass.prototype.optionsToObject.call({series:this},t)||{},p=d.x;d.id||j(p)?(-1===(l=this.findPointIndex(d,c))||void 0===l?o.push(t):r[l]&&t!==i.data[l]?(r[l].update(t,!1,null,!1),r[l].touched=!0,n&&(c=l+1)):r[l]&&(r[l].touched=!0),(!a||e!==l||s&&s.enabled||this.hasDerivedData)&&(h=!0)):o.push(t)},this),h)for(l=r.length;l--;)(d=r[l])&&!d.touched&&d.remove&&d.remove(!1,e);else!a||s&&s.enabled?p=!1:(t.forEach(function(t,e){t===r[e].y||r[e].destroyed||r[e].update(t,!1,null,!1)}),o.length=0);return r.forEach(function(t){t&&(t.touched=!1)}),!!p&&(o.forEach(function(t){this.addPoint(t,!1,null,null,!1)},this),null===this.xIncrement&&this.xData&&this.xData.length&&(this.xIncrement=x(this.xData),this.autoIncrement()),!0)}setData(t,e=!0,i,s){let r=this,o=r.points,n=o&&o.length||0,a=r.options,h=r.chart,l=a.dataSorting,d=r.xAxis,c=a.turboThreshold,p=this.xData,u=this.yData,g=r.pointArrayMap,f=g&&g.length,m=a.keys,x,y,b,v=0,S=1,C;h.options.chart.allowMutatingData||(a.data&&delete r.options.data,r.userOptions.data&&delete r.userOptions.data,C=R(!0,t));let k=(t=C||t||[]).length;if(l&&l.enabled&&(t=this.sortData(t)),h.options.chart.allowMutatingData&&!1!==s&&k&&n&&!r.cropped&&!r.hasGroupedData&&r.visible&&!r.boosted&&(b=this.updateData(t,i)),!b){r.xIncrement=null,r.colorCounter=0,this.parallelArrays.forEach(function(t){r[t+\"Data\"].length=0});let e=c&&k>c;if(e){let i=r.getFirstValidPoint(t),s=r.getFirstValidPoint(t,k-1,-1),o=t=>!!(I(t)&&(m||j(t[0])));if(j(i)&&j(s))for(x=0;x=0?v:0,S=S>=0?S:1),1===i.length&&(S=0),v===S)for(x=0;x{let s=D(i,t),r=D(i,e);return rs?1:0}).forEach(function(t,e){t.x=e},this),e.linkedSeries&&e.linkedSeries.forEach(function(e){let i=e.options,r=i.data;i.dataSorting&&i.dataSorting.enabled||!r||(r.forEach(function(i,o){r[o]=s(e,i),t[o]&&(r[o].x=t[o].x,r[o].index=o)}),e.setData(r,!1))}),t}getProcessedData(t){let e=this,i=e.xAxis,s=e.options.cropThreshold,r=i?.logarithmic,o=e.isCartesian,n,a,h=0,l,d,c,p=e.xData,u=e.yData,g=!1,f=p.length;i&&(d=(l=i.getExtremes()).min,c=l.max,g=!!(i.categories&&!i.names.length)),o&&e.sorted&&!t&&(!s||f>s||e.forceCrop)&&(p[f-1]c?(p=[],u=[]):e.yData&&(p[0]c)&&(p=(n=this.cropData(e.xData,e.yData,d,c)).xData,u=n.yData,h=n.start,a=!0));let m=O([r?p.map(r.log2lin):p],()=>e.requireSorting&&!g&&A(15,!1,e.chart));return{xData:p,yData:u,cropped:a,cropStart:h,closestPointRange:m}}processData(t){let e=this.xAxis;if(this.isCartesian&&!this.isDirty&&!e.isDirty&&!this.yAxis.isDirty&&!t)return!1;let i=this.getProcessedData();this.cropped=i.cropped,this.cropStart=i.cropStart,this.processedXData=i.xData,this.processedYData=i.yData,this.closestPointRange=this.basePointRange=i.closestPointRange,L(this,\"afterProcessData\")}cropData(t,e,i,s){let r=t.length,o,n,a=0,h=r;for(o=0;o=i){a=Math.max(0,o-1);break}for(n=o;ns){h=n+1;break}return{xData:t.slice(a,h),yData:e.slice(a,h),start:a,end:h}}generatePoints(){let t=this.options,e=this.processedData||t.data,i=this.processedXData,s=this.processedYData,r=this.pointClass,o=i.length,n=this.cropStart||0,a=this.hasGroupedData,h=t.keys,l=[],d=t.dataGrouping&&t.dataGrouping.groupAll?n:0,c,p,u,g,f=this.data;if(!f&&!a){let t=[];t.length=e.length,f=this.data=t}for(h&&a&&(this.options.keys=!1),g=0;g0:g.length)||!n),p=e||this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||!i||(k[f+o]||u)>=b&&(k[f-o]||u)<=v,c&&p){if(m=g.length)for(;m--;)j(g[m])&&(r[S++]=g[m]);else r[S++]=g}let M={activeYData:r,dataMin:y(r),dataMax:x(r)};return L(this,\"afterGetExtremes\",{dataExtremes:M}),M}applyExtremes(){let t=this.getExtremes();return this.dataMin=t.dataMin,this.dataMax=t.dataMax,t}getFirstValidPoint(t,e=0,i=1){let s=t.length,r=e;for(;r>=0&&r1)&&(o.step=function(t,e){i&&i.apply(e,arguments),\"width\"===e.prop&&h?.element&&h.attr(r?\"height\":\"width\",t+99)}),a.addClass(\"highcharts-animating\").animate(t,o)}}afterAnimate(){this.setClip(),z(this.chart.sharedClips,(t,e,i)=>{t&&!this.chart.container.querySelector(`[clip-path=\"url(#${t.id})\"]`)&&(t.destroy(),delete i[e])}),this.finishedAnimating=!0,L(this,\"afterAnimate\")}drawPoints(t=this.points){let e,i,s,r,o,n,a;let h=this.chart,l=h.styledMode,{colorAxis:d,options:c}=this,p=c.marker,u=this[this.specialGroup||\"markerGroup\"],g=this.xAxis,f=N(p.enabled,!g||!!g.isRadial||null,this.closestPointRangePx>=p.enabledThreshold*p.radius);if(!1!==p.enabled||this._hasPointMarkers)for(e=0;e0||i.hasImage)&&(i.graphic=s=h.renderer.symbol(t,a.x,a.y,a.width,a.height,n?o:p).add(u),this.enabledDataSorting&&h.hasRendered&&(s.attr({x:i.startXPos}),r=\"animate\")),s&&\"animate\"===r&&s[e?\"show\":\"hide\"](e).animate(a),s){let t=this.pointAttribs(i,l||!i.selected?void 0:\"select\");l?d&&s.css({fill:t.fill}):s[r](t)}s&&s.addClass(i.getClassName(),!0)}else s&&(i.graphic=s.destroy())}markerAttribs(t,e){let i=this.options,s=i.marker,r=t.marker||{},o=r.symbol||s.symbol,n={},a,h,l=N(r.radius,s&&s.radius);e&&(a=s.states[e],l=N((h=r.states&&r.states[e])&&h.radius,a&&a.radius,l&&l+(a&&a.radiusPlus||0))),t.hasImage=o&&0===o.indexOf(\"url\"),t.hasImage&&(l=0);let d=t.pos();return j(l)&&d&&(i.crisp&&(d[0]=S(d[0],t.hasImage?0:\"rect\"===o?s?.lineWidth||0:1)),n.x=d[0]-l,n.y=d[1]-l),l&&(n.width=n.height=2*l),n}pointAttribs(t,e){let i=this.options.marker,s=t&&t.options,r=s&&s.marker||{},o=s&&s.color,n=t&&t.color,a=t&&t.zone&&t.zone.color,h,l,d=this.color,c,p,u=N(r.lineWidth,i.lineWidth),g=1;return d=o||a||n||d,c=r.fillColor||i.fillColor||d,p=r.lineColor||i.lineColor||d,e=e||\"normal\",h=i.states[e]||{},u=N((l=r.states&&r.states[e]||{}).lineWidth,h.lineWidth,u+N(l.lineWidthPlus,h.lineWidthPlus,0)),c=l.fillColor||h.fillColor||c,{stroke:p=l.lineColor||h.lineColor||p,\"stroke-width\":u,fill:c,opacity:g=N(l.opacity,h.opacity,g)}}destroy(t){let e,i,s;let r=this,o=r.chart,n=/AppleWebKit\\/533/.test(f.navigator.userAgent),a=r.data||[];for(L(r,\"destroy\",{keepEventsForUpdate:t}),this.removeEvents(t),(r.axisTypes||[]).forEach(function(t){(s=r[t])&&s.series&&(w(s.series,r),s.isDirty=s.forceRedraw=!0)}),r.legendItem&&r.chart.legend.destroyItem(r),e=a.length;e--;)(i=a[e])&&i.destroy&&i.destroy();for(let t of r.zones)k(t,void 0,!0);l.clearTimeout(r.animationTimeout),z(r,function(t,e){t instanceof h&&!t.survive&&t[n&&\"group\"===e?\"hide\":\"destroy\"]()}),o.hoverSeries===r&&(o.hoverSeries=void 0),w(o.series,r),o.orderItems(\"series\"),z(r,function(e,i){t&&\"hcEvents\"===i||delete r[i]})}applyZones(){let{area:t,chart:e,graph:i,zones:s,points:r,xAxis:o,yAxis:n,zoneAxis:a}=this,{inverted:h,renderer:l}=e,d=this[`${a}Axis`],{isXAxis:c,len:p=0}=d||{},u=(i?.strokeWidth()||0)/2+1,g=(t,e=0,i=0)=>{h&&(i=p-i);let{translated:s=0,lineClip:r}=t,o=i-s;r?.push([\"L\",e,Math.abs(o){t.forEach((e,i)=>{(\"M\"===e[0]||\"L\"===e[0])&&(t[i]=[e[0],c?p-e[1]:e[1],c?e[2]:p-e[2]])})};if(s.forEach(t=>{t.lineClip=[],t.translated=b(d.toPixels(N(t.value,e),!0)||0,0,p)}),i&&!this.showLine&&i.hide(),t&&t.hide(),\"y\"===a&&r.length{let s=e.lineClip||[],r=Math.round(e.translated||0);o.reversed&&s.reverse();let{clip:a,simpleClip:d}=e,p=0,g=0,x=o.len,y=n.len;c?(p=r,x=m):(g=r,y=m);let b=[[\"M\",p,g],[\"L\",x,g],[\"L\",x,y],[\"L\",p,y],[\"Z\"]],v=[b[0],...s,b[1],b[2],...f,b[3],b[4]];f=s.reverse(),m=r,h&&(u(v),t&&u(b)),a?(a.animate({d:v}),d?.animate({d:b})):(a=e.clip=l.path(v),t&&(d=e.simpleClip=l.path(b))),i&&e.graph?.clip(a),t&&e.area?.clip(d)})}else this.visible&&(i&&i.show(),t&&t.show())}plotGroup(t,e,i,s,r){let o=this[t],n=!o,a={visibility:i,zIndex:s||.1};return C(this.opacity)&&!this.chart.styledMode&&\"inactive\"!==this.state&&(a.opacity=this.opacity),o||(this[t]=o=this.chart.renderer.g().add(r)),o.addClass(\"highcharts-\"+e+\" highcharts-series-\"+this.index+\" highcharts-\"+this.type+\"-series \"+(C(this.colorIndex)?\"highcharts-color-\"+this.colorIndex+\" \":\"\")+(this.options.className||\"\")+(o.hasClass(\"highcharts-tracker\")?\" highcharts-tracker\":\"\"),!0),o.attr(a)[n?\"attr\":\"animate\"](this.getPlotBox(e)),o}getPlotBox(t){let e=this.xAxis,i=this.yAxis,s=this.chart,r=s.inverted&&!s.polar&&e&&this.invertible&&\"series\"===t;return s.inverted&&(e=i,i=this.xAxis),{translateX:e?e.left:s.plotLeft,translateY:i?i.top:s.plotTop,rotation:r?90:0,rotationOriginX:r?(e.len-i.len)/2:0,rotationOriginY:r?(e.len+i.len)/2:0,scaleX:r?-1:1,scaleY:1}}removeEvents(t){let{eventsToUnbind:e}=this;t||W(this),e.length&&(e.forEach(t=>{t()}),e.length=0)}render(){let t=this,{chart:e,options:i,hasRendered:s}=t,r=d(i.animation),o=t.visible?\"inherit\":\"hidden\",n=i.zIndex,a=e.seriesGroup,h=t.finishedAnimating?0:r.duration;L(this,\"render\"),t.plotGroup(\"group\",\"series\",o,n,a),t.markerGroup=t.plotGroup(\"markerGroup\",\"markers\",o,n,a),!1!==i.clip&&t.setClip(),h&&t.animate?.(!0),t.drawGraph&&(t.drawGraph(),t.applyZones()),t.visible&&t.drawPoints(),t.drawDataLabels?.(),t.redrawPoints?.(),i.enableMouseTracking&&t.drawTracker?.(),h&&t.animate?.(),s||(h&&r.defer&&(h+=r.defer),t.animationTimeout=H(()=>{t.afterAnimate()},h||0)),t.isDirty=!1,t.hasRendered=!0,L(t,\"afterRender\")}redraw(){let t=this.isDirty||this.isDirtyData;this.translate(),this.render(),t&&delete this.kdTree}reserveSpace(){return this.visible||!this.chart.options.chart.ignoreHiddenSeries}searchPoint(t,e){let{xAxis:i,yAxis:s}=this,r=this.chart.inverted;return this.searchKDTree({clientX:r?i.len-t.chartY+i.pos:t.chartX-i.pos,plotY:r?s.len-t.chartX+s.pos:t.chartY-s.pos},e,t)}buildKDTree(t){this.buildingKdTree=!0;let e=this,i=e.options.findNearestPointBy.indexOf(\"y\")>-1?2:1;delete e.kdTree,H(function(){e.kdTree=function t(i,s,r){let o,n;let a=i?.length;if(a)return o=e.kdAxisArray[s%r],i.sort((t,e)=>(t[o]||0)-(e[o]||0)),{point:i[n=Math.floor(a/2)],left:t(i.slice(0,n),s+1,r),right:t(i.slice(n+1),s+1,r)}}(e.getValidPoints(void 0,!e.directTouch),i,i),e.buildingKdTree=!1},e.options.kdNow||t?.type===\"touchstart\"?0:1)}searchKDTree(t,e,i){let s=this,[r,o]=this.kdAxisArray,n=e?\"distX\":\"dist\",a=(s.options.findNearestPointBy||\"\").indexOf(\"y\")>-1?2:1,h=!!s.isBubble;if(this.kdTree||this.buildingKdTree||this.buildKDTree(i),this.kdTree)return function t(e,i,a,l){let d=i.point,c=s.kdAxisArray[a%l],p,u,g=d;!function(t,e){let i=t[r],s=e[r],n=C(i)&&C(s)?i-s:null,a=t[o],l=e[o],d=C(a)&&C(l)?a-l:0,c=h&&e.marker?.radius||0;e.dist=Math.sqrt((n&&n*n||0)+d*d)-c,e.distX=C(n)?Math.abs(n)-c:Number.MAX_VALUE}(e,d);let f=(e[c]||0)-(d[c]||0)+(h&&d.marker?.radius||0),m=f<0?\"left\":\"right\",x=f<0?\"right\":\"left\";return i[m]&&(g=(p=t(e,i[m],a+1,l))[n]=0&&o<=(s?s.len:e.plotHeight)&&r>=0&&r<=(i?i.len:e.plotWidth)}drawTracker(){let t=this,e=t.options,i=e.trackByArea,s=[].concat((i?t.areaPath:t.graphPath)||[]),r=t.chart,o=r.pointer,n=r.renderer,a=r.options.tooltip?.snap||0,h=()=>{e.enableMouseTracking&&r.hoverSeries!==t&&t.onMouseOver()},l=\"rgba(192,192,192,\"+(g?1e-4:.002)+\")\",d=t.tracker;d?d.attr({d:s}):t.graph&&(t.tracker=d=n.path(s).attr({visibility:t.visible?\"inherit\":\"hidden\",zIndex:2}).addClass(i?\"highcharts-tracker-area\":\"highcharts-tracker-line\").add(t.group),r.styledMode||d.attr({\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",stroke:l,fill:i?l:\"none\",\"stroke-width\":t.graph.strokeWidth()+(i?0:2*a)}),[t.tracker,t.markerGroup,t.dataLabelsGroup].forEach(t=>{t&&(t.addClass(\"highcharts-tracker\").on(\"mouseover\",h).on(\"mouseout\",t=>{o?.onTrackerMouseOut(t)}),e.cursor&&!r.styledMode&&t.css({cursor:e.cursor}),t.on(\"touchstart\",h))})),L(this,\"afterDrawTracker\")}addPoint(t,e,i,s,r){let o,n;let a=this.options,h=this.data,l=this.chart,d=this.xAxis,c=d&&d.hasNames&&d.names,p=a.data,u=this.xData;e=N(e,!0);let g={series:this};this.pointClass.prototype.applyOptions.apply(g,[t]);let f=g.x;if(n=u.length,this.requireSorting&&ff;)n--;this.updateParallelArrays(g,\"splice\",[n,0,0]),this.updateParallelArrays(g,n),c&&g.name&&(c[f]=g.name),p.splice(n,0,t),(o||this.processedData)&&(this.data.splice(n,0,null),this.processData()),\"point\"===a.legendType&&this.generatePoints(),i&&(h[0]&&h[0].remove?h[0].remove(!1):(h.shift(),this.updateParallelArrays(g,\"shift\"),p.shift())),!1!==r&&L(this,\"addPoint\",{point:g}),this.isDirty=!0,this.isDirtyData=!0,e&&l.redraw(s)}removePoint(t,e,i){let s=this,r=s.data,o=r[t],n=s.points,a=s.chart,h=function(){n&&n.length===r.length&&n.splice(t,1),r.splice(t,1),s.options.data.splice(t,1),s.updateParallelArrays(o||{series:s},\"splice\",[t,1]),o&&o.destroy(),s.isDirty=!0,s.isDirtyData=!0,e&&a.redraw()};c(i,a),e=N(e,!0),o?o.firePointEvent(\"remove\",null,h):h()}remove(t,e,i,s){let r=this,o=r.chart;function n(){r.destroy(s),o.isDirtyLegend=o.isDirtyBox=!0,o.linkSeries(s),N(t,!0)&&o.redraw(e)}!1!==i?L(r,\"remove\",null,n):n()}update(t,e){L(this,\"update\",{options:t=M(t,this.userOptions)});let i=this,s=i.chart,r=i.userOptions,o=i.initialType||i.type,n=s.options.plotOptions,a=m[o].prototype,h=i.finishedAnimating&&{animation:!1},l={},d,c,p=[\"colorIndex\",\"eventOptions\",\"navigatorSeries\",\"symbolIndex\",\"baseSeries\"],u=t.type||r.type||s.options.chart.type,g=!(this.hasDerivedData||u&&u!==this.type||void 0!==t.pointStart||void 0!==t.pointInterval||void 0!==t.relativeXValue||t.joinBy||t.mapData||[\"dataGrouping\",\"pointStart\",\"pointInterval\",\"pointIntervalUnit\",\"keys\"].some(t=>i.hasOptionChanged(t)));u=u||o,g&&(p.push(\"data\",\"isDirtyData\",\"isDirtyCanvas\",\"points\",\"processedData\",\"processedXData\",\"processedYData\",\"xIncrement\",\"cropped\",\"_hasPointMarkers\",\"hasDataLabels\",\"nodes\",\"layout\",\"level\",\"mapMap\",\"mapData\",\"minY\",\"maxY\",\"minX\",\"maxX\",\"transformGroups\"),!1!==t.visible&&p.push(\"area\",\"graph\"),i.parallelArrays.forEach(function(t){p.push(t+\"Data\")}),t.data&&(t.dataSorting&&T(i.options.dataSorting,t.dataSorting),this.setData(t.data,!1))),t=R(r,{index:void 0===r.index?i.index:r.index,pointStart:n?.series?.pointStart??r.pointStart??i.xData?.[0]},!g&&{data:i.options.data},t,h),g&&t.data&&(t.data=i.options.data),(p=[\"group\",\"markerGroup\",\"dataLabelsGroup\",\"transformGroup\"].concat(p)).forEach(function(t){p[t]=i[t],delete i[t]});let f=!1;if(m[u]){if(f=u!==i.type,i.remove(!1,!1,!1,!0),f){if(s.propFromSeries(),Object.setPrototypeOf)Object.setPrototypeOf(i,m[u].prototype);else{let t=Object.hasOwnProperty.call(i,\"hcEvents\")&&i.hcEvents;for(c in a)i[c]=void 0;T(i,m[u].prototype),t?i.hcEvents=t:delete i.hcEvents}}}else A(17,!0,s,{missingModuleFor:u});if(p.forEach(function(t){i[t]=p[t]}),i.init(s,t),g&&this.points)for(let t of(!1===(d=i.options).visible?(l.graphic=1,l.dataLabel=1):(this.hasMarkerChanged(d,r)&&(l.graphic=1),i.hasDataLabels?.()||(l.dataLabel=1)),this.points))t&&t.series&&(t.resolveColor(),Object.keys(l).length&&t.destroyElements(l),!1===d.showInLegend&&t.legendItem&&s.legend.destroyItem(t));i.initialType=o,s.linkSeries(),s.setSortedData(),f&&i.linkedSeries.length&&(i.isDirtyData=!0),L(this,\"afterUpdate\"),N(e,!0)&&s.redraw(!!g&&void 0)}setName(t){this.name=this.options.name=this.userOptions.name=t,this.chart.isDirtyLegend=!0}hasOptionChanged(t){let e=this.chart,i=this.options[t],s=e.options.plotOptions,r=this.userOptions[t],o=N(s?.[this.type]?.[t],s?.series?.[t]);return r&&!C(o)?i!==r:i!==N(o,i)}onMouseOver(){let t=this.chart,e=t.hoverSeries,i=t.pointer;i?.setHoverChartIndex(),e&&e!==this&&e.onMouseOut(),this.options.events.mouseOver&&L(this,\"mouseOver\"),this.setState(\"hover\"),t.hoverSeries=this}onMouseOut(){let t=this.options,e=this.chart,i=e.tooltip,s=e.hoverPoint;e.hoverSeries=null,s&&s.onMouseOut(),this&&t.events.mouseOut&&L(this,\"mouseOut\"),i&&!this.stickyTracking&&(!i.shared||this.noSharedTooltip)&&i.hide(),e.series.forEach(function(t){t.setState(\"\",!0)})}setState(t,e){let i=this,s=i.options,r=i.graph,o=s.inactiveOtherPoints,n=s.states,a=N(n[t||\"normal\"]&&n[t||\"normal\"].animation,i.chart.options.chart.animation),h=s.lineWidth,l=s.opacity;if(t=t||\"\",i.state!==t&&([i.group,i.markerGroup,i.dataLabelsGroup].forEach(function(e){e&&(i.state&&e.removeClass(\"highcharts-series-\"+i.state),t&&e.addClass(\"highcharts-series-\"+t))}),i.state=t,!i.chart.styledMode)){if(n[t]&&!1===n[t].enabled)return;if(t&&(h=n[t].lineWidth||h+(n[t].lineWidthPlus||0),l=N(n[t].opacity,l)),r&&!r.dashstyle&&j(h))for(let t of[r,...this.zones.map(t=>t.graph)])t?.animate({\"stroke-width\":h},a);o||[i.group,i.markerGroup,i.dataLabelsGroup,i.labelBySeries].forEach(function(t){t&&t.animate({opacity:l},a)})}e&&o&&i.points&&i.setAllPointsToState(t||void 0)}setAllPointsToState(t){this.points.forEach(function(e){e.setState&&e.setState(t)})}setVisible(t,e){let i=this,s=i.chart,r=s.options.chart.ignoreHiddenSeries,o=i.visible;i.visible=t=i.options.visible=i.userOptions.visible=void 0===t?!o:t;let n=t?\"show\":\"hide\";[\"group\",\"dataLabelsGroup\",\"markerGroup\",\"tracker\",\"tt\"].forEach(t=>{i[t]?.[n]()}),(s.hoverSeries===i||s.hoverPoint?.series===i)&&i.onMouseOut(),i.legendItem&&s.legend.colorizeItem(i,t),i.isDirty=!0,i.options.stacking&&s.series.forEach(t=>{t.options.stacking&&t.visible&&(t.isDirty=!0)}),i.linkedSeries.forEach(e=>{e.setVisible(t,!1)}),r&&(s.isDirtyBox=!0),L(i,n),!1!==e&&s.redraw()}show(){this.setVisible(!0)}hide(){this.setVisible(!1)}select(t){this.selected=t=this.options.selected=void 0===t?!this.selected:t,this.checkbox&&(this.checkbox.checked=t),L(this,t?\"select\":\"unselect\")}shouldShowTooltip(t,e,i={}){return i.series=this,i.visiblePlotOnly=!0,this.chart.isInsidePlot(t,e,i)}drawLegendSymbol(t,e){r[this.options.legendSymbol||\"rectangle\"]?.call(this,t,e)}}return X.defaultOptions=n,X.types=a.seriesTypes,X.registerType=a.registerSeriesType,T(X.prototype,{axisTypes:[\"xAxis\",\"yAxis\"],coll:\"series\",colorCounter:0,directTouch:!1,invertible:!0,isCartesian:!0,kdAxisArray:[\"clientX\",\"plotY\"],parallelArrays:[\"x\",\"y\"],pointClass:o,requireSorting:!0,sorted:!0}),a.series=X,X}),i(e,\"Core/Legend/Legend.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Foundation.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/Series.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Renderer/RendererUtilities.js\"],e[\"Core/Templating.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o,n,a){var h;let{animObject:l,setAnimation:d}=t,{registerEventOptions:c}=e,{composed:p,marginNames:u}=i,{distribute:g}=o,{format:f}=n,{addEvent:m,createElement:x,css:y,defined:b,discardElement:v,find:S,fireEvent:C,isNumber:k,merge:M,pick:w,pushUnique:A,relativeLength:T,stableSort:P,syncTimeout:L}=a;class O{constructor(t,e){this.allItems=[],this.initialItemY=0,this.itemHeight=0,this.itemMarginBottom=0,this.itemMarginTop=0,this.itemX=0,this.itemY=0,this.lastItemY=0,this.lastLineHeight=0,this.legendHeight=0,this.legendWidth=0,this.maxItemWidth=0,this.maxLegendWidth=0,this.offsetWidth=0,this.padding=0,this.pages=[],this.symbolHeight=0,this.symbolWidth=0,this.titleHeight=0,this.totalItemWidth=0,this.widthOption=0,this.chart=t,this.setOptions(e),e.enabled&&(this.render(),c(this,e),m(this.chart,\"endResize\",function(){this.legend.positionCheckboxes()})),m(this.chart,\"render\",()=>{this.options.enabled&&this.proximate&&(this.proximatePositions(),this.positionItems())})}setOptions(t){let e=w(t.padding,8);this.options=t,this.chart.styledMode||(this.itemStyle=t.itemStyle,this.itemHiddenStyle=M(this.itemStyle,t.itemHiddenStyle)),this.itemMarginTop=t.itemMarginTop,this.itemMarginBottom=t.itemMarginBottom,this.padding=e,this.initialItemY=e-5,this.symbolWidth=w(t.symbolWidth,16),this.pages=[],this.proximate=\"proximate\"===t.layout&&!this.chart.inverted,this.baseline=void 0}update(t,e){let i=this.chart;this.setOptions(M(!0,this.options,t)),\"events\"in this.options&&c(this,this.options),this.destroy(),i.isDirtyLegend=i.isDirtyBox=!0,w(e,!0)&&i.redraw(),C(this,\"afterUpdate\",{redraw:e})}colorizeItem(t,e){let{area:i,group:s,label:r,line:o,symbol:n}=t.legendItem||{};if(s?.[e?\"removeClass\":\"addClass\"](\"highcharts-legend-item-hidden\"),!this.chart.styledMode){let{itemHiddenStyle:s={}}=this,a=s.color,{fillColor:h,fillOpacity:l,lineColor:d,marker:c}=t.options,p=t=>(!e&&(t.fill&&(t.fill=a),t.stroke&&(t.stroke=a)),t);r?.css(M(e?this.itemStyle:s)),o?.attr(p({stroke:d||t.color})),n&&n.attr(p(c&&n.isMarker?t.pointAttribs():{fill:t.color})),i?.attr(p({fill:h||t.color,\"fill-opacity\":h?1:l??.75}))}C(this,\"afterColorizeItem\",{item:t,visible:e})}positionItems(){this.allItems.forEach(this.positionItem,this),this.chart.isResizing||this.positionCheckboxes()}positionItem(t){let{group:e,x:i=0,y:s=0}=t.legendItem||{},r=this.options,o=r.symbolPadding,n=!r.rtl,a=t.checkbox;if(e&&e.element){let r={translateX:n?i:this.legendWidth-i-2*o-4,translateY:s};e[b(e.translateY)?\"animate\":\"attr\"](r,void 0,()=>{C(this,\"afterPositionItem\",{item:t})})}a&&(a.x=i,a.y=s)}destroyItem(t){let e=t.checkbox,i=t.legendItem||{};for(let t of[\"group\",\"label\",\"line\",\"symbol\"])i[t]&&(i[t]=i[t].destroy());e&&v(e),t.legendItem=void 0}destroy(){for(let t of this.getAllItems())this.destroyItem(t);for(let t of[\"clipRect\",\"up\",\"down\",\"pager\",\"nav\",\"box\",\"title\",\"group\"])this[t]&&(this[t]=this[t].destroy());this.display=null}positionCheckboxes(){let t;let e=this.group&&this.group.alignAttr,i=this.clipHeight||this.legendHeight,s=this.titleHeight;e&&(t=e.translateY,this.allItems.forEach(function(r){let o;let n=r.checkbox;n&&(o=t+s+n.y+(this.scrollOffset||0)+3,y(n,{left:e.translateX+r.checkboxOffset+n.x-20+\"px\",top:o+\"px\",display:this.proximate||o>t-6&&o1.5*S?v.height:S))}layoutItem(t){let e=this.options,i=this.padding,s=\"horizontal\"===e.layout,r=t.itemHeight,o=this.itemMarginBottom,n=this.itemMarginTop,a=s?w(e.itemDistance,20):0,h=this.maxLegendWidth,l=e.alignColumns&&this.totalItemWidth>h?this.maxItemWidth:t.itemWidth,d=t.legendItem||{};s&&this.itemX-i+l>h&&(this.itemX=i,this.lastLineHeight&&(this.itemY+=n+this.lastLineHeight+o),this.lastLineHeight=0),this.lastItemY=n+this.itemY+o,this.lastLineHeight=Math.max(r,this.lastLineHeight),d.x=this.itemX,d.y=this.itemY,s?this.itemX+=l:(this.itemY+=n+r+o,this.lastLineHeight=r),this.offsetWidth=this.widthOption||Math.max((s?this.itemX-i-(t.checkbox?0:a):l)+i,this.offsetWidth)}getAllItems(){let t=[];return this.chart.series.forEach(function(e){let i=e&&e.options;e&&w(i.showInLegend,!b(i.linkedTo)&&void 0,!0)&&(t=t.concat((e.legendItem||{}).labels||(\"point\"===i.legendType?e.data:e)))}),C(this,\"afterGetAllItems\",{allItems:t}),t}getAlignment(){let t=this.options;return this.proximate?t.align.charAt(0)+\"tv\":t.floating?\"\":t.align.charAt(0)+t.verticalAlign.charAt(0)+t.layout.charAt(0)}adjustMargins(t,e){let i=this.chart,s=this.options,r=this.getAlignment();r&&[/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/].forEach(function(o,n){o.test(r)&&!b(t[n])&&(i[u[n]]=Math.max(i[u[n]],i.legend[(n+1)%2?\"legendHeight\":\"legendWidth\"]+[1,-1,-1,1][n]*s[n%2?\"x\":\"y\"]+w(s.margin,12)+e[n]+(i.titleOffset[n]||0)))})}proximatePositions(){let t;let e=this.chart,i=[],s=\"left\"===this.options.align;for(let r of(this.allItems.forEach(function(t){let r,o,n=s,a,h;t.yAxis&&(t.xAxis.options.reversed&&(n=!n),t.points&&(r=S(n?t.points:t.points.slice(0).reverse(),function(t){return k(t.plotY)})),o=this.itemMarginTop+t.legendItem.label.getBBox().height+this.itemMarginBottom,h=t.yAxis.top-e.plotTop,a=t.visible?(r?r.plotY:t.yAxis.height)+(h-.3*o):h+t.yAxis.height,i.push({target:a,size:o,item:t}))},this),g(i,e.plotHeight)))t=r.item.legendItem||{},k(r.pos)&&(t.y=e.plotTop-e.spacing[0]+r.pos)}render(){let t=this.chart,e=t.renderer,i=this.options,s=this.padding,r=this.getAllItems(),o,n,a,h=this.group,l,d=this.box;this.itemX=s,this.itemY=this.initialItemY,this.offsetWidth=0,this.lastItemY=0,this.widthOption=T(i.width,t.spacingBox.width-s),l=t.spacingBox.width-2*s-i.x,[\"rm\",\"lm\"].indexOf(this.getAlignment().substring(0,2))>-1&&(l/=2),this.maxLegendWidth=this.widthOption||l,h||(this.group=h=e.g(\"legend\").addClass(i.className||\"\").attr({zIndex:7}).add(),this.contentGroup=e.g().attr({zIndex:1}).add(h),this.scrollGroup=e.g().add(this.contentGroup)),this.renderTitle(),P(r,(t,e)=>(t.options&&t.options.legendIndex||0)-(e.options&&e.options.legendIndex||0)),i.reversed&&r.reverse(),this.allItems=r,this.display=o=!!r.length,this.lastLineHeight=0,this.maxItemWidth=0,this.totalItemWidth=0,this.itemHeight=0,r.forEach(this.renderItem,this),r.forEach(this.layoutItem,this),n=(this.widthOption||this.offsetWidth)+s,a=this.lastItemY+this.lastLineHeight+this.titleHeight,a=this.handleOverflow(a)+s,d||(this.box=d=e.rect().addClass(\"highcharts-legend-box\").attr({r:i.borderRadius}).add(h)),t.styledMode||d.attr({stroke:i.borderColor,\"stroke-width\":i.borderWidth||0,fill:i.backgroundColor||\"none\"}).shadow(i.shadow),n>0&&a>0&&d[d.placed?\"animate\":\"attr\"](d.crisp.call({},{x:0,y:0,width:n,height:a},d.strokeWidth())),h[o?\"show\":\"hide\"](),t.styledMode&&\"none\"===h.getStyle(\"display\")&&(n=a=0),this.legendWidth=n,this.legendHeight=a,o&&this.align(),this.proximate||this.positionItems(),C(this,\"afterRender\")}align(t=this.chart.spacingBox){let e=this.chart,i=this.options,s=t.y;/(lth|ct|rth)/.test(this.getAlignment())&&e.titleOffset[0]>0?s+=e.titleOffset[0]:/(lbh|cb|rbh)/.test(this.getAlignment())&&e.titleOffset[2]>0&&(s-=e.titleOffset[2]),s!==t.y&&(t=M(t,{y:s})),e.hasRendered||(this.group.placed=!1),this.group.align(M(i,{width:this.legendWidth,height:this.legendHeight,verticalAlign:this.proximate?\"top\":i.verticalAlign}),!0,t)}handleOverflow(t){let e=this,i=this.chart,s=i.renderer,r=this.options,o=r.y,n=\"top\"===r.verticalAlign,a=this.padding,h=r.maxHeight,l=r.navigation,d=w(l.animation,!0),c=l.arrowSize||12,p=this.pages,u=this.allItems,g=function(t){\"number\"==typeof t?S.attr({height:t}):S&&(e.clipRect=S.destroy(),e.contentGroup.clip()),e.contentGroup.div&&(e.contentGroup.div.style.clip=t?\"rect(\"+a+\"px,9999px,\"+(a+t)+\"px,0)\":\"auto\")},f=function(t){return e[t]=s.circle(0,0,1.3*c).translate(c/2,c/2).add(v),i.styledMode||e[t].attr(\"fill\",\"rgba(0,0,0,0.0001)\"),e[t]},m,x,y,b=i.spacingBox.height+(n?-o:o)-a,v=this.nav,S=this.clipRect;return\"horizontal\"!==r.layout||\"middle\"===r.verticalAlign||r.floating||(b/=2),h&&(b=Math.min(b,h)),p.length=0,t&&b>0&&t>b&&!1!==l.enabled?(this.clipHeight=m=Math.max(b-20-this.titleHeight-a,0),this.currentPage=w(this.currentPage,1),this.fullHeight=t,u.forEach((t,e)=>{let i=(y=t.legendItem||{}).y||0,s=Math.round(y.label.getBBox().height),r=p.length;(!r||i-p[r-1]>m&&(x||i)!==p[r-1])&&(p.push(x||i),r++),y.pageIx=r-1,x&&((u[e-1].legendItem||{}).pageIx=r-1),e===u.length-1&&i+s-p[r-1]>m&&i>p[r-1]&&(p.push(i),y.pageIx=r),i!==x&&(x=i)}),S||(S=e.clipRect=s.clipRect(0,a-2,9999,0),e.contentGroup.clip(S)),g(m),v||(this.nav=v=s.g().attr({zIndex:1}).add(this.group),this.up=s.symbol(\"triangle\",0,0,c,c).add(v),f(\"upTracker\").on(\"click\",function(){e.scroll(-1,d)}),this.pager=s.text(\"\",15,10).addClass(\"highcharts-legend-navigation\"),!i.styledMode&&l.style&&this.pager.css(l.style),this.pager.add(v),this.down=s.symbol(\"triangle-down\",0,0,c,c).add(v),f(\"downTracker\").on(\"click\",function(){e.scroll(1,d)})),e.scroll(0),t=b):v&&(g(),this.nav=v.destroy(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),t}scroll(t,e){let i=this.chart,s=this.pages,r=s.length,o=this.clipHeight,n=this.options.navigation,a=this.pager,h=this.padding,c=this.currentPage+t;c>r&&(c=r),c>0&&(void 0!==e&&d(e,i),this.nav.attr({translateX:h,translateY:o+this.padding+7+this.titleHeight,visibility:\"inherit\"}),[this.up,this.upTracker].forEach(function(t){t.attr({class:1===c?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})}),a.attr({text:c+\"/\"+r}),[this.down,this.downTracker].forEach(function(t){t.attr({x:18+this.pager.getBBox().width,class:c===r?\"highcharts-legend-nav-inactive\":\"highcharts-legend-nav-active\"})},this),i.styledMode||(this.up.attr({fill:1===c?n.inactiveColor:n.activeColor}),this.upTracker.css({cursor:1===c?\"default\":\"pointer\"}),this.down.attr({fill:c===r?n.inactiveColor:n.activeColor}),this.downTracker.css({cursor:c===r?\"default\":\"pointer\"})),this.scrollOffset=-s[c-1]+this.initialItemY,this.scrollGroup.animate({translateY:this.scrollOffset}),this.currentPage=c,this.positionCheckboxes(),L(()=>{C(this,\"afterScroll\",{currentPage:c})},l(w(e,i.renderer.globalAnimation,!0)).duration))}setItemEvents(t,e,i){let o=this,n=t.legendItem||{},a=o.chart.renderer.boxWrapper,h=t instanceof r,l=t instanceof s,d=\"highcharts-legend-\"+(h?\"point\":\"series\")+\"-active\",c=o.chart.styledMode,p=i?[e,n.symbol]:[n.group],u=e=>{o.allItems.forEach(i=>{t!==i&&[i].concat(i.linkedSeries||[]).forEach(t=>{t.setState(e,!h)})})};for(let i of p)i&&i.on(\"mouseover\",function(){t.visible&&u(\"inactive\"),t.setState(\"hover\"),t.visible&&a.addClass(d),c||e.css(o.options.itemHoverStyle)}).on(\"mouseout\",function(){o.chart.styledMode||e.css(M(t.visible?o.itemStyle:o.itemHiddenStyle)),u(\"\"),a.removeClass(d),t.setState()}).on(\"click\",function(e){let i=function(){t.setVisible&&t.setVisible(),u(t.visible?\"inactive\":\"\")};a.removeClass(d),C(o,\"itemClick\",{browserEvent:e,legendItem:t},i),h?t.firePointEvent(\"legendItemClick\",{browserEvent:e}):l&&C(t,\"legendItemClick\",{browserEvent:e})})}createCheckboxForItem(t){t.checkbox=x(\"input\",{type:\"checkbox\",className:\"highcharts-legend-checkbox\",checked:t.selected,defaultChecked:t.selected},this.options.itemCheckboxStyle,this.chart.container),m(t.checkbox,\"click\",function(e){let i=e.target;C(t.series||t,\"checkboxClick\",{checked:i.checked,item:t},function(){t.select()})})}}return(h=O||(O={})).compose=function(t){A(p,\"Core.Legend\")&&m(t,\"beforeMargins\",function(){this.legend=new h(this,this.options.legend)})},O}),i(e,\"Core/Chart/Chart.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Axis/Axis.js\"],e[\"Core/Defaults.js\"],e[\"Core/Templating.js\"],e[\"Core/Foundation.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/RendererRegistry.js\"],e[\"Core/Series/Series.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Renderer/SVG/SVGRenderer.js\"],e[\"Core/Time.js\"],e[\"Core/Utilities.js\"],e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Axis/Tick.js\"]],function(t,e,i,s,r,o,n,a,h,l,d,c,p,u){let{animate:g,animObject:f,setAnimation:m}=t,{defaultOptions:x,defaultTime:y}=i,{numberFormat:b}=s,{registerEventOptions:v}=r,{charts:S,doc:C,marginNames:k,svg:M,win:w}=o,{seriesTypes:A}=h,{addEvent:T,attr:P,createElement:L,css:O,defined:D,diffObjects:E,discardElement:I,erase:j,error:B,extend:R,find:z,fireEvent:N,getStyle:W,isArray:G,isNumber:H,isObject:X,isString:F,merge:Y,objectEach:U,pick:V,pInt:$,relativeLength:Z,removeEvent:_,splat:q,syncTimeout:K,uniqueKey:J}=c;class Q{static chart(t,e,i){return new Q(t,e,i)}constructor(t,e,i){this.sharedClips={};let s=[...arguments];(F(t)||t.nodeName)&&(this.renderTo=s.shift()),this.init(s[0],s[1])}setZoomOptions(){let t=this.options.chart,e=t.zooming;this.zooming={...e,type:V(t.zoomType,e.type),key:V(t.zoomKey,e.key),pinchType:V(t.pinchType,e.pinchType),singleTouch:V(t.zoomBySingleTouch,e.singleTouch,!1),resetButton:Y(e.resetButton,t.resetZoomButton)}}init(t,e){N(this,\"init\",{args:arguments},function(){let i=Y(x,t),s=i.chart;this.userOptions=R({},t),this.margin=[],this.spacing=[],this.labelCollectors=[],this.callback=e,this.isResizing=0,this.options=i,this.axes=[],this.series=[],this.time=t.time&&Object.keys(t.time).length?new d(t.time):o.time,this.numberFormatter=s.numberFormatter||b,this.styledMode=s.styledMode,this.hasCartesianSeries=s.showAxes,this.index=S.length,S.push(this),o.chartCount++,v(this,s),this.xAxis=[],this.yAxis=[],this.pointCount=this.colorCounter=this.symbolCounter=0,this.setZoomOptions(),N(this,\"afterInit\"),this.firstRender()})}initSeries(t){let e=this.options.chart,i=t.type||e.type,s=A[i];s||B(17,!0,this,{missingModuleFor:i});let r=new s;return\"function\"==typeof r.init&&r.init(this,t),r}setSortedData(){this.getSeriesOrderByLinks().forEach(function(t){t.points||t.data||!t.enabledDataSorting||t.setData(t.options.data,!1)})}getSeriesOrderByLinks(){return this.series.concat().sort(function(t,e){return t.linkedSeries.length||e.linkedSeries.length?e.linkedSeries.length-t.linkedSeries.length:0})}orderItems(t,e=0){let i=this[t],s=this.options[t]=q(this.options[t]).slice(),r=this.userOptions[t]=this.userOptions[t]?q(this.userOptions[t]).slice():[];if(this.hasRendered&&(s.splice(e),r.splice(e)),i)for(let t=e,o=i.length;t=Math.max(h+o,t.pos)&&e<=Math.min(h+o+c.width,t.pos+t.len)||(g.isInsidePlot=!1)}if(!i.ignoreY&&g.isInsidePlot){let t=!s&&i.axis&&!i.axis.isXAxis&&i.axis||d&&(s?d.xAxis:d.yAxis)||{pos:n,len:1/0},e=i.paneCoordinates?t.pos+u:n+u;e>=Math.max(l+n,t.pos)&&e<=Math.min(l+n+c.height,t.pos+t.len)||(g.isInsidePlot=!1)}return N(this,\"afterIsInsidePlot\",g),g.isInsidePlot}redraw(t){N(this,\"beforeRedraw\");let e=this.hasCartesianSeries?this.axes:this.colorAxis||[],i=this.series,s=this.pointer,r=this.legend,o=this.userOptions.legend,n=this.renderer,a=n.isHidden(),h=[],l,d,c,p=this.isDirtyBox,u=this.isDirtyLegend,g;for(n.rootFontSize=n.boxWrapper.getStyle(\"font-size\"),this.setResponsive&&this.setResponsive(!1),m(!!this.hasRendered&&t,this),a&&this.temporaryDisplay(),this.layOutTitles(!1),c=i.length;c--;)if(((g=i[c]).options.stacking||g.options.centerInCategory)&&(d=!0,g.isDirty)){l=!0;break}if(l)for(c=i.length;c--;)(g=i[c]).options.stacking&&(g.isDirty=!0);i.forEach(function(t){t.isDirty&&(\"point\"===t.options.legendType?(\"function\"==typeof t.updateTotals&&t.updateTotals(),u=!0):o&&(o.labelFormatter||o.labelFormat)&&(u=!0)),t.isDirtyData&&N(t,\"updatedData\")}),u&&r&&r.options.enabled&&(r.render(),this.isDirtyLegend=!1),d&&this.getStacks(),e.forEach(function(t){t.updateNames(),t.setScale()}),this.getMargins(),e.forEach(function(t){t.isDirty&&(p=!0)}),e.forEach(function(t){let e=t.min+\",\"+t.max;t.extKey!==e&&(t.extKey=e,h.push(function(){N(t,\"afterSetExtremes\",R(t.eventArgs,t.getExtremes())),delete t.eventArgs})),(p||d)&&t.redraw()}),p&&this.drawChartBox(),N(this,\"predraw\"),i.forEach(function(t){(p||t.isDirty)&&t.visible&&t.redraw(),t.isDirtyData=!1}),s&&s.reset(!0),n.draw(),N(this,\"redraw\"),N(this,\"render\"),a&&this.temporaryDisplay(!0),h.forEach(function(t){t.call()})}get(t){let e=this.series;function i(e){return e.id===t||e.options&&e.options.id===t}let s=z(this.axes,i)||z(this.series,i);for(let t=0;!s&&t(e.getPointsCollection().forEach(e=>{V(e.selectedStaging,e.selected)&&t.push(e)}),t),[])}getSelectedSeries(){return this.series.filter(function(t){return t.selected})}setTitle(t,e,i){this.applyDescription(\"title\",t),this.applyDescription(\"subtitle\",e),this.applyDescription(\"caption\",void 0),this.layOutTitles(i)}applyDescription(t,e){let i=this,s=this.options[t]=Y(this.options[t],e),r=this[t];r&&e&&(this[t]=r=r.destroy()),s&&!r&&((r=this.renderer.text(s.text,0,0,s.useHTML).attr({align:s.align,class:\"highcharts-\"+t,zIndex:s.zIndex||4}).add()).update=function(e,s){i.applyDescription(t,e),i.layOutTitles(s)},this.styledMode||r.css(R(\"title\"===t?{fontSize:this.options.isStock?\"1em\":\"1.2em\"}:{},s.style)),this[t]=r)}layOutTitles(t=!0){let e=[0,0,0],i=this.renderer,s=this.spacingBox;[\"title\",\"subtitle\",\"caption\"].forEach(function(t){let r=this[t],o=this.options[t],n=o.verticalAlign||\"top\",a=\"title\"===t?\"top\"===n?-3:0:\"top\"===n?e[0]+2:0;if(r){r.css({width:(o.width||s.width+(o.widthAdjust||0))+\"px\"});let t=i.fontMetrics(r).b,h=Math.round(r.getBBox(o.useHTML).height);r.align(R({y:\"bottom\"===n?t:a+t,height:h},o),!1,\"spacingBox\"),o.floating||(\"top\"===n?e[0]=Math.ceil(e[0]+h):\"bottom\"===n&&(e[2]=Math.ceil(e[2]+h)))}},this),e[0]&&\"top\"===(this.options.title.verticalAlign||\"top\")&&(e[0]+=this.options.title.margin),e[2]&&\"bottom\"===this.options.caption.verticalAlign&&(e[2]+=this.options.caption.margin);let r=!this.titleOffset||this.titleOffset.join(\",\")!==e.join(\",\");this.titleOffset=e,N(this,\"afterLayOutTitles\"),!this.isDirtyBox&&r&&(this.isDirtyBox=this.isDirtyLegend=r,this.hasRendered&&t&&this.isDirtyBox&&this.redraw())}getContainerBox(){return{width:W(this.renderTo,\"width\",!0)||0,height:W(this.renderTo,\"height\",!0)||0}}getChartSize(){let t=this.options.chart,e=t.width,i=t.height,s=this.getContainerBox();this.chartWidth=Math.max(0,e||s.width||600),this.chartHeight=Math.max(0,Z(i,this.chartWidth)||(s.height>1?s.height:400)),this.containerBox=s}temporaryDisplay(t){let e=this.renderTo,i;if(t)for(;e&&e.style;)e.hcOrigStyle&&(O(e,e.hcOrigStyle),delete e.hcOrigStyle),e.hcOrigDetached&&(C.body.removeChild(e),e.hcOrigDetached=!1),e=e.parentNode;else for(;e&&e.style&&(C.body.contains(e)||e.parentNode||(e.hcOrigDetached=!0,C.body.appendChild(e)),(\"none\"===W(e,\"display\",!1)||e.hcOricDetached)&&(e.hcOrigStyle={display:e.style.display,height:e.style.height,overflow:e.style.overflow},i={display:\"block\",overflow:\"hidden\"},e!==this.renderTo&&(i.height=0),O(e,i),e.offsetWidth||e.style.setProperty(\"display\",\"block\",\"important\")),(e=e.parentNode)!==C.body););}setClassName(t){this.container.className=\"highcharts-container \"+(t||\"\")}getContainer(){let t=this.options,e=t.chart,i=\"data-highcharts-chart\",s=J(),r,a=this.renderTo;a||(this.renderTo=a=e.renderTo),F(a)&&(this.renderTo=a=C.getElementById(a)),a||B(13,!0,this);let h=$(P(a,i));H(h)&&S[h]&&S[h].hasRendered&&S[h].destroy(),P(a,i,this.index),a.innerHTML=p.emptyHTML,e.skipClone||a.offsetWidth||this.temporaryDisplay(),this.getChartSize();let d=this.chartHeight,c=this.chartWidth;O(a,{overflow:\"hidden\",pointerEvents:o.isChrome?\"fill\":\"auto\"}),this.styledMode||(r=R({position:\"relative\",overflow:\"hidden\",width:c+\"px\",height:d+\"px\",textAlign:\"left\",lineHeight:\"normal\",zIndex:0,\"-webkit-tap-highlight-color\":\"rgba(0,0,0,0)\",userSelect:\"none\",\"touch-action\":\"manipulation\",outline:\"none\"},e.style||{}));let u=L(\"div\",{id:s},r,a);this.container=u,this.getChartSize(),c===this.chartWidth||(c=this.chartWidth,this.styledMode||O(u,{width:V(e.style?.width,c+\"px\")})),this.containerBox=this.getContainerBox(),this._cursor=u.style.cursor;let g=e.renderer||!M?n.getRendererType(e.renderer):l;if(this.renderer=new g(u,c,d,void 0,e.forExport,t.exporting&&t.exporting.allowHTML,this.styledMode),m(void 0,this),this.setClassName(e.className),this.styledMode)for(let e in t.defs)this.renderer.definition(t.defs[e]);else this.renderer.setStyle(e.style);this.renderer.chartIndex=this.index,N(this,\"afterGetContainer\")}getMargins(t){let{spacing:e,margin:i,titleOffset:s}=this;this.resetMargins(),s[0]&&!D(i[0])&&(this.plotTop=Math.max(this.plotTop,s[0]+e[0])),s[2]&&!D(i[2])&&(this.marginBottom=Math.max(this.marginBottom,s[2]+e[2])),this.legend&&this.legend.display&&this.legend.adjustMargins(i,e),N(this,\"getMargins\"),t||this.getAxisMargins()}getAxisMargins(){let t=this,e=t.axisOffset=[0,0,0,0],i=t.colorAxis,s=t.margin,r=function(t){t.forEach(function(t){t.visible&&t.getOffset()})};t.hasCartesianSeries?r(t.axes):i&&i.length&&r(i),k.forEach(function(i,r){D(s[r])||(t[i]+=e[r])}),t.setChartSize()}getOptions(){return E(this.userOptions,x)}reflow(t){let e=this,i=e.containerBox,s=e.getContainerBox();delete e.pointer?.chartPosition,!e.isPrinting&&!e.isResizing&&i&&s.width&&((s.width!==i.width||s.height!==i.height)&&(c.clearTimeout(e.reflowTimeout),e.reflowTimeout=K(function(){e.container&&e.setSize(void 0,void 0,!1)},t?100:0)),e.containerBox=s)}setReflow(){let t=this,e=e=>{t.options?.chart.reflow&&t.hasLoaded&&t.reflow(e)};if(\"function\"==typeof ResizeObserver)new ResizeObserver(e).observe(t.renderTo);else{let t=T(w,\"resize\",e);T(this,\"destroy\",t)}}setSize(t,e,i){let s=this,r=s.renderer;s.isResizing+=1,m(i,s);let o=r.globalAnimation;s.oldChartHeight=s.chartHeight,s.oldChartWidth=s.chartWidth,void 0!==t&&(s.options.chart.width=t),void 0!==e&&(s.options.chart.height=e),s.getChartSize();let{chartWidth:n,chartHeight:a,scrollablePixelsX:h=0,scrollablePixelsY:l=0}=s;(s.isDirtyBox||n!==s.oldChartWidth||a!==s.oldChartHeight)&&(s.styledMode||(o?g:O)(s.container,{width:`${n+h}px`,height:`${a+l}px`},o),s.setChartSize(!0),r.setSize(n,a,o),s.axes.forEach(function(t){t.isDirty=!0,t.setScale()}),s.isDirtyLegend=!0,s.isDirtyBox=!0,s.layOutTitles(),s.getMargins(),s.redraw(o),s.oldChartHeight=void 0,N(s,\"resize\"),setTimeout(()=>{s&&N(s,\"endResize\")},f(o).duration)),s.isResizing-=1}setChartSize(t){let e,i,s,r;let{chartHeight:o,chartWidth:n,inverted:a,spacing:h,renderer:l}=this,d=this.clipOffset,c=Math[a?\"floor\":\"round\"];this.plotLeft=e=Math.round(this.plotLeft),this.plotTop=i=Math.round(this.plotTop),this.plotWidth=s=Math.max(0,Math.round(n-e-this.marginRight)),this.plotHeight=r=Math.max(0,Math.round(o-i-this.marginBottom)),this.plotSizeX=a?r:s,this.plotSizeY=a?s:r,this.spacingBox=l.spacingBox={x:h[3],y:h[0],width:n-h[3]-h[1],height:o-h[0]-h[2]},this.plotBox=l.plotBox={x:e,y:i,width:s,height:r},d&&(this.clipBox={x:c(d[3]),y:c(d[0]),width:c(this.plotSizeX-d[1]-d[3]),height:c(this.plotSizeY-d[0]-d[2])}),t||(this.axes.forEach(function(t){t.setAxisSize(),t.setAxisTranslation()}),l.alignElements()),N(this,\"afterSetChartSize\",{skipAxes:t})}resetMargins(){N(this,\"resetMargins\");let t=this,e=t.options.chart,i=e.plotBorderWidth||0,s=i/2;[\"margin\",\"spacing\"].forEach(function(i){let s=e[i],r=X(s)?s:[s,s,s,s];[\"Top\",\"Right\",\"Bottom\",\"Left\"].forEach(function(s,o){t[i][o]=V(e[i+s],r[o])})}),k.forEach(function(e,i){t[e]=V(t.margin[i],t.spacing[i])}),t.axisOffset=[0,0,0,0],t.clipOffset=[s,s,s,s],t.plotBorderWidth=i}drawChartBox(){let t=this.options.chart,e=this.renderer,i=this.chartWidth,s=this.chartHeight,r=this.styledMode,o=this.plotBGImage,n=t.backgroundColor,a=t.plotBackgroundColor,h=t.plotBackgroundImage,l=this.plotLeft,d=this.plotTop,c=this.plotWidth,p=this.plotHeight,u=this.plotBox,g=this.clipRect,f=this.clipBox,m=this.chartBackground,x=this.plotBackground,y=this.plotBorder,b,v,S,C=\"animate\";m||(this.chartBackground=m=e.rect().addClass(\"highcharts-background\").add(),C=\"attr\"),r?b=v=m.strokeWidth():(v=(b=t.borderWidth||0)+(t.shadow?8:0),S={fill:n||\"none\"},(b||m[\"stroke-width\"])&&(S.stroke=t.borderColor,S[\"stroke-width\"]=b),m.attr(S).shadow(t.shadow)),m[C]({x:v/2,y:v/2,width:i-v-b%2,height:s-v-b%2,r:t.borderRadius}),C=\"animate\",x||(C=\"attr\",this.plotBackground=x=e.rect().addClass(\"highcharts-plot-background\").add()),x[C](u),!r&&(x.attr({fill:a||\"none\"}).shadow(t.plotShadow),h&&(o?(h!==o.attr(\"href\")&&o.attr(\"href\",h),o.animate(u)):this.plotBGImage=e.image(h,l,d,c,p).add())),g?g.animate({width:f.width,height:f.height}):this.clipRect=e.clipRect(f),C=\"animate\",y||(C=\"attr\",this.plotBorder=y=e.rect().addClass(\"highcharts-plot-border\").attr({zIndex:1}).add()),r||y.attr({stroke:t.plotBorderColor,\"stroke-width\":t.plotBorderWidth||0,fill:\"none\"}),y[C](y.crisp({x:l,y:d,width:c,height:p},-y.strokeWidth())),this.isDirtyBox=!1,N(this,\"afterDrawChartBox\")}propFromSeries(){let t,e,i;let s=this,r=s.options.chart,o=s.options.series;[\"inverted\",\"angular\",\"polar\"].forEach(function(n){for(e=A[r.type],i=r[n]||e&&e.prototype[n],t=o&&o.length;!i&&t--;)(e=A[o[t].type])&&e.prototype[n]&&(i=!0);s[n]=i})}linkSeries(t){let e=this,i=e.series;i.forEach(function(t){t.linkedSeries.length=0}),i.forEach(function(t){let{linkedTo:i}=t.options;if(F(i)){let s;(s=\":previous\"===i?e.series[t.index-1]:e.get(i))&&s.linkedParent!==t&&(s.linkedSeries.push(t),t.linkedParent=s,s.enabledDataSorting&&t.setDataSortingOptions(),t.visible=V(t.options.visible,s.options.visible,t.visible))}}),N(this,\"afterLinkSeries\",{isUpdating:t})}renderSeries(){this.series.forEach(function(t){t.translate(),t.render()})}render(){let t=this.axes,e=this.colorAxis,i=this.renderer,s=this.options.chart.axisLayoutRuns||2,r=t=>{t.forEach(t=>{t.visible&&t.render()})},o=0,n=!0,a,h=0;for(let e of(this.setTitle(),N(this,\"beforeMargins\"),this.getStacks?.(),this.getMargins(!0),this.setChartSize(),t)){let{options:t}=e,{labels:i}=t;if(this.hasCartesianSeries&&e.horiz&&e.visible&&i.enabled&&e.series.length&&\"colorAxis\"!==e.coll&&!this.polar){o=t.tickLength,e.createGroups();let s=new u(e,0,\"\",!0),r=s.createLabel(\"x\",i);if(s.destroy(),r&&V(i.reserveSpace,!H(t.crossing))&&(o=r.getBBox().height+i.distance+Math.max(t.offset||0,0)),o){r?.destroy();break}}}for(this.plotHeight=Math.max(this.plotHeight-o,0);(n||a||s>1)&&h(h?1:1.1),a=i/this.plotHeight>(h?1:1.05),h++}this.drawChartBox(),this.hasCartesianSeries?r(t):e&&e.length&&r(e),this.seriesGroup||(this.seriesGroup=i.g(\"series-group\").attr({zIndex:3}).shadow(this.options.chart.seriesGroupShadow).add()),this.renderSeries(),this.addCredits(),this.setResponsive&&this.setResponsive(),this.hasRendered=!0}addCredits(t){let e=this,i=Y(!0,this.options.credits,t);i.enabled&&!this.credits&&(this.credits=this.renderer.text(i.text+(this.mapCredits||\"\"),0,0).addClass(\"highcharts-credits\").on(\"click\",function(){i.href&&(w.location.href=i.href)}).attr({align:i.position.align,zIndex:8}),e.styledMode||this.credits.css(i.style),this.credits.add().align(i.position),this.credits.update=function(t){e.credits=e.credits.destroy(),e.addCredits(t)})}destroy(){let t;let e=this,i=e.axes,s=e.series,r=e.container,n=r&&r.parentNode;for(N(e,\"destroy\"),e.renderer.forExport?j(S,e):S[e.index]=void 0,o.chartCount--,e.renderTo.removeAttribute(\"data-highcharts-chart\"),_(e),t=i.length;t--;)i[t]=i[t].destroy();for(this.scroller&&this.scroller.destroy&&this.scroller.destroy(),t=s.length;t--;)s[t]=s[t].destroy();[\"title\",\"subtitle\",\"chartBackground\",\"plotBackground\",\"plotBGImage\",\"plotBorder\",\"seriesGroup\",\"clipRect\",\"credits\",\"pointer\",\"rangeSelector\",\"legend\",\"resetZoomButton\",\"tooltip\",\"renderer\"].forEach(function(t){let i=e[t];i&&i.destroy&&(e[t]=i.destroy())}),r&&(r.innerHTML=p.emptyHTML,_(r),n&&I(r)),U(e,function(t,i){delete e[i]})}firstRender(){let t=this,e=t.options;t.getContainer(),t.resetMargins(),t.setChartSize(),t.propFromSeries(),t.getAxes();let i=G(e.series)?e.series:[];e.series=[],i.forEach(function(e){t.initSeries(e)}),t.linkSeries(),t.setSortedData(),N(t,\"beforeRender\"),t.render(),t.pointer?.getChartPosition(),t.renderer.imgCount||t.hasLoaded||t.onload(),t.temporaryDisplay(!0)}onload(){this.callbacks.concat([this.callback]).forEach(function(t){t&&void 0!==this.index&&t.apply(this,[this])},this),N(this,\"load\"),N(this,\"render\"),D(this.index)&&this.setReflow(),this.warnIfA11yModuleNotLoaded(),this.hasLoaded=!0}warnIfA11yModuleNotLoaded(){let{options:t,title:e}=this;!t||this.accessibility||(this.renderer.boxWrapper.attr({role:\"img\",\"aria-label\":(e&&e.element.textContent||\"\").replace(/this.transform({reset:!0,trigger:\"zoom\"}))}pan(t,e){let i=this,s=\"object\"==typeof e?e:{enabled:e,type:\"x\"},r=s.type,o=r&&i[({x:\"xAxis\",xy:\"axes\",y:\"yAxis\"})[r]].filter(t=>t.options.panningEnabled&&!t.options.isInternal),n=i.options.chart;n?.panning&&(n.panning=s),N(this,\"pan\",{originalEvent:t},()=>{i.transform({axes:o,event:t,to:{x:t.chartX-(i.mouseDownX||0),y:t.chartY-(i.mouseDownY||0)},trigger:\"pan\"}),O(i.container,{cursor:\"move\"})})}transform(t){let{axes:e=this.axes,event:i,from:s={},reset:r,selection:o,to:n={},trigger:a}=t,{inverted:h}=this,l=!1,d,c;for(let t of(this.hoverPoints?.forEach(t=>t.setState()),e)){let{horiz:e,len:p,minPointOffset:u=0,options:g,reversed:f}=t,m=e?\"width\":\"height\",x=e?\"x\":\"y\",y=V(n[m],t.len),b=V(s[m],t.len),v=10>Math.abs(y)?1:y/b,S=(s[x]||0)+b/2-t.pos,C=S-((n[x]??t.pos)+y/2-t.pos)/v,k=f&&!h||!f&&h?-1:1;if(!r&&(S<0||S>t.len))continue;let M=t.toValue(C,!0)+(o?0:u*k),w=t.toValue(C+p/v,!0)-(o?0:u*k||0),A=t.allExtremes;if(M>w&&([M,w]=[w,M]),1===v&&!r&&\"yAxis\"===t.coll&&!A){for(let e of t.series){let t=e.getExtremes(e.getProcessedData(!0).yData,!0);A??(A={dataMin:Number.MAX_VALUE,dataMax:-Number.MAX_VALUE}),H(t.dataMin)&&H(t.dataMax)&&(A.dataMin=Math.min(t.dataMin,A.dataMin),A.dataMax=Math.max(t.dataMax,A.dataMax))}t.allExtremes=A}let{dataMin:T,dataMax:P,min:L,max:O}=R(t.getExtremes(),A||{}),E=T??g.min,I=P??g.max,j=w-M,B=t.categories?0:Math.min(j,I-E),z=E-B*(D(g.min)?0:g.minPadding),N=I+B*(D(g.max)?0:g.maxPadding),W=t.allowZoomOutside||1===v||\"zoom\"!==a&&v>1,G=Math.min(g.min??z,z,W?L:z),X=Math.max(g.max??N,N,W?O:N);(!t.isOrdinal||1!==v||r)&&(M=1&&(w=M+j)),w>X&&(w=X,v>=1&&(M=w-j)),(r||t.series.length&&(M!==L||w!==O)&&M>=G&&w<=X)&&(o?o[t.coll].push({axis:t,min:M,max:w}):(t.isPanning=\"zoom\"!==a,t.isPanning&&(c=!0),t.setExtremes(r?void 0:M,r?void 0:w,!1,!1,{move:C,trigger:a,scale:v}),!r&&(M>G||w{delete t.selection,t.trigger=\"zoom\",this.transform(t)}):(!d||c||this.resetZoomButton?!d&&this.resetZoomButton&&(this.resetZoomButton=this.resetZoomButton.destroy()):this.showResetZoom(),this.redraw(\"zoom\"===a&&(this.options.chart.animation??this.pointCount<100)))),l}}return R(Q.prototype,{callbacks:[],collectionsWithInit:{xAxis:[Q.prototype.addAxis,[!0]],yAxis:[Q.prototype.addAxis,[!1]],series:[Q.prototype.addSeries]},collectionsWithUpdate:[\"xAxis\",\"yAxis\",\"series\"],propsRequireDirtyBox:[\"backgroundColor\",\"borderColor\",\"borderWidth\",\"borderRadius\",\"plotBackgroundColor\",\"plotBackgroundImage\",\"plotBorderColor\",\"plotBorderWidth\",\"plotShadow\",\"shadow\"],propsRequireReflow:[\"margin\",\"marginTop\",\"marginRight\",\"marginBottom\",\"marginLeft\",\"spacing\",\"spacingTop\",\"spacingRight\",\"spacingBottom\",\"spacingLeft\"],propsRequireUpdateSeries:[\"chart.inverted\",\"chart.polar\",\"chart.ignoreHiddenSeries\",\"chart.type\",\"colors\",\"plotOptions\",\"time\",\"tooltip\"]}),Q}),i(e,\"Extensions/ScrollablePlotArea.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/RendererRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){let{stop:r}=t,{composed:o}=e,{addEvent:n,createElement:a,css:h,defined:l,merge:d,pushUnique:c}=s;function p(){let t=this.scrollablePlotArea;(this.scrollablePixelsX||this.scrollablePixelsY)&&!t&&(this.scrollablePlotArea=t=new g(this)),t?.applyFixed()}function u(){this.chart.scrollablePlotArea&&(this.chart.scrollablePlotArea.isDirty=!0)}class g{static compose(t,e,i){c(o,this.compose)&&(n(t,\"afterInit\",u),n(e,\"afterSetChartSize\",t=>this.afterSetSize(t.target,t)),n(e,\"render\",p),n(i,\"show\",u))}static afterSetSize(t,e){let i,s,r;let{minWidth:o,minHeight:n}=t.options.chart.scrollablePlotArea||{},{clipBox:a,plotBox:h,inverted:c,renderer:p}=t;if(!p.forExport&&(o?(t.scrollablePixelsX=i=Math.max(0,o-t.chartWidth),i&&(t.scrollablePlotBox=d(t.plotBox),h.width=t.plotWidth+=i,a[c?\"height\":\"width\"]+=i,r=!0)):n&&(t.scrollablePixelsY=s=Math.max(0,n-t.chartHeight),l(s)&&(t.scrollablePlotBox=d(t.plotBox),h.height=t.plotHeight+=s,a[c?\"width\":\"height\"]+=s,r=!1)),l(r)&&!e.skipAxes))for(let e of t.axes)e.horiz===r&&(e.setAxisSize(),e.setAxisTranslation())}constructor(t){let e;let s=t.options.chart,r=i.getRendererType(),o=s.scrollablePlotArea||{},l=this.moveFixedElements.bind(this),d={WebkitOverflowScrolling:\"touch\",overflowX:\"hidden\",overflowY:\"hidden\"};t.scrollablePixelsX&&(d.overflowX=\"auto\"),t.scrollablePixelsY&&(d.overflowY=\"auto\"),this.chart=t;let c=this.parentDiv=a(\"div\",{className:\"highcharts-scrolling-parent\"},{position:\"relative\"},t.renderTo),p=this.scrollingContainer=a(\"div\",{className:\"highcharts-scrolling\"},d,c),u=this.innerContainer=a(\"div\",{className:\"highcharts-inner-container\"},void 0,p),g=this.fixedDiv=a(\"div\",{className:\"highcharts-fixed\"},{position:\"absolute\",overflow:\"hidden\",pointerEvents:\"none\",zIndex:(s.style?.zIndex||0)+2,top:0},void 0,!0),f=this.fixedRenderer=new r(g,t.chartWidth,t.chartHeight,s.style);this.mask=f.path().attr({fill:s.backgroundColor||\"#fff\",\"fill-opacity\":o.opacity??.85,zIndex:-1}).addClass(\"highcharts-scrollable-mask\").add(),p.parentNode.insertBefore(g,p),h(t.renderTo,{overflow:\"visible\"}),n(t,\"afterShowResetZoom\",l),n(t,\"afterApplyDrilldown\",l),n(t,\"afterLayOutTitles\",l),n(p,\"scroll\",()=>{let{pointer:i,hoverPoint:s}=t;i&&(delete i.chartPosition,s&&(e=s),i.runPointActions(void 0,e,!0))}),u.appendChild(t.container)}applyFixed(){let{chart:t,fixedRenderer:e,isDirty:i,scrollingContainer:s}=this,{axisOffset:o,chartWidth:n,chartHeight:a,container:d,plotHeight:c,plotLeft:p,plotTop:u,plotWidth:g,scrollablePixelsX:f=0,scrollablePixelsY:m=0}=t,{scrollPositionX:x=0,scrollPositionY:y=0}=t.options.chart.scrollablePlotArea||{},b=n+f,v=a+m;e.setSize(n,a),(i??!0)&&(this.isDirty=!1,this.moveFixedElements()),r(t.container),h(d,{width:`${b}px`,height:`${v}px`}),t.renderer.boxWrapper.attr({width:b,height:v,viewBox:[0,0,b,v].join(\" \")}),t.chartBackground?.attr({width:b,height:v}),h(s,{width:`${n}px`,height:`${a}px`}),l(i)||(s.scrollLeft=f*x,s.scrollTop=m*y);let S=u-o[0]-1,C=p-o[3]-1,k=u+c+o[2]+1,M=p+g+o[1]+1,w=p+g-f,A=u+c-m,T=[[\"M\",0,0]];f?T=[[\"M\",0,S],[\"L\",p-1,S],[\"L\",p-1,k],[\"L\",0,k],[\"Z\"],[\"M\",w,S],[\"L\",n,S],[\"L\",n,k],[\"L\",w,k],[\"Z\"]]:m&&(T=[[\"M\",C,0],[\"L\",C,u-1],[\"L\",M,u-1],[\"L\",M,0],[\"Z\"],[\"M\",C,A],[\"L\",C,a],[\"L\",M,a],[\"L\",M,A],[\"Z\"]]),\"adjustHeight\"!==t.redrawTrigger&&this.mask.attr({d:T})}moveFixedElements(){let t;let{container:e,inverted:i,scrollablePixelsX:s,scrollablePixelsY:r}=this.chart,o=this.fixedRenderer,n=g.fixedSelectors;for(let a of(s&&!i?t=\".highcharts-yaxis\":s&&i?t=\".highcharts-xaxis\":r&&!i?t=\".highcharts-xaxis\":r&&i&&(t=\".highcharts-yaxis\"),t&&n.push(`${t}:not(.highcharts-radial-axis)`,`${t}-labels:not(.highcharts-radial-axis-labels)`),n))[].forEach.call(e.querySelectorAll(a),t=>{(t.namespaceURI===o.SVG_NS?o.box:o.box.parentNode).appendChild(t),t.style.pointerEvents=\"auto\"})}}return g.fixedSelectors=[\".highcharts-breadcrumbs-group\",\".highcharts-contextbutton\",\".highcharts-caption\",\".highcharts-credits\",\".highcharts-drillup-button\",\".highcharts-legend\",\".highcharts-legend-checkbox\",\".highcharts-navigator-series\",\".highcharts-navigator-xaxis\",\".highcharts-navigator-yaxis\",\".highcharts-navigator\",\".highcharts-range-selector-group\",\".highcharts-reset-zoom\",\".highcharts-scrollbar\",\".highcharts-subtitle\",\".highcharts-title\"],g}),i(e,\"Core/Axis/Stacking/StackItem.js\",[e[\"Core/Templating.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{format:s}=t,{series:r}=e,{destroyObjectProperties:o,fireEvent:n,isNumber:a,pick:h}=i;return class{constructor(t,e,i,s,r){let o=t.chart.inverted,n=t.reversed;this.axis=t;let a=this.isNegative=!!i!=!!n;this.options=e=e||{},this.x=s,this.total=null,this.cumulative=null,this.points={},this.hasValidPoints=!1,this.stack=r,this.leftCliff=0,this.rightCliff=0,this.alignOptions={align:e.align||(o?a?\"left\":\"right\":\"center\"),verticalAlign:e.verticalAlign||(o?\"middle\":a?\"bottom\":\"top\"),y:e.y,x:e.x},this.textAlign=e.textAlign||(o?a?\"right\":\"left\":\"center\")}destroy(){o(this,this.axis)}render(t){let e=this.axis.chart,i=this.options,r=i.format,o=r?s(r,this,e):i.formatter.call(this);if(this.label)this.label.attr({text:o,visibility:\"hidden\"});else{this.label=e.renderer.label(o,null,void 0,i.shape,void 0,void 0,i.useHTML,!1,\"stack-labels\");let s={r:i.borderRadius||0,text:o,padding:h(i.padding,5),visibility:\"hidden\"};e.styledMode||(s.fill=i.backgroundColor,s.stroke=i.borderColor,s[\"stroke-width\"]=i.borderWidth,this.label.css(i.style||{})),this.label.attr(s),this.label.added||this.label.add(t)}this.label.labelrank=e.plotSizeY,n(this,\"afterRender\")}setOffset(t,e,i,s,o,l){let{alignOptions:d,axis:c,label:p,options:u,textAlign:g}=this,f=c.chart,m=this.getStackBox({xOffset:t,width:e,boxBottom:i,boxTop:s,defaultX:o,xAxis:l}),{verticalAlign:x}=d;if(p&&m){let t=p.getBBox(void 0,0),e=p.padding,i=\"justify\"===h(u.overflow,\"justify\"),s;d.x=u.x||0,d.y=u.y||0;let{x:o,y:n}=this.adjustStackPosition({labelBox:t,verticalAlign:x,textAlign:g});m.x-=o,m.y-=n,p.align(d,!1,m),(s=f.isInsidePlot(p.alignAttr.x+d.x+o,p.alignAttr.y+d.y+n))||(i=!1),i&&r.prototype.justifyDataLabel.call(c,p,d,p.alignAttr,t,m),p.attr({x:p.alignAttr.x,y:p.alignAttr.y,rotation:u.rotation,rotationOriginX:t.width*({left:0,center:.5,right:1})[u.textAlign||\"center\"],rotationOriginY:t.height/2}),h(!i&&u.crop,!0)&&(s=a(p.x)&&a(p.y)&&f.isInsidePlot(p.x-e+(p.width||0),p.y)&&f.isInsidePlot(p.x+e,p.y)),p[s?\"show\":\"hide\"]()}n(this,\"afterSetOffset\",{xOffset:t,width:e})}adjustStackPosition({labelBox:t,verticalAlign:e,textAlign:i}){let s={bottom:0,middle:1,top:2,right:1,center:0,left:-1},r=s[e],o=s[i];return{x:t.width/2+t.width/2*o,y:t.height/2*r}}getStackBox(t){let e=this.axis,i=e.chart,{boxTop:s,defaultX:r,xOffset:o,width:n,boxBottom:l}=t,d=e.stacking.usePercentage?100:h(s,this.total,0),c=e.toPixels(d),p=t.xAxis||i.xAxis[0],u=h(r,p.translate(this.x))+o,g=Math.abs(c-e.toPixels(l||a(e.min)&&e.logarithmic&&e.logarithmic.lin2log(e.min)||0)),f=i.inverted,m=this.isNegative;return f?{x:(m?c:c-g)-i.plotLeft,y:p.height-u-n+p.top-i.plotTop,width:g,height:n}:{x:u+p.transB-i.plotLeft,y:(m?c-g:c)-i.plotTop,width:n,height:g}}}}),i(e,\"Core/Axis/Stacking/StackingAxis.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Axis/Axis.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Axis/Stacking/StackItem.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r){var o;let{getDeferredAnimation:n}=t,{series:{prototype:a}}=i,{addEvent:h,correctFloat:l,defined:d,destroyObjectProperties:c,fireEvent:p,isArray:u,isNumber:g,objectEach:f,pick:m}=r;function x(){let t=this.inverted;this.axes.forEach(t=>{t.stacking&&t.stacking.stacks&&t.hasVisibleSeries&&(t.stacking.oldStacks=t.stacking.stacks)}),this.series.forEach(e=>{let i=e.xAxis&&e.xAxis.options||{};e.options.stacking&&e.reserveSpace()&&(e.stackKey=[e.type,m(e.options.stack,\"\"),t?i.top:i.left,t?i.height:i.width].join(\",\"))})}function y(){let t=this.stacking;if(t){let e=t.stacks;f(e,(t,i)=>{c(t),delete e[i]}),t.stackTotalGroup?.destroy()}}function b(){this.stacking||(this.stacking=new w(this))}function v(t,e,i,s){return!d(t)||t.x!==e||s&&t.stackKey!==s?t={x:e,index:0,key:s,stackKey:s}:t.index++,t.key=[i,e,t.index].join(\",\"),t}function S(){let t;let e=this,i=e.yAxis,s=e.stackKey||\"\",r=i.stacking.stacks,o=e.processedXData,n=e.options.stacking,a=e[n+\"Stacker\"];a&&[s,\"-\"+s].forEach(i=>{let s=o.length,n,h,l;for(;s--;)n=o[s],t=e.getStackIndicator(t,n,e.index,i),h=r[i]?.[n],(l=h?.points[t.key||\"\"])&&a.call(e,l,h,s)})}function C(t,e,i){let s=e.total?100/e.total:0;t[0]=l(t[0]*s),t[1]=l(t[1]*s),this.stackedYData[i]=t[1]}function k(t){(this.is(\"column\")||this.is(\"columnrange\"))&&(this.options.centerInCategory&&!this.options.stacking&&this.chart.series.length>1?a.setStackedPoints.call(this,t,\"group\"):t.stacking.resetStacks())}function M(t,e){let i,r,o,n,a,h,c,p,g;let f=e||this.options.stacking;if(!f||!this.reserveSpace()||(({group:\"xAxis\"})[f]||\"yAxis\")!==t.coll)return;let x=this.processedXData,y=this.processedYData,b=[],v=y.length,S=this.options,C=S.threshold||0,k=S.startFromThreshold?C:0,M=S.stack,w=e?`${this.type},${f}`:this.stackKey||\"\",A=\"-\"+w,T=this.negStacks,P=t.stacking,L=P.stacks,O=P.oldStacks;for(P.stacksTouched+=1,c=0;c0&&!1===this.singleStacks&&(o.points[h][0]=o.points[this.index+\",\"+p+\",0\"][0])):(delete o.points[h],delete o.points[this.index]);let e=o.total||0;\"percent\"===f?(n=r?w:A,e=T&&L[n]?.[p]?(n=L[n][p]).total=Math.max(n.total||0,e)+Math.abs(g)||0:l(e+(Math.abs(g)||0))):\"group\"===f?(u(g)&&(g=g[0]),null!==g&&e++):e=l(e+(g||0)),\"group\"===f?o.cumulative=(e||1)-1:o.cumulative=l(m(o.cumulative,k)+(g||0)),o.total=e,null!==g&&(o.points[h].push(o.cumulative),b[c]=o.cumulative,o.hasValidPoints=!0)}\"percent\"===f&&(P.usePercentage=!0),\"group\"!==f&&(this.stackedYData=b),P.oldStacks={}}class w{constructor(t){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=t}buildStacks(){let t,e;let i=this.axis,s=i.series,r=\"xAxis\"===i.coll,o=i.options.reversedStacks,n=s.length;for(this.resetStacks(),this.usePercentage=!1,e=n;e--;)t=s[o?e:n-e-1],r&&t.setGroupedPoints(i),t.setStackedPoints(i);if(!r)for(e=0;e{f(t,t=>{t.cumulative=t.total})}))}resetStacks(){f(this.stacks,t=>{f(t,(e,i)=>{g(e.touched)&&e.touched{f(t,t=>{t.render(o)})}),o.animate({opacity:1},r)}}return(o||(o={})).compose=function(t,e,i){let s=e.prototype,r=i.prototype;s.getStacks||(h(t,\"init\",b),h(t,\"destroy\",y),s.getStacks=x,r.getStackIndicator=v,r.modifyStacks=S,r.percentStacker=C,r.setGroupedPoints=k,r.setStackedPoints=M)},o}),i(e,\"Series/Line/LineSeries.js\",[e[\"Core/Series/Series.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{defined:s,merge:r,isObject:o}=i;class n extends t{drawGraph(){let t=this.options,e=(this.gappedPath||this.getGraphPath).call(this),i=this.chart.styledMode;[this,...this.zones].forEach((s,n)=>{let a,h=s.graph,l=h?\"animate\":\"attr\",d=s.dashStyle||t.dashStyle;h?(h.endX=this.preventGraphAnimation?null:e.xMap,h.animate({d:e})):e.length&&(s.graph=h=this.chart.renderer.path(e).addClass(\"highcharts-graph\"+(n?` highcharts-zone-graph-${n-1} `:\" \")+(n&&s.className||\"\")).attr({zIndex:1}).add(this.group)),h&&!i&&(a={stroke:!n&&t.lineColor||s.color||this.color||\"#cccccc\",\"stroke-width\":t.lineWidth||0,fill:this.fillGraph&&this.color||\"none\"},d?a.dashstyle=d:\"square\"!==t.linecap&&(a[\"stroke-linecap\"]=a[\"stroke-linejoin\"]=\"round\"),h[l](a).shadow(n<2&&t.shadow&&r({filterUnits:\"userSpaceOnUse\"},o(t.shadow)?t.shadow:{}))),h&&(h.startX=e.xMap,h.isArea=e.isArea)})}getGraphPath(t,e,i){let r=this,o=r.options,n=[],a=[],h,l=o.step,d=(t=t||r.points).reversed;return d&&t.reverse(),(l=({right:1,center:2})[l]||l&&3)&&d&&(l=4-l),(t=this.getValidPoints(t,!1,!(o.connectNulls&&!e&&!i))).forEach(function(d,c){let p;let u=d.plotX,g=d.plotY,f=t[c-1],m=d.isNull||\"number\"!=typeof g;(d.leftCliff||f&&f.rightCliff)&&!i&&(h=!0),m&&!s(e)&&c>0?h=!o.connectNulls:m&&!e?h=!0:(0===c||h?p=[[\"M\",d.plotX,d.plotY]]:r.getPointSpline?p=[r.getPointSpline(t,d,c)]:l?(p=1===l?[[\"L\",f.plotX,g]]:2===l?[[\"L\",(f.plotX+u)/2,f.plotY],[\"L\",(f.plotX+u)/2,g]]:[[\"L\",u,f.plotY]]).push([\"L\",u,g]):p=[[\"L\",u,g]],a.push(d.x),l&&(a.push(d.x),2===l&&a.push(d.x)),n.push.apply(n,p),h=!1)}),n.xMap=a,r.graphPath=n,n}}return n.defaultOptions=r(t.defaultOptions,{legendSymbol:\"lineMarker\"}),e.registerSeriesType(\"line\",n),n}),i(e,\"Series/Area/AreaSeriesDefaults.js\",[],function(){return{threshold:0,legendSymbol:\"areaMarker\"}}),i(e,\"Series/Area/AreaSeries.js\",[e[\"Series/Area/AreaSeriesDefaults.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{seriesTypes:{line:s}}=e,{extend:r,merge:o,objectEach:n,pick:a}=i;class h extends s{drawGraph(){this.areaPath=[],super.drawGraph.apply(this);let{areaPath:t,options:e}=this;[this,...this.zones].forEach((i,s)=>{let r={},o=i.fillColor||e.fillColor,n=i.area,a=n?\"animate\":\"attr\";n?(n.endX=this.preventGraphAnimation?null:t.xMap,n.animate({d:t})):(r.zIndex=0,(n=i.area=this.chart.renderer.path(t).addClass(\"highcharts-area\"+(s?` highcharts-zone-area-${s-1} `:\" \")+(s&&i.className||\"\")).add(this.group)).isArea=!0),this.chart.styledMode||(r.fill=o||i.color||this.color,r[\"fill-opacity\"]=o?1:e.fillOpacity??.75,n.css({pointerEvents:this.stickyTracking?\"none\":\"auto\"})),n[a](r),n.startX=t.xMap,n.shiftUnit=e.step?2:1})}getGraphPath(t){let e,i,r;let o=s.prototype.getGraphPath,n=this.options,h=n.stacking,l=this.yAxis,d=[],c=[],p=this.index,u=l.stacking.stacks[this.stackKey],g=n.threshold,f=Math.round(l.getThreshold(n.threshold)),m=a(n.connectNulls,\"percent\"===h),x=function(i,s,r){let o=t[i],n=h&&u[o.x].points[p],a=o[r+\"Null\"]||0,m=o[r+\"Cliff\"]||0,x,y,b=!0;m||a?(x=(a?n[0]:n[1])+m,y=n[0]+m,b=!!a):!h&&t[s]&&t[s].isNull&&(x=y=g),void 0!==x&&(c.push({plotX:e,plotY:null===x?f:l.getThreshold(x),isNull:b,isCliff:!0}),d.push({plotX:e,plotY:null===y?f:l.getThreshold(y),doCurve:!1}))};t=t||this.points,h&&(t=this.getStackPoints(t));for(let s=0,o=t.length;s1&&h&&c.some(t=>t.isCliff)&&(S.hasStackedCliffs=C.hasStackedCliffs=!0),S.xMap=y.xMap,this.areaPath=S,C}getStackPoints(t){let e=this,i=[],s=[],r=this.xAxis,o=this.yAxis,h=o.stacking.stacks[this.stackKey],l={},d=o.series,c=d.length,p=o.options.reversedStacks?1:-1,u=d.indexOf(e);if(t=t||this.points,this.options.stacking){for(let e=0;et.visible);s.forEach(function(t,n){let f=0,m,x;if(l[t]&&!l[t].isNull)i.push(l[t]),[-1,1].forEach(function(i){let r=1===i?\"rightNull\":\"leftNull\",o=h[s[n+i]],a=0;if(o){let i=u;for(;i>=0&&i=0&&ei&&o>l?(o=Math.max(i,l),a=2*l-o):op&&a>l?(a=Math.max(p,l),o=2*l-a):a1){let r=this.xAxis.series.filter(t=>t.visible).map(t=>t.index),o=0,n=0;b(this.xAxis.stacking?.stacks,t=>{if(\"number\"==typeof i.x){let e=t[i.x.toString()];if(e&&f(e.points[this.index])){let t=Object.keys(e.points).filter(t=>!t.match(\",\")&&e.points[t]&&e.points[t].length>1).map(parseFloat).filter(t=>-1!==r.indexOf(t)).sort((t,e)=>e-t);o=t.indexOf(this.index),n=t.length}}}),o=this.xAxis.reversed?n-1-o:o;let a=(n-1)*s.paddedWidth+e;t=(i.plotX||0)+a/2-e-o*s.paddedWidth}return t}translate(){let t=this,e=t.chart,i=t.options,s=t.dense=t.closestPointRange*t.xAxis.transA<2,o=t.borderWidth=y(i.borderWidth,s?0:1),n=t.xAxis,a=t.yAxis,h=i.threshold,l=y(i.minPointLength,5),c=t.getColumnMetrics(),u=c.width,f=t.pointXOffset=c.offset,x=t.dataMin,b=t.dataMax,v=t.translatedThreshold=a.getThreshold(h),S=t.barW=Math.max(u,1+2*o);i.pointPadding&&(S=Math.ceil(S)),r.prototype.translate.apply(t),t.points.forEach(function(s){let r=y(s.yBottom,v),o=999+Math.abs(r),g=s.plotX||0,C=d(s.plotY,-o,a.len+o),k,M=Math.min(C,r),w=Math.max(C,r)-M,A=u,T=g+f,P=S;l&&Math.abs(w)l?r-l:v-(k?l:0)),p(s.options.pointWidth)&&(T-=Math.round(((A=P=Math.ceil(s.options.pointWidth))-u)/2)),i.centerInCategory&&!i.stacking&&(T=t.adjustForMissingColumns(T,A,s,c)),s.barX=T,s.pointWidth=A,s.tooltipPos=e.inverted?[d(a.len+a.pos-e.plotLeft-C,a.pos-e.plotLeft,a.len+a.pos-e.plotLeft),n.len+n.pos-e.plotTop-T-P/2,w]:[n.left-e.plotLeft+T+P/2,d(C+a.pos-e.plotTop,a.pos-e.plotTop,a.len+a.pos-e.plotTop),w],s.shapeType=t.pointClass.prototype.shapeType||\"roundedRect\",s.shapeArgs=t.crispCol(T,s.isNull?v:M,P,s.isNull?0:w)}),g(this,\"afterColumnTranslate\")}drawGraph(){this.group[this.dense?\"addClass\":\"removeClass\"](\"highcharts-dense-data\")}pointAttribs(t,e){let i=this.options,s=this.pointAttrToOptions||{},r=s.stroke||\"borderColor\",o=s[\"stroke-width\"]||\"borderWidth\",n,a,l,d=t&&t.color||this.color,c=t&&t[r]||i[r]||d,p=t&&t.options.dashStyle||i.dashStyle,u=t&&t[o]||i[o]||this[o]||0,g=y(t&&t.opacity,i.opacity,1);t&&this.zones.length&&(a=t.getZone(),d=t.options.color||a&&(a.color||t.nonZonedColor)||this.color,a&&(c=a.borderColor||c,p=a.dashStyle||p,u=a.borderWidth||u)),e&&t&&(l=(n=x(i.states[e],t.options.states&&t.options.states[e]||{})).brightness,d=n.color||void 0!==l&&h(d).brighten(n.brightness).get()||d,c=n[r]||c,u=n[o]||u,p=n.dashStyle||p,g=y(n.opacity,g));let f={fill:d,stroke:c,\"stroke-width\":u,opacity:g};return p&&(f.dashstyle=p),f}drawPoints(t=this.points){let e;let i=this,s=this.chart,r=i.options,o=s.renderer,n=r.animationLimit||250;t.forEach(function(t){let a=t.plotY,h=t.graphic,l=!!h,d=h&&s.pointCountt?.enabled)}function i(t,e,i,s,r){let{chart:o,enabledDataSorting:h}=this,l=this.isCartesian&&o.inverted,d=t.plotX,p=t.plotY,g=i.rotation||0,f=n(d)&&n(p)&&o.isInsidePlot(d,Math.round(p),{inverted:l,paneCoordinates:!0,series:this}),m=0===g&&\"justify\"===u(i.overflow,h?\"none\":\"justify\"),x=this.visible&&!1!==t.visible&&n(d)&&(t.series.forceDL||h&&!m||f||u(i.inside,!!this.options.stacking)&&s&&o.isInsidePlot(d,l?s.x+1:s.y+s.height-1,{inverted:l,paneCoordinates:!0,series:this})),y=t.pos();if(x&&y){var b;let n=e.getBBox(),d=e.getBBox(void 0,0),p={right:1,center:.5}[i.align||0]||0,v={bottom:1,middle:.5}[i.verticalAlign||0]||0;if(s=a({x:y[0],y:Math.round(y[1]),width:0,height:0},s||{}),\"plotEdges\"===i.alignTo&&this.isCartesian&&(s[l?\"x\":\"y\"]=0,s[l?\"width\":\"height\"]=this.yAxis?.len||0),a(i,{width:n.width,height:n.height}),b=s,h&&this.xAxis&&!m&&this.setDataLabelStartPos(t,e,r,f,b),e.align(c(i,{width:d.width,height:d.height}),!1,s,!1),e.alignAttr.x+=p*(d.width-n.width),e.alignAttr.y+=v*(d.height-n.height),e[e.placed?\"animate\":\"attr\"]({x:e.alignAttr.x+(n.width-d.width)/2,y:e.alignAttr.y+(n.height-d.height)/2,rotationOriginX:(e.width||0)/2,rotationOriginY:(e.height||0)/2}),m&&s.height>=0)this.justifyDataLabel(e,i,e.alignAttr,n,s,r);else if(u(i.crop,!0)){let{x:t,y:i}=e.alignAttr;x=o.isInsidePlot(t,i,{paneCoordinates:!0,series:this})&&o.isInsidePlot(t+n.width-1,i+n.height-1,{paneCoordinates:!0,series:this})}i.shape&&!g&&e[r?\"attr\":\"animate\"]({anchorX:y[0],anchorY:y[1]})}r&&h&&(e.placed=!1),x||h&&!m?(e.show(),e.placed=!0):(e.hide(),e.placed=!1)}function s(){return this.plotGroup(\"dataLabelsGroup\",\"data-labels\",this.hasRendered?\"inherit\":\"hidden\",this.options.dataLabels.zIndex||6)}function m(t){let e=this.hasRendered||0,i=this.initDataLabelsGroup().attr({opacity:+e});return!e&&i&&(this.visible&&i.show(),this.options.animation?i.animate({opacity:1},t):i.attr({opacity:1})),i}function x(t){let e;t=t||this.points;let i=this,s=i.chart,a=i.options,l=s.renderer,{backgroundColor:c,plotBackgroundColor:m}=s.options.chart,x=l.getContrast(d(m)&&m||d(c)&&c||\"#000000\"),y=v(i),{animation:S,defer:C}=y[0],k=C?r(s,S,i):{defer:0,duration:0};h(this,\"drawDataLabels\"),i.hasDataLabels?.()&&(e=this.initDataLabels(k),t.forEach(t=>{let r=t.dataLabels||[];f(b(y,t.dlOptions||t.options?.dataLabels)).forEach((c,f)=>{let m=c.enabled&&(t.visible||t.dataLabelOnHidden)&&(!t.isNull||t.dataLabelOnNull)&&function(t,e){let i=e.filter;if(i){let e=i.operator,s=t[i.property],r=i.value;return\">\"===e&&s>r||\"<\"===e&&s=\"===e&&s>=r||\"<=\"===e&&s<=r||\"==\"===e&&s==r||\"===\"===e&&s===r||\"!=\"===e&&s!=r||\"!==\"===e&&s!==r}return!0}(t,c),{backgroundColor:y,borderColor:b,distance:v,style:S={}}=c,C,k,M,w,A={},T=r[f],P=!T,L;m&&(k=u(c[t.formatPrefix+\"Format\"],c.format),C=t.getLabelConfig(),M=n(k)?o(k,C,s):(c[t.formatPrefix+\"Formatter\"]||c.formatter).call(C,c),w=c.rotation,!s.styledMode&&(S.color=u(c.color,S.color,d(i.color)?i.color:void 0,\"#000000\"),\"contrast\"===S.color?(\"none\"!==y&&(L=y),t.contrastColor=l.getContrast(\"auto\"!==L&&L||t.color||i.color),S.color=L||!n(v)&&c.inside||0>g(v||0)||a.stacking?t.contrastColor:x):delete t.contrastColor,a.cursor&&(S.cursor=a.cursor)),A={r:c.borderRadius||0,rotation:w,padding:c.padding,zIndex:1},s.styledMode||(A.fill=\"auto\"===y?t.color:y,A.stroke=\"auto\"===b?t.color:b,A[\"stroke-width\"]=c.borderWidth),p(A,(t,e)=>{void 0===t&&delete A[e]})),!T||m&&n(M)&&!!T.div==!!c.useHTML&&(T.rotation&&c.rotation||T.rotation===c.rotation)||(T=void 0,P=!0),m&&n(M)&&(T?A.text=M:(T=l.label(M,0,0,c.shape,void 0,void 0,c.useHTML,void 0,\"data-label\")).addClass(\" highcharts-data-label-color-\"+t.colorIndex+\" \"+(c.className||\"\")+(c.useHTML?\" highcharts-tracker\":\"\")),T&&(T.options=c,T.attr(A),s.styledMode||T.css(S).shadow(c.shadow),h(T,\"beforeAddingDataLabel\",{labelOptions:c,point:t}),T.added||T.add(e),i.alignDataLabel(t,T,c,void 0,P),T.isActive=!0,r[f]&&r[f]!==T&&r[f].destroy(),r[f]=T))});let c=r.length;for(;c--;)r[c]&&r[c].isActive?r[c].isActive=!1:(r[c]?.destroy(),r.splice(c,1));t.dataLabel=r[0],t.dataLabels=r})),h(this,\"afterDrawDataLabels\")}function y(t,e,i,s,r,o){let n=this.chart,a=e.align,h=e.verticalAlign,l=t.box?0:t.padding||0,d=n.inverted?this.yAxis:this.xAxis,c=d?d.left-n.plotLeft:0,p=n.inverted?this.xAxis:this.yAxis,u=p?p.top-n.plotTop:0,{x:g=0,y:f=0}=e,m,x;return(m=(i.x||0)+l+c)<0&&(\"right\"===a&&g>=0?(e.align=\"left\",e.inside=!0):g-=m,x=!0),(m=(i.x||0)+s.width-l+c)>n.plotWidth&&(\"left\"===a&&g<=0?(e.align=\"right\",e.inside=!0):g+=n.plotWidth-m,x=!0),(m=i.y+l+u)<0&&(\"bottom\"===h&&f>=0?(e.verticalAlign=\"top\",e.inside=!0):f-=m,x=!0),(m=(i.y||0)+s.height-l+u)>n.plotHeight&&(\"top\"===h&&f<=0?(e.verticalAlign=\"bottom\",e.inside=!0):f+=n.plotHeight-m,x=!0),x&&(e.x=g,e.y=f,t.placed=!o,t.align(e,void 0,r)),x}function b(t,e){let i=[],s;if(l(t)&&!l(e))i=t.map(function(t){return c(t,e)});else if(l(e)&&!l(t))i=e.map(function(e){return c(t,e)});else if(l(t)||l(e)){if(l(t)&&l(e))for(s=Math.max(t.length,e.length);s--;)i[s]=c(t[s],e[s])}else i=c(t,e);return i}function v(t){let e=t.chart.options.plotOptions;return f(b(b(e?.series?.dataLabels,e?.[t.type]?.dataLabels),t.options.dataLabels))}function S(t,e,i,s,r){let o=this.chart,n=o.inverted,a=this.xAxis,h=a.reversed,l=((n?e.height:e.width)||0)/2,d=t.pointWidth,c=d?d/2:0;e.startXPos=n?r.x:h?-l-c:a.width-l+c,e.startYPos=n?h?this.yAxis.height-l+c:-l-c:r.y,s?\"hidden\"===e.visibility&&(e.show(),e.attr({opacity:0}).animate({opacity:1})):e.attr({opacity:1}).animate({opacity:0},void 0,e.hide),o.hasRendered&&(i&&e.attr({x:e.startXPos,y:e.startYPos}),e.placed=!0)}t.compose=function(t){let r=t.prototype;r.initDataLabels||(r.initDataLabels=m,r.initDataLabelsGroup=s,r.alignDataLabel=i,r.drawDataLabels=x,r.justifyDataLabel=y,r.setDataLabelStartPos=S,r.hasDataLabels=e)}}(s||(s={})),s}),i(e,\"Series/Column/ColumnDataLabel.js\",[e[\"Core/Series/DataLabel.js\"],e[\"Core/Globals.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s){var r;let{composed:o}=e,{series:n}=i,{merge:a,pick:h,pushUnique:l}=s;return function(e){function i(t,e,i,s,r){let o=this.chart.inverted,l=t.series,d=(l.xAxis?l.xAxis.len:this.chart.plotSizeX)||0,c=(l.yAxis?l.yAxis.len:this.chart.plotSizeY)||0,p=t.dlBox||t.shapeArgs,u=h(t.below,t.plotY>h(this.translatedThreshold,c)),g=h(i.inside,!!this.options.stacking);if(p){if(s=a(p),!(\"allow\"===i.overflow&&!1===i.crop)){s.y<0&&(s.height+=s.y,s.y=0);let t=s.y+s.height-c;t>0&&t {series.name}
',pointFormat:\"x: {point.x}
y: {point.y}
\"}}}),i(e,\"Series/Scatter/ScatterSeries.js\",[e[\"Series/Scatter/ScatterSeriesDefaults.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{column:s,line:r}=e.seriesTypes,{addEvent:o,extend:n,merge:a}=i;class h extends r{applyJitter(){let t=this,e=this.options.jitter,i=this.points.length;e&&this.points.forEach(function(s,r){[\"x\",\"y\"].forEach(function(o,n){if(e[o]&&!s.isNull){let a=`plot${o.toUpperCase()}`,h=t[`${o}Axis`],l=e[o]*h.transA;if(h&&!h.logarithmic){let t=Math.max(0,(s[a]||0)-l),e=Math.min(h.len,(s[a]||0)+l);s[a]=t+(e-t)*function(t){let e=1e4*Math.sin(t);return e-Math.floor(e)}(r+n*i),\"x\"===o&&(s.clientX=s.plotX)}}})})}drawGraph(){this.options.lineWidth?super.drawGraph():this.graph&&(this.graph=this.graph.destroy())}}return h.defaultOptions=a(r.defaultOptions,t),n(h.prototype,{drawTracker:s.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[\"group\",\"markerGroup\",\"dataLabelsGroup\"]}),o(h,\"afterTranslate\",function(){this.applyJitter()}),e.registerSeriesType(\"scatter\",h),h}),i(e,\"Series/CenteredUtilities.js\",[e[\"Core/Globals.js\"],e[\"Core/Series/Series.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){var s,r;let{deg2rad:o}=t,{fireEvent:n,isNumber:a,pick:h,relativeLength:l}=i;return(r=s||(s={})).getCenter=function(){let t=this.options,i=this.chart,s=2*(t.slicedOffset||0),r=i.plotWidth-2*s,o=i.plotHeight-2*s,d=t.center,c=Math.min(r,o),p=t.thickness,u,g=t.size,f=t.innerSize||0,m,x;\"string\"==typeof g&&(g=parseFloat(g)),\"string\"==typeof f&&(f=parseFloat(f));let y=[h(d[0],\"50%\"),h(d[1],\"50%\"),h(g&&g<0?void 0:t.size,\"100%\"),h(f&&f<0?void 0:t.innerSize||0,\"0%\")];for(!i.angular||this instanceof e||(y[3]=0),m=0;m<4;++m)x=y[m],u=m<2||2===m&&/%$/.test(x),y[m]=l(x,[r,o,c,y[2]][m])+(u?s:0);return y[3]>y[2]&&(y[3]=y[2]),a(p)&&2*p0&&(y[3]=y[2]-2*p),n(this,\"afterGetCenter\",{positions:y}),y},r.getStartAndEndRadians=function(t,e){let i=a(t)?t:0,s=a(e)&&e>i&&e-i<360?e:i+360;return{start:o*(i+-90),end:o*(s+-90)}},s}),i(e,\"Series/Pie/PiePoint.js\",[e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{setAnimation:s}=t,{addEvent:r,defined:o,extend:n,isNumber:a,pick:h,relativeLength:l}=i;class d extends e{getConnectorPath(t){let e=t.dataLabelPosition,i=t.options||{},s=i.connectorShape,r=this.connectorShapes[s]||s;return e&&r.call(this,{...e.computed,alignment:e.alignment},e.connectorPosition,i)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(t){let e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+t,e.r+t,{innerR:e.r-1,start:e.start,end:e.end,borderRadius:e.borderRadius})}constructor(t,e,i){super(t,e,i),this.half=0,this.name??(this.name=\"Slice\");let s=t=>{this.slice(\"select\"===t.type)};r(this,\"select\",s),r(this,\"unselect\",s)}isValid(){return a(this.y)&&this.y>=0}setVisible(t,e=!0){t!==this.visible&&this.update({visible:t??!this.visible},e,void 0,!1)}slice(t,e,i){let r=this.series;s(i,r.chart),e=h(e,!0),this.sliced=this.options.sliced=t=o(t)?t:!this.sliced,r.options.data[r.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}return n(d.prototype,{connectorShapes:{fixedOffset:function(t,e,i){let s=e.breakAt,r=e.touchingSliceAt,o=i.softConnector?[\"C\",t.x+(\"left\"===t.alignment?-5:5),t.y,2*s.x-r.x,2*s.y-r.y,s.x,s.y]:[\"L\",s.x,s.y];return[[\"M\",t.x,t.y],o,[\"L\",r.x,r.y]]},straight:function(t,e){let i=e.touchingSliceAt;return[[\"M\",t.x,t.y],[\"L\",i.x,i.y]]},crookedLine:function(t,e,i){let{breakAt:s,touchingSliceAt:r}=e,{series:o}=this,[n,a,h]=o.center,d=h/2,{plotLeft:c,plotWidth:p}=o.chart,u=\"left\"===t.alignment,{x:g,y:f}=t,m=s.x;if(i.crookDistance){let t=l(i.crookDistance,1);m=u?n+d+(p+c-n-d)*(1-t):c+(n-d)*t}else m=n+(a-f)*Math.tan((this.angle||0)-Math.PI/2);let x=[[\"M\",g,f]];return(u?m<=g&&m>=s.x:m>=g&&m<=s.x)&&x.push([\"L\",m,f]),x.push([\"L\",s.x,s.y],[\"L\",r.x,r.y]),x}}}),d}),i(e,\"Series/Pie/PieSeriesDefaults.js\",[],function(){return{borderRadius:3,center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{connectorPadding:5,connectorShape:\"crookedLine\",crookDistance:void 0,distance:30,enabled:!0,formatter:function(){return this.point.isNull?void 0:this.point.name},softConnector:!0,x:0},fillColor:void 0,ignoreHiddenPoint:!0,inactiveOtherPoints:!0,legendType:\"point\",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:\"#ffffff\",borderWidth:1,lineWidth:void 0,states:{hover:{brightness:.1}}}}),i(e,\"Series/Pie/PieSeries.js\",[e[\"Series/CenteredUtilities.js\"],e[\"Series/Column/ColumnSeries.js\"],e[\"Core/Globals.js\"],e[\"Series/Pie/PiePoint.js\"],e[\"Series/Pie/PieSeriesDefaults.js\"],e[\"Core/Series/Series.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Renderer/SVG/Symbols.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r,o,n,a,h){let{getStartAndEndRadians:l}=t,{noop:d}=i,{clamp:c,extend:p,fireEvent:u,merge:g,pick:f}=h;class m extends o{animate(t){let e=this,i=e.points,s=e.startAngleRad;t||i.forEach(function(t){let i=t.graphic,r=t.shapeArgs;i&&r&&(i.attr({r:f(t.startR,e.center&&e.center[3]/2),start:s,end:s}),i.animate({r:r.r,start:r.start,end:r.end},e.options.animation))})}drawEmpty(){let t,e;let i=this.startAngleRad,s=this.endAngleRad,r=this.options;0===this.total&&this.center?(t=this.center[0],e=this.center[1],this.graph||(this.graph=this.chart.renderer.arc(t,e,this.center[1]/2,0,i,s).addClass(\"highcharts-empty-series\").add(this.group)),this.graph.attr({d:a.arc(t,e,this.center[2]/2,0,{start:i,end:s,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({\"stroke-width\":r.borderWidth,fill:r.fillColor||\"none\",stroke:r.color||\"#cccccc\"})):this.graph&&(this.graph=this.graph.destroy())}drawPoints(){let t=this.chart.renderer;this.points.forEach(function(e){e.graphic&&e.hasNewShapeType()&&(e.graphic=e.graphic.destroy()),e.graphic||(e.graphic=t[e.shapeType](e.shapeArgs).add(e.series.group),e.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(t,e,i,s){let r=this.center,o=this.radii?this.radii[i.index]||0:r[2]/2,n=s.dataLabelPosition,a=n?.distance||0,h=Math.asin(c((t-r[1])/(o+a),-1,1));return r[0]+Math.cos(h)*(o+a)*(e?-1:1)+(a>0?(e?-1:1)*(s.padding||0):0)}hasData(){return!!this.processedXData.length}redrawPoints(){let t,e,i,s;let r=this,o=r.chart;this.drawEmpty(),r.group&&!o.styledMode&&r.group.shadow(r.options.shadow),r.points.forEach(function(n){let a={};e=n.graphic,!n.isNull&&e?(s=n.shapeArgs,t=n.getTranslate(),o.styledMode||(i=r.pointAttribs(n,n.selected&&\"select\")),n.delayedRendering?(e.setRadialReference(r.center).attr(s).attr(t),o.styledMode||e.attr(i).attr({\"stroke-linejoin\":\"round\"}),n.delayedRendering=!1):(e.setRadialReference(r.center),o.styledMode||g(!0,a,i),g(!0,a,s,t),e.animate(a)),e.attr({visibility:n.visible?\"inherit\":\"hidden\"}),e.addClass(n.getClassName(),!0)):e&&(n.graphic=e.destroy())})}sortByAngle(t,e){t.sort(function(t,i){return void 0!==t.angle&&(i.angle-t.angle)*e})}translate(t){u(this,\"translate\"),this.generatePoints();let e=this.options,i=e.slicedOffset,s=l(e.startAngle,e.endAngle),r=this.startAngleRad=s.start,o=(this.endAngleRad=s.end)-r,n=this.points,a=e.ignoreHiddenPoint,h=n.length,d,c,p,g,f,m,x,y=0;for(t||(this.center=t=this.getCenter()),m=0;m1.5*Math.PI?p-=2*Math.PI:p<-Math.PI/2&&(p+=2*Math.PI),x.slicedTranslation={translateX:Math.round(Math.cos(p)*i),translateY:Math.round(Math.sin(p)*i)},g=Math.cos(p)*t[2]/2,f=Math.sin(p)*t[2]/2,x.tooltipPos=[t[0]+.7*g,t[1]+.7*f],x.half=p<-Math.PI/2||p>Math.PI/2?1:0,x.angle=p}u(this,\"afterTranslate\")}updateTotals(){let t=this.points,e=t.length,i=this.options.ignoreHiddenPoint,s,r,o=0;for(s=0;s0&&(r.visible||!i)?r.y/o*100:0,r.total=o}}return m.defaultOptions=g(o.defaultOptions,r),p(m.prototype,{axisTypes:[],directTouch:!0,drawGraph:void 0,drawTracker:e.prototype.drawTracker,getCenter:t.getCenter,getSymbol:d,invertible:!1,isCartesian:!1,noSharedTooltip:!0,pointAttribs:e.prototype.pointAttribs,pointClass:s,requireSorting:!1,searchPoint:d,trackerGroups:[\"group\",\"dataLabelsGroup\"]}),n.registerSeriesType(\"pie\",m),m}),i(e,\"Series/Pie/PieDataLabel.js\",[e[\"Core/Series/DataLabel.js\"],e[\"Core/Globals.js\"],e[\"Core/Renderer/RendererUtilities.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Core/Utilities.js\"]],function(t,e,i,s,r){var o;let{composed:n,noop:a}=e,{distribute:h}=i,{series:l}=s,{arrayMax:d,clamp:c,defined:p,pick:u,pushUnique:g,relativeLength:f}=r;return function(e){let i={radialDistributionY:function(t,e){return(e.dataLabelPosition?.top||0)+t.distributeBox.pos},radialDistributionX:function(t,e,i,s,r){let o=r.dataLabelPosition;return t.getX(i<(o?.top||0)+2||i>(o?.bottom||0)-2?s:i,e.half,e,r)},justify:function(t,e,i,s){return s[0]+(t.half?-1:1)*(i+(e.dataLabelPosition?.distance||0))},alignToPlotEdges:function(t,e,i,s){let r=t.getBBox().width;return e?r+s:i-r-s},alignToConnectors:function(t,e,i,s){let r=0,o;return t.forEach(function(t){(o=t.dataLabel.getBBox().width)>r&&(r=o)}),e?r+s:i-r-s}};function s(t,e){let{center:i,options:s}=this,r=i[2]/2,o=t.angle||0,n=Math.cos(o),a=Math.sin(o),h=i[0]+n*r,l=i[1]+a*r,d=Math.min((s.slicedOffset||0)+(s.borderWidth||0),e/5);return{natural:{x:h+n*e,y:l+a*e},computed:{},alignment:e<0?\"center\":t.half?\"right\":\"left\",connectorPosition:{breakAt:{x:h+n*d,y:l+a*d},touchingSliceAt:{x:h,y:l}},distance:e}}function r(){let t=this,e=t.points,i=t.chart,s=i.plotWidth,r=i.plotHeight,o=i.plotLeft,n=Math.round(i.chartWidth/3),a=t.center,c=a[2]/2,g=a[1],m=[[],[]],x=[0,0,0,0],y=t.dataLabelPositioners,b,v,S,C=0;t.visible&&t.hasDataLabels?.()&&(e.forEach(t=>{(t.dataLabels||[]).forEach(t=>{t.shortened&&(t.attr({width:\"auto\"}).css({width:\"auto\",textOverflow:\"clip\"}),t.shortened=!1)})}),l.prototype.drawDataLabels.apply(t),e.forEach(t=>{(t.dataLabels||[]).forEach((e,i)=>{let s=a[2]/2,r=e.options,o=f(r?.distance||0,s);0===i&&m[t.half].push(t),!p(r?.style?.width)&&e.getBBox().width>n&&(e.css({width:Math.round(.7*n)+\"px\"}),e.shortened=!0),e.dataLabelPosition=this.getDataLabelPosition(t,o),C=Math.max(C,o)})}),m.forEach((e,n)=>{let l=e.length,d=[],f,m,b=0,k;l&&(t.sortByAngle(e,n-.5),C>0&&(f=Math.max(0,g-c-C),m=Math.min(g+c+C,i.plotHeight),e.forEach(t=>{(t.dataLabels||[]).forEach(e=>{let s=e.dataLabelPosition;s&&s.distance>0&&(s.top=Math.max(0,g-c-s.distance),s.bottom=Math.min(g+c+s.distance,i.plotHeight),b=e.getBBox().height||21,e.lineHeight=i.renderer.fontMetrics(e.text||e).h+2*e.padding,t.distributeBox={target:(e.dataLabelPosition?.natural.y||0)-s.top+e.lineHeight/2,size:b,rank:t.y},d.push(t.distributeBox))})}),h(d,k=m+b-f,k/5)),e.forEach(i=>{(i.dataLabels||[]).forEach(h=>{let l=h.options||{},g=i.distributeBox,f=h.dataLabelPosition,m=f?.natural.y||0,b=l.connectorPadding||0,C=h.lineHeight||21,k=(C-h.getBBox().height)/2,M=0,w=m,A=\"inherit\";if(f){if(d&&p(g)&&f.distance>0&&(void 0===g.pos?A=\"hidden\":(S=g.size,w=y.radialDistributionY(i,h))),l.justify)M=y.justify(i,h,c,a);else switch(l.alignTo){case\"connectors\":M=y.alignToConnectors(e,n,s,o);break;case\"plotEdges\":M=y.alignToPlotEdges(h,n,s,o);break;default:M=y.radialDistributionX(t,i,w-k,m,h)}if(f.attribs={visibility:A,align:f.alignment},f.posAttribs={x:M+(l.x||0)+(({left:b,right:-b})[f.alignment]||0),y:w+(l.y||0)-C/2},f.computed.x=M,f.computed.y=w-k,u(l.crop,!0)){let t;M-(v=h.getBBox().width)s-b&&0===n&&(t=Math.round(M+v-s+b),x[1]=Math.max(t,x[1])),w-S/2<0?x[0]=Math.max(Math.round(-w+S/2),x[0]):w+S/2>r&&(x[2]=Math.max(Math.round(w+S/2-r),x[2])),f.sideOverflow=t}}})}))}),(0===d(x)||this.verifyDataLabelOverflow(x))&&(this.placeDataLabels(),this.points.forEach(e=>{(e.dataLabels||[]).forEach(s=>{let{connectorColor:r,connectorWidth:o=1}=s.options||{},n=s.dataLabelPosition;if(o){let a;b=s.connector,n&&n.distance>0?(a=!b,b||(s.connector=b=i.renderer.path().addClass(\"highcharts-data-label-connector highcharts-color-\"+e.colorIndex+(e.className?\" \"+e.className:\"\")).add(t.dataLabelsGroup)),i.styledMode||b.attr({\"stroke-width\":o,stroke:r||e.color||\"#666666\"}),b[a?\"attr\":\"animate\"]({d:e.getConnectorPath(s)}),b.attr({visibility:n.attribs?.visibility})):b&&(s.connector=b.destroy())}})})))}function o(){this.points.forEach(t=>{(t.dataLabels||[]).forEach(t=>{let e=t.dataLabelPosition;e?(e.sideOverflow&&(t.css({width:Math.max(t.getBBox().width-e.sideOverflow,0)+\"px\",textOverflow:(t.options?.style||{}).textOverflow||\"ellipsis\"}),t.shortened=!0),t.attr(e.attribs),t[t.moved?\"animate\":\"attr\"](e.posAttribs),t.moved=!0):t&&t.attr({y:-9999})}),delete t.distributeBox},this)}function m(t){let e=this.center,i=this.options,s=i.center,r=i.minSize||80,o=r,n=null!==i.size;return!n&&(null!==s[0]?o=Math.max(e[2]-Math.max(t[1],t[3]),r):(o=Math.max(e[2]-t[1]-t[3],r),e[0]+=(t[3]-t[1])/2),null!==s[1]?o=c(o,r,e[2]-Math.max(t[0],t[2])):(o=c(o,r,e[2]-t[0]-t[2]),e[1]+=(t[0]-t[2])/2),o(t.x+=e.x,t.y+=e.y,t),{x:0,y:0});return{x:e.x/t.length,y:e.y/t.length}},e.getDistanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},e.getAngleBetweenPoints=function(t,e){return Math.atan2(e.x-t.x,e.y-t.y)},e.pointInPolygon=function({x:t,y:e},i){let s=i.length,r,o,n=!1;for(r=0,o=s-1;re!=l>e&&t<(h-s)*(e-a)/(l-a)+s&&(n=!n)}return n},t}),i(e,\"Extensions/OverlappingDataLabels.js\",[e[\"Core/Geometry/GeometryUtilities.js\"],e[\"Core/Utilities.js\"]],function(t,e){let{pointInPolygon:i}=t,{addEvent:s,fireEvent:r,objectEach:o,pick:n}=e;function a(t){let e=t.length,s=(t,e)=>!(e.x>=t.x+t.width||e.x+e.width<=t.x||e.y>=t.y+t.height||e.y+e.height<=t.y),o=(t,e)=>{for(let s of t)if(i({x:s[0],y:s[1]},e))return!0;return!1},n,a,l,d,c,p=!1;for(let i=0;i(e.labelrank||0)-(t.labelrank||0));for(let i=0;i{o(t,t=>{t.label&&e.push(t.label)})});for(let i of t.series||[])if(i.visible&&i.hasDataLabels?.()){let s=i=>{for(let s of i)s.visible&&(s.dataLabels||[]).forEach(i=>{let r=i.options||{};i.labelrank=n(r.labelrank,s.labelrank,s.shapeArgs?.height),r.allowOverlap??Number(r.distance)>0?(i.oldOpacity=i.opacity,i.newOpacity=1,h(i,t)):e.push(i)})};s(i.nodes||[]),s(i.points)}this.hideOverlappingLabels(e)}return{compose:function(t){let e=t.prototype;e.hideOverlappingLabels||(e.hideOverlappingLabels=a,s(t,\"render\",l))}}}),i(e,\"Extensions/BorderRadius.js\",[e[\"Core/Defaults.js\"],e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"]],function(t,e,i){let{defaultOptions:s}=t,{noop:r}=e,{addEvent:o,extend:n,isObject:a,merge:h,relativeLength:l}=i,d={radius:0,scope:\"stack\",where:void 0},c=r,p=r;function u(t,e,i,s,r={}){let o=c(t,e,i,s,r),{innerR:n=0,r:a=i,start:h=0,end:d=0}=r;if(r.open||!r.borderRadius)return o;let p=d-h,g=Math.sin(p/2),f=Math.max(Math.min(l(r.borderRadius||0,a-n),(a-n)/2,a*g/(1+g)),0),m=Math.min(f,p/Math.PI*2*n),x=o.length-1;for(;x--;)!function(t,e,i){let s,r,o;let n=t[e],a=t[e+1];if(\"Z\"===a[0]&&(a=t[0]),(\"M\"===n[0]||\"L\"===n[0])&&\"A\"===a[0]?(s=n,r=a,o=!0):\"A\"===n[0]&&(\"M\"===a[0]||\"L\"===a[0])&&(s=a,r=n),s&&r&&r.params){let n=r[1],a=r[5],h=r.params,{start:l,end:d,cx:c,cy:p}=h,u=a?n-i:n+i,g=u?Math.asin(i/u):0,f=a?g:-g,m=Math.cos(g)*u;o?(h.start=l+f,s[1]=c+m*Math.cos(l),s[2]=p+m*Math.sin(l),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+n*Math.cos(h.start),p+n*Math.sin(h.start)])):(h.end=d-f,r[6]=c+n*Math.cos(h.end),r[7]=p+n*Math.sin(h.end),t.splice(e+1,0,[\"A\",i,i,0,0,1,c+m*Math.cos(d),p+m*Math.sin(d)])),r[4]=Math.abs(h.end-h.start)1?m:f);return o}function g(){if(this.options.borderRadius&&!(this.chart.is3d&&this.chart.is3d())){let{options:t,yAxis:e}=this,i=\"percent\"===t.stacking,r=s.plotOptions?.[this.type]?.borderRadius,o=f(t.borderRadius,a(r)?r:{}),h=e.options.reversed;for(let s of this.points){let{shapeArgs:r}=s;if(\"roundedRect\"===s.shapeType&&r){let{width:a=0,height:d=0,y:c=0}=r,p=c,u=d;if(\"stack\"===o.scope&&s.stackTotal){let r=e.translate(i?100:s.stackTotal,!1,!0,!1,!0),o=e.translate(t.threshold||0,!1,!0,!1,!0),n=this.crispCol(0,Math.min(r,o),0,Math.abs(r-o));p=n.y,u=n.height}let g=(s.negative?-1:1)*(h?-1:1)==-1,f=o.where;!f&&this.is(\"waterfall\")&&Math.abs((s.yBottom||0)-(this.translatedThreshold||0))>this.borderWidth&&(f=\"all\"),f||(f=\"end\");let m=Math.min(l(o.radius,a),a/2,\"all\"===f?d/2:1/0)||0;\"end\"===f&&(g&&(p-=m),u+=m),n(r,{brBoxHeight:u,brBoxY:p,r:m})}}}}function f(t,e){return a(t)||(t={radius:t||0}),h(d,e,t)}function m(){let t=f(this.options.borderRadius);for(let e of this.points){let i=e.shapeArgs;i&&(i.borderRadius=l(t.radius,(i.r||0)-(i.innerR||0)))}}function x(t,e,i,s,r={}){let o=p(t,e,i,s,r),{r:n=0,brBoxHeight:a=s,brBoxY:h=e}=r,l=e-h,d=h+a-(e+s),c=l-n>-.1?0:n,u=d-n>-.1?0:n,g=Math.max(c&&l,0),f=Math.max(u&&d,0),m=[t+c,e],y=[t+i-c,e],b=[t+i,e+c],v=[t+i,e+s-u],S=[t+i-u,e+s],C=[t+u,e+s],k=[t,e+s-u],M=[t,e+c],w=(t,e)=>Math.sqrt(Math.pow(t,2)-Math.pow(e,2));if(g){let t=w(c,c-g);m[0]-=t,y[0]+=t,b[1]=M[1]=e+c-g}if(s=n(i.minWidth,0)&&this.chartHeight>=n(i.minHeight,0)}).call(this)&&e.push(t._id)}function h(t,e){let s=this.options.responsive,n=this.currentResponsive,h=[],l;!e&&s&&s.rules&&s.rules.forEach(t=>{void 0===t._id&&(t._id=a()),this.matchResponsiveRule(t,h)},this);let d=o(...h.map(t=>r((s||{}).rules||[],e=>e._id===t)).map(t=>t&&t.chartOptions));d.isResponsiveOptions=!0,h=h.toString()||void 0;let c=n&&n.ruleIds;h===c||(n&&(this.currentResponsive=void 0,this.updatingResponsive=!0,this.update(n.undoOptions,t,!0),this.updatingResponsive=!1),h?((l=i(d,this.options,!0,this.collectionsWithUpdate)).isResponsiveOptions=!0,this.currentResponsive={ruleIds:h,mergedOptions:d,undoOptions:l},this.updatingResponsive||this.update(d,t,!0)):this.currentResponsive=void 0)}t.compose=function(t){let i=t.prototype;return i.matchResponsiveRule||s(i,{matchResponsiveRule:e,setResponsive:h}),t}}(e||(e={})),e}),i(e,\"masters/highcharts.src.js\",[e[\"Core/Globals.js\"],e[\"Core/Utilities.js\"],e[\"Core/Defaults.js\"],e[\"Core/Animation/Fx.js\"],e[\"Core/Animation/AnimationUtilities.js\"],e[\"Core/Renderer/HTML/AST.js\"],e[\"Core/Templating.js\"],e[\"Core/Renderer/RendererRegistry.js\"],e[\"Core/Renderer/RendererUtilities.js\"],e[\"Core/Renderer/SVG/SVGElement.js\"],e[\"Core/Renderer/SVG/SVGRenderer.js\"],e[\"Core/Renderer/HTML/HTMLElement.js\"],e[\"Core/Axis/Axis.js\"],e[\"Core/Axis/DateTimeAxis.js\"],e[\"Core/Axis/LogarithmicAxis.js\"],e[\"Core/Axis/PlotLineOrBand/PlotLineOrBand.js\"],e[\"Core/Axis/Tick.js\"],e[\"Core/Tooltip.js\"],e[\"Core/Series/Point.js\"],e[\"Core/Pointer.js\"],e[\"Core/Legend/Legend.js\"],e[\"Core/Legend/LegendSymbol.js\"],e[\"Core/Chart/Chart.js\"],e[\"Extensions/ScrollablePlotArea.js\"],e[\"Core/Axis/Stacking/StackingAxis.js\"],e[\"Core/Axis/Stacking/StackItem.js\"],e[\"Core/Series/Series.js\"],e[\"Core/Series/SeriesRegistry.js\"],e[\"Series/Column/ColumnDataLabel.js\"],e[\"Series/Pie/PieDataLabel.js\"],e[\"Core/Series/DataLabel.js\"],e[\"Extensions/OverlappingDataLabels.js\"],e[\"Extensions/BorderRadius.js\"],e[\"Core/Responsive.js\"],e[\"Core/Color/Color.js\"],e[\"Core/Time.js\"]],function(t,e,i,s,r,o,n,a,h,l,d,c,p,u,g,f,m,x,y,b,v,S,C,k,M,w,A,T,P,L,O,D,E,I,j,B){return t.AST=o,t.Axis=p,t.Chart=C,t.Color=j,t.DataLabel=O,t.Fx=s,t.HTMLElement=c,t.Legend=v,t.LegendSymbol=S,t.OverlappingDataLabels=t.OverlappingDataLabels||D,t.PlotLineOrBand=f,t.Point=y,t.Pointer=b,t.RendererRegistry=a,t.Series=A,t.SeriesRegistry=T,t.StackItem=w,t.SVGElement=l,t.SVGRenderer=d,t.Templating=n,t.Tick=m,t.Time=B,t.Tooltip=x,t.animate=r.animate,t.animObject=r.animObject,t.chart=C.chart,t.color=j.parse,t.dateFormat=n.dateFormat,t.defaultOptions=i.defaultOptions,t.distribute=h.distribute,t.format=n.format,t.getDeferredAnimation=r.getDeferredAnimation,t.getOptions=i.getOptions,t.numberFormat=n.numberFormat,t.seriesType=T.seriesType,t.setAnimation=r.setAnimation,t.setOptions=i.setOptions,t.stop=r.stop,t.time=i.defaultTime,t.timers=s.timers,E.compose(t.Series,t.SVGElement,t.SVGRenderer),P.compose(t.Series.types.column),O.compose(t.Series),u.compose(t.Axis),c.compose(t.SVGRenderer),v.compose(t.Chart),g.compose(t.Axis),D.compose(t.Chart),L.compose(t.Series.types.pie),f.compose(t.Axis),b.compose(t.Chart),I.compose(t.Chart),k.compose(t.Axis,t.Chart,t.Series),M.compose(t.Axis,t.Chart,t.Series),x.compose(t.Pointer),e.extend(t,e),t}),e[\"masters/highcharts.src.js\"]._modules=e,e[\"masters/highcharts.src.js\"]});","!/**\n * Highcharts JS v11.4.4 (2024-07-02)\n *\n * Exporting module\n *\n * (c) 2010-2024 Torstein Honsi\n *\n * License: www.highcharts.com/license\n */function(e){\"object\"==typeof module&&module.exports?(e.default=e,module.exports=e):\"function\"==typeof define&&define.amd?define(\"highcharts/modules/exporting\",[\"highcharts\"],function(t){return e(t),e.Highcharts=t,e}):e(\"undefined\"!=typeof Highcharts?Highcharts:void 0)}(function(e){\"use strict\";var t=e?e._modules:{};function n(t,n,i,o){t.hasOwnProperty(n)||(t[n]=o.apply(null,i),\"function\"==typeof CustomEvent&&e.win.dispatchEvent(new CustomEvent(\"HighchartsModuleLoaded\",{detail:{path:n,module:t[n]}})))}n(t,\"Core/Chart/ChartNavigationComposition.js\",[],function(){var e;return function(e){e.compose=function(e){return e.navigation||(e.navigation=new t(e)),e};class t{constructor(e){this.updates=[],this.chart=e}addUpdate(e){this.chart.navigation.updates.push(e)}update(e,t){this.updates.forEach(n=>{n.call(this.chart,e,t)})}}e.Additions=t}(e||(e={})),e}),n(t,\"Extensions/Exporting/ExportingDefaults.js\",[t[\"Core/Globals.js\"]],function(e){let{isTouchDevice:t}=e;return{exporting:{allowTableSorting:!0,type:\"image/png\",url:\"https://export.highcharts.com/\",pdfFont:{normal:void 0,bold:void 0,bolditalic:void 0,italic:void 0},printMaxWidth:780,scale:2,buttons:{contextButton:{className:\"highcharts-contextbutton\",menuClassName:\"highcharts-contextmenu\",symbol:\"menu\",titleKey:\"contextButtonTitle\",menuItems:[\"viewFullscreen\",\"printChart\",\"separator\",\"downloadPNG\",\"downloadJPEG\",\"downloadPDF\",\"downloadSVG\"]}},menuItemDefinitions:{viewFullscreen:{textKey:\"viewFullscreen\",onclick:function(){this.fullscreen&&this.fullscreen.toggle()}},printChart:{textKey:\"printChart\",onclick:function(){this.print()}},separator:{separator:!0},downloadPNG:{textKey:\"downloadPNG\",onclick:function(){this.exportChart()}},downloadJPEG:{textKey:\"downloadJPEG\",onclick:function(){this.exportChart({type:\"image/jpeg\"})}},downloadPDF:{textKey:\"downloadPDF\",onclick:function(){this.exportChart({type:\"application/pdf\"})}},downloadSVG:{textKey:\"downloadSVG\",onclick:function(){this.exportChart({type:\"image/svg+xml\"})}}}},lang:{viewFullscreen:\"View in full screen\",exitFullscreen:\"Exit from full screen\",printChart:\"Print chart\",downloadPNG:\"Download PNG image\",downloadJPEG:\"Download JPEG image\",downloadPDF:\"Download PDF document\",downloadSVG:\"Download SVG vector image\",contextButtonTitle:\"Chart context menu\"},navigation:{buttonOptions:{symbolSize:14,symbolX:14.5,symbolY:13.5,align:\"right\",buttonSpacing:3,height:28,verticalAlign:\"top\",width:28,symbolFill:\"#666666\",symbolStroke:\"#666666\",symbolStrokeWidth:3,theme:{fill:\"#ffffff\",padding:5,stroke:\"none\",\"stroke-linecap\":\"round\"}},menuStyle:{border:\"none\",borderRadius:\"3px\",background:\"#ffffff\",padding:\"0.5em\"},menuItemStyle:{background:\"none\",borderRadius:\"3px\",color:\"#333333\",padding:\"0.5em\",fontSize:t?\"0.9em\":\"0.8em\",transition:\"background 250ms, color 250ms\"},menuItemHoverStyle:{background:\"#f2f2f2\"}}}}),n(t,\"Extensions/Exporting/ExportingSymbols.js\",[],function(){var e;return function(e){let t=[];function n(e,t,n,i){return[[\"M\",e,t+2.5],[\"L\",e+n,t+2.5],[\"M\",e,t+i/2+.5],[\"L\",e+n,t+i/2+.5],[\"M\",e,t+i-1.5],[\"L\",e+n,t+i-1.5]]}function i(e,t,n,i){let o=i/3-2;return[].concat(this.circle(n-o,t,o,o),this.circle(n-o,t+o+4,o,o),this.circle(n-o,t+2*(o+4),o,o))}e.compose=function(e){if(-1===t.indexOf(e)){t.push(e);let o=e.prototype.symbols;o.menu=n,o.menuball=i.bind(o)}}}(e||(e={})),e}),n(t,\"Extensions/Exporting/Fullscreen.js\",[t[\"Core/Renderer/HTML/AST.js\"],t[\"Core/Globals.js\"],t[\"Core/Utilities.js\"]],function(e,t,n){let{composed:i}=t,{addEvent:o,fireEvent:r,pushUnique:s}=n;function l(){this.fullscreen=new a(this)}class a{static compose(e){s(i,\"Fullscreen\")&&o(e,\"beforeRender\",l)}constructor(e){this.chart=e,this.isOpen=!1;let t=e.renderTo;!this.browserProps&&(\"function\"==typeof t.requestFullscreen?this.browserProps={fullscreenChange:\"fullscreenchange\",requestFullscreen:\"requestFullscreen\",exitFullscreen:\"exitFullscreen\"}:t.mozRequestFullScreen?this.browserProps={fullscreenChange:\"mozfullscreenchange\",requestFullscreen:\"mozRequestFullScreen\",exitFullscreen:\"mozCancelFullScreen\"}:t.webkitRequestFullScreen?this.browserProps={fullscreenChange:\"webkitfullscreenchange\",requestFullscreen:\"webkitRequestFullScreen\",exitFullscreen:\"webkitExitFullscreen\"}:t.msRequestFullscreen&&(this.browserProps={fullscreenChange:\"MSFullscreenChange\",requestFullscreen:\"msRequestFullscreen\",exitFullscreen:\"msExitFullscreen\"}))}close(){let e=this,t=e.chart,n=t.options.chart;r(t,\"fullscreenClose\",null,function(){e.isOpen&&e.browserProps&&t.container.ownerDocument instanceof Document&&t.container.ownerDocument[e.browserProps.exitFullscreen](),e.unbindFullscreenEvent&&(e.unbindFullscreenEvent=e.unbindFullscreenEvent()),t.setSize(e.origWidth,e.origHeight,!1),e.origWidth=void 0,e.origHeight=void 0,n.width=e.origWidthOption,n.height=e.origHeightOption,e.origWidthOption=void 0,e.origHeightOption=void 0,e.isOpen=!1,e.setButtonText()})}open(){let e=this,t=e.chart,n=t.options.chart;r(t,\"fullscreenOpen\",null,function(){if(n&&(e.origWidthOption=n.width,e.origHeightOption=n.height),e.origWidth=t.chartWidth,e.origHeight=t.chartHeight,e.browserProps){let n=o(t.container.ownerDocument,e.browserProps.fullscreenChange,function(){e.isOpen?(e.isOpen=!1,e.close()):(t.setSize(null,null,!1),e.isOpen=!0,e.setButtonText())}),i=o(t,\"destroy\",n);e.unbindFullscreenEvent=()=>{n(),i()};let r=t.renderTo[e.browserProps.requestFullscreen]();r&&r.catch(function(){alert(\"Full screen is not supported inside a frame.\")})}})}setButtonText(){let t=this.chart,n=t.exportDivElements,i=t.options.exporting,o=i&&i.buttons&&i.buttons.contextButton.menuItems,r=t.options.lang;if(i&&i.menuItemDefinitions&&r&&r.exitFullscreen&&r.viewFullscreen&&o&&n){let t=n[o.indexOf(\"viewFullscreen\")];t&&e.setElementHTML(t,this.isOpen?r.exitFullscreen:i.menuItemDefinitions.viewFullscreen.text||r.viewFullscreen)}}toggle(){this.isOpen?this.close():this.open()}}return a}),n(t,\"Core/HttpUtilities.js\",[t[\"Core/Globals.js\"],t[\"Core/Utilities.js\"]],function(e,t){let{win:n}=e,{discardElement:i,objectEach:o}=t,r={ajax:function(e){let t={json:\"application/json\",xml:\"application/xml\",text:\"text/plain\",octet:\"application/octet-stream\"},n=new XMLHttpRequest;function i(t,n){e.error&&e.error(t,n)}if(!e.url)return!1;n.open((e.type||\"get\").toUpperCase(),e.url,!0),e.headers&&e.headers[\"Content-Type\"]||n.setRequestHeader(\"Content-Type\",t[e.dataType||\"json\"]||t.text),o(e.headers,function(e,t){n.setRequestHeader(t,e)}),e.responseType&&(n.responseType=e.responseType),n.onreadystatechange=function(){let t;if(4===n.readyState){if(200===n.status){if(\"blob\"!==e.responseType&&(t=n.responseText,\"json\"===e.dataType))try{t=JSON.parse(t)}catch(e){if(e instanceof Error)return i(n,e)}return e.success&&e.success(t,n)}i(n,n.responseText)}},e.data&&\"string\"!=typeof e.data&&(e.data=JSON.stringify(e.data)),n.send(e.data)},getJSON:function(e,t){r.ajax({url:e,success:t,dataType:\"json\",headers:{\"Content-Type\":\"text/plain\"}})},post:function(e,t,r){let s=new n.FormData;o(t,function(e,t){s.append(t,e)}),s.append(\"b64\",\"true\");let{filename:l,type:a}=t;return n.fetch(e,{method:\"POST\",body:s,...r}).then(e=>{e.ok&&e.text().then(e=>{let t=document.createElement(\"a\");t.href=`data:${a};base64,${e}`,t.download=l,t.click(),i(t)})})}};return r}),n(t,\"Extensions/Exporting/Exporting.js\",[t[\"Core/Renderer/HTML/AST.js\"],t[\"Core/Chart/Chart.js\"],t[\"Core/Chart/ChartNavigationComposition.js\"],t[\"Core/Defaults.js\"],t[\"Extensions/Exporting/ExportingDefaults.js\"],t[\"Extensions/Exporting/ExportingSymbols.js\"],t[\"Extensions/Exporting/Fullscreen.js\"],t[\"Core/Globals.js\"],t[\"Core/HttpUtilities.js\"],t[\"Core/Utilities.js\"]],function(e,t,n,i,o,r,s,l,a,c){var p;let{defaultOptions:u}=i,{doc:h,SVG_NS:d,win:g}=l,{addEvent:f,css:m,createElement:x,discardElement:y,extend:b,find:v,fireEvent:w,isObject:E,merge:C,objectEach:S,pick:F,removeEvent:T,uniqueKey:O}=c;return function(t){let i;let p=[/-/,/^(clipPath|cssText|d|height|width)$/,/^font$/,/[lL]ogical(Width|Height)$/,/^parentRule$/,/^(cssRules|ownerRules)$/,/perspective/,/TapHighlightColor/,/^transition/,/^length$/,/^\\d+$/],M=[\"fill\",\"stroke\",\"strokeLinecap\",\"strokeLinejoin\",\"strokeWidth\",\"textAnchor\",\"x\",\"y\"];t.inlineAllowlist=[];let P=[\"clipPath\",\"defs\",\"desc\"];function k(e){let t,n;let i=this,o=i.renderer,r=C(i.options.navigation.buttonOptions,e),s=r.onclick,l=r.menuItems,a=r.symbolSize||12;if(i.btnCount||(i.btnCount=0),i.exportDivElements||(i.exportDivElements=[],i.exportSVGElements=[]),!1===r.enabled||!r.theme)return;let c=i.styledMode?{}:r.theme;s?n=function(e){e&&e.stopPropagation(),s.call(i,e)}:l&&(n=function(e){e&&e.stopPropagation(),i.contextMenu(p.menuClassName,l,p.translateX||0,p.translateY||0,p.width||0,p.height||0,p),p.setState(2)}),r.text&&r.symbol?c.paddingLeft=F(c.paddingLeft,30):r.text||b(c,{width:r.width,height:r.height,padding:0});let p=o.button(r.text,0,0,n,c,void 0,void 0,void 0,void 0,r.useHTML).addClass(e.className).attr({title:F(i.options.lang[r._titleKey||r.titleKey],\"\")});p.menuClassName=e.menuClassName||\"highcharts-menu-\"+i.btnCount++,r.symbol&&(t=o.symbol(r.symbol,Math.round((r.symbolX||0)-a/2),Math.round((r.symbolY||0)-a/2),a,a,{width:a,height:a}).addClass(\"highcharts-button-symbol\").attr({zIndex:1}).add(p),i.styledMode||t.attr({stroke:r.symbolStroke,fill:r.symbolFill,\"stroke-width\":r.symbolStrokeWidth||1})),p.add(i.exportingGroup).align(b(r,{width:p.width,x:F(r.x,i.buttonOffset)}),!0,\"spacingBox\"),i.buttonOffset+=((p.width||0)+r.buttonSpacing)*(\"right\"===r.align?-1:1),i.exportSVGElements.push(p,t)}function H(){if(!this.printReverseInfo)return;let{childNodes:e,origDisplay:t,resetParams:n}=this.printReverseInfo;this.moveContainers(this.renderTo),[].forEach.call(e,function(e,n){1===e.nodeType&&(e.style.display=t[n]||\"\")}),this.isPrinting=!1,n&&this.setSize.apply(this,n),delete this.printReverseInfo,i=void 0,w(this,\"afterPrint\")}function N(){let e=h.body,t=this.options.exporting.printMaxWidth,n={childNodes:e.childNodes,origDisplay:[],resetParams:void 0};this.isPrinting=!0,this.pointer?.reset(void 0,0),w(this,\"beforePrint\"),t&&this.chartWidth>t&&(n.resetParams=[this.options.chart.width,void 0,!1],this.setSize(t,void 0,!1)),[].forEach.call(n.childNodes,function(e,t){1===e.nodeType&&(n.origDisplay[t]=e.style.display,e.style.display=\"none\")}),this.moveContainers(e),this.printReverseInfo=n}function j(e){e.renderExporting(),f(e,\"redraw\",e.renderExporting),f(e,\"destroy\",e.destroyExport)}function G(t,n,i,o,r,s,l){let a=this,p=a.options.navigation,u=a.chartWidth,d=a.chartHeight,y=\"cache-\"+t,v=Math.max(r,s),C,S=a[y];S||(a.exportContextMenu=a[y]=S=x(\"div\",{className:t},{position:\"absolute\",zIndex:1e3,padding:v+\"px\",pointerEvents:\"auto\",...a.renderer.style},a.scrollablePlotArea?.fixedDiv||a.container),C=x(\"ul\",{className:\"highcharts-menu\"},a.styledMode?{}:{listStyle:\"none\",margin:0,padding:0},S),a.styledMode||m(C,b({MozBoxShadow:\"3px 3px 10px #888\",WebkitBoxShadow:\"3px 3px 10px #888\",boxShadow:\"3px 3px 10px #888\"},p.menuStyle)),S.hideMenu=function(){m(S,{display:\"none\"}),l&&l.setState(0),a.openMenu=!1,m(a.renderTo,{overflow:\"hidden\"}),m(a.container,{overflow:\"hidden\"}),c.clearTimeout(S.hideTimer),w(a,\"exportMenuHidden\")},a.exportEvents.push(f(S,\"mouseleave\",function(){S.hideTimer=g.setTimeout(S.hideMenu,500)}),f(S,\"mouseenter\",function(){c.clearTimeout(S.hideTimer)}),f(h,\"mouseup\",function(e){a.pointer?.inClass(e.target,t)||S.hideMenu()}),f(S,\"click\",function(){a.openMenu&&S.hideMenu()})),n.forEach(function(t){if(\"string\"==typeof t&&(t=a.options.exporting.menuItemDefinitions[t]),E(t,!0)){let n;t.separator?n=x(\"hr\",void 0,void 0,C):(\"viewData\"===t.textKey&&a.isDataTableVisible&&(t.textKey=\"hideData\"),n=x(\"li\",{className:\"highcharts-menu-item\",onclick:function(e){e&&e.stopPropagation(),S.hideMenu(),\"string\"!=typeof t&&t.onclick&&t.onclick.apply(a,arguments)}},void 0,C),e.setElementHTML(n,t.text||a.options.lang[t.textKey]),a.styledMode||(n.onmouseover=function(){m(this,p.menuItemHoverStyle)},n.onmouseout=function(){m(this,p.menuItemStyle)},m(n,b({cursor:\"pointer\"},p.menuItemStyle||{})))),a.exportDivElements.push(n)}}),a.exportDivElements.push(C,S),a.exportMenuWidth=S.offsetWidth,a.exportMenuHeight=S.offsetHeight);let F={display:\"block\"};i+(a.exportMenuWidth||0)>u?F.right=u-i-r-v+\"px\":F.left=i-v+\"px\",o+s+(a.exportMenuHeight||0)>d&&l.alignOptions?.verticalAlign!==\"top\"?F.bottom=d-o-v+\"px\":F.top=o+s-v+\"px\",m(S,F),m(a.renderTo,{overflow:\"\"}),m(a.container,{overflow:\"\"}),a.openMenu=!0,w(a,\"exportMenuShown\")}function D(e){let t;let n=e?e.target:this,i=n.exportSVGElements,o=n.exportDivElements,r=n.exportEvents;i&&(i.forEach((e,o)=>{e&&(e.onclick=e.ontouchstart=null,n[t=\"cache-\"+e.menuClassName]&&delete n[t],i[o]=e.destroy())}),i.length=0),n.exportingGroup&&(n.exportingGroup.destroy(),delete n.exportingGroup),o&&(o.forEach(function(e,t){e&&(c.clearTimeout(e.hideTimer),T(e,\"mouseleave\"),o[t]=e.onmouseout=e.onmouseover=e.ontouchstart=e.onclick=null,y(e))}),o.length=0),r&&(r.forEach(function(e){e()}),r.length=0)}function I(e,t){let n=this.getSVGForExport(e,t);e=C(this.options.exporting,e),a.post(e.url,{filename:e.filename?e.filename.replace(/\\//g,\"-\"):this.getFilename(),type:e.type,width:e.width,scale:e.scale,svg:n},e.fetchOptions)}function W(){return this.styledMode&&this.inlineStyles(),this.container.innerHTML}function R(){let e=this.userOptions.title&&this.userOptions.title.text,t=this.options.exporting.filename;return t?t.replace(/\\//g,\"-\"):(\"string\"==typeof e&&(t=e.toLowerCase().replace(/<\\/?[^>]+(>|$)/g,\"\").replace(/[\\s_]+/g,\"-\").replace(/[^a-z\\d\\-]/g,\"\").replace(/^[\\-]+/g,\"\").replace(/[\\-]+/g,\"-\").substr(0,24).replace(/[\\-]+$/g,\"\")),(!t||t.length<5)&&(t=\"chart\"),t)}function L(e){let t,n,i=C(this.options,e);i.plotOptions=C(this.userOptions.plotOptions,e&&e.plotOptions),i.time=C(this.userOptions.time,e&&e.time);let o=x(\"div\",null,{position:\"absolute\",top:\"-9999em\",width:this.chartWidth+\"px\",height:this.chartHeight+\"px\"},h.body),r=this.renderTo.style.width,s=this.renderTo.style.height,l=i.exporting.sourceWidth||i.chart.width||/px$/.test(r)&&parseInt(r,10)||(i.isGantt?800:600),a=i.exporting.sourceHeight||i.chart.height||/px$/.test(s)&&parseInt(s,10)||400;b(i.chart,{animation:!1,renderTo:o,forExport:!0,renderer:\"SVGRenderer\",width:l,height:a}),i.exporting.enabled=!1,delete i.data,i.series=[],this.series.forEach(function(e){(n=C(e.userOptions,{animation:!1,enableMouseTracking:!1,showCheckbox:!1,visible:e.visible})).isInternal||i.series.push(n)});let c={};this.axes.forEach(function(e){e.userOptions.internalKey||(e.userOptions.internalKey=O()),e.options.isInternal||(c[e.coll]||(c[e.coll]=!0,i[e.coll]=[]),i[e.coll].push(C(e.userOptions,{visible:e.visible})))}),i.colorAxis=this.userOptions.colorAxis;let p=new this.constructor(i,this.callback);return e&&[\"xAxis\",\"yAxis\",\"series\"].forEach(function(t){let n={};e[t]&&(n[t]=e[t],p.update(n))}),this.axes.forEach(function(e){let t=v(p.axes,function(t){return t.options.internalKey===e.userOptions.internalKey}),n=e.getExtremes(),i=n.userMin,o=n.userMax;t&&(void 0!==i&&i!==t.min||void 0!==o&&o!==t.max)&&t.setExtremes(i,o,!0,!1)}),t=p.getChartHTML(),w(this,\"getSVG\",{chartCopy:p}),t=this.sanitizeSVG(t,i),i=null,p.destroy(),y(o),t}function $(e,t){let n=this.options.exporting;return this.getSVG(C({chart:{borderRadius:0}},n.chartOptions,t,{exporting:{sourceWidth:e&&e.sourceWidth||n.sourceWidth,sourceHeight:e&&e.sourceHeight||n.sourceHeight}}))}function q(){let e;let n=t.inlineAllowlist,i={},o=h.createElement(\"iframe\");m(o,{width:\"1px\",height:\"1px\",visibility:\"hidden\"}),h.body.appendChild(o);let r=o.contentWindow&&o.contentWindow.document;r&&r.body.appendChild(r.createElementNS(d,\"svg\")),function t(o){let s,a,c,u,h,d;let f={};if(r&&1===o.nodeType&&-1===P.indexOf(o.nodeName)){if(s=g.getComputedStyle(o,null),a=\"svg\"===o.nodeName?{}:g.getComputedStyle(o.parentNode,null),!i[o.nodeName]){e=r.getElementsByTagName(\"svg\")[0],c=r.createElementNS(o.namespaceURI,o.nodeName),e.appendChild(c);let t=g.getComputedStyle(c,null),n={};for(let e in t)e.length<1e3&&\"string\"==typeof t[e]&&!/^\\d+$/.test(e)&&(n[e]=t[e]);i[o.nodeName]=n,\"text\"===o.nodeName&&delete i.text.fill,e.removeChild(c)}for(let e in s)(l.isFirefox||l.isMS||l.isSafari||Object.hasOwnProperty.call(s,e))&&function(e,t){if(u=h=!1,n.length){for(d=n.length;d--&&!h;)h=n[d].test(t);u=!h}for(\"transform\"===t&&\"none\"===e&&(u=!0),d=p.length;d--&&!u;){if(t.length>1e3)throw Error(\"Input too long\");u=p[d].test(t)||\"function\"==typeof e}!u&&(a[t]!==e||\"svg\"===o.nodeName)&&i[o.nodeName][t]!==e&&(M&&-1===M.indexOf(t)?f[t]=e:e&&o.setAttribute(t.replace(/[A-Z]/g,function(e){return\"-\"+e.toLowerCase()}),e))}(s[e],e);if(m(o,f),\"svg\"===o.nodeName&&o.setAttribute(\"stroke-width\",\"1px\"),\"text\"===o.nodeName)return;[].forEach.call(o.children||o.childNodes,t)}}(this.container.querySelector(\"svg\")),e.parentNode.removeChild(e),o.parentNode.removeChild(o)}function z(e){let{scrollablePlotArea:t}=this;(t?[t.fixedDiv,t.scrollingContainer]:[this.container]).forEach(function(t){e.appendChild(t)})}function V(){let e=this,t=(t,n,i)=>{e.isDirtyExporting=!0,C(!0,e.options[t],n),F(i,!0)&&e.redraw()};e.exporting={update:function(e,n){t(\"exporting\",e,n)}},n.compose(e).navigation.addUpdate((e,n)=>{t(\"navigation\",e,n)})}function A(){let e=this;e.isPrinting||(i=e,l.isSafari||e.beforePrint(),setTimeout(()=>{g.focus(),g.print(),l.isSafari||setTimeout(()=>{e.afterPrint()},1e3)},1))}function K(){let e=this,t=e.options.exporting,n=t.buttons,i=e.isDirtyExporting||!e.exportSVGElements;e.buttonOffset=0,e.isDirtyExporting&&e.destroyExport(),i&&!1!==t.enabled&&(e.exportEvents=[],e.exportingGroup=e.exportingGroup||e.renderer.g(\"exporting-group\").attr({zIndex:3}).add(),S(n,function(t){e.addButton(t)}),e.isDirtyExporting=!1)}function U(e,t){let n=e.indexOf(\"\")+6,i=e.substr(n);return e=e.substr(0,n),t&&t.exporting&&t.exporting.allowHTML&&i&&(i=''+i.replace(/(<(?:img|br).*?(?=\\>))>/g,\"$1 />\")+\"\",e=e.replace(\"\",i+\"\")),e=e.replace(/zIndex=\"[^\"]+\"/g,\"\").replace(/symbolName=\"[^\"]+\"/g,\"\").replace(/jQuery\\d+=\"[^\"]+\"/g,\"\").replace(/url\\((\"|")(.*?)(\"|")\\;?\\)/g,\"url($2)\").replace(/url\\([^#]+#/g,\"url(#\").replace(/ {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {Context} from '../../core/context';\n\nexport class Bounds {\n constructor(readonly left: number, readonly top: number, readonly width: number, readonly height: number) {}\n\n add(x: number, y: number, w: number, h: number): Bounds {\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\n }\n\n static fromClientRect(context: Context, clientRect: ClientRect): Bounds {\n return new Bounds(\n clientRect.left + context.windowBounds.left,\n clientRect.top + context.windowBounds.top,\n clientRect.width,\n clientRect.height\n );\n }\n\n static fromDOMRectList(context: Context, domRectList: DOMRectList): Bounds {\n const domRect = Array.from(domRectList).find((rect) => rect.width !== 0);\n return domRect\n ? new Bounds(\n domRect.left + context.windowBounds.left,\n domRect.top + context.windowBounds.top,\n domRect.width,\n domRect.height\n )\n : Bounds.EMPTY;\n }\n\n static EMPTY = new Bounds(0, 0, 0, 0);\n}\n\nexport const parseBounds = (context: Context, node: Element): Bounds => {\n return Bounds.fromClientRect(context, node.getBoundingClientRect());\n};\n\nexport const parseDocumentSize = (document: Document): Bounds => {\n const body = document.body;\n const documentElement = document.documentElement;\n\n if (!body || !documentElement) {\n throw new Error(`Unable to get document size`);\n }\n const width = Math.max(\n Math.max(body.scrollWidth, documentElement.scrollWidth),\n Math.max(body.offsetWidth, documentElement.offsetWidth),\n Math.max(body.clientWidth, documentElement.clientWidth)\n );\n\n const height = Math.max(\n Math.max(body.scrollHeight, documentElement.scrollHeight),\n Math.max(body.offsetHeight, documentElement.offsetHeight),\n Math.max(body.clientHeight, documentElement.clientHeight)\n );\n\n return new Bounds(0, 0, width, height);\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","export const base64 =\n 'KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA==';\nexport const byteLength = 39664;\n","'use strict';\n\nimport {createTrieFromBase64} from 'utrie';\nimport {base64, byteLength} from './linebreak-trie';\nimport {fromCodePoint, toCodePoints} from './Util';\n\nexport const LETTER_NUMBER_MODIFIER = 50;\n\n// Non-tailorable Line Breaking Classes\nconst BK = 1; // Cause a line break (after)\nconst CR = 2; // Cause a line break (after), except between CR and LF\nconst LF = 3; // Cause a line break (after)\nconst CM = 4; // Prohibit a line break between the character and the preceding character\nconst NL = 5; // Cause a line break (after)\nconst SG = 6; // Do not occur in well-formed text\nconst WJ = 7; // Prohibit line breaks before and after\nconst ZW = 8; // Provide a break opportunity\nconst GL = 9; // Prohibit line breaks before and after\nconst SP = 10; // Enable indirect line breaks\nconst ZWJ = 11; // Prohibit line breaks within joiner sequences\n// Break Opportunities\nconst B2 = 12; // Provide a line break opportunity before and after the character\nconst BA = 13; // Generally provide a line break opportunity after the character\nconst BB = 14; // Generally provide a line break opportunity before the character\nconst HY = 15; // Provide a line break opportunity after the character, except in numeric context\nconst CB = 16; // Provide a line break opportunity contingent on additional information\n// Characters Prohibiting Certain Breaks\nconst CL = 17; // Prohibit line breaks before\nconst CP = 18; // Prohibit line breaks before\nconst EX = 19; // Prohibit line breaks before\nconst IN = 20; // Allow only indirect line breaks between pairs\nconst NS = 21; // Allow only indirect line breaks before\nconst OP = 22; // Prohibit line breaks after\nconst QU = 23; // Act like they are both opening and closing\n// Numeric Context\nconst IS = 24; // Prevent breaks after any and before numeric\nconst NU = 25; // Form numeric expressions for line breaking purposes\nconst PO = 26; // Do not break following a numeric expression\nconst PR = 27; // Do not break in front of a numeric expression\nconst SY = 28; // Prevent a break before; and allow a break after\n// Other Characters\nconst AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\nconst AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\nconst CJ = 31; // Treat as NS or ID for strict or normal breaking.\nconst EB = 32; // Do not break from following Emoji Modifier\nconst EM = 33; // Do not break from preceding Emoji Base\nconst H2 = 34; // Form Korean syllable blocks\nconst H3 = 35; // Form Korean syllable blocks\nconst HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\nconst ID = 37; // Break before or after; except in some numeric context\nconst JL = 38; // Form Korean syllable blocks\nconst JV = 39; // Form Korean syllable blocks\nconst JT = 40; // Form Korean syllable blocks\nconst RI = 41; // Keep pairs together. For pairs; break before and after other classes\nconst SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\nconst XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\n\nconst ea_OP = [0x2329, 0xff08];\n\nexport const classes: {[key: string]: number} = {\n BK,\n CR,\n LF,\n CM,\n NL,\n SG,\n WJ,\n ZW,\n GL,\n SP,\n ZWJ,\n B2,\n BA,\n BB,\n HY,\n CB,\n CL,\n CP,\n EX,\n IN,\n NS,\n OP,\n QU,\n IS,\n NU,\n PO,\n PR,\n SY,\n AI,\n AL,\n CJ,\n EB,\n EM,\n H2,\n H3,\n HL,\n ID,\n JL,\n JV,\n JT,\n RI,\n SA,\n XX,\n};\n\nexport const BREAK_MANDATORY = '!';\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nconst ALPHABETICS = [AL, HL];\nconst HARD_LINE_BREAKS = [BK, CR, LF, NL];\nconst SPACE = [SP, ZW];\nconst PREFIX_POSTFIX = [PR, PO];\nconst LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\nconst KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\nconst HYPHEN = [HY, BA];\n\nexport const codePointsToCharacterClasses = (\n codePoints: number[],\n lineBreak: string = 'strict'\n): [number[], number[], boolean[]] => {\n const types: number[] = [];\n const indices: number[] = [];\n const categories: boolean[] = [];\n codePoints.forEach((codePoint, index) => {\n let classType = UnicodeTrie.get(codePoint);\n if (classType > LETTER_NUMBER_MODIFIER) {\n categories.push(true);\n classType -= LETTER_NUMBER_MODIFIER;\n } else {\n categories.push(false);\n }\n\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\n indices.push(index);\n return types.push(CB);\n }\n }\n\n if (classType === CM || classType === ZWJ) {\n // LB10 Treat any remaining combining mark or ZWJ as AL.\n if (index === 0) {\n indices.push(index);\n return types.push(AL);\n }\n\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\n const prev = types[index - 1];\n if (LINE_BREAKS.indexOf(prev) === -1) {\n indices.push(indices[index - 1]);\n return types.push(prev);\n }\n indices.push(index);\n return types.push(AL);\n }\n\n indices.push(index);\n\n if (classType === CJ) {\n return types.push(lineBreak === 'strict' ? NS : ID);\n }\n\n if (classType === SA) {\n return types.push(AL);\n }\n\n if (classType === AI) {\n return types.push(AL);\n }\n\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\n // to take into account the actual line breaking properties for these characters.\n if (classType === XX) {\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\n return types.push(ID);\n } else {\n return types.push(AL);\n }\n }\n\n types.push(classType);\n });\n\n return [indices, types, categories];\n};\n\nconst isAdjacentWithSpaceIgnored = (\n a: number[] | number,\n b: number,\n currentIndex: number,\n classTypes: number[]\n): boolean => {\n const current = classTypes[currentIndex];\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\n let i = currentIndex;\n while (i <= classTypes.length) {\n i++;\n let next = classTypes[i];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (current === SP) {\n let i = currentIndex;\n\n while (i > 0) {\n i--;\n const prev = classTypes[i];\n\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\n let n = currentIndex;\n while (n <= classTypes.length) {\n n++;\n let next = classTypes[n];\n\n if (next === b) {\n return true;\n }\n\n if (next !== SP) {\n break;\n }\n }\n }\n\n if (prev !== SP) {\n break;\n }\n }\n }\n return false;\n};\n\nconst previousNonSpaceClassType = (currentIndex: number, classTypes: number[]): number => {\n let i = currentIndex;\n while (i >= 0) {\n let type = classTypes[i];\n if (type === SP) {\n i--;\n } else {\n return type;\n }\n }\n return 0;\n};\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED | typeof BREAK_MANDATORY;\n\nconst _lineBreakAtIndex = (\n codePoints: number[],\n classTypes: number[],\n indicies: number[],\n index: number,\n forbiddenBreaks?: boolean[]\n): BREAK_OPPORTUNITIES => {\n if (indicies[index] === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n let currentIndex = index - 1;\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\n return BREAK_NOT_ALLOWED;\n }\n\n let beforeIndex = currentIndex - 1;\n let afterIndex = currentIndex + 1;\n let current = classTypes[currentIndex];\n\n // LB4 Always break after hard line breaks.\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\n let before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\n let next = classTypes[afterIndex];\n\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\n return BREAK_MANDATORY;\n }\n\n // LB6 Do not break before hard line breaks.\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB7 Do not break before spaces or zero width space.\n if (SPACE.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\n return BREAK_ALLOWED;\n }\n\n // LB8a Do not break after a zero width joiner.\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // zwj emojis\n if ((current === EB || current === EM) && UnicodeTrie.get(codePoints[afterIndex]) === ZWJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB11 Do not break before or after Word joiner and related characters.\n if (current === WJ || next === WJ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12 Do not break after NBSP and related characters.\n if (current === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB14 Do not break after ‘[’, even after spaces.\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB15 Do not break within ‘”[’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB17 Do not break within ‘——’, even with intervening spaces.\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB18 Break after spaces.\n if (current === SP) {\n return BREAK_ALLOWED;\n }\n\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\n if (current === QU || next === QU) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB20 Break before and after unresolved CB.\n if (next === CB || current === CB) {\n return BREAK_ALLOWED;\n }\n\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21a Don't break after Hebrew + Hyphen.\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB21b Don’t break between Solidus and Hebrew letters.\n if (current === SY && next === HL) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB22 Do not break before ellipsis.\n if (next === IN) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23 Do not break between digits and letters.\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\n if (\n (current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\n if (\n (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB25 Do not break between the following pairs of classes relevant to numbers:\n if (\n // (PR | PO) × ( OP | HY )? NU\n ([PR, PO].indexOf(current) !== -1 &&\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\n // ( OP | HY ) × NU\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\n // NU ×\t(NU | SY | IS)\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\n let prevIndex = currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\n if ([PR, PO].indexOf(next) !== -1) {\n let prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\n while (prevIndex >= 0) {\n let type = classTypes[prevIndex];\n if (type === NU) {\n return BREAK_NOT_ALLOWED;\n } else if ([SY, IS].indexOf(type) !== -1) {\n prevIndex--;\n } else {\n break;\n }\n }\n }\n\n // LB26 Do not break a Korean syllable.\n if (\n (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\n ([JT, H3].indexOf(current) !== -1 && next === JT)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB27 Treat a Korean Syllable Block the same as ID.\n if (\n (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB28 Do not break between alphabetics (“at”).\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\n if (\n (ALPHABETICS.concat(NU).indexOf(current) !== -1 &&\n next === OP &&\n ea_OP.indexOf(codePoints[afterIndex]) === -1) ||\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)\n ) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\n // indicators preceding the position of the break.\n if (current === RI && next === RI) {\n let i = indicies[currentIndex];\n let count = 1;\n while (i > 0) {\n i--;\n if (classTypes[i] === RI) {\n count++;\n } else {\n break;\n }\n }\n if (count % 2 !== 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // LB30b Do not break between an emoji base and an emoji modifier.\n if (current === EB && next === EM) {\n return BREAK_NOT_ALLOWED;\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const lineBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // LB2 Never break at the start of text.\n if (index === 0) {\n return BREAK_NOT_ALLOWED;\n }\n\n // LB3 Always break at the end of text.\n if (index >= codePoints.length) {\n return BREAK_MANDATORY;\n }\n\n const [indices, classTypes] = codePointsToCharacterClasses(codePoints);\n\n return _lineBreakAtIndex(codePoints, classTypes, indices, index);\n};\n\nexport type LINE_BREAK = 'auto' | 'normal' | 'strict';\nexport type WORD_BREAK = 'normal' | 'break-all' | 'break-word' | 'keep-all';\n\ninterface IOptions {\n lineBreak?: LINE_BREAK;\n wordBreak?: WORD_BREAK;\n}\n\nconst cssFormattedClasses = (codePoints: number[], options?: IOptions): [number[], number[], boolean[] | undefined] => {\n if (!options) {\n options = {lineBreak: 'normal', wordBreak: 'normal'};\n }\n let [indicies, classTypes, isLetterNumber] = codePointsToCharacterClasses(codePoints, options.lineBreak);\n\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\n classTypes = classTypes.map((type) => ([NU, AL, SA].indexOf(type) !== -1 ? ID : type));\n }\n\n const forbiddenBreakpoints =\n options.wordBreak === 'keep-all'\n ? isLetterNumber.map((letterNumber, i) => {\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\n })\n : undefined;\n\n return [indicies, classTypes, forbiddenBreakpoints];\n};\n\nexport const inlineBreakOpportunities = (str: string, options?: IOptions): string => {\n const codePoints = toCodePoints(str);\n let output = BREAK_NOT_ALLOWED;\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n\n codePoints.forEach((codePoint, i) => {\n output +=\n fromCodePoint(codePoint) +\n (i >= codePoints.length - 1\n ? BREAK_MANDATORY\n : _lineBreakAtIndex(codePoints, classTypes, indicies, i + 1, forbiddenBreakpoints));\n });\n\n return output;\n};\n\nclass Break {\n private readonly codePoints: number[];\n readonly required: boolean;\n readonly start: number;\n readonly end: number;\n\n constructor(codePoints: number[], lineBreak: string, start: number, end: number) {\n this.codePoints = codePoints;\n this.required = lineBreak === BREAK_MANDATORY;\n this.start = start;\n this.end = end;\n }\n\n slice(): string {\n return fromCodePoint(...this.codePoints.slice(this.start, this.end));\n }\n}\n\nexport type LineBreak =\n | {\n done: true;\n value: null;\n }\n | {\n done: false;\n value: Break;\n };\n\ninterface ILineBreakIterator {\n next: () => LineBreak;\n}\n\nexport const LineBreaker = (str: string, options?: IOptions): ILineBreakIterator => {\n const codePoints = toCodePoints(str);\n const [indicies, classTypes, forbiddenBreakpoints] = cssFormattedClasses(codePoints, options);\n const length = codePoints.length;\n let lastEnd = 0;\n let nextIndex = 0;\n\n return {\n next: () => {\n if (nextIndex >= length) {\n return {done: true, value: null};\n }\n let lineBreak = BREAK_NOT_ALLOWED;\n while (\n nextIndex < length &&\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\n BREAK_NOT_ALLOWED\n ) {}\n\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\n const value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\n lastEnd = nextIndex;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n },\n };\n};\n","// https://www.w3.org/TR/css-syntax-3\n\nimport {fromCodePoint, toCodePoints} from 'css-line-break';\n\nexport const enum TokenType {\n STRING_TOKEN,\n BAD_STRING_TOKEN,\n LEFT_PARENTHESIS_TOKEN,\n RIGHT_PARENTHESIS_TOKEN,\n COMMA_TOKEN,\n HASH_TOKEN,\n DELIM_TOKEN,\n AT_KEYWORD_TOKEN,\n PREFIX_MATCH_TOKEN,\n DASH_MATCH_TOKEN,\n INCLUDE_MATCH_TOKEN,\n LEFT_CURLY_BRACKET_TOKEN,\n RIGHT_CURLY_BRACKET_TOKEN,\n SUFFIX_MATCH_TOKEN,\n SUBSTRING_MATCH_TOKEN,\n DIMENSION_TOKEN,\n PERCENTAGE_TOKEN,\n NUMBER_TOKEN,\n FUNCTION,\n FUNCTION_TOKEN,\n IDENT_TOKEN,\n COLUMN_TOKEN,\n URL_TOKEN,\n BAD_URL_TOKEN,\n CDC_TOKEN,\n CDO_TOKEN,\n COLON_TOKEN,\n SEMICOLON_TOKEN,\n LEFT_SQUARE_BRACKET_TOKEN,\n RIGHT_SQUARE_BRACKET_TOKEN,\n UNICODE_RANGE_TOKEN,\n WHITESPACE_TOKEN,\n EOF_TOKEN\n}\n\ninterface IToken {\n type: TokenType;\n}\n\nexport interface Token extends IToken {\n type:\n | TokenType.BAD_URL_TOKEN\n | TokenType.BAD_STRING_TOKEN\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.RIGHT_PARENTHESIS_TOKEN\n | TokenType.COMMA_TOKEN\n | TokenType.SUBSTRING_MATCH_TOKEN\n | TokenType.PREFIX_MATCH_TOKEN\n | TokenType.SUFFIX_MATCH_TOKEN\n | TokenType.COLON_TOKEN\n | TokenType.SEMICOLON_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN\n | TokenType.RIGHT_CURLY_BRACKET_TOKEN\n | TokenType.DASH_MATCH_TOKEN\n | TokenType.INCLUDE_MATCH_TOKEN\n | TokenType.COLUMN_TOKEN\n | TokenType.WHITESPACE_TOKEN\n | TokenType.CDC_TOKEN\n | TokenType.CDO_TOKEN\n | TokenType.EOF_TOKEN;\n}\n\nexport interface StringValueToken extends IToken {\n type:\n | TokenType.STRING_TOKEN\n | TokenType.DELIM_TOKEN\n | TokenType.FUNCTION_TOKEN\n | TokenType.IDENT_TOKEN\n | TokenType.URL_TOKEN\n | TokenType.AT_KEYWORD_TOKEN;\n value: string;\n}\n\nexport interface HashToken extends IToken {\n type: TokenType.HASH_TOKEN;\n flags: number;\n value: string;\n}\n\nexport interface NumberValueToken extends IToken {\n type: TokenType.PERCENTAGE_TOKEN | TokenType.NUMBER_TOKEN;\n flags: number;\n number: number;\n}\n\nexport interface DimensionToken extends IToken {\n type: TokenType.DIMENSION_TOKEN;\n flags: number;\n unit: string;\n number: number;\n}\n\nexport interface UnicodeRangeToken extends IToken {\n type: TokenType.UNICODE_RANGE_TOKEN;\n start: number;\n end: number;\n}\n\nexport type CSSToken = Token | StringValueToken | NumberValueToken | DimensionToken | UnicodeRangeToken | HashToken;\n\nexport const FLAG_UNRESTRICTED = 1 << 0;\nexport const FLAG_ID = 1 << 1;\nexport const FLAG_INTEGER = 1 << 2;\nexport const FLAG_NUMBER = 1 << 3;\n\nconst LINE_FEED = 0x000a;\nconst SOLIDUS = 0x002f;\nconst REVERSE_SOLIDUS = 0x005c;\nconst CHARACTER_TABULATION = 0x0009;\nconst SPACE = 0x0020;\nconst QUOTATION_MARK = 0x0022;\nconst EQUALS_SIGN = 0x003d;\nconst NUMBER_SIGN = 0x0023;\nconst DOLLAR_SIGN = 0x0024;\nconst PERCENTAGE_SIGN = 0x0025;\nconst APOSTROPHE = 0x0027;\nconst LEFT_PARENTHESIS = 0x0028;\nconst RIGHT_PARENTHESIS = 0x0029;\nconst LOW_LINE = 0x005f;\nconst HYPHEN_MINUS = 0x002d;\nconst EXCLAMATION_MARK = 0x0021;\nconst LESS_THAN_SIGN = 0x003c;\nconst GREATER_THAN_SIGN = 0x003e;\nconst COMMERCIAL_AT = 0x0040;\nconst LEFT_SQUARE_BRACKET = 0x005b;\nconst RIGHT_SQUARE_BRACKET = 0x005d;\nconst CIRCUMFLEX_ACCENT = 0x003d;\nconst LEFT_CURLY_BRACKET = 0x007b;\nconst QUESTION_MARK = 0x003f;\nconst RIGHT_CURLY_BRACKET = 0x007d;\nconst VERTICAL_LINE = 0x007c;\nconst TILDE = 0x007e;\nconst CONTROL = 0x0080;\nconst REPLACEMENT_CHARACTER = 0xfffd;\nconst ASTERISK = 0x002a;\nconst PLUS_SIGN = 0x002b;\nconst COMMA = 0x002c;\nconst COLON = 0x003a;\nconst SEMICOLON = 0x003b;\nconst FULL_STOP = 0x002e;\nconst NULL = 0x0000;\nconst BACKSPACE = 0x0008;\nconst LINE_TABULATION = 0x000b;\nconst SHIFT_OUT = 0x000e;\nconst INFORMATION_SEPARATOR_ONE = 0x001f;\nconst DELETE = 0x007f;\nconst EOF = -1;\nconst ZERO = 0x0030;\nconst a = 0x0061;\nconst e = 0x0065;\nconst f = 0x0066;\nconst u = 0x0075;\nconst z = 0x007a;\nconst A = 0x0041;\nconst E = 0x0045;\nconst F = 0x0046;\nconst U = 0x0055;\nconst Z = 0x005a;\n\nconst isDigit = (codePoint: number) => codePoint >= ZERO && codePoint <= 0x0039;\nconst isSurrogateCodePoint = (codePoint: number) => codePoint >= 0xd800 && codePoint <= 0xdfff;\nconst isHex = (codePoint: number) =>\n isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\nconst isLowerCaseLetter = (codePoint: number) => codePoint >= a && codePoint <= z;\nconst isUpperCaseLetter = (codePoint: number) => codePoint >= A && codePoint <= Z;\nconst isLetter = (codePoint: number) => isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint);\nconst isNonASCIICodePoint = (codePoint: number) => codePoint >= CONTROL;\nconst isWhiteSpace = (codePoint: number): boolean =>\n codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE;\nconst isNameStartCodePoint = (codePoint: number): boolean =>\n isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\nconst isNameCodePoint = (codePoint: number): boolean =>\n isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\nconst isNonPrintableCodePoint = (codePoint: number): boolean => {\n return (\n (codePoint >= NULL && codePoint <= BACKSPACE) ||\n codePoint === LINE_TABULATION ||\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\n codePoint === DELETE\n );\n};\nconst isValidEscape = (c1: number, c2: number): boolean => {\n if (c1 !== REVERSE_SOLIDUS) {\n return false;\n }\n\n return c2 !== LINE_FEED;\n};\nconst isIdentifierStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === HYPHEN_MINUS) {\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\n } else if (isNameStartCodePoint(c1)) {\n return true;\n } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\n return true;\n }\n return false;\n};\n\nconst isNumberStart = (c1: number, c2: number, c3: number): boolean => {\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n if (isDigit(c2)) {\n return true;\n }\n\n return c2 === FULL_STOP && isDigit(c3);\n }\n\n if (c1 === FULL_STOP) {\n return isDigit(c2);\n }\n\n return isDigit(c1);\n};\n\nconst stringToNumber = (codePoints: number[]): number => {\n let c = 0;\n let sign = 1;\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n sign = -1;\n }\n c++;\n }\n\n const integers = [];\n\n while (isDigit(codePoints[c])) {\n integers.push(codePoints[c++]);\n }\n\n const int = integers.length ? parseInt(fromCodePoint(...integers), 10) : 0;\n\n if (codePoints[c] === FULL_STOP) {\n c++;\n }\n\n const fraction = [];\n while (isDigit(codePoints[c])) {\n fraction.push(codePoints[c++]);\n }\n\n const fracd = fraction.length;\n const frac = fracd ? parseInt(fromCodePoint(...fraction), 10) : 0;\n\n if (codePoints[c] === E || codePoints[c] === e) {\n c++;\n }\n\n let expsign = 1;\n\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\n if (codePoints[c] === HYPHEN_MINUS) {\n expsign = -1;\n }\n c++;\n }\n\n const exponent = [];\n\n while (isDigit(codePoints[c])) {\n exponent.push(codePoints[c++]);\n }\n\n const exp = exponent.length ? parseInt(fromCodePoint(...exponent), 10) : 0;\n\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\n};\n\nconst LEFT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.LEFT_PARENTHESIS_TOKEN\n};\nconst RIGHT_PARENTHESIS_TOKEN: Token = {\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\n};\nconst COMMA_TOKEN: Token = {type: TokenType.COMMA_TOKEN};\nconst SUFFIX_MATCH_TOKEN: Token = {type: TokenType.SUFFIX_MATCH_TOKEN};\nconst PREFIX_MATCH_TOKEN: Token = {type: TokenType.PREFIX_MATCH_TOKEN};\nconst COLUMN_TOKEN: Token = {type: TokenType.COLUMN_TOKEN};\nconst DASH_MATCH_TOKEN: Token = {type: TokenType.DASH_MATCH_TOKEN};\nconst INCLUDE_MATCH_TOKEN: Token = {type: TokenType.INCLUDE_MATCH_TOKEN};\nconst LEFT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\n};\nconst RIGHT_CURLY_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\n};\nconst SUBSTRING_MATCH_TOKEN: Token = {type: TokenType.SUBSTRING_MATCH_TOKEN};\nconst BAD_URL_TOKEN: Token = {type: TokenType.BAD_URL_TOKEN};\nconst BAD_STRING_TOKEN: Token = {type: TokenType.BAD_STRING_TOKEN};\nconst CDO_TOKEN: Token = {type: TokenType.CDO_TOKEN};\nconst CDC_TOKEN: Token = {type: TokenType.CDC_TOKEN};\nconst COLON_TOKEN: Token = {type: TokenType.COLON_TOKEN};\nconst SEMICOLON_TOKEN: Token = {type: TokenType.SEMICOLON_TOKEN};\nconst LEFT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\n};\nconst RIGHT_SQUARE_BRACKET_TOKEN: Token = {\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\n};\nconst WHITESPACE_TOKEN: Token = {type: TokenType.WHITESPACE_TOKEN};\nexport const EOF_TOKEN: Token = {type: TokenType.EOF_TOKEN};\n\nexport class Tokenizer {\n private _value: number[];\n\n constructor() {\n this._value = [];\n }\n\n write(chunk: string): void {\n this._value = this._value.concat(toCodePoints(chunk));\n }\n\n read(): CSSToken[] {\n const tokens = [];\n let token = this.consumeToken();\n while (token !== EOF_TOKEN) {\n tokens.push(token);\n token = this.consumeToken();\n }\n return tokens;\n }\n\n private consumeToken(): CSSToken {\n const codePoint = this.consumeCodePoint();\n\n switch (codePoint) {\n case QUOTATION_MARK:\n return this.consumeStringToken(QUOTATION_MARK);\n case NUMBER_SIGN:\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\n const flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\n const value = this.consumeName();\n\n return {type: TokenType.HASH_TOKEN, value, flags};\n }\n break;\n case DOLLAR_SIGN:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUFFIX_MATCH_TOKEN;\n }\n break;\n case APOSTROPHE:\n return this.consumeStringToken(APOSTROPHE);\n case LEFT_PARENTHESIS:\n return LEFT_PARENTHESIS_TOKEN;\n case RIGHT_PARENTHESIS:\n return RIGHT_PARENTHESIS_TOKEN;\n case ASTERISK:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return SUBSTRING_MATCH_TOKEN;\n }\n break;\n case PLUS_SIGN:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case COMMA:\n return COMMA_TOKEN;\n case HYPHEN_MINUS:\n const e1 = codePoint;\n const e2 = this.peekCodePoint(0);\n const e3 = this.peekCodePoint(1);\n\n if (isNumberStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isIdentifierStart(e1, e2, e3)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDC_TOKEN;\n }\n break;\n\n case FULL_STOP:\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n break;\n case SOLIDUS:\n if (this.peekCodePoint(0) === ASTERISK) {\n this.consumeCodePoint();\n while (true) {\n let c = this.consumeCodePoint();\n if (c === ASTERISK) {\n c = this.consumeCodePoint();\n if (c === SOLIDUS) {\n return this.consumeToken();\n }\n }\n if (c === EOF) {\n return this.consumeToken();\n }\n }\n }\n break;\n case COLON:\n return COLON_TOKEN;\n case SEMICOLON:\n return SEMICOLON_TOKEN;\n case LESS_THAN_SIGN:\n if (\n this.peekCodePoint(0) === EXCLAMATION_MARK &&\n this.peekCodePoint(1) === HYPHEN_MINUS &&\n this.peekCodePoint(2) === HYPHEN_MINUS\n ) {\n this.consumeCodePoint();\n this.consumeCodePoint();\n return CDO_TOKEN;\n }\n break;\n case COMMERCIAL_AT:\n const a1 = this.peekCodePoint(0);\n const a2 = this.peekCodePoint(1);\n const a3 = this.peekCodePoint(2);\n if (isIdentifierStart(a1, a2, a3)) {\n const value = this.consumeName();\n return {type: TokenType.AT_KEYWORD_TOKEN, value};\n }\n break;\n case LEFT_SQUARE_BRACKET:\n return LEFT_SQUARE_BRACKET_TOKEN;\n case REVERSE_SOLIDUS:\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n break;\n case RIGHT_SQUARE_BRACKET:\n return RIGHT_SQUARE_BRACKET_TOKEN;\n case CIRCUMFLEX_ACCENT:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return PREFIX_MATCH_TOKEN;\n }\n break;\n case LEFT_CURLY_BRACKET:\n return LEFT_CURLY_BRACKET_TOKEN;\n case RIGHT_CURLY_BRACKET:\n return RIGHT_CURLY_BRACKET_TOKEN;\n case u:\n case U:\n const u1 = this.peekCodePoint(0);\n const u2 = this.peekCodePoint(1);\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\n this.consumeCodePoint();\n this.consumeUnicodeRangeToken();\n }\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n case VERTICAL_LINE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return DASH_MATCH_TOKEN;\n }\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\n this.consumeCodePoint();\n return COLUMN_TOKEN;\n }\n break;\n case TILDE:\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\n this.consumeCodePoint();\n return INCLUDE_MATCH_TOKEN;\n }\n break;\n case EOF:\n return EOF_TOKEN;\n }\n\n if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n return WHITESPACE_TOKEN;\n }\n\n if (isDigit(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeNumericToken();\n }\n\n if (isNameStartCodePoint(codePoint)) {\n this.reconsumeCodePoint(codePoint);\n return this.consumeIdentLikeToken();\n }\n\n return {type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint)};\n }\n\n private consumeCodePoint(): number {\n const value = this._value.shift();\n\n return typeof value === 'undefined' ? -1 : value;\n }\n\n private reconsumeCodePoint(codePoint: number) {\n this._value.unshift(codePoint);\n }\n\n private peekCodePoint(delta: number): number {\n if (delta >= this._value.length) {\n return -1;\n }\n\n return this._value[delta];\n }\n\n private consumeUnicodeRangeToken(): UnicodeRangeToken {\n const digits = [];\n let codePoint = this.consumeCodePoint();\n while (isHex(codePoint) && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n let questionMarks = false;\n while (codePoint === QUESTION_MARK && digits.length < 6) {\n digits.push(codePoint);\n codePoint = this.consumeCodePoint();\n questionMarks = true;\n }\n\n if (questionMarks) {\n const start = parseInt(\n fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? ZERO : digit))),\n 16\n );\n const end = parseInt(fromCodePoint(...digits.map((digit) => (digit === QUESTION_MARK ? F : digit))), 16);\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n }\n\n const start = parseInt(fromCodePoint(...digits), 16);\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\n this.consumeCodePoint();\n codePoint = this.consumeCodePoint();\n const endDigits = [];\n while (isHex(codePoint) && endDigits.length < 6) {\n endDigits.push(codePoint);\n codePoint = this.consumeCodePoint();\n }\n const end = parseInt(fromCodePoint(...endDigits), 16);\n\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end};\n } else {\n return {type: TokenType.UNICODE_RANGE_TOKEN, start, end: start};\n }\n }\n\n private consumeIdentLikeToken(): StringValueToken | Token {\n const value = this.consumeName();\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return this.consumeUrlToken();\n } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.FUNCTION_TOKEN, value};\n }\n\n return {type: TokenType.IDENT_TOKEN, value};\n }\n\n private consumeUrlToken(): StringValueToken | Token {\n const value = [];\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF) {\n return {type: TokenType.URL_TOKEN, value: ''};\n }\n\n const next = this.peekCodePoint(0);\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\n const stringToken = this.consumeStringToken(this.consumeCodePoint());\n if (stringToken.type === TokenType.STRING_TOKEN) {\n this.consumeWhiteSpace();\n\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: stringToken.value};\n }\n }\n\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n } else if (isWhiteSpace(codePoint)) {\n this.consumeWhiteSpace();\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\n this.consumeCodePoint();\n return {type: TokenType.URL_TOKEN, value: fromCodePoint(...value)};\n }\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (\n codePoint === QUOTATION_MARK ||\n codePoint === APOSTROPHE ||\n codePoint === LEFT_PARENTHESIS ||\n isNonPrintableCodePoint(codePoint)\n ) {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n } else if (codePoint === REVERSE_SOLIDUS) {\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n value.push(this.consumeEscapedCodePoint());\n } else {\n this.consumeBadUrlRemnants();\n return BAD_URL_TOKEN;\n }\n } else {\n value.push(codePoint);\n }\n }\n }\n\n private consumeWhiteSpace(): void {\n while (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n }\n\n private consumeBadUrlRemnants(): void {\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\n return;\n }\n\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n this.consumeEscapedCodePoint();\n }\n }\n }\n\n private consumeStringSlice(count: number): string {\n const SLICE_STACK_SIZE = 50000;\n let value = '';\n while (count > 0) {\n const amount = Math.min(SLICE_STACK_SIZE, count);\n value += fromCodePoint(...this._value.splice(0, amount));\n count -= amount;\n }\n this._value.shift();\n\n return value;\n }\n\n private consumeStringToken(endingCodePoint: number): StringValueToken | Token {\n let value = '';\n let i = 0;\n\n do {\n const codePoint = this._value[i];\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\n value += this.consumeStringSlice(i);\n return {type: TokenType.STRING_TOKEN, value};\n }\n\n if (codePoint === LINE_FEED) {\n this._value.splice(0, i);\n return BAD_STRING_TOKEN;\n }\n\n if (codePoint === REVERSE_SOLIDUS) {\n const next = this._value[i + 1];\n if (next !== EOF && next !== undefined) {\n if (next === LINE_FEED) {\n value += this.consumeStringSlice(i);\n i = -1;\n this._value.shift();\n } else if (isValidEscape(codePoint, next)) {\n value += this.consumeStringSlice(i);\n value += fromCodePoint(this.consumeEscapedCodePoint());\n i = -1;\n }\n }\n }\n\n i++;\n } while (true);\n }\n\n private consumeNumber() {\n const repr = [];\n let type = FLAG_INTEGER;\n let c1 = this.peekCodePoint(0);\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\n repr.push(this.consumeCodePoint());\n }\n\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n c1 = this.peekCodePoint(0);\n let c2 = this.peekCodePoint(1);\n if (c1 === FULL_STOP && isDigit(c2)) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n c1 = this.peekCodePoint(0);\n c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\n type = FLAG_NUMBER;\n while (isDigit(this.peekCodePoint(0))) {\n repr.push(this.consumeCodePoint());\n }\n }\n\n return [stringToNumber(repr), type];\n }\n\n private consumeNumericToken(): NumberValueToken | DimensionToken {\n const [number, flags] = this.consumeNumber();\n const c1 = this.peekCodePoint(0);\n const c2 = this.peekCodePoint(1);\n const c3 = this.peekCodePoint(2);\n\n if (isIdentifierStart(c1, c2, c3)) {\n const unit = this.consumeName();\n return {type: TokenType.DIMENSION_TOKEN, number, flags, unit};\n }\n\n if (c1 === PERCENTAGE_SIGN) {\n this.consumeCodePoint();\n return {type: TokenType.PERCENTAGE_TOKEN, number, flags};\n }\n\n return {type: TokenType.NUMBER_TOKEN, number, flags};\n }\n\n private consumeEscapedCodePoint(): number {\n const codePoint = this.consumeCodePoint();\n\n if (isHex(codePoint)) {\n let hex = fromCodePoint(codePoint);\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\n hex += fromCodePoint(this.consumeCodePoint());\n }\n\n if (isWhiteSpace(this.peekCodePoint(0))) {\n this.consumeCodePoint();\n }\n\n const hexCodePoint = parseInt(hex, 16);\n\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\n return REPLACEMENT_CHARACTER;\n }\n\n return hexCodePoint;\n }\n\n if (codePoint === EOF) {\n return REPLACEMENT_CHARACTER;\n }\n\n return codePoint;\n }\n\n private consumeName(): string {\n let result = '';\n while (true) {\n const codePoint = this.consumeCodePoint();\n if (isNameCodePoint(codePoint)) {\n result += fromCodePoint(codePoint);\n } else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\n result += fromCodePoint(this.consumeEscapedCodePoint());\n } else {\n this.reconsumeCodePoint(codePoint);\n return result;\n }\n }\n }\n}\n","import {\n CSSToken,\n DimensionToken,\n EOF_TOKEN,\n NumberValueToken,\n StringValueToken,\n Tokenizer,\n TokenType\n} from './tokenizer';\n\nexport type CSSBlockType =\n | TokenType.LEFT_PARENTHESIS_TOKEN\n | TokenType.LEFT_SQUARE_BRACKET_TOKEN\n | TokenType.LEFT_CURLY_BRACKET_TOKEN;\n\nexport interface CSSBlock {\n type: CSSBlockType;\n values: CSSValue[];\n}\n\nexport interface CSSFunction {\n type: TokenType.FUNCTION;\n name: string;\n values: CSSValue[];\n}\n\nexport type CSSValue = CSSFunction | CSSToken | CSSBlock;\n\nexport class Parser {\n private _tokens: CSSToken[];\n\n constructor(tokens: CSSToken[]) {\n this._tokens = tokens;\n }\n\n static create(value: string): Parser {\n const tokenizer = new Tokenizer();\n tokenizer.write(value);\n return new Parser(tokenizer.read());\n }\n\n static parseValue(value: string): CSSValue {\n return Parser.create(value).parseComponentValue();\n }\n\n static parseValues(value: string): CSSValue[] {\n return Parser.create(value).parseComponentValues();\n }\n\n parseComponentValue(): CSSValue {\n let token = this.consumeToken();\n while (token.type === TokenType.WHITESPACE_TOKEN) {\n token = this.consumeToken();\n }\n\n if (token.type === TokenType.EOF_TOKEN) {\n throw new SyntaxError(`Error parsing CSS component value, unexpected EOF`);\n }\n\n this.reconsumeToken(token);\n const value = this.consumeComponentValue();\n\n do {\n token = this.consumeToken();\n } while (token.type === TokenType.WHITESPACE_TOKEN);\n\n if (token.type === TokenType.EOF_TOKEN) {\n return value;\n }\n\n throw new SyntaxError(`Error parsing CSS component value, multiple values found when expecting only one`);\n }\n\n parseComponentValues(): CSSValue[] {\n const values = [];\n while (true) {\n const value = this.consumeComponentValue();\n if (value.type === TokenType.EOF_TOKEN) {\n return values;\n }\n values.push(value);\n values.push();\n }\n }\n\n private consumeComponentValue(): CSSValue {\n const token = this.consumeToken();\n\n switch (token.type) {\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\n case TokenType.LEFT_PARENTHESIS_TOKEN:\n return this.consumeSimpleBlock(token.type);\n case TokenType.FUNCTION_TOKEN:\n return this.consumeFunction(token);\n }\n\n return token;\n }\n\n private consumeSimpleBlock(type: CSSBlockType): CSSBlock {\n const block: CSSBlock = {type, values: []};\n\n let token = this.consumeToken();\n while (true) {\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\n return block;\n }\n\n this.reconsumeToken(token);\n block.values.push(this.consumeComponentValue());\n token = this.consumeToken();\n }\n }\n\n private consumeFunction(functionToken: StringValueToken): CSSFunction {\n const cssFunction: CSSFunction = {\n name: functionToken.value,\n values: [],\n type: TokenType.FUNCTION\n };\n\n while (true) {\n const token = this.consumeToken();\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\n return cssFunction;\n }\n\n this.reconsumeToken(token);\n cssFunction.values.push(this.consumeComponentValue());\n }\n }\n\n private consumeToken(): CSSToken {\n const token = this._tokens.shift();\n return typeof token === 'undefined' ? EOF_TOKEN : token;\n }\n\n private reconsumeToken(token: CSSToken): void {\n this._tokens.unshift(token);\n }\n}\n\nexport const isDimensionToken = (token: CSSValue): token is DimensionToken => token.type === TokenType.DIMENSION_TOKEN;\nexport const isNumberToken = (token: CSSValue): token is NumberValueToken => token.type === TokenType.NUMBER_TOKEN;\nexport const isIdentToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.IDENT_TOKEN;\nexport const isStringToken = (token: CSSValue): token is StringValueToken => token.type === TokenType.STRING_TOKEN;\nexport const isIdentWithValue = (token: CSSValue, value: string): boolean =>\n isIdentToken(token) && token.value === value;\n\nexport const nonWhiteSpace = (token: CSSValue): boolean => token.type !== TokenType.WHITESPACE_TOKEN;\nexport const nonFunctionArgSeparator = (token: CSSValue): boolean =>\n token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\n\nexport const parseFunctionArgs = (tokens: CSSValue[]): CSSValue[][] => {\n const args: CSSValue[][] = [];\n let arg: CSSValue[] = [];\n tokens.forEach((token) => {\n if (token.type === TokenType.COMMA_TOKEN) {\n if (arg.length === 0) {\n throw new Error(`Error parsing function args, zero tokens for arg`);\n }\n args.push(arg);\n arg = [];\n return;\n }\n\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\n arg.push(token);\n }\n });\n if (arg.length) {\n args.push(arg);\n }\n\n return args;\n};\n\nconst isEndingTokenFor = (token: CSSToken, type: CSSBlockType): boolean => {\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\n return true;\n }\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\n return true;\n }\n\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\n};\n","import {CSSValue} from '../syntax/parser';\nimport {DimensionToken, NumberValueToken, TokenType} from '../syntax/tokenizer';\n\nexport type Length = DimensionToken | NumberValueToken;\n\nexport const isLength = (token: CSSValue): token is Length =>\n token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\n","import {DimensionToken, FLAG_INTEGER, NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {isLength} from './length';\nexport type LengthPercentage = DimensionToken | NumberValueToken;\nexport type LengthPercentageTuple = [LengthPercentage] | [LengthPercentage, LengthPercentage];\n\nexport const isLengthPercentage = (token: CSSValue): token is LengthPercentage =>\n token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\nexport const parseLengthPercentageTuple = (tokens: LengthPercentage[]): LengthPercentageTuple =>\n tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\nexport const ZERO_LENGTH: NumberValueToken = {\n type: TokenType.NUMBER_TOKEN,\n number: 0,\n flags: FLAG_INTEGER\n};\n\nexport const FIFTY_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\n\nexport const HUNDRED_PERCENT: NumberValueToken = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 100,\n flags: FLAG_INTEGER\n};\n\nexport const getAbsoluteValueForTuple = (\n tuple: LengthPercentageTuple,\n width: number,\n height: number\n): [number, number] => {\n const [x, y] = tuple;\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\n};\nexport const getAbsoluteValue = (token: LengthPercentage, parent: number): number => {\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n return (token.number / 100) * parent;\n }\n\n if (isDimensionToken(token)) {\n switch (token.unit) {\n case 'rem':\n case 'em':\n return 16 * token.number; // TODO use correct font-size\n case 'px':\n default:\n return token.number;\n }\n }\n\n return token.number;\n};\n","import {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {HUNDRED_PERCENT, ZERO_LENGTH} from './length-percentage';\nimport {GradientCorner} from './image';\nimport {Context} from '../../core/context';\n\nconst DEG = 'deg';\nconst GRAD = 'grad';\nconst RAD = 'rad';\nconst TURN = 'turn';\n\nexport const angle: ITypeDescriptor = {\n name: 'angle',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit) {\n case DEG:\n return (Math.PI * value.number) / 180;\n case GRAD:\n return (Math.PI / 200) * value.number;\n case RAD:\n return value.number;\n case TURN:\n return Math.PI * 2 * value.number;\n }\n }\n\n throw new Error(`Unsupported angle type`);\n }\n};\n\nexport const isAngle = (value: CSSValue): boolean => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\n return true;\n }\n }\n return false;\n};\n\nexport const parseNamedSide = (tokens: CSSValue[]): number | GradientCorner => {\n const sideOrCorner = tokens\n .filter(isIdentToken)\n .map((ident) => ident.value)\n .join(' ');\n\n switch (sideOrCorner) {\n case 'to bottom right':\n case 'to right bottom':\n case 'left top':\n case 'top left':\n return [ZERO_LENGTH, ZERO_LENGTH];\n case 'to top':\n case 'bottom':\n return deg(0);\n case 'to bottom left':\n case 'to left bottom':\n case 'right top':\n case 'top right':\n return [ZERO_LENGTH, HUNDRED_PERCENT];\n case 'to right':\n case 'left':\n return deg(90);\n case 'to top left':\n case 'to left top':\n case 'right bottom':\n case 'bottom right':\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\n case 'to bottom':\n case 'top':\n return deg(180);\n case 'to top right':\n case 'to right top':\n case 'left bottom':\n case 'bottom left':\n return [HUNDRED_PERCENT, ZERO_LENGTH];\n case 'to left':\n case 'right':\n return deg(270);\n }\n\n return 0;\n};\n\nexport const deg = (deg: number): number => (Math.PI * deg) / 180;\n","import {CSSValue, nonFunctionArgSeparator, Parser} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {angle, deg} from './angle';\nimport {getAbsoluteValue, isLengthPercentage} from './length-percentage';\nimport {Context} from '../../core/context';\nexport type Color = number;\n\nexport const color: ITypeDescriptor = {\n name: 'color',\n parse: (context: Context, value: CSSValue): Color => {\n if (value.type === TokenType.FUNCTION) {\n const colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\n if (typeof colorFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported color function \"${value.name}\"`);\n }\n return colorFunction(context, value.values);\n }\n\n if (value.type === TokenType.HASH_TOKEN) {\n if (value.value.length === 3) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\n }\n\n if (value.value.length === 4) {\n const r = value.value.substring(0, 1);\n const g = value.value.substring(1, 2);\n const b = value.value.substring(2, 3);\n const a = value.value.substring(3, 4);\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\n }\n\n if (value.value.length === 6) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\n }\n\n if (value.value.length === 8) {\n const r = value.value.substring(0, 2);\n const g = value.value.substring(2, 4);\n const b = value.value.substring(4, 6);\n const a = value.value.substring(6, 8);\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\n }\n }\n\n if (value.type === TokenType.IDENT_TOKEN) {\n const namedColor = COLORS[value.value.toUpperCase()];\n if (typeof namedColor !== 'undefined') {\n return namedColor;\n }\n }\n\n return COLORS.TRANSPARENT;\n }\n};\n\nexport const isTransparent = (color: Color): boolean => (0xff & color) === 0;\n\nexport const asString = (color: Color): string => {\n const alpha = 0xff & color;\n const blue = 0xff & (color >> 8);\n const green = 0xff & (color >> 16);\n const red = 0xff & (color >> 24);\n return alpha < 255 ? `rgba(${red},${green},${blue},${alpha / 255})` : `rgb(${red},${green},${blue})`;\n};\n\nexport const pack = (r: number, g: number, b: number, a: number): Color =>\n ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\n\nconst getTokenColorValue = (token: CSSValue, i: number): number => {\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\n const max = i === 3 ? 1 : 255;\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\n }\n\n return 0;\n};\n\nconst rgb = (_context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n\n if (tokens.length === 3) {\n const [r, g, b] = tokens.map(getTokenColorValue);\n return pack(r, g, b, 1);\n }\n\n if (tokens.length === 4) {\n const [r, g, b, a] = tokens.map(getTokenColorValue);\n return pack(r, g, b, a);\n }\n\n return 0;\n};\n\nfunction hue2rgb(t1: number, t2: number, hue: number): number {\n if (hue < 0) {\n hue += 1;\n }\n if (hue >= 1) {\n hue -= 1;\n }\n\n if (hue < 1 / 6) {\n return (t2 - t1) * hue * 6 + t1;\n } else if (hue < 1 / 2) {\n return t2;\n } else if (hue < 2 / 3) {\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\n } else {\n return t1;\n }\n}\n\nconst hsl = (context: Context, args: CSSValue[]): number => {\n const tokens = args.filter(nonFunctionArgSeparator);\n const [hue, saturation, lightness, alpha] = tokens;\n\n const h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2);\n const s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\n const l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\n const a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\n\n if (s === 0) {\n return pack(l * 255, l * 255, l * 255, 1);\n }\n\n const t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n\n const t1 = l * 2 - t2;\n const r = hue2rgb(t1, t2, h + 1 / 3);\n const g = hue2rgb(t1, t2, h);\n const b = hue2rgb(t1, t2, h - 1 / 3);\n return pack(r * 255, g * 255, b * 255, a);\n};\n\nconst SUPPORTED_COLOR_FUNCTIONS: {\n [key: string]: (context: Context, args: CSSValue[]) => number;\n} = {\n hsl: hsl,\n hsla: hsl,\n rgb: rgb,\n rgba: rgb\n};\n\nexport const parseColor = (context: Context, value: string): Color =>\n color.parse(context, Parser.create(value).parseComponentValue());\n\nexport const COLORS: {[key: string]: Color} = {\n ALICEBLUE: 0xf0f8ffff,\n ANTIQUEWHITE: 0xfaebd7ff,\n AQUA: 0x00ffffff,\n AQUAMARINE: 0x7fffd4ff,\n AZURE: 0xf0ffffff,\n BEIGE: 0xf5f5dcff,\n BISQUE: 0xffe4c4ff,\n BLACK: 0x000000ff,\n BLANCHEDALMOND: 0xffebcdff,\n BLUE: 0x0000ffff,\n BLUEVIOLET: 0x8a2be2ff,\n BROWN: 0xa52a2aff,\n BURLYWOOD: 0xdeb887ff,\n CADETBLUE: 0x5f9ea0ff,\n CHARTREUSE: 0x7fff00ff,\n CHOCOLATE: 0xd2691eff,\n CORAL: 0xff7f50ff,\n CORNFLOWERBLUE: 0x6495edff,\n CORNSILK: 0xfff8dcff,\n CRIMSON: 0xdc143cff,\n CYAN: 0x00ffffff,\n DARKBLUE: 0x00008bff,\n DARKCYAN: 0x008b8bff,\n DARKGOLDENROD: 0xb886bbff,\n DARKGRAY: 0xa9a9a9ff,\n DARKGREEN: 0x006400ff,\n DARKGREY: 0xa9a9a9ff,\n DARKKHAKI: 0xbdb76bff,\n DARKMAGENTA: 0x8b008bff,\n DARKOLIVEGREEN: 0x556b2fff,\n DARKORANGE: 0xff8c00ff,\n DARKORCHID: 0x9932ccff,\n DARKRED: 0x8b0000ff,\n DARKSALMON: 0xe9967aff,\n DARKSEAGREEN: 0x8fbc8fff,\n DARKSLATEBLUE: 0x483d8bff,\n DARKSLATEGRAY: 0x2f4f4fff,\n DARKSLATEGREY: 0x2f4f4fff,\n DARKTURQUOISE: 0x00ced1ff,\n DARKVIOLET: 0x9400d3ff,\n DEEPPINK: 0xff1493ff,\n DEEPSKYBLUE: 0x00bfffff,\n DIMGRAY: 0x696969ff,\n DIMGREY: 0x696969ff,\n DODGERBLUE: 0x1e90ffff,\n FIREBRICK: 0xb22222ff,\n FLORALWHITE: 0xfffaf0ff,\n FORESTGREEN: 0x228b22ff,\n FUCHSIA: 0xff00ffff,\n GAINSBORO: 0xdcdcdcff,\n GHOSTWHITE: 0xf8f8ffff,\n GOLD: 0xffd700ff,\n GOLDENROD: 0xdaa520ff,\n GRAY: 0x808080ff,\n GREEN: 0x008000ff,\n GREENYELLOW: 0xadff2fff,\n GREY: 0x808080ff,\n HONEYDEW: 0xf0fff0ff,\n HOTPINK: 0xff69b4ff,\n INDIANRED: 0xcd5c5cff,\n INDIGO: 0x4b0082ff,\n IVORY: 0xfffff0ff,\n KHAKI: 0xf0e68cff,\n LAVENDER: 0xe6e6faff,\n LAVENDERBLUSH: 0xfff0f5ff,\n LAWNGREEN: 0x7cfc00ff,\n LEMONCHIFFON: 0xfffacdff,\n LIGHTBLUE: 0xadd8e6ff,\n LIGHTCORAL: 0xf08080ff,\n LIGHTCYAN: 0xe0ffffff,\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\n LIGHTGRAY: 0xd3d3d3ff,\n LIGHTGREEN: 0x90ee90ff,\n LIGHTGREY: 0xd3d3d3ff,\n LIGHTPINK: 0xffb6c1ff,\n LIGHTSALMON: 0xffa07aff,\n LIGHTSEAGREEN: 0x20b2aaff,\n LIGHTSKYBLUE: 0x87cefaff,\n LIGHTSLATEGRAY: 0x778899ff,\n LIGHTSLATEGREY: 0x778899ff,\n LIGHTSTEELBLUE: 0xb0c4deff,\n LIGHTYELLOW: 0xffffe0ff,\n LIME: 0x00ff00ff,\n LIMEGREEN: 0x32cd32ff,\n LINEN: 0xfaf0e6ff,\n MAGENTA: 0xff00ffff,\n MAROON: 0x800000ff,\n MEDIUMAQUAMARINE: 0x66cdaaff,\n MEDIUMBLUE: 0x0000cdff,\n MEDIUMORCHID: 0xba55d3ff,\n MEDIUMPURPLE: 0x9370dbff,\n MEDIUMSEAGREEN: 0x3cb371ff,\n MEDIUMSLATEBLUE: 0x7b68eeff,\n MEDIUMSPRINGGREEN: 0x00fa9aff,\n MEDIUMTURQUOISE: 0x48d1ccff,\n MEDIUMVIOLETRED: 0xc71585ff,\n MIDNIGHTBLUE: 0x191970ff,\n MINTCREAM: 0xf5fffaff,\n MISTYROSE: 0xffe4e1ff,\n MOCCASIN: 0xffe4b5ff,\n NAVAJOWHITE: 0xffdeadff,\n NAVY: 0x000080ff,\n OLDLACE: 0xfdf5e6ff,\n OLIVE: 0x808000ff,\n OLIVEDRAB: 0x6b8e23ff,\n ORANGE: 0xffa500ff,\n ORANGERED: 0xff4500ff,\n ORCHID: 0xda70d6ff,\n PALEGOLDENROD: 0xeee8aaff,\n PALEGREEN: 0x98fb98ff,\n PALETURQUOISE: 0xafeeeeff,\n PALEVIOLETRED: 0xdb7093ff,\n PAPAYAWHIP: 0xffefd5ff,\n PEACHPUFF: 0xffdab9ff,\n PERU: 0xcd853fff,\n PINK: 0xffc0cbff,\n PLUM: 0xdda0ddff,\n POWDERBLUE: 0xb0e0e6ff,\n PURPLE: 0x800080ff,\n REBECCAPURPLE: 0x663399ff,\n RED: 0xff0000ff,\n ROSYBROWN: 0xbc8f8fff,\n ROYALBLUE: 0x4169e1ff,\n SADDLEBROWN: 0x8b4513ff,\n SALMON: 0xfa8072ff,\n SANDYBROWN: 0xf4a460ff,\n SEAGREEN: 0x2e8b57ff,\n SEASHELL: 0xfff5eeff,\n SIENNA: 0xa0522dff,\n SILVER: 0xc0c0c0ff,\n SKYBLUE: 0x87ceebff,\n SLATEBLUE: 0x6a5acdff,\n SLATEGRAY: 0x708090ff,\n SLATEGREY: 0x708090ff,\n SNOW: 0xfffafaff,\n SPRINGGREEN: 0x00ff7fff,\n STEELBLUE: 0x4682b4ff,\n TAN: 0xd2b48cff,\n TEAL: 0x008080ff,\n THISTLE: 0xd8bfd8ff,\n TOMATO: 0xff6347ff,\n TRANSPARENT: 0x00000000,\n TURQUOISE: 0x40e0d0ff,\n VIOLET: 0xee82eeff,\n WHEAT: 0xf5deb3ff,\n WHITE: 0xffffffff,\n WHITESMOKE: 0xf5f5f5ff,\n YELLOW: 0xffff00ff,\n YELLOWGREEN: 0x9acd32ff\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum BACKGROUND_CLIP {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundClip = BACKGROUND_CLIP[];\n\nexport const backgroundClip: IPropertyListDescriptor = {\n name: 'background-clip',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundClip => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_CLIP.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_CLIP.CONTENT_BOX;\n }\n }\n return BACKGROUND_CLIP.BORDER_BOX;\n });\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const backgroundColor: IPropertyTypeValueDescriptor = {\n name: `background-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue} from '../../syntax/parser';\nimport {\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n GradientColorStop,\n GradientCorner,\n UnprocessedGradientColorStop\n} from '../image';\nimport {color as colorType} from '../color';\nimport {getAbsoluteValue, HUNDRED_PERCENT, isLengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const parseColorStop = (context: Context, args: CSSValue[]): UnprocessedGradientColorStop => {\n const color = colorType.parse(context, args[0]);\n const stop = args[1];\n return stop && isLengthPercentage(stop) ? {color, stop} : {color, stop: null};\n};\n\nexport const processColorStops = (stops: UnprocessedGradientColorStop[], lineLength: number): GradientColorStop[] => {\n const first = stops[0];\n const last = stops[stops.length - 1];\n if (first.stop === null) {\n first.stop = ZERO_LENGTH;\n }\n\n if (last.stop === null) {\n last.stop = HUNDRED_PERCENT;\n }\n\n const processStops: (number | null)[] = [];\n let previous = 0;\n for (let i = 0; i < stops.length; i++) {\n const stop = stops[i].stop;\n if (stop !== null) {\n const absoluteValue = getAbsoluteValue(stop, lineLength);\n if (absoluteValue > previous) {\n processStops.push(absoluteValue);\n } else {\n processStops.push(previous);\n }\n previous = absoluteValue;\n } else {\n processStops.push(null);\n }\n }\n\n let gapBegin = null;\n for (let i = 0; i < processStops.length; i++) {\n const stop = processStops[i];\n if (stop === null) {\n if (gapBegin === null) {\n gapBegin = i;\n }\n } else if (gapBegin !== null) {\n const gapLength = i - gapBegin;\n const beforeGap = processStops[gapBegin - 1] as number;\n const gapValue = (stop - beforeGap) / (gapLength + 1);\n for (let g = 1; g <= gapLength; g++) {\n processStops[gapBegin + g - 1] = gapValue * g;\n }\n gapBegin = null;\n }\n }\n\n return stops.map(({color}, i) => {\n return {color, stop: Math.max(Math.min(1, (processStops[i] as number) / lineLength), 0)};\n });\n};\n\nconst getAngleFromCorner = (corner: GradientCorner, width: number, height: number): number => {\n const centerX = width / 2;\n const centerY = height / 2;\n const x = getAbsoluteValue(corner[0], width) - centerX;\n const y = centerY - getAbsoluteValue(corner[1], height);\n\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\n};\n\nexport const calculateGradientDirection = (\n angle: number | GradientCorner,\n width: number,\n height: number\n): [number, number, number, number, number] => {\n const radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\n\n const lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\n\n const halfWidth = width / 2;\n const halfHeight = height / 2;\n const halfLineLength = lineLength / 2;\n\n const yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\n const xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\n\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\n};\n\nconst distance = (a: number, b: number): number => Math.sqrt(a * a + b * b);\n\nconst findCorner = (width: number, height: number, x: number, y: number, closest: boolean): [number, number] => {\n const corners = [\n [0, 0],\n [0, height],\n [width, 0],\n [width, height]\n ];\n\n return corners.reduce(\n (stat, corner) => {\n const [cx, cy] = corner;\n const d = distance(x - cx, y - cy);\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\n return {\n optimumCorner: corner,\n optimumDistance: d\n };\n }\n\n return stat;\n },\n {\n optimumDistance: closest ? Infinity : -Infinity,\n optimumCorner: null\n }\n ).optimumCorner as [number, number];\n};\n\nexport const calculateRadius = (\n gradient: CSSRadialGradientImage,\n x: number,\n y: number,\n width: number,\n height: number\n): [number, number] => {\n let rx = 0;\n let ry = 0;\n\n switch (gradient.size) {\n case CSSRadialExtent.CLOSEST_SIDE:\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.min(Math.abs(x), Math.abs(x - width));\n ry = Math.min(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.CLOSEST_CORNER:\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.min(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\n const c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, true);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n\n case CSSRadialExtent.FARTHEST_SIDE:\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n rx = Math.max(Math.abs(x), Math.abs(x - width));\n ry = Math.max(Math.abs(y), Math.abs(y - height));\n }\n break;\n\n case CSSRadialExtent.FARTHEST_CORNER:\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\n if (gradient.shape === CSSRadialShape.CIRCLE) {\n rx = ry = Math.max(\n distance(x, y),\n distance(x, y - height),\n distance(x - width, y),\n distance(x - width, y - height)\n );\n } else if (gradient.shape === CSSRadialShape.ELLIPSE) {\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\n const c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\n const [cx, cy] = findCorner(width, height, x, y, false);\n rx = distance(cx - x, (cy - y) / c);\n ry = c * rx;\n }\n break;\n }\n\n if (Array.isArray(gradient.size)) {\n rx = getAbsoluteValue(gradient.size[0], width);\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\n }\n\n return [rx, ry];\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const linearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = angleType.parse(context, firstToken);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {angle, stops, type: CSSImageType.LINEAR_GRADIENT};\n};\n","import {CSSValue, parseFunctionArgs} from '../../syntax/parser';\nimport {CSSImageType, CSSLinearGradientImage, GradientCorner, UnprocessedGradientColorStop} from '../image';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {isAngle, angle as angleType, parseNamedSide, deg} from '../angle';\nimport {parseColorStop} from './gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixLinearGradient = (context: Context, tokens: CSSValue[]): CSSLinearGradientImage => {\n let angle: number | GradientCorner = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n if (i === 0) {\n const firstToken = arg[0];\n if (\n firstToken.type === TokenType.IDENT_TOKEN &&\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1\n ) {\n angle = parseNamedSide(arg);\n return;\n } else if (isAngle(firstToken)) {\n angle = (angleType.parse(context, firstToken) + deg(270)) % deg(360);\n return;\n }\n }\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n });\n\n return {\n angle,\n stops,\n type: CSSImageType.LINEAR_GRADIENT\n };\n};\n","import {CSSValue, isIdentToken, isNumberToken, nonFunctionArgSeparator, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSLinearGradientImage,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {deg} from '../angle';\nimport {TokenType} from '../../syntax/tokenizer';\nimport {color as colorType} from '../color';\nimport {HUNDRED_PERCENT, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {Context} from '../../../core/context';\n\nexport const webkitGradient = (\n context: Context,\n tokens: CSSValue[]\n): CSSLinearGradientImage | CSSRadialGradientImage => {\n const angle = deg(180);\n const stops: UnprocessedGradientColorStop[] = [];\n let type = CSSImageType.LINEAR_GRADIENT;\n const shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n const size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n const firstToken = arg[0];\n if (i === 0) {\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\n type = CSSImageType.LINEAR_GRADIENT;\n return;\n } else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\n type = CSSImageType.RADIAL_GRADIENT;\n return;\n }\n }\n\n if (firstToken.type === TokenType.FUNCTION) {\n if (firstToken.name === 'from') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: ZERO_LENGTH, color});\n } else if (firstToken.name === 'to') {\n const color = colorType.parse(context, firstToken.values[0]);\n stops.push({stop: HUNDRED_PERCENT, color});\n } else if (firstToken.name === 'color-stop') {\n const values = firstToken.values.filter(nonFunctionArgSeparator);\n if (values.length === 2) {\n const color = colorType.parse(context, values[1]);\n const stop = values[0];\n if (isNumberToken(stop)) {\n stops.push({\n stop: {type: TokenType.PERCENTAGE_TOKEN, number: stop.number * 100, flags: stop.flags},\n color\n });\n }\n }\n }\n }\n });\n\n return type === CSSImageType.LINEAR_GRADIENT\n ? {\n angle: (angle + deg(180)) % deg(360),\n stops,\n type\n }\n : {size, shape, stops, position, type};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {Context} from '../../../core/context';\nexport const CLOSEST_SIDE = 'closest-side';\nexport const FARTHEST_SIDE = 'farthest-side';\nexport const CLOSEST_CORNER = 'closest-corner';\nexport const FARTHEST_CORNER = 'farthest-corner';\nexport const CIRCLE = 'circle';\nexport const ELLIPSE = 'ellipse';\nexport const COVER = 'cover';\nexport const CONTAIN = 'contain';\n\nexport const radialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n let isAtPosition = false;\n isColorStop = arg.reduce((acc, token) => {\n if (isAtPosition) {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return acc;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return acc;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return acc;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n }\n } else if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case 'at':\n isAtPosition = true;\n return false;\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case COVER:\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CONTAIN:\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue, isIdentToken, parseFunctionArgs} from '../../syntax/parser';\nimport {\n CSSImageType,\n CSSRadialExtent,\n CSSRadialGradientImage,\n CSSRadialShape,\n CSSRadialSize,\n UnprocessedGradientColorStop\n} from '../image';\nimport {parseColorStop} from './gradient';\nimport {FIFTY_PERCENT, HUNDRED_PERCENT, isLengthPercentage, LengthPercentage, ZERO_LENGTH} from '../length-percentage';\nimport {isLength} from '../length';\nimport {\n CIRCLE,\n CLOSEST_CORNER,\n CLOSEST_SIDE,\n CONTAIN,\n COVER,\n ELLIPSE,\n FARTHEST_CORNER,\n FARTHEST_SIDE\n} from './radial-gradient';\nimport {Context} from '../../../core/context';\n\nexport const prefixRadialGradient = (context: Context, tokens: CSSValue[]): CSSRadialGradientImage => {\n let shape: CSSRadialShape = CSSRadialShape.CIRCLE;\n let size: CSSRadialSize = CSSRadialExtent.FARTHEST_CORNER;\n const stops: UnprocessedGradientColorStop[] = [];\n const position: LengthPercentage[] = [];\n\n parseFunctionArgs(tokens).forEach((arg, i) => {\n let isColorStop = true;\n if (i === 0) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'center':\n position.push(FIFTY_PERCENT);\n return false;\n case 'top':\n case 'left':\n position.push(ZERO_LENGTH);\n return false;\n case 'right':\n case 'bottom':\n position.push(HUNDRED_PERCENT);\n return false;\n }\n } else if (isLengthPercentage(token) || isLength(token)) {\n position.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n } else if (i === 1) {\n isColorStop = arg.reduce((acc, token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case CIRCLE:\n shape = CSSRadialShape.CIRCLE;\n return false;\n case ELLIPSE:\n shape = CSSRadialShape.ELLIPSE;\n return false;\n case CONTAIN:\n case CLOSEST_SIDE:\n size = CSSRadialExtent.CLOSEST_SIDE;\n return false;\n case FARTHEST_SIDE:\n size = CSSRadialExtent.FARTHEST_SIDE;\n return false;\n case CLOSEST_CORNER:\n size = CSSRadialExtent.CLOSEST_CORNER;\n return false;\n case COVER:\n case FARTHEST_CORNER:\n size = CSSRadialExtent.FARTHEST_CORNER;\n return false;\n }\n } else if (isLength(token) || isLengthPercentage(token)) {\n if (!Array.isArray(size)) {\n size = [];\n }\n size.push(token);\n return false;\n }\n\n return acc;\n }, isColorStop);\n }\n\n if (isColorStop) {\n const colorStop = parseColorStop(context, arg);\n stops.push(colorStop);\n }\n });\n\n return {size, shape, stops, position, type: CSSImageType.RADIAL_GRADIENT};\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Color} from './color';\nimport {linearGradient} from './functions/linear-gradient';\nimport {prefixLinearGradient} from './functions/-prefix-linear-gradient';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {LengthPercentage} from './length-percentage';\nimport {webkitGradient} from './functions/-webkit-gradient';\nimport {radialGradient} from './functions/radial-gradient';\nimport {prefixRadialGradient} from './functions/-prefix-radial-gradient';\nimport {Context} from '../../core/context';\n\nexport const enum CSSImageType {\n URL,\n LINEAR_GRADIENT,\n RADIAL_GRADIENT\n}\n\nexport const isLinearGradient = (background: ICSSImage): background is CSSLinearGradientImage => {\n return background.type === CSSImageType.LINEAR_GRADIENT;\n};\n\nexport const isRadialGradient = (background: ICSSImage): background is CSSRadialGradientImage => {\n return background.type === CSSImageType.RADIAL_GRADIENT;\n};\n\nexport interface UnprocessedGradientColorStop {\n color: Color;\n stop: LengthPercentage | null;\n}\n\nexport interface GradientColorStop {\n color: Color;\n stop: number;\n}\n\nexport interface ICSSImage {\n type: CSSImageType;\n}\n\nexport interface CSSURLImage extends ICSSImage {\n url: string;\n type: CSSImageType.URL;\n}\n\n// interface ICSSGeneratedImage extends ICSSImage {}\n\nexport type GradientCorner = [LengthPercentage, LengthPercentage];\n\ninterface ICSSGradientImage extends ICSSImage {\n stops: UnprocessedGradientColorStop[];\n}\n\nexport interface CSSLinearGradientImage extends ICSSGradientImage {\n angle: number | GradientCorner;\n type: CSSImageType.LINEAR_GRADIENT;\n}\n\nexport const enum CSSRadialShape {\n CIRCLE,\n ELLIPSE\n}\n\nexport const enum CSSRadialExtent {\n CLOSEST_SIDE,\n FARTHEST_SIDE,\n CLOSEST_CORNER,\n FARTHEST_CORNER\n}\n\nexport type CSSRadialSize = CSSRadialExtent | LengthPercentage[];\n\nexport interface CSSRadialGradientImage extends ICSSGradientImage {\n type: CSSImageType.RADIAL_GRADIENT;\n shape: CSSRadialShape;\n size: CSSRadialSize;\n position: LengthPercentage[];\n}\n\nexport const image: ITypeDescriptor = {\n name: 'image',\n parse: (context: Context, value: CSSValue): ICSSImage => {\n if (value.type === TokenType.URL_TOKEN) {\n const image: CSSURLImage = {url: value.value, type: CSSImageType.URL};\n context.cache.addImage(value.value);\n return image;\n }\n\n if (value.type === TokenType.FUNCTION) {\n const imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\n if (typeof imageFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported image function \"${value.name}\"`);\n }\n return imageFunction(context, value.values);\n }\n\n throw new Error(`Unsupported image type ${value.type}`);\n }\n};\n\nexport function isSupportedImage(value: CSSValue): boolean {\n return (\n !(value.type === TokenType.IDENT_TOKEN && value.value === 'none') &&\n (value.type !== TokenType.FUNCTION || !!SUPPORTED_IMAGE_FUNCTIONS[value.name])\n );\n}\n\nconst SUPPORTED_IMAGE_FUNCTIONS: Record ICSSImage> = {\n 'linear-gradient': linearGradient,\n '-moz-linear-gradient': prefixLinearGradient,\n '-ms-linear-gradient': prefixLinearGradient,\n '-o-linear-gradient': prefixLinearGradient,\n '-webkit-linear-gradient': prefixLinearGradient,\n 'radial-gradient': radialGradient,\n '-moz-radial-gradient': prefixRadialGradient,\n '-ms-radial-gradient': prefixRadialGradient,\n '-o-radial-gradient': prefixRadialGradient,\n '-webkit-radial-gradient': prefixRadialGradient,\n '-webkit-gradient': webkitGradient\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {StringValueToken} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport enum BACKGROUND_SIZE {\n AUTO = 'auto',\n CONTAIN = 'contain',\n COVER = 'cover'\n}\n\nexport type BackgroundSizeInfo = LengthPercentage | StringValueToken;\nexport type BackgroundSize = BackgroundSizeInfo[][];\n\nexport const backgroundSize: IPropertyListDescriptor = {\n name: 'background-size',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundSize => {\n return parseFunctionArgs(tokens).map((values) => values.filter(isBackgroundSizeInfoToken));\n }\n};\n\nconst isBackgroundSizeInfoToken = (value: CSSValue): value is BackgroundSizeInfo =>\n isIdentToken(value) || isLengthPercentage(value);\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image, isSupportedImage} from '../types/image';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, nonFunctionArgSeparator} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const backgroundImage: IPropertyListDescriptor = {\n name: 'background-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens\n .filter((value) => nonFunctionArgSeparator(value) && isSupportedImage(value))\n .map((value) => image.parse(context, value));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum BACKGROUND_ORIGIN {\n BORDER_BOX = 0,\n PADDING_BOX = 1,\n CONTENT_BOX = 2\n}\n\nexport type BackgroundOrigin = BACKGROUND_ORIGIN[];\n\nexport const backgroundOrigin: IPropertyListDescriptor = {\n name: 'background-origin',\n initialValue: 'border-box',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundOrigin => {\n return tokens.map((token) => {\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'padding-box':\n return BACKGROUND_ORIGIN.PADDING_BOX;\n case 'content-box':\n return BACKGROUND_ORIGIN.CONTENT_BOX;\n }\n }\n return BACKGROUND_ORIGIN.BORDER_BOX;\n });\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, parseFunctionArgs} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BackgroundPosition = BackgroundImagePosition[];\n\nexport type BackgroundImagePosition = LengthPercentageTuple;\n\nexport const backgroundPosition: IPropertyListDescriptor = {\n name: 'background-position',\n initialValue: '0% 0%',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundPosition => {\n return parseFunctionArgs(tokens)\n .map((values: CSSValue[]) => values.filter(isLengthPercentage))\n .map(parseLengthPercentageTuple);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, parseFunctionArgs} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport type BackgroundRepeat = BACKGROUND_REPEAT[];\n\nexport const enum BACKGROUND_REPEAT {\n REPEAT = 0,\n NO_REPEAT = 1,\n REPEAT_X = 2,\n REPEAT_Y = 3\n}\n\nexport const backgroundRepeat: IPropertyListDescriptor = {\n name: 'background-repeat',\n initialValue: 'repeat',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BackgroundRepeat => {\n return parseFunctionArgs(tokens)\n .map((values) =>\n values\n .filter(isIdentToken)\n .map((token) => token.value)\n .join(' ')\n )\n .map(parseBackgroundRepeat);\n }\n};\n\nconst parseBackgroundRepeat = (value: string): BACKGROUND_REPEAT => {\n switch (value) {\n case 'no-repeat':\n return BACKGROUND_REPEAT.NO_REPEAT;\n case 'repeat-x':\n case 'repeat no-repeat':\n return BACKGROUND_REPEAT.REPEAT_X;\n case 'repeat-y':\n case 'no-repeat repeat':\n return BACKGROUND_REPEAT.REPEAT_Y;\n case 'repeat':\n default:\n return BACKGROUND_REPEAT.REPEAT;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum LINE_BREAK {\n NORMAL = 'normal',\n STRICT = 'strict'\n}\n\nexport const lineBreak: IPropertyIdentValueDescriptor = {\n name: 'line-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, lineBreak: string): LINE_BREAK => {\n switch (lineBreak) {\n case 'strict':\n return LINE_BREAK.STRICT;\n case 'normal':\n default:\n return LINE_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nconst borderColorForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `border-${side}-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n});\n\nexport const borderTopColor: IPropertyTypeValueDescriptor = borderColorForSide('top');\nexport const borderRightColor: IPropertyTypeValueDescriptor = borderColorForSide('right');\nexport const borderBottomColor: IPropertyTypeValueDescriptor = borderColorForSide('bottom');\nexport const borderLeftColor: IPropertyTypeValueDescriptor = borderColorForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentageTuple, parseLengthPercentageTuple} from '../types/length-percentage';\nimport {Context} from '../../core/context';\nexport type BorderRadius = LengthPercentageTuple;\n\nconst borderRadiusForSide = (side: string): IPropertyListDescriptor => ({\n name: `border-radius-${side}`,\n initialValue: '0 0',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): BorderRadius =>\n parseLengthPercentageTuple(tokens.filter(isLengthPercentage))\n});\n\nexport const borderTopLeftRadius: IPropertyListDescriptor = borderRadiusForSide('top-left');\nexport const borderTopRightRadius: IPropertyListDescriptor = borderRadiusForSide('top-right');\nexport const borderBottomRightRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-right');\nexport const borderBottomLeftRadius: IPropertyListDescriptor = borderRadiusForSide('bottom-left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum BORDER_STYLE {\n NONE = 0,\n SOLID = 1,\n DASHED = 2,\n DOTTED = 3,\n DOUBLE = 4\n}\n\nconst borderStyleForSide = (side: string): IPropertyIdentValueDescriptor => ({\n name: `border-${side}-style`,\n initialValue: 'solid',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, style: string): BORDER_STYLE => {\n switch (style) {\n case 'none':\n return BORDER_STYLE.NONE;\n case 'dashed':\n return BORDER_STYLE.DASHED;\n case 'dotted':\n return BORDER_STYLE.DOTTED;\n case 'double':\n return BORDER_STYLE.DOUBLE;\n }\n return BORDER_STYLE.SOLID;\n }\n});\n\nexport const borderTopStyle: IPropertyIdentValueDescriptor = borderStyleForSide('top');\nexport const borderRightStyle: IPropertyIdentValueDescriptor = borderStyleForSide('right');\nexport const borderBottomStyle: IPropertyIdentValueDescriptor = borderStyleForSide('bottom');\nexport const borderLeftStyle: IPropertyIdentValueDescriptor = borderStyleForSide('left');\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nconst borderWidthForSide = (side: string): IPropertyValueDescriptor => ({\n name: `border-${side}-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n});\n\nexport const borderTopWidth: IPropertyValueDescriptor = borderWidthForSide('top');\nexport const borderRightWidth: IPropertyValueDescriptor = borderWidthForSide('right');\nexport const borderBottomWidth: IPropertyValueDescriptor = borderWidthForSide('bottom');\nexport const borderLeftWidth: IPropertyValueDescriptor = borderWidthForSide('left');\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const color: IPropertyTypeValueDescriptor = {\n name: `color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\n\nexport const enum DIRECTION {\n LTR = 0,\n RTL = 1\n}\n\nexport const direction: IPropertyIdentValueDescriptor = {\n name: 'direction',\n initialValue: 'ltr',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, direction: string) => {\n switch (direction) {\n case 'rtl':\n return DIRECTION.RTL;\n case 'ltr':\n default:\n return DIRECTION.LTR;\n }\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum DISPLAY {\n NONE = 0,\n BLOCK = 1 << 1,\n INLINE = 1 << 2,\n RUN_IN = 1 << 3,\n FLOW = 1 << 4,\n FLOW_ROOT = 1 << 5,\n TABLE = 1 << 6,\n FLEX = 1 << 7,\n GRID = 1 << 8,\n RUBY = 1 << 9,\n SUBGRID = 1 << 10,\n LIST_ITEM = 1 << 11,\n TABLE_ROW_GROUP = 1 << 12,\n TABLE_HEADER_GROUP = 1 << 13,\n TABLE_FOOTER_GROUP = 1 << 14,\n TABLE_ROW = 1 << 15,\n TABLE_CELL = 1 << 16,\n TABLE_COLUMN_GROUP = 1 << 17,\n TABLE_COLUMN = 1 << 18,\n TABLE_CAPTION = 1 << 19,\n RUBY_BASE = 1 << 20,\n RUBY_TEXT = 1 << 21,\n RUBY_BASE_CONTAINER = 1 << 22,\n RUBY_TEXT_CONTAINER = 1 << 23,\n CONTENTS = 1 << 24,\n INLINE_BLOCK = 1 << 25,\n INLINE_LIST_ITEM = 1 << 26,\n INLINE_TABLE = 1 << 27,\n INLINE_FLEX = 1 << 28,\n INLINE_GRID = 1 << 29\n}\n\nexport type Display = number;\n\nexport const display: IPropertyListDescriptor = {\n name: 'display',\n initialValue: 'inline-block',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): Display => {\n return tokens.filter(isIdentToken).reduce((bit, token) => {\n return bit | parseDisplayValue(token.value);\n }, DISPLAY.NONE);\n }\n};\n\nconst parseDisplayValue = (display: string): Display => {\n switch (display) {\n case 'block':\n case '-webkit-box':\n return DISPLAY.BLOCK;\n case 'inline':\n return DISPLAY.INLINE;\n case 'run-in':\n return DISPLAY.RUN_IN;\n case 'flow':\n return DISPLAY.FLOW;\n case 'flow-root':\n return DISPLAY.FLOW_ROOT;\n case 'table':\n return DISPLAY.TABLE;\n case 'flex':\n case '-webkit-flex':\n return DISPLAY.FLEX;\n case 'grid':\n case '-ms-grid':\n return DISPLAY.GRID;\n case 'ruby':\n return DISPLAY.RUBY;\n case 'subgrid':\n return DISPLAY.SUBGRID;\n case 'list-item':\n return DISPLAY.LIST_ITEM;\n case 'table-row-group':\n return DISPLAY.TABLE_ROW_GROUP;\n case 'table-header-group':\n return DISPLAY.TABLE_HEADER_GROUP;\n case 'table-footer-group':\n return DISPLAY.TABLE_FOOTER_GROUP;\n case 'table-row':\n return DISPLAY.TABLE_ROW;\n case 'table-cell':\n return DISPLAY.TABLE_CELL;\n case 'table-column-group':\n return DISPLAY.TABLE_COLUMN_GROUP;\n case 'table-column':\n return DISPLAY.TABLE_COLUMN;\n case 'table-caption':\n return DISPLAY.TABLE_CAPTION;\n case 'ruby-base':\n return DISPLAY.RUBY_BASE;\n case 'ruby-text':\n return DISPLAY.RUBY_TEXT;\n case 'ruby-base-container':\n return DISPLAY.RUBY_BASE_CONTAINER;\n case 'ruby-text-container':\n return DISPLAY.RUBY_TEXT_CONTAINER;\n case 'contents':\n return DISPLAY.CONTENTS;\n case 'inline-block':\n return DISPLAY.INLINE_BLOCK;\n case 'inline-list-item':\n return DISPLAY.INLINE_LIST_ITEM;\n case 'inline-table':\n return DISPLAY.INLINE_TABLE;\n case 'inline-flex':\n return DISPLAY.INLINE_FLEX;\n case 'inline-grid':\n return DISPLAY.INLINE_GRID;\n }\n\n return DISPLAY.NONE;\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FLOAT {\n NONE = 0,\n LEFT = 1,\n RIGHT = 2,\n INLINE_START = 3,\n INLINE_END = 4\n}\n\nexport const float: IPropertyIdentValueDescriptor = {\n name: 'float',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, float: string) => {\n switch (float) {\n case 'left':\n return FLOAT.LEFT;\n case 'right':\n return FLOAT.RIGHT;\n case 'inline-start':\n return FLOAT.INLINE_START;\n case 'inline-end':\n return FLOAT.INLINE_END;\n }\n return FLOAT.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport const letterSpacing: IPropertyValueDescriptor = {\n name: 'letter-spacing',\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\n return 0;\n }\n\n if (token.type === TokenType.NUMBER_TOKEN) {\n return token.number;\n }\n\n if (token.type === TokenType.DIMENSION_TOKEN) {\n return token.number;\n }\n\n return 0;\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport enum WORD_BREAK {\n NORMAL = 'normal',\n BREAK_ALL = 'break-all',\n KEEP_ALL = 'keep-all'\n}\n\nexport const wordBreak: IPropertyIdentValueDescriptor = {\n name: 'word-break',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, wordBreak: string): WORD_BREAK => {\n switch (wordBreak) {\n case 'break-all':\n return WORD_BREAK.BREAK_ALL;\n case 'keep-all':\n return WORD_BREAK.KEEP_ALL;\n case 'normal':\n default:\n return WORD_BREAK.NORMAL;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {getAbsoluteValue, isLengthPercentage} from '../types/length-percentage';\nexport const lineHeight: IPropertyTokenValueDescriptor = {\n name: 'line-height',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n};\n\nexport const computeLineHeight = (token: CSSValue, fontSize: number): number => {\n if (isIdentToken(token) && token.value === 'normal') {\n return 1.2 * fontSize;\n } else if (token.type === TokenType.NUMBER_TOKEN) {\n return fontSize * token.number;\n } else if (isLengthPercentage(token)) {\n return getAbsoluteValue(token, fontSize);\n }\n\n return fontSize;\n};\n","import {TokenType} from '../syntax/tokenizer';\nimport {ICSSImage, image} from '../types/image';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const listStyleImage: IPropertyValueDescriptor = {\n name: 'list-style-image',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n return image.parse(context, token);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_POSITION {\n INSIDE = 0,\n OUTSIDE = 1\n}\n\nexport const listStylePosition: IPropertyIdentValueDescriptor = {\n name: 'list-style-position',\n initialValue: 'outside',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'inside':\n return LIST_STYLE_POSITION.INSIDE;\n case 'outside':\n default:\n return LIST_STYLE_POSITION.OUTSIDE;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum LIST_STYLE_TYPE {\n NONE = -1,\n DISC = 0,\n CIRCLE = 1,\n SQUARE = 2,\n DECIMAL = 3,\n CJK_DECIMAL = 4,\n DECIMAL_LEADING_ZERO = 5,\n LOWER_ROMAN = 6,\n UPPER_ROMAN = 7,\n LOWER_GREEK = 8,\n LOWER_ALPHA = 9,\n UPPER_ALPHA = 10,\n ARABIC_INDIC = 11,\n ARMENIAN = 12,\n BENGALI = 13,\n CAMBODIAN = 14,\n CJK_EARTHLY_BRANCH = 15,\n CJK_HEAVENLY_STEM = 16,\n CJK_IDEOGRAPHIC = 17,\n DEVANAGARI = 18,\n ETHIOPIC_NUMERIC = 19,\n GEORGIAN = 20,\n GUJARATI = 21,\n GURMUKHI = 22,\n HEBREW = 22,\n HIRAGANA = 23,\n HIRAGANA_IROHA = 24,\n JAPANESE_FORMAL = 25,\n JAPANESE_INFORMAL = 26,\n KANNADA = 27,\n KATAKANA = 28,\n KATAKANA_IROHA = 29,\n KHMER = 30,\n KOREAN_HANGUL_FORMAL = 31,\n KOREAN_HANJA_FORMAL = 32,\n KOREAN_HANJA_INFORMAL = 33,\n LAO = 34,\n LOWER_ARMENIAN = 35,\n MALAYALAM = 36,\n MONGOLIAN = 37,\n MYANMAR = 38,\n ORIYA = 39,\n PERSIAN = 40,\n SIMP_CHINESE_FORMAL = 41,\n SIMP_CHINESE_INFORMAL = 42,\n TAMIL = 43,\n TELUGU = 44,\n THAI = 45,\n TIBETAN = 46,\n TRAD_CHINESE_FORMAL = 47,\n TRAD_CHINESE_INFORMAL = 48,\n UPPER_ARMENIAN = 49,\n DISCLOSURE_OPEN = 50,\n DISCLOSURE_CLOSED = 51\n}\n\nexport const listStyleType: IPropertyIdentValueDescriptor = {\n name: 'list-style-type',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, type: string) => {\n switch (type) {\n case 'disc':\n return LIST_STYLE_TYPE.DISC;\n case 'circle':\n return LIST_STYLE_TYPE.CIRCLE;\n case 'square':\n return LIST_STYLE_TYPE.SQUARE;\n case 'decimal':\n return LIST_STYLE_TYPE.DECIMAL;\n case 'cjk-decimal':\n return LIST_STYLE_TYPE.CJK_DECIMAL;\n case 'decimal-leading-zero':\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\n case 'lower-roman':\n return LIST_STYLE_TYPE.LOWER_ROMAN;\n case 'upper-roman':\n return LIST_STYLE_TYPE.UPPER_ROMAN;\n case 'lower-greek':\n return LIST_STYLE_TYPE.LOWER_GREEK;\n case 'lower-alpha':\n return LIST_STYLE_TYPE.LOWER_ALPHA;\n case 'upper-alpha':\n return LIST_STYLE_TYPE.UPPER_ALPHA;\n case 'arabic-indic':\n return LIST_STYLE_TYPE.ARABIC_INDIC;\n case 'armenian':\n return LIST_STYLE_TYPE.ARMENIAN;\n case 'bengali':\n return LIST_STYLE_TYPE.BENGALI;\n case 'cambodian':\n return LIST_STYLE_TYPE.CAMBODIAN;\n case 'cjk-earthly-branch':\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\n case 'cjk-heavenly-stem':\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\n case 'cjk-ideographic':\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\n case 'devanagari':\n return LIST_STYLE_TYPE.DEVANAGARI;\n case 'ethiopic-numeric':\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\n case 'georgian':\n return LIST_STYLE_TYPE.GEORGIAN;\n case 'gujarati':\n return LIST_STYLE_TYPE.GUJARATI;\n case 'gurmukhi':\n return LIST_STYLE_TYPE.GURMUKHI;\n case 'hebrew':\n return LIST_STYLE_TYPE.HEBREW;\n case 'hiragana':\n return LIST_STYLE_TYPE.HIRAGANA;\n case 'hiragana-iroha':\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\n case 'japanese-formal':\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\n case 'japanese-informal':\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\n case 'kannada':\n return LIST_STYLE_TYPE.KANNADA;\n case 'katakana':\n return LIST_STYLE_TYPE.KATAKANA;\n case 'katakana-iroha':\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\n case 'khmer':\n return LIST_STYLE_TYPE.KHMER;\n case 'korean-hangul-formal':\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\n case 'korean-hanja-formal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\n case 'korean-hanja-informal':\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\n case 'lao':\n return LIST_STYLE_TYPE.LAO;\n case 'lower-armenian':\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\n case 'malayalam':\n return LIST_STYLE_TYPE.MALAYALAM;\n case 'mongolian':\n return LIST_STYLE_TYPE.MONGOLIAN;\n case 'myanmar':\n return LIST_STYLE_TYPE.MYANMAR;\n case 'oriya':\n return LIST_STYLE_TYPE.ORIYA;\n case 'persian':\n return LIST_STYLE_TYPE.PERSIAN;\n case 'simp-chinese-formal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\n case 'simp-chinese-informal':\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\n case 'tamil':\n return LIST_STYLE_TYPE.TAMIL;\n case 'telugu':\n return LIST_STYLE_TYPE.TELUGU;\n case 'thai':\n return LIST_STYLE_TYPE.THAI;\n case 'tibetan':\n return LIST_STYLE_TYPE.TIBETAN;\n case 'trad-chinese-formal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\n case 'trad-chinese-informal':\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\n case 'upper-armenian':\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\n case 'disclosure-open':\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\n case 'disclosure-closed':\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\n case 'none':\n default:\n return LIST_STYLE_TYPE.NONE;\n }\n }\n};\n","import {IPropertyTokenValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst marginForSide = (side: string): IPropertyTokenValueDescriptor => ({\n name: `margin-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TOKEN_VALUE\n});\n\nexport const marginTop: IPropertyTokenValueDescriptor = marginForSide('top');\nexport const marginRight: IPropertyTokenValueDescriptor = marginForSide('right');\nexport const marginBottom: IPropertyTokenValueDescriptor = marginForSide('bottom');\nexport const marginLeft: IPropertyTokenValueDescriptor = marginForSide('left');\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW {\n VISIBLE = 0,\n HIDDEN = 1,\n SCROLL = 2,\n CLIP = 3,\n AUTO = 4\n}\n\nexport const overflow: IPropertyListDescriptor = {\n name: 'overflow',\n initialValue: 'visible',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): OVERFLOW[] => {\n return tokens.filter(isIdentToken).map((overflow) => {\n switch (overflow.value) {\n case 'hidden':\n return OVERFLOW.HIDDEN;\n case 'scroll':\n return OVERFLOW.SCROLL;\n case 'clip':\n return OVERFLOW.CLIP;\n case 'auto':\n return OVERFLOW.AUTO;\n case 'visible':\n default:\n return OVERFLOW.VISIBLE;\n }\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum OVERFLOW_WRAP {\n NORMAL = 'normal',\n BREAK_WORD = 'break-word'\n}\n\nexport const overflowWrap: IPropertyIdentValueDescriptor = {\n name: 'overflow-wrap',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'break-word':\n return OVERFLOW_WRAP.BREAK_WORD;\n case 'normal':\n default:\n return OVERFLOW_WRAP.NORMAL;\n }\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nconst paddingForSide = (side: string): IPropertyTypeValueDescriptor => ({\n name: `padding-${side}`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length-percentage'\n});\n\nexport const paddingTop: IPropertyTypeValueDescriptor = paddingForSide('top');\nexport const paddingRight: IPropertyTypeValueDescriptor = paddingForSide('right');\nexport const paddingBottom: IPropertyTypeValueDescriptor = paddingForSide('bottom');\nexport const paddingLeft: IPropertyTypeValueDescriptor = paddingForSide('left');\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_ALIGN {\n LEFT = 0,\n CENTER = 1,\n RIGHT = 2\n}\n\nexport const textAlign: IPropertyIdentValueDescriptor = {\n name: 'text-align',\n initialValue: 'left',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textAlign: string) => {\n switch (textAlign) {\n case 'right':\n return TEXT_ALIGN.RIGHT;\n case 'center':\n case 'justify':\n return TEXT_ALIGN.CENTER;\n case 'left':\n default:\n return TEXT_ALIGN.LEFT;\n }\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum POSITION {\n STATIC = 0,\n RELATIVE = 1,\n ABSOLUTE = 2,\n FIXED = 3,\n STICKY = 4\n}\n\nexport const position: IPropertyIdentValueDescriptor = {\n name: 'position',\n initialValue: 'static',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, position: string) => {\n switch (position) {\n case 'relative':\n return POSITION.RELATIVE;\n case 'absolute':\n return POSITION.ABSOLUTE;\n case 'fixed':\n return POSITION.FIXED;\n case 'sticky':\n return POSITION.STICKY;\n }\n\n return POSITION.STATIC;\n }\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color, COLORS} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type TextShadow = TextShadowItem[];\ninterface TextShadowItem {\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n}\n\nexport const textShadow: IPropertyListDescriptor = {\n name: 'text-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): TextShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: TextShadowItem = {\n color: COLORS.TRANSPARENT,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else {\n shadow.blur = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum TEXT_TRANSFORM {\n NONE = 0,\n LOWERCASE = 1,\n UPPERCASE = 2,\n CAPITALIZE = 3\n}\n\nexport const textTransform: IPropertyIdentValueDescriptor = {\n name: 'text-transform',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, textTransform: string) => {\n switch (textTransform) {\n case 'uppercase':\n return TEXT_TRANSFORM.UPPERCASE;\n case 'lowercase':\n return TEXT_TRANSFORM.LOWERCASE;\n case 'capitalize':\n return TEXT_TRANSFORM.CAPITALIZE;\n }\n\n return TEXT_TRANSFORM.NONE;\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {NumberValueToken, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type Matrix = [number, number, number, number, number, number];\nexport type Transform = Matrix | null;\n\nexport const transform: IPropertyValueDescriptor = {\n name: 'transform',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue) => {\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\n return null;\n }\n\n if (token.type === TokenType.FUNCTION) {\n const transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\n if (typeof transformFunction === 'undefined') {\n throw new Error(`Attempting to parse an unsupported transform function \"${token.name}\"`);\n }\n return transformFunction(token.values);\n }\n\n return null;\n }\n};\n\nconst matrix = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n return values.length === 6 ? (values as Matrix) : null;\n};\n\n// doesn't support 3D transforms at the moment\nconst matrix3d = (args: CSSValue[]): Transform => {\n const values = args.filter((arg) => arg.type === TokenType.NUMBER_TOKEN).map((arg: NumberValueToken) => arg.number);\n\n const [a1, b1, {}, {}, a2, b2, {}, {}, {}, {}, {}, {}, a4, b4, {}, {}] = values;\n\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\n};\n\nconst SUPPORTED_TRANSFORM_FUNCTIONS: {\n [key: string]: (args: CSSValue[]) => Transform;\n} = {\n matrix: matrix,\n matrix3d: matrix3d\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {isLengthPercentage, LengthPercentage} from '../types/length-percentage';\nimport {FLAG_INTEGER, TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\nexport type TransformOrigin = [LengthPercentage, LengthPercentage];\n\nconst DEFAULT_VALUE: LengthPercentage = {\n type: TokenType.PERCENTAGE_TOKEN,\n number: 50,\n flags: FLAG_INTEGER\n};\nconst DEFAULT: TransformOrigin = [DEFAULT_VALUE, DEFAULT_VALUE];\n\nexport const transformOrigin: IPropertyListDescriptor = {\n name: 'transform-origin',\n initialValue: '50% 50%',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const origins: LengthPercentage[] = tokens.filter(isLengthPercentage);\n\n if (origins.length !== 2) {\n return DEFAULT;\n }\n\n return [origins[0], origins[1]];\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum VISIBILITY {\n VISIBLE = 0,\n HIDDEN = 1,\n COLLAPSE = 2\n}\n\nexport const visibility: IPropertyIdentValueDescriptor = {\n name: 'visible',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, visibility: string) => {\n switch (visibility) {\n case 'hidden':\n return VISIBILITY.HIDDEN;\n case 'collapse':\n return VISIBILITY.COLLAPSE;\n case 'visible':\n default:\n return VISIBILITY.VISIBLE;\n }\n }\n};\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const decode = (base64: string): ArrayBuffer | number[] => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const buffer =\n typeof ArrayBuffer !== 'undefined' &&\n typeof Uint8Array !== 'undefined' &&\n typeof Uint8Array.prototype.slice !== 'undefined'\n ? new ArrayBuffer(bufferLength)\n : new Array(bufferLength);\n const bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return buffer;\n};\n\nexport const polyUint16Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 2) {\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n\nexport const polyUint32Array = (buffer: number[]): number[] => {\n const length = buffer.length;\n const bytes = [];\n for (let i = 0; i < length; i += 4) {\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\n }\n return bytes;\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\ninterface zIndex {\n order: number;\n auto: boolean;\n}\n\nexport const zIndex: IPropertyValueDescriptor = {\n name: 'z-index',\n initialValue: 'auto',\n prefix: false,\n type: PropertyDescriptorParsingType.VALUE,\n parse: (_context: Context, token: CSSValue): zIndex => {\n if (token.type === TokenType.IDENT_TOKEN) {\n return {auto: true, order: 0};\n }\n\n if (isNumberToken(token)) {\n return {auto: false, order: token.number};\n }\n\n throw new Error(`Invalid z-index number parsed`);\n }\n};\n","import {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {ITypeDescriptor} from '../ITypeDescriptor';\nimport {Context} from '../../core/context';\n\nexport const time: ITypeDescriptor = {\n name: 'time',\n parse: (_context: Context, value: CSSValue): number => {\n if (value.type === TokenType.DIMENSION_TOKEN) {\n switch (value.unit.toLowerCase()) {\n case 's':\n return 1000 * value.number;\n case 'ms':\n return value.number;\n }\n }\n\n throw new Error(`Unsupported time type`);\n }\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const opacity: IPropertyValueDescriptor = {\n name: 'opacity',\n initialValue: '1',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n return 1;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const textDecorationColor: IPropertyTypeValueDescriptor = {\n name: `text-decoration-color`,\n initialValue: 'transparent',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport const enum TEXT_DECORATION_LINE {\n NONE = 0,\n UNDERLINE = 1,\n OVERLINE = 2,\n LINE_THROUGH = 3,\n BLINK = 4\n}\n\nexport type TextDecorationLine = TEXT_DECORATION_LINE[];\n\nexport const textDecorationLine: IPropertyListDescriptor = {\n name: 'text-decoration-line',\n initialValue: 'none',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): TextDecorationLine => {\n return tokens\n .filter(isIdentToken)\n .map((token) => {\n switch (token.value) {\n case 'underline':\n return TEXT_DECORATION_LINE.UNDERLINE;\n case 'overline':\n return TEXT_DECORATION_LINE.OVERLINE;\n case 'line-through':\n return TEXT_DECORATION_LINE.LINE_THROUGH;\n case 'none':\n return TEXT_DECORATION_LINE.BLINK;\n }\n return TEXT_DECORATION_LINE.NONE;\n })\n .filter((line) => line !== TEXT_DECORATION_LINE.NONE);\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport type FONT_FAMILY = string;\n\nexport type FontFamily = FONT_FAMILY[];\n\nexport const fontFamily: IPropertyListDescriptor = {\n name: `font-family`,\n initialValue: '',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n const accumulator: string[] = [];\n const results: string[] = [];\n tokens.forEach((token) => {\n switch (token.type) {\n case TokenType.IDENT_TOKEN:\n case TokenType.STRING_TOKEN:\n accumulator.push(token.value);\n break;\n case TokenType.NUMBER_TOKEN:\n accumulator.push(token.number.toString());\n break;\n case TokenType.COMMA_TOKEN:\n results.push(accumulator.join(' '));\n accumulator.length = 0;\n break;\n }\n });\n if (accumulator.length) {\n results.push(accumulator.join(' '));\n }\n return results.map((result) => (result.indexOf(' ') === -1 ? result : `'${result}'`));\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\n\nexport const fontSize: IPropertyTypeValueDescriptor = {\n name: `font-size`,\n initialValue: '0',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'length'\n};\n","import {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontWeight: IPropertyValueDescriptor = {\n name: 'font-weight',\n initialValue: 'normal',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isNumberToken(token)) {\n return token.number;\n }\n\n if (isIdentToken(token)) {\n switch (token.value) {\n case 'bold':\n return 700;\n case 'normal':\n default:\n return 400;\n }\n }\n\n return 400;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const fontVariant: IPropertyListDescriptor = {\n name: 'font-variant',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]): string[] => {\n return tokens.filter(isIdentToken).map((token) => token.value);\n }\n};\n","import {IPropertyIdentValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const enum FONT_STYLE {\n NORMAL = 'normal',\n ITALIC = 'italic',\n OBLIQUE = 'oblique'\n}\n\nexport const fontStyle: IPropertyIdentValueDescriptor = {\n name: 'font-style',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.IDENT_VALUE,\n parse: (_context: Context, overflow: string) => {\n switch (overflow) {\n case 'oblique':\n return FONT_STYLE.OBLIQUE;\n case 'italic':\n return FONT_STYLE.ITALIC;\n case 'normal':\n default:\n return FONT_STYLE.NORMAL;\n }\n }\n};\n","export const contains = (bit: number, value: number): boolean => (bit & value) !== 0;\n","import {TokenType} from '../syntax/tokenizer';\nimport {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport type Content = CSSValue[];\n\nexport const content: IPropertyListDescriptor = {\n name: 'content',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return [];\n }\n\n return tokens;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_INCREMENT {\n counter: string;\n increment: number;\n}\n\nexport type CounterIncrement = COUNTER_INCREMENT[] | null;\n\nexport const counterIncrement: IPropertyListDescriptor = {\n name: 'counter-increment',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const increments = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (counter.type === TokenType.IDENT_TOKEN) {\n const increment = next && isNumberToken(next) ? next.number : 1;\n increments.push({counter: counter.value, increment});\n }\n }\n\n return increments;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken, isNumberToken, nonWhiteSpace} from '../syntax/parser';\nimport {Context} from '../../core/context';\n\nexport interface COUNTER_RESET {\n counter: string;\n reset: number;\n}\n\nexport type CounterReset = COUNTER_RESET[];\n\nexport const counterReset: IPropertyListDescriptor = {\n name: 'counter-reset',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return [];\n }\n\n const resets = [];\n const filtered = tokens.filter(nonWhiteSpace);\n\n for (let i = 0; i < filtered.length; i++) {\n const counter = filtered[i];\n const next = filtered[i + 1];\n if (isIdentToken(counter) && counter.value !== 'none') {\n const reset = next && isNumberToken(next) ? next.number : 0;\n resets.push({counter: counter.value, reset});\n }\n }\n\n return resets;\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nimport {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {time} from '../types/time';\n\nexport const duration: IPropertyListDescriptor = {\n name: 'duration',\n initialValue: '0s',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (context: Context, tokens: CSSValue[]) => {\n return tokens.filter(isDimensionToken).map((token) => time.parse(context, token));\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isStringToken} from '../syntax/parser';\nimport {TokenType} from '../syntax/tokenizer';\nimport {Context} from '../../core/context';\n\nexport interface QUOTE {\n open: string;\n close: string;\n}\n\nexport type Quotes = QUOTE[] | null;\n\nexport const quotes: IPropertyListDescriptor = {\n name: 'quotes',\n initialValue: 'none',\n prefix: true,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]) => {\n if (tokens.length === 0) {\n return null;\n }\n\n const first = tokens[0];\n\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\n return null;\n }\n\n const quotes = [];\n const filtered = tokens.filter(isStringToken);\n\n if (filtered.length % 2 !== 0) {\n return null;\n }\n\n for (let i = 0; i < filtered.length; i += 2) {\n const open = filtered[i].value;\n const close = filtered[i + 1].value;\n quotes.push({open, close});\n }\n\n return quotes;\n }\n};\n\nexport const getQuote = (quotes: Quotes, depth: number, open: boolean): string => {\n if (!quotes) {\n return '';\n }\n\n const quote = quotes[Math.min(depth, quotes.length - 1)];\n if (!quote) {\n return '';\n }\n\n return open ? quote.open : quote.close;\n};\n","import {PropertyDescriptorParsingType, IPropertyListDescriptor} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentWithValue, parseFunctionArgs} from '../syntax/parser';\nimport {ZERO_LENGTH} from '../types/length-percentage';\nimport {color, Color} from '../types/color';\nimport {isLength, Length} from '../types/length';\nimport {Context} from '../../core/context';\n\nexport type BoxShadow = BoxShadowItem[];\ninterface BoxShadowItem {\n inset: boolean;\n color: Color;\n offsetX: Length;\n offsetY: Length;\n blur: Length;\n spread: Length;\n}\n\nexport const boxShadow: IPropertyListDescriptor = {\n name: 'box-shadow',\n initialValue: 'none',\n type: PropertyDescriptorParsingType.LIST,\n prefix: false,\n parse: (context: Context, tokens: CSSValue[]): BoxShadow => {\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\n return [];\n }\n\n return parseFunctionArgs(tokens).map((values: CSSValue[]) => {\n const shadow: BoxShadowItem = {\n color: 0x000000ff,\n offsetX: ZERO_LENGTH,\n offsetY: ZERO_LENGTH,\n blur: ZERO_LENGTH,\n spread: ZERO_LENGTH,\n inset: false\n };\n let c = 0;\n for (let i = 0; i < values.length; i++) {\n const token = values[i];\n if (isIdentWithValue(token, 'inset')) {\n shadow.inset = true;\n } else if (isLength(token)) {\n if (c === 0) {\n shadow.offsetX = token;\n } else if (c === 1) {\n shadow.offsetY = token;\n } else if (c === 2) {\n shadow.blur = token;\n } else {\n shadow.spread = token;\n }\n c++;\n } else {\n shadow.color = color.parse(context, token);\n }\n }\n return shadow;\n });\n }\n};\n","import {IPropertyListDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {CSSValue, isIdentToken} from '../syntax/parser';\nimport {Context} from '../../core/context';\nexport const enum PAINT_ORDER_LAYER {\n FILL,\n STROKE,\n MARKERS\n}\n\nexport type PaintOrder = PAINT_ORDER_LAYER[];\n\nexport const paintOrder: IPropertyListDescriptor = {\n name: 'paint-order',\n initialValue: 'normal',\n prefix: false,\n type: PropertyDescriptorParsingType.LIST,\n parse: (_context: Context, tokens: CSSValue[]): PaintOrder => {\n const DEFAULT_VALUE = [PAINT_ORDER_LAYER.FILL, PAINT_ORDER_LAYER.STROKE, PAINT_ORDER_LAYER.MARKERS];\n const layers: PaintOrder = [];\n\n tokens.filter(isIdentToken).forEach((token) => {\n switch (token.value) {\n case 'stroke':\n layers.push(PAINT_ORDER_LAYER.STROKE);\n break;\n case 'fill':\n layers.push(PAINT_ORDER_LAYER.FILL);\n break;\n case 'markers':\n layers.push(PAINT_ORDER_LAYER.MARKERS);\n break;\n }\n });\n DEFAULT_VALUE.forEach((value) => {\n if (layers.indexOf(value) === -1) {\n layers.push(value);\n }\n });\n\n return layers;\n }\n};\n","import {IPropertyTypeValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nexport const webkitTextStrokeColor: IPropertyTypeValueDescriptor = {\n name: `-webkit-text-stroke-color`,\n initialValue: 'currentcolor',\n prefix: false,\n type: PropertyDescriptorParsingType.TYPE_VALUE,\n format: 'color'\n};\n","import {CSSValue, isDimensionToken} from '../syntax/parser';\nimport {IPropertyValueDescriptor, PropertyDescriptorParsingType} from '../IPropertyDescriptor';\nimport {Context} from '../../core/context';\nexport const webkitTextStrokeWidth: IPropertyValueDescriptor = {\n name: `-webkit-text-stroke-width`,\n initialValue: '0',\n type: PropertyDescriptorParsingType.VALUE,\n prefix: false,\n parse: (_context: Context, token: CSSValue): number => {\n if (isDimensionToken(token)) {\n return token.number;\n }\n return 0;\n }\n};\n","import {CSSPropertyDescriptor, PropertyDescriptorParsingType} from './IPropertyDescriptor';\nimport {backgroundClip} from './property-descriptors/background-clip';\nimport {backgroundColor} from './property-descriptors/background-color';\nimport {backgroundImage} from './property-descriptors/background-image';\nimport {backgroundOrigin} from './property-descriptors/background-origin';\nimport {backgroundPosition} from './property-descriptors/background-position';\nimport {backgroundRepeat} from './property-descriptors/background-repeat';\nimport {backgroundSize} from './property-descriptors/background-size';\nimport {\n borderBottomColor,\n borderLeftColor,\n borderRightColor,\n borderTopColor\n} from './property-descriptors/border-color';\nimport {\n borderBottomLeftRadius,\n borderBottomRightRadius,\n borderTopLeftRadius,\n borderTopRightRadius\n} from './property-descriptors/border-radius';\nimport {\n borderBottomStyle,\n borderLeftStyle,\n borderRightStyle,\n borderTopStyle\n} from './property-descriptors/border-style';\nimport {\n borderBottomWidth,\n borderLeftWidth,\n borderRightWidth,\n borderTopWidth\n} from './property-descriptors/border-width';\nimport {color} from './property-descriptors/color';\nimport {direction} from './property-descriptors/direction';\nimport {display, DISPLAY} from './property-descriptors/display';\nimport {float, FLOAT} from './property-descriptors/float';\nimport {letterSpacing} from './property-descriptors/letter-spacing';\nimport {lineBreak} from './property-descriptors/line-break';\nimport {lineHeight} from './property-descriptors/line-height';\nimport {listStyleImage} from './property-descriptors/list-style-image';\nimport {listStylePosition} from './property-descriptors/list-style-position';\nimport {listStyleType} from './property-descriptors/list-style-type';\nimport {marginBottom, marginLeft, marginRight, marginTop} from './property-descriptors/margin';\nimport {overflow, OVERFLOW} from './property-descriptors/overflow';\nimport {overflowWrap} from './property-descriptors/overflow-wrap';\nimport {paddingBottom, paddingLeft, paddingRight, paddingTop} from './property-descriptors/padding';\nimport {textAlign} from './property-descriptors/text-align';\nimport {position, POSITION} from './property-descriptors/position';\nimport {textShadow} from './property-descriptors/text-shadow';\nimport {textTransform} from './property-descriptors/text-transform';\nimport {transform} from './property-descriptors/transform';\nimport {transformOrigin} from './property-descriptors/transform-origin';\nimport {visibility, VISIBILITY} from './property-descriptors/visibility';\nimport {wordBreak} from './property-descriptors/word-break';\nimport {zIndex} from './property-descriptors/z-index';\nimport {CSSValue, isIdentToken, Parser} from './syntax/parser';\nimport {Tokenizer} from './syntax/tokenizer';\nimport {Color, color as colorType, isTransparent} from './types/color';\nimport {angle} from './types/angle';\nimport {image} from './types/image';\nimport {time} from './types/time';\nimport {opacity} from './property-descriptors/opacity';\nimport {textDecorationColor} from './property-descriptors/text-decoration-color';\nimport {textDecorationLine} from './property-descriptors/text-decoration-line';\nimport {isLengthPercentage, LengthPercentage, ZERO_LENGTH} from './types/length-percentage';\nimport {fontFamily} from './property-descriptors/font-family';\nimport {fontSize} from './property-descriptors/font-size';\nimport {isLength} from './types/length';\nimport {fontWeight} from './property-descriptors/font-weight';\nimport {fontVariant} from './property-descriptors/font-variant';\nimport {fontStyle} from './property-descriptors/font-style';\nimport {contains} from '../core/bitwise';\nimport {content} from './property-descriptors/content';\nimport {counterIncrement} from './property-descriptors/counter-increment';\nimport {counterReset} from './property-descriptors/counter-reset';\nimport {duration} from './property-descriptors/duration';\nimport {quotes} from './property-descriptors/quotes';\nimport {boxShadow} from './property-descriptors/box-shadow';\nimport {paintOrder} from './property-descriptors/paint-order';\nimport {webkitTextStrokeColor} from './property-descriptors/webkit-text-stroke-color';\nimport {webkitTextStrokeWidth} from './property-descriptors/webkit-text-stroke-width';\nimport {Context} from '../core/context';\n\nexport class CSSParsedDeclaration {\n animationDuration: ReturnType;\n backgroundClip: ReturnType;\n backgroundColor: Color;\n backgroundImage: ReturnType;\n backgroundOrigin: ReturnType;\n backgroundPosition: ReturnType;\n backgroundRepeat: ReturnType;\n backgroundSize: ReturnType;\n borderTopColor: Color;\n borderRightColor: Color;\n borderBottomColor: Color;\n borderLeftColor: Color;\n borderTopLeftRadius: ReturnType;\n borderTopRightRadius: ReturnType;\n borderBottomRightRadius: ReturnType;\n borderBottomLeftRadius: ReturnType;\n borderTopStyle: ReturnType;\n borderRightStyle: ReturnType;\n borderBottomStyle: ReturnType;\n borderLeftStyle: ReturnType;\n borderTopWidth: ReturnType;\n borderRightWidth: ReturnType;\n borderBottomWidth: ReturnType;\n borderLeftWidth: ReturnType;\n boxShadow: ReturnType;\n color: Color;\n direction: ReturnType;\n display: ReturnType;\n float: ReturnType;\n fontFamily: ReturnType;\n fontSize: LengthPercentage;\n fontStyle: ReturnType;\n fontVariant: ReturnType;\n fontWeight: ReturnType;\n letterSpacing: ReturnType;\n lineBreak: ReturnType;\n lineHeight: CSSValue;\n listStyleImage: ReturnType;\n listStylePosition: ReturnType;\n listStyleType: ReturnType;\n marginTop: CSSValue;\n marginRight: CSSValue;\n marginBottom: CSSValue;\n marginLeft: CSSValue;\n opacity: ReturnType;\n overflowX: OVERFLOW;\n overflowY: OVERFLOW;\n overflowWrap: ReturnType;\n paddingTop: LengthPercentage;\n paddingRight: LengthPercentage;\n paddingBottom: LengthPercentage;\n paddingLeft: LengthPercentage;\n paintOrder: ReturnType;\n position: ReturnType;\n textAlign: ReturnType;\n textDecorationColor: Color;\n textDecorationLine: ReturnType;\n textShadow: ReturnType;\n textTransform: ReturnType;\n transform: ReturnType;\n transformOrigin: ReturnType;\n visibility: ReturnType;\n webkitTextStrokeColor: Color;\n webkitTextStrokeWidth: ReturnType;\n wordBreak: ReturnType;\n zIndex: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.animationDuration = parse(context, duration, declaration.animationDuration);\n this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip);\n this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor);\n this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage);\n this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin);\n this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition);\n this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat);\n this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize);\n this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor);\n this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor);\n this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor);\n this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor);\n this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius);\n this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius);\n this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius);\n this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius);\n this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle);\n this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle);\n this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle);\n this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle);\n this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth);\n this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth);\n this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth);\n this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth);\n this.boxShadow = parse(context, boxShadow, declaration.boxShadow);\n this.color = parse(context, color, declaration.color);\n this.direction = parse(context, direction, declaration.direction);\n this.display = parse(context, display, declaration.display);\n this.float = parse(context, float, declaration.cssFloat);\n this.fontFamily = parse(context, fontFamily, declaration.fontFamily);\n this.fontSize = parse(context, fontSize, declaration.fontSize);\n this.fontStyle = parse(context, fontStyle, declaration.fontStyle);\n this.fontVariant = parse(context, fontVariant, declaration.fontVariant);\n this.fontWeight = parse(context, fontWeight, declaration.fontWeight);\n this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing);\n this.lineBreak = parse(context, lineBreak, declaration.lineBreak);\n this.lineHeight = parse(context, lineHeight, declaration.lineHeight);\n this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage);\n this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition);\n this.listStyleType = parse(context, listStyleType, declaration.listStyleType);\n this.marginTop = parse(context, marginTop, declaration.marginTop);\n this.marginRight = parse(context, marginRight, declaration.marginRight);\n this.marginBottom = parse(context, marginBottom, declaration.marginBottom);\n this.marginLeft = parse(context, marginLeft, declaration.marginLeft);\n this.opacity = parse(context, opacity, declaration.opacity);\n const overflowTuple = parse(context, overflow, declaration.overflow);\n this.overflowX = overflowTuple[0];\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\n this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap);\n this.paddingTop = parse(context, paddingTop, declaration.paddingTop);\n this.paddingRight = parse(context, paddingRight, declaration.paddingRight);\n this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom);\n this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft);\n this.paintOrder = parse(context, paintOrder, declaration.paintOrder);\n this.position = parse(context, position, declaration.position);\n this.textAlign = parse(context, textAlign, declaration.textAlign);\n this.textDecorationColor = parse(\n context,\n textDecorationColor,\n declaration.textDecorationColor ?? declaration.color\n );\n this.textDecorationLine = parse(\n context,\n textDecorationLine,\n declaration.textDecorationLine ?? declaration.textDecoration\n );\n this.textShadow = parse(context, textShadow, declaration.textShadow);\n this.textTransform = parse(context, textTransform, declaration.textTransform);\n this.transform = parse(context, transform, declaration.transform);\n this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin);\n this.visibility = parse(context, visibility, declaration.visibility);\n this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor);\n this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth);\n this.wordBreak = parse(context, wordBreak, declaration.wordBreak);\n this.zIndex = parse(context, zIndex, declaration.zIndex);\n }\n\n isVisible(): boolean {\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\n }\n\n isTransparent(): boolean {\n return isTransparent(this.backgroundColor);\n }\n\n isTransformed(): boolean {\n return this.transform !== null;\n }\n\n isPositioned(): boolean {\n return this.position !== POSITION.STATIC;\n }\n\n isPositionedWithZIndex(): boolean {\n return this.isPositioned() && !this.zIndex.auto;\n }\n\n isFloating(): boolean {\n return this.float !== FLOAT.NONE;\n }\n\n isInlineLevel(): boolean {\n return (\n contains(this.display, DISPLAY.INLINE) ||\n contains(this.display, DISPLAY.INLINE_BLOCK) ||\n contains(this.display, DISPLAY.INLINE_FLEX) ||\n contains(this.display, DISPLAY.INLINE_GRID) ||\n contains(this.display, DISPLAY.INLINE_LIST_ITEM) ||\n contains(this.display, DISPLAY.INLINE_TABLE)\n );\n }\n}\n\nexport class CSSParsedPseudoDeclaration {\n content: ReturnType;\n quotes: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.content = parse(context, content, declaration.content);\n this.quotes = parse(context, quotes, declaration.quotes);\n }\n}\n\nexport class CSSParsedCounterDeclaration {\n counterIncrement: ReturnType;\n counterReset: ReturnType;\n\n constructor(context: Context, declaration: CSSStyleDeclaration) {\n this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement);\n this.counterReset = parse(context, counterReset, declaration.counterReset);\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst parse = (context: Context, descriptor: CSSPropertyDescriptor, style?: string | null) => {\n const tokenizer = new Tokenizer();\n const value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\n tokenizer.write(value);\n const parser = new Parser(tokenizer.read());\n switch (descriptor.type) {\n case PropertyDescriptorParsingType.IDENT_VALUE:\n const token = parser.parseComponentValue();\n return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue);\n case PropertyDescriptorParsingType.VALUE:\n return descriptor.parse(context, parser.parseComponentValue());\n case PropertyDescriptorParsingType.LIST:\n return descriptor.parse(context, parser.parseComponentValues());\n case PropertyDescriptorParsingType.TOKEN_VALUE:\n return parser.parseComponentValue();\n case PropertyDescriptorParsingType.TYPE_VALUE:\n switch (descriptor.format) {\n case 'angle':\n return angle.parse(context, parser.parseComponentValue());\n case 'color':\n return colorType.parse(context, parser.parseComponentValue());\n case 'image':\n return image.parse(context, parser.parseComponentValue());\n case 'length':\n const length = parser.parseComponentValue();\n return isLength(length) ? length : ZERO_LENGTH;\n case 'length-percentage':\n const value = parser.parseComponentValue();\n return isLengthPercentage(value) ? value : ZERO_LENGTH;\n case 'time':\n return time.parse(context, parser.parseComponentValue());\n }\n break;\n }\n};\n","const elementDebuggerAttribute = 'data-html2canvas-debug';\nexport const enum DebuggerType {\n NONE,\n ALL,\n CLONE,\n PARSE,\n RENDER\n}\n\nconst getElementDebugType = (element: Element): DebuggerType => {\n const attribute = element.getAttribute(elementDebuggerAttribute);\n switch (attribute) {\n case 'all':\n return DebuggerType.ALL;\n case 'clone':\n return DebuggerType.CLONE;\n case 'parse':\n return DebuggerType.PARSE;\n case 'render':\n return DebuggerType.RENDER;\n default:\n return DebuggerType.NONE;\n }\n};\n\nexport const isDebugging = (element: Element, type: Omit): boolean => {\n const elementType = getElementDebugType(element);\n return elementType === DebuggerType.ALL || type === elementType;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TextContainer} from './text-container';\nimport {Bounds, parseBounds} from '../css/layout/bounds';\nimport {isHTMLElementNode} from './node-parser';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport const enum FLAGS {\n CREATES_STACKING_CONTEXT = 1 << 1,\n CREATES_REAL_STACKING_CONTEXT = 1 << 2,\n IS_LIST_OWNER = 1 << 3,\n DEBUG_RENDER = 1 << 4\n}\n\nexport class ElementContainer {\n readonly styles: CSSParsedDeclaration;\n readonly textNodes: TextContainer[] = [];\n readonly elements: ElementContainer[] = [];\n bounds: Bounds;\n flags = 0;\n\n constructor(protected readonly context: Context, element: Element) {\n if (isDebugging(element, DebuggerType.PARSE)) {\n debugger;\n }\n\n this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null));\n\n if (isHTMLElementNode(element)) {\n if (this.styles.animationDuration.some((duration) => duration > 0)) {\n element.style.animationDuration = '0s';\n }\n\n if (this.styles.transform !== null) {\n // getBoundingClientRect takes transforms into account\n element.style.transform = 'none';\n }\n }\n\n this.bounds = parseBounds(this.context, element);\n\n if (isDebugging(element, DebuggerType.RENDER)) {\n this.flags |= FLAGS.DEBUG_RENDER;\n }\n }\n}\n","export const base64 =\n 'AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAABQAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA=';\nexport const byteLength = 19616;\n","const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n// Use a lookup table to find the index.\nconst lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (let i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\n\nexport const encode = (arraybuffer: ArrayBuffer): string => {\n let bytes = new Uint8Array(arraybuffer),\n i,\n len = bytes.length,\n base64 = '';\n\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n } else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n\n return base64;\n};\n\nexport const decode = (base64: string): ArrayBuffer => {\n let bufferLength = base64.length * 0.75,\n len = base64.length,\n i,\n p = 0,\n encoded1,\n encoded2,\n encoded3,\n encoded4;\n\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n const arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n};\n","import {decode, polyUint16Array, polyUint32Array} from './Util';\n\nexport type int = number;\n\n/** Shift size for getting the index-2 table offset. */\nexport const UTRIE2_SHIFT_2 = 5;\n\n/** Shift size for getting the index-1 table offset. */\nexport const UTRIE2_SHIFT_1 = 6 + 5;\n\n/**\n * Shift size for shifting left the index array values.\n * Increases possible data size with 16-bit index values at the cost\n * of compactability.\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\n */\nexport const UTRIE2_INDEX_SHIFT = 2;\n\n/**\n * Difference between the two shift sizes,\n * for getting an index-1 offset from an index-2 offset. 6=11-5\n */\nexport const UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\n\n/**\n * The part of the index-2 table for U+D800..U+DBFF stores values for\n * lead surrogate code _units_ not code _points_.\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\n */\nexport const UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\n\n/** Number of entries in a data block. 32=0x20 */\nexport const UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\n/** Mask for getting the lower bits for the in-data-block offset. */\nexport const UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\n\nexport const UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\n/** Count the lengths of both BMP pieces. 2080=0x820 */\nexport const UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\n/**\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\n */\nexport const UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\nexport const UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\n/**\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\n * Variable length, for code points up to highStart, where the last single-value range starts.\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\n *\n * The part of the index-2 table for supplementary code points starts\n * after this index-1 table.\n *\n * Both the index-1 table and the following part of the index-2 table\n * are omitted completely if there is only BMP data.\n */\nexport const UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\n\n/**\n * Number of index-1 entries for the BMP. 32=0x20\n * This part of the index-1 table is omitted from the serialized form.\n */\nexport const UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\n\n/** Number of entries in an index-2 block. 64=0x40 */\nexport const UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\n/** Mask for getting the lower bits for the in-index-2-block offset. */\nexport const UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\n\nconst slice16 = (view: number[] | Uint16Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\n};\n\nconst slice32 = (view: number[] | Uint32Array, start: number, end?: number) => {\n if (view.slice) {\n return view.slice(start, end);\n }\n\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\n};\n\nexport const createTrieFromBase64 = (base64: string, _byteLength: number): Trie => {\n const buffer = decode(base64);\n const view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\n const view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\n const headerLength = 24;\n\n const index = slice16(view16, headerLength / 2, view32[4] / 2);\n const data =\n view32[5] === 2\n ? slice16(view16, (headerLength + view32[4]) / 2)\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\n\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\n};\n\nexport class Trie {\n initialValue: int;\n errorValue: int;\n highStart: int;\n highValueIndex: int;\n index: Uint16Array | number[];\n data: Uint32Array | Uint16Array | number[];\n\n constructor(\n initialValue: int,\n errorValue: int,\n highStart: int,\n highValueIndex: int,\n index: Uint16Array | number[],\n data: Uint32Array | Uint16Array | number[]\n ) {\n this.initialValue = initialValue;\n this.errorValue = errorValue;\n this.highStart = highStart;\n this.highValueIndex = highValueIndex;\n this.index = index;\n this.data = data;\n }\n\n /**\n * Get the value for a code point as stored in the Trie.\n *\n * @param codePoint the code point\n * @return the value\n */\n get(codePoint: number): number {\n let ix;\n if (codePoint >= 0) {\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\n // Ordinary BMP code point, excluding leading surrogates.\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\n // 16 bit data is stored in the index array itself.\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint <= 0xffff) {\n // Lead Surrogate Code Point. A Separate index section is stored for\n // lead surrogate code units and code points.\n // The main index has the code unit data.\n // For this function, we need the code point data.\n // Note: this expression could be refactored for slightly improved efficiency, but\n // surrogate code points will be so rare in practice that it's not worth it.\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n\n if (codePoint < this.highStart) {\n // Supplemental code point, use two-level lookup.\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\n ix = this.index[ix];\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\n ix = this.index[ix];\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\n return this.data[ix];\n }\n if (codePoint <= 0x10ffff) {\n return this.data[this.highValueIndex];\n }\n }\n\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\n return this.errorValue;\n }\n}\n","import {base64, byteLength} from './grapheme-break-trie';\nimport {createTrieFromBase64} from 'utrie';\n\nconst Other = 0;\nconst Prepend = 1;\nconst CR = 2;\nconst LF = 3;\nconst Control = 4;\nconst Extend = 5;\nconst Regional_Indicator = 6;\nconst SpacingMark = 7;\nconst L = 8;\nconst V = 9;\nconst T = 10;\nconst LV = 11;\nconst LVT = 12;\nconst ZWJ = 13;\nconst Extended_Pictographic = 14;\nconst RI = 15;\n\nexport const classes: {[key: string]: number} = {\n Other,\n Prepend,\n CR,\n LF,\n Control,\n Extend,\n Regional_Indicator,\n SpacingMark,\n L,\n V,\n T,\n LV,\n LVT,\n ZWJ,\n Extended_Pictographic,\n RI,\n};\n\nexport const toCodePoints = (str: string): number[] => {\n const codePoints = [];\n let i = 0;\n const length = str.length;\n while (i < length) {\n const value = str.charCodeAt(i++);\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\n const extra = str.charCodeAt(i++);\n if ((extra & 0xfc00) === 0xdc00) {\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\n } else {\n codePoints.push(value);\n i--;\n }\n } else {\n codePoints.push(value);\n }\n }\n return codePoints;\n};\n\nexport const fromCodePoint = (...codePoints: number[]): string => {\n if (String.fromCodePoint) {\n return String.fromCodePoint(...codePoints);\n }\n\n const length = codePoints.length;\n if (!length) {\n return '';\n }\n\n const codeUnits = [];\n\n let index = -1;\n let result = '';\n while (++index < length) {\n let codePoint = codePoints[index];\n if (codePoint <= 0xffff) {\n codeUnits.push(codePoint);\n } else {\n codePoint -= 0x10000;\n codeUnits.push((codePoint >> 10) + 0xd800, (codePoint % 0x400) + 0xdc00);\n }\n if (index + 1 === length || codeUnits.length > 0x4000) {\n result += String.fromCharCode(...codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n};\n\nexport const UnicodeTrie = createTrieFromBase64(base64, byteLength);\n\nexport const BREAK_NOT_ALLOWED = '×';\nexport const BREAK_ALLOWED = '÷';\n\nexport type BREAK_OPPORTUNITIES = typeof BREAK_NOT_ALLOWED | typeof BREAK_ALLOWED;\n\nexport const codePointToClass = (codePoint: number): number => UnicodeTrie.get(codePoint);\n\nconst _graphemeBreakAtIndex = (_codePoints: number[], classTypes: number[], index: number): BREAK_OPPORTUNITIES => {\n let prevIndex = index - 2;\n let prev = classTypes[prevIndex];\n const current = classTypes[index - 1];\n const next = classTypes[index];\n // GB3 Do not break between a CR and LF\n if (current === CR && next === LF) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB4 Otherwise, break before and after controls.\n if (current === CR || current === LF || current === Control) {\n return BREAK_ALLOWED;\n }\n\n // GB5\n if (next === CR || next === LF || next === Control) {\n return BREAK_ALLOWED;\n }\n\n // Do not break Hangul syllable sequences.\n // GB6\n if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB7\n if ((current === LV || current === V) && (next === V || next === T)) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB8\n if ((current === LVT || current === T) && next === T) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9 Do not break before extending characters or ZWJ.\n if (next === ZWJ || next === Extend) {\n return BREAK_NOT_ALLOWED;\n }\n // Do not break before SpacingMarks, or after Prepend characters.\n // GB9a\n if (next === SpacingMark) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB9a\n if (current === Prepend) {\n return BREAK_NOT_ALLOWED;\n }\n\n // GB11 Do not break within emoji modifier sequences or emoji zwj sequences.\n if (current === ZWJ && next === Extended_Pictographic) {\n while (prev === Extend) {\n prev = classTypes[--prevIndex];\n }\n if (prev === Extended_Pictographic) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n // GB12 Do not break within emoji flag sequences.\n // That is, do not break between regional indicator (RI) symbols\n // if there is an odd number of RI characters before the break point.\n if (current === RI && next === RI) {\n let countRI = 0;\n while (prev === RI) {\n countRI++;\n prev = classTypes[--prevIndex];\n }\n if (countRI % 2 === 0) {\n return BREAK_NOT_ALLOWED;\n }\n }\n\n return BREAK_ALLOWED;\n};\n\nexport const graphemeBreakAtIndex = (codePoints: number[], index: number): BREAK_OPPORTUNITIES => {\n // GB1 Break at the start and end of text, unless the text is empty.\n if (index === 0) {\n return BREAK_ALLOWED;\n }\n\n // GB2\n if (index >= codePoints.length) {\n return BREAK_ALLOWED;\n }\n\n const classTypes = codePoints.map(codePointToClass);\n return _graphemeBreakAtIndex(codePoints, classTypes, index);\n};\n\nexport const GraphemeBreaker = (str: string) => {\n const codePoints = toCodePoints(str);\n const length = codePoints.length;\n let index = 0;\n let lastEnd = 0;\n const classTypes = codePoints.map(codePointToClass);\n\n return {\n next: () => {\n if (index >= length) {\n return {done: true, value: null};\n }\n\n let graphemeBreak = BREAK_NOT_ALLOWED;\n while (\n index < length &&\n (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED\n ) {}\n\n if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) {\n const value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index));\n lastEnd = index;\n return {value, done: false};\n }\n\n return {done: true, value: null};\n while (index < length) {}\n\n return {done: true, value: null};\n },\n };\n};\n\nexport const splitGraphemes = (str: string): string[] => {\n const breaker = GraphemeBreaker(str);\n\n const graphemes = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n graphemes.push(bk.value.slice());\n }\n }\n\n return graphemes;\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {\n isBodyElement,\n isCanvasElement,\n isCustomElement,\n isElementNode,\n isHTMLElementNode,\n isIFrameElement,\n isImageElement,\n isScriptElement,\n isSelectElement,\n isSlotElement,\n isStyleElement,\n isSVGElementNode,\n isTextareaElement,\n isTextNode,\n isVideoElement\n} from './node-parser';\nimport {isIdentToken, nonFunctionArgSeparator} from '../css/syntax/parser';\nimport {TokenType} from '../css/syntax/tokenizer';\nimport {CounterState, createCounterText} from '../css/types/functions/counter';\nimport {LIST_STYLE_TYPE, listStyleType} from '../css/property-descriptors/list-style-type';\nimport {CSSParsedCounterDeclaration, CSSParsedPseudoDeclaration} from '../css/index';\nimport {getQuote} from '../css/property-descriptors/quotes';\nimport {Context} from '../core/context';\nimport {DebuggerType, isDebugging} from '../core/debugger';\n\nexport interface CloneOptions {\n ignoreElements?: (element: Element) => boolean;\n onclone?: (document: Document, element: HTMLElement) => void;\n allowTaint?: boolean;\n}\n\nexport interface WindowOptions {\n scrollX: number;\n scrollY: number;\n windowWidth: number;\n windowHeight: number;\n}\n\nexport type CloneConfigurations = CloneOptions & {\n inlineImages: boolean;\n copyStyles: boolean;\n};\n\nconst IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\n\nexport class DocumentCloner {\n private readonly scrolledElements: [Element, number, number][];\n private readonly referenceElement: HTMLElement;\n clonedReferenceElement?: HTMLElement;\n private readonly documentElement: HTMLElement;\n private readonly counters: CounterState;\n private quoteDepth: number;\n\n constructor(\n private readonly context: Context,\n element: HTMLElement,\n private readonly options: CloneConfigurations\n ) {\n this.scrolledElements = [];\n this.referenceElement = element;\n this.counters = new CounterState();\n this.quoteDepth = 0;\n if (!element.ownerDocument) {\n throw new Error('Cloned element does not have an owner document');\n }\n\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false) as HTMLElement;\n }\n\n toIFrame(ownerDocument: Document, windowSize: Bounds): Promise {\n const iframe: HTMLIFrameElement = createIFrameContainer(ownerDocument, windowSize);\n\n if (!iframe.contentWindow) {\n return Promise.reject(`Unable to find iframe window`);\n }\n\n const scrollX = (ownerDocument.defaultView as Window).pageXOffset;\n const scrollY = (ownerDocument.defaultView as Window).pageYOffset;\n\n const cloneWindow = iframe.contentWindow;\n const documentClone: Document = cloneWindow.document;\n\n /* Chrome doesn't detect relative background-images assigned in inline tags\n return isGreenPixel(data)\n ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))\n : Promise.reject(false);\n })\n .then((img: HTMLImageElement) => {\n ctx.drawImage(img, 0, 0);\n // Edge does not render background-images\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\n })\n .catch(() => false);\n};\n\nexport const createForeignObjectSVG = (\n width: number,\n height: number,\n x: number,\n y: number,\n node: Node\n): SVGForeignObjectElement => {\n const xmlns = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(xmlns, 'svg');\n const foreignObject = document.createElementNS(xmlns, 'foreignObject');\n svg.setAttributeNS(null, 'width', width.toString());\n svg.setAttributeNS(null, 'height', height.toString());\n\n foreignObject.setAttributeNS(null, 'width', '100%');\n foreignObject.setAttributeNS(null, 'height', '100%');\n foreignObject.setAttributeNS(null, 'x', x.toString());\n foreignObject.setAttributeNS(null, 'y', y.toString());\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\n svg.appendChild(foreignObject);\n\n foreignObject.appendChild(node);\n\n return svg;\n};\n\nexport const loadSerializedSVG = (svg: Node): Promise => {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = reject;\n\n img.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(svg))}`;\n });\n};\n\nexport const FEATURES = {\n get SUPPORT_RANGE_BOUNDS(): boolean {\n 'use strict';\n const value = testRangeBounds(document);\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', {value});\n return value;\n },\n get SUPPORT_WORD_BREAKING(): boolean {\n 'use strict';\n const value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document);\n Object.defineProperty(FEATURES, 'SUPPORT_WORD_BREAKING', {value});\n return value;\n },\n get SUPPORT_SVG_DRAWING(): boolean {\n 'use strict';\n const value = testSVG(document);\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', {value});\n return value;\n },\n get SUPPORT_FOREIGNOBJECT_DRAWING(): Promise {\n 'use strict';\n const value =\n typeof Array.from === 'function' && typeof window.fetch === 'function'\n ? testForeignObject(document)\n : Promise.resolve(false);\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', {value});\n return value;\n },\n get SUPPORT_CORS_IMAGES(): boolean {\n 'use strict';\n const value = testCORS();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', {value});\n return value;\n },\n get SUPPORT_RESPONSE_TYPE(): boolean {\n 'use strict';\n const value = testResponseType();\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', {value});\n return value;\n },\n get SUPPORT_CORS_XHR(): boolean {\n 'use strict';\n const value = 'withCredentials' in new XMLHttpRequest();\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', {value});\n return value;\n },\n get SUPPORT_NATIVE_TEXT_SEGMENTATION(): boolean {\n 'use strict';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const value = !!(typeof Intl !== 'undefined' && (Intl as any).Segmenter);\n Object.defineProperty(FEATURES, 'SUPPORT_NATIVE_TEXT_SEGMENTATION', {value});\n return value;\n }\n};\n","import {OVERFLOW_WRAP} from '../property-descriptors/overflow-wrap';\nimport {CSSParsedDeclaration} from '../index';\nimport {fromCodePoint, LineBreaker, toCodePoints} from 'css-line-break';\nimport {splitGraphemes} from 'text-segmentation';\nimport {Bounds, parseBounds} from './bounds';\nimport {FEATURES} from '../../core/features';\nimport {Context} from '../../core/context';\n\nexport class TextBounds {\n readonly text: string;\n readonly bounds: Bounds;\n\n constructor(text: string, bounds: Bounds) {\n this.text = text;\n this.bounds = bounds;\n }\n}\n\nexport const parseTextBounds = (\n context: Context,\n value: string,\n styles: CSSParsedDeclaration,\n node: Text\n): TextBounds[] => {\n const textList = breakText(value, styles);\n const textBounds: TextBounds[] = [];\n let offset = 0;\n textList.forEach((text) => {\n if (styles.textDecorationLine.length || text.trim().length > 0) {\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\n const clientRects = createRange(node, offset, text.length).getClientRects();\n if (clientRects.length > 1) {\n const subSegments = segmentGraphemes(text);\n let subOffset = 0;\n subSegments.forEach((subSegment) => {\n textBounds.push(\n new TextBounds(\n subSegment,\n Bounds.fromDOMRectList(\n context,\n createRange(node, subOffset + offset, subSegment.length).getClientRects()\n )\n )\n );\n subOffset += subSegment.length;\n });\n } else {\n textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects)));\n }\n } else {\n const replacementNode = node.splitText(text.length);\n textBounds.push(new TextBounds(text, getWrapperBounds(context, node)));\n node = replacementNode;\n }\n } else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\n node = node.splitText(text.length);\n }\n offset += text.length;\n });\n\n return textBounds;\n};\n\nconst getWrapperBounds = (context: Context, node: Text): Bounds => {\n const ownerDocument = node.ownerDocument;\n if (ownerDocument) {\n const wrapper = ownerDocument.createElement('html2canvaswrapper');\n wrapper.appendChild(node.cloneNode(true));\n const parentNode = node.parentNode;\n if (parentNode) {\n parentNode.replaceChild(wrapper, node);\n const bounds = parseBounds(context, wrapper);\n if (wrapper.firstChild) {\n parentNode.replaceChild(wrapper.firstChild, wrapper);\n }\n return bounds;\n }\n }\n\n return Bounds.EMPTY;\n};\n\nconst createRange = (node: Text, offset: number, length: number): Range => {\n const ownerDocument = node.ownerDocument;\n if (!ownerDocument) {\n throw new Error('Node has no owner document');\n }\n const range = ownerDocument.createRange();\n range.setStart(node, offset);\n range.setEnd(node, offset + length);\n return range;\n};\n\nexport const segmentGraphemes = (value: string): string[] => {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const segmenter = new (Intl as any).Segmenter(void 0, {granularity: 'grapheme'});\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map((segment: any) => segment.segment);\n }\n\n return splitGraphemes(value);\n};\n\nconst segmentWords = (value: string, styles: CSSParsedDeclaration): string[] => {\n if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const segmenter = new (Intl as any).Segmenter(void 0, {\n granularity: 'word'\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return Array.from(segmenter.segment(value)).map((segment: any) => segment.segment);\n }\n\n return breakWords(value, styles);\n};\n\nconst breakText = (value: string, styles: CSSParsedDeclaration): string[] => {\n return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles);\n};\n\n// https://drafts.csswg.org/css-text/#word-separator\nconst wordSeparators = [0x0020, 0x00a0, 0x1361, 0x10100, 0x10101, 0x1039, 0x1091];\n\nconst breakWords = (str: string, styles: CSSParsedDeclaration): string[] => {\n const breaker = LineBreaker(str, {\n lineBreak: styles.lineBreak,\n wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak\n });\n\n const words = [];\n let bk;\n\n while (!(bk = breaker.next()).done) {\n if (bk.value) {\n const value = bk.value.slice();\n const codePoints = toCodePoints(value);\n let word = '';\n codePoints.forEach((codePoint) => {\n if (wordSeparators.indexOf(codePoint) === -1) {\n word += fromCodePoint(codePoint);\n } else {\n if (word.length) {\n words.push(word);\n }\n words.push(fromCodePoint(codePoint));\n word = '';\n }\n });\n\n if (word.length) {\n words.push(word);\n }\n }\n }\n\n return words;\n};\n","import {CSSParsedDeclaration} from '../css/index';\nimport {TEXT_TRANSFORM} from '../css/property-descriptors/text-transform';\nimport {parseTextBounds, TextBounds} from '../css/layout/text';\nimport {Context} from '../core/context';\n\nexport class TextContainer {\n text: string;\n textBounds: TextBounds[];\n\n constructor(context: Context, node: Text, styles: CSSParsedDeclaration) {\n this.text = transform(node.data, styles.textTransform);\n this.textBounds = parseTextBounds(context, this.text, styles, node);\n }\n}\n\nconst transform = (text: string, transform: TEXT_TRANSFORM) => {\n switch (transform) {\n case TEXT_TRANSFORM.LOWERCASE:\n return text.toLowerCase();\n case TEXT_TRANSFORM.CAPITALIZE:\n return text.replace(CAPITALIZE, capitalize);\n case TEXT_TRANSFORM.UPPERCASE:\n return text.toUpperCase();\n default:\n return text;\n }\n};\n\nconst CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\n\nconst capitalize = (m: string, p1: string, p2: string) => {\n if (m.length > 0) {\n return p1 + p2.toUpperCase();\n }\n\n return m;\n};\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\n\nexport class ImageElementContainer extends ElementContainer {\n src: string;\n intrinsicWidth: number;\n intrinsicHeight: number;\n\n constructor(context: Context, img: HTMLImageElement) {\n super(context, img);\n this.src = img.currentSrc || img.src;\n this.intrinsicWidth = img.naturalWidth;\n this.intrinsicHeight = img.naturalHeight;\n this.context.cache.addImage(this.src);\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\n\nexport class CanvasElementContainer extends ElementContainer {\n canvas: HTMLCanvasElement;\n intrinsicWidth: number;\n intrinsicHeight: number;\n\n constructor(context: Context, canvas: HTMLCanvasElement) {\n super(context, canvas);\n this.canvas = canvas;\n this.intrinsicWidth = canvas.width;\n this.intrinsicHeight = canvas.height;\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {parseBounds} from '../../css/layout/bounds';\nimport {Context} from '../../core/context';\n\nexport class SVGElementContainer extends ElementContainer {\n svg: string;\n intrinsicWidth: number;\n intrinsicHeight: number;\n\n constructor(context: Context, img: SVGSVGElement) {\n super(context, img);\n const s = new XMLSerializer();\n const bounds = parseBounds(context, img);\n img.setAttribute('width', `${bounds.width}px`);\n img.setAttribute('height', `${bounds.height}px`);\n\n this.svg = `data:image/svg+xml,${encodeURIComponent(s.serializeToString(img))}`;\n this.intrinsicWidth = img.width.baseVal.value;\n this.intrinsicHeight = img.height.baseVal.value;\n\n this.context.cache.addImage(this.svg);\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\nexport class LIElementContainer extends ElementContainer {\n readonly value: number;\n\n constructor(context: Context, element: HTMLLIElement) {\n super(context, element);\n this.value = element.value;\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\nexport class OLElementContainer extends ElementContainer {\n readonly start: number;\n readonly reversed: boolean;\n\n constructor(context: Context, element: HTMLOListElement) {\n super(context, element);\n this.start = element.start;\n this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {BORDER_STYLE} from '../../css/property-descriptors/border-style';\nimport {BACKGROUND_CLIP} from '../../css/property-descriptors/background-clip';\nimport {BACKGROUND_ORIGIN} from '../../css/property-descriptors/background-origin';\nimport {TokenType} from '../../css/syntax/tokenizer';\nimport {LengthPercentageTuple} from '../../css/types/length-percentage';\nimport {Bounds} from '../../css/layout/bounds';\nimport {Context} from '../../core/context';\n\nconst CHECKBOX_BORDER_RADIUS: LengthPercentageTuple = [\n {\n type: TokenType.DIMENSION_TOKEN,\n flags: 0,\n unit: 'px',\n number: 3\n }\n];\n\nconst RADIO_BORDER_RADIUS: LengthPercentageTuple = [\n {\n type: TokenType.PERCENTAGE_TOKEN,\n flags: 0,\n number: 50\n }\n];\n\nconst reformatInputBounds = (bounds: Bounds): Bounds => {\n if (bounds.width > bounds.height) {\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\n } else if (bounds.width < bounds.height) {\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\n }\n return bounds;\n};\n\nconst getInputValue = (node: HTMLInputElement): string => {\n const value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\n\n return value.length === 0 ? node.placeholder || '' : value;\n};\n\nexport const CHECKBOX = 'checkbox';\nexport const RADIO = 'radio';\nexport const PASSWORD = 'password';\nexport const INPUT_COLOR = 0x2a2a2aff;\n\nexport class InputElementContainer extends ElementContainer {\n readonly type: string;\n readonly checked: boolean;\n readonly value: string;\n\n constructor(context: Context, input: HTMLInputElement) {\n super(context, input);\n this.type = input.type.toLowerCase();\n this.checked = input.checked;\n this.value = getInputValue(input);\n\n if (this.type === CHECKBOX || this.type === RADIO) {\n this.styles.backgroundColor = 0xdededeff;\n this.styles.borderTopColor =\n this.styles.borderRightColor =\n this.styles.borderBottomColor =\n this.styles.borderLeftColor =\n 0xa5a5a5ff;\n this.styles.borderTopWidth =\n this.styles.borderRightWidth =\n this.styles.borderBottomWidth =\n this.styles.borderLeftWidth =\n 1;\n this.styles.borderTopStyle =\n this.styles.borderRightStyle =\n this.styles.borderBottomStyle =\n this.styles.borderLeftStyle =\n BORDER_STYLE.SOLID;\n this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];\n this.styles.backgroundOrigin = [BACKGROUND_ORIGIN.BORDER_BOX];\n this.bounds = reformatInputBounds(this.bounds);\n }\n\n switch (this.type) {\n case CHECKBOX:\n this.styles.borderTopRightRadius =\n this.styles.borderTopLeftRadius =\n this.styles.borderBottomRightRadius =\n this.styles.borderBottomLeftRadius =\n CHECKBOX_BORDER_RADIUS;\n break;\n case RADIO:\n this.styles.borderTopRightRadius =\n this.styles.borderTopLeftRadius =\n this.styles.borderBottomRightRadius =\n this.styles.borderBottomLeftRadius =\n RADIO_BORDER_RADIUS;\n break;\n }\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\nexport class SelectElementContainer extends ElementContainer {\n readonly value: string;\n constructor(context: Context, element: HTMLSelectElement) {\n super(context, element);\n const option = element.options[element.selectedIndex || 0];\n this.value = option ? option.text || '' : '';\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {Context} from '../../core/context';\nexport class TextareaElementContainer extends ElementContainer {\n readonly value: string;\n constructor(context: Context, element: HTMLTextAreaElement) {\n super(context, element);\n this.value = element.value;\n }\n}\n","import {ElementContainer} from '../element-container';\nimport {parseTree} from '../node-parser';\nimport {Color, parseColor, COLORS, isTransparent} from '../../css/types/color';\nimport {Context} from '../../core/context';\n\nexport class IFrameElementContainer extends ElementContainer {\n src: string;\n width: number;\n height: number;\n tree?: ElementContainer;\n backgroundColor: Color;\n\n constructor(context: Context, iframe: HTMLIFrameElement) {\n super(context, iframe);\n this.src = iframe.src;\n this.width = parseInt(iframe.width, 10) || 0;\n this.height = parseInt(iframe.height, 10) || 0;\n this.backgroundColor = this.styles.backgroundColor;\n try {\n if (\n iframe.contentWindow &&\n iframe.contentWindow.document &&\n iframe.contentWindow.document.documentElement\n ) {\n this.tree = parseTree(context, iframe.contentWindow.document.documentElement);\n\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n const documentBackgroundColor = iframe.contentWindow.document.documentElement\n ? parseColor(\n context,\n getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor as string\n )\n : COLORS.TRANSPARENT;\n const bodyBackgroundColor = iframe.contentWindow.document.body\n ? parseColor(\n context,\n getComputedStyle(iframe.contentWindow.document.body).backgroundColor as string\n )\n : COLORS.TRANSPARENT;\n\n this.backgroundColor = isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? this.styles.backgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor;\n }\n } catch (e) {}\n }\n}\n","import {CSSParsedDeclaration} from '../css';\nimport {ElementContainer, FLAGS} from './element-container';\nimport {TextContainer} from './text-container';\nimport {ImageElementContainer} from './replaced-elements/image-element-container';\nimport {CanvasElementContainer} from './replaced-elements/canvas-element-container';\nimport {SVGElementContainer} from './replaced-elements/svg-element-container';\nimport {LIElementContainer} from './elements/li-element-container';\nimport {OLElementContainer} from './elements/ol-element-container';\nimport {InputElementContainer} from './replaced-elements/input-element-container';\nimport {SelectElementContainer} from './elements/select-element-container';\nimport {TextareaElementContainer} from './elements/textarea-element-container';\nimport {IFrameElementContainer} from './replaced-elements/iframe-element-container';\nimport {Context} from '../core/context';\n\nconst LIST_OWNERS = ['OL', 'UL', 'MENU'];\n\nconst parseNodeTree = (context: Context, node: Node, parent: ElementContainer, root: ElementContainer) => {\n for (let childNode = node.firstChild, nextNode; childNode; childNode = nextNode) {\n nextNode = childNode.nextSibling;\n\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\n parent.textNodes.push(new TextContainer(context, childNode, parent.styles));\n } else if (isElementNode(childNode)) {\n if (isSlotElement(childNode) && childNode.assignedNodes) {\n childNode.assignedNodes().forEach((childNode) => parseNodeTree(context, childNode, parent, root));\n } else {\n const container = createContainer(context, childNode);\n if (container.styles.isVisible()) {\n if (createsRealStackingContext(childNode, container, root)) {\n container.flags |= FLAGS.CREATES_REAL_STACKING_CONTEXT;\n } else if (createsStackingContext(container.styles)) {\n container.flags |= FLAGS.CREATES_STACKING_CONTEXT;\n }\n\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\n container.flags |= FLAGS.IS_LIST_OWNER;\n }\n\n parent.elements.push(container);\n childNode.slot;\n if (childNode.shadowRoot) {\n parseNodeTree(context, childNode.shadowRoot, container, root);\n } else if (\n !isTextareaElement(childNode) &&\n !isSVGElement(childNode) &&\n !isSelectElement(childNode)\n ) {\n parseNodeTree(context, childNode, container, root);\n }\n }\n }\n }\n }\n};\n\nconst createContainer = (context: Context, element: Element): ElementContainer => {\n if (isImageElement(element)) {\n return new ImageElementContainer(context, element);\n }\n\n if (isCanvasElement(element)) {\n return new CanvasElementContainer(context, element);\n }\n\n if (isSVGElement(element)) {\n return new SVGElementContainer(context, element);\n }\n\n if (isLIElement(element)) {\n return new LIElementContainer(context, element);\n }\n\n if (isOLElement(element)) {\n return new OLElementContainer(context, element);\n }\n\n if (isInputElement(element)) {\n return new InputElementContainer(context, element);\n }\n\n if (isSelectElement(element)) {\n return new SelectElementContainer(context, element);\n }\n\n if (isTextareaElement(element)) {\n return new TextareaElementContainer(context, element);\n }\n\n if (isIFrameElement(element)) {\n return new IFrameElementContainer(context, element);\n }\n\n return new ElementContainer(context, element);\n};\n\nexport const parseTree = (context: Context, element: HTMLElement): ElementContainer => {\n const container = createContainer(context, element);\n container.flags |= FLAGS.CREATES_REAL_STACKING_CONTEXT;\n parseNodeTree(context, element, container, container);\n return container;\n};\n\nconst createsRealStackingContext = (node: Element, container: ElementContainer, root: ElementContainer): boolean => {\n return (\n container.styles.isPositionedWithZIndex() ||\n container.styles.opacity < 1 ||\n container.styles.isTransformed() ||\n (isBodyElement(node) && root.styles.isTransparent())\n );\n};\n\nconst createsStackingContext = (styles: CSSParsedDeclaration): boolean => styles.isPositioned() || styles.isFloating();\n\nexport const isTextNode = (node: Node): node is Text => node.nodeType === Node.TEXT_NODE;\nexport const isElementNode = (node: Node): node is Element => node.nodeType === Node.ELEMENT_NODE;\nexport const isHTMLElementNode = (node: Node): node is HTMLElement =>\n isElementNode(node) && typeof (node as HTMLElement).style !== 'undefined' && !isSVGElementNode(node);\nexport const isSVGElementNode = (element: Element): element is SVGElement =>\n typeof (element as SVGElement).className === 'object';\nexport const isLIElement = (node: Element): node is HTMLLIElement => node.tagName === 'LI';\nexport const isOLElement = (node: Element): node is HTMLOListElement => node.tagName === 'OL';\nexport const isInputElement = (node: Element): node is HTMLInputElement => node.tagName === 'INPUT';\nexport const isHTMLElement = (node: Element): node is HTMLHtmlElement => node.tagName === 'HTML';\nexport const isSVGElement = (node: Element): node is SVGSVGElement => node.tagName === 'svg';\nexport const isBodyElement = (node: Element): node is HTMLBodyElement => node.tagName === 'BODY';\nexport const isCanvasElement = (node: Element): node is HTMLCanvasElement => node.tagName === 'CANVAS';\nexport const isVideoElement = (node: Element): node is HTMLVideoElement => node.tagName === 'VIDEO';\nexport const isImageElement = (node: Element): node is HTMLImageElement => node.tagName === 'IMG';\nexport const isIFrameElement = (node: Element): node is HTMLIFrameElement => node.tagName === 'IFRAME';\nexport const isStyleElement = (node: Element): node is HTMLStyleElement => node.tagName === 'STYLE';\nexport const isScriptElement = (node: Element): node is HTMLScriptElement => node.tagName === 'SCRIPT';\nexport const isTextareaElement = (node: Element): node is HTMLTextAreaElement => node.tagName === 'TEXTAREA';\nexport const isSelectElement = (node: Element): node is HTMLSelectElement => node.tagName === 'SELECT';\nexport const isSlotElement = (node: Element): node is HTMLSlotElement => node.tagName === 'SLOT';\n// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\nexport const isCustomElement = (node: Element): node is HTMLElement => node.tagName.indexOf('-') > 0;\n","import {LIST_STYLE_TYPE} from '../../property-descriptors/list-style-type';\nimport {fromCodePoint} from 'css-line-break';\nimport {contains} from '../../../core/bitwise';\nimport {CSSParsedCounterDeclaration} from '../../index';\n\nexport class CounterState {\n private readonly counters: {[key: string]: number[]} = {};\n\n getCounterValue(name: string): number {\n const counter = this.counters[name];\n\n if (counter && counter.length) {\n return counter[counter.length - 1];\n }\n return 1;\n }\n\n getCounterValues(name: string): readonly number[] {\n const counter = this.counters[name];\n return counter ? counter : [];\n }\n\n pop(counters: string[]): void {\n counters.forEach((counter) => this.counters[counter].pop());\n }\n\n parse(style: CSSParsedCounterDeclaration): string[] {\n const counterIncrement = style.counterIncrement;\n const counterReset = style.counterReset;\n let canReset = true;\n\n if (counterIncrement !== null) {\n counterIncrement.forEach((entry) => {\n const counter = this.counters[entry.counter];\n if (counter && entry.increment !== 0) {\n canReset = false;\n if (!counter.length) {\n counter.push(1);\n }\n counter[Math.max(0, counter.length - 1)] += entry.increment;\n }\n });\n }\n\n const counterNames: string[] = [];\n if (canReset) {\n counterReset.forEach((entry) => {\n let counter = this.counters[entry.counter];\n counterNames.push(entry.counter);\n if (!counter) {\n counter = this.counters[entry.counter] = [];\n }\n counter.push(entry.reset);\n });\n }\n\n return counterNames;\n }\n}\n\ninterface CounterSymbols {\n integers: number[];\n values: string[];\n}\n\nconst ROMAN_UPPER: CounterSymbols = {\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\n};\n\nconst ARMENIAN: CounterSymbols = {\n integers: [\n 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90, 80, 70,\n 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'Ք',\n 'Փ',\n 'Ւ',\n 'Ց',\n 'Ր',\n 'Տ',\n 'Վ',\n 'Ս',\n 'Ռ',\n 'Ջ',\n 'Պ',\n 'Չ',\n 'Ո',\n 'Շ',\n 'Ն',\n 'Յ',\n 'Մ',\n 'Ճ',\n 'Ղ',\n 'Ձ',\n 'Հ',\n 'Կ',\n 'Ծ',\n 'Խ',\n 'Լ',\n 'Ի',\n 'Ժ',\n 'Թ',\n 'Ը',\n 'Է',\n 'Զ',\n 'Ե',\n 'Դ',\n 'Գ',\n 'Բ',\n 'Ա'\n ]\n};\n\nconst HEBREW: CounterSymbols = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 400, 300, 200, 100, 90, 80, 70, 60, 50, 40, 30, 20,\n 19, 18, 17, 16, 15, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'י׳',\n 'ט׳',\n 'ח׳',\n 'ז׳',\n 'ו׳',\n 'ה׳',\n 'ד׳',\n 'ג׳',\n 'ב׳',\n 'א׳',\n 'ת',\n 'ש',\n 'ר',\n 'ק',\n 'צ',\n 'פ',\n 'ע',\n 'ס',\n 'נ',\n 'מ',\n 'ל',\n 'כ',\n 'יט',\n 'יח',\n 'יז',\n 'טז',\n 'טו',\n 'י',\n 'ט',\n 'ח',\n 'ז',\n 'ו',\n 'ה',\n 'ד',\n 'ג',\n 'ב',\n 'א'\n ]\n};\n\nconst GEORGIAN: CounterSymbols = {\n integers: [\n 10000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 900, 800, 700, 600, 500, 400, 300, 200, 100, 90,\n 80, 70, 60, 50, 40, 30, 20, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1\n ],\n values: [\n 'ჵ',\n 'ჰ',\n 'ჯ',\n 'ჴ',\n 'ხ',\n 'ჭ',\n 'წ',\n 'ძ',\n 'ც',\n 'ჩ',\n 'შ',\n 'ყ',\n 'ღ',\n 'ქ',\n 'ფ',\n 'ჳ',\n 'ტ',\n 'ს',\n 'რ',\n 'ჟ',\n 'პ',\n 'ო',\n 'ჲ',\n 'ნ',\n 'მ',\n 'ლ',\n 'კ',\n 'ი',\n 'თ',\n 'ჱ',\n 'ზ',\n 'ვ',\n 'ე',\n 'დ',\n 'გ',\n 'ბ',\n 'ა'\n ]\n};\n\nconst createAdditiveCounter = (\n value: number,\n min: number,\n max: number,\n symbols: CounterSymbols,\n fallback: LIST_STYLE_TYPE,\n suffix: string\n) => {\n if (value < min || value > max) {\n return createCounterText(value, fallback, suffix.length > 0);\n }\n\n return (\n symbols.integers.reduce((string, integer, index) => {\n while (value >= integer) {\n value -= integer;\n string += symbols.values[index];\n }\n return string;\n }, '') + suffix\n );\n};\n\nconst createCounterStyleWithSymbolResolver = (\n value: number,\n codePointRangeLength: number,\n isNumeric: boolean,\n resolver: (codePoint: number) => string\n): string => {\n let string = '';\n\n do {\n if (!isNumeric) {\n value--;\n }\n string = resolver(value) + string;\n value /= codePointRangeLength;\n } while (value * codePointRangeLength >= codePointRangeLength);\n\n return string;\n};\n\nconst createCounterStyleFromRange = (\n value: number,\n codePointRangeStart: number,\n codePointRangeEnd: number,\n isNumeric: boolean,\n suffix: string\n): string => {\n const codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\n\n return (\n (value < 0 ? '-' : '') +\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, (codePoint) =>\n fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart)\n ) +\n suffix)\n );\n};\n\nconst createCounterStyleFromSymbols = (value: number, symbols: string, suffix = '. '): string => {\n const codePointRangeLength = symbols.length;\n return (\n createCounterStyleWithSymbolResolver(\n Math.abs(value),\n codePointRangeLength,\n false,\n (codePoint) => symbols[Math.floor(codePoint % codePointRangeLength)]\n ) + suffix\n );\n};\n\nconst CJK_ZEROS = 1 << 0;\nconst CJK_TEN_COEFFICIENTS = 1 << 1;\nconst CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\nconst CJK_HUNDRED_COEFFICIENTS = 1 << 3;\n\nconst createCJKCounter = (\n value: number,\n numbers: string,\n multipliers: string,\n negativeSign: string,\n suffix: string,\n flags: number\n): string => {\n if (value < -9999 || value > 9999) {\n return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);\n }\n let tmp = Math.abs(value);\n let string = suffix;\n\n if (tmp === 0) {\n return numbers[0] + string;\n }\n\n for (let digit = 0; tmp > 0 && digit <= 4; digit++) {\n const coefficient = tmp % 10;\n\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\n string = numbers[coefficient] + string;\n } else if (\n coefficient > 1 ||\n (coefficient === 1 && digit === 0) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))\n ) {\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\n } else if (coefficient === 1 && digit > 0) {\n string = multipliers[digit - 1] + string;\n }\n tmp = Math.floor(tmp / 10);\n }\n\n return (value < 0 ? negativeSign : '') + string;\n};\n\nconst CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\nconst CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\nconst JAPANESE_NEGATIVE = 'マイナス';\nconst KOREAN_NEGATIVE = '마이너스';\n\nexport const createCounterText = (value: number, type: LIST_STYLE_TYPE, appendSuffix: boolean): string => {\n const defaultSuffix = appendSuffix ? '. ' : '';\n const cjkSuffix = appendSuffix ? '、' : '';\n const koreanSuffix = appendSuffix ? ', ' : '';\n const spaceSuffix = appendSuffix ? ' ' : '';\n switch (type) {\n case LIST_STYLE_TYPE.DISC:\n return '•' + spaceSuffix;\n case LIST_STYLE_TYPE.CIRCLE:\n return '◦' + spaceSuffix;\n case LIST_STYLE_TYPE.SQUARE:\n return '◾' + spaceSuffix;\n case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:\n const string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n return string.length < 4 ? `0${string}` : string;\n case LIST_STYLE_TYPE.CJK_DECIMAL:\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\n case LIST_STYLE_TYPE.LOWER_ROMAN:\n return createAdditiveCounter(\n value,\n 1,\n 3999,\n ROMAN_UPPER,\n LIST_STYLE_TYPE.DECIMAL,\n defaultSuffix\n ).toLowerCase();\n case LIST_STYLE_TYPE.UPPER_ROMAN:\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\n case LIST_STYLE_TYPE.LOWER_GREEK:\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\n case LIST_STYLE_TYPE.LOWER_ALPHA:\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\n case LIST_STYLE_TYPE.UPPER_ALPHA:\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\n case LIST_STYLE_TYPE.ARABIC_INDIC:\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\n case LIST_STYLE_TYPE.ARMENIAN:\n case LIST_STYLE_TYPE.UPPER_ARMENIAN:\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\n case LIST_STYLE_TYPE.LOWER_ARMENIAN:\n return createAdditiveCounter(\n value,\n 1,\n 9999,\n ARMENIAN,\n LIST_STYLE_TYPE.DECIMAL,\n defaultSuffix\n ).toLowerCase();\n case LIST_STYLE_TYPE.BENGALI:\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\n case LIST_STYLE_TYPE.CAMBODIAN:\n case LIST_STYLE_TYPE.KHMER:\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\n case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\n case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\n case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:\n case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:\n return createCJKCounter(\n value,\n '零一二三四五六七八九',\n CHINESE_INFORMAL_MULTIPLIERS,\n '負',\n cjkSuffix,\n CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:\n return createCJKCounter(\n value,\n '零壹貳參肆伍陸柒捌玖',\n CHINESE_FORMAL_MULTIPLIERS,\n '負',\n cjkSuffix,\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:\n return createCJKCounter(\n value,\n '零一二三四五六七八九',\n CHINESE_INFORMAL_MULTIPLIERS,\n '负',\n cjkSuffix,\n CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:\n return createCJKCounter(\n value,\n '零壹贰叁肆伍陆柒捌玖',\n CHINESE_FORMAL_MULTIPLIERS,\n '负',\n cjkSuffix,\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.JAPANESE_INFORMAL:\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\n case LIST_STYLE_TYPE.JAPANESE_FORMAL:\n return createCJKCounter(\n value,\n '零壱弐参四伍六七八九',\n '拾百千万',\n JAPANESE_NEGATIVE,\n cjkSuffix,\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:\n return createCJKCounter(\n value,\n '영일이삼사오육칠팔구',\n '십백천만',\n KOREAN_NEGATIVE,\n koreanSuffix,\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\n case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:\n return createCJKCounter(\n value,\n '零壹貳參四五六七八九',\n '拾百千',\n KOREAN_NEGATIVE,\n koreanSuffix,\n CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS\n );\n case LIST_STYLE_TYPE.DEVANAGARI:\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\n case LIST_STYLE_TYPE.GEORGIAN:\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\n case LIST_STYLE_TYPE.GUJARATI:\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\n case LIST_STYLE_TYPE.GURMUKHI:\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\n case LIST_STYLE_TYPE.HEBREW:\n return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\n case LIST_STYLE_TYPE.HIRAGANA:\n return createCounterStyleFromSymbols(\n value,\n 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん'\n );\n case LIST_STYLE_TYPE.HIRAGANA_IROHA:\n return createCounterStyleFromSymbols(\n value,\n 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす'\n );\n case LIST_STYLE_TYPE.KANNADA:\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\n case LIST_STYLE_TYPE.KATAKANA:\n return createCounterStyleFromSymbols(\n value,\n 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン',\n cjkSuffix\n );\n case LIST_STYLE_TYPE.KATAKANA_IROHA:\n return createCounterStyleFromSymbols(\n value,\n 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス',\n cjkSuffix\n );\n case LIST_STYLE_TYPE.LAO:\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\n case LIST_STYLE_TYPE.MONGOLIAN:\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\n case LIST_STYLE_TYPE.MYANMAR:\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\n case LIST_STYLE_TYPE.ORIYA:\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\n case LIST_STYLE_TYPE.PERSIAN:\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\n case LIST_STYLE_TYPE.TAMIL:\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\n case LIST_STYLE_TYPE.TELUGU:\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\n case LIST_STYLE_TYPE.THAI:\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\n case LIST_STYLE_TYPE.TIBETAN:\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\n case LIST_STYLE_TYPE.DECIMAL:\n default:\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\n }\n};\n","import {ElementContainer} from '../dom/element-container';\nimport {getAbsoluteValue, getAbsoluteValueForTuple} from '../css/types/length-percentage';\nimport {Vector} from './vector';\nimport {BezierCurve} from './bezier-curve';\nimport {Path} from './path';\n\nexport class BoundCurves {\n readonly topLeftBorderDoubleOuterBox: Path;\n readonly topRightBorderDoubleOuterBox: Path;\n readonly bottomRightBorderDoubleOuterBox: Path;\n readonly bottomLeftBorderDoubleOuterBox: Path;\n readonly topLeftBorderDoubleInnerBox: Path;\n readonly topRightBorderDoubleInnerBox: Path;\n readonly bottomRightBorderDoubleInnerBox: Path;\n readonly bottomLeftBorderDoubleInnerBox: Path;\n readonly topLeftBorderStroke: Path;\n readonly topRightBorderStroke: Path;\n readonly bottomRightBorderStroke: Path;\n readonly bottomLeftBorderStroke: Path;\n readonly topLeftBorderBox: Path;\n readonly topRightBorderBox: Path;\n readonly bottomRightBorderBox: Path;\n readonly bottomLeftBorderBox: Path;\n readonly topLeftPaddingBox: Path;\n readonly topRightPaddingBox: Path;\n readonly bottomRightPaddingBox: Path;\n readonly bottomLeftPaddingBox: Path;\n readonly topLeftContentBox: Path;\n readonly topRightContentBox: Path;\n readonly bottomRightContentBox: Path;\n readonly bottomLeftContentBox: Path;\n\n constructor(element: ElementContainer) {\n const styles = element.styles;\n const bounds = element.bounds;\n\n let [tlh, tlv] = getAbsoluteValueForTuple(styles.borderTopLeftRadius, bounds.width, bounds.height);\n let [trh, trv] = getAbsoluteValueForTuple(styles.borderTopRightRadius, bounds.width, bounds.height);\n let [brh, brv] = getAbsoluteValueForTuple(styles.borderBottomRightRadius, bounds.width, bounds.height);\n let [blh, blv] = getAbsoluteValueForTuple(styles.borderBottomLeftRadius, bounds.width, bounds.height);\n\n const factors = [];\n factors.push((tlh + trh) / bounds.width);\n factors.push((blh + brh) / bounds.width);\n factors.push((tlv + blv) / bounds.height);\n factors.push((trv + brv) / bounds.height);\n const maxFactor = Math.max(...factors);\n\n if (maxFactor > 1) {\n tlh /= maxFactor;\n tlv /= maxFactor;\n trh /= maxFactor;\n trv /= maxFactor;\n brh /= maxFactor;\n brv /= maxFactor;\n blh /= maxFactor;\n blv /= maxFactor;\n }\n\n const topWidth = bounds.width - trh;\n const rightHeight = bounds.height - brv;\n const bottomWidth = bounds.width - brh;\n const leftHeight = bounds.height - blv;\n\n const borderTopWidth = styles.borderTopWidth;\n const borderRightWidth = styles.borderRightWidth;\n const borderBottomWidth = styles.borderBottomWidth;\n const borderLeftWidth = styles.borderLeftWidth;\n\n const paddingTop = getAbsoluteValue(styles.paddingTop, element.bounds.width);\n const paddingRight = getAbsoluteValue(styles.paddingRight, element.bounds.width);\n const paddingBottom = getAbsoluteValue(styles.paddingBottom, element.bounds.width);\n const paddingLeft = getAbsoluteValue(styles.paddingLeft, element.bounds.width);\n\n this.topLeftBorderDoubleOuterBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth / 3,\n bounds.top + borderTopWidth / 3,\n tlh - borderLeftWidth / 3,\n tlv - borderTopWidth / 3,\n CORNER.TOP_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + borderTopWidth / 3);\n this.topRightBorderDoubleOuterBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + topWidth,\n bounds.top + borderTopWidth / 3,\n trh - borderRightWidth / 3,\n trv - borderTopWidth / 3,\n CORNER.TOP_RIGHT\n )\n : new Vector(bounds.left + bounds.width - borderRightWidth / 3, bounds.top + borderTopWidth / 3);\n this.bottomRightBorderDoubleOuterBox =\n brh > 0 || brv > 0\n ? getCurvePoints(\n bounds.left + bottomWidth,\n bounds.top + rightHeight,\n brh - borderRightWidth / 3,\n brv - borderBottomWidth / 3,\n CORNER.BOTTOM_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - borderRightWidth / 3,\n bounds.top + bounds.height - borderBottomWidth / 3\n );\n this.bottomLeftBorderDoubleOuterBox =\n blh > 0 || blv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth / 3,\n bounds.top + leftHeight,\n blh - borderLeftWidth / 3,\n blv - borderBottomWidth / 3,\n CORNER.BOTTOM_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth / 3, bounds.top + bounds.height - borderBottomWidth / 3);\n this.topLeftBorderDoubleInnerBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + (borderLeftWidth * 2) / 3,\n bounds.top + (borderTopWidth * 2) / 3,\n tlh - (borderLeftWidth * 2) / 3,\n tlv - (borderTopWidth * 2) / 3,\n CORNER.TOP_LEFT\n )\n : new Vector(bounds.left + (borderLeftWidth * 2) / 3, bounds.top + (borderTopWidth * 2) / 3);\n this.topRightBorderDoubleInnerBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + topWidth,\n bounds.top + (borderTopWidth * 2) / 3,\n trh - (borderRightWidth * 2) / 3,\n trv - (borderTopWidth * 2) / 3,\n CORNER.TOP_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - (borderRightWidth * 2) / 3,\n bounds.top + (borderTopWidth * 2) / 3\n );\n this.bottomRightBorderDoubleInnerBox =\n brh > 0 || brv > 0\n ? getCurvePoints(\n bounds.left + bottomWidth,\n bounds.top + rightHeight,\n brh - (borderRightWidth * 2) / 3,\n brv - (borderBottomWidth * 2) / 3,\n CORNER.BOTTOM_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - (borderRightWidth * 2) / 3,\n bounds.top + bounds.height - (borderBottomWidth * 2) / 3\n );\n this.bottomLeftBorderDoubleInnerBox =\n blh > 0 || blv > 0\n ? getCurvePoints(\n bounds.left + (borderLeftWidth * 2) / 3,\n bounds.top + leftHeight,\n blh - (borderLeftWidth * 2) / 3,\n blv - (borderBottomWidth * 2) / 3,\n CORNER.BOTTOM_LEFT\n )\n : new Vector(\n bounds.left + (borderLeftWidth * 2) / 3,\n bounds.top + bounds.height - (borderBottomWidth * 2) / 3\n );\n this.topLeftBorderStroke =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth / 2,\n bounds.top + borderTopWidth / 2,\n tlh - borderLeftWidth / 2,\n tlv - borderTopWidth / 2,\n CORNER.TOP_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + borderTopWidth / 2);\n this.topRightBorderStroke =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + topWidth,\n bounds.top + borderTopWidth / 2,\n trh - borderRightWidth / 2,\n trv - borderTopWidth / 2,\n CORNER.TOP_RIGHT\n )\n : new Vector(bounds.left + bounds.width - borderRightWidth / 2, bounds.top + borderTopWidth / 2);\n this.bottomRightBorderStroke =\n brh > 0 || brv > 0\n ? getCurvePoints(\n bounds.left + bottomWidth,\n bounds.top + rightHeight,\n brh - borderRightWidth / 2,\n brv - borderBottomWidth / 2,\n CORNER.BOTTOM_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - borderRightWidth / 2,\n bounds.top + bounds.height - borderBottomWidth / 2\n );\n this.bottomLeftBorderStroke =\n blh > 0 || blv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth / 2,\n bounds.top + leftHeight,\n blh - borderLeftWidth / 2,\n blv - borderBottomWidth / 2,\n CORNER.BOTTOM_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth / 2, bounds.top + bounds.height - borderBottomWidth / 2);\n this.topLeftBorderBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT)\n : new Vector(bounds.left, bounds.top);\n this.topRightBorderBox =\n trh > 0 || trv > 0\n ? getCurvePoints(bounds.left + topWidth, bounds.top, trh, trv, CORNER.TOP_RIGHT)\n : new Vector(bounds.left + bounds.width, bounds.top);\n this.bottomRightBorderBox =\n brh > 0 || brv > 0\n ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh, brv, CORNER.BOTTOM_RIGHT)\n : new Vector(bounds.left + bounds.width, bounds.top + bounds.height);\n this.bottomLeftBorderBox =\n blh > 0 || blv > 0\n ? getCurvePoints(bounds.left, bounds.top + leftHeight, blh, blv, CORNER.BOTTOM_LEFT)\n : new Vector(bounds.left, bounds.top + bounds.height);\n this.topLeftPaddingBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth,\n bounds.top + borderTopWidth,\n Math.max(0, tlh - borderLeftWidth),\n Math.max(0, tlv - borderTopWidth),\n CORNER.TOP_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth, bounds.top + borderTopWidth);\n this.topRightPaddingBox =\n trh > 0 || trv > 0\n ? getCurvePoints(\n bounds.left + Math.min(topWidth, bounds.width - borderRightWidth),\n bounds.top + borderTopWidth,\n topWidth > bounds.width + borderRightWidth ? 0 : Math.max(0, trh - borderRightWidth),\n Math.max(0, trv - borderTopWidth),\n CORNER.TOP_RIGHT\n )\n : new Vector(bounds.left + bounds.width - borderRightWidth, bounds.top + borderTopWidth);\n this.bottomRightPaddingBox =\n brh > 0 || brv > 0\n ? getCurvePoints(\n bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth),\n bounds.top + Math.min(rightHeight, bounds.height - borderBottomWidth),\n Math.max(0, brh - borderRightWidth),\n Math.max(0, brv - borderBottomWidth),\n CORNER.BOTTOM_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - borderRightWidth,\n bounds.top + bounds.height - borderBottomWidth\n );\n this.bottomLeftPaddingBox =\n blh > 0 || blv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth,\n bounds.top + Math.min(leftHeight, bounds.height - borderBottomWidth),\n Math.max(0, blh - borderLeftWidth),\n Math.max(0, blv - borderBottomWidth),\n CORNER.BOTTOM_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth, bounds.top + bounds.height - borderBottomWidth);\n this.topLeftContentBox =\n tlh > 0 || tlv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth + paddingLeft,\n bounds.top + borderTopWidth + paddingTop,\n Math.max(0, tlh - (borderLeftWidth + paddingLeft)),\n Math.max(0, tlv - (borderTopWidth + paddingTop)),\n CORNER.TOP_LEFT\n )\n : new Vector(bounds.left + borderLeftWidth + paddingLeft, bounds.top + borderTopWidth + paddingTop);\n this.topRightContentBox =\n trh > 0 || trv > 0\n ? getCurvePoints(\n bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth + paddingLeft),\n bounds.top + borderTopWidth + paddingTop,\n topWidth > bounds.width + borderLeftWidth + paddingLeft ? 0 : trh - borderLeftWidth + paddingLeft,\n trv - (borderTopWidth + paddingTop),\n CORNER.TOP_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - (borderRightWidth + paddingRight),\n bounds.top + borderTopWidth + paddingTop\n );\n this.bottomRightContentBox =\n brh > 0 || brv > 0\n ? getCurvePoints(\n bounds.left + Math.min(bottomWidth, bounds.width - (borderLeftWidth + paddingLeft)),\n bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth + paddingTop),\n Math.max(0, brh - (borderRightWidth + paddingRight)),\n brv - (borderBottomWidth + paddingBottom),\n CORNER.BOTTOM_RIGHT\n )\n : new Vector(\n bounds.left + bounds.width - (borderRightWidth + paddingRight),\n bounds.top + bounds.height - (borderBottomWidth + paddingBottom)\n );\n this.bottomLeftContentBox =\n blh > 0 || blv > 0\n ? getCurvePoints(\n bounds.left + borderLeftWidth + paddingLeft,\n bounds.top + leftHeight,\n Math.max(0, blh - (borderLeftWidth + paddingLeft)),\n blv - (borderBottomWidth + paddingBottom),\n CORNER.BOTTOM_LEFT\n )\n : new Vector(\n bounds.left + borderLeftWidth + paddingLeft,\n bounds.top + bounds.height - (borderBottomWidth + paddingBottom)\n );\n }\n}\n\nenum CORNER {\n TOP_LEFT = 0,\n TOP_RIGHT = 1,\n BOTTOM_RIGHT = 2,\n BOTTOM_LEFT = 3\n}\n\nconst getCurvePoints = (x: number, y: number, r1: number, r2: number, position: CORNER): BezierCurve => {\n const kappa = 4 * ((Math.sqrt(2) - 1) / 3);\n const ox = r1 * kappa; // control point offset horizontal\n const oy = r2 * kappa; // control point offset vertical\n const xm = x + r1; // x-middle\n const ym = y + r2; // y-middle\n\n switch (position) {\n case CORNER.TOP_LEFT:\n return new BezierCurve(\n new Vector(x, ym),\n new Vector(x, ym - oy),\n new Vector(xm - ox, y),\n new Vector(xm, y)\n );\n case CORNER.TOP_RIGHT:\n return new BezierCurve(\n new Vector(x, y),\n new Vector(x + ox, y),\n new Vector(xm, ym - oy),\n new Vector(xm, ym)\n );\n case CORNER.BOTTOM_RIGHT:\n return new BezierCurve(\n new Vector(xm, y),\n new Vector(xm, y + oy),\n new Vector(x + ox, ym),\n new Vector(x, ym)\n );\n case CORNER.BOTTOM_LEFT:\n default:\n return new BezierCurve(\n new Vector(xm, ym),\n new Vector(xm - ox, ym),\n new Vector(x, y + oy),\n new Vector(x, y)\n );\n }\n};\n\nexport const calculateBorderBoxPath = (curves: BoundCurves): Path[] => {\n return [curves.topLeftBorderBox, curves.topRightBorderBox, curves.bottomRightBorderBox, curves.bottomLeftBorderBox];\n};\n\nexport const calculateContentBoxPath = (curves: BoundCurves): Path[] => {\n return [\n curves.topLeftContentBox,\n curves.topRightContentBox,\n curves.bottomRightContentBox,\n curves.bottomLeftContentBox\n ];\n};\n\nexport const calculatePaddingBoxPath = (curves: BoundCurves): Path[] => {\n return [\n curves.topLeftPaddingBox,\n curves.topRightPaddingBox,\n curves.bottomRightPaddingBox,\n curves.bottomLeftPaddingBox\n ];\n};\n","import {FEATURES} from './features';\nimport {Context} from './context';\n\nexport class CacheStorage {\n private static _link?: HTMLAnchorElement;\n private static _origin = 'about:blank';\n\n static getOrigin(url: string): string {\n const link = CacheStorage._link;\n if (!link) {\n return 'about:blank';\n }\n\n link.href = url;\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\n return link.protocol + link.hostname + link.port;\n }\n\n static isSameOrigin(src: string): boolean {\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\n }\n\n static setContext(window: Window): void {\n CacheStorage._link = window.document.createElement('a');\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\n }\n}\n\nexport interface ResourceOptions {\n imageTimeout: number;\n useCORS: boolean;\n allowTaint: boolean;\n proxy?: string;\n}\n\nexport class Cache {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _cache: {[key: string]: Promise} = {};\n\n constructor(private readonly context: Context, private readonly _options: ResourceOptions) {}\n\n addImage(src: string): Promise {\n const result = Promise.resolve();\n if (this.has(src)) {\n return result;\n }\n\n if (isBlobImage(src) || isRenderable(src)) {\n (this._cache[src] = this.loadImage(src)).catch(() => {\n // prevent unhandled rejection\n });\n return result;\n }\n\n return result;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n match(src: string): Promise {\n return this._cache[src];\n }\n\n private async loadImage(key: string) {\n const isSameOrigin = CacheStorage.isSameOrigin(key);\n const useCORS =\n !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\n const useProxy =\n !isInlineImage(key) &&\n !isSameOrigin &&\n !isBlobImage(key) &&\n typeof this._options.proxy === 'string' &&\n FEATURES.SUPPORT_CORS_XHR &&\n !useCORS;\n if (\n !isSameOrigin &&\n this._options.allowTaint === false &&\n !isInlineImage(key) &&\n !isBlobImage(key) &&\n !useProxy &&\n !useCORS\n ) {\n return;\n }\n\n let src = key;\n if (useProxy) {\n src = await this.proxy(src);\n }\n\n this.context.logger.debug(`Added image ${key.substring(0, 256)}`);\n\n return await new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve(img);\n img.onerror = reject;\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\n if (isInlineBase64Image(src) || useCORS) {\n img.crossOrigin = 'anonymous';\n }\n img.src = src;\n if (img.complete === true) {\n // Inline XML images may fail to parse, throwing an Error later on\n setTimeout(() => resolve(img), 500);\n }\n if (this._options.imageTimeout > 0) {\n setTimeout(\n () => reject(`Timed out (${this._options.imageTimeout}ms) loading image`),\n this._options.imageTimeout\n );\n }\n });\n }\n\n private has(key: string): boolean {\n return typeof this._cache[key] !== 'undefined';\n }\n\n keys(): Promise {\n return Promise.resolve(Object.keys(this._cache));\n }\n\n private proxy(src: string): Promise {\n const proxy = this._options.proxy;\n\n if (!proxy) {\n throw new Error('No proxy defined');\n }\n\n const key = src.substring(0, 256);\n\n return new Promise((resolve, reject) => {\n const responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\n const xhr = new XMLHttpRequest();\n xhr.onload = () => {\n if (xhr.status === 200) {\n if (responseType === 'text') {\n resolve(xhr.response);\n } else {\n const reader = new FileReader();\n reader.addEventListener('load', () => resolve(reader.result as string), false);\n reader.addEventListener('error', (e) => reject(e), false);\n reader.readAsDataURL(xhr.response);\n }\n } else {\n reject(`Failed to proxy resource ${key} with status code ${xhr.status}`);\n }\n };\n\n xhr.onerror = reject;\n const queryString = proxy.indexOf('?') > -1 ? '&' : '?';\n xhr.open('GET', `${proxy}${queryString}url=${encodeURIComponent(src)}&responseType=${responseType}`);\n\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\n xhr.responseType = responseType;\n }\n\n if (this._options.imageTimeout) {\n const timeout = this._options.imageTimeout;\n xhr.timeout = timeout;\n xhr.ontimeout = () => reject(`Timed out (${timeout}ms) proxying ${key}`);\n }\n\n xhr.send();\n });\n }\n}\n\nconst INLINE_SVG = /^data:image\\/svg\\+xml/i;\nconst INLINE_BASE64 = /^data:image\\/.*;base64,/i;\nconst INLINE_IMG = /^data:image\\/.*/i;\n\nconst isRenderable = (src: string): boolean => FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src);\nconst isInlineImage = (src: string): boolean => INLINE_IMG.test(src);\nconst isInlineBase64Image = (src: string): boolean => INLINE_BASE64.test(src);\nconst isBlobImage = (src: string): boolean => src.substr(0, 4) === 'blob';\n\nconst isSVG = (src: string): boolean => src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src);\n","import {IPath, Path, PathType} from './path';\n\nexport class Vector implements IPath {\n type: PathType;\n x: number;\n y: number;\n\n constructor(x: number, y: number) {\n this.type = PathType.VECTOR;\n this.x = x;\n this.y = y;\n }\n\n add(deltaX: number, deltaY: number): Vector {\n return new Vector(this.x + deltaX, this.y + deltaY);\n }\n}\n\nexport const isVector = (path: Path): path is Vector => path.type === PathType.VECTOR;\n","import {Vector} from './vector';\nimport {IPath, PathType, Path} from './path';\n\nconst lerp = (a: Vector, b: Vector, t: number): Vector => {\n return new Vector(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t);\n};\n\nexport class BezierCurve implements IPath {\n type: PathType;\n start: Vector;\n startControl: Vector;\n endControl: Vector;\n end: Vector;\n\n constructor(start: Vector, startControl: Vector, endControl: Vector, end: Vector) {\n this.type = PathType.BEZIER_CURVE;\n this.start = start;\n this.startControl = startControl;\n this.endControl = endControl;\n this.end = end;\n }\n\n subdivide(t: number, firstHalf: boolean): BezierCurve {\n const ab = lerp(this.start, this.startControl, t);\n const bc = lerp(this.startControl, this.endControl, t);\n const cd = lerp(this.endControl, this.end, t);\n const abbc = lerp(ab, bc, t);\n const bccd = lerp(bc, cd, t);\n const dest = lerp(abbc, bccd, t);\n return firstHalf ? new BezierCurve(this.start, ab, abbc, dest) : new BezierCurve(dest, bccd, cd, this.end);\n }\n\n add(deltaX: number, deltaY: number): BezierCurve {\n return new BezierCurve(\n this.start.add(deltaX, deltaY),\n this.startControl.add(deltaX, deltaY),\n this.endControl.add(deltaX, deltaY),\n this.end.add(deltaX, deltaY)\n );\n }\n\n reverse(): BezierCurve {\n return new BezierCurve(this.end, this.endControl, this.startControl, this.start);\n }\n}\n\nexport const isBezierCurve = (path: Path): path is BezierCurve => path.type === PathType.BEZIER_CURVE;\n","import {Matrix} from '../css/property-descriptors/transform';\nimport {Path} from './path';\n\nexport const enum EffectType {\n TRANSFORM = 0,\n CLIP = 1,\n OPACITY = 2\n}\n\nexport const enum EffectTarget {\n BACKGROUND_BORDERS = 1 << 1,\n CONTENT = 1 << 2\n}\n\nexport interface IElementEffect {\n readonly type: EffectType;\n readonly target: number;\n}\n\nexport class TransformEffect implements IElementEffect {\n readonly type: EffectType = EffectType.TRANSFORM;\n readonly target: number = EffectTarget.BACKGROUND_BORDERS | EffectTarget.CONTENT;\n\n constructor(readonly offsetX: number, readonly offsetY: number, readonly matrix: Matrix) {}\n}\n\nexport class ClipEffect implements IElementEffect {\n readonly type: EffectType = EffectType.CLIP;\n\n constructor(readonly path: Path[], readonly target: EffectTarget) {}\n}\n\nexport class OpacityEffect implements IElementEffect {\n readonly type: EffectType = EffectType.OPACITY;\n readonly target: number = EffectTarget.BACKGROUND_BORDERS | EffectTarget.CONTENT;\n\n constructor(readonly opacity: number) {}\n}\n\nexport const isTransformEffect = (effect: IElementEffect): effect is TransformEffect =>\n effect.type === EffectType.TRANSFORM;\nexport const isClipEffect = (effect: IElementEffect): effect is ClipEffect => effect.type === EffectType.CLIP;\nexport const isOpacityEffect = (effect: IElementEffect): effect is OpacityEffect => effect.type === EffectType.OPACITY;\n","import {BezierCurve} from './bezier-curve';\nimport {Vector} from './vector';\nexport const enum PathType {\n VECTOR = 0,\n BEZIER_CURVE = 1\n}\n\nexport interface IPath {\n type: PathType;\n add(deltaX: number, deltaY: number): IPath;\n}\n\nexport const equalPath = (a: Path[], b: Path[]): boolean => {\n if (a.length === b.length) {\n return a.some((v, i) => v === b[i]);\n }\n\n return false;\n};\n\nexport const transformPath = (path: Path[], deltaX: number, deltaY: number, deltaW: number, deltaH: number): Path[] => {\n return path.map((point, index) => {\n switch (index) {\n case 0:\n return point.add(deltaX, deltaY);\n case 1:\n return point.add(deltaX + deltaW, deltaY);\n case 2:\n return point.add(deltaX + deltaW, deltaY + deltaH);\n case 3:\n return point.add(deltaX, deltaY + deltaH);\n }\n return point;\n });\n};\n\nexport type Path = Vector | BezierCurve;\n","import {ElementContainer, FLAGS} from '../dom/element-container';\nimport {contains} from '../core/bitwise';\nimport {BoundCurves, calculateBorderBoxPath, calculatePaddingBoxPath} from './bound-curves';\nimport {ClipEffect, EffectTarget, IElementEffect, isClipEffect, OpacityEffect, TransformEffect} from './effects';\nimport {OVERFLOW} from '../css/property-descriptors/overflow';\nimport {equalPath} from './path';\nimport {DISPLAY} from '../css/property-descriptors/display';\nimport {OLElementContainer} from '../dom/elements/ol-element-container';\nimport {LIElementContainer} from '../dom/elements/li-element-container';\nimport {createCounterText} from '../css/types/functions/counter';\nimport {POSITION} from '../css/property-descriptors/position';\n\nexport class StackingContext {\n element: ElementPaint;\n negativeZIndex: StackingContext[];\n zeroOrAutoZIndexOrTransformedOrOpacity: StackingContext[];\n positiveZIndex: StackingContext[];\n nonPositionedFloats: StackingContext[];\n nonPositionedInlineLevel: StackingContext[];\n inlineLevel: ElementPaint[];\n nonInlineLevel: ElementPaint[];\n\n constructor(container: ElementPaint) {\n this.element = container;\n this.inlineLevel = [];\n this.nonInlineLevel = [];\n this.negativeZIndex = [];\n this.zeroOrAutoZIndexOrTransformedOrOpacity = [];\n this.positiveZIndex = [];\n this.nonPositionedFloats = [];\n this.nonPositionedInlineLevel = [];\n }\n}\n\nexport class ElementPaint {\n readonly effects: IElementEffect[] = [];\n readonly curves: BoundCurves;\n listValue?: string;\n\n constructor(readonly container: ElementContainer, readonly parent: ElementPaint | null) {\n this.curves = new BoundCurves(this.container);\n if (this.container.styles.opacity < 1) {\n this.effects.push(new OpacityEffect(this.container.styles.opacity));\n }\n\n if (this.container.styles.transform !== null) {\n const offsetX = this.container.bounds.left + this.container.styles.transformOrigin[0].number;\n const offsetY = this.container.bounds.top + this.container.styles.transformOrigin[1].number;\n const matrix = this.container.styles.transform;\n this.effects.push(new TransformEffect(offsetX, offsetY, matrix));\n }\n\n if (this.container.styles.overflowX !== OVERFLOW.VISIBLE) {\n const borderBox = calculateBorderBoxPath(this.curves);\n const paddingBox = calculatePaddingBoxPath(this.curves);\n\n if (equalPath(borderBox, paddingBox)) {\n this.effects.push(new ClipEffect(borderBox, EffectTarget.BACKGROUND_BORDERS | EffectTarget.CONTENT));\n } else {\n this.effects.push(new ClipEffect(borderBox, EffectTarget.BACKGROUND_BORDERS));\n this.effects.push(new ClipEffect(paddingBox, EffectTarget.CONTENT));\n }\n }\n }\n\n getEffects(target: EffectTarget): IElementEffect[] {\n let inFlow = [POSITION.ABSOLUTE, POSITION.FIXED].indexOf(this.container.styles.position) === -1;\n let parent = this.parent;\n const effects = this.effects.slice(0);\n while (parent) {\n const croplessEffects = parent.effects.filter((effect) => !isClipEffect(effect));\n if (inFlow || parent.container.styles.position !== POSITION.STATIC || !parent.parent) {\n effects.unshift(...croplessEffects);\n inFlow = [POSITION.ABSOLUTE, POSITION.FIXED].indexOf(parent.container.styles.position) === -1;\n if (parent.container.styles.overflowX !== OVERFLOW.VISIBLE) {\n const borderBox = calculateBorderBoxPath(parent.curves);\n const paddingBox = calculatePaddingBoxPath(parent.curves);\n if (!equalPath(borderBox, paddingBox)) {\n effects.unshift(\n new ClipEffect(paddingBox, EffectTarget.BACKGROUND_BORDERS | EffectTarget.CONTENT)\n );\n }\n }\n } else {\n effects.unshift(...croplessEffects);\n }\n\n parent = parent.parent;\n }\n\n return effects.filter((effect) => contains(effect.target, target));\n }\n}\n\nconst parseStackTree = (\n parent: ElementPaint,\n stackingContext: StackingContext,\n realStackingContext: StackingContext,\n listItems: ElementPaint[]\n) => {\n parent.container.elements.forEach((child) => {\n const treatAsRealStackingContext = contains(child.flags, FLAGS.CREATES_REAL_STACKING_CONTEXT);\n const createsStackingContext = contains(child.flags, FLAGS.CREATES_STACKING_CONTEXT);\n const paintContainer = new ElementPaint(child, parent);\n if (contains(child.styles.display, DISPLAY.LIST_ITEM)) {\n listItems.push(paintContainer);\n }\n\n const listOwnerItems = contains(child.flags, FLAGS.IS_LIST_OWNER) ? [] : listItems;\n\n if (treatAsRealStackingContext || createsStackingContext) {\n const parentStack =\n treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext;\n\n const stack = new StackingContext(paintContainer);\n\n if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) {\n const order = child.styles.zIndex.order;\n if (order < 0) {\n let index = 0;\n\n parentStack.negativeZIndex.some((current, i) => {\n if (order > current.element.container.styles.zIndex.order) {\n index = i;\n return false;\n } else if (index > 0) {\n return true;\n }\n\n return false;\n });\n parentStack.negativeZIndex.splice(index, 0, stack);\n } else if (order > 0) {\n let index = 0;\n parentStack.positiveZIndex.some((current, i) => {\n if (order >= current.element.container.styles.zIndex.order) {\n index = i + 1;\n return false;\n } else if (index > 0) {\n return true;\n }\n\n return false;\n });\n parentStack.positiveZIndex.splice(index, 0, stack);\n } else {\n parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack);\n }\n } else {\n if (child.styles.isFloating()) {\n parentStack.nonPositionedFloats.push(stack);\n } else {\n parentStack.nonPositionedInlineLevel.push(stack);\n }\n }\n\n parseStackTree(\n paintContainer,\n stack,\n treatAsRealStackingContext ? stack : realStackingContext,\n listOwnerItems\n );\n } else {\n if (child.styles.isInlineLevel()) {\n stackingContext.inlineLevel.push(paintContainer);\n } else {\n stackingContext.nonInlineLevel.push(paintContainer);\n }\n\n parseStackTree(paintContainer, stackingContext, realStackingContext, listOwnerItems);\n }\n\n if (contains(child.flags, FLAGS.IS_LIST_OWNER)) {\n processListItems(child, listOwnerItems);\n }\n });\n};\n\nconst processListItems = (owner: ElementContainer, elements: ElementPaint[]) => {\n let numbering = owner instanceof OLElementContainer ? owner.start : 1;\n const reversed = owner instanceof OLElementContainer ? owner.reversed : false;\n for (let i = 0; i < elements.length; i++) {\n const item = elements[i];\n if (\n item.container instanceof LIElementContainer &&\n typeof item.container.value === 'number' &&\n item.container.value !== 0\n ) {\n numbering = item.container.value;\n }\n\n item.listValue = createCounterText(numbering, item.container.styles.listStyleType, true);\n\n numbering += reversed ? -1 : 1;\n }\n};\n\nexport const parseStackingContexts = (container: ElementContainer): StackingContext => {\n const paintContainer = new ElementPaint(container, null);\n const root = new StackingContext(paintContainer);\n const listItems: ElementPaint[] = [];\n parseStackTree(paintContainer, root, root, listItems);\n processListItems(paintContainer.container, listItems);\n return root;\n};\n","import {Path} from './path';\nimport {BoundCurves} from './bound-curves';\nimport {isBezierCurve} from './bezier-curve';\n\nexport const parsePathForBorder = (curves: BoundCurves, borderSide: number): Path[] => {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(\n curves.topLeftBorderBox,\n curves.topLeftPaddingBox,\n curves.topRightBorderBox,\n curves.topRightPaddingBox\n );\n case 1:\n return createPathFromCurves(\n curves.topRightBorderBox,\n curves.topRightPaddingBox,\n curves.bottomRightBorderBox,\n curves.bottomRightPaddingBox\n );\n case 2:\n return createPathFromCurves(\n curves.bottomRightBorderBox,\n curves.bottomRightPaddingBox,\n curves.bottomLeftBorderBox,\n curves.bottomLeftPaddingBox\n );\n case 3:\n default:\n return createPathFromCurves(\n curves.bottomLeftBorderBox,\n curves.bottomLeftPaddingBox,\n curves.topLeftBorderBox,\n curves.topLeftPaddingBox\n );\n }\n};\n\nexport const parsePathForBorderDoubleOuter = (curves: BoundCurves, borderSide: number): Path[] => {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(\n curves.topLeftBorderBox,\n curves.topLeftBorderDoubleOuterBox,\n curves.topRightBorderBox,\n curves.topRightBorderDoubleOuterBox\n );\n case 1:\n return createPathFromCurves(\n curves.topRightBorderBox,\n curves.topRightBorderDoubleOuterBox,\n curves.bottomRightBorderBox,\n curves.bottomRightBorderDoubleOuterBox\n );\n case 2:\n return createPathFromCurves(\n curves.bottomRightBorderBox,\n curves.bottomRightBorderDoubleOuterBox,\n curves.bottomLeftBorderBox,\n curves.bottomLeftBorderDoubleOuterBox\n );\n case 3:\n default:\n return createPathFromCurves(\n curves.bottomLeftBorderBox,\n curves.bottomLeftBorderDoubleOuterBox,\n curves.topLeftBorderBox,\n curves.topLeftBorderDoubleOuterBox\n );\n }\n};\n\nexport const parsePathForBorderDoubleInner = (curves: BoundCurves, borderSide: number): Path[] => {\n switch (borderSide) {\n case 0:\n return createPathFromCurves(\n curves.topLeftBorderDoubleInnerBox,\n curves.topLeftPaddingBox,\n curves.topRightBorderDoubleInnerBox,\n curves.topRightPaddingBox\n );\n case 1:\n return createPathFromCurves(\n curves.topRightBorderDoubleInnerBox,\n curves.topRightPaddingBox,\n curves.bottomRightBorderDoubleInnerBox,\n curves.bottomRightPaddingBox\n );\n case 2:\n return createPathFromCurves(\n curves.bottomRightBorderDoubleInnerBox,\n curves.bottomRightPaddingBox,\n curves.bottomLeftBorderDoubleInnerBox,\n curves.bottomLeftPaddingBox\n );\n case 3:\n default:\n return createPathFromCurves(\n curves.bottomLeftBorderDoubleInnerBox,\n curves.bottomLeftPaddingBox,\n curves.topLeftBorderDoubleInnerBox,\n curves.topLeftPaddingBox\n );\n }\n};\n\nexport const parsePathForBorderStroke = (curves: BoundCurves, borderSide: number): Path[] => {\n switch (borderSide) {\n case 0:\n return createStrokePathFromCurves(curves.topLeftBorderStroke, curves.topRightBorderStroke);\n case 1:\n return createStrokePathFromCurves(curves.topRightBorderStroke, curves.bottomRightBorderStroke);\n case 2:\n return createStrokePathFromCurves(curves.bottomRightBorderStroke, curves.bottomLeftBorderStroke);\n case 3:\n default:\n return createStrokePathFromCurves(curves.bottomLeftBorderStroke, curves.topLeftBorderStroke);\n }\n};\n\nconst createStrokePathFromCurves = (outer1: Path, outer2: Path): Path[] => {\n const path = [];\n if (isBezierCurve(outer1)) {\n path.push(outer1.subdivide(0.5, false));\n } else {\n path.push(outer1);\n }\n\n if (isBezierCurve(outer2)) {\n path.push(outer2.subdivide(0.5, true));\n } else {\n path.push(outer2);\n }\n\n return path;\n};\n\nconst createPathFromCurves = (outer1: Path, inner1: Path, outer2: Path, inner2: Path): Path[] => {\n const path = [];\n if (isBezierCurve(outer1)) {\n path.push(outer1.subdivide(0.5, false));\n } else {\n path.push(outer1);\n }\n\n if (isBezierCurve(outer2)) {\n path.push(outer2.subdivide(0.5, true));\n } else {\n path.push(outer2);\n }\n\n if (isBezierCurve(inner2)) {\n path.push(inner2.subdivide(0.5, true).reverse());\n } else {\n path.push(inner2);\n }\n\n if (isBezierCurve(inner1)) {\n path.push(inner1.subdivide(0.5, false).reverse());\n } else {\n path.push(inner1);\n }\n\n return path;\n};\n","import {getAbsoluteValue} from '../css/types/length-percentage';\nimport {Bounds} from '../css/layout/bounds';\nimport {ElementContainer} from '../dom/element-container';\n\nexport const paddingBox = (element: ElementContainer): Bounds => {\n const bounds = element.bounds;\n const styles = element.styles;\n return bounds.add(\n styles.borderLeftWidth,\n styles.borderTopWidth,\n -(styles.borderRightWidth + styles.borderLeftWidth),\n -(styles.borderTopWidth + styles.borderBottomWidth)\n );\n};\n\nexport const contentBox = (element: ElementContainer): Bounds => {\n const styles = element.styles;\n const bounds = element.bounds;\n\n const paddingLeft = getAbsoluteValue(styles.paddingLeft, bounds.width);\n const paddingRight = getAbsoluteValue(styles.paddingRight, bounds.width);\n const paddingTop = getAbsoluteValue(styles.paddingTop, bounds.width);\n const paddingBottom = getAbsoluteValue(styles.paddingBottom, bounds.width);\n\n return bounds.add(\n paddingLeft + styles.borderLeftWidth,\n paddingTop + styles.borderTopWidth,\n -(styles.borderRightWidth + styles.borderLeftWidth + paddingLeft + paddingRight),\n -(styles.borderTopWidth + styles.borderBottomWidth + paddingTop + paddingBottom)\n );\n};\n","import {Bounds} from '../css/layout/bounds';\nimport {BACKGROUND_ORIGIN} from '../css/property-descriptors/background-origin';\nimport {ElementContainer} from '../dom/element-container';\nimport {BACKGROUND_SIZE, BackgroundSizeInfo} from '../css/property-descriptors/background-size';\nimport {Vector} from './vector';\nimport {BACKGROUND_REPEAT} from '../css/property-descriptors/background-repeat';\nimport {getAbsoluteValue, getAbsoluteValueForTuple, isLengthPercentage} from '../css/types/length-percentage';\nimport {CSSValue, isIdentToken} from '../css/syntax/parser';\nimport {contentBox, paddingBox} from './box-sizing';\nimport {Path} from './path';\nimport {BACKGROUND_CLIP} from '../css/property-descriptors/background-clip';\n\nexport const calculateBackgroundPositioningArea = (\n backgroundOrigin: BACKGROUND_ORIGIN,\n element: ElementContainer\n): Bounds => {\n if (backgroundOrigin === BACKGROUND_ORIGIN.BORDER_BOX) {\n return element.bounds;\n }\n\n if (backgroundOrigin === BACKGROUND_ORIGIN.CONTENT_BOX) {\n return contentBox(element);\n }\n\n return paddingBox(element);\n};\n\nexport const calculateBackgroundPaintingArea = (backgroundClip: BACKGROUND_CLIP, element: ElementContainer): Bounds => {\n if (backgroundClip === BACKGROUND_CLIP.BORDER_BOX) {\n return element.bounds;\n }\n\n if (backgroundClip === BACKGROUND_CLIP.CONTENT_BOX) {\n return contentBox(element);\n }\n\n return paddingBox(element);\n};\n\nexport const calculateBackgroundRendering = (\n container: ElementContainer,\n index: number,\n intrinsicSize: [number | null, number | null, number | null]\n): [Path[], number, number, number, number] => {\n const backgroundPositioningArea = calculateBackgroundPositioningArea(\n getBackgroundValueForIndex(container.styles.backgroundOrigin, index),\n container\n );\n\n const backgroundPaintingArea = calculateBackgroundPaintingArea(\n getBackgroundValueForIndex(container.styles.backgroundClip, index),\n container\n );\n\n const backgroundImageSize = calculateBackgroundSize(\n getBackgroundValueForIndex(container.styles.backgroundSize, index),\n intrinsicSize,\n backgroundPositioningArea\n );\n\n const [sizeWidth, sizeHeight] = backgroundImageSize;\n\n const position = getAbsoluteValueForTuple(\n getBackgroundValueForIndex(container.styles.backgroundPosition, index),\n backgroundPositioningArea.width - sizeWidth,\n backgroundPositioningArea.height - sizeHeight\n );\n\n const path = calculateBackgroundRepeatPath(\n getBackgroundValueForIndex(container.styles.backgroundRepeat, index),\n position,\n backgroundImageSize,\n backgroundPositioningArea,\n backgroundPaintingArea\n );\n\n const offsetX = Math.round(backgroundPositioningArea.left + position[0]);\n const offsetY = Math.round(backgroundPositioningArea.top + position[1]);\n\n return [path, offsetX, offsetY, sizeWidth, sizeHeight];\n};\n\nexport const isAuto = (token: CSSValue): boolean => isIdentToken(token) && token.value === BACKGROUND_SIZE.AUTO;\n\nconst hasIntrinsicValue = (value: number | null): value is number => typeof value === 'number';\n\nexport const calculateBackgroundSize = (\n size: BackgroundSizeInfo[],\n [intrinsicWidth, intrinsicHeight, intrinsicProportion]: [number | null, number | null, number | null],\n bounds: Bounds\n): [number, number] => {\n const [first, second] = size;\n\n if (!first) {\n return [0, 0];\n }\n\n if (isLengthPercentage(first) && second && isLengthPercentage(second)) {\n return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)];\n }\n\n const hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion);\n\n if (isIdentToken(first) && (first.value === BACKGROUND_SIZE.CONTAIN || first.value === BACKGROUND_SIZE.COVER)) {\n if (hasIntrinsicValue(intrinsicProportion)) {\n const targetRatio = bounds.width / bounds.height;\n\n return targetRatio < intrinsicProportion !== (first.value === BACKGROUND_SIZE.COVER)\n ? [bounds.width, bounds.width / intrinsicProportion]\n : [bounds.height * intrinsicProportion, bounds.height];\n }\n\n return [bounds.width, bounds.height];\n }\n\n const hasIntrinsicWidth = hasIntrinsicValue(intrinsicWidth);\n const hasIntrinsicHeight = hasIntrinsicValue(intrinsicHeight);\n const hasIntrinsicDimensions = hasIntrinsicWidth || hasIntrinsicHeight;\n\n // If the background-size is auto or auto auto:\n if (isAuto(first) && (!second || isAuto(second))) {\n // If the image has both horizontal and vertical intrinsic dimensions, it's rendered at that size.\n if (hasIntrinsicWidth && hasIntrinsicHeight) {\n return [intrinsicWidth as number, intrinsicHeight as number];\n }\n\n // If the image has no intrinsic dimensions and has no intrinsic proportions,\n // it's rendered at the size of the background positioning area.\n\n if (!hasIntrinsicProportion && !hasIntrinsicDimensions) {\n return [bounds.width, bounds.height];\n }\n\n // TODO If the image has no intrinsic dimensions but has intrinsic proportions, it's rendered as if contain had been specified instead.\n\n // If the image has only one intrinsic dimension and has intrinsic proportions, it's rendered at the size corresponding to that one dimension.\n // The other dimension is computed using the specified dimension and the intrinsic proportions.\n if (hasIntrinsicDimensions && hasIntrinsicProportion) {\n const width = hasIntrinsicWidth\n ? (intrinsicWidth as number)\n : (intrinsicHeight as number) * (intrinsicProportion as number);\n const height = hasIntrinsicHeight\n ? (intrinsicHeight as number)\n : (intrinsicWidth as number) / (intrinsicProportion as number);\n return [width, height];\n }\n\n // If the image has only one intrinsic dimension but has no intrinsic proportions,\n // it's rendered using the specified dimension and the other dimension of the background positioning area.\n const width = hasIntrinsicWidth ? (intrinsicWidth as number) : bounds.width;\n const height = hasIntrinsicHeight ? (intrinsicHeight as number) : bounds.height;\n return [width, height];\n }\n\n // If the image has intrinsic proportions, it's stretched to the specified dimension.\n // The unspecified dimension is computed using the specified dimension and the intrinsic proportions.\n if (hasIntrinsicProportion) {\n let width = 0;\n let height = 0;\n if (isLengthPercentage(first)) {\n width = getAbsoluteValue(first, bounds.width);\n } else if (isLengthPercentage(second)) {\n height = getAbsoluteValue(second, bounds.height);\n }\n\n if (isAuto(first)) {\n width = height * (intrinsicProportion as number);\n } else if (!second || isAuto(second)) {\n height = width / (intrinsicProportion as number);\n }\n\n return [width, height];\n }\n\n // If the image has no intrinsic proportions, it's stretched to the specified dimension.\n // The unspecified dimension is computed using the image's corresponding intrinsic dimension,\n // if there is one. If there is no such intrinsic dimension,\n // it becomes the corresponding dimension of the background positioning area.\n\n let width = null;\n let height = null;\n\n if (isLengthPercentage(first)) {\n width = getAbsoluteValue(first, bounds.width);\n } else if (second && isLengthPercentage(second)) {\n height = getAbsoluteValue(second, bounds.height);\n }\n\n if (width !== null && (!second || isAuto(second))) {\n height =\n hasIntrinsicWidth && hasIntrinsicHeight\n ? (width / (intrinsicWidth as number)) * (intrinsicHeight as number)\n : bounds.height;\n }\n\n if (height !== null && isAuto(first)) {\n width =\n hasIntrinsicWidth && hasIntrinsicHeight\n ? (height / (intrinsicHeight as number)) * (intrinsicWidth as number)\n : bounds.width;\n }\n\n if (width !== null && height !== null) {\n return [width, height];\n }\n\n throw new Error(`Unable to calculate background-size for element`);\n};\n\nexport const getBackgroundValueForIndex = (values: T[], index: number): T => {\n const value = values[index];\n if (typeof value === 'undefined') {\n return values[0];\n }\n\n return value;\n};\n\nexport const calculateBackgroundRepeatPath = (\n repeat: BACKGROUND_REPEAT,\n [x, y]: [number, number],\n [width, height]: [number, number],\n backgroundPositioningArea: Bounds,\n backgroundPaintingArea: Bounds\n): [Vector, Vector, Vector, Vector] => {\n switch (repeat) {\n case BACKGROUND_REPEAT.REPEAT_X:\n return [\n new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)),\n new Vector(\n Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width),\n Math.round(backgroundPositioningArea.top + y)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width),\n Math.round(height + backgroundPositioningArea.top + y)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left),\n Math.round(height + backgroundPositioningArea.top + y)\n )\n ];\n case BACKGROUND_REPEAT.REPEAT_Y:\n return [\n new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)),\n new Vector(\n Math.round(backgroundPositioningArea.left + x + width),\n Math.round(backgroundPositioningArea.top)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + x + width),\n Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + x),\n Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)\n )\n ];\n case BACKGROUND_REPEAT.NO_REPEAT:\n return [\n new Vector(\n Math.round(backgroundPositioningArea.left + x),\n Math.round(backgroundPositioningArea.top + y)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + x + width),\n Math.round(backgroundPositioningArea.top + y)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + x + width),\n Math.round(backgroundPositioningArea.top + y + height)\n ),\n new Vector(\n Math.round(backgroundPositioningArea.left + x),\n Math.round(backgroundPositioningArea.top + y + height)\n )\n ];\n default:\n return [\n new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.top)),\n new Vector(\n Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width),\n Math.round(backgroundPaintingArea.top)\n ),\n new Vector(\n Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width),\n Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)\n ),\n new Vector(\n Math.round(backgroundPaintingArea.left),\n Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)\n )\n ];\n }\n};\n","export const SMALL_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n","import {SMALL_IMAGE} from '../core/util';\nexport interface FontMetric {\n baseline: number;\n middle: number;\n}\n\nconst SAMPLE_TEXT = 'Hidden Text';\n\nexport class FontMetrics {\n private readonly _data: {[key: string]: FontMetric};\n private readonly _document: Document;\n\n constructor(document: Document) {\n this._data = {};\n this._document = document;\n }\n\n private parseMetrics(fontFamily: string, fontSize: string): FontMetric {\n const container = this._document.createElement('div');\n const img = this._document.createElement('img');\n const span = this._document.createElement('span');\n\n const body = this._document.body as HTMLBodyElement;\n\n container.style.visibility = 'hidden';\n container.style.fontFamily = fontFamily;\n container.style.fontSize = fontSize;\n container.style.margin = '0';\n container.style.padding = '0';\n container.style.whiteSpace = 'nowrap';\n\n body.appendChild(container);\n\n img.src = SMALL_IMAGE;\n img.width = 1;\n img.height = 1;\n\n img.style.margin = '0';\n img.style.padding = '0';\n img.style.verticalAlign = 'baseline';\n\n span.style.fontFamily = fontFamily;\n span.style.fontSize = fontSize;\n span.style.margin = '0';\n span.style.padding = '0';\n\n span.appendChild(this._document.createTextNode(SAMPLE_TEXT));\n container.appendChild(span);\n container.appendChild(img);\n const baseline = img.offsetTop - span.offsetTop + 2;\n\n container.removeChild(span);\n container.appendChild(this._document.createTextNode(SAMPLE_TEXT));\n\n container.style.lineHeight = 'normal';\n img.style.verticalAlign = 'super';\n\n const middle = img.offsetTop - container.offsetTop + 2;\n\n body.removeChild(container);\n\n return {baseline, middle};\n }\n getMetrics(fontFamily: string, fontSize: string): FontMetric {\n const key = `${fontFamily} ${fontSize}`;\n if (typeof this._data[key] === 'undefined') {\n this._data[key] = this.parseMetrics(fontFamily, fontSize);\n }\n\n return this._data[key];\n }\n}\n","import {Context} from '../core/context';\nimport {RenderConfigurations} from './canvas/canvas-renderer';\n\nexport class Renderer {\n constructor(protected readonly context: Context, protected readonly options: RenderConfigurations) {}\n}\n","import {ElementPaint, parseStackingContexts, StackingContext} from '../stacking-context';\nimport {asString, Color, isTransparent} from '../../css/types/color';\nimport {ElementContainer, FLAGS} from '../../dom/element-container';\nimport {BORDER_STYLE} from '../../css/property-descriptors/border-style';\nimport {CSSParsedDeclaration} from '../../css';\nimport {TextContainer} from '../../dom/text-container';\nimport {Path, transformPath} from '../path';\nimport {BACKGROUND_CLIP} from '../../css/property-descriptors/background-clip';\nimport {BoundCurves, calculateBorderBoxPath, calculateContentBoxPath, calculatePaddingBoxPath} from '../bound-curves';\nimport {BezierCurve, isBezierCurve} from '../bezier-curve';\nimport {Vector} from '../vector';\nimport {CSSImageType, CSSURLImage, isLinearGradient, isRadialGradient} from '../../css/types/image';\nimport {\n parsePathForBorder,\n parsePathForBorderDoubleInner,\n parsePathForBorderDoubleOuter,\n parsePathForBorderStroke\n} from '../border';\nimport {calculateBackgroundRendering, getBackgroundValueForIndex} from '../background';\nimport {isDimensionToken} from '../../css/syntax/parser';\nimport {segmentGraphemes, TextBounds} from '../../css/layout/text';\nimport {ImageElementContainer} from '../../dom/replaced-elements/image-element-container';\nimport {contentBox} from '../box-sizing';\nimport {CanvasElementContainer} from '../../dom/replaced-elements/canvas-element-container';\nimport {SVGElementContainer} from '../../dom/replaced-elements/svg-element-container';\nimport {ReplacedElementContainer} from '../../dom/replaced-elements';\nimport {EffectTarget, IElementEffect, isClipEffect, isOpacityEffect, isTransformEffect} from '../effects';\nimport {contains} from '../../core/bitwise';\nimport {calculateGradientDirection, calculateRadius, processColorStops} from '../../css/types/functions/gradient';\nimport {FIFTY_PERCENT, getAbsoluteValue} from '../../css/types/length-percentage';\nimport {TEXT_DECORATION_LINE} from '../../css/property-descriptors/text-decoration-line';\nimport {FontMetrics} from '../font-metrics';\nimport {DISPLAY} from '../../css/property-descriptors/display';\nimport {Bounds} from '../../css/layout/bounds';\nimport {LIST_STYLE_TYPE} from '../../css/property-descriptors/list-style-type';\nimport {computeLineHeight} from '../../css/property-descriptors/line-height';\nimport {CHECKBOX, INPUT_COLOR, InputElementContainer, RADIO} from '../../dom/replaced-elements/input-element-container';\nimport {TEXT_ALIGN} from '../../css/property-descriptors/text-align';\nimport {TextareaElementContainer} from '../../dom/elements/textarea-element-container';\nimport {SelectElementContainer} from '../../dom/elements/select-element-container';\nimport {IFrameElementContainer} from '../../dom/replaced-elements/iframe-element-container';\nimport {TextShadow} from '../../css/property-descriptors/text-shadow';\nimport {PAINT_ORDER_LAYER} from '../../css/property-descriptors/paint-order';\nimport {Renderer} from '../renderer';\nimport {Context} from '../../core/context';\nimport {DIRECTION} from '../../css/property-descriptors/direction';\n\nexport type RenderConfigurations = RenderOptions & {\n backgroundColor: Color | null;\n};\n\nexport interface RenderOptions {\n scale: number;\n canvas?: HTMLCanvasElement;\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nconst MASK_OFFSET = 10000;\n\nexport class CanvasRenderer extends Renderer {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n private readonly _activeEffects: IElementEffect[] = [];\n private readonly fontMetrics: FontMetrics;\n\n constructor(context: Context, options: RenderConfigurations) {\n super(context, options);\n this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D;\n if (!options.canvas) {\n this.canvas.width = Math.floor(options.width * options.scale);\n this.canvas.height = Math.floor(options.height * options.scale);\n this.canvas.style.width = `${options.width}px`;\n this.canvas.style.height = `${options.height}px`;\n }\n this.fontMetrics = new FontMetrics(document);\n this.ctx.scale(this.options.scale, this.options.scale);\n this.ctx.translate(-options.x, -options.y);\n this.ctx.textBaseline = 'bottom';\n this._activeEffects = [];\n this.context.logger.debug(\n `Canvas renderer initialized (${options.width}x${options.height}) with scale ${options.scale}`\n );\n }\n\n applyEffects(effects: IElementEffect[]): void {\n while (this._activeEffects.length) {\n this.popEffect();\n }\n\n effects.forEach((effect) => this.applyEffect(effect));\n }\n\n applyEffect(effect: IElementEffect): void {\n this.ctx.save();\n if (isOpacityEffect(effect)) {\n this.ctx.globalAlpha = effect.opacity;\n }\n\n if (isTransformEffect(effect)) {\n this.ctx.translate(effect.offsetX, effect.offsetY);\n this.ctx.transform(\n effect.matrix[0],\n effect.matrix[1],\n effect.matrix[2],\n effect.matrix[3],\n effect.matrix[4],\n effect.matrix[5]\n );\n this.ctx.translate(-effect.offsetX, -effect.offsetY);\n }\n\n if (isClipEffect(effect)) {\n this.path(effect.path);\n this.ctx.clip();\n }\n\n this._activeEffects.push(effect);\n }\n\n popEffect(): void {\n this._activeEffects.pop();\n this.ctx.restore();\n }\n\n async renderStack(stack: StackingContext): Promise {\n const styles = stack.element.container.styles;\n if (styles.isVisible()) {\n await this.renderStackContent(stack);\n }\n }\n\n async renderNode(paint: ElementPaint): Promise {\n if (contains(paint.container.flags, FLAGS.DEBUG_RENDER)) {\n debugger;\n }\n\n if (paint.container.styles.isVisible()) {\n await this.renderNodeBackgroundAndBorders(paint);\n await this.renderNodeContent(paint);\n }\n }\n\n renderTextWithLetterSpacing(text: TextBounds, letterSpacing: number, baseline: number): void {\n if (letterSpacing === 0) {\n this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + baseline);\n } else {\n const letters = segmentGraphemes(text.text);\n letters.reduce((left, letter) => {\n this.ctx.fillText(letter, left, text.bounds.top + baseline);\n\n return left + this.ctx.measureText(letter).width;\n }, text.bounds.left);\n }\n }\n\n private createFontStyle(styles: CSSParsedDeclaration): string[] {\n const fontVariant = styles.fontVariant\n .filter((variant) => variant === 'normal' || variant === 'small-caps')\n .join('');\n const fontFamily = fixIOSSystemFonts(styles.fontFamily).join(', ');\n const fontSize = isDimensionToken(styles.fontSize)\n ? `${styles.fontSize.number}${styles.fontSize.unit}`\n : `${styles.fontSize.number}px`;\n\n return [\n [styles.fontStyle, fontVariant, styles.fontWeight, fontSize, fontFamily].join(' '),\n fontFamily,\n fontSize\n ];\n }\n\n async renderTextNode(text: TextContainer, styles: CSSParsedDeclaration): Promise {\n const [font, fontFamily, fontSize] = this.createFontStyle(styles);\n\n this.ctx.font = font;\n\n this.ctx.direction = styles.direction === DIRECTION.RTL ? 'rtl' : 'ltr';\n this.ctx.textAlign = 'left';\n this.ctx.textBaseline = 'alphabetic';\n const {baseline, middle} = this.fontMetrics.getMetrics(fontFamily, fontSize);\n const paintOrder = styles.paintOrder;\n\n text.textBounds.forEach((text) => {\n paintOrder.forEach((paintOrderLayer) => {\n switch (paintOrderLayer) {\n case PAINT_ORDER_LAYER.FILL:\n this.ctx.fillStyle = asString(styles.color);\n this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline);\n const textShadows: TextShadow = styles.textShadow;\n\n if (textShadows.length && text.text.trim().length) {\n textShadows\n .slice(0)\n .reverse()\n .forEach((textShadow) => {\n this.ctx.shadowColor = asString(textShadow.color);\n this.ctx.shadowOffsetX = textShadow.offsetX.number * this.options.scale;\n this.ctx.shadowOffsetY = textShadow.offsetY.number * this.options.scale;\n this.ctx.shadowBlur = textShadow.blur.number;\n\n this.renderTextWithLetterSpacing(text, styles.letterSpacing, baseline);\n });\n\n this.ctx.shadowColor = '';\n this.ctx.shadowOffsetX = 0;\n this.ctx.shadowOffsetY = 0;\n this.ctx.shadowBlur = 0;\n }\n\n if (styles.textDecorationLine.length) {\n this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color);\n styles.textDecorationLine.forEach((textDecorationLine) => {\n switch (textDecorationLine) {\n case TEXT_DECORATION_LINE.UNDERLINE:\n // Draws a line at the baseline of the font\n // TODO As some browsers display the line as more than 1px if the font-size is big,\n // need to take that into account both in position and size\n this.ctx.fillRect(\n text.bounds.left,\n Math.round(text.bounds.top + baseline),\n text.bounds.width,\n 1\n );\n\n break;\n case TEXT_DECORATION_LINE.OVERLINE:\n this.ctx.fillRect(\n text.bounds.left,\n Math.round(text.bounds.top),\n text.bounds.width,\n 1\n );\n break;\n case TEXT_DECORATION_LINE.LINE_THROUGH:\n // TODO try and find exact position for line-through\n this.ctx.fillRect(\n text.bounds.left,\n Math.ceil(text.bounds.top + middle),\n text.bounds.width,\n 1\n );\n break;\n }\n });\n }\n break;\n case PAINT_ORDER_LAYER.STROKE:\n if (styles.webkitTextStrokeWidth && text.text.trim().length) {\n this.ctx.strokeStyle = asString(styles.webkitTextStrokeColor);\n this.ctx.lineWidth = styles.webkitTextStrokeWidth;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.ctx.lineJoin = !!(window as any).chrome ? 'miter' : 'round';\n this.ctx.strokeText(text.text, text.bounds.left, text.bounds.top + baseline);\n }\n this.ctx.strokeStyle = '';\n this.ctx.lineWidth = 0;\n this.ctx.lineJoin = 'miter';\n break;\n }\n });\n });\n }\n\n renderReplacedElement(\n container: ReplacedElementContainer,\n curves: BoundCurves,\n image: HTMLImageElement | HTMLCanvasElement\n ): void {\n if (image && container.intrinsicWidth > 0 && container.intrinsicHeight > 0) {\n const box = contentBox(container);\n const path = calculatePaddingBoxPath(curves);\n this.path(path);\n this.ctx.save();\n this.ctx.clip();\n this.ctx.drawImage(\n image,\n 0,\n 0,\n container.intrinsicWidth,\n container.intrinsicHeight,\n box.left,\n box.top,\n box.width,\n box.height\n );\n this.ctx.restore();\n }\n }\n\n async renderNodeContent(paint: ElementPaint): Promise {\n this.applyEffects(paint.getEffects(EffectTarget.CONTENT));\n const container = paint.container;\n const curves = paint.curves;\n const styles = container.styles;\n for (const child of container.textNodes) {\n await this.renderTextNode(child, styles);\n }\n\n if (container instanceof ImageElementContainer) {\n try {\n const image = await this.context.cache.match(container.src);\n this.renderReplacedElement(container, curves, image);\n } catch (e) {\n this.context.logger.error(`Error loading image ${container.src}`);\n }\n }\n\n if (container instanceof CanvasElementContainer) {\n this.renderReplacedElement(container, curves, container.canvas);\n }\n\n if (container instanceof SVGElementContainer) {\n try {\n const image = await this.context.cache.match(container.svg);\n this.renderReplacedElement(container, curves, image);\n } catch (e) {\n this.context.logger.error(`Error loading svg ${container.svg.substring(0, 255)}`);\n }\n }\n\n if (container instanceof IFrameElementContainer && container.tree) {\n const iframeRenderer = new CanvasRenderer(this.context, {\n scale: this.options.scale,\n backgroundColor: container.backgroundColor,\n x: 0,\n y: 0,\n width: container.width,\n height: container.height\n });\n\n const canvas = await iframeRenderer.render(container.tree);\n if (container.width && container.height) {\n this.ctx.drawImage(\n canvas,\n 0,\n 0,\n container.width,\n container.height,\n container.bounds.left,\n container.bounds.top,\n container.bounds.width,\n container.bounds.height\n );\n }\n }\n\n if (container instanceof InputElementContainer) {\n const size = Math.min(container.bounds.width, container.bounds.height);\n\n if (container.type === CHECKBOX) {\n if (container.checked) {\n this.ctx.save();\n this.path([\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79),\n new Vector(container.bounds.left + size * 0.16, container.bounds.top + size * 0.5549),\n new Vector(container.bounds.left + size * 0.27347, container.bounds.top + size * 0.44071),\n new Vector(container.bounds.left + size * 0.39694, container.bounds.top + size * 0.5649),\n new Vector(container.bounds.left + size * 0.72983, container.bounds.top + size * 0.23),\n new Vector(container.bounds.left + size * 0.84, container.bounds.top + size * 0.34085),\n new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79)\n ]);\n\n this.ctx.fillStyle = asString(INPUT_COLOR);\n this.ctx.fill();\n this.ctx.restore();\n }\n } else if (container.type === RADIO) {\n if (container.checked) {\n this.ctx.save();\n this.ctx.beginPath();\n this.ctx.arc(\n container.bounds.left + size / 2,\n container.bounds.top + size / 2,\n size / 4,\n 0,\n Math.PI * 2,\n true\n );\n this.ctx.fillStyle = asString(INPUT_COLOR);\n this.ctx.fill();\n this.ctx.restore();\n }\n }\n }\n\n if (isTextInputElement(container) && container.value.length) {\n const [fontFamily, fontSize] = this.createFontStyle(styles);\n const {baseline} = this.fontMetrics.getMetrics(fontFamily, fontSize);\n\n this.ctx.font = fontFamily;\n this.ctx.fillStyle = asString(styles.color);\n\n this.ctx.textBaseline = 'alphabetic';\n this.ctx.textAlign = canvasTextAlign(container.styles.textAlign);\n\n const bounds = contentBox(container);\n\n let x = 0;\n\n switch (container.styles.textAlign) {\n case TEXT_ALIGN.CENTER:\n x += bounds.width / 2;\n break;\n case TEXT_ALIGN.RIGHT:\n x += bounds.width;\n break;\n }\n\n const textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1);\n\n this.ctx.save();\n this.path([\n new Vector(bounds.left, bounds.top),\n new Vector(bounds.left + bounds.width, bounds.top),\n new Vector(bounds.left + bounds.width, bounds.top + bounds.height),\n new Vector(bounds.left, bounds.top + bounds.height)\n ]);\n\n this.ctx.clip();\n this.renderTextWithLetterSpacing(\n new TextBounds(container.value, textBounds),\n styles.letterSpacing,\n baseline\n );\n this.ctx.restore();\n this.ctx.textBaseline = 'alphabetic';\n this.ctx.textAlign = 'left';\n }\n\n if (contains(container.styles.display, DISPLAY.LIST_ITEM)) {\n if (container.styles.listStyleImage !== null) {\n const img = container.styles.listStyleImage;\n if (img.type === CSSImageType.URL) {\n let image;\n const url = (img as CSSURLImage).url;\n try {\n image = await this.context.cache.match(url);\n this.ctx.drawImage(image, container.bounds.left - (image.width + 10), container.bounds.top);\n } catch (e) {\n this.context.logger.error(`Error loading list-style-image ${url}`);\n }\n }\n } else if (paint.listValue && container.styles.listStyleType !== LIST_STYLE_TYPE.NONE) {\n const [fontFamily] = this.createFontStyle(styles);\n\n this.ctx.font = fontFamily;\n this.ctx.fillStyle = asString(styles.color);\n\n this.ctx.textBaseline = 'middle';\n this.ctx.textAlign = 'right';\n const bounds = new Bounds(\n container.bounds.left,\n container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width),\n container.bounds.width,\n computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1\n );\n\n this.renderTextWithLetterSpacing(\n new TextBounds(paint.listValue, bounds),\n styles.letterSpacing,\n computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 2\n );\n this.ctx.textBaseline = 'bottom';\n this.ctx.textAlign = 'left';\n }\n }\n }\n\n async renderStackContent(stack: StackingContext): Promise {\n if (contains(stack.element.container.flags, FLAGS.DEBUG_RENDER)) {\n debugger;\n }\n // https://www.w3.org/TR/css-position-3/#painting-order\n // 1. the background and borders of the element forming the stacking context.\n await this.renderNodeBackgroundAndBorders(stack.element);\n // 2. the child stacking contexts with negative stack levels (most negative first).\n for (const child of stack.negativeZIndex) {\n await this.renderStack(child);\n }\n // 3. For all its in-flow, non-positioned, block-level descendants in tree order:\n await this.renderNodeContent(stack.element);\n\n for (const child of stack.nonInlineLevel) {\n await this.renderNode(child);\n }\n // 4. All non-positioned floating descendants, in tree order. For each one of these,\n // treat the element as if it created a new stacking context, but any positioned descendants and descendants\n // which actually create a new stacking context should be considered part of the parent stacking context,\n // not this new one.\n for (const child of stack.nonPositionedFloats) {\n await this.renderStack(child);\n }\n // 5. the in-flow, inline-level, non-positioned descendants, including inline tables and inline blocks.\n for (const child of stack.nonPositionedInlineLevel) {\n await this.renderStack(child);\n }\n for (const child of stack.inlineLevel) {\n await this.renderNode(child);\n }\n // 6. All positioned, opacity or transform descendants, in tree order that fall into the following categories:\n // All positioned descendants with 'z-index: auto' or 'z-index: 0', in tree order.\n // For those with 'z-index: auto', treat the element as if it created a new stacking context,\n // but any positioned descendants and descendants which actually create a new stacking context should be\n // considered part of the parent stacking context, not this new one. For those with 'z-index: 0',\n // treat the stacking context generated atomically.\n //\n // All opacity descendants with opacity less than 1\n //\n // All transform descendants with transform other than none\n for (const child of stack.zeroOrAutoZIndexOrTransformedOrOpacity) {\n await this.renderStack(child);\n }\n // 7. Stacking contexts formed by positioned descendants with z-indices greater than or equal to 1 in z-index\n // order (smallest first) then tree order.\n for (const child of stack.positiveZIndex) {\n await this.renderStack(child);\n }\n }\n\n mask(paths: Path[]): void {\n this.ctx.beginPath();\n this.ctx.moveTo(0, 0);\n this.ctx.lineTo(this.canvas.width, 0);\n this.ctx.lineTo(this.canvas.width, this.canvas.height);\n this.ctx.lineTo(0, this.canvas.height);\n this.ctx.lineTo(0, 0);\n this.formatPath(paths.slice(0).reverse());\n this.ctx.closePath();\n }\n\n path(paths: Path[]): void {\n this.ctx.beginPath();\n this.formatPath(paths);\n this.ctx.closePath();\n }\n\n formatPath(paths: Path[]): void {\n paths.forEach((point, index) => {\n const start: Vector = isBezierCurve(point) ? point.start : point;\n if (index === 0) {\n this.ctx.moveTo(start.x, start.y);\n } else {\n this.ctx.lineTo(start.x, start.y);\n }\n\n if (isBezierCurve(point)) {\n this.ctx.bezierCurveTo(\n point.startControl.x,\n point.startControl.y,\n point.endControl.x,\n point.endControl.y,\n point.end.x,\n point.end.y\n );\n }\n });\n }\n\n renderRepeat(path: Path[], pattern: CanvasPattern | CanvasGradient, offsetX: number, offsetY: number): void {\n this.path(path);\n this.ctx.fillStyle = pattern;\n this.ctx.translate(offsetX, offsetY);\n this.ctx.fill();\n this.ctx.translate(-offsetX, -offsetY);\n }\n\n resizeImage(image: HTMLImageElement, width: number, height: number): HTMLCanvasElement | HTMLImageElement {\n if (image.width === width && image.height === height) {\n return image;\n }\n\n const ownerDocument = this.canvas.ownerDocument ?? document;\n const canvas = ownerDocument.createElement('canvas');\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n ctx.drawImage(image, 0, 0, image.width, image.height, 0, 0, width, height);\n return canvas;\n }\n\n async renderBackgroundImage(container: ElementContainer): Promise {\n let index = container.styles.backgroundImage.length - 1;\n for (const backgroundImage of container.styles.backgroundImage.slice(0).reverse()) {\n if (backgroundImage.type === CSSImageType.URL) {\n let image;\n const url = (backgroundImage as CSSURLImage).url;\n try {\n image = await this.context.cache.match(url);\n } catch (e) {\n this.context.logger.error(`Error loading background-image ${url}`);\n }\n\n if (image) {\n const [path, x, y, width, height] = calculateBackgroundRendering(container, index, [\n image.width,\n image.height,\n image.width / image.height\n ]);\n const pattern = this.ctx.createPattern(\n this.resizeImage(image, width, height),\n 'repeat'\n ) as CanvasPattern;\n this.renderRepeat(path, pattern, x, y);\n }\n } else if (isLinearGradient(backgroundImage)) {\n const [path, x, y, width, height] = calculateBackgroundRendering(container, index, [null, null, null]);\n const [lineLength, x0, x1, y0, y1] = calculateGradientDirection(backgroundImage.angle, width, height);\n\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D;\n const gradient = ctx.createLinearGradient(x0, y0, x1, y1);\n\n processColorStops(backgroundImage.stops, lineLength).forEach((colorStop) =>\n gradient.addColorStop(colorStop.stop, asString(colorStop.color))\n );\n\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, width, height);\n if (width > 0 && height > 0) {\n const pattern = this.ctx.createPattern(canvas, 'repeat') as CanvasPattern;\n this.renderRepeat(path, pattern, x, y);\n }\n } else if (isRadialGradient(backgroundImage)) {\n const [path, left, top, width, height] = calculateBackgroundRendering(container, index, [\n null,\n null,\n null\n ]);\n const position = backgroundImage.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage.position;\n const x = getAbsoluteValue(position[0], width);\n const y = getAbsoluteValue(position[position.length - 1], height);\n\n const [rx, ry] = calculateRadius(backgroundImage, x, y, width, height);\n if (rx > 0 && ry > 0) {\n const radialGradient = this.ctx.createRadialGradient(left + x, top + y, 0, left + x, top + y, rx);\n\n processColorStops(backgroundImage.stops, rx * 2).forEach((colorStop) =>\n radialGradient.addColorStop(colorStop.stop, asString(colorStop.color))\n );\n\n this.path(path);\n this.ctx.fillStyle = radialGradient;\n if (rx !== ry) {\n // transforms for elliptical radial gradient\n const midX = container.bounds.left + 0.5 * container.bounds.width;\n const midY = container.bounds.top + 0.5 * container.bounds.height;\n const f = ry / rx;\n const invF = 1 / f;\n\n this.ctx.save();\n this.ctx.translate(midX, midY);\n this.ctx.transform(1, 0, 0, f, 0, 0);\n this.ctx.translate(-midX, -midY);\n\n this.ctx.fillRect(left, invF * (top - midY) + midY, width, height * invF);\n this.ctx.restore();\n } else {\n this.ctx.fill();\n }\n }\n }\n index--;\n }\n }\n\n async renderSolidBorder(color: Color, side: number, curvePoints: BoundCurves): Promise {\n this.path(parsePathForBorder(curvePoints, side));\n this.ctx.fillStyle = asString(color);\n this.ctx.fill();\n }\n\n async renderDoubleBorder(color: Color, width: number, side: number, curvePoints: BoundCurves): Promise {\n if (width < 3) {\n await this.renderSolidBorder(color, side, curvePoints);\n return;\n }\n\n const outerPaths = parsePathForBorderDoubleOuter(curvePoints, side);\n this.path(outerPaths);\n this.ctx.fillStyle = asString(color);\n this.ctx.fill();\n const innerPaths = parsePathForBorderDoubleInner(curvePoints, side);\n this.path(innerPaths);\n this.ctx.fill();\n }\n\n async renderNodeBackgroundAndBorders(paint: ElementPaint): Promise {\n this.applyEffects(paint.getEffects(EffectTarget.BACKGROUND_BORDERS));\n const styles = paint.container.styles;\n const hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length;\n\n const borders = [\n {style: styles.borderTopStyle, color: styles.borderTopColor, width: styles.borderTopWidth},\n {style: styles.borderRightStyle, color: styles.borderRightColor, width: styles.borderRightWidth},\n {style: styles.borderBottomStyle, color: styles.borderBottomColor, width: styles.borderBottomWidth},\n {style: styles.borderLeftStyle, color: styles.borderLeftColor, width: styles.borderLeftWidth}\n ];\n\n const backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(\n getBackgroundValueForIndex(styles.backgroundClip, 0),\n paint.curves\n );\n\n if (hasBackground || styles.boxShadow.length) {\n this.ctx.save();\n this.path(backgroundPaintingArea);\n this.ctx.clip();\n\n if (!isTransparent(styles.backgroundColor)) {\n this.ctx.fillStyle = asString(styles.backgroundColor);\n this.ctx.fill();\n }\n\n await this.renderBackgroundImage(paint.container);\n\n this.ctx.restore();\n\n styles.boxShadow\n .slice(0)\n .reverse()\n .forEach((shadow) => {\n this.ctx.save();\n const borderBoxArea = calculateBorderBoxPath(paint.curves);\n const maskOffset = shadow.inset ? 0 : MASK_OFFSET;\n const shadowPaintingArea = transformPath(\n borderBoxArea,\n -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number,\n (shadow.inset ? 1 : -1) * shadow.spread.number,\n shadow.spread.number * (shadow.inset ? -2 : 2),\n shadow.spread.number * (shadow.inset ? -2 : 2)\n );\n\n if (shadow.inset) {\n this.path(borderBoxArea);\n this.ctx.clip();\n this.mask(shadowPaintingArea);\n } else {\n this.mask(borderBoxArea);\n this.ctx.clip();\n this.path(shadowPaintingArea);\n }\n\n this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset;\n this.ctx.shadowOffsetY = shadow.offsetY.number;\n this.ctx.shadowColor = asString(shadow.color);\n this.ctx.shadowBlur = shadow.blur.number;\n this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : 'rgba(0,0,0,1)';\n\n this.ctx.fill();\n this.ctx.restore();\n });\n }\n\n let side = 0;\n for (const border of borders) {\n if (border.style !== BORDER_STYLE.NONE && !isTransparent(border.color) && border.width > 0) {\n if (border.style === BORDER_STYLE.DASHED) {\n await this.renderDashedDottedBorder(\n border.color,\n border.width,\n side,\n paint.curves,\n BORDER_STYLE.DASHED\n );\n } else if (border.style === BORDER_STYLE.DOTTED) {\n await this.renderDashedDottedBorder(\n border.color,\n border.width,\n side,\n paint.curves,\n BORDER_STYLE.DOTTED\n );\n } else if (border.style === BORDER_STYLE.DOUBLE) {\n await this.renderDoubleBorder(border.color, border.width, side, paint.curves);\n } else {\n await this.renderSolidBorder(border.color, side, paint.curves);\n }\n }\n side++;\n }\n }\n\n async renderDashedDottedBorder(\n color: Color,\n width: number,\n side: number,\n curvePoints: BoundCurves,\n style: BORDER_STYLE\n ): Promise {\n this.ctx.save();\n\n const strokePaths = parsePathForBorderStroke(curvePoints, side);\n const boxPaths = parsePathForBorder(curvePoints, side);\n\n if (style === BORDER_STYLE.DASHED) {\n this.path(boxPaths);\n this.ctx.clip();\n }\n\n let startX, startY, endX, endY;\n if (isBezierCurve(boxPaths[0])) {\n startX = (boxPaths[0] as BezierCurve).start.x;\n startY = (boxPaths[0] as BezierCurve).start.y;\n } else {\n startX = (boxPaths[0] as Vector).x;\n startY = (boxPaths[0] as Vector).y;\n }\n if (isBezierCurve(boxPaths[1])) {\n endX = (boxPaths[1] as BezierCurve).end.x;\n endY = (boxPaths[1] as BezierCurve).end.y;\n } else {\n endX = (boxPaths[1] as Vector).x;\n endY = (boxPaths[1] as Vector).y;\n }\n\n let length;\n if (side === 0 || side === 2) {\n length = Math.abs(startX - endX);\n } else {\n length = Math.abs(startY - endY);\n }\n\n this.ctx.beginPath();\n if (style === BORDER_STYLE.DOTTED) {\n this.formatPath(strokePaths);\n } else {\n this.formatPath(boxPaths.slice(0, 2));\n }\n\n let dashLength = width < 3 ? width * 3 : width * 2;\n let spaceLength = width < 3 ? width * 2 : width;\n if (style === BORDER_STYLE.DOTTED) {\n dashLength = width;\n spaceLength = width;\n }\n\n let useLineDash = true;\n if (length <= dashLength * 2) {\n useLineDash = false;\n } else if (length <= dashLength * 2 + spaceLength) {\n const multiplier = length / (2 * dashLength + spaceLength);\n dashLength *= multiplier;\n spaceLength *= multiplier;\n } else {\n const numberOfDashes = Math.floor((length + spaceLength) / (dashLength + spaceLength));\n const minSpace = (length - numberOfDashes * dashLength) / (numberOfDashes - 1);\n const maxSpace = (length - (numberOfDashes + 1) * dashLength) / numberOfDashes;\n spaceLength =\n maxSpace <= 0 || Math.abs(spaceLength - minSpace) < Math.abs(spaceLength - maxSpace)\n ? minSpace\n : maxSpace;\n }\n\n if (useLineDash) {\n if (style === BORDER_STYLE.DOTTED) {\n this.ctx.setLineDash([0, dashLength + spaceLength]);\n } else {\n this.ctx.setLineDash([dashLength, spaceLength]);\n }\n }\n\n if (style === BORDER_STYLE.DOTTED) {\n this.ctx.lineCap = 'round';\n this.ctx.lineWidth = width;\n } else {\n this.ctx.lineWidth = width * 2 + 1.1;\n }\n this.ctx.strokeStyle = asString(color);\n this.ctx.stroke();\n this.ctx.setLineDash([]);\n\n // dashed round edge gap\n if (style === BORDER_STYLE.DASHED) {\n if (isBezierCurve(boxPaths[0])) {\n const path1 = boxPaths[3] as BezierCurve;\n const path2 = boxPaths[0] as BezierCurve;\n this.ctx.beginPath();\n this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]);\n this.ctx.stroke();\n }\n if (isBezierCurve(boxPaths[1])) {\n const path1 = boxPaths[1] as BezierCurve;\n const path2 = boxPaths[2] as BezierCurve;\n this.ctx.beginPath();\n this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]);\n this.ctx.stroke();\n }\n }\n\n this.ctx.restore();\n }\n\n async render(element: ElementContainer): Promise {\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = asString(this.options.backgroundColor);\n this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height);\n }\n\n const stack = parseStackingContexts(element);\n\n await this.renderStack(stack);\n this.applyEffects([]);\n return this.canvas;\n }\n}\n\nconst isTextInputElement = (\n container: ElementContainer\n): container is InputElementContainer | TextareaElementContainer | SelectElementContainer => {\n if (container instanceof TextareaElementContainer) {\n return true;\n } else if (container instanceof SelectElementContainer) {\n return true;\n } else if (container instanceof InputElementContainer && container.type !== RADIO && container.type !== CHECKBOX) {\n return true;\n }\n return false;\n};\n\nconst calculateBackgroundCurvedPaintingArea = (clip: BACKGROUND_CLIP, curves: BoundCurves): Path[] => {\n switch (clip) {\n case BACKGROUND_CLIP.BORDER_BOX:\n return calculateBorderBoxPath(curves);\n case BACKGROUND_CLIP.CONTENT_BOX:\n return calculateContentBoxPath(curves);\n case BACKGROUND_CLIP.PADDING_BOX:\n default:\n return calculatePaddingBoxPath(curves);\n }\n};\n\nconst canvasTextAlign = (textAlign: TEXT_ALIGN): CanvasTextAlign => {\n switch (textAlign) {\n case TEXT_ALIGN.CENTER:\n return 'center';\n case TEXT_ALIGN.RIGHT:\n return 'right';\n case TEXT_ALIGN.LEFT:\n default:\n return 'left';\n }\n};\n\n// see https://github.com/niklasvh/html2canvas/pull/2645\nconst iOSBrokenFonts = ['-apple-system', 'system-ui'];\n\nconst fixIOSSystemFonts = (fontFamilies: string[]): string[] => {\n return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent)\n ? fontFamilies.filter((fontFamily) => iOSBrokenFonts.indexOf(fontFamily) === -1)\n : fontFamilies;\n};\n","import {RenderConfigurations} from './canvas-renderer';\nimport {createForeignObjectSVG} from '../../core/features';\nimport {asString} from '../../css/types/color';\nimport {Renderer} from '../renderer';\nimport {Context} from '../../core/context';\n\nexport class ForeignObjectRenderer extends Renderer {\n canvas: HTMLCanvasElement;\n ctx: CanvasRenderingContext2D;\n options: RenderConfigurations;\n\n constructor(context: Context, options: RenderConfigurations) {\n super(context, options);\n this.canvas = options.canvas ? options.canvas : document.createElement('canvas');\n this.ctx = this.canvas.getContext('2d') as CanvasRenderingContext2D;\n this.options = options;\n this.canvas.width = Math.floor(options.width * options.scale);\n this.canvas.height = Math.floor(options.height * options.scale);\n this.canvas.style.width = `${options.width}px`;\n this.canvas.style.height = `${options.height}px`;\n\n this.ctx.scale(this.options.scale, this.options.scale);\n this.ctx.translate(-options.x, -options.y);\n this.context.logger.debug(\n `EXPERIMENTAL ForeignObject renderer initialized (${options.width}x${options.height} at ${options.x},${options.y}) with scale ${options.scale}`\n );\n }\n\n async render(element: HTMLElement): Promise {\n const svg = createForeignObjectSVG(\n this.options.width * this.options.scale,\n this.options.height * this.options.scale,\n this.options.scale,\n this.options.scale,\n element\n );\n\n const img = await loadSerializedSVG(svg);\n\n if (this.options.backgroundColor) {\n this.ctx.fillStyle = asString(this.options.backgroundColor);\n this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale);\n }\n\n this.ctx.drawImage(img, -this.options.x * this.options.scale, -this.options.y * this.options.scale);\n\n return this.canvas;\n }\n}\n\nexport const loadSerializedSVG = (svg: Node): Promise =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => {\n resolve(img);\n };\n img.onerror = reject;\n\n img.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(new XMLSerializer().serializeToString(svg))}`;\n });\n","export interface LoggerOptions {\n id: string;\n enabled: boolean;\n}\n\nexport class Logger {\n static instances: {[key: string]: Logger} = {};\n\n private readonly id: string;\n private readonly enabled: boolean;\n private readonly start: number;\n\n constructor({id, enabled}: LoggerOptions) {\n this.id = id;\n this.enabled = enabled;\n this.start = Date.now();\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n debug(...args: unknown[]): void {\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\n // eslint-disable-next-line no-console\n console.debug(this.id, `${this.getTime()}ms`, ...args);\n } else {\n this.info(...args);\n }\n }\n }\n\n getTime(): number {\n return Date.now() - this.start;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n info(...args: unknown[]): void {\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\n // eslint-disable-next-line no-console\n console.info(this.id, `${this.getTime()}ms`, ...args);\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n warn(...args: unknown[]): void {\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.warn === 'function') {\n // eslint-disable-next-line no-console\n console.warn(this.id, `${this.getTime()}ms`, ...args);\n } else {\n this.info(...args);\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n error(...args: unknown[]): void {\n if (this.enabled) {\n // eslint-disable-next-line no-console\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\n // eslint-disable-next-line no-console\n console.error(this.id, `${this.getTime()}ms`, ...args);\n } else {\n this.info(...args);\n }\n }\n }\n}\n","import {Logger} from './logger';\nimport {Cache, ResourceOptions} from './cache-storage';\nimport {Bounds} from '../css/layout/bounds';\n\nexport type ContextOptions = {\n logging: boolean;\n cache?: Cache;\n} & ResourceOptions;\n\nexport class Context {\n private readonly instanceName = `#${Context.instanceCount++}`;\n readonly logger: Logger;\n readonly cache: Cache;\n\n private static instanceCount = 1;\n\n constructor(options: ContextOptions, public windowBounds: Bounds) {\n this.logger = new Logger({id: this.instanceName, enabled: options.logging});\n this.cache = options.cache ?? new Cache(this, options);\n }\n}\n","import {Bounds, parseBounds, parseDocumentSize} from './css/layout/bounds';\nimport {COLORS, isTransparent, parseColor} from './css/types/color';\nimport {CloneConfigurations, CloneOptions, DocumentCloner, WindowOptions} from './dom/document-cloner';\nimport {isBodyElement, isHTMLElement, parseTree} from './dom/node-parser';\nimport {CacheStorage} from './core/cache-storage';\nimport {CanvasRenderer, RenderConfigurations, RenderOptions} from './render/canvas/canvas-renderer';\nimport {ForeignObjectRenderer} from './render/canvas/foreignobject-renderer';\nimport {Context, ContextOptions} from './core/context';\n\nexport type Options = CloneOptions &\n WindowOptions &\n RenderOptions &\n ContextOptions & {\n backgroundColor: string | null;\n foreignObjectRendering: boolean;\n removeContainer?: boolean;\n };\n\nconst html2canvas = (element: HTMLElement, options: Partial = {}): Promise => {\n return renderElement(element, options);\n};\n\nexport default html2canvas;\n\nif (typeof window !== 'undefined') {\n CacheStorage.setContext(window);\n}\n\nconst renderElement = async (element: HTMLElement, opts: Partial): Promise => {\n if (!element || typeof element !== 'object') {\n return Promise.reject('Invalid element provided as first argument');\n }\n const ownerDocument = element.ownerDocument;\n\n if (!ownerDocument) {\n throw new Error(`Element is not attached to a Document`);\n }\n\n const defaultView = ownerDocument.defaultView;\n\n if (!defaultView) {\n throw new Error(`Document is not attached to a Window`);\n }\n\n const resourceOptions = {\n allowTaint: opts.allowTaint ?? false,\n imageTimeout: opts.imageTimeout ?? 15000,\n proxy: opts.proxy,\n useCORS: opts.useCORS ?? false\n };\n\n const contextOptions = {\n logging: opts.logging ?? true,\n cache: opts.cache,\n ...resourceOptions\n };\n\n const windowOptions = {\n windowWidth: opts.windowWidth ?? defaultView.innerWidth,\n windowHeight: opts.windowHeight ?? defaultView.innerHeight,\n scrollX: opts.scrollX ?? defaultView.pageXOffset,\n scrollY: opts.scrollY ?? defaultView.pageYOffset\n };\n\n const windowBounds = new Bounds(\n windowOptions.scrollX,\n windowOptions.scrollY,\n windowOptions.windowWidth,\n windowOptions.windowHeight\n );\n\n const context = new Context(contextOptions, windowBounds);\n\n const foreignObjectRendering = opts.foreignObjectRendering ?? false;\n\n const cloneOptions: CloneConfigurations = {\n allowTaint: opts.allowTaint ?? false,\n onclone: opts.onclone,\n ignoreElements: opts.ignoreElements,\n inlineImages: foreignObjectRendering,\n copyStyles: foreignObjectRendering\n };\n\n context.logger.debug(\n `Starting document clone with size ${windowBounds.width}x${\n windowBounds.height\n } scrolled to ${-windowBounds.left},${-windowBounds.top}`\n );\n\n const documentCloner = new DocumentCloner(context, element, cloneOptions);\n const clonedElement = documentCloner.clonedReferenceElement;\n if (!clonedElement) {\n return Promise.reject(`Unable to find element in cloned iframe`);\n }\n\n const container = await documentCloner.toIFrame(ownerDocument, windowBounds);\n\n const {width, height, left, top} =\n isBodyElement(clonedElement) || isHTMLElement(clonedElement)\n ? parseDocumentSize(clonedElement.ownerDocument)\n : parseBounds(context, clonedElement);\n\n const backgroundColor = parseBackgroundColor(context, clonedElement, opts.backgroundColor);\n\n const renderOptions: RenderConfigurations = {\n canvas: opts.canvas,\n backgroundColor,\n scale: opts.scale ?? defaultView.devicePixelRatio ?? 1,\n x: (opts.x ?? 0) + left,\n y: (opts.y ?? 0) + top,\n width: opts.width ?? Math.ceil(width),\n height: opts.height ?? Math.ceil(height)\n };\n\n let canvas;\n\n if (foreignObjectRendering) {\n context.logger.debug(`Document cloned, using foreign object rendering`);\n const renderer = new ForeignObjectRenderer(context, renderOptions);\n canvas = await renderer.render(clonedElement);\n } else {\n context.logger.debug(\n `Document cloned, element located at ${left},${top} with size ${width}x${height} using computed rendering`\n );\n\n context.logger.debug(`Starting DOM parsing`);\n const root = parseTree(context, clonedElement);\n\n if (backgroundColor === root.styles.backgroundColor) {\n root.styles.backgroundColor = COLORS.TRANSPARENT;\n }\n\n context.logger.debug(\n `Starting renderer for element at ${renderOptions.x},${renderOptions.y} with size ${renderOptions.width}x${renderOptions.height}`\n );\n\n const renderer = new CanvasRenderer(context, renderOptions);\n canvas = await renderer.render(root);\n }\n\n if (opts.removeContainer ?? true) {\n if (!DocumentCloner.destroy(container)) {\n context.logger.error(`Cannot detach cloned iframe as it is not in the DOM anymore`);\n }\n }\n\n context.logger.debug(`Finished rendering`);\n return canvas;\n};\n\nconst parseBackgroundColor = (context: Context, element: HTMLElement, backgroundColorOverride?: string | null) => {\n const ownerDocument = element.ownerDocument;\n // http://www.w3.org/TR/css3-background/#special-backgrounds\n const documentBackgroundColor = ownerDocument.documentElement\n ? parseColor(context, getComputedStyle(ownerDocument.documentElement).backgroundColor as string)\n : COLORS.TRANSPARENT;\n const bodyBackgroundColor = ownerDocument.body\n ? parseColor(context, getComputedStyle(ownerDocument.body).backgroundColor as string)\n : COLORS.TRANSPARENT;\n\n const defaultBackgroundColor =\n typeof backgroundColorOverride === 'string'\n ? parseColor(context, backgroundColorOverride)\n : backgroundColorOverride === null\n ? COLORS.TRANSPARENT\n : 0xffffffff;\n\n return element === ownerDocument.documentElement\n ? isTransparent(documentBackgroundColor)\n ? isTransparent(bodyBackgroundColor)\n ? defaultBackgroundColor\n : bodyBackgroundColor\n : documentBackgroundColor\n : defaultBackgroundColor;\n};\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","function toLookup(arr) {\n return arr.reduce(function(lookup, name, index) {\n lookup[name] = index;\n\n return lookup;\n }, {});\n}\n\nvar fontStyleOrder = {\n italic: [\"italic\", \"oblique\", \"normal\"],\n oblique: [\"oblique\", \"italic\", \"normal\"],\n normal: [\"normal\", \"oblique\", \"italic\"]\n};\n\nvar fontStretchOrder = [\n \"ultra-condensed\",\n \"extra-condensed\",\n \"condensed\",\n \"semi-condensed\",\n \"normal\",\n \"semi-expanded\",\n \"expanded\",\n \"extra-expanded\",\n \"ultra-expanded\"\n];\n\n// For a given font-stretch value, we need to know where to start our search\n// from in the fontStretchOrder list.\nvar fontStretchLookup = toLookup(fontStretchOrder);\n\nvar fontWeights = [100, 200, 300, 400, 500, 600, 700, 800, 900];\nvar fontWeightsLookup = toLookup(fontWeights);\n\nfunction normalizeFontStretch(stretch) {\n stretch = stretch || \"normal\";\n\n return typeof fontStretchLookup[stretch] === \"number\" ? stretch : \"normal\";\n}\n\nfunction normalizeFontStyle(style) {\n style = style || \"normal\";\n\n return fontStyleOrder[style] ? style : \"normal\";\n}\n\nfunction normalizeFontWeight(weight) {\n if (!weight) {\n return 400;\n }\n\n if (typeof weight === \"number\") {\n // Ignore values which aren't valid font-weights.\n return weight >= 100 && weight <= 900 && weight % 100 === 0 ? weight : 400;\n }\n\n if (/^\\d00$/.test(weight)) {\n return parseInt(weight);\n }\n\n switch (weight) {\n case \"bold\":\n return 700;\n\n case \"normal\":\n default:\n return 400;\n }\n}\n\nexport function normalizeFontFace(fontFace) {\n var family = fontFace.family.replace(/\"|'/g, \"\").toLowerCase();\n\n var style = normalizeFontStyle(fontFace.style);\n var weight = normalizeFontWeight(fontFace.weight);\n var stretch = normalizeFontStretch(fontFace.stretch);\n\n return {\n family: family,\n style: style,\n weight: weight,\n stretch: stretch,\n src: fontFace.src || [],\n\n // The ref property maps this font-face to the font\n // added by the .addFont() method.\n ref: fontFace.ref || {\n name: family,\n style: [stretch, style, weight].join(\" \")\n }\n };\n}\n\n/**\n * Turns a list of font-faces into a map, for easier lookup when resolving\n * fonts.\n * @private\n */\nexport function buildFontFaceMap(fontFaces) {\n var map = {};\n\n for (var i = 0; i < fontFaces.length; ++i) {\n var normalized = normalizeFontFace(fontFaces[i]);\n\n var name = normalized.family;\n var stretch = normalized.stretch;\n var style = normalized.style;\n var weight = normalized.weight;\n\n map[name] = map[name] || {};\n\n map[name][stretch] = map[name][stretch] || {};\n map[name][stretch][style] = map[name][stretch][style] || {};\n map[name][stretch][style][weight] = normalized;\n }\n\n return map;\n}\n\n/**\n * Searches a map of stretches, weights, etc. in the given direction and\n * then, if no match has been found, in the opposite directions.\n *\n * @param {Object.} matchingSet A map of the various font variations.\n * @param {any[]} order The order of the different variations\n * @param {number} pivot The starting point of the search in the order list.\n * @param {number} dir The initial direction of the search (desc = -1, asc = 1)\n * @private\n */\n\nfunction searchFromPivot(matchingSet, order, pivot, dir) {\n var i;\n\n for (i = pivot; i >= 0 && i < order.length; i += dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n\n for (i = pivot; i >= 0 && i < order.length; i -= dir) {\n if (matchingSet[order[i]]) {\n return matchingSet[order[i]];\n }\n }\n}\n\nfunction resolveFontStretch(stretch, matchingSet) {\n if (matchingSet[stretch]) {\n return matchingSet[stretch];\n }\n\n var pivot = fontStretchLookup[stretch];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = pivot <= fontStretchLookup[\"normal\"] ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontStretchOrder, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-stretch value for \" + stretch\n );\n }\n\n return match;\n}\n\nfunction resolveFontStyle(fontStyle, matchingSet) {\n if (matchingSet[fontStyle]) {\n return matchingSet[fontStyle];\n }\n\n var ordering = fontStyleOrder[fontStyle];\n\n for (var i = 0; i < ordering.length; ++i) {\n if (matchingSet[ordering[i]]) {\n return matchingSet[ordering[i]];\n }\n }\n\n // Since a font-family cannot exist without having at least one style value\n // we should never reach this point.\n throw new Error(\"Could not find a matching font-style for \" + fontStyle);\n}\n\nfunction resolveFontWeight(weight, matchingSet) {\n if (matchingSet[weight]) {\n return matchingSet[weight];\n }\n\n if (weight === 400 && matchingSet[500]) {\n return matchingSet[500];\n }\n\n if (weight === 500 && matchingSet[400]) {\n return matchingSet[400];\n }\n\n var pivot = fontWeightsLookup[weight];\n\n // If the font-stretch value is normal or more condensed, we want to\n // start with a descending search, otherwise we should do ascending.\n var dir = weight < 400 ? -1 : 1;\n var match = searchFromPivot(matchingSet, fontWeights, pivot, dir);\n\n if (!match) {\n // Since a font-family cannot exist without having at least one stretch value\n // we should never reach this point.\n throw new Error(\n \"Could not find a matching font-weight for value \" + weight\n );\n }\n\n return match;\n}\n\nvar defaultGenericFontFamilies = {\n \"sans-serif\": \"helvetica\",\n fixed: \"courier\",\n monospace: \"courier\",\n terminal: \"courier\",\n cursive: \"times\",\n fantasy: \"times\",\n serif: \"times\"\n};\n\nvar systemFonts = {\n caption: \"times\",\n icon: \"times\",\n menu: \"times\",\n \"message-box\": \"times\",\n \"small-caption\": \"times\",\n \"status-bar\": \"times\"\n};\n\nfunction ruleToString(rule) {\n return [rule.stretch, rule.style, rule.weight, rule.family].join(\" \");\n}\n\nexport function resolveFontFace(fontFaceMap, rules, opts) {\n opts = opts || {};\n\n var defaultFontFamily = opts.defaultFontFamily || \"times\";\n var genericFontFamilies = Object.assign(\n {},\n defaultGenericFontFamilies,\n opts.genericFontFamilies || {}\n );\n\n var rule = null;\n var matches = null;\n\n for (var i = 0; i < rules.length; ++i) {\n rule = normalizeFontFace(rules[i]);\n\n if (genericFontFamilies[rule.family]) {\n rule.family = genericFontFamilies[rule.family];\n }\n\n if (fontFaceMap.hasOwnProperty(rule.family)) {\n matches = fontFaceMap[rule.family];\n\n break;\n }\n }\n\n // Always fallback to a known font family.\n matches = matches || fontFaceMap[defaultFontFamily];\n\n if (!matches) {\n // At this point we should definitiely have a font family, but if we\n // don't there is something wrong with our configuration\n throw new Error(\n \"Could not find a font-family for the rule '\" +\n ruleToString(rule) +\n \"' and default family '\" +\n defaultFontFamily +\n \"'.\"\n );\n }\n\n matches = resolveFontStretch(rule.stretch, matches);\n matches = resolveFontStyle(rule.style, matches);\n matches = resolveFontWeight(rule.weight, matches);\n\n if (!matches) {\n // We should've fount\n throw new Error(\n \"Failed to resolve a font for the rule '\" + ruleToString(rule) + \"'.\"\n );\n }\n\n return matches;\n}\n\n/**\n * Builds a style id for use with the addFont() method.\n * @param {FontFace} font\n * @private\n */\nexport function toStyleName(font) {\n return [font.weight, font.style, font.stretch].join(\" \");\n}\n\nfunction eatWhiteSpace(input) {\n return input.trimLeft();\n}\n\nfunction parseQuotedFontFamily(input, quote) {\n var index = 0;\n\n while (index < input.length) {\n var current = input.charAt(index);\n\n if (current === quote) {\n return [input.substring(0, index), input.substring(index + 1)];\n }\n\n index += 1;\n }\n\n // Unexpected end of input\n return null;\n}\n\nfunction parseNonQuotedFontFamily(input) {\n // It implements part of the identifier parser here: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n //\n // NOTE: This parser pretty much ignores escaped identifiers and that there is a thing called unicode.\n //\n // Breakdown of regexp:\n // -[a-z_] - when identifier starts with a hyphen, you're not allowed to have another hyphen or a digit\n // [a-z_] - allow a-z and underscore at beginning of input\n // [a-z0-9_-]* - after that, anything goes\n var match = input.match(/^(-[a-z_]|[a-z_])[a-z0-9_-]*/i);\n\n // non quoted value contains illegal characters\n if (match === null) {\n return null;\n }\n\n return [match[0], input.substring(match[0].length)];\n}\n\nvar defaultFont = [\"times\"];\n\nexport function parseFontFamily(input) {\n var result = [];\n var ch, parsed;\n var remaining = input.trim();\n\n if (remaining === \"\") {\n return defaultFont;\n }\n\n if (remaining in systemFonts) {\n return [systemFonts[remaining]];\n }\n\n while (remaining !== \"\") {\n parsed = null;\n remaining = eatWhiteSpace(remaining);\n ch = remaining.charAt(0);\n\n switch (ch) {\n case '\"':\n case \"'\":\n parsed = parseQuotedFontFamily(remaining.substring(1), ch);\n break;\n\n default:\n parsed = parseNonQuotedFontFamily(remaining);\n break;\n }\n\n if (parsed === null) {\n return defaultFont;\n }\n\n result.push(parsed[0]);\n\n remaining = eatWhiteSpace(parsed[1]);\n\n // We expect end of input or a comma separator here\n if (remaining !== \"\" && remaining.charAt(0) !== \",\") {\n return defaultFont;\n }\n\n remaining = remaining.replace(/^,/, \"\");\n }\n\n return result;\n}\n","/** @license\n * jsPDF addImage plugin\n * Copyright (c) 2012 Jason Siefken, https://github.com/siefkenj/\n * 2013 Chris Dowling, https://github.com/gingerchris\n * 2013 Trinh Ho, https://github.com/ineedfat\n * 2013 Edwin Alejandro Perez, https://github.com/eaparango\n * 2013 Norah Smith, https://github.com/burnburnrocket\n * 2014 Diego Casorran, https://github.com/diegocr\n * 2014 James Robb, https://github.com/jamesbrobb\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n/**\n * @name addImage\n * @module\n */\n\nimport { jsPDF } from \"../jspdf.js\";\nimport { atob, btoa } from \"../libs/AtobBtoa.js\";\n\n(function(jsPDFAPI) {\n \"use strict\";\n\n var namespace = \"addImage_\";\n jsPDFAPI.__addimage__ = {};\n\n var UNKNOWN = \"UNKNOWN\";\n\n // Heuristic selection of a good batch for large array .apply. Not limiting make the call overflow.\n // With too small batch iteration will be slow as more calls are made,\n // higher values cause larger and slower garbage collection.\n var ARRAY_APPLY_BATCH = 8192;\n\n var imageFileTypeHeaders = {\n PNG: [[0x89, 0x50, 0x4e, 0x47]],\n TIFF: [\n [0x4d, 0x4d, 0x00, 0x2a], //Motorola\n [0x49, 0x49, 0x2a, 0x00] //Intel\n ],\n JPEG: [\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe0,\n undefined,\n undefined,\n 0x4a,\n 0x46,\n 0x49,\n 0x46,\n 0x00\n ], //JFIF\n [\n 0xff,\n 0xd8,\n 0xff,\n 0xe1,\n undefined,\n undefined,\n 0x45,\n 0x78,\n 0x69,\n 0x66,\n 0x00,\n 0x00\n ], //Exif\n [0xff, 0xd8, 0xff, 0xdb], //JPEG RAW\n [0xff, 0xd8, 0xff, 0xee] //EXIF RAW\n ],\n JPEG2000: [[0x00, 0x00, 0x00, 0x0c, 0x6a, 0x50, 0x20, 0x20]],\n GIF87a: [[0x47, 0x49, 0x46, 0x38, 0x37, 0x61]],\n GIF89a: [[0x47, 0x49, 0x46, 0x38, 0x39, 0x61]],\n WEBP: [\n [\n 0x52,\n 0x49,\n 0x46,\n 0x46,\n undefined,\n undefined,\n undefined,\n undefined,\n 0x57,\n 0x45,\n 0x42,\n 0x50\n ]\n ],\n BMP: [\n [0x42, 0x4d], //BM - Windows 3.1x, 95, NT, ... etc.\n [0x42, 0x41], //BA - OS/2 struct bitmap array\n [0x43, 0x49], //CI - OS/2 struct color icon\n [0x43, 0x50], //CP - OS/2 const color pointer\n [0x49, 0x43], //IC - OS/2 struct icon\n [0x50, 0x54] //PT - OS/2 pointer\n ]\n };\n\n /**\n * Recognize filetype of Image by magic-bytes\n *\n * https://en.wikipedia.org/wiki/List_of_file_signatures\n *\n * @name getImageFileTypeByImageData\n * @public\n * @function\n * @param {string|arraybuffer} imageData imageData as binary String or arraybuffer\n * @param {string} format format of file if filetype-recognition fails, e.g. 'JPEG'\n *\n * @returns {string} filetype of Image\n */\n var getImageFileTypeByImageData = (jsPDFAPI.__addimage__.getImageFileTypeByImageData = function(\n imageData,\n fallbackFormat\n ) {\n fallbackFormat = fallbackFormat || UNKNOWN;\n var i;\n var j;\n var result = UNKNOWN;\n var headerSchemata;\n var compareResult;\n var fileType;\n\n if (\n fallbackFormat === \"RGBA\" ||\n (imageData.data !== undefined &&\n imageData.data instanceof Uint8ClampedArray &&\n \"height\" in imageData &&\n \"width\" in imageData)\n ) {\n return \"RGBA\";\n }\n\n if (isArrayBufferView(imageData)) {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData[j]) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n } else {\n for (fileType in imageFileTypeHeaders) {\n headerSchemata = imageFileTypeHeaders[fileType];\n for (i = 0; i < headerSchemata.length; i += 1) {\n compareResult = true;\n for (j = 0; j < headerSchemata[i].length; j += 1) {\n if (headerSchemata[i][j] === undefined) {\n continue;\n }\n if (headerSchemata[i][j] !== imageData.charCodeAt(j)) {\n compareResult = false;\n break;\n }\n }\n if (compareResult === true) {\n result = fileType;\n break;\n }\n }\n }\n }\n\n if (result === UNKNOWN && fallbackFormat !== UNKNOWN) {\n result = fallbackFormat;\n }\n return result;\n });\n\n // Image functionality ported from pdf.js\n var putImage = function(image) {\n var out = this.internal.write;\n var putStream = this.internal.putStream;\n var getFilters = this.internal.getFilters;\n\n var filter = getFilters();\n while (filter.indexOf(\"FlateEncode\") !== -1) {\n filter.splice(filter.indexOf(\"FlateEncode\"), 1);\n }\n\n image.objectId = this.internal.newObject();\n\n var additionalKeyValues = [];\n additionalKeyValues.push({ key: \"Type\", value: \"/XObject\" });\n additionalKeyValues.push({ key: \"Subtype\", value: \"/Image\" });\n additionalKeyValues.push({ key: \"Width\", value: image.width });\n additionalKeyValues.push({ key: \"Height\", value: image.height });\n\n if (image.colorSpace === color_spaces.INDEXED) {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value:\n \"[/Indexed /DeviceRGB \" +\n // if an indexed png defines more than one colour with transparency, we've created a sMask\n (image.palette.length / 3 - 1) +\n \" \" +\n (\"sMask\" in image && typeof image.sMask !== \"undefined\"\n ? image.objectId + 2\n : image.objectId + 1) +\n \" 0 R]\"\n });\n } else {\n additionalKeyValues.push({\n key: \"ColorSpace\",\n value: \"/\" + image.colorSpace\n });\n if (image.colorSpace === color_spaces.DEVICE_CMYK) {\n additionalKeyValues.push({ key: \"Decode\", value: \"[1 0 1 0 1 0 1 0]\" });\n }\n }\n additionalKeyValues.push({\n key: \"BitsPerComponent\",\n value: image.bitsPerComponent\n });\n if (\n \"decodeParameters\" in image &&\n typeof image.decodeParameters !== \"undefined\"\n ) {\n additionalKeyValues.push({\n key: \"DecodeParms\",\n value: \"<<\" + image.decodeParameters + \">>\"\n });\n }\n if (\"transparency\" in image && Array.isArray(image.transparency)) {\n var transparency = \"\",\n i = 0,\n len = image.transparency.length;\n for (; i < len; i++)\n transparency +=\n image.transparency[i] + \" \" + image.transparency[i] + \" \";\n\n additionalKeyValues.push({\n key: \"Mask\",\n value: \"[\" + transparency + \"]\"\n });\n }\n if (typeof image.sMask !== \"undefined\") {\n additionalKeyValues.push({\n key: \"SMask\",\n value: image.objectId + 1 + \" 0 R\"\n });\n }\n\n var alreadyAppliedFilters =\n typeof image.filter !== \"undefined\" ? [\"/\" + image.filter] : undefined;\n\n putStream({\n data: image.data,\n additionalKeyValues: additionalKeyValues,\n alreadyAppliedFilters: alreadyAppliedFilters,\n objectId: image.objectId\n });\n\n out(\"endobj\");\n\n // Soft mask\n if (\"sMask\" in image && typeof image.sMask !== \"undefined\") {\n var decodeParameters =\n \"/Predictor \" +\n image.predictor +\n \" /Colors 1 /BitsPerComponent \" +\n image.bitsPerComponent +\n \" /Columns \" +\n image.width;\n var sMask = {\n width: image.width,\n height: image.height,\n colorSpace: \"DeviceGray\",\n bitsPerComponent: image.bitsPerComponent,\n decodeParameters: decodeParameters,\n data: image.sMask\n };\n if (\"filter\" in image) {\n sMask.filter = image.filter;\n }\n putImage.call(this, sMask);\n }\n\n //Palette\n if (image.colorSpace === color_spaces.INDEXED) {\n var objId = this.internal.newObject();\n //out('<< /Filter / ' + img['f'] +' /Length ' + img['pal'].length + '>>');\n //putStream(zlib.compress(img['pal']));\n putStream({\n data: arrayBufferToBinaryString(new Uint8Array(image.palette)),\n objectId: objId\n });\n out(\"endobj\");\n }\n };\n var putResourcesCallback = function() {\n var images = this.internal.collections[namespace + \"images\"];\n for (var i in images) {\n putImage.call(this, images[i]);\n }\n };\n var putXObjectsDictCallback = function() {\n var images = this.internal.collections[namespace + \"images\"],\n out = this.internal.write,\n image;\n for (var i in images) {\n image = images[i];\n out(\"/I\" + image.index, image.objectId, \"0\", \"R\");\n }\n };\n\n var checkCompressValue = function(value) {\n if (value && typeof value === \"string\") value = value.toUpperCase();\n return value in jsPDFAPI.image_compression ? value : image_compression.NONE;\n };\n\n var initialize = function() {\n if (!this.internal.collections[namespace + \"images\"]) {\n this.internal.collections[namespace + \"images\"] = {};\n this.internal.events.subscribe(\"putResources\", putResourcesCallback);\n this.internal.events.subscribe(\"putXobjectDict\", putXObjectsDictCallback);\n }\n };\n\n var getImages = function() {\n var images = this.internal.collections[namespace + \"images\"];\n initialize.call(this);\n return images;\n };\n var getImageIndex = function() {\n return Object.keys(this.internal.collections[namespace + \"images\"]).length;\n };\n var notDefined = function(value) {\n return typeof value === \"undefined\" || value === null || value.length === 0;\n };\n var generateAliasFromImageData = function(imageData) {\n if (typeof imageData === \"string\" || isArrayBufferView(imageData)) {\n return sHashCode(imageData);\n } else if (isArrayBufferView(imageData.data)) {\n return sHashCode(imageData.data);\n }\n\n return null;\n };\n\n var isImageTypeSupported = function(type) {\n return typeof jsPDFAPI[\"process\" + type.toUpperCase()] === \"function\";\n };\n\n var isDOMElement = function(object) {\n return typeof object === \"object\" && object.nodeType === 1;\n };\n\n var getImageDataFromElement = function(element, format) {\n //if element is an image which uses data url definition, just return the dataurl\n if (element.nodeName === \"IMG\" && element.hasAttribute(\"src\")) {\n var src = \"\" + element.getAttribute(\"src\");\n\n //is base64 encoded dataUrl, directly process it\n if (src.indexOf(\"data:image/\") === 0) {\n return atob(\n unescape(src)\n .split(\"base64,\")\n .pop()\n );\n }\n\n //it is probably an url, try to load it\n var tmpImageData = jsPDFAPI.loadFile(src, true);\n if (tmpImageData !== undefined) {\n return tmpImageData;\n }\n }\n\n if (element.nodeName === \"CANVAS\") {\n if (element.width === 0 || element.height === 0) {\n throw new Error(\n \"Given canvas must have data. Canvas width: \" +\n element.width +\n \", height: \" +\n element.height\n );\n }\n var mimeType;\n switch (format) {\n case \"PNG\":\n mimeType = \"image/png\";\n break;\n case \"WEBP\":\n mimeType = \"image/webp\";\n break;\n case \"JPEG\":\n case \"JPG\":\n default:\n mimeType = \"image/jpeg\";\n break;\n }\n return atob(\n element\n .toDataURL(mimeType, 1.0)\n .split(\"base64,\")\n .pop()\n );\n }\n };\n\n var checkImagesForAlias = function(alias) {\n var images = this.internal.collections[namespace + \"images\"];\n if (images) {\n for (var e in images) {\n if (alias === images[e].alias) {\n return images[e];\n }\n }\n }\n };\n\n var determineWidthAndHeight = function(width, height, image) {\n if (!width && !height) {\n width = -96;\n height = -96;\n }\n if (width < 0) {\n width = (-1 * image.width * 72) / width / this.internal.scaleFactor;\n }\n if (height < 0) {\n height = (-1 * image.height * 72) / height / this.internal.scaleFactor;\n }\n if (width === 0) {\n width = (height * image.width) / image.height;\n }\n if (height === 0) {\n height = (width * image.height) / image.width;\n }\n\n return [width, height];\n };\n\n var writeImageToPDF = function(x, y, width, height, image, rotation) {\n var dims = determineWidthAndHeight.call(this, width, height, image),\n coord = this.internal.getCoordinateString,\n vcoord = this.internal.getVerticalCoordinateString;\n\n var images = getImages.call(this);\n\n width = dims[0];\n height = dims[1];\n images[image.index] = image;\n\n if (rotation) {\n rotation *= Math.PI / 180;\n var c = Math.cos(rotation);\n var s = Math.sin(rotation);\n //like in pdf Reference do it 4 digits instead of 2\n var f4 = function(number) {\n return number.toFixed(4);\n };\n var rotationTransformationMatrix = [\n f4(c),\n f4(s),\n f4(s * -1),\n f4(c),\n 0,\n 0,\n \"cm\"\n ];\n }\n this.internal.write(\"q\"); //Save graphics state\n if (rotation) {\n this.internal.write(\n [1, \"0\", \"0\", 1, coord(x), vcoord(y + height), \"cm\"].join(\" \")\n ); //Translate\n this.internal.write(rotationTransformationMatrix.join(\" \")); //Rotate\n this.internal.write(\n [coord(width), \"0\", \"0\", coord(height), \"0\", \"0\", \"cm\"].join(\" \")\n ); //Scale\n } else {\n this.internal.write(\n [\n coord(width),\n \"0\",\n \"0\",\n coord(height),\n coord(x),\n vcoord(y + height),\n \"cm\"\n ].join(\" \")\n ); //Translate and Scale\n }\n\n if (this.isAdvancedAPI()) {\n // draw image bottom up when in \"advanced\" API mode\n this.internal.write([1, 0, 0, -1, 0, 0, \"cm\"].join(\" \"));\n }\n\n this.internal.write(\"/I\" + image.index + \" Do\"); //Paint Image\n this.internal.write(\"Q\"); //Restore graphics state\n };\n\n /**\n * COLOR SPACES\n */\n var color_spaces = (jsPDFAPI.color_spaces = {\n DEVICE_RGB: \"DeviceRGB\",\n DEVICE_GRAY: \"DeviceGray\",\n DEVICE_CMYK: \"DeviceCMYK\",\n CAL_GREY: \"CalGray\",\n CAL_RGB: \"CalRGB\",\n LAB: \"Lab\",\n ICC_BASED: \"ICCBased\",\n INDEXED: \"Indexed\",\n PATTERN: \"Pattern\",\n SEPARATION: \"Separation\",\n DEVICE_N: \"DeviceN\"\n });\n\n /**\n * DECODE METHODS\n */\n jsPDFAPI.decode = {\n DCT_DECODE: \"DCTDecode\",\n FLATE_DECODE: \"FlateDecode\",\n LZW_DECODE: \"LZWDecode\",\n JPX_DECODE: \"JPXDecode\",\n JBIG2_DECODE: \"JBIG2Decode\",\n ASCII85_DECODE: \"ASCII85Decode\",\n ASCII_HEX_DECODE: \"ASCIIHexDecode\",\n RUN_LENGTH_DECODE: \"RunLengthDecode\",\n CCITT_FAX_DECODE: \"CCITTFaxDecode\"\n };\n\n /**\n * IMAGE COMPRESSION TYPES\n */\n var image_compression = (jsPDFAPI.image_compression = {\n NONE: \"NONE\",\n FAST: \"FAST\",\n MEDIUM: \"MEDIUM\",\n SLOW: \"SLOW\"\n });\n\n /**\n * @name sHashCode\n * @function\n * @param {string} data\n * @returns {string}\n */\n var sHashCode = (jsPDFAPI.__addimage__.sHashCode = function(data) {\n var hash = 0,\n i,\n len;\n\n if (typeof data === \"string\") {\n len = data.length;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n } else if (isArrayBufferView(data)) {\n len = data.byteLength / 2;\n for (i = 0; i < len; i++) {\n hash = (hash << 5) - hash + data[i];\n hash |= 0; // Convert to 32bit integer\n }\n }\n return hash;\n });\n\n /**\n * Validates if given String is a valid Base64-String\n *\n * @name validateStringAsBase64\n * @public\n * @function\n * @param {String} possible Base64-String\n *\n * @returns {boolean}\n */\n var validateStringAsBase64 = (jsPDFAPI.__addimage__.validateStringAsBase64 = function(\n possibleBase64String\n ) {\n possibleBase64String = possibleBase64String || \"\";\n possibleBase64String.toString().trim();\n\n var result = true;\n\n if (possibleBase64String.length === 0) {\n result = false;\n }\n\n if (possibleBase64String.length % 4 !== 0) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9+/]+$/.test(\n possibleBase64String.substr(0, possibleBase64String.length - 2)\n ) === false\n ) {\n result = false;\n }\n\n if (\n /^[A-Za-z0-9/][A-Za-z0-9+/]|[A-Za-z0-9+/]=|==$/.test(\n possibleBase64String.substr(-2)\n ) === false\n ) {\n result = false;\n }\n return result;\n });\n\n /**\n * Strips out and returns info from a valid base64 data URI\n *\n * @name extractImageFromDataUrl\n * @function\n * @param {string} dataUrl a valid data URI of format 'data:[][;base64],'\n * @returns {Array}an Array containing the following\n * [0] the complete data URI\n * [1] \n * [2] format - the second part of the mime-type i.e 'png' in 'image/png'\n * [4] \n */\n var extractImageFromDataUrl = (jsPDFAPI.__addimage__.extractImageFromDataUrl = function(\n dataUrl\n ) {\n dataUrl = dataUrl || \"\";\n var dataUrlParts = dataUrl.split(\"base64,\");\n var result = null;\n\n if (dataUrlParts.length === 2) {\n var extractedInfo = /^data:(\\w*\\/\\w*);*(charset=(?!charset=)[\\w=-]*)*;*$/.exec(\n dataUrlParts[0]\n );\n if (Array.isArray(extractedInfo)) {\n result = {\n mimeType: extractedInfo[1],\n charset: extractedInfo[2],\n data: dataUrlParts[1]\n };\n }\n }\n return result;\n });\n\n /**\n * Check to see if ArrayBuffer is supported\n *\n * @name supportsArrayBuffer\n * @function\n * @returns {boolean}\n */\n var supportsArrayBuffer = (jsPDFAPI.__addimage__.supportsArrayBuffer = function() {\n return (\n typeof ArrayBuffer !== \"undefined\" && typeof Uint8Array !== \"undefined\"\n );\n });\n\n /**\n * Tests supplied object to determine if ArrayBuffer\n *\n * @name isArrayBuffer\n * @function\n * @param {Object} object an Object\n *\n * @returns {boolean}\n */\n jsPDFAPI.__addimage__.isArrayBuffer = function(object) {\n return supportsArrayBuffer() && object instanceof ArrayBuffer;\n };\n\n /**\n * Tests supplied object to determine if it implements the ArrayBufferView (TypedArray) interface\n *\n * @name isArrayBufferView\n * @function\n * @param {Object} object an Object\n * @returns {boolean}\n */\n var isArrayBufferView = (jsPDFAPI.__addimage__.isArrayBufferView = function(\n object\n ) {\n return (\n supportsArrayBuffer() &&\n typeof Uint32Array !== \"undefined\" &&\n (object instanceof Int8Array ||\n object instanceof Uint8Array ||\n (typeof Uint8ClampedArray !== \"undefined\" &&\n object instanceof Uint8ClampedArray) ||\n object instanceof Int16Array ||\n object instanceof Uint16Array ||\n object instanceof Int32Array ||\n object instanceof Uint32Array ||\n object instanceof Float32Array ||\n object instanceof Float64Array)\n );\n });\n\n /**\n * Convert Binary String to ArrayBuffer\n *\n * @name binaryStringToUint8Array\n * @public\n * @function\n * @param {string} BinaryString with ImageData\n * @returns {Uint8Array}\n */\n var binaryStringToUint8Array = (jsPDFAPI.__addimage__.binaryStringToUint8Array = function(\n binary_string\n ) {\n var len = binary_string.length;\n var bytes = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes;\n });\n\n /**\n * Convert the Buffer to a Binary String\n *\n * @name arrayBufferToBinaryString\n * @public\n * @function\n * @param {ArrayBuffer|ArrayBufferView} ArrayBuffer buffer or bufferView with ImageData\n *\n * @returns {String}\n */\n var arrayBufferToBinaryString = (jsPDFAPI.__addimage__.arrayBufferToBinaryString = function(\n buffer\n ) {\n var out = \"\";\n // There are calls with both ArrayBuffer and already converted Uint8Array or other BufferView.\n // Do not copy the array if input is already an array.\n var buf = isArrayBufferView(buffer) ? buffer : new Uint8Array(buffer);\n for (var i = 0; i < buf.length; i += ARRAY_APPLY_BATCH) {\n // Limit the amount of characters being parsed to prevent overflow.\n // Note that while TextDecoder would be faster, it does not have the same\n // functionality as fromCharCode with any provided encodings as of 3/2021.\n out += String.fromCharCode.apply(\n null,\n buf.subarray(i, i + ARRAY_APPLY_BATCH)\n );\n }\n return out;\n });\n\n /**\n * Possible parameter for addImage, an RGBA buffer with size.\n *\n * @typedef {Object} RGBAData\n * @property {Uint8ClampedArray} data - Single dimensional array of RGBA values. For example from canvas getImageData.\n * @property {number} width - Image width as the data does not carry this information in itself.\n * @property {number} height - Image height as the data does not carry this information in itself.\n */\n\n /**\n * Adds an Image to the PDF.\n *\n * @name addImage\n * @public\n * @function\n * @param {string|HTMLImageElement|HTMLCanvasElement|Uint8Array|RGBAData} imageData imageData as base64 encoded DataUrl or Image-HTMLElement or Canvas-HTMLElement or object containing RGBA array (like output from canvas.getImageData).\n * @param {string} format format of file if filetype-recognition fails or in case of a Canvas-Element needs to be specified (default for Canvas is JPEG), e.g. 'JPEG', 'PNG', 'WEBP'\n * @param {number} x x Coordinate (in units declared at inception of PDF document) against left edge of the page\n * @param {number} y y Coordinate (in units declared at inception of PDF document) against upper edge of the page\n * @param {number} width width of the image (in units declared at inception of PDF document)\n * @param {number} height height of the Image (in units declared at inception of PDF document)\n * @param {string} alias alias of the image (if used multiple times)\n * @param {string} compression compression of the generated JPEG, can have the values 'NONE', 'FAST', 'MEDIUM' and 'SLOW'\n * @param {number} rotation rotation of the image in degrees (0-359)\n *\n * @returns jsPDF\n */\n jsPDFAPI.addImage = function() {\n var imageData, format, x, y, w, h, alias, compression, rotation;\n\n imageData = arguments[0];\n if (typeof arguments[1] === \"number\") {\n format = UNKNOWN;\n x = arguments[1];\n y = arguments[2];\n w = arguments[3];\n h = arguments[4];\n alias = arguments[5];\n compression = arguments[6];\n rotation = arguments[7];\n } else {\n format = arguments[1];\n x = arguments[2];\n y = arguments[3];\n w = arguments[4];\n h = arguments[5];\n alias = arguments[6];\n compression = arguments[7];\n rotation = arguments[8];\n }\n\n if (\n typeof imageData === \"object\" &&\n !isDOMElement(imageData) &&\n \"imageData\" in imageData\n ) {\n var options = imageData;\n\n imageData = options.imageData;\n format = options.format || format || UNKNOWN;\n x = options.x || x || 0;\n y = options.y || y || 0;\n w = options.w || options.width || w;\n h = options.h || options.height || h;\n alias = options.alias || alias;\n compression = options.compression || compression;\n rotation = options.rotation || options.angle || rotation;\n }\n\n //If compression is not explicitly set, determine if we should use compression\n var filter = this.internal.getFilters();\n if (compression === undefined && filter.indexOf(\"FlateEncode\") !== -1) {\n compression = \"SLOW\";\n }\n\n if (isNaN(x) || isNaN(y)) {\n throw new Error(\"Invalid coordinates passed to jsPDF.addImage\");\n }\n\n initialize.call(this);\n\n var image = processImageData.call(\n this,\n imageData,\n format,\n alias,\n compression\n );\n\n writeImageToPDF.call(this, x, y, w, h, image, rotation);\n\n return this;\n };\n\n var processImageData = function(imageData, format, alias, compression) {\n var result, dataAsBinaryString;\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n imageData = unescape(imageData);\n var tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData !== \"\") {\n imageData = tmpImageData;\n } else {\n tmpImageData = jsPDFAPI.loadFile(imageData, true);\n if (tmpImageData !== undefined) {\n imageData = tmpImageData;\n }\n }\n }\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData, format);\n }\n\n format = getImageFileTypeByImageData(imageData, format);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n // now do the heavy lifting\n\n if (notDefined(alias)) {\n alias = generateAliasFromImageData(imageData);\n }\n result = checkImagesForAlias.call(this, alias);\n\n if (!result) {\n if (supportsArrayBuffer()) {\n // no need to convert if imageData is already uint8array\n if (!(imageData instanceof Uint8Array) && format !== \"RGBA\") {\n dataAsBinaryString = imageData;\n imageData = binaryStringToUint8Array(imageData);\n }\n }\n\n result = this[\"process\" + format.toUpperCase()](\n imageData,\n getImageIndex.call(this),\n alias,\n checkCompressValue(compression),\n dataAsBinaryString\n );\n }\n\n if (!result) {\n throw new Error(\"An unknown error occurred whilst processing the image.\");\n }\n return result;\n };\n\n /**\n * @name convertBase64ToBinaryString\n * @function\n * @param {string} stringData\n * @returns {string} binary string\n */\n var convertBase64ToBinaryString = (jsPDFAPI.__addimage__.convertBase64ToBinaryString = function(\n stringData,\n throwError\n ) {\n throwError = typeof throwError === \"boolean\" ? throwError : true;\n var base64Info;\n var imageData = \"\";\n var rawData;\n\n if (typeof stringData === \"string\") {\n base64Info = extractImageFromDataUrl(stringData);\n rawData = base64Info !== null ? base64Info.data : stringData;\n\n try {\n imageData = atob(rawData);\n } catch (e) {\n if (throwError) {\n if (!validateStringAsBase64(rawData)) {\n throw new Error(\n \"Supplied Data is not a valid base64-String jsPDF.convertBase64ToBinaryString \"\n );\n } else {\n throw new Error(\n \"atob-Error in jsPDF.convertBase64ToBinaryString \" + e.message\n );\n }\n }\n }\n }\n return imageData;\n });\n\n /**\n * @name getImageProperties\n * @function\n * @param {Object} imageData\n * @returns {Object}\n */\n jsPDFAPI.getImageProperties = function(imageData) {\n var image;\n var tmpImageData = \"\";\n var format;\n\n if (isDOMElement(imageData)) {\n imageData = getImageDataFromElement(imageData);\n }\n\n if (\n typeof imageData === \"string\" &&\n getImageFileTypeByImageData(imageData) === UNKNOWN\n ) {\n tmpImageData = convertBase64ToBinaryString(imageData, false);\n\n if (tmpImageData === \"\") {\n tmpImageData = jsPDFAPI.loadFile(imageData) || \"\";\n }\n imageData = tmpImageData;\n }\n\n format = getImageFileTypeByImageData(imageData);\n if (!isImageTypeSupported(format)) {\n throw new Error(\n \"addImage does not support files of type '\" +\n format +\n \"', please ensure that a plugin for '\" +\n format +\n \"' support is added.\"\n );\n }\n\n if (supportsArrayBuffer() && !(imageData instanceof Uint8Array)) {\n imageData = binaryStringToUint8Array(imageData);\n }\n\n image = this[\"process\" + format.toUpperCase()](imageData);\n\n if (!image) {\n throw new Error(\"An unknown error occurred whilst processing the image\");\n }\n\n image.fileType = format;\n\n return image;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\n/**\n * jsPDF Annotations PlugIn\n *\n * There are many types of annotations in a PDF document. Annotations are placed\n * on a page at a particular location. They are not 'attached' to an object.\n *
\n * This plugin current supports
\n *
  • Goto Page (set pageNumber and top in options)\n *
  • Goto Name (set name and top in options)\n *
  • Goto URL (set url in options)\n *

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

    \n *

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

    \n *

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

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

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

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

    \n * @name link\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {Object} options\n */\n jsPDFAPI.link = function(x, y, w, h, options) {\n var pageInfo = this.internal.getCurrentPageInfo();\n var getHorizontalCoordinateString = this.internal.getCoordinateString;\n var getVerticalCoordinateString = this.internal.getVerticalCoordinateString;\n\n pageInfo.pageContext.annotations.push({\n finalBounds: {\n x: getHorizontalCoordinateString(x),\n y: getVerticalCoordinateString(y),\n w: getHorizontalCoordinateString(x + w),\n h: getVerticalCoordinateString(y + h)\n },\n options: options,\n type: \"link\"\n });\n };\n\n /**\n * Currently only supports single line text.\n * Returns the width of the text/link\n *\n * @name textWithLink\n * @function\n * @param {string} text\n * @param {number} x\n * @param {number} y\n * @param {Object} options\n * @returns {number} width the width of the text/link\n */\n jsPDFAPI.textWithLink = function(text, x, y, options) {\n var totalLineWidth = this.getTextWidth(text);\n var lineHeight = this.internal.getLineHeight() / this.internal.scaleFactor;\n var linkHeight, linkWidth;\n\n // Checking if maxWidth option is passed to determine lineWidth and number of lines for each line\n if (options.maxWidth !== undefined) {\n var { maxWidth } = options;\n linkWidth = maxWidth;\n var numOfLines = this.splitTextToSize(text, linkWidth).length;\n linkHeight = Math.ceil(lineHeight * numOfLines);\n } else {\n linkWidth = totalLineWidth;\n linkHeight = lineHeight;\n }\n\n this.text(text, x, y, options);\n\n //TODO We really need the text baseline height to do this correctly.\n // Or ability to draw text on top, bottom, center, or baseline.\n y += lineHeight * 0.2;\n //handle x position based on the align option\n if (options.align === \"center\") {\n x = x - totalLineWidth / 2; //since starting from center move the x position by half of text width\n }\n if (options.align === \"right\") {\n x = x - totalLineWidth;\n }\n this.link(x, y - lineHeight, linkWidth, linkHeight, options);\n return totalLineWidth;\n };\n\n //TODO move into external library\n /**\n * @name getTextWidth\n * @function\n * @param {string} text\n * @returns {number} txtWidth\n */\n jsPDFAPI.getTextWidth = function(text) {\n var fontSize = this.internal.getFontSize();\n var txtWidth =\n (this.getStringUnitWidth(text) * fontSize) / this.internal.scaleFactor;\n return txtWidth;\n };\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2017 Aras Abbasi\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF arabic parser PlugIn\n *\n * @name arabic\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Arabic shape substitutions: char code => (isolated, final, initial, medial).\n * Arabic Substition A\n */\n var arabicSubstitionA = {\n 0x0621: [0xfe80], // ARABIC LETTER HAMZA\n 0x0622: [0xfe81, 0xfe82], // ARABIC LETTER ALEF WITH MADDA ABOVE\n 0x0623: [0xfe83, 0xfe84], // ARABIC LETTER ALEF WITH HAMZA ABOVE\n 0x0624: [0xfe85, 0xfe86], // ARABIC LETTER WAW WITH HAMZA ABOVE\n 0x0625: [0xfe87, 0xfe88], // ARABIC LETTER ALEF WITH HAMZA BELOW\n 0x0626: [0xfe89, 0xfe8a, 0xfe8b, 0xfe8c], // ARABIC LETTER YEH WITH HAMZA ABOVE\n 0x0627: [0xfe8d, 0xfe8e], // ARABIC LETTER ALEF\n 0x0628: [0xfe8f, 0xfe90, 0xfe91, 0xfe92], // ARABIC LETTER BEH\n 0x0629: [0xfe93, 0xfe94], // ARABIC LETTER TEH MARBUTA\n 0x062a: [0xfe95, 0xfe96, 0xfe97, 0xfe98], // ARABIC LETTER TEH\n 0x062b: [0xfe99, 0xfe9a, 0xfe9b, 0xfe9c], // ARABIC LETTER THEH\n 0x062c: [0xfe9d, 0xfe9e, 0xfe9f, 0xfea0], // ARABIC LETTER JEEM\n 0x062d: [0xfea1, 0xfea2, 0xfea3, 0xfea4], // ARABIC LETTER HAH\n 0x062e: [0xfea5, 0xfea6, 0xfea7, 0xfea8], // ARABIC LETTER KHAH\n 0x062f: [0xfea9, 0xfeaa], // ARABIC LETTER DAL\n 0x0630: [0xfeab, 0xfeac], // ARABIC LETTER THAL\n 0x0631: [0xfead, 0xfeae], // ARABIC LETTER REH\n 0x0632: [0xfeaf, 0xfeb0], // ARABIC LETTER ZAIN\n 0x0633: [0xfeb1, 0xfeb2, 0xfeb3, 0xfeb4], // ARABIC LETTER SEEN\n 0x0634: [0xfeb5, 0xfeb6, 0xfeb7, 0xfeb8], // ARABIC LETTER SHEEN\n 0x0635: [0xfeb9, 0xfeba, 0xfebb, 0xfebc], // ARABIC LETTER SAD\n 0x0636: [0xfebd, 0xfebe, 0xfebf, 0xfec0], // ARABIC LETTER DAD\n 0x0637: [0xfec1, 0xfec2, 0xfec3, 0xfec4], // ARABIC LETTER TAH\n 0x0638: [0xfec5, 0xfec6, 0xfec7, 0xfec8], // ARABIC LETTER ZAH\n 0x0639: [0xfec9, 0xfeca, 0xfecb, 0xfecc], // ARABIC LETTER AIN\n 0x063a: [0xfecd, 0xfece, 0xfecf, 0xfed0], // ARABIC LETTER GHAIN\n 0x0641: [0xfed1, 0xfed2, 0xfed3, 0xfed4], // ARABIC LETTER FEH\n 0x0642: [0xfed5, 0xfed6, 0xfed7, 0xfed8], // ARABIC LETTER QAF\n 0x0643: [0xfed9, 0xfeda, 0xfedb, 0xfedc], // ARABIC LETTER KAF\n 0x0644: [0xfedd, 0xfede, 0xfedf, 0xfee0], // ARABIC LETTER LAM\n 0x0645: [0xfee1, 0xfee2, 0xfee3, 0xfee4], // ARABIC LETTER MEEM\n 0x0646: [0xfee5, 0xfee6, 0xfee7, 0xfee8], // ARABIC LETTER NOON\n 0x0647: [0xfee9, 0xfeea, 0xfeeb, 0xfeec], // ARABIC LETTER HEH\n 0x0648: [0xfeed, 0xfeee], // ARABIC LETTER WAW\n 0x0649: [0xfeef, 0xfef0, 64488, 64489], // ARABIC LETTER ALEF MAKSURA\n 0x064a: [0xfef1, 0xfef2, 0xfef3, 0xfef4], // ARABIC LETTER YEH\n 0x0671: [0xfb50, 0xfb51], // ARABIC LETTER ALEF WASLA\n 0x0677: [0xfbdd], // ARABIC LETTER U WITH HAMZA ABOVE\n 0x0679: [0xfb66, 0xfb67, 0xfb68, 0xfb69], // ARABIC LETTER TTEH\n 0x067a: [0xfb5e, 0xfb5f, 0xfb60, 0xfb61], // ARABIC LETTER TTEHEH\n 0x067b: [0xfb52, 0xfb53, 0xfb54, 0xfb55], // ARABIC LETTER BEEH\n 0x067e: [0xfb56, 0xfb57, 0xfb58, 0xfb59], // ARABIC LETTER PEH\n 0x067f: [0xfb62, 0xfb63, 0xfb64, 0xfb65], // ARABIC LETTER TEHEH\n 0x0680: [0xfb5a, 0xfb5b, 0xfb5c, 0xfb5d], // ARABIC LETTER BEHEH\n 0x0683: [0xfb76, 0xfb77, 0xfb78, 0xfb79], // ARABIC LETTER NYEH\n 0x0684: [0xfb72, 0xfb73, 0xfb74, 0xfb75], // ARABIC LETTER DYEH\n 0x0686: [0xfb7a, 0xfb7b, 0xfb7c, 0xfb7d], // ARABIC LETTER TCHEH\n 0x0687: [0xfb7e, 0xfb7f, 0xfb80, 0xfb81], // ARABIC LETTER TCHEHEH\n 0x0688: [0xfb88, 0xfb89], // ARABIC LETTER DDAL\n 0x068c: [0xfb84, 0xfb85], // ARABIC LETTER DAHAL\n 0x068d: [0xfb82, 0xfb83], // ARABIC LETTER DDAHAL\n 0x068e: [0xfb86, 0xfb87], // ARABIC LETTER DUL\n 0x0691: [0xfb8c, 0xfb8d], // ARABIC LETTER RREH\n 0x0698: [0xfb8a, 0xfb8b], // ARABIC LETTER JEH\n 0x06a4: [0xfb6a, 0xfb6b, 0xfb6c, 0xfb6d], // ARABIC LETTER VEH\n 0x06a6: [0xfb6e, 0xfb6f, 0xfb70, 0xfb71], // ARABIC LETTER PEHEH\n 0x06a9: [0xfb8e, 0xfb8f, 0xfb90, 0xfb91], // ARABIC LETTER KEHEH\n 0x06ad: [0xfbd3, 0xfbd4, 0xfbd5, 0xfbd6], // ARABIC LETTER NG\n 0x06af: [0xfb92, 0xfb93, 0xfb94, 0xfb95], // ARABIC LETTER GAF\n 0x06b1: [0xfb9a, 0xfb9b, 0xfb9c, 0xfb9d], // ARABIC LETTER NGOEH\n 0x06b3: [0xfb96, 0xfb97, 0xfb98, 0xfb99], // ARABIC LETTER GUEH\n 0x06ba: [0xfb9e, 0xfb9f], // ARABIC LETTER NOON GHUNNA\n 0x06bb: [0xfba0, 0xfba1, 0xfba2, 0xfba3], // ARABIC LETTER RNOON\n 0x06be: [0xfbaa, 0xfbab, 0xfbac, 0xfbad], // ARABIC LETTER HEH DOACHASHMEE\n 0x06c0: [0xfba4, 0xfba5], // ARABIC LETTER HEH WITH YEH ABOVE\n 0x06c1: [0xfba6, 0xfba7, 0xfba8, 0xfba9], // ARABIC LETTER HEH GOAL\n 0x06c5: [0xfbe0, 0xfbe1], // ARABIC LETTER KIRGHIZ OE\n 0x06c6: [0xfbd9, 0xfbda], // ARABIC LETTER OE\n 0x06c7: [0xfbd7, 0xfbd8], // ARABIC LETTER U\n 0x06c8: [0xfbdb, 0xfbdc], // ARABIC LETTER YU\n 0x06c9: [0xfbe2, 0xfbe3], // ARABIC LETTER KIRGHIZ YU\n 0x06cb: [0xfbde, 0xfbdf], // ARABIC LETTER VE\n 0x06cc: [0xfbfc, 0xfbfd, 0xfbfe, 0xfbff], // ARABIC LETTER FARSI YEH\n 0x06d0: [0xfbe4, 0xfbe5, 0xfbe6, 0xfbe7], //ARABIC LETTER E\n 0x06d2: [0xfbae, 0xfbaf], // ARABIC LETTER YEH BARREE\n 0x06d3: [0xfbb0, 0xfbb1] // ARABIC LETTER YEH BARREE WITH HAMZA ABOVE\n };\n\n /*\n var ligaturesSubstitutionA = {\n 0xFBEA: []// ARABIC LIGATURE YEH WITH HAMZA ABOVE WITH ALEF ISOLATED FORM\n };\n */\n\n var ligatures = {\n 0xfedf: {\n 0xfe82: 0xfef5, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM\n 0xfe84: 0xfef7, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM\n 0xfe88: 0xfef9, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM\n 0xfe8e: 0xfefb // ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM\n },\n 0xfee0: {\n 0xfe82: 0xfef6, // ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE FINAL FORM\n 0xfe84: 0xfef8, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE FINAL FORM\n 0xfe88: 0xfefa, // ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW FINAL FORM\n 0xfe8e: 0xfefc // ARABIC LIGATURE LAM WITH ALEF FINAL FORM\n },\n 0xfe8d: { 0xfedf: { 0xfee0: { 0xfeea: 0xfdf2 } } }, // ALLAH\n 0x0651: {\n 0x064c: 0xfc5e, // Shadda + Dammatan\n 0x064d: 0xfc5f, // Shadda + Kasratan\n 0x064e: 0xfc60, // Shadda + Fatha\n 0x064f: 0xfc61, // Shadda + Damma\n 0x0650: 0xfc62 // Shadda + Kasra\n }\n };\n\n var arabic_diacritics = {\n 1612: 64606, // Shadda + Dammatan\n 1613: 64607, // Shadda + Kasratan\n 1614: 64608, // Shadda + Fatha\n 1615: 64609, // Shadda + Damma\n 1616: 64610 // Shadda + Kasra\n };\n\n var alfletter = [1570, 1571, 1573, 1575];\n\n var noChangeInForm = -1;\n var isolatedForm = 0;\n var finalForm = 1;\n var initialForm = 2;\n var medialForm = 3;\n\n jsPDFAPI.__arabicParser__ = {};\n\n //private\n var isInArabicSubstitutionA = (jsPDFAPI.__arabicParser__.isInArabicSubstitutionA = function(\n letter\n ) {\n return typeof arabicSubstitionA[letter.charCodeAt(0)] !== \"undefined\";\n });\n\n var isArabicLetter = (jsPDFAPI.__arabicParser__.isArabicLetter = function(\n letter\n ) {\n return (\n typeof letter === \"string\" &&\n /^[\\u0600-\\u06FF\\u0750-\\u077F\\u08A0-\\u08FF\\uFB50-\\uFDFF\\uFE70-\\uFEFF]+$/.test(\n letter\n )\n );\n });\n\n var isArabicEndLetter = (jsPDFAPI.__arabicParser__.isArabicEndLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length <= 2\n );\n });\n\n var isArabicAlfLetter = (jsPDFAPI.__arabicParser__.isArabicAlfLetter = function(\n letter\n ) {\n return (\n isArabicLetter(letter) && alfletter.indexOf(letter.charCodeAt(0)) >= 0\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasIsolatedForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 1\n );\n };\n\n var arabicLetterHasFinalForm = (jsPDFAPI.__arabicParser__.arabicLetterHasFinalForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 2\n );\n });\n\n jsPDFAPI.__arabicParser__.arabicLetterHasInitialForm = function(letter) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length >= 3\n );\n };\n\n var arabicLetterHasMedialForm = (jsPDFAPI.__arabicParser__.arabicLetterHasMedialForm = function(\n letter\n ) {\n return (\n isArabicLetter(letter) &&\n isInArabicSubstitutionA(letter) &&\n arabicSubstitionA[letter.charCodeAt(0)].length == 4\n );\n });\n\n var resolveLigatures = (jsPDFAPI.__arabicParser__.resolveLigatures = function(\n letters\n ) {\n var i = 0;\n var tmpLigatures = ligatures;\n var result = \"\";\n var effectedLetters = 0;\n\n for (i = 0; i < letters.length; i += 1) {\n if (typeof tmpLigatures[letters.charCodeAt(i)] !== \"undefined\") {\n effectedLetters++;\n tmpLigatures = tmpLigatures[letters.charCodeAt(i)];\n\n if (typeof tmpLigatures === \"number\") {\n result += String.fromCharCode(tmpLigatures);\n tmpLigatures = ligatures;\n effectedLetters = 0;\n }\n if (i === letters.length - 1) {\n tmpLigatures = ligatures;\n result += letters.charAt(i - (effectedLetters - 1));\n i = i - (effectedLetters - 1);\n effectedLetters = 0;\n }\n } else {\n tmpLigatures = ligatures;\n result += letters.charAt(i - effectedLetters);\n i = i - effectedLetters;\n effectedLetters = 0;\n }\n }\n\n return result;\n });\n\n jsPDFAPI.__arabicParser__.isArabicDiacritic = function(letter) {\n return (\n letter !== undefined &&\n arabic_diacritics[letter.charCodeAt(0)] !== undefined\n );\n };\n\n var getCorrectForm = (jsPDFAPI.__arabicParser__.getCorrectForm = function(\n currentChar,\n beforeChar,\n nextChar\n ) {\n if (!isArabicLetter(currentChar)) {\n return -1;\n }\n\n if (isInArabicSubstitutionA(currentChar) === false) {\n return noChangeInForm;\n }\n if (\n !arabicLetterHasFinalForm(currentChar) ||\n (!isArabicLetter(beforeChar) && !isArabicLetter(nextChar)) ||\n (!isArabicLetter(nextChar) && isArabicEndLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && !isArabicLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicAlfLetter(beforeChar)) ||\n (isArabicEndLetter(currentChar) && isArabicEndLetter(beforeChar))\n ) {\n return isolatedForm;\n }\n\n if (\n arabicLetterHasMedialForm(currentChar) &&\n isArabicLetter(beforeChar) &&\n !isArabicEndLetter(beforeChar) &&\n isArabicLetter(nextChar) &&\n arabicLetterHasFinalForm(nextChar)\n ) {\n return medialForm;\n }\n\n if (isArabicEndLetter(currentChar) || !isArabicLetter(nextChar)) {\n return finalForm;\n }\n return initialForm;\n });\n\n /**\n * @name processArabic\n * @function\n * @param {string} text\n * @returns {string}\n */\n var parseArabic = function(text) {\n text = text || \"\";\n\n var result = \"\";\n var i = 0;\n var j = 0;\n var position = 0;\n var currentLetter = \"\";\n var prevLetter = \"\";\n var nextLetter = \"\";\n\n var words = text.split(\"\\\\s+\");\n var newWords = [];\n for (i = 0; i < words.length; i += 1) {\n newWords.push(\"\");\n for (j = 0; j < words[i].length; j += 1) {\n currentLetter = words[i][j];\n prevLetter = words[i][j - 1];\n nextLetter = words[i][j + 1];\n if (isArabicLetter(currentLetter)) {\n position = getCorrectForm(currentLetter, prevLetter, nextLetter);\n if (position !== -1) {\n newWords[i] += String.fromCharCode(\n arabicSubstitionA[currentLetter.charCodeAt(0)][position]\n );\n } else {\n newWords[i] += currentLetter;\n }\n } else {\n newWords[i] += currentLetter;\n }\n }\n\n newWords[i] = resolveLigatures(newWords[i]);\n }\n result = newWords.join(\" \");\n\n return result;\n };\n\n var processArabic = (jsPDFAPI.__arabicParser__.processArabic = jsPDFAPI.processArabic = function() {\n var text =\n typeof arguments[0] === \"string\" ? arguments[0] : arguments[0].text;\n var tmpText = [];\n var result;\n\n if (Array.isArray(text)) {\n var i = 0;\n tmpText = [];\n for (i = 0; i < text.length; i += 1) {\n if (Array.isArray(text[i])) {\n tmpText.push([parseArabic(text[i][0]), text[i][1], text[i][2]]);\n } else {\n tmpText.push([parseArabic(text[i])]);\n }\n }\n result = tmpText;\n } else {\n result = parseArabic(text);\n }\n if (typeof arguments[0] === \"string\") {\n return result;\n } else {\n arguments[0].text = result;\n return arguments[0];\n }\n });\n\n jsPDFAPI.events.push([\"preProcessText\", processArabic]);\n})(jsPDF.API);\n","/** @license\n * jsPDF Autoprint Plugin\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name autoprint\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * Makes the PDF automatically open the print-Dialog when opened in a PDF-viewer.\n *\n * @name autoPrint\n * @function\n * @param {Object} options (optional) Set the attribute variant to 'non-conform' (default) or 'javascript' to activate different methods of automatic printing when opening in a PDF-viewer .\n * @returns {jsPDF}\n * @example\n * var doc = new jsPDF();\n * doc.text(10, 10, 'This is a test');\n * doc.autoPrint({variant: 'non-conform'});\n * doc.save('autoprint.pdf');\n */\n jsPDFAPI.autoPrint = function(options) {\n \"use strict\";\n var refAutoPrintTag;\n options = options || {};\n options.variant = options.variant || \"non-conform\";\n\n switch (options.variant) {\n case \"javascript\":\n //https://github.com/Rob--W/pdf.js/commit/c676ecb5a0f54677b9f3340c3ef2cf42225453bb\n this.addJS(\"print({});\");\n break;\n case \"non-conform\":\n default:\n this.internal.events.subscribe(\"postPutResources\", function() {\n refAutoPrintTag = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /Named\");\n this.internal.out(\"/Type /Action\");\n this.internal.out(\"/N /Print\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n\n this.internal.events.subscribe(\"putCatalog\", function() {\n this.internal.out(\"/OpenAction \" + refAutoPrintTag + \" 0 R\");\n });\n break;\n }\n return this;\n };\n})(jsPDF.API);\n","/**\n * @license\n * Copyright (c) 2014 Steven Spungin (TwelveTone LLC) steven@twelvetone.tv\n *\n * Licensed under the MIT License.\n * http://opensource.org/licenses/mit-license\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF Canvas PlugIn\n * This plugin mimics the HTML5 Canvas\n *\n * The goal is to provide a way for current canvas users to print directly to a PDF.\n * @name canvas\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n /**\n * @class Canvas\n * @classdesc A Canvas Wrapper for jsPDF\n */\n var Canvas = function() {\n var jsPdfInstance = undefined;\n Object.defineProperty(this, \"pdf\", {\n get: function() {\n return jsPdfInstance;\n },\n set: function(value) {\n jsPdfInstance = value;\n }\n });\n\n var _width = 150;\n /**\n * The height property is a positive integer reflecting the height HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 150 is used.\n * This is one of the two properties, the other being width, that controls the size of the canvas.\n *\n * @name width\n */\n Object.defineProperty(this, \"width\", {\n get: function() {\n return _width;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _width = 150;\n } else {\n _width = value;\n }\n if (this.getContext(\"2d\").pageWrapXEnabled) {\n this.getContext(\"2d\").pageWrapX = _width + 1;\n }\n }\n });\n\n var _height = 300;\n /**\n * The width property is a positive integer reflecting the width HTML attribute of the element interpreted in CSS pixels. When the attribute is not specified, or if it is set to an invalid value, like a negative, the default value of 300 is used.\n * This is one of the two properties, the other being height, that controls the size of the canvas.\n *\n * @name height\n */\n Object.defineProperty(this, \"height\", {\n get: function() {\n return _height;\n },\n set: function(value) {\n if (isNaN(value) || Number.isInteger(value) === false || value < 0) {\n _height = 300;\n } else {\n _height = value;\n }\n if (this.getContext(\"2d\").pageWrapYEnabled) {\n this.getContext(\"2d\").pageWrapY = _height + 1;\n }\n }\n });\n\n var _childNodes = [];\n Object.defineProperty(this, \"childNodes\", {\n get: function() {\n return _childNodes;\n },\n set: function(value) {\n _childNodes = value;\n }\n });\n\n var _style = {};\n Object.defineProperty(this, \"style\", {\n get: function() {\n return _style;\n },\n set: function(value) {\n _style = value;\n }\n });\n\n Object.defineProperty(this, \"parentNode\", {});\n };\n\n /**\n * The getContext() method returns a drawing context on the canvas, or null if the context identifier is not supported.\n *\n * @name getContext\n * @function\n * @param {string} contextType Is a String containing the context identifier defining the drawing context associated to the canvas. Possible value is \"2d\", leading to the creation of a Context2D object representing a two-dimensional rendering context.\n * @param {object} contextAttributes\n */\n Canvas.prototype.getContext = function(contextType, contextAttributes) {\n contextType = contextType || \"2d\";\n var key;\n\n if (contextType !== \"2d\") {\n return null;\n }\n for (key in contextAttributes) {\n if (this.pdf.context2d.hasOwnProperty(key)) {\n this.pdf.context2d[key] = contextAttributes[key];\n }\n }\n this.pdf.context2d._canvas = this;\n return this.pdf.context2d;\n };\n\n /**\n * The toDataURL() method is just a stub to throw an error if accidently called.\n *\n * @name toDataURL\n * @function\n */\n Canvas.prototype.toDataURL = function() {\n throw new Error(\"toDataURL is not implemented.\");\n };\n\n jsPDFAPI.events.push([\n \"initialized\",\n function() {\n this.canvas = new Canvas();\n this.canvas.pdf = this;\n }\n ]);\n\n return this;\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n * 2013 Eduardo Menezes de Morais, eduardo.morais@usp.br\n * 2013 Lee Driscoll, https://github.com/lsdriscoll\n * 2014 Juan Pablo Gaviria, https://github.com/juanpgaviria\n * 2014 James Hall, james@parall.ax\n * 2014 Diego Casorran, https://github.com/diegocr\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * @name cell\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n\n var NO_MARGINS = { left: 0, top: 0, bottom: 0, right: 0 };\n\n var px2pt = (0.264583 * 72) / 25.4;\n var printingHeaderRow = false;\n\n var _initialize = function() {\n if (typeof this.internal.__cell__ === \"undefined\") {\n this.internal.__cell__ = {};\n this.internal.__cell__.padding = 3;\n this.internal.__cell__.headerFunction = undefined;\n this.internal.__cell__.margins = Object.assign({}, NO_MARGINS);\n this.internal.__cell__.margins.width = this.getPageWidth();\n _reset.call(this);\n }\n };\n\n var _reset = function() {\n this.internal.__cell__.lastCell = new Cell();\n this.internal.__cell__.pages = 1;\n };\n\n var Cell = function() {\n var _x = arguments[0];\n Object.defineProperty(this, \"x\", {\n enumerable: true,\n get: function() {\n return _x;\n },\n set: function(value) {\n _x = value;\n }\n });\n var _y = arguments[1];\n Object.defineProperty(this, \"y\", {\n enumerable: true,\n get: function() {\n return _y;\n },\n set: function(value) {\n _y = value;\n }\n });\n var _width = arguments[2];\n Object.defineProperty(this, \"width\", {\n enumerable: true,\n get: function() {\n return _width;\n },\n set: function(value) {\n _width = value;\n }\n });\n var _height = arguments[3];\n Object.defineProperty(this, \"height\", {\n enumerable: true,\n get: function() {\n return _height;\n },\n set: function(value) {\n _height = value;\n }\n });\n var _text = arguments[4];\n Object.defineProperty(this, \"text\", {\n enumerable: true,\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = value;\n }\n });\n var _lineNumber = arguments[5];\n Object.defineProperty(this, \"lineNumber\", {\n enumerable: true,\n get: function() {\n return _lineNumber;\n },\n set: function(value) {\n _lineNumber = value;\n }\n });\n var _align = arguments[6];\n Object.defineProperty(this, \"align\", {\n enumerable: true,\n get: function() {\n return _align;\n },\n set: function(value) {\n _align = value;\n }\n });\n\n return this;\n };\n\n Cell.prototype.clone = function() {\n return new Cell(\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n );\n };\n\n Cell.prototype.toArray = function() {\n return [\n this.x,\n this.y,\n this.width,\n this.height,\n this.text,\n this.lineNumber,\n this.align\n ];\n };\n\n /**\n * @name setHeaderFunction\n * @function\n * @param {function} func\n */\n jsPDFAPI.setHeaderFunction = function(func) {\n _initialize.call(this);\n this.internal.__cell__.headerFunction =\n typeof func === \"function\" ? func : undefined;\n return this;\n };\n\n /**\n * @name getTextDimensions\n * @function\n * @param {string} txt\n * @returns {Object} dimensions\n */\n jsPDFAPI.getTextDimensions = function(text, options) {\n _initialize.call(this);\n options = options || {};\n var fontSize = options.fontSize || this.getFontSize();\n var font = options.font || this.getFont();\n var scaleFactor = options.scaleFactor || this.internal.scaleFactor;\n var width = 0;\n var amountOfLines = 0;\n var height = 0;\n var tempWidth = 0;\n var scope = this;\n\n if (!Array.isArray(text) && typeof text !== \"string\") {\n if (typeof text === \"number\") {\n text = String(text);\n } else {\n throw new Error(\n \"getTextDimensions expects text-parameter to be of type String or type Number or an Array of Strings.\"\n );\n }\n }\n\n const maxWidth = options.maxWidth;\n if (maxWidth > 0) {\n if (typeof text === \"string\") {\n text = this.splitTextToSize(text, maxWidth);\n } else if (Object.prototype.toString.call(text) === \"[object Array]\") {\n text = text.reduce(function(acc, textLine) {\n return acc.concat(scope.splitTextToSize(textLine, maxWidth));\n }, []);\n }\n } else {\n // Without the else clause, it will not work if you do not pass along maxWidth\n text = Array.isArray(text) ? text : [text];\n }\n\n for (var i = 0; i < text.length; i++) {\n tempWidth = this.getStringUnitWidth(text[i], { font: font }) * fontSize;\n if (width < tempWidth) {\n width = tempWidth;\n }\n }\n\n if (width !== 0) {\n amountOfLines = text.length;\n }\n\n width = width / scaleFactor;\n height = Math.max(\n (amountOfLines * fontSize * this.getLineHeightFactor() -\n fontSize * (this.getLineHeightFactor() - 1)) /\n scaleFactor,\n 0\n );\n return { w: width, h: height };\n };\n\n /**\n * @name cellAddPage\n * @function\n */\n jsPDFAPI.cellAddPage = function() {\n _initialize.call(this);\n\n this.addPage();\n\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n this.internal.__cell__.lastCell = new Cell(\n margins.left,\n margins.top,\n undefined,\n undefined\n );\n this.internal.__cell__.pages += 1;\n\n return this;\n };\n\n /**\n * @name cell\n * @function\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {string} text\n * @param {number} lineNumber lineNumber\n * @param {string} align\n * @return {jsPDF} jsPDF-instance\n */\n var cell = (jsPDFAPI.cell = function() {\n var currentCell;\n\n if (arguments[0] instanceof Cell) {\n currentCell = arguments[0];\n } else {\n currentCell = new Cell(\n arguments[0],\n arguments[1],\n arguments[2],\n arguments[3],\n arguments[4],\n arguments[5]\n );\n }\n _initialize.call(this);\n var lastCell = this.internal.__cell__.lastCell;\n var padding = this.internal.__cell__.padding;\n var margins = this.internal.__cell__.margins || NO_MARGINS;\n var tableHeaderRow = this.internal.__cell__.tableHeaderRow;\n var printHeaders = this.internal.__cell__.printHeaders;\n // If this is not the first cell, we must change its position\n if (typeof lastCell.lineNumber !== \"undefined\") {\n if (lastCell.lineNumber === currentCell.lineNumber) {\n //Same line\n currentCell.x = (lastCell.x || 0) + (lastCell.width || 0);\n currentCell.y = lastCell.y || 0;\n } else {\n //New line\n if (\n lastCell.y + lastCell.height + currentCell.height + margins.bottom >\n this.getPageHeight()\n ) {\n this.cellAddPage();\n currentCell.y = margins.top;\n if (printHeaders && tableHeaderRow) {\n this.printHeaderRow(currentCell.lineNumber, true);\n currentCell.y += tableHeaderRow[0].height;\n }\n } else {\n currentCell.y = lastCell.y + lastCell.height || currentCell.y;\n }\n }\n }\n\n if (typeof currentCell.text[0] !== \"undefined\") {\n this.rect(\n currentCell.x,\n currentCell.y,\n currentCell.width,\n currentCell.height,\n printingHeaderRow === true ? \"FD\" : undefined\n );\n if (currentCell.align === \"right\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width - padding,\n currentCell.y + padding,\n { align: \"right\", baseline: \"top\" }\n );\n } else if (currentCell.align === \"center\") {\n this.text(\n currentCell.text,\n currentCell.x + currentCell.width / 2,\n currentCell.y + padding,\n {\n align: \"center\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n } else {\n this.text(\n currentCell.text,\n currentCell.x + padding,\n currentCell.y + padding,\n {\n align: \"left\",\n baseline: \"top\",\n maxWidth: currentCell.width - padding - padding\n }\n );\n }\n }\n this.internal.__cell__.lastCell = currentCell;\n return this;\n });\n\n /**\n * Create a table from a set of data.\n * @name table\n * @function\n * @param {Integer} [x] : left-position for top-left corner of table\n * @param {Integer} [y] top-position for top-left corner of table\n * @param {Object[]} [data] An array of objects containing key-value pairs corresponding to a row of data.\n * @param {String[]} [headers] Omit or null to auto-generate headers at a performance cost\n\n * @param {Object} [config.printHeaders] True to print column headers at the top of every page\n * @param {Object} [config.autoSize] True to dynamically set the column widths to match the widest cell value\n * @param {Object} [config.margins] margin values for left, top, bottom, and width\n * @param {Object} [config.fontSize] Integer fontSize to use (optional)\n * @param {Object} [config.padding] cell-padding in pt to use (optional)\n * @param {Object} [config.headerBackgroundColor] default is #c8c8c8 (optional)\n * @param {Object} [config.headerTextColor] default is #000 (optional)\n * @param {Object} [config.rowStart] callback to handle before print each row (optional)\n * @param {Object} [config.cellStart] callback to handle before print each cell (optional)\n * @returns {jsPDF} jsPDF-instance\n */\n\n jsPDFAPI.table = function(x, y, data, headers, config) {\n _initialize.call(this);\n if (!data) {\n throw new Error(\"No data for PDF table.\");\n }\n\n config = config || {};\n\n var headerNames = [],\n headerLabels = [],\n headerAligns = [],\n i,\n columnMatrix = {},\n columnWidths = {},\n column,\n columnMinWidths = [],\n j,\n tableHeaderConfigs = [],\n //set up defaults. If a value is provided in config, defaults will be overwritten:\n autoSize = config.autoSize || false,\n printHeaders = config.printHeaders === false ? false : true,\n fontSize =\n config.css && typeof config.css[\"font-size\"] !== \"undefined\"\n ? config.css[\"font-size\"] * 16\n : config.fontSize || 12,\n margins =\n config.margins ||\n Object.assign({ width: this.getPageWidth() }, NO_MARGINS),\n padding = typeof config.padding === \"number\" ? config.padding : 3,\n headerBackgroundColor = config.headerBackgroundColor || \"#c8c8c8\",\n headerTextColor = config.headerTextColor || \"#000\";\n\n _reset.call(this);\n\n this.internal.__cell__.printHeaders = printHeaders;\n this.internal.__cell__.margins = margins;\n this.internal.__cell__.table_font_size = fontSize;\n this.internal.__cell__.padding = padding;\n this.internal.__cell__.headerBackgroundColor = headerBackgroundColor;\n this.internal.__cell__.headerTextColor = headerTextColor;\n this.setFontSize(fontSize);\n\n // Set header values\n if (headers === undefined || headers === null) {\n // No headers defined so we derive from data\n headerNames = Object.keys(data[0]);\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n } else if (Array.isArray(headers) && typeof headers[0] === \"object\") {\n headerNames = headers.map(function(header) {\n return header.name;\n });\n headerLabels = headers.map(function(header) {\n return header.prompt || header.name || \"\";\n });\n headerAligns = headers.map(function(header) {\n return header.align || \"left\";\n });\n // Split header configs into names and prompts\n for (i = 0; i < headers.length; i += 1) {\n columnWidths[headers[i].name] = headers[i].width * px2pt;\n }\n } else if (Array.isArray(headers) && typeof headers[0] === \"string\") {\n headerNames = headers;\n headerLabels = headerNames;\n headerAligns = headerNames.map(function() {\n return \"left\";\n });\n }\n\n if (\n autoSize ||\n (Array.isArray(headers) && typeof headers[0] === \"string\")\n ) {\n var headerName;\n for (i = 0; i < headerNames.length; i += 1) {\n headerName = headerNames[i];\n\n // Create a matrix of columns e.g., {column_title: [row1_Record, row2_Record]}\n\n columnMatrix[headerName] = data.map(function(rec) {\n return rec[headerName];\n });\n\n // get header width\n this.setFont(undefined, \"bold\");\n columnMinWidths.push(\n this.getTextDimensions(headerLabels[i], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n column = columnMatrix[headerName];\n\n // get cell widths\n this.setFont(undefined, \"normal\");\n for (j = 0; j < column.length; j += 1) {\n columnMinWidths.push(\n this.getTextDimensions(column[j], {\n fontSize: this.internal.__cell__.table_font_size,\n scaleFactor: this.internal.scaleFactor\n }).w\n );\n }\n\n // get final column width\n columnWidths[headerName] =\n Math.max.apply(null, columnMinWidths) + padding + padding;\n\n //have to reset\n columnMinWidths = [];\n }\n }\n\n // -- Construct the table\n\n if (printHeaders) {\n var row = {};\n for (i = 0; i < headerNames.length; i += 1) {\n row[headerNames[i]] = {};\n row[headerNames[i]].text = headerLabels[i];\n row[headerNames[i]].align = headerAligns[i];\n }\n\n var rowHeight = calculateLineHeight.call(this, row, columnWidths);\n\n // Construct the header row\n tableHeaderConfigs = headerNames.map(function(value) {\n return new Cell(\n x,\n y,\n columnWidths[value],\n rowHeight,\n row[value].text,\n undefined,\n row[value].align\n );\n });\n\n // Store the table header config\n this.setTableHeaderRow(tableHeaderConfigs);\n\n // Print the header for the start of the table\n this.printHeaderRow(1, false);\n }\n\n // Construct the data rows\n\n var align = headers.reduce(function(pv, cv) {\n pv[cv.name] = cv.align;\n return pv;\n }, {});\n for (i = 0; i < data.length; i += 1) {\n if (\"rowStart\" in config && config.rowStart instanceof Function) {\n config.rowStart(\n {\n row: i,\n data: data[i]\n },\n this\n );\n }\n var lineHeight = calculateLineHeight.call(this, data[i], columnWidths);\n\n for (j = 0; j < headerNames.length; j += 1) {\n var cellData = data[i][headerNames[j]];\n if (\"cellStart\" in config && config.cellStart instanceof Function) {\n config.cellStart(\n {\n row: i,\n col: j,\n data: cellData\n },\n this\n );\n }\n cell.call(\n this,\n new Cell(\n x,\n y,\n columnWidths[headerNames[j]],\n lineHeight,\n cellData,\n i + 2,\n align[headerNames[j]]\n )\n );\n }\n }\n this.internal.__cell__.table_x = x;\n this.internal.__cell__.table_y = y;\n return this;\n };\n\n /**\n * Calculate the height for containing the highest column\n *\n * @name calculateLineHeight\n * @function\n * @param {Object[]} model is the line of data we want to calculate the height of\n * @param {Integer[]} columnWidths is size of each column\n * @returns {number} lineHeight\n * @private\n */\n var calculateLineHeight = function calculateLineHeight(model, columnWidths) {\n var padding = this.internal.__cell__.padding;\n var fontSize = this.internal.__cell__.table_font_size;\n var scaleFactor = this.internal.scaleFactor;\n\n return Object.keys(model)\n .map(function(key) {\n var value = model[key];\n return this.splitTextToSize(\n value.hasOwnProperty(\"text\") ? value.text : value,\n columnWidths[key] - padding - padding\n );\n }, this)\n .map(function(value) {\n return (\n (this.getLineHeightFactor() * value.length * fontSize) / scaleFactor +\n padding +\n padding\n );\n }, this)\n .reduce(function(pv, cv) {\n return Math.max(pv, cv);\n }, 0);\n };\n\n /**\n * Store the config for outputting a table header\n *\n * @name setTableHeaderRow\n * @function\n * @param {Object[]} config\n * An array of cell configs that would define a header row: Each config matches the config used by jsPDFAPI.cell\n * except the lineNumber parameter is excluded\n */\n jsPDFAPI.setTableHeaderRow = function(config) {\n _initialize.call(this);\n this.internal.__cell__.tableHeaderRow = config;\n };\n\n /**\n * Output the store header row\n *\n * @name printHeaderRow\n * @function\n * @param {number} lineNumber The line number to output the header at\n * @param {boolean} new_page\n */\n jsPDFAPI.printHeaderRow = function(lineNumber, new_page) {\n _initialize.call(this);\n if (!this.internal.__cell__.tableHeaderRow) {\n throw new Error(\"Property tableHeaderRow does not exist.\");\n }\n\n var tableHeaderCell;\n\n printingHeaderRow = true;\n if (typeof this.internal.__cell__.headerFunction === \"function\") {\n var position = this.internal.__cell__.headerFunction(\n this,\n this.internal.__cell__.pages\n );\n this.internal.__cell__.lastCell = new Cell(\n position[0],\n position[1],\n position[2],\n position[3],\n undefined,\n -1\n );\n }\n this.setFont(undefined, \"bold\");\n\n var tempHeaderConf = [];\n for (var i = 0; i < this.internal.__cell__.tableHeaderRow.length; i += 1) {\n tableHeaderCell = this.internal.__cell__.tableHeaderRow[i].clone();\n if (new_page) {\n tableHeaderCell.y = this.internal.__cell__.margins.top || 0;\n tempHeaderConf.push(tableHeaderCell);\n }\n tableHeaderCell.lineNumber = lineNumber;\n var currentTextColor = this.getTextColor();\n this.setTextColor(this.internal.__cell__.headerTextColor);\n this.setFillColor(this.internal.__cell__.headerBackgroundColor);\n cell.call(this, tableHeaderCell);\n this.setTextColor(currentTextColor);\n }\n if (tempHeaderConf.length > 0) {\n this.setTableHeaderRow(tempHeaderConf);\n }\n this.setFont(undefined, \"normal\");\n printingHeaderRow = false;\n };\n})(jsPDF.API);\n","/**\n * @license\n * ====================================================================\n * Copyright (c) 2013 Youssef Beddad, youssef.beddad@gmail.com\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n * ====================================================================\n */\n\nimport { jsPDF } from \"../jspdf.js\";\n\n/**\n * jsPDF JavaScript plugin\n *\n * @name javascript\n * @module\n */\n(function(jsPDFAPI) {\n \"use strict\";\n var jsNamesObj, jsJsObj, text;\n /**\n * @name addJS\n * @function\n * @param {string} javascript The javascript to be embedded into the PDF-file.\n * @returns {jsPDF}\n */\n jsPDFAPI.addJS = function(javascript) {\n text = javascript;\n this.internal.events.subscribe(\"postPutResources\", function() {\n jsNamesObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/Names [(EmbeddedJS) \" + (jsNamesObj + 1) + \" 0 R]\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n\n jsJsObj = this.internal.newObject();\n this.internal.out(\"<<\");\n this.internal.out(\"/S /JavaScript\");\n this.internal.out(\"/JS (\" + text + \")\");\n this.internal.out(\">>\");\n this.internal.out(\"endobj\");\n });\n this.internal.events.subscribe(\"putCatalog\", function() {\n if (jsNamesObj !== undefined && jsJsObj !== undefined) {\n this.internal.out(\"/Names <>\");\n }\n });\n return this;\n };\n})(jsPDF.API);\n","/* 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","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[Môre om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n return af;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Amine Roukh: https://github.com/Amine27\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddinem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'جانفي',\n 'فيفري',\n 'مارس',\n 'أفريل',\n 'ماي',\n 'جوان',\n 'جويلية',\n 'أوت',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arDz = moment.defineLocale('ar-dz', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arDz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arKw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Libya) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var arLy = moment.defineLocale('ar-ly', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return arLy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arMa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Palestine) [ar-ps]\n//! author : Majd Al-Shihabi : https://github.com/majdal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arPs = moment.defineLocale('ar-ps', {\n months: 'كانون الثاني_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_تشري الأوّل_تشرين الثاني_كانون الأوّل'.split(\n '_'\n ),\n monthsShort:\n 'ك٢_شباط_آذار_نيسان_أيّار_حزيران_تمّوز_آب_أيلول_ت١_ت٢_ك١'.split('_'),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .split('') // reversed since negative lookbehind not supported everywhere\n .reverse()\n .join('')\n .replace(/[١٢](?![\\u062a\\u0643])/g, function (match) {\n return numberMap[match];\n })\n .split('')\n .reverse()\n .join('')\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arPs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n };\n\n var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return arSa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n monthsShort:\n 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(\n '_'\n ),\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[اليوم على الساعة] LT',\n nextDay: '[غدا على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'ثوان',\n ss: '%d ثانية',\n m: 'دقيقة',\n mm: '%d دقائق',\n h: 'ساعة',\n hh: '%d ساعات',\n d: 'يوم',\n dd: '%d أيام',\n M: 'شهر',\n MM: '%d أشهر',\n y: 'سنة',\n yy: '%d سنوات',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return arTn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من ثانية',\n 'ثانية واحدة',\n ['ثانيتان', 'ثانيتين'],\n '%d ثوان',\n '%d ثانية',\n '%d ثانية',\n ],\n m: [\n 'أقل من دقيقة',\n 'دقيقة واحدة',\n ['دقيقتان', 'دقيقتين'],\n '%d دقائق',\n '%d دقيقة',\n '%d دقيقة',\n ],\n h: [\n 'أقل من ساعة',\n 'ساعة واحدة',\n ['ساعتان', 'ساعتين'],\n '%d ساعات',\n '%d ساعة',\n '%d ساعة',\n ],\n d: [\n 'أقل من يوم',\n 'يوم واحد',\n ['يومان', 'يومين'],\n '%d أيام',\n '%d يومًا',\n '%d يوم',\n ],\n M: [\n 'أقل من شهر',\n 'شهر واحد',\n ['شهران', 'شهرين'],\n '%d أشهر',\n '%d شهرا',\n '%d شهر',\n ],\n y: [\n 'أقل من عام',\n 'عام واحد',\n ['عامان', 'عامين'],\n '%d أعوام',\n '%d عامًا',\n '%d عام',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months = [\n 'يناير',\n 'فبراير',\n 'مارس',\n 'أبريل',\n 'مايو',\n 'يونيو',\n 'يوليو',\n 'أغسطس',\n 'سبتمبر',\n 'أكتوبر',\n 'نوفمبر',\n 'ديسمبر',\n ];\n\n var ar = moment.defineLocale('ar', {\n months: months,\n monthsShort: months,\n weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),\n weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),\n weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ص|م/,\n isPM: function (input) {\n return 'م' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'م';\n }\n },\n calendar: {\n sameDay: '[اليوم عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ar;\n\n})));\n","//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays:\n 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keçən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neçə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return az;\n\n})));\n","//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',\n hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',\n dd: 'дзень_дні_дзён',\n MM: 'месяц_месяцы_месяцаў',\n yy: 'год_гады_гадоў',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'хвіліну';\n } else if (key === 'h') {\n return withoutSuffix ? 'гадзіна' : 'гадзіну';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var be = moment.defineLocale('be', {\n months: {\n format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(\n '_'\n ),\n standalone:\n 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(\n '_'\n ),\n },\n monthsShort:\n 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(\n '_'\n ),\n standalone:\n 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(\n '_'\n ),\n isFormat: /\\[ ?[Ууў] ?(?:мінулую|наступную)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Сёння ў] LT',\n nextDay: '[Заўтра ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[У мінулы] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s таму',\n s: 'некалькі секунд',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'дзень',\n dd: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|дня|вечара/,\n isPM: function (input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return be;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Миналата] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Миналия] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'след %s',\n past: 'преди %s',\n s: 'няколко секунди',\n ss: '%d секунди',\n m: 'минута',\n mm: '%d минути',\n h: 'час',\n hh: '%d часа',\n d: 'ден',\n dd: '%d дена',\n w: 'седмица',\n ww: '%d седмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bambara [bm]\n//! author : Estelle Comment : https://github.com/estellecomment\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var bm = moment.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return bm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali (Bangladesh) [bn-bd]\n//! author : Asraf Hossain Patoary : https://github.com/ashwoolford\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bnBd = moment.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'সন্ধ্যা') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'সন্ধ্যা';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bnBd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '১',\n 2: '২',\n 3: '৩',\n 4: '৪',\n 5: '৫',\n 6: '৬',\n 7: '৭',\n 8: '৮',\n 9: '৯',\n 0: '০',\n },\n numberMap = {\n '১': '1',\n '২': '2',\n '৩': '3',\n '৪': '4',\n '৫': '5',\n '৬': '6',\n '৭': '7',\n '৮': '8',\n '৯': '9',\n '০': '0',\n };\n\n var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(\n '_'\n ),\n monthsShort:\n 'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[আজ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'কয়েক সেকেন্ড',\n ss: '%d সেকেন্ড',\n m: 'এক মিনিট',\n mm: '%d মিনিট',\n h: 'এক ঘন্টা',\n hh: '%d ঘন্টা',\n d: 'এক দিন',\n dd: '%d দিন',\n M: 'এক মাস',\n MM: '%d মাস',\n y: 'এক বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '༡',\n 2: '༢',\n 3: '༣',\n 4: '༤',\n 5: '༥',\n 6: '༦',\n 7: '༧',\n 8: '༨',\n 9: '༩',\n 0: '༠',\n },\n numberMap = {\n '༡': '1',\n '༢': '2',\n '༣': '3',\n '༤': '4',\n '༥': '5',\n '༦': '6',\n '༧': '7',\n '༨': '8',\n '༩': '9',\n '༠': '0',\n };\n\n var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(\n '_'\n ),\n monthsShort:\n 'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(\n '_'\n ),\n monthsShortRegex: /^(ཟླ་\\d{1,2})/,\n monthsParseExact: true,\n weekdays:\n 'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(\n '_'\n ),\n weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ལམ་སང',\n ss: '%d སྐར་ཆ།',\n m: 'སྐར་མ་གཅིག',\n mm: '%d སྐར་མ',\n h: 'ཆུ་ཚོད་གཅིག',\n hh: '%d ཆུ་ཚོད',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ཟླ་བ་གཅིག',\n MM: '%d ཟླ་བ',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'མཚན་མོ' && hour >= 4) ||\n (meridiem === 'ཉིན་གུང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'མཚན་མོ';\n } else if (hour < 10) {\n return 'ཞོགས་ཀས';\n } else if (hour < 17) {\n return 'ཉིན་གུང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'མཚན་མོ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return bo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex =\n /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex =\n /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n var br = moment.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(añ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n return br;\n\n})));\n","//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! author : Rasid Redzic : https://github.com/rasidre\n//! based on (hr) translation by Bojan Marković\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 'm':\n return withoutSuffix\n ? 'jedna minuta'\n : isFuture\n ? 'jednu minutu'\n : 'jedne minute';\n }\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jedan sat';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var bs = moment.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: processRelativeTime,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return bs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone:\n 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ca;\n\n})));\n","//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = {\n standalone:\n 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(\n '_'\n ),\n format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(\n '_'\n ),\n isFormat: /DD?[o.]?(\\[[^\\[\\]]*\\]|\\s)+MMMM/,\n },\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),\n monthsParse = [\n /^led/i,\n /^úno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zář/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex =\n /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;\n\n function plural(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dny' : 'dní');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'měsíce' : 'měsíců');\n } else {\n return result + 'měsíci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n var cs = moment.defineLocale('cs', {\n months: months,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex:\n /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex:\n /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zítra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(\n '_'\n ),\n monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),\n weekdays:\n 'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(\n '_'\n ),\n weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),\n weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',\n LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',\n },\n calendar: {\n sameDay: '[Паян] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Иртнӗ] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s каялла',\n s: 'пӗр-ик ҫеккунт',\n ss: '%d ҫеккунт',\n m: 'пӗр минут',\n mm: '%d минут',\n h: 'пӗр сехет',\n hh: '%d сехет',\n d: 'пӗр кун',\n dd: '%d кун',\n M: 'пӗр уйӑх',\n MM: '%d уйӑх',\n y: 'пӗр ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-мӗш/,\n ordinal: '%d-мӗш',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return cv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays:\n 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn ôl',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return cy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'på dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'få sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en måned',\n MM: '%d måneder',\n y: 'et år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return da;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deAt = moment.defineLocale('de-at', {\n months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deAt;\n\n})));\n","//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var deCh = moment.defineLocale('de-ch', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return deCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var de = moment.defineLocale('de', {\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays:\n 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return de;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'ޖެނުއަރީ',\n 'ފެބްރުއަރީ',\n 'މާރިޗު',\n 'އޭޕްރީލު',\n 'މޭ',\n 'ޖޫން',\n 'ޖުލައި',\n 'އޯގަސްޓު',\n 'ސެޕްޓެމްބަރު',\n 'އޮކްޓޯބަރު',\n 'ނޮވެމްބަރު',\n 'ޑިސެމްބަރު',\n ],\n weekdays = [\n 'އާދިއްތަ',\n 'ހޯމަ',\n 'އަންގާރަ',\n 'ބުދަ',\n 'ބުރާސްފަތި',\n 'ހުކުރު',\n 'ހޮނިހިރު',\n ];\n\n var dv = moment.defineLocale('dv', {\n months: months,\n monthsShort: months,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|މފ/,\n isPM: function (input) {\n return 'މފ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'މފ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ފާއިތުވި] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ތެރޭގައި %s',\n past: 'ކުރިން %s',\n s: 'ސިކުންތުކޮޅެއް',\n ss: 'd% ސިކުންތު',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ގަޑިއިރެއް',\n hh: 'ގަޑިއިރު %d',\n d: 'ދުވަހެއް',\n dd: 'ދުވަސް %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'އަހަރެއް',\n yy: 'އަހަރު %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return dv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl:\n 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl:\n 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),\n weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Αύριο {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα δευτερόλεπτα',\n ss: '%d δευτερόλεπτα',\n m: 'ένα λεπτό',\n mm: '%d λεπτά',\n h: 'μία ώρα',\n hh: '%d ώρες',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας χρόνος',\n yy: '%d χρόνια',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}η/,\n ordinal: '%dη',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n return el;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enAu;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enGb;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enIe;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Israel) [en-il]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n return enIl;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (India) [en-in]\n//! author : Jatin Agrawal : https://github.com/jatinag22\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enIn = moment.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return enIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enNz;\n\n})));\n","//! moment.js locale configuration\n//! locale : English (Singapore) [en-sg]\n//! author : Matthew Castrillon-Madrigal : https://github.com/techdimension\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var enSg = moment.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return enSg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\n//! comment : Vivakvo corrected the translation by colindean and miestasmia\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[Hodiaŭ je] LT',\n nextDay: '[Morgaŭ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return esDo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (Mexico) [es-mx]\n//! author : JC Franco : https://github.com/jcfranco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esMx = moment.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return esMx;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n//! author : chrisrodz : https://github.com/chrisrodz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return esUs;\n\n})));\n","//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortDot =\n 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex =\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex:\n /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha inválida',\n });\n\n return es;\n\n})));\n","//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe päeva', 'üks päev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var et = moment.defineLocale('et', {\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort:\n 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays:\n 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pärast',\n past: '%s tagasi',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: '%d päeva',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return et;\n\n})));\n","//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort:\n 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return eu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '۱',\n 2: '۲',\n 3: '۳',\n 4: '۴',\n 5: '۵',\n 6: '۶',\n 7: '۷',\n 8: '۸',\n 9: '۹',\n 0: '۰',\n },\n numberMap = {\n '۱': '1',\n '۲': '2',\n '۳': '3',\n '۴': '4',\n '۵': '5',\n '۶': '6',\n '۷': '7',\n '۸': '8',\n '۹': '9',\n '۰': '0',\n };\n\n var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n monthsShort:\n 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(\n '_'\n ),\n weekdays:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysShort:\n 'یک\\u200cشنبه_دوشنبه_سه\\u200cشنبه_چهارشنبه_پنج\\u200cشنبه_جمعه_شنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل از ظهر|بعد از ظهر/,\n isPM: function (input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل از ظهر';\n } else {\n return 'بعد از ظهر';\n }\n },\n calendar: {\n sameDay: '[امروز ساعت] LT',\n nextDay: '[فردا ساعت] LT',\n nextWeek: 'dddd [ساعت] LT',\n lastDay: '[دیروز ساعت] LT',\n lastWeek: 'dddd [پیش] [ساعت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'در %s',\n past: '%s پیش',\n s: 'چند ثانیه',\n ss: '%d ثانیه',\n m: 'یک دقیقه',\n mm: '%d دقیقه',\n h: 'یک ساعت',\n hh: '%d ساعت',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string\n .replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return fa;\n\n})));\n","//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersPast =\n 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljän',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n var fi = moment.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort:\n 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays:\n 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Filipino [fil]\n//! author : Dan Hagman : https://github.com/hagmandan\n//! author : Matthew Co : https://github.com/matthewdeeco\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fil = moment.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fil;\n\n})));\n","//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\n//! author : Kristian Sakarisson : https://github.com/sakarisson\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays:\n 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),\n weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Í dag kl.] LT',\n nextDay: '[Í morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Í gjár kl.] LT',\n lastWeek: '[síðstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s síðani',\n s: 'fá sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tími',\n hh: '%d tímar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mánaður',\n MM: '%d mánaðir',\n y: 'eitt ár',\n yy: '%d ár',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fo;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCa = moment.defineLocale('fr-ca', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n return frCa;\n\n})));\n","//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var frCh = moment.defineLocale('fr-ch', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return frCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsStrictRegex =\n /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsShortStrictRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?)/i,\n monthsRegex =\n /(janv\\.?|févr\\.?|mars|avr\\.?|mai|juin|juil\\.?|août|sept\\.?|oct\\.?|nov\\.?|déc\\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,\n monthsParse = [\n /^janv/i,\n /^févr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^août/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^déc/i,\n ];\n\n var fr = moment.defineLocale('fr', {\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(\n '_'\n ),\n monthsShort:\n 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(\n '_'\n ),\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui à] LT',\n nextDay: '[Demain à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[Hier à] LT',\n lastWeek: 'dddd [dernier à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[ôfrûne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minút',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return fy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Irish or Irish Gaelic [ga]\n//! author : André Silva : https://github.com/askpt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Eanáir',\n 'Feabhra',\n 'Márta',\n 'Aibreán',\n 'Bealtaine',\n 'Meitheamh',\n 'Iúil',\n 'Lúnasa',\n 'Meán Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort = [\n 'Ean',\n 'Feabh',\n 'Márt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'Iúil',\n 'Lún',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays = [\n 'Dé Domhnaigh',\n 'Dé Luain',\n 'Dé Máirt',\n 'Dé Céadaoin',\n 'Déardaoin',\n 'Dé hAoine',\n 'Dé Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];\n\n var ga = moment.defineLocale('ga', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[Amárach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[Inné ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cúpla soicind',\n ss: '%d soicind',\n m: 'nóiméad',\n mm: '%d nóiméad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lá',\n dd: '%d lá',\n M: 'mí',\n MM: '%d míonna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ga;\n\n})));\n","//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am Màrt',\n 'An Giblean',\n 'An Cèitean',\n 'An t-Ògmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An Dàmhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort = [\n 'Faoi',\n 'Gear',\n 'Màrt',\n 'Gibl',\n 'Cèit',\n 'Ògmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'Dàmh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays = [\n 'Didòmhnaich',\n 'Diluain',\n 'Dimàirt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n var gd = moment.defineLocale('gd', {\n months: months,\n monthsShort: monthsShort,\n monthsParseExact: true,\n weekdays: weekdays,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-màireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dè aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mìos',\n MM: '%d mìosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort:\n 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function () {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un día',\n dd: '%d días',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return gl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Devanagari script [gom-deva]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],\n ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],\n m: ['एका मिणटान', 'एक मिनूट'],\n mm: [number + ' मिणटांनी', number + ' मिणटां'],\n h: ['एका वरान', 'एक वर'],\n hh: [number + ' वरांनी', number + ' वरां'],\n d: ['एका दिसान', 'एक दीस'],\n dd: [number + ' दिसांनी', number + ' दीस'],\n M: ['एका म्हयन्यान', 'एक म्हयनो'],\n MM: [number + ' म्हयन्यानी', number + ' म्हयने'],\n y: ['एका वर्सान', 'एक वर्स'],\n yy: [number + ' वर्सांनी', number + ' वर्सां'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomDeva = moment.defineLocale('gom-deva', {\n months: {\n standalone:\n 'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्रार_शेनवार'.split('_'),\n weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),\n weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [वाजतां]',\n LTS: 'A h:mm:ss [वाजतां]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [वाजतां]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',\n llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',\n },\n calendar: {\n sameDay: '[आयज] LT',\n nextDay: '[फाल्यां] LT',\n nextWeek: '[फुडलो] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[फाटलो] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s आदीं',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(वेर)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'वेर' only applies to day of the month\n case 'D':\n return number + 'वेर';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राती') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सकाळीं') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'सांजे') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'राती';\n } else if (hour < 12) {\n return 'सकाळीं';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'सांजे';\n } else {\n return 'राती';\n }\n },\n });\n\n return gomDeva;\n\n})));\n","//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: {\n standalone:\n 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort:\n 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n return gomLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Gujarati [gu]\n//! author : Kaushik Thanki : https://github.com/Kaushik1987\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '૧',\n 2: '૨',\n 3: '૩',\n 4: '૪',\n 5: '૫',\n 6: '૬',\n 7: '૭',\n 8: '૮',\n 9: '૯',\n 0: '૦',\n },\n numberMap = {\n '૧': '1',\n '૨': '2',\n '૩': '3',\n '૪': '4',\n '૫': '5',\n '૬': '6',\n '૭': '7',\n '૮': '8',\n '૯': '9',\n '૦': '0',\n };\n\n var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(\n '_'\n ),\n monthsShort:\n 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),\n weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm વાગ્યે',\n LTS: 'A h:mm:ss વાગ્યે',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm વાગ્યે',\n LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',\n },\n calendar: {\n sameDay: '[આજ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંડ',\n m: 'એક મિનિટ',\n mm: '%d મિનિટ',\n h: 'એક કલાક',\n hh: '%d કલાક',\n d: 'એક દિવસ',\n dd: '%d દિવસ',\n M: 'એક મહિનો',\n MM: '%d મહિનો',\n y: 'એક વર્ષ',\n yy: '%d વર્ષ',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|સાંજ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'સાંજ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'સાંજ';\n } else {\n return 'રાત';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return gu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(\n '_'\n ),\n monthsShort:\n 'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),\n weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[מחר ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[אתמול ב־]LT',\n lastWeek: '[ביום] dddd [האחרון בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: 'מספר שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return 'שעתיים';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse:\n /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return 'לפנות בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני הצהריים';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי הצהריים';\n } else {\n return 'בערב';\n }\n },\n });\n\n return he;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n },\n monthsParse = [\n /^जन/i,\n /^फ़र|फर/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सितं|सित/i,\n /^अक्टू/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^मार्च/i,\n /^अप्रै/i,\n /^मई/i,\n /^जून/i,\n /^जुल/i,\n /^अग/i,\n /^सित/i,\n /^अक्टू/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n var hi = moment.defineLocale('hi', {\n months: {\n format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(\n '_'\n ),\n standalone:\n 'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort:\n 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\n weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बजे',\n LTS: 'A h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',\n },\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex:\n /^(जनवरी|जन\\.?|फ़रवरी|फरवरी|फ़र\\.?|मार्च?|अप्रैल|अप्रै\\.?|मई?|जून?|जुलाई|जुल\\.?|अगस्त|अग\\.?|सितम्बर|सितंबर|सित\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर|नव\\.?|दिसम्बर|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex:\n /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\\.?|अक्टूबर|अक्टू\\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,\n\n monthsShortStrictRegex:\n /^(जन\\.?|फ़र\\.?|मार्च?|अप्रै\\.?|मई?|जून?|जुल\\.?|अग\\.?|सित\\.?|अक्टू\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[पिछले] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s में',\n past: '%s पहले',\n s: 'कुछ ही क्षण',\n ss: '%d सेकंड',\n m: 'एक मिनट',\n mm: '%d मिनट',\n h: 'एक घंटा',\n hh: '%d घंटे',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महीने',\n MM: '%d महीने',\n y: 'एक वर्ष',\n yy: '%d वर्ष',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सुबह|दोपहर|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सुबह') {\n return hour;\n } else if (meridiem === 'दोपहर') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सुबह';\n } else if (hour < 17) {\n return 'दोपहर';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return hi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n var hr = moment.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone:\n 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort:\n 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prošlu] [nedjelju] [u] LT';\n case 3:\n return '[prošlu] [srijedu] [u] LT';\n case 6:\n return '[prošle] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prošli] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n//! author : Peter Viszt : https://github.com/passatgt\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var weekEndings =\n 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'néhány másodperc'\n : 'néhány másodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' másodperc'\n : ' másodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[múlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n var hu = moment.defineLocale('hu', {\n months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s múlva',\n past: '%s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return hu;\n\n})));\n","//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(\n '_'\n ),\n standalone:\n 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(\n '_'\n ),\n },\n monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),\n weekdays:\n 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(\n '_'\n ),\n weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY թ.',\n LLL: 'D MMMM YYYY թ., HH:mm',\n LLLL: 'dddd, D MMMM YYYY թ., HH:mm',\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function () {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function () {\n return '[անցած] dddd [օրը ժամը] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s հետո',\n past: '%s առաջ',\n s: 'մի քանի վայրկյան',\n ss: '%d վայրկյան',\n m: 'րոպե',\n mm: '%d րոպե',\n h: 'ժամ',\n hh: '%d ժամ',\n d: 'օր',\n dd: '%d օր',\n M: 'ամիս',\n MM: '%d ամիս',\n y: 'տարի',\n yy: '%d տարի',\n },\n meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,\n isPM: function (input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'գիշերվա';\n } else if (hour < 12) {\n return 'առավոտվա';\n } else if (hour < 17) {\n return 'ցերեկվա';\n } else {\n return 'երեկոյան';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(ին|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-ին';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return hyAm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return id;\n\n})));\n","//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekúndur'\n : 'nokkrum sekúndum';\n case 'ss':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')\n );\n }\n return result + 'sekúnda';\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n case 'mm':\n if (plural(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')\n );\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n return result + 'mínútu';\n case 'hh':\n if (plural(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n return isFuture ? 'mánuð' : 'mánuði';\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n return result + (isFuture ? 'mánuð' : 'mánuði');\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\n return result + (withoutSuffix || isFuture ? 'ár' : 'ári');\n }\n }\n\n var is = moment.defineLocale('is', {\n months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays:\n 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),\n weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[í dag kl.] LT',\n nextDay: '[á morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[í gær kl.] LT',\n lastWeek: '[síðasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s síðan',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: 'klukkustund',\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return is;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian (Switzerland) [it-ch]\n//! author : xfh : https://github.com/xfh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return itCh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n//! author: Marco : https://github.com/Manfre98\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return it;\n\n})));\n","//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ja = moment.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: '㍻',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: '昭和',\n narrow: '㍼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: '㍽',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: '明治',\n narrow: '㍾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '西暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: '紀元前',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)年/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),\n weekdaysShort: '日_月_火_水_木_金_土'.split('_'),\n weekdaysMin: '日_月_火_水_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日 dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今日] LT',\n nextDay: '[明日] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[来週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[昨日] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}日/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元年' : number + '年';\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '数秒',\n ss: '%d秒',\n m: '1分',\n mm: '%d分',\n h: '1時間',\n hh: '%d時間',\n d: '1日',\n dd: '%d日',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1年',\n yy: '%d年',\n },\n });\n\n return ja;\n\n})));\n","//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return jv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/IrakliJani\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ka = moment.defineLocale('ka', {\n months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(\n '_'\n ),\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone:\n 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split(\n '_'\n ),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(\n '_'\n ),\n isFormat: /(წინა|შემდეგ)/,\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(\n /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,\n function ($0, $1, $2) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n }\n );\n },\n past: function (s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\n return s;\n },\n s: 'რამდენიმე წამი',\n ss: '%d წამი',\n m: 'წუთი',\n mm: '%d წუთი',\n h: 'საათი',\n hh: '%d საათი',\n d: 'დღე',\n dd: '%d დღე',\n M: 'თვე',\n MM: '%d თვე',\n y: 'წელი',\n yy: '%d წელი',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'მე-' + number;\n }\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n return ka;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ішінде',\n past: '%s бұрын',\n s: 'бірнеше секунд',\n ss: '%d секунд',\n m: 'бір минут',\n mm: '%d минут',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return kk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '១',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: '៥',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap = {\n '១': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n '៥': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n monthsShort:\n 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(\n '_'\n ),\n weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),\n weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ព្រឹក|ល្ងាច/,\n isPM: function (input) {\n return input === 'ល្ងាច';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ព្រឹក';\n } else {\n return 'ល្ងាច';\n }\n },\n calendar: {\n sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',\n nextDay: '[ស្អែក ម៉ោង] LT',\n nextWeek: 'dddd [ម៉ោង] LT',\n lastDay: '[ម្សិលមិញ ម៉ោង] LT',\n lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sទៀត',\n past: '%sមុន',\n s: 'ប៉ុន្មានវិនាទី',\n ss: '%d វិនាទី',\n m: 'មួយនាទី',\n mm: '%d នាទី',\n h: 'មួយម៉ោង',\n hh: '%d ម៉ោង',\n d: 'មួយថ្ងៃ',\n dd: '%d ថ្ងៃ',\n M: 'មួយខែ',\n MM: '%d ខែ',\n y: 'មួយឆ្នាំ',\n yy: '%d ឆ្នាំ',\n },\n dayOfMonthOrdinalParse: /ទី\\d{1,2}/,\n ordinal: 'ទី%d',\n preparse: function (string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return km;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '೧',\n 2: '೨',\n 3: '೩',\n 4: '೪',\n 5: '೫',\n 6: '೬',\n 7: '೭',\n 8: '೮',\n 9: '೯',\n 0: '೦',\n },\n numberMap = {\n '೧': '1',\n '೨': '2',\n '೩': '3',\n '೪': '4',\n '೫': '5',\n '೬': '6',\n '೭': '7',\n '೮': '8',\n '೯': '9',\n '೦': '0',\n };\n\n var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(\n '_'\n ),\n monthsShort:\n 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),\n weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ನಿನ್ನೆ] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ಕ್ಷಣಗಳು',\n ss: '%d ಸೆಕೆಂಡುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ಗಂಟೆ',\n hh: '%d ಗಂಟೆ',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ವರ್ಷ',\n yy: '%d ವರ್ಷ',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ರಾತ್ರಿ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {\n return hour;\n } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ಸಂಜೆ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ರಾತ್ರಿ';\n } else if (hour < 10) {\n return 'ಬೆಳಿಗ್ಗೆ';\n } else if (hour < 17) {\n return 'ಮಧ್ಯಾಹ್ನ';\n } else if (hour < 20) {\n return 'ಸಂಜೆ';\n } else {\n return 'ರಾತ್ರಿ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return kn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee \n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ko = moment.defineLocale('ko', {\n months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),\n monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(\n '_'\n ),\n weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),\n weekdaysShort: '일_월_화_수_목_금_토'.split('_'),\n weekdaysMin: '일_월_화_수_목_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY년 MMMM D일',\n LLL: 'YYYY년 MMMM D일 A h:mm',\n LLLL: 'YYYY년 MMMM D일 dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYY년 MMMM D일',\n lll: 'YYYY년 MMMM D일 A h:mm',\n llll: 'YYYY년 MMMM D일 dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: '내일 LT',\n nextWeek: 'dddd LT',\n lastDay: '어제 LT',\n lastWeek: '지난주 dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s 전',\n s: '몇 초',\n ss: '%d초',\n m: '1분',\n mm: '%d분',\n h: '한 시간',\n hh: '%d시간',\n d: '하루',\n dd: '%d일',\n M: '한 달',\n MM: '%d달',\n y: '일 년',\n yy: '%d년',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(일|월|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n case 'M':\n return number + '월';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function (token) {\n return token === '오후';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n },\n });\n\n return ko;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Kurdish [ku-kmr]\n//! authors : Mazlum Özdogan : https://github.com/mergehez\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(num, withoutSuffix, key, isFuture) {\n var format = {\n s: ['çend sanîye', 'çend sanîyeyan'],\n ss: [num + ' sanîye', num + ' sanîyeyan'],\n m: ['deqîqeyek', 'deqîqeyekê'],\n mm: [num + ' deqîqe', num + ' deqîqeyan'],\n h: ['saetek', 'saetekê'],\n hh: [num + ' saet', num + ' saetan'],\n d: ['rojek', 'rojekê'],\n dd: [num + ' roj', num + ' rojan'],\n w: ['hefteyek', 'hefteyekê'],\n ww: [num + ' hefte', num + ' hefteyan'],\n M: ['mehek', 'mehekê'],\n MM: [num + ' meh', num + ' mehan'],\n y: ['salek', 'salekê'],\n yy: [num + ' sal', num + ' salan'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n // function obliqueNumSuffix(num) {\n // if(num.includes(':'))\n // num = parseInt(num.split(':')[0]);\n // else\n // num = parseInt(num);\n // return num == 0 || num % 10 == 1 ? 'ê'\n // : (num > 10 && num % 10 == 0 ? 'î' : 'an');\n // }\n function ezafeNumSuffix(num) {\n num = '' + num;\n var l = num.substring(num.length - 1),\n ll = num.length > 1 ? num.substring(num.length - 2) : '';\n if (\n !(ll == 12 || ll == 13) &&\n (l == '2' || l == '3' || ll == '50' || l == '70' || l == '80')\n )\n return 'yê';\n return 'ê';\n }\n\n var kuKmr = moment.defineLocale('ku-kmr', {\n // According to the spelling rules defined by the work group of Weqfa Mezopotamyayê (Mesopotamia Foundation)\n // this should be: 'Kanûna Paşîn_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Çirîya Pêşîn_Çirîya Paşîn_Kanûna Pêşîn'\n // But the names below are more well known and handy\n months: 'Rêbendan_Sibat_Adar_Nîsan_Gulan_Hezîran_Tîrmeh_Tebax_Îlon_Cotmeh_Mijdar_Berfanbar'.split(\n '_'\n ),\n monthsShort: 'Rêb_Sib_Ada_Nîs_Gul_Hez_Tîr_Teb_Îlo_Cot_Mij_Ber'.split('_'),\n monthsParseExact: true,\n weekdays: 'Yekşem_Duşem_Sêşem_Çarşem_Pêncşem_În_Şemî'.split('_'),\n weekdaysShort: 'Yek_Du_Sê_Çar_Pên_În_Şem'.split('_'),\n weekdaysMin: 'Ye_Du_Sê_Ça_Pê_În_Şe'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'bn' : 'BN';\n } else {\n return isLower ? 'pn' : 'PN';\n }\n },\n meridiemParse: /bn|BN|pn|PN/,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[a] YYYY[an]',\n LLL: 'Do MMMM[a] YYYY[an] HH:mm',\n LLLL: 'dddd, Do MMMM[a] YYYY[an] HH:mm',\n ll: 'Do MMM[.] YYYY[an]',\n lll: 'Do MMM[.] YYYY[an] HH:mm',\n llll: 'ddd[.], Do MMM[.] YYYY[an] HH:mm',\n },\n calendar: {\n sameDay: '[Îro di saet] LT [de]',\n nextDay: '[Sibê di saet] LT [de]',\n nextWeek: 'dddd [di saet] LT [de]',\n lastDay: '[Duh di saet] LT [de]',\n lastWeek: 'dddd[a borî di saet] LT [de]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'di %s de',\n past: 'berî %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(?:yê|ê|\\.)/,\n ordinal: function (num, period) {\n var p = period.toLowerCase();\n if (p.includes('w') || p.includes('m')) return num + '.';\n\n return num + ezafeNumSuffix(num);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return kuKmr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '١',\n 2: '٢',\n 3: '٣',\n 4: '٤',\n 5: '٥',\n 6: '٦',\n 7: '٧',\n 8: '٨',\n 9: '٩',\n 0: '٠',\n },\n numberMap = {\n '١': '1',\n '٢': '2',\n '٣': '3',\n '٤': '4',\n '٥': '5',\n '٦': '6',\n '٧': '7',\n '٨': '8',\n '٩': '9',\n '٠': '0',\n },\n months = [\n 'کانونی دووەم',\n 'شوبات',\n 'ئازار',\n 'نیسان',\n 'ئایار',\n 'حوزەیران',\n 'تەمموز',\n 'ئاب',\n 'ئەیلوول',\n 'تشرینی یەكەم',\n 'تشرینی دووەم',\n 'كانونی یەکەم',\n ];\n\n var ku = moment.defineLocale('ku', {\n months: months,\n monthsShort: months,\n weekdays:\n 'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(\n '_'\n ),\n weekdaysShort:\n 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),\n weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /ئێواره‌|به‌یانی/,\n isPM: function (input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'به‌یانی';\n } else {\n return 'ئێواره‌';\n }\n },\n calendar: {\n sameDay: '[ئه‌مرۆ كاتژمێر] LT',\n nextDay: '[به‌یانی كاتژمێر] LT',\n nextWeek: 'dddd [كاتژمێر] LT',\n lastDay: '[دوێنێ كاتژمێر] LT',\n lastWeek: 'dddd [كاتژمێر] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'له‌ %s',\n past: '%s',\n s: 'چه‌ند چركه‌یه‌ك',\n ss: 'چركه‌ %d',\n m: 'یه‌ك خوله‌ك',\n mm: '%d خوله‌ك',\n h: 'یه‌ك كاتژمێر',\n hh: '%d كاتژمێر',\n d: 'یه‌ك ڕۆژ',\n dd: '%d ڕۆژ',\n M: 'یه‌ك مانگ',\n MM: '%d مانگ',\n y: 'یه‌ك ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return ku;\n\n})));\n","//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(\n '_'\n ),\n weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),\n weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[Кечээ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинде',\n past: '%s мурун',\n s: 'бирнече секунд',\n ss: '%d секунд',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ky;\n\n})));\n","//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n var lb = moment.defineLocale('lb', {\n months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort:\n 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[Gëschter um] LT',\n lastWeek: function () {\n // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime,\n mm: '%d Minutten',\n h: processRelativeTime,\n hh: '%d Stonnen',\n d: processRelativeTime,\n dd: '%d Deeg',\n M: processRelativeTime,\n MM: '%d Méint',\n y: processRelativeTime,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n monthsShort:\n 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,\n isPM: function (input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ຕອນເຊົ້າ';\n } else {\n return 'ຕອນແລງ';\n }\n },\n calendar: {\n sameDay: '[ມື້ນີ້ເວລາ] LT',\n nextDay: '[ມື້ອື່ນເວລາ] LT',\n nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',\n lastDay: '[ມື້ວານນີ້ເວລາ] LT',\n lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sຜ່ານມາ',\n s: 'ບໍ່ເທົ່າໃດວິນາທີ',\n ss: '%d ວິນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ຊົ່ວໂມງ',\n hh: '%d ຊົ່ວໂມງ',\n d: '1 ມື້',\n dd: '%d ມື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ທີ່)\\d{1,2}/,\n ordinal: function (number) {\n return 'ທີ່' + number;\n },\n });\n\n return lo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesį',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n var lt = moment.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone:\n 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(\n '_'\n ),\n standalone:\n 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Š'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Šiandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[Praėjusį] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieš %s',\n s: translateSeconds,\n ss: translate,\n m: translateSingular,\n mm: translate,\n h: translateSingular,\n hh: translate,\n d: translateSingular,\n dd: translate,\n M: translateSingular,\n MM: translate,\n y: translateSingular,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minūte\", \"3 minūtes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minūtes\" as in \"pēc 21 minūtes\".\n // E.g. \"3 minūtēm\" as in \"pēc 3 minūtēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n var lv = moment.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays:\n 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Šodien pulksten] LT',\n nextDay: '[Rīt pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[Pagājušā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return lv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač : https://github.com/miodragnikac\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n var me = moment.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedjelje] [u] LT',\n '[prošlog] [ponedjeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srijede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return me;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan : https://github.com/johnideal\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mi = moment.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort:\n 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\n//! author : Sashko Todorov : https://github.com/bkyceh\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Изминатиот] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пред %s',\n s: 'неколку секунди',\n ss: '%d секунди',\n m: 'една минута',\n mm: '%d минути',\n h: 'еден час',\n hh: '%d часа',\n d: 'еден ден',\n dd: '%d дена',\n M: 'еден месец',\n MM: '%d месеци',\n y: 'една година',\n yy: '%d години',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return mk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(\n '_'\n ),\n monthsShort:\n 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(\n '_'\n ),\n weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),\n weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -നു',\n LTS: 'A h:mm:ss -നു',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -നു',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',\n },\n calendar: {\n sameDay: '[ഇന്ന്] LT',\n nextDay: '[നാളെ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ഇന്നലെ] LT',\n lastWeek: '[കഴിഞ്ഞ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s കഴിഞ്ഞ്',\n past: '%s മുൻപ്',\n s: 'അൽപ നിമിഷങ്ങൾ',\n ss: '%d സെക്കൻഡ്',\n m: 'ഒരു മിനിറ്റ്',\n mm: '%d മിനിറ്റ്',\n h: 'ഒരു മണിക്കൂർ',\n hh: '%d മണിക്കൂർ',\n d: 'ഒരു ദിവസം',\n dd: '%d ദിവസം',\n M: 'ഒരു മാസം',\n MM: '%d മാസം',\n y: 'ഒരു വർഷം',\n yy: '%d വർഷം',\n },\n meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'രാത്രി' && hour >= 4) ||\n meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||\n meridiem === 'വൈകുന്നേരം'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'രാത്രി';\n } else if (hour < 12) {\n return 'രാവിലെ';\n } else if (hour < 17) {\n return 'ഉച്ച കഴിഞ്ഞ്';\n } else if (hour < 20) {\n return 'വൈകുന്നേരം';\n } else {\n return 'രാത്രി';\n }\n },\n });\n\n return ml;\n\n})));\n","//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(\n '_'\n ),\n monthsShort:\n '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),\n weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),\n weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[Өнөөдөр] LT',\n nextDay: '[Маргааш] LT',\n nextWeek: '[Ирэх] dddd LT',\n lastDay: '[Өчигдөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s дараа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n default:\n return number;\n }\n },\n });\n\n return mn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n case 'ss':\n output = '%d सेकंद';\n break;\n case 'm':\n output = 'एक मिनिट';\n break;\n case 'mm':\n output = '%d मिनिटे';\n break;\n case 'h':\n output = 'एक तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'एक दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'एक महिना';\n break;\n case 'MM':\n output = '%d महिने';\n break;\n case 'y':\n output = 'एक वर्ष';\n break;\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n case 'ss':\n output = '%d सेकंदां';\n break;\n case 'm':\n output = 'एका मिनिटा';\n break;\n case 'mm':\n output = '%d मिनिटां';\n break;\n case 'h':\n output = 'एका तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'एका दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'एका महिन्या';\n break;\n case 'MM':\n output = '%d महिन्यां';\n break;\n case 'y':\n output = 'एका वर्षा';\n break;\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(\n '_'\n ),\n monthsShort:\n 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),\n weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[उद्या] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[मागील] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमध्ये',\n past: '%sपूर्वी',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {\n return hour;\n } else if (\n meridiem === 'दुपारी' ||\n meridiem === 'सायंकाळी' ||\n meridiem === 'रात्री'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'पहाटे';\n } else if (hour < 12) {\n return 'सकाळी';\n } else if (hour < 17) {\n return 'दुपारी';\n } else if (hour < 20) {\n return 'सायंकाळी';\n } else {\n return 'रात्री';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return mr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return msMy;\n\n})));\n","//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ms;\n\n})));\n","//! moment.js locale configuration\n//! locale : Maltese (Malta) [mt]\n//! author : Alessandro Maruccia : https://github.com/alesma\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays:\n 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'ġurnata',\n dd: '%d ġranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return mt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ယနေ.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'လာမည့် %s မှာ',\n past: 'လွန်ခဲ့သော %s က',\n s: 'စက္ကန်.အနည်းငယ်',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'တစ်လ',\n MM: '%d လ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return my;\n\n})));\n","//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i går kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'én time',\n hh: '%d timer',\n d: 'én dag',\n dd: '%d dager',\n w: 'én uke',\n ww: '%d uker',\n M: 'én måned',\n MM: '%d måneder',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nb;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: '७',\n 8: '८',\n 9: '९',\n 0: '०',\n },\n numberMap = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n '७': '7',\n '८': '8',\n '९': '9',\n '०': '0',\n };\n\n var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(\n '_'\n ),\n monthsShort:\n 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),\n weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aको h:mm बजे',\n LTS: 'Aको h:mm:ss बजे',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aको h:mm बजे',\n LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',\n },\n preparse: function (string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'दिउँसो') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'साँझ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'दिउँसो';\n } else if (hour < 20) {\n return 'साँझ';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[आज] LT',\n nextDay: '[भोलि] LT',\n nextWeek: '[आउँदो] dddd[,] LT',\n lastDay: '[हिजो] LT',\n lastWeek: '[गएको] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाडि',\n s: 'केही क्षण',\n ss: '%d सेकेण्ड',\n m: 'एक मिनेट',\n mm: '%d मिनेट',\n h: 'एक घण्टा',\n hh: '%d घण्टा',\n d: 'एक दिन',\n dd: '%d दिन',\n M: 'एक महिना',\n MM: '%d महिना',\n y: 'एक बर्ष',\n yy: '%d बर्ष',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ne;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nlBe;\n\n})));\n","//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsShortWithDots =\n 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots =\n 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n monthsParse = [\n /^jan/i,\n /^feb/i,\n /^(maart|mrt\\.?)$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex =\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n\n monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex:\n /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex:\n /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays:\n 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n w: 'één week',\n ww: '%d weken',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! authors : https://github.com/mechuwind\n//! Stephen Ramthun : https://github.com/stephenramthun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I går klokka] LT',\n lastWeek: '[Føregåande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein månad',\n MM: '%d månader',\n y: 'eit år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return nn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Occitan, lengadocian dialecte [oc-lnc]\n//! author : Quentin PAGÈS : https://github.com/Quenty31\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ocLnc = moment.defineLocale('oc-lnc', {\n months: {\n standalone:\n 'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort:\n 'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uèi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[ièr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquí %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|è|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'è';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n return ocLnc;\n\n})));\n","//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '੧',\n 2: '੨',\n 3: '੩',\n 4: '੪',\n 5: '੫',\n 6: '੬',\n 7: '੭',\n 8: '੮',\n 9: '੯',\n 0: '੦',\n },\n numberMap = {\n '੧': '1',\n '੨': '2',\n '੩': '3',\n '੪': '4',\n '੫': '5',\n '੬': '6',\n '੭': '7',\n '੮': '8',\n '੯': '9',\n '੦': '0',\n };\n\n var paIn = moment.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort:\n 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ਵਜੇ',\n LTS: 'A h:mm:ss ਵਜੇ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',\n },\n calendar: {\n sameDay: '[ਅਜ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ਕੁਝ ਸਕਿੰਟ',\n ss: '%d ਸਕਿੰਟ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ਘੰਟੇ',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return paIn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var monthsNominative =\n 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective =\n 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(\n '_'\n ),\n monthsParse = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paź/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays:\n 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate,\n M: 'miesiąc',\n MM: translate,\n y: 'rok',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ptBr = moment.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),\n weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n invalidDate: 'Data inválida',\n });\n\n return ptBr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var pt = moment.defineLocale('pt', {\n months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays:\n 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje às] LT',\n nextDay: '[Amanhã às] LT',\n nextWeek: 'dddd [às] LT',\n lastDay: '[Ontem às] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [às] LT' // Saturday + Sunday\n : '[Última] dddd [às] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'há %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return pt;\n\n})));\n","//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n//! author : Emanuel Cepoi : https://github.com/cepem\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămâni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n var ro = moment.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort:\n 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmă',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o oră',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n w: 'o săptămână',\n ww: relativeTimeWithPlural,\n M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return ro;\n\n})));\n","//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n hh: 'час_часа_часов',\n dd: 'день_дня_дней',\n ww: 'неделя_недели_недель',\n MM: 'месяц_месяца_месяцев',\n yy: 'год_года_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n var monthsParse = [\n /^янв/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[йя]/i,\n /^июн/i,\n /^июл/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^ноя/i,\n /^дек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(\n '_'\n ),\n standalone:\n 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n standalone:\n 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone:\n 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(\n '_'\n ),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // копия предыдущего\n monthsShortRegex:\n /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n\n // полные названия с падежами\n monthsStrictRegex:\n /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n\n // Выражение, которое соответствует только сокращённым формам\n monthsShortStrictRegex:\n /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Сегодня, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В следующую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[В прошлую] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[В] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назад',\n s: 'несколько секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'час',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n w: 'неделя',\n ww: relativeTimeWithPlural,\n M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function (input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'утра';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ru;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوري',\n 'فيبروري',\n 'مارچ',\n 'اپريل',\n 'مئي',\n 'جون',\n 'جولاءِ',\n 'آگسٽ',\n 'سيپٽمبر',\n 'آڪٽوبر',\n 'نومبر',\n 'ڊسمبر',\n ],\n days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\n\n var sd = moment.defineLocale('sd', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[اڄ] LT',\n nextDay: '[سڀاڻي] LT',\n nextWeek: 'dddd [اڳين هفتي تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[گزريل هفتي] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوء',\n past: '%s اڳ',\n s: 'چند سيڪنڊ',\n ss: '%d سيڪنڊ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ڏينهن',\n dd: '%d ڏينهن',\n M: 'هڪ مهينو',\n MM: '%d مهينا',\n y: 'هڪ سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sd;\n\n})));\n","//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var se = moment.defineLocale('se', {\n months: 'ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu'.split(\n '_'\n ),\n monthsShort:\n 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays:\n 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mánnu',\n MM: '%d mánut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return se;\n\n})));\n","//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(\n '_'\n ),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(\n '_'\n ),\n weekdays:\n 'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),\n weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[අද] LT[ට]',\n nextDay: '[හෙට] LT[ට]',\n nextWeek: 'dddd LT[ට]',\n lastDay: '[ඊයේ] LT[ට]',\n lastWeek: '[පසුගිය] dddd LT[ට]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sකින්',\n past: '%sකට පෙර',\n s: 'තත්පර කිහිපය',\n ss: 'තත්පර %d',\n m: 'මිනිත්තුව',\n mm: 'මිනිත්තු %d',\n h: 'පැය',\n hh: 'පැය %d',\n d: 'දිනය',\n dd: 'දින %d',\n M: 'මාසය',\n MM: 'මාස %d',\n y: 'වසර',\n yy: 'වසර %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function (input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n },\n });\n\n return si;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months =\n 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n function plural(n) {\n return n > 1 && n < 5;\n }\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'sekundy' : 'sekúnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'minúty' : 'minút');\n } else {\n return result + 'minútami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'hodiny' : 'hodín');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'dni' : 'dní');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n var sk = moment.defineLocale('sk', {\n months: months,\n monthsShort: monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo štvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n var sl = moment.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejšnji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(\n '_'\n ),\n weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot në] LT',\n nextDay: '[Nesër në] LT',\n nextWeek: 'dddd [në] LT',\n lastDay: '[Dje në] LT',\n lastWeek: 'dddd [e kaluar në] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'në %s',\n past: '%s më parë',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'një minutë',\n mm: '%d minuta',\n h: 'një orë',\n hh: '%d orë',\n d: 'një ditë',\n dd: '%d ditë',\n M: 'një muaj',\n MM: '%d muaj',\n y: 'një vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sq;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једног минута'],\n mm: ['минут', 'минута', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n d: ['један дан', 'једног дана'],\n dd: ['дан', 'дана', 'дана'],\n M: ['један месец', 'једног месеца'],\n MM: ['месец', 'месеца', 'месеци'],\n y: ['једну годину', 'једне године'],\n yy: ['годину', 'године', 'година'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'једна година';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'годину') {\n return number + ' година';\n }\n\n return number + ' ' + word;\n },\n };\n\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(\n '_'\n ),\n monthsShort:\n 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),\n monthsParseExact: true,\n weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),\n weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[данас у] LT',\n nextDay: '[сутра у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n case 3:\n return '[у] [среду] [у] LT';\n case 6:\n return '[у] [суботу] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[прошле] [недеље] [у] LT',\n '[прошлог] [понедељка] [у] LT',\n '[прошлог] [уторка] [у] LT',\n '[прошле] [среде] [у] LT',\n '[прошлог] [четвртка] [у] LT',\n '[прошлог] [петка] [у] LT',\n '[прошле] [суботе] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунди',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return srCyrl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković : https://github.com/milan-j\n//! author : Stefan Crnjaković : https://github.com/crnjakovic\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n d: ['jedan dan', 'jednog dana'],\n dd: ['dan', 'dana', 'dana'],\n M: ['jedan mesec', 'jednog meseca'],\n MM: ['mesec', 'meseca', 'meseci'],\n y: ['jednu godinu', 'jedne godine'],\n yy: ['godinu', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n if (\n number % 10 >= 1 &&\n number % 10 <= 4 &&\n (number % 100 < 10 || number % 100 >= 20)\n ) {\n return number % 10 === 1 ? wordKey[0] : wordKey[1];\n }\n return wordKey[2];\n },\n translate: function (number, withoutSuffix, key, isFuture) {\n var wordKey = translator.words[key],\n word;\n\n if (key.length === 1) {\n // Nominativ\n if (key === 'y' && withoutSuffix) return 'jedna godina';\n return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];\n }\n\n word = translator.correctGrammaticalCase(number, wordKey);\n // Nominativ\n if (key === 'yy' && withoutSuffix && word === 'godinu') {\n return number + ' godina';\n }\n\n return number + ' ' + word;\n },\n };\n\n var sr = moment.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort:\n 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[prošle] [nedelje] [u] LT',\n '[prošlog] [ponedeljka] [u] LT',\n '[prošlog] [utorka] [u] LT',\n '[prošle] [srede] [u] LT',\n '[prošlog] [četvrtka] [u] LT',\n '[prošlog] [petka] [u] LT',\n '[prošle] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: translator.translate,\n dd: translator.translate,\n M: translator.translate,\n MM: translator.translate,\n y: translator.translate,\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sr;\n\n})));\n","//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies : https://github.com/nicolaidavies\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays:\n 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ss;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[Igår] LT',\n nextWeek: '[På] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'några sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en månad',\n MM: '%d månader',\n y: 'ett år',\n yy: '%d år',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return sv;\n\n})));\n","//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays:\n 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return sw;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n monthsShort:\n 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(\n '_'\n ),\n weekdays:\n 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(\n '_'\n ),\n weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[இன்று] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[நேற்று] LT',\n lastWeek: '[கடந்த வாரம்] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s இல்',\n past: '%s முன்',\n s: 'ஒரு சில விநாடிகள்',\n ss: '%d விநாடிகள்',\n m: 'ஒரு நிமிடம்',\n mm: '%d நிமிடங்கள்',\n h: 'ஒரு மணி நேரம்',\n hh: '%d மணி நேரம்',\n d: 'ஒரு நாள்',\n dd: '%d நாட்கள்',\n M: 'ஒரு மாதம்',\n MM: '%d மாதங்கள்',\n y: 'ஒரு வருடம்',\n yy: '%d ஆண்டுகள்',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' யாமம்';\n } else if (hour < 6) {\n return ' வைகறை'; // வைகறை\n } else if (hour < 10) {\n return ' காலை'; // காலை\n } else if (hour < 14) {\n return ' நண்பகல்'; // நண்பகல்\n } else if (hour < 18) {\n return ' எற்பாடு'; // எற்பாடு\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' யாமம்';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'யாமம்') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {\n return hour;\n } else if (meridiem === 'நண்பகல்') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return ta;\n\n})));\n","//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(\n '_'\n ),\n monthsShort:\n 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),\n weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేడు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[నిన్న] LT',\n lastWeek: '[గత] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s క్రితం',\n s: 'కొన్ని క్షణాలు',\n ss: '%d సెకన్లు',\n m: 'ఒక నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ఒక గంట',\n hh: '%d గంటలు',\n d: 'ఒక రోజు',\n dd: '%d రోజులు',\n M: 'ఒక నెల',\n MM: '%d నెలలు',\n y: 'ఒక సంవత్సరం',\n yy: '%d సంవత్సరాలు',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}వ/,\n ordinal: '%dవ',\n meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'రాత్రి') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'మధ్యాహ్నం') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'సాయంత్రం') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'రాత్రి';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'మధ్యాహ్నం';\n } else if (hour < 20) {\n return 'సాయంత్రం';\n } else {\n return 'రాత్రి';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n },\n });\n\n return te;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\n//! author : Sonia Simoes : https://github.com/soniasimoes\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tet;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tajik [tg]\n//! author : Orif N. Jr. : https://github.com/orif-jr\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 0: '-ум',\n 1: '-ум',\n 2: '-юм',\n 3: '-юм',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-юм',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n var tg = moment.defineLocale('tg', {\n months: {\n format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(\n '_'\n ),\n standalone:\n 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n },\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Имрӯз соати] LT',\n nextDay: '[Фардо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',\n lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъди %s',\n past: '%s пеш',\n s: 'якчанд сония',\n m: 'як дақиқа',\n mm: '%d дақиқа',\n h: 'як соат',\n hh: '%d соат',\n d: 'як рӯз',\n dd: '%d рӯз',\n M: 'як моҳ',\n MM: '%d моҳ',\n y: 'як сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'рӯз') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'рӯз';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|юм)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes[number] || suffixes[a] || suffixes[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n return tg;\n\n})));\n","//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(\n '_'\n ),\n monthsShort:\n 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference\n weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวลา H:mm',\n LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',\n },\n meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,\n isPM: function (input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ก่อนเที่ยง';\n } else {\n return 'หลังเที่ยง';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวลา] LT',\n nextDay: '[พรุ่งนี้ เวลา] LT',\n nextWeek: 'dddd[หน้า เวลา] LT',\n lastDay: '[เมื่อวานนี้ เวลา] LT',\n lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sที่แล้ว',\n s: 'ไม่กี่วินาที',\n ss: '%d วินาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ชั่วโมง',\n hh: '%d ชั่วโมง',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 สัปดาห์',\n ww: '%d สัปดาห์',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n return th;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkmen [tk]\n//! author : Atamyrat Abdyrahmanov : https://github.com/atamyratabdy\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n var tk = moment.defineLocale('tk', {\n months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geçen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnäçe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlPh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n var tlh = moment.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort:\n 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin:\n 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate,\n m: 'wa’ tup',\n mm: translate,\n h: 'wa’ rep',\n hh: translate,\n d: 'wa’ jaj',\n dd: translate,\n M: 'wa’ jar',\n MM: translate,\n y: 'wa’ DIS',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return tlh;\n\n})));\n","//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n var tr = moment.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'öö' : 'ÖÖ';\n } else {\n return isLower ? 'ös' : 'ÖS';\n }\n },\n meridiemParse: /öö|ÖÖ|ös|ÖS/,\n isPM: function (input) {\n return input === 'ös' || input === 'ÖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return tr;\n\n})));\n","//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n var tzl = moment.defineLocale('tzl', {\n months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),\n weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),\n weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi à] LT',\n nextDay: '[demà à] LT',\n nextWeek: 'dddd [à] LT',\n lastDay: '[ieiri à] LT',\n lastWeek: '[sür el] dddd [lasteu à] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n míut\", \"'iens míut\"],\n mm: [number + ' míuts', '' + number + ' míuts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n return tzl;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzmLatn = moment.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort:\n 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuḍ',\n mm: '%d minuḍ',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzmLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n monthsShort:\n 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(\n '_'\n ),\n weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',\n nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',\n nextWeek: 'dddd [ⴴ] LT',\n lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',\n lastWeek: 'dddd [ⴴ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',\n past: 'ⵢⴰⵏ %s',\n s: 'ⵉⵎⵉⴽ',\n ss: '%d ⵉⵎⵉⴽ',\n m: 'ⵎⵉⵏⵓⴺ',\n mm: '%d ⵎⵉⵏⵓⴺ',\n h: 'ⵙⴰⵄⴰ',\n hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',\n d: 'ⴰⵙⵙ',\n dd: '%d oⵙⵙⴰⵏ',\n M: 'ⴰⵢoⵓⵔ',\n MM: '%d ⵉⵢⵢⵉⵔⵏ',\n y: 'ⴰⵙⴳⴰⵙ',\n yy: '%d ⵉⵙⴳⴰⵙⵏ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n return tzm;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uyghur (China) [ug-cn]\n//! author: boyaq : https://github.com/boyaq\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n monthsShort:\n 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(\n '_'\n ),\n weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(\n '_'\n ),\n weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',\n LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',\n },\n meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'يېرىم كېچە' ||\n meridiem === 'سەھەر' ||\n meridiem === 'چۈشتىن بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'يېرىم كېچە';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'چۈشتىن بۇرۇن';\n } else if (hm < 1230) {\n return 'چۈش';\n } else if (hm < 1800) {\n return 'چۈشتىن كېيىن';\n } else {\n return 'كەچ';\n }\n },\n calendar: {\n sameDay: '[بۈگۈن سائەت] LT',\n nextDay: '[ئەتە سائەت] LT',\n nextWeek: '[كېلەركى] dddd [سائەت] LT',\n lastDay: '[تۆنۈگۈن] LT',\n lastWeek: '[ئالدىنقى] dddd [سائەت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s كېيىن',\n past: '%s بۇرۇن',\n s: 'نەچچە سېكونت',\n ss: '%d سېكونت',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر سائەت',\n hh: '%d سائەت',\n d: 'بىر كۈن',\n dd: '%d كۈن',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر يىل',\n yy: '%d يىل',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n return ugCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n } else if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative:\n 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(\n '_'\n ),\n accusative:\n 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(\n '_'\n ),\n genitive:\n 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n var uk = moment.defineLocale('uk', {\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(\n '_'\n ),\n standalone:\n 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(\n '_'\n ),\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s тому',\n s: 'декілька секунд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'годину',\n hh: relativeTimeWithPlural,\n d: 'день',\n dd: relativeTimeWithPlural,\n M: 'місяць',\n MM: relativeTimeWithPlural,\n y: 'рік',\n yy: relativeTimeWithPlural,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\n isPM: function (input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'ранку';\n } else if (hour < 17) {\n return 'дня';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var months = [\n 'جنوری',\n 'فروری',\n 'مارچ',\n 'اپریل',\n 'مئی',\n 'جون',\n 'جولائی',\n 'اگست',\n 'ستمبر',\n 'اکتوبر',\n 'نومبر',\n 'دسمبر',\n ],\n days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n var ur = moment.defineLocale('ur', {\n months: months,\n monthsShort: months,\n weekdays: days,\n weekdaysShort: days,\n weekdaysMin: days,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /صبح|شام/,\n isPM: function (input) {\n return 'شام' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\n return 'شام';\n },\n calendar: {\n sameDay: '[آج بوقت] LT',\n nextDay: '[کل بوقت] LT',\n nextWeek: 'dddd [بوقت] LT',\n lastDay: '[گذشتہ روز بوقت] LT',\n lastWeek: '[گذشتہ] dddd [بوقت] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s بعد',\n past: '%s قبل',\n s: 'چند سیکنڈ',\n ss: '%d سیکنڈ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک سال',\n yy: '%d سال',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return ur;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays:\n 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n return uzLatn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(\n '_'\n ),\n monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),\n weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),\n weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),\n weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Бугун соат] LT [да]',\n nextDay: '[Эртага] LT [да]',\n nextWeek: 'dddd [куни соат] LT [да]',\n lastDay: '[Кеча соат] LT [да]',\n lastWeek: '[Утган] dddd [куни соат] LT [да]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичида',\n past: 'Бир неча %s олдин',\n s: 'фурсат',\n ss: '%d фурсат',\n m: 'бир дакика',\n mm: '%d дакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return uz;\n\n})));\n","//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! author : Chien Kira : https://github.com/chienkira\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var vi = moment.defineLocale('vi', {\n months: 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split(\n '_'\n ),\n monthsShort:\n 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tới',\n past: '%s trước',\n s: 'vài giây',\n ss: '%d giây',\n m: 'một phút',\n mm: '%d phút',\n h: 'một giờ',\n hh: '%d giờ',\n d: 'một ngày',\n dd: '%d ngày',\n w: 'một tuần',\n ww: '%d tuần',\n M: 'một tháng',\n MM: '%d tháng',\n y: 'một năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return vi;\n\n})));\n","//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var xPseudo = moment.defineLocale('x-pseudo', {\n months: 'J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér'.split(\n '_'\n ),\n monthsShort:\n 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays:\n 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),\n weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódá~ý át] LT',\n nextDay: '[T~ómó~rró~w át] LT',\n nextWeek: 'dddd [át] LT',\n lastDay: '[Ý~ést~érdá~ý át] LT',\n lastWeek: '[L~ást] dddd [át] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'í~ñ %s',\n past: '%s á~gó',\n s: 'á ~féw ~sécó~ñds',\n ss: '%d s~écóñ~ds',\n m: 'á ~míñ~úté',\n mm: '%d m~íñú~tés',\n h: 'á~ñ hó~úr',\n hh: '%d h~óúrs',\n d: 'á ~dáý',\n dd: '%d d~áýs',\n M: 'á ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'á ~ýéár',\n yy: '%d ý~éárs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return xPseudo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var yo = moment.defineLocale('yo', {\n months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),\n weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),\n weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),\n weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Ònì ni] LT',\n nextDay: '[Ọ̀la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",\n lastDay: '[Àna ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kọjá',\n s: 'ìsẹjú aayá die',\n ss: 'aayá %d',\n m: 'ìsẹjú kan',\n mm: 'ìsẹjú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'ọjọ́ kan',\n dd: 'ọjọ́ %d',\n M: 'osù kan',\n MM: 'osù %d',\n y: 'ọdún kan',\n yy: 'ọdún %d',\n },\n dayOfMonthOrdinalParse: /ọjọ́\\s\\d{1,2}/,\n ordinal: 'ọjọ́ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return yo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! author : uu109 : https://github.com/uu109\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日Ah点mm分',\n LLLL: 'YYYY年M月D日ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n } else {\n // '中午'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[下]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d 秒',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 小时',\n hh: '%d 小时',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 年',\n yy: '%d 年',\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n return zhCn;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! author : Anthony : https://github.com/anthonylau\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1200) {\n return '上午';\n } else if (hm === 1200) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[明天]LT',\n nextWeek: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhHk;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Macau) [zh-mo]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Tan Yuanhong : https://github.com/le0tan\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhMo = moment.defineLocale('zh-mo', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhMo;\n\n})));\n","//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n && typeof require === 'function' ? factory(require('../moment')) :\n typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n //! moment.js locale configuration\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),\n weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),\n weekdaysMin: '日_一_二_三_四_五_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY年M月D日',\n LLL: 'YYYY年M月D日 HH:mm',\n LLLL: 'YYYY年M月D日dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY年M月D日',\n lll: 'YYYY年M月D日 HH:mm',\n llll: 'YYYY年M月D日dddd HH:mm',\n },\n meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {\n return hour;\n } else if (meridiem === '中午') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === '下午' || meridiem === '晚上') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return '凌晨';\n } else if (hm < 900) {\n return '早上';\n } else if (hm < 1130) {\n return '上午';\n } else if (hm < 1230) {\n return '中午';\n } else if (hm < 1800) {\n return '下午';\n } else {\n return '晚上';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[明天] LT',\n nextWeek: '[下]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d 秒',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 小時',\n hh: '%d 小時',\n d: '1 天',\n dd: '%d 天',\n M: '1 個月',\n MM: '%d 個月',\n y: '1 年',\n yy: '%d 年',\n },\n });\n\n return zhTw;\n\n})));\n","//! moment.js\n//! version : 2.30.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n };\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n };\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n }\n\n function set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // PARSING\n\n addRegexToken('M', match1to2, match1to2NoLeadingZero);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // PARSING\n\n addRegexToken('w', match1to2, match1to2NoLeadingZero);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2, match1to2NoLeadingZero);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2, match1to2HasZero);\n addRegexToken('h', match1to2, match1to2NoLeadingZero);\n addRegexToken('k', match1to2, match1to2NoLeadingZero);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // PARSING\n\n addRegexToken('D', match1to2, match1to2NoLeadingZero);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // PARSING\n\n addRegexToken('m', match1to2, match1to2HasZero);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // PARSING\n\n addRegexToken('s', match1to2, match1to2HasZero);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.30.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/*!\n * vue-i18n v8.28.2 \n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\nvar dateTimeFormatKeys = [\n 'dateStyle',\n 'timeStyle',\n 'calendar',\n 'localeMatcher',\n \"hour12\",\n \"hourCycle\",\n \"timeZone\",\n \"formatMatcher\",\n 'weekday',\n 'era',\n 'year',\n 'month',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'timeZoneName' ];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction arrayFrom (arr) {\n var ret = [];\n arr.forEach(function (a) { return ret.push(a); });\n return ret\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\n/**\n * Mixin\n * \n * If `bridge` mode, empty mixin is returned,\n * else regulary mixin implementation is returned.\n */\nfunction defineMixin (bridge) {\n if ( bridge === void 0 ) bridge = false;\n\n function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n }\n\n return bridge\n ? { mounted: mounted } // delegate `vue-i18n-bridge` mixin implementation\n : { // regulary \n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n = options.__i18nBridge || options.__i18n;\n _i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if ((options.__i18nBridge || options.__i18n)) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n var _i18n$1 = options.__i18nBridge || options.__i18n;\n _i18n$1.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || ((options.__i18nBridge || options.__i18n) ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: mounted,\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n }\n}\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue, options) {\n if ( options === void 0 ) options = { bridge: false };\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(defineMixin(options.bridge));\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-zA-Z]+)?:(?:[\\w\\-_|./]+|\\([\\w\\-_:|./]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-zA-Z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || options.datetimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._fallbackRootWithEmptyString = options.fallbackRootWithEmptyString === undefined\n ? true\n : !!options.fallbackRootWithEmptyString;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n if ('__VUE_I18N_BRIDGE__' in options) {\n this.__VUE_I18N_BRIDGE__ = options.__VUE_I18N_BRIDGE__;\n }\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true },sync: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data, __VUE18N__INSTANCE__: true });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var this$1 = this;\n return this._vm.$watch('$data', function () {\n var listeners = arrayFrom(this$1._dataListeners);\n var i = listeners.length;\n while(i--) {\n Vue.nextTick(function () {\n listeners[i] && listeners[i].$forceUpdate();\n });\n }\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale (composer) {\n if (!composer) {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n } else {\n // deal with vue-i18n-bridge\n if (!this.__VUE_I18N_BRIDGE__) { return null }\n var self = this;\n var target$1 = this._vm;\n return this.vm.$watch('locale', function (val) {\n target$1.$set(target$1, 'locale', val);\n if (self.__VUE_I18N_BRIDGE__ && composer) {\n composer.locale.value = val;\n }\n target$1.$forceUpdate();\n }, { immediate: true })\n }\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nprototypeAccessors.sync.get = function () { return this._sync };\nprototypeAccessors.sync.set = function (val) { this._sync = val; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return (this._fallbackRootWithEmptyString? !val : isNull(val)) && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n\n // eslint-disable-next-line no-autofix/prefer-const\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values, formatter, path, interpolateMode) {\n var this$1 = this;\n\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n var messages = this._getMessages();\n var locale = this.locale;\n\n return {\n list: list,\n named: named,\n values: values,\n formatter: formatter,\n path: path,\n messages: messages,\n locale: locale,\n linked: function (linkedKey) { return this$1._interpolate(locale, messages[locale] || {}, linkedKey, null, interpolateMode, undefined, [linkedKey]); }\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(\n this._createMessageContext(values, this._formatter || defaultFormatter, path, interpolateMode)\n )\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? Object.assign({}, this._vm.messages[locale])\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n formatter = new Intl.DateTimeFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n }\n\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key, options) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n var dtf = !options ? new Intl.DateTimeFormat(locale) : new Intl.DateTimeFormat(locale, options);\n return dtf.format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key, options);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(dateTimeFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key, options)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n // eslint-disable-next-line no-autofix/prefer-const\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.28.2';\n\nexport default VueI18n;\n","/*!\n * vue-router v3.6.5\n * (c) 2022 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (!condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/(?:\\s*\\/)+/g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'}\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1$1.ensureURL();\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1$1.ready) {\n this$1$1.ready = true;\n this$1$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1$1.ready = true;\n this$1$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1$1.errorCbs.length) {\n this$1$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'uncaught error during route navigation:');\n }\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n if (route.hash) {\n handleScroll(this.router, current, route, false);\n }\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1$1.replace(to);\n } else {\n this$1$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1$1.pending = null;\n onComplete(route);\n if (this$1$1.router.app) {\n this$1$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1$1.base);\n if (this$1$1.current === START && location === this$1$1._startLocation) {\n return\n }\n\n this$1$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1$1.base + route.fullPath));\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index + 1).concat(route);\n this$1$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1$1.stack = this$1$1.stack.slice(0, this$1$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1$1.current;\n this$1$1.index = targetIndex;\n this$1$1.updateRoute(route);\n this$1$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n if (process.env.NODE_ENV !== 'production') {\n warn(this instanceof VueRouter, \"Router must be called with the new operator.\");\n }\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1$1.apps.indexOf(app);\n if (index > -1) { this$1$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1$1.app === app) { this$1$1.app = this$1$1.apps[0] || null; }\n\n if (!this$1$1.app) { this$1$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nvar VueRouter$1 = VueRouter;\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\n// We cannot remove this as it would be a breaking change\nVueRouter.install = install;\nVueRouter.version = '3.6.5';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nvar version = '3.6.5';\n\nexport { NavigationFailureType, Link as RouterLink, View as RouterView, START as START_LOCATION, VueRouter$1 as default, isNavigationFailure, version };\n","/*!\n * Vue.js v2.7.16\n * (c) 2014-2023 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\nvar isArray = Array.isArray;\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef(v) {\n return v === undefined || v === null;\n}\nfunction isDef(v) {\n return v !== undefined && v !== null;\n}\nfunction isTrue(v) {\n return v === true;\n}\nfunction isFalse(v) {\n return v === false;\n}\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive(value) {\n return (typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean');\n}\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n/**\n * Quick object check - this is primarily used to tell\n * objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\nfunction toRawType(value) {\n return _toString.call(value).slice(8, -1);\n}\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject(obj) {\n return _toString.call(obj) === '[object Object]';\n}\nfunction isRegExp(v) {\n return _toString.call(v) === '[object RegExp]';\n}\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex(val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val);\n}\nfunction isPromise(val) {\n return (isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function');\n}\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString(val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, replacer, 2)\n : String(val);\n}\nfunction replacer(_key, val) {\n // avoid circular deps from v3\n if (val && val.__v_isRef) {\n return val.value;\n }\n return val;\n}\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber(val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n;\n}\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap(str, expectsLowerCase) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\n}\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n/**\n * Remove an item from an array.\n */\nfunction remove$2(arr, item) {\n var len = arr.length;\n if (len) {\n // fast path for the only / last item\n if (item === arr[len - 1]) {\n arr.length = len - 1;\n return;\n }\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1);\n }\n }\n}\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/**\n * Create a cached version of a pure function.\n */\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\n});\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase();\n});\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n/* istanbul ignore next */\nfunction polyfillBind(fn, ctx) {\n function boundFn(a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx);\n }\n boundFn._length = fn.length;\n return boundFn;\n}\nfunction nativeBind(fn, ctx) {\n return fn.bind(ctx);\n}\n// @ts-expect-error bind cannot be `undefined`\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray(list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret;\n}\n/**\n * Mix properties into target object.\n */\nfunction extend(to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to;\n}\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject(arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res;\n}\n/* eslint-disable no-unused-vars */\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop(a, b, c) { }\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n/* eslint-enable no-unused-vars */\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual(a, b) {\n if (a === b)\n return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return (a.length === b.length &&\n a.every(function (e, i) {\n return looseEqual(e, b[i]);\n }));\n }\n else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return (keysA.length === keysB.length &&\n keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n }));\n }\n else {\n /* istanbul ignore next */\n return false;\n }\n }\n catch (e) {\n /* istanbul ignore next */\n return false;\n }\n }\n else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n }\n else {\n return false;\n }\n}\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf(arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val))\n return i;\n }\n return -1;\n}\n/**\n * Ensure a function is called only once.\n */\nfunction once(fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n };\n}\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\nfunction hasChanged(x, y) {\n if (x === y) {\n return x === 0 && 1 / x !== 1 / y;\n }\n else {\n return x === x || y === y;\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch',\n 'renderTracked',\n 'renderTriggered'\n];\n\nvar config = {\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n /**\n * Whether to record perf\n */\n performance: false,\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n};\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved(str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5f;\n}\n/**\n * Define a property.\n */\nfunction def(obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\nfunction parsePath(path) {\n if (bailRE.test(path)) {\n return;\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj)\n return;\n obj = obj[segments[i]];\n }\n return obj;\n };\n}\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nUA && UA.indexOf('android') > 0;\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\nUA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n// Firefox has a \"watch\" function on Object.prototype...\n// @ts-expect-error firebox support\nvar nativeWatch = {}.watch;\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', {\n get: function () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n }); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n }\n catch (e) { }\n}\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer =\n global['process'] && global['process'].env.VUE_ENV === 'server';\n }\n else {\n _isServer = false;\n }\n }\n return _isServer;\n};\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n/* istanbul ignore next */\nfunction isNative(Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\n}\nvar hasSymbol = typeof Symbol !== 'undefined' &&\n isNative(Symbol) &&\n typeof Reflect !== 'undefined' &&\n isNative(Reflect.ownKeys);\nvar _Set; // $flow-disable-line\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n}\nelse {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /** @class */ (function () {\n function Set() {\n this.set = Object.create(null);\n }\n Set.prototype.has = function (key) {\n return this.set[key] === true;\n };\n Set.prototype.add = function (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function () {\n this.set = Object.create(null);\n };\n return Set;\n }());\n}\n\nvar currentInstance = null;\n/**\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\n * relies on it). Do not use this internally, just use `currentInstance`.\n *\n * @internal this function needs manual type declaration because it relies\n * on previously manually authored types from Vue 2\n */\nfunction getCurrentInstance() {\n return currentInstance && { proxy: currentInstance };\n}\n/**\n * @internal\n */\nfunction setCurrentInstance(vm) {\n if (vm === void 0) { vm = null; }\n if (!vm)\n currentInstance && currentInstance._scope.off();\n currentInstance = vm;\n vm && vm._scope.on();\n}\n\n/**\n * @internal\n */\nvar VNode = /** @class */ (function () {\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n }\n Object.defineProperty(VNode.prototype, \"child\", {\n // DEPRECATED: alias for componentInstance for backwards compat.\n /* istanbul ignore next */\n get: function () {\n return this.componentInstance;\n },\n enumerable: false,\n configurable: true\n });\n return VNode;\n}());\nvar createEmptyVNode = function (text) {\n if (text === void 0) { text = ''; }\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node;\n};\nfunction createTextVNode(val) {\n return new VNode(undefined, undefined, undefined, String(val));\n}\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode(vnode) {\n var cloned = new VNode(vnode.tag, vnode.data, \n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned;\n}\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nvar uid$2 = 0;\nvar pendingCleanupDeps = [];\nvar cleanupDeps = function () {\n for (var i = 0; i < pendingCleanupDeps.length; i++) {\n var dep = pendingCleanupDeps[i];\n dep.subs = dep.subs.filter(function (s) { return s; });\n dep._pending = false;\n }\n pendingCleanupDeps.length = 0;\n};\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n * @internal\n */\nvar Dep = /** @class */ (function () {\n function Dep() {\n // pending subs cleanup\n this._pending = false;\n this.id = uid$2++;\n this.subs = [];\n }\n Dep.prototype.addSub = function (sub) {\n this.subs.push(sub);\n };\n Dep.prototype.removeSub = function (sub) {\n // #12696 deps with massive amount of subscribers are extremely slow to\n // clean up in Chromium\n // to workaround this, we unset the sub for now, and clear them on\n // next scheduler flush.\n this.subs[this.subs.indexOf(sub)] = null;\n if (!this._pending) {\n this._pending = true;\n pendingCleanupDeps.push(this);\n }\n };\n Dep.prototype.depend = function (info) {\n if (Dep.target) {\n Dep.target.addDep(this);\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\n }\n }\n };\n Dep.prototype.notify = function (info) {\n // stabilize the subscriber list first\n var subs = this.subs.filter(function (s) { return s; });\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n var sub = subs[i];\n if (process.env.NODE_ENV !== 'production' && info) {\n sub.onTrigger &&\n sub.onTrigger(__assign({ effect: subs[i] }, info));\n }\n sub.update();\n }\n };\n return Dep;\n}());\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\nfunction pushTarget(target) {\n targetStack.push(target);\n Dep.target = target;\n}\nfunction popTarget() {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break;\n case 'splice':\n inserted = args.slice(2);\n break;\n }\n if (inserted)\n ob.observeArray(inserted);\n // notify change\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\n target: this,\n key: method\n });\n }\n else {\n ob.dep.notify();\n }\n return result;\n });\n});\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\nvar NO_INITIAL_VALUE = {};\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\nfunction toggleObserving(value) {\n shouldObserve = value;\n}\n// ssr mock dep\nvar mockDep = {\n notify: noop,\n depend: noop,\n addSub: noop,\n removeSub: noop\n};\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = /** @class */ (function () {\n function Observer(value, shallow, mock) {\n if (shallow === void 0) { shallow = false; }\n if (mock === void 0) { mock = false; }\n this.value = value;\n this.shallow = shallow;\n this.mock = mock;\n // this.value = value\n this.dep = mock ? mockDep : new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (isArray(value)) {\n if (!mock) {\n if (hasProto) {\n value.__proto__ = arrayMethods;\n /* eslint-enable no-proto */\n }\n else {\n for (var i = 0, l = arrayKeys.length; i < l; i++) {\n var key = arrayKeys[i];\n def(value, key, arrayMethods[key]);\n }\n }\n }\n if (!shallow) {\n this.observeArray(value);\n }\n }\n else {\n /**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\n var keys = Object.keys(value);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);\n }\n }\n }\n /**\n * Observe a list of Array items.\n */\n Observer.prototype.observeArray = function (value) {\n for (var i = 0, l = value.length; i < l; i++) {\n observe(value[i], false, this.mock);\n }\n };\n return Observer;\n}());\n// helpers\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe(value, shallow, ssrMockReactivity) {\n if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n return value.__ob__;\n }\n if (shouldObserve &&\n (ssrMockReactivity || !isServerRendering()) &&\n (isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value.__v_skip /* ReactiveFlags.SKIP */ &&\n !isRef(value) &&\n !(value instanceof VNode)) {\n return new Observer(value, shallow, ssrMockReactivity);\n }\n}\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow) {\n if (observeEvenIfShallow === void 0) { observeEvenIfShallow = false; }\n var dep = new Dep();\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return;\n }\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) &&\n (val === NO_INITIAL_VALUE || arguments.length === 2)) {\n val = obj[key];\n }\n var childOb = shallow ? val && val.__ob__ : observe(val, false, mock);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter() {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: obj,\n type: \"get\" /* TrackOpTypes.GET */,\n key: key\n });\n }\n else {\n dep.depend();\n }\n if (childOb) {\n childOb.dep.depend();\n if (isArray(value)) {\n dependArray(value);\n }\n }\n }\n return isRef(value) && !shallow ? value.value : value;\n },\n set: function reactiveSetter(newVal) {\n var value = getter ? getter.call(obj) : val;\n if (!hasChanged(value, newVal)) {\n return;\n }\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n }\n else if (getter) {\n // #7981: for accessor properties without setter\n return;\n }\n else if (!shallow && isRef(value) && !isRef(newVal)) {\n value.value = newVal;\n return;\n }\n else {\n val = newVal;\n }\n childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: obj,\n key: key,\n newValue: newVal,\n oldValue: value\n });\n }\n else {\n dep.notify();\n }\n }\n });\n return dep;\n}\nfunction set(target, key, val) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n var ob = target.__ob__;\n if (isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n // when mocking for SSR, array methods are not hijacked\n if (ob && !ob.shallow && ob.mock) {\n observe(val, false, true);\n }\n return val;\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val;\n }\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.');\n return val;\n }\n if (!ob) {\n target[key] = val;\n return val;\n }\n defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"add\" /* TriggerOpTypes.ADD */,\n target: target,\n key: key,\n newValue: val,\n oldValue: undefined\n });\n }\n else {\n ob.dep.notify();\n }\n return val;\n}\nfunction del(target, key) {\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\n }\n if (isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return;\n }\n var ob = target.__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' &&\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.');\n return;\n }\n if (isReadonly(target)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n return;\n }\n if (!hasOwn(target, key)) {\n return;\n }\n delete target[key];\n if (!ob) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n ob.dep.notify({\n type: \"delete\" /* TriggerOpTypes.DELETE */,\n target: target,\n key: key\n });\n }\n else {\n ob.dep.notify();\n }\n}\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray(value) {\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\n e = value[i];\n if (e && e.__ob__) {\n e.__ob__.dep.depend();\n }\n if (isArray(e)) {\n dependArray(e);\n }\n }\n}\n\nfunction reactive(target) {\n makeReactive(target, false);\n return target;\n}\n/**\n * Return a shallowly-reactive copy of the original object, where only the root\n * level properties are reactive. It also does not auto-unwrap refs (even at the\n * root level).\n */\nfunction shallowReactive(target) {\n makeReactive(target, true);\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n return target;\n}\nfunction makeReactive(target, shallow) {\n // if trying to observe a readonly proxy, return the readonly version.\n if (!isReadonly(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\n }\n var existingOb = target && target.__ob__;\n if (existingOb && existingOb.shallow !== shallow) {\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\n }\n }\n var ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);\n if (process.env.NODE_ENV !== 'production' && !ob) {\n if (target == null || isPrimitive(target)) {\n warn(\"value cannot be made reactive: \".concat(String(target)));\n }\n if (isCollectionType(target)) {\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\n }\n }\n }\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\n }\n return !!(value && value.__ob__);\n}\nfunction isShallow(value) {\n return !!(value && value.__v_isShallow);\n}\nfunction isReadonly(value) {\n return !!(value && value.__v_isReadonly);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n // non-extensible objects won't be observed anyway\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\n }\n return value;\n}\n/**\n * @internal\n */\nfunction isCollectionType(value) {\n var type = toRawType(value);\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\n}\n\n/**\n * @internal\n */\nvar RefFlag = \"__v_isRef\";\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref$1(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n var ref = {};\n def(ref, RefFlag, true);\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, shallow);\n def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));\n return ref;\n}\nfunction triggerRef(ref) {\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\n warn(\"received object is not a triggerable ref.\");\n }\n if (process.env.NODE_ENV !== 'production') {\n ref.dep &&\n ref.dep.notify({\n type: \"set\" /* TriggerOpTypes.SET */,\n target: ref,\n key: 'value'\n });\n }\n else {\n ref.dep && ref.dep.notify();\n }\n}\nfunction unref(ref) {\n return isRef(ref) ? ref.value : ref;\n}\nfunction proxyRefs(objectWithRefs) {\n if (isReactive(objectWithRefs)) {\n return objectWithRefs;\n }\n var proxy = {};\n var keys = Object.keys(objectWithRefs);\n for (var i = 0; i < keys.length; i++) {\n proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);\n }\n return proxy;\n}\nfunction proxyWithRefUnwrap(target, source, key) {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = source[key];\n if (isRef(val)) {\n return val.value;\n }\n else {\n var ob = val && val.__ob__;\n if (ob)\n ob.dep.depend();\n return val;\n }\n },\n set: function (value) {\n var oldValue = source[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n }\n else {\n source[key] = value;\n }\n }\n });\n}\nfunction customRef(factory) {\n var dep = new Dep();\n var _a = factory(function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.depend({\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n else {\n dep.depend();\n }\n }, function () {\n if (process.env.NODE_ENV !== 'production') {\n dep.notify({\n target: ref,\n type: \"set\" /* TriggerOpTypes.SET */,\n key: 'value'\n });\n }\n else {\n dep.notify();\n }\n }), get = _a.get, set = _a.set;\n var ref = {\n get value() {\n return get();\n },\n set value(newVal) {\n set(newVal);\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\nfunction toRefs(object) {\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\n warn(\"toRefs() expects a reactive object but received a plain one.\");\n }\n var ret = isArray(object) ? new Array(object.length) : {};\n for (var key in object) {\n ret[key] = toRef(object, key);\n }\n return ret;\n}\nfunction toRef(object, key, defaultValue) {\n var val = object[key];\n if (isRef(val)) {\n return val;\n }\n var ref = {\n get value() {\n var val = object[key];\n return val === undefined ? defaultValue : val;\n },\n set value(newVal) {\n object[key] = newVal;\n }\n };\n def(ref, RefFlag, true);\n return ref;\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\nfunction readonly(target) {\n return createReadonly(target, false);\n}\nfunction createReadonly(target, shallow) {\n if (!isPlainObject(target)) {\n if (process.env.NODE_ENV !== 'production') {\n if (isArray(target)) {\n warn(\"Vue 2 does not support readonly arrays.\");\n }\n else if (isCollectionType(target)) {\n warn(\"Vue 2 does not support readonly collection types such as Map or Set.\");\n }\n else {\n warn(\"value cannot be made readonly: \".concat(typeof target));\n }\n }\n return target;\n }\n if (process.env.NODE_ENV !== 'production' && !Object.isExtensible(target)) {\n warn(\"Vue 2 does not support creating readonly proxy for non-extensible object.\");\n }\n // already a readonly object\n if (isReadonly(target)) {\n return target;\n }\n // already has a readonly proxy\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\n var existingProxy = target[existingFlag];\n if (existingProxy) {\n return existingProxy;\n }\n var proxy = Object.create(Object.getPrototypeOf(target));\n def(target, existingFlag, proxy);\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\n if (isRef(target)) {\n def(proxy, RefFlag, true);\n }\n if (shallow || isShallow(target)) {\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\n }\n var keys = Object.keys(target);\n for (var i = 0; i < keys.length; i++) {\n defineReadonlyProperty(proxy, target, keys[i], shallow);\n }\n return proxy;\n}\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\n Object.defineProperty(proxy, key, {\n enumerable: true,\n configurable: true,\n get: function () {\n var val = target[key];\n return shallow || !isPlainObject(val) ? val : readonly(val);\n },\n set: function () {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\n }\n });\n}\n/**\n * Returns a reactive-copy of the original object, where only the root level\n * properties are readonly, and does NOT unwrap refs nor recursively convert\n * returned properties.\n * This is used for creating the props proxy object for stateful components.\n */\nfunction shallowReadonly(target) {\n return createReadonly(target, true);\n}\n\nfunction computed(getterOrOptions, debugOptions) {\n var getter;\n var setter;\n var onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = process.env.NODE_ENV !== 'production'\n ? function () {\n warn('Write operation failed: computed value is readonly');\n }\n : noop;\n }\n else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n var watcher = isServerRendering()\n ? null\n : new Watcher(currentInstance, getter, noop, { lazy: true });\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\n watcher.onTrack = debugOptions.onTrack;\n watcher.onTrigger = debugOptions.onTrigger;\n }\n var ref = {\n // some libs rely on the presence effect for checking computed refs\n // from normal refs, but the implementation doesn't matter\n effect: watcher,\n get value() {\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\n Dep.target.onTrack({\n effect: Dep.target,\n target: ref,\n type: \"get\" /* TrackOpTypes.GET */,\n key: 'value'\n });\n }\n watcher.depend();\n }\n return watcher.value;\n }\n else {\n return getter();\n }\n },\n set value(newVal) {\n setter(newVal);\n }\n };\n def(ref, RefFlag, true);\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\n return ref;\n}\n\nvar WATCHER = \"watcher\";\nvar WATCHER_CB = \"\".concat(WATCHER, \" callback\");\nvar WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\nvar WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\n// Simple effect.\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\n ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\n}\n// initial value for watchers to trigger on undefined initial values\nvar INITIAL_WATCHER_VALUE = {};\n// implementation\nfunction watch(source, cb, options) {\n if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\n \"supports `watch(source, cb, options?) signature.\");\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, _a) {\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\n if (process.env.NODE_ENV !== 'production' && !cb) {\n if (immediate !== undefined) {\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n if (deep !== undefined) {\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\n \"watch(source, callback, options?) signature.\");\n }\n }\n var warnInvalidSource = function (s) {\n warn(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\n \"function, a ref, a reactive object, or an array of these types.\");\n };\n var instance = currentInstance;\n var call = function (fn, type, args) {\n if (args === void 0) { args = null; }\n var res = invokeWithErrorHandling(fn, null, args, instance, type);\n if (deep && res && res.__ob__)\n res.__ob__.dep.depend();\n return res;\n };\n var getter;\n var forceTrigger = false;\n var isMultiSource = false;\n if (isRef(source)) {\n getter = function () { return source.value; };\n forceTrigger = isShallow(source);\n }\n else if (isReactive(source)) {\n getter = function () {\n source.__ob__.dep.depend();\n return source;\n };\n deep = true;\n }\n else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\n getter = function () {\n return source.map(function (s) {\n if (isRef(s)) {\n return s.value;\n }\n else if (isReactive(s)) {\n s.__ob__.dep.depend();\n return traverse(s);\n }\n else if (isFunction(s)) {\n return call(s, WATCHER_GETTER);\n }\n else {\n process.env.NODE_ENV !== 'production' && warnInvalidSource(s);\n }\n });\n };\n }\n else if (isFunction(source)) {\n if (cb) {\n // getter with cb\n getter = function () { return call(source, WATCHER_GETTER); };\n }\n else {\n // no cb -> simple effect\n getter = function () {\n if (instance && instance._isDestroyed) {\n return;\n }\n if (cleanup) {\n cleanup();\n }\n return call(source, WATCHER, [onCleanup]);\n };\n }\n }\n else {\n getter = noop;\n process.env.NODE_ENV !== 'production' && warnInvalidSource(source);\n }\n if (cb && deep) {\n var baseGetter_1 = getter;\n getter = function () { return traverse(baseGetter_1()); };\n }\n var cleanup;\n var onCleanup = function (fn) {\n cleanup = watcher.onStop = function () {\n call(fn, WATCHER_CLEANUP);\n };\n };\n // in SSR there is no need to setup an actual effect, and it should be noop\n // unless it's eager\n if (isServerRendering()) {\n // we will also not call the invalidate callback (+ runner is not set up)\n onCleanup = noop;\n if (!cb) {\n getter();\n }\n else if (immediate) {\n call(cb, WATCHER_CB, [\n getter(),\n isMultiSource ? [] : undefined,\n onCleanup\n ]);\n }\n return noop;\n }\n var watcher = new Watcher(currentInstance, getter, noop, {\n lazy: true\n });\n watcher.noRecurse = !cb;\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\n // overwrite default run\n watcher.run = function () {\n if (!watcher.active) {\n return;\n }\n if (cb) {\n // watch(source, cb)\n var newValue = watcher.get();\n if (deep ||\n forceTrigger ||\n (isMultiSource\n ? newValue.some(function (v, i) {\n return hasChanged(v, oldValue[i]);\n })\n : hasChanged(newValue, oldValue))) {\n // cleanup before running cb again\n if (cleanup) {\n cleanup();\n }\n call(cb, WATCHER_CB, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n }\n else {\n // watchEffect\n watcher.get();\n }\n };\n if (flush === 'sync') {\n watcher.update = watcher.run;\n }\n else if (flush === 'post') {\n watcher.post = true;\n watcher.update = function () { return queueWatcher(watcher); };\n }\n else {\n // pre\n watcher.update = function () {\n if (instance && instance === currentInstance && !instance._isMounted) {\n // pre-watcher triggered before\n var buffer = instance._preWatchers || (instance._preWatchers = []);\n if (buffer.indexOf(watcher) < 0)\n buffer.push(watcher);\n }\n else {\n queueWatcher(watcher);\n }\n };\n }\n if (process.env.NODE_ENV !== 'production') {\n watcher.onTrack = onTrack;\n watcher.onTrigger = onTrigger;\n }\n // initial run\n if (cb) {\n if (immediate) {\n watcher.run();\n }\n else {\n oldValue = watcher.get();\n }\n }\n else if (flush === 'post' && instance) {\n instance.$once('hook:mounted', function () { return watcher.get(); });\n }\n else {\n watcher.get();\n }\n return function () {\n watcher.teardown();\n };\n}\n\nvar activeEffectScope;\nvar EffectScope = /** @class */ (function () {\n function EffectScope(detached) {\n if (detached === void 0) { detached = false; }\n this.detached = detached;\n /**\n * @internal\n */\n this.active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index =\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\n }\n }\n EffectScope.prototype.run = function (fn) {\n if (this.active) {\n var currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n }\n finally {\n activeEffectScope = currentEffectScope;\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"cannot run an inactive effect scope.\");\n }\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.on = function () {\n activeEffectScope = this;\n };\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n EffectScope.prototype.off = function () {\n activeEffectScope = this.parent;\n };\n EffectScope.prototype.stop = function (fromParent) {\n if (this.active) {\n var i = void 0, l = void 0;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].teardown();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n // nested scope, dereference from parent to avoid memory leaks\n if (!this.detached && this.parent && !fromParent) {\n // optimized O(1) removal\n var last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = undefined;\n this.active = false;\n }\n };\n return EffectScope;\n}());\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\n/**\n * @internal\n */\nfunction recordEffectScope(effect, scope) {\n if (scope === void 0) { scope = activeEffectScope; }\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"onScopeDispose() is called when there is no active effect scope\" +\n \" to be associated with.\");\n }\n}\n\nfunction provide(key, value) {\n if (!currentInstance) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"provide() can only be used inside setup().\");\n }\n }\n else {\n // TS doesn't allow symbol as index type\n resolveProvided(currentInstance)[key] = value;\n }\n}\nfunction resolveProvided(vm) {\n // by default an instance inherits its parent's provides object\n // but when it needs to provide values of its own, it creates its\n // own provides object using parent provides object as prototype.\n // this way in `inject` we can simply look up injections from direct\n // parent and let the prototype chain do the work.\n var existing = vm._provided;\n var parentProvides = vm.$parent && vm.$parent._provided;\n if (parentProvides === existing) {\n return (vm._provided = Object.create(parentProvides));\n }\n else {\n return existing;\n }\n}\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\n // fallback to `currentRenderingInstance` so that this can be called in\n // a functional component\n var instance = currentInstance;\n if (instance) {\n // #2400\n // to support `app.use` plugins,\n // fallback to appContext's `provides` if the instance is at root\n var provides = instance.$parent && instance.$parent._provided;\n if (provides && key in provides) {\n // TS doesn't allow symbol as index type\n return provides[key];\n }\n else if (arguments.length > 1) {\n return treatDefaultAsFactory && isFunction(defaultValue)\n ? defaultValue.call(instance)\n : defaultValue;\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\n }\n }\n else if (process.env.NODE_ENV !== 'production') {\n warn(\"inject() can only be used inside setup() or functional components.\");\n }\n}\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once,\n capture: capture,\n passive: passive\n };\n});\nfunction createFnInvoker(fns, vm) {\n function invoker() {\n var fns = invoker.fns;\n if (isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\n }\n }\n else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\n }\n }\n invoker.fns = fns;\n return invoker;\n}\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\n var name, cur, old, event;\n for (name in on) {\n cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' &&\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\n }\n else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n }\n else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove(event.name, oldOn[name], event.capture);\n }\n }\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n function wrappedHook() {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove$2(invoker.fns, wrappedHook);\n }\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n }\n else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n }\n else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return;\n }\n var res = {};\n var attrs = data.attrs, props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\n \"\".concat(formatComponentName(\n // @ts-expect-error tag is string\n tag || Ctor), \", but the declared prop name is\") +\n \" \\\"\".concat(key, \"\\\". \") +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res;\n}\nfunction checkProp(res, hash, key, altKey, preserve) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true;\n }\n else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true;\n }\n }\n return false;\n}\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren(children) {\n for (var i = 0; i < children.length; i++) {\n if (isArray(children[i])) {\n return Array.prototype.concat.apply([], children);\n }\n }\n return children;\n}\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.