{"version":3,"file":"js/app-legacy.c6566616.js","mappings":"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IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,QAAS,CAAC,CAAC,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,GAAI,MAAO,EAAE,GAAI,MAAO,EAAE,GAAI,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,IAAK,MAAO,EAAE,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E,KAAQ,eAAgB,YAAe,CAAC,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CA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C,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAA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,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO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AAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,KAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,OAAQ,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,OAAQ,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,OAAQ,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,MAAO,CAAC,GAAI,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,KAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,MAAO,CAAC,IAAK,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,C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M,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,KAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAA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AC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,WAAc,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,YAAa,UAAa,IAAK,iBAAkB,OAAQ,UAAa,iBAAkB,YAAa,qBAAsB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,2BAA6B,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,GAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,SAAU,UAAa,IAAK,iBAAkB,OAAQ,UAAa,kBAAmB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,eAAgB,YAAe,CAAC,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,WAAc,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,sBAAuB,UAAa,IAAK,iBAAkB,QAAS,UAAa,YAAa,YAAa,4BAA6B,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,iBAAmB,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,GAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,WAAY,UAAa,IAAK,iBAAkB,SAAU,UAAa,qBAAsB,YAAa,sBAAuB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,QAAU,SAAY,CAAE,KAAQ,eAAgB,YAAe,CAAC,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,WAAc,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,GAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,SAAU,UAAa,IAAK,iBAAkB,OAAQ,UAAa,kBAAmB,YAAa,4BAA6B,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,iBAAmB,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,QAAS,UAAa,IAAK,iBAAkB,QAAS,UAAa,aAAc,YAAa,sBAAuB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,WAAa,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,GAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,SAAU,UAAa,IAAK,iBAAkB,OAAQ,UAAa,YAAa,YAAa,sBAAuB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,WAAa,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,GAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,mBAAoB,UAAa,IAAK,iBAAkB,SAAU,UAAa,aAAc,YAAa,sBAAuB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,WAAa,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,GAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,QAAS,UAAa,IAAK,iBAAkB,QAAS,UAAa,gBAAiB,YAAa,4BAA6B,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,iBAAmB,SAAY,CAAE,KAAQ,eAAgB,YAAe,CAAC,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,IAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,K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AC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,QAAS,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,WAAc,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,UAAW,UAAa,IAAK,iBAAkB,OAAQ,UAAa,kBAAmB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,aAAc,UAAa,IAAK,iBAAkB,OAAQ,UAAa,kBAAmB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,aAAc,UAAa,IAAK,iBAAkB,OAAQ,UAAa,eAAgB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,MAAO,UAAa,QAAU,SAAY,CAAE,KAAQ,eAAgB,YAAe,CAAC,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC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,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,WAAc,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,GAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,YAAa,UAAa,IAAK,iBAAkB,OAAQ,UAAa,gBAAiB,YAAa,4BAA6B,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,iBAAmB,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,kBAAmB,UAAa,IAAK,iBAAkB,SAAU,UAAa,YAAa,YAAa,sBAAuB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,WAAa,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,aAAc,UAAa,IAAK,iBAAkB,OAAQ,UAAa,iBAAkB,YAAa,qBAAsB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,GAAM,cAAe,GAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,UAAW,UAAa,IAAK,iBAAkB,UAAW,UAAa,kBAAmB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,GAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,QAAS,UAAa,IAAK,iBAAkB,QAAS,UAAa,kBAAmB,YAAa,6BAA8B,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,UAAY,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,aAAc,UAAa,IAAK,iBAAkB,OAAQ,UAAa,eAAgB,YAAa,wBAAyB,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,QAAU,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,OAAQ,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,UAAa,CAAE,KAAQ,UAAW,GAAM,KAAM,WAAc,CAAE,WAAY,SAAU,cAAe,IAAM,cAAe,IAAM,SAAU,KAAM,QAAS,KAAM,KAAQ,QAAS,UAAa,IAAK,iBAAkB,QAAS,UAAa,gBAAiB,YAAa,aAAc,SAAU,MAAO,SAAU,KAAM,SAAU,WAAY,UAAa,QAAU,SAAY,CAAE,KAAQ,UAAW,YAAe,CAAC,CAAC,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,MAAO,CAAC,KAAM,Y,oBCM19nNC,IAAYC,KACZC,IAAoBD,KACpBA,IAAAA,KAAAA,gBAAkCE,EAClCnD,EAAAA,WAAAA,IAAQoD,K,sFCTKC,EAAiB,SAACrE,EAAasE,GACxC,OAAY,OAARtE,GAAgBuE,MAAMvE,GACfA,EAGJsE,EACDtE,EAAIwE,oBAAeC,EAAW,CAC5B1L,MAAO,WACP2L,SAAUJ,IAEZtE,EAAIwE,gBACd,EAEaG,EAAe,0EAmBvB,OAnBuB,iFAGjB,wFACC1M,KAAK2M,WAAY,CAAF,wCAAS3M,KAAK2M,YAAU,uBACX3N,EAAAA,EAAAA,KAAAA,IACvB,4BACJ4N,MAAK,SAAAC,GAAC,OAAIA,EAAEjO,IAAI,IAAC,gCAFdoB,KAAK2M,WAAa,EAAH,sDAG1B,qDARuB,IAQvB,0EAEM,6GACI3M,KAAK8M,mBAAmBF,MAAK,SAAAG,GAAC,OAAIA,EAAEC,KAAI,SAAAH,GAAC,OAAIA,EAAER,IAAI,GAAC,KAAC,gDAC/D,qDAJA,IAIA,wEAEM,WAAwBA,GAAY,+FACrBrM,KAAK8M,mBAAkB,OAEc,OAFjDG,EAAM,EAAH,KAEHC,EAAcD,EAAIE,WAAU,SAAAN,GAAC,OAAIA,EAAER,OAASA,CAAI,IAAC,mBAC/B,IAAjBa,EAAqBD,EAAIC,GAAaE,OAAS,MAAI,gDAC7D,sDAPA,MAOA,EAnBuB,GAsB5B,MAAmBV,ECnCnB3D,EAAAA,WAAAA,OAAW,WAAYqD,G,4CCCvBiB,IAAAA,OAAaC,KAEbvE,EAAAA,WAAAA,OAAW,yBAAyB,SAAU3J,GAC1C,OAAOiO,IAAMjO,GAAOmO,QAAQD,SAAS,KAAM,CACvCE,SAAU,cAElB,IAEAzE,EAAAA,WAAAA,OAAW,kBAAkB,SAAU3J,GACnC,OAAOiO,IAAMjO,GAAOkO,SAAS,KAAM,CAC/BE,SAAU,cAElB,IAEAzE,EAAAA,WAAAA,OAAW,cAAc,SAAU3J,EAAaqO,GAC5C,OAAOJ,IAAMjO,GAAOqO,OAAOA,EAC/B,ICnBA,IAAItO,EAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,MAAM,CAACwK,YAAY,CAAC,OAAS,uBAAuBnN,MAAM,CAAC,IAAME,EAAI2P,aAAa,MAAQ3P,EAAIoD,MAAM,aAAa,mBAAmB,MAAQ,mBAAmB,KAAO,iBAC5O,EACIhD,EAAkB,GCWtB,G,QAAA,CACAC,MAAAA,CACA+C,MAAAA,CACArD,KAAAA,OACAS,aAAAA,GAEAgN,KAAAA,SAEA7I,SAAAA,CACAgL,aAAAA,WACA,gBACA,qEACA,KCzBqQ,ICOjQ,GAAY,OACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIF,EAAe,EAAiB,Q,qBClB4B,EAAU,W,IAAS7P,EAAM,K,EAAC,EAAM,MAAC,G,OAAG,OAAC6C,MAAG,CAAC,KAAO,IAAkB,GAAI,CAAW7C,MAAM,gBAAU,QAAE,MAAMK,CACpK,UAGD,GAASiB,GAAAA,gBAAQhB,EAAe,kC,QCIhC,IACAC,MAAAA,CACAuP,MAAAA,CACA7P,KAAAA,QACAS,SAAAA,GAEAqP,eAAAA,CACA9P,KAAAA,CAAAA,OAAAA,QACAS,QAAAA,OAGAO,QAAAA,CACA+O,YAAAA,SAAAA,GACA,oCACA,qCAEA,qBAEA,IC1BmQ,MCO/P,IAAY,OACd,GACA,EACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,gDClBqHpN,GAAAA,WAAmB,IAAI1C,EAAI+P,KAAwBjQ,EAAK,EAAC,S,OAAC,EAAM,YAAC,CAAE,OAAIE,MAAOA,EAAM,QAA+G,CAACA,EAAG,MAAWA,CAAAA,EAAIgQ,MAAQ,CAAC,EAAE,KAAKC,CAAsBnQ,YAAM,S,CAAC,YAAQ,O,MAAC,CAAgB,UAA2E4C,CAAAA,EAAAA,GAAAA,EAAY,KAAM,uEAAC5C,YAAM,U,CAAC,OAASE,GAAIc,EAAAA,YAAO,iB,MAAC,CAAkB,OAAId,cAAc,K,CAAqC0C,EAAAA,GAAAA,GAAY,sCAAM,YAAU,OAAiB,MAAI,CACpqB,iBACGtC,cAAkB,M,yICFsBqC,GAAOK,WAAS,MAAU,KAAUhD,EAAK,EAAC,S,OAAC,EAAM,KAAG,C,MAAC,CAAiB,QAAIE,MAAO,UAEzHI,CAAAA,EAAAA,GAAAA,YAAoB,EAExB,E,MCGA,IACA6C,KAAAA,oBACA5C,MAAAA,CACA6P,MAAAA,CACAnQ,KAAAA,QACAS,SAAAA,KCZwQ,MCOpQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCYhC,IACAH,MAAAA,CACAoI,MAAAA,OACAsH,UAAAA,OACAC,QAAAA,OACAlP,QAAAA,QACAoP,MAAAA,CACAnQ,KAAAA,QACAS,SAAAA,IAGAgG,WAAAA,CAAA2J,SAAAA,KCzCoQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B/O,I,SAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,eAAe,CAAC3C,MAAM,CAAC,MAAQE,EAAIyI,MAAM,QAAUzI,EAAIgQ,QAAQ,QAAUhQ,EAAIc,QAAQ,MAAQd,EAAIkQ,OAAOvH,YAAY3I,EAAIoQ,GAAG,CAACpQ,EAAIqQ,GAAI1M,OAAO2M,KAAKtQ,EAAIuQ,eAAe,SAASC,GAAM,MAAO,CAAChO,IAAIgO,EAAK5H,GAAG,SAAS6H,GAAO,MAAO,CAACzQ,EAAI0Q,GAAGF,EAAK,KAAK,KAAKC,GAAO,EAAE,KAAI,MAAK,IAAO,CAAChO,EAAG,QAAQ,CAAC3C,MAAM,CAAC,QAAUE,EAAI2Q,MAAM,gBAAkB3Q,EAAI4Q,oBAAoB,EACra,GACIxQ,GAAkB,GCQtB,IACAC,MAAAA,CACAoI,MAAAA,OACAuH,QAAAA,OACAW,MAAAA,OACA7P,QAAAA,CACAN,SAAAA,EACAT,KAAAA,SAEAmQ,MAAAA,CACA1P,SAAAA,EACAT,KAAAA,SAEA6Q,gBAAAA,CACApQ,aAAAA,EACAT,KAAAA,UCzBkQ,MCO9P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBY0C,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAsC,O,IAAmB,U,GAAC,SAAW,G,IAAsB7I,EAAM,Q,MAAC,wBAAuB,C,MAAkB,CAA2B,QAAQE,EAAM,MAAC,qB,MAA+B6Q,EAAU,eAAgB,MAAE,mCAAC,WAAW7Q,EAAM,aAA6D,SAAE,sCAAC,WAAS,eAAM2I,QAAW,G,YAA2B,O,IAAoC,U,GAAhBmI,SAAM,G,IAAEvQ,EAAK,EAALA,QAAS,EAAW,SAAeoC,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAuDQ,EAAAA,GAAAA,GAAK,yBAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAA4B,CAA4B,MAAQS,EAAAA,eAAM,WAAQuI,EAAO,WAAC,MAAOgI,EAAO,QAA8B,OAAG,YAAC,e,GAA4BC,CAA6B,oBAAC,uBAAI,KAAiB,eAAM,MAIhhC,E,6CCJiG,W,IAAW,O,EAAwB,QAAU/Q,G,OAAY,cAAiB,CAAK,MAAC,CAAC2I,MAAW,EAAC3I,MAASwC,SAAI,EAAS,SAACoG,QAAG,U,gBAAiB,G,YAAmB5I,EAAI0Q,GAAG,E,IAAgB,U,GAAoB,SAAQM,G,IAAM,EAASF,EAAM,OAAC,IAAU9Q,M,MAAY,CAAM,EAAC,mB,QAAW,EAACiR,MAAW,QAAG,OAAC,oBAAI,KAAS,CAAQ,qB,IAA0D,S,MAACvP,CAAkB,cAAK1B,SAAIkR,SAAgB,GAAWpR,EAAM,OAAC,EAAU,WAAQ,UAAY,CAAC2C,EAAG,YAAS,QAAC3C,MAAM,CAAC,KAAO,GAAU,kBAAoHA,CAAAA,EAAK,IAAC,C,MAAC,CAA+B,MAAQE,YAA6D,0FAACwB,MAAM,CAACH,MAAOrB,EAAImR,mBAAe5O,MAAQ,EAAC,2C,SAAoB4O,I,MAAmBzP,CAA0B,sBAAG,SAAI,SAAe,GAAC5B,EAAM,eAAC,EAAkC,8BAAmF,EAAC,M,MAAC,CAAqB,MAAQE,EAAIoR,sBAAW,YAAa,qCAAC,WAAY,EAAE,aAAyD,qBAAC5P,MAAM,aAACH,SAAWgQ,GAAkB9O,UAAS,G,QAAoB8O,EAAAA,WAAoB,0B,MAAE3P,CAA6B,yBAAI,SAAG,YAC1yC,oBACGtB,EAEJ,WAAiBA,uB,UC6CjB,I,SAAA,CACAC,MAAAA,CAAAA,QAAAA,UAAAA,QAAAA,WAAAA,SAAAA,eACAsE,SAAAA,CACAsM,WAAAA,WACA,8CACA,gDACA,cACA,GAEApQ,KAAAA,WAAA,WACA,OACAJ,OAAAA,EACA0Q,eAAAA,EACAG,mBAAAA,CAAAA,SAAAA,GAAA,qCACAD,iBAAAA,GACAE,sBAAAA,CACA,gDACA,+EAGA,ICrEyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4B,GAAU,W,IAASzR,EAAM,K,EAAC,EAAM,MAAC,G,OAAS,MAAQ,C,MAAQ,CAAe,cAAqC,MAAS,QAAa,UAAWG,GAAK,6BAAG,QAAC,UAAC,KAAO,EAAC,M,GAAyC,CAAmB,kBAAO,OAAN,mBAAO,EAAS,QAACH,IAAgB,QAAE,MAAMK,CAClU,UAGD,GAASiB,GAAAA,WAAQhB,EAAAA,GAAe,c,oBCchC,IACAC,MAAAA,CACAE,MAAAA,SACAE,MAAAA,QACAR,KAAAA,OACAoB,MAAAA,OACAwP,WAAAA,OACAW,YAAAA,QAEA3Q,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,qIAGA,OAFA,iBACA,aACAyQ,EAAAA,EAAAA,YAAAA,IAAAA,EAAAA,MAAAA,GAAA,kBAEAC,EAAAA,EAAAA,KAAAA,UACAC,EAAAA,CACArQ,QAAAA,CACA,qCAGAuN,MAAAA,SAAAA,GAAA,wBANA3N,EAAAA,EAAAA,KAOA,UACA,0EAEAU,GAAAA,EAAAA,MACA,eACA,+IAEA,gCAGA,OAHA,UAEA,aACA,4FAtBA,EAwBA,ICvD2Q,MCOvQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCWhC,IACAvB,MAAAA,CACAgB,MAAAA,CAAAtB,KAAAA,SACA6R,eAAAA,CAAA7R,KAAAA,OAAAS,QAAAA,MACAqQ,WAAAA,CAAA9Q,KAAAA,QACAyR,YAAAA,CAAAzR,KAAAA,SAEAyG,WAAAA,CACAqL,iBAAAA,GACAC,mBAAAA,IAEA/Q,QAAAA,CACAgR,YAAAA,WACA,wBACA,IC3C2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICpBYC,GCFPC,GFsBL,GAAe,GAAiB,QGtBYxP,GAAOK,WAAS,MAAU,KAAWJ,EAAAA,EAAAA,MAAY,GAAM,OAAM,EAAG,UAAC,CAACA,YAAY,QAAoB,CAACD,EAAG,KAAUC,YAAY,oBAAe,CAAC1C,EAAG,IAAO,CAA6B0C,YAAY,eAAe,CAAC1C,EAAIG,GAAGH,EAAIkS,GAAGlS,EAAImS,UAAW,GAAG,EAAC,IAAI,CAACzP,YAAY,eAAe,CAAC1C,EAAI0Q,GAAG,OAAW,YAAK,OACnV,2BACGtQ,CAAAA,EAAAA,GAAAA,YAAoB,IAExB,E,MCHA,IACIC,MAAO,CAAC,OAAQ,YCFwR,MCQxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,YCnBgDqC,GAAAA,WAAqB,IAAGD,EAAG,KAAmB3C,EAAK,EAAC,S,OAAC,OAAUE,CAAW,YAAC,WAAC2I,CAAAA,EAAAA,kBAAoB,C,MAAK,CAAQC,QAAG,W,YAAoD,EAAI,GAAG,CAAC5I,C,IAAsB,WAAC,WAACoS,MAAM,0BAAM,2BAAC5P,IAAeoG,E,OAAc,G,KAA6E,cAAC,WAACwJ,MAAM,6BAAO,MAAK,CAAI,uBAAIpS,IAAyB,EAA0B0C,OAAAA,IAAqB1C,MAAM,KAAmB,KAAO,QAAI,W,MAAa,GAAC,MAAM,C,YAAO,Q,GAAC,WAAYqB,W,MAAM,CAAI,EAACrB,GAAAA,EAAI8Q,C,IAAO,OAAoC,MAAC,CAAG,MAAC,QAAC,KAAQ,O,kBAAkC,kB,GAAkB,C,MAAiCuB,SAAe,GAAE,yBAAC,EAAIrS,OAAO,SAAe,GAAC,EAAUA,gBAAU,IAAsC,gBAAkBA,KAAIsS,CAAiB,QAAI,EAAQ,MAACxS,OAAM,S,MAAO,EAAC,MAAQ,oCAAI,EAAG,QAAC,CAAG,MAAI,CAAM,kBAAuE,GAAW,QAAqC,IAAG,EAAG,oBAAI,sBAC9hC,gBACGM,MAAAA,EAAAA,MAEJ,gBAAiBA,EAAAA,mB,cCJ2BqC,GAAOK,WAAS,MAAU,KACrE,aACD,OAAI1C,EAAAA,GAAAA,GAAoB,oBAExB,E,MCHIyJ,GAAS,CAAC,EAKV,IAAY,OACdA,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCjB4B,GAAU,W,IAAoC/J,EAAM,K,EAAC,W,OAAmB,aAAagB,CAAAA,EAAAA,GAAAA,EAAAA,CAAO,OAAI2B,cAAiB,GAAWC,OAAW,EAAC,WAAwF,QAAe1C,CAAG,EAAG,KAAKyI,CAAU,YAAW,6DAAE/F,CAAAA,EAAAA,GAAAA,SAAY,WAAuE5C,MAAM,qB,KAAC,KAAO,IAAC,CAAQ,mFAAE,MAAM4Q,CAAyB,MAAW,WACle,6BACGtQ,MAAAA,CAAAA,EAAAA,GAAe,EAAG,GAAE,aAExB,WAASgB,E,QCUT,IACAf,MAAAA,CAAAA,UAAAA,QAAAA,aCfsQ,MCQlQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnBXkS,I,2BAAgB,wCAOhC,OAPgC,mCAC1B,WACH,MAAO,uCAAuCC,QAAQ,SAAS,SAAA1D,GAC3D,IAAME,EAAqB,GAAhByD,KAAKC,SAAiB,EAC3BC,EAAS,KAAL7D,EAAWE,EAAS,EAAJA,EAAW,EACrC,OAAO2D,EAAEC,SAAS,GACtB,GACJ,KAAC,EAPgC,IC+CrC,IACAvS,MAAAA,CACAS,QAAAA,CACAf,KAAAA,SAEA0I,MAAAA,CACA1I,KAAAA,QAEA2I,SAAAA,CACA3I,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,SAEA8S,eAAAA,CACA9S,KAAAA,QACAS,SAAAA,IAGAgG,WAAAA,CAAAsM,gBAAAA,GAAAC,cAAAA,IACAlS,KAAAA,WACA,OAAAiQ,OAAAA,GAAAA,SACA,EACA/P,QAAAA,CACAiQ,MAAAA,WACA,uBACA,EACAsB,gBAAAA,WACA,iCACA,IC5EiQ,MCO7P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YClBY7P,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAYuB,C,MAAM,CAAyB,QAAY,MAAI,QAAY,OAAC,IAA2B,WAAarB,GAAiD,sCAAG,WAAC,4C,GAA0B,CAAiC,kBAAE,yBAAC2I,G,YAAwC,KAAStI,CAAAA,C,IAAO,YAA4C,eAAI,MAAK,GAAI,4BAAIL,IAAuB,MAAQA,IAAU,GAAM,GAACA,UAAIgT,KAAAA,CAAM,MAAI,QAC9e,eACG5S,EAEJ,E,MCaA,IACAC,MAAAA,CACAgB,MAAAA,QACA+B,MAAAA,OACA6P,WAAAA,SAEAlS,QAAAA,CACAiS,KAAAA,WAEA,OADA,uBACA,mBACA,EACAjC,MAAAA,WAEA,OADA,uBACA,mBACA,IC/BmQ,MCO/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,gDClB4FjR,I,kBAAM,W,IAAC,EAAM,K,EAAI,QAAYE,G,OAAmB,QAAYkT,C,MAAa,CAAuB,kBAAwCvK,CAAAA,EAAAA,GAAAA,EAAY3I,C,MAA4B,CAAY4I,KAAG,G,UAAsB,EAAI,OAAS,EAAE,QAAC,eAACwJ,WAAM,QAAK,mBAAgB,mBAA+CtS,YAAM,kBAAC,gBAA+B,cAA0B,MAAO,iBAAe,EAAG,OAAC,GAAC,MAAQ,U,GAAiB,WAAmJ,OAAxIqT,EAAAA,GAAAA,EAAc,C,MAAA,CAAC,+BAAG,MAAS,kBAA0BzQ,KAAAA,gB,GAAgC,CAAmB,kBAAC5C,OAAM,gBAAC,KAAwB,gBAAC6C,YAAG,O,YAAS,C,aAA4ByQ,OAAyB,OAAI3Q,SAAW,GAAE3C,KAAM,IAAU,IAAIE,MAAO,YAAwGF,OAAM,wBAAC,IAAc,CAAC2C,EAAG,IAAK,CAACC,MAAAA,CAAyB1C,KAAQ,K,CAAuB,6BAAcqT,EAAAA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,YAAAA,UAAAA,GAAAA,EAAAA,KAAAA,EAAAA,GAAAA,GAAAA,CAAS,MAAC,CAACvT,KAAM,OAAU,SAAE,YAAaoS,WAAkHpS,CAAAA,EAAK,KAAC,O,MAAC,CAAsB,qBACtqC,OACGM,KAAAA,K,kKCqCJ,IACAC,MAAAA,CACAoI,MAAAA,OACA6K,KAAAA,OACAJ,aAAAA,OACAK,WAAAA,CACAxT,KAAAA,OACAS,QAAAA,eAEAgT,SAAAA,CACAzT,KAAAA,QACAS,SAAAA,GAEAiT,gBAAAA,OACAC,WAAAA,QACAC,MAAAA,QACAC,OAAAA,OACAC,WAAAA,OACAC,OAAAA,QACAT,SAAAA,QACAU,aAAAA,SAEAhT,QAAAA,CACAoS,aAAAA,WACAvR,GAAAA,EAAAA,MAAAA,eACA,EACAoS,oBAAAA,WACApS,GAAAA,EAAAA,MAAAA,gBACA,ICnEmQ,MCQ/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB4B,GAAU,W,IAAS9B,EAAM,K,EAAC,EAAM,MAAKC,G,OAAK,MAAW,C,MAAO,CAAe,OAAW,KAA0B,MAAS,EAACC,MAAY,UAAWC,GAAK,UAAYC,EAAAA,OAAK,UAAC,QAAU,EAAI,QAAU,YAAG,MAAC,QAAC,SAAQ,Y,GAAyC,CAAmB,kBAAKF,OAAJ,mBAAW,UAAqB,I,GAA4B,cAAO,W,MAAE,QAAE,MAAMG,CAAmC,KAAC,KAEnbC,CAAAA,EAAAA,GAAAA,UAAoB,eAExB,O,QCeA,IACAC,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,OAEAO,KAAAA,CACAP,KAAAA,QAEAQ,MAAAA,CACAR,KAAAA,SACAS,QAAAA,WAAA,GAEAC,MAAAA,CACAV,KAAAA,QACAS,SAAAA,GAEAP,KAAAA,CACAF,KAAAA,QAEAW,MAAAA,CACAX,KAAAA,OACAS,QAAAA,aAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,UAEAN,MAAAA,CACAH,KAAAA,QACAS,SAAAA,GAEAG,SAAAA,CACAZ,KAAAA,QACAS,SAAAA,GAEAyT,YAAAA,CACAlU,KAAAA,QACAS,SAAAA,GAEAI,QAAAA,CACAb,KAAAA,OACAS,QAAAA,OAGAK,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,uIAKA,GAJA,iBACA,aACAkT,EAAAA,CAAA5S,QAAAA,CAAA,wDAEAL,EAAAA,EAAAA,GACA,+CACAA,EAAAA,KAAAA,MAAAA,EAAAA,KAAAA,EAAAA,MAAAA,GAAAA,MAAAA,SAAAA,GAAA,6EACAA,EAAAA,KAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,MAAAA,SAAAA,GAAA,6CAFAC,EAAAA,EAAAA,GAGA,UACA,0EAEA,yCAGA,OAHA,UAEA,aACA,4FAfA,EAiBA,ICpFwQ,MCOpQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAASpB,EAAM,K,EAAC,EAAM,MAAKC,G,OAAK,MAAW,C,MAAO,CAAe,OAAW,KAA0B,MAAS,EAACC,MAAY,UAAWC,GAAK,UAAYC,EAAAA,OAAK,UAAC,QAAU,EAAI,QAAU,YAAG,MAAC,QAAC,SAAQ,Y,GAAyC,CAAmB,kBAAKF,OAAJ,mBAAW,UAAqB,I,GAA4B,cAAO,W,MAAE,QAAE,MAAMG,CAAmC,KAAC,KAEnbC,CAAAA,EAAAA,GAAAA,UAAoB,eAExB,O,QCeA,IACAC,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,CAAAA,OAAAA,OAAAA,QAEAO,KAAAA,CACAP,KAAAA,QAEAQ,MAAAA,CACAR,KAAAA,SACAS,QAAAA,WAAA,GAEAC,MAAAA,CACAV,KAAAA,QACAS,SAAAA,GAEAP,KAAAA,CACAF,KAAAA,OACAS,QAAAA,MAEAE,MAAAA,CACAX,KAAAA,OACAS,QAAAA,aAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,UAEAN,MAAAA,CACAH,KAAAA,QACAS,SAAAA,GAEAc,QAAAA,CACAvB,KAAAA,OACAS,aAAAA,GAEAG,SAAAA,CACAZ,KAAAA,QACAS,SAAAA,GAEAI,QAAAA,CACAb,KAAAA,OACAS,QAAAA,OAGAK,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,qIAIA,OAHA,iBACA,sBAEAC,EAAAA,EAAAA,EAAA,SACAA,EAAAA,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,MAAAA,EAAAA,SAAAA,MAAAA,SAAAA,GAAA,wBAAAC,EAAAA,EAAAA,KACA,UACA,0EAEA,gCAGA,OAHA,UAEA,aACA,4FAZA,EAcA,IClFsQ,MCOlQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,gDClBqEpB,I,kBAAM,W,IAAC,O,EAAoB,EAAO,MAAC,G,OAAE,uBAAE,MAAK,CAAyB4C,iBAAY,GAAc5C,MAAM,KAAU,iBAAE,YAAY2C,cAASC,MAAAA,CAA2C1C,KAAOA,KAA0E,CAACA,EAAG,MAAO,CAACkS,EAAGlS,KAAImU,CAAoCzR,YAAY,8BAAW,CAAC1C,EAAIG,GAAGH,EAAIkS,GAAGlS,EAAIgQ,UAAW,EAAG,OAAM,CAC3d,0CACG5P,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,kCAExB,YAAiBA,W,iDCejB,IACAoG,WAAAA,CAAA2J,SAAAA,IACA9P,MAAAA,CAAAA,QAAAA,cAAAA,YCrBmQ,MCQ/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB4B,GAAU,W,IAAeP,EAAM,K,EAAC,W,OAAkB,OAAQ,CAAE,OAAI2C,eAAc,GAAC3C,MAAM,KAAU,SAAE,MAAM4Q,CAClK,UAGD,GAAStP,GAAAA,YAAQhB,IAAAA,E,QCHb,GAAS,CAAC,EAKV,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YCjB4B,GAAU,W,IAASN,EAAM,K,EAAC,EAAM,MAAK,G,OAAC,EAAK,MAAG,OAAI2C,KAAG,KAAWC,GAAAA,M,CAAgC,OAAU,CAAW,mBAAE,YAAW,CAACA,SAAY,aAAqD,SAAYvC,CAAwB,YAAQ,0BAAOuC,CAAAA,EAAAA,GAAAA,SAAY,WAAsB,MAAMgO,CAAE,EAAC,KAAS,GAAC,U,KAAW,GAAO,EAAC1Q,MAAOA,CAAqB,YAAU0I,uBAAoBhG,CAAAA,EAAAA,GAAAA,WAAY,WAAoC,MAAMgO,CAAE,EAAC,KAAU,GAAC,U,KAAW,GAAO,EAAI,SAAW1Q,EAAG,MAAC0I,CAAa,YAASuH,qCACnjB,6BACG7P,MAAAA,CAAAA,EAAAA,GAAe,EAAG,GAAE,aAExB,QAASgB,EAAM,QAAEhB,E,QCajB,IACAC,MAAAA,CACAoI,MAAAA,CACA1I,KAAAA,OACAS,QAAAA,MAEAa,MAAAA,CACAtB,KAAAA,OACAS,QAAAA,MAEAkI,SAAAA,CACA3I,KAAAA,CAAAA,QAAAA,QACAS,SAAAA,KC7BmQ,MCO/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,wBClB4B,GAAU,W,IAAqBkC,EAAAA,KAAmB5C,EAAK,EAAC,S,OAAC,OAAqB,C,YAAQ,OAAS,OAAI2C,QAAU,EAAC,QAAC3C,KAAM,YAAW,SAAE,MAAM4Q,CACnM,WAGD,GAAStP,GAAAA,YAAQhB,IAAAA,E,QCKjB,IACAC,MAAAA,CACAS,QAAAA,CACAf,KAAAA,QACAS,SAAAA,KCboQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYiC,GAAOK,WAAS,MAAU,KAAUhD,EAAK,EAAC,S,OAAC,MAAYsU,C,MAAU,CAAgB,MAAQpU,EAAIqU,UAAK,YAAIrU,MAAOA,EAAM,QAE3JI,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,aAExB,E,MCCA,IACAC,MAAAA,CACAgB,MAAAA,OACAiT,QAAAA,OACAC,OAAAA,CACAxU,KAAAA,QACAS,SAAAA,GAEAgU,KAAAA,CACAzU,KAAAA,QACAS,SAAAA,GAEA6T,MAAAA,CACAtU,KAAAA,QACAS,SAAAA,IAGAmE,SAAAA,CACA8P,UAAAA,WACA,+BACA,eACA,wBACA,iBAEA,iBAEA,EACAL,UAAAA,WACA,+BACA,YAGA,UAFA,QAIA,wBACA,YAGA,QAFA,UAKA,IAEA,IChDuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,kFClBqP,W,IAAW,O,EAA8B,QAAYpU,GAAc,EAAW,MAAG,Y,OAAC,OAAoB,C,MAAC,CAAmB,QAAY,UAAM,eAAmB0U,EAAAA,GAAAA,kCAAY,UAAc,MAAKC,GAAAA,iBAAW,0BAAC,cAA2B,eAAe,EAAG,WAAC,UAAYC,EAAAA,UAAM,UAAWC,GAAK,kBAAe,GAAC,mBAAiC,aAAW7U,KAAa,eAAe8U,EAAAA,YAAS,eAAYC,EAAK,YAAC,iBAAaC,EAAM,MAAC,gBAAe1L,GAAS,MAAQtJ,EAAIiV,MAAY,YAAG,KAAC,OAAC,gBAAQ,e,SAA2B,EAACC,SAAmB,SAAC,WAAC,c,OAA0CC,EAAAA,OAAiB,SAAC,WAAC,eAAqB,I,GAAwC,CAAC,MAAQ,SAAC,GAAiBnV,OAAImV,EAAAA,YAAa,IAAE,iCAACxM,EAAAA,WAAoB,CAACnG,EAAcoG,sBAAa,YAAC,aAAcuM,C,SAAkC,SAAQ,G,aAA4BC,E,eAAuC,O,IAAmMzS,U,oBAA6B,GAAO3C,WAAoS,gBAAiL,QAAI,GAAC,CAAkB,eAAU,GAAC,OAAcqV,EAAAA,kBAAqB,EAAIrV,WAA+CF,IAA0C,mHAAnV,Q,GAAA,CAAC,kBAAM,OAAC,iCAA4J,IAAa,sHAAjdsV,EAAAA,GAAAA,EAAAA,C,GAA+B,CAAC,kBAAM,OAAC,iCAAkL,I,GAA2B,KAAWE,CAAAA,EAAAA,EAAAA,EAAAA,CAAiB,EAAI,GAACH,aAAW,kF,SAAwV,G,uBAAoD,W,MAAExM,CAAAA,EAAW,uBAAS,eAAogB,OAApgB,0B,MAAK,CAAUC,WAAG,qB,GAAiB,CAAyO,oBAAI,OAAK,EAAK,aAAYpH,G,YAAuC,O,IAAmB,UAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,4JAAG,IAAW,mBAAC0Q,MAAM,CAAM,mBAAK,SAAM,YAAI,aAAkB,CAAPmD,EAAQ,WAAW,gB,SAA0E,GAAmJ,CAAE,IAAC,OAAC/S,GAAG,SAAU,GAAG,IAAC,IAAU,KAAC,MAAO,CAACxC,EAAG,KAAe,uBAAC,OAAM,MAAC,WAAW,KAAQ,8EAAC4I,G,CAAuC,IAAC,UAACwJ,GAAAA,WAAY,uBAAC5P,EAAmBoG,OAAG,G,CAA0C,IAAC,SAACwJ,GAAAA,WAAa,MAAK,GAAI,aAAG,EACz7F,UACGhS,CAEJ,IAASgB,e,iLnDFT,SAAY4Q,GACRA,EAAAA,QAAAA,OACAA,EAAAA,OAAAA,MACAA,EAAAA,SAAAA,QACAA,EAAAA,WAAAA,UACAA,EAAAA,WAAAA,SACH,EAND,CAAYA,KAAAA,GAAe,KCF3B,SAAKC,GACDA,EAAAA,OAAAA,MACAA,EAAAA,UAAAA,SACAA,EAAAA,SAAAA,QACAA,EAAAA,WAAAA,UACAA,EAAAA,UAAAA,QACH,CAND,CAAKA,KAAAA,GAAW,KAQhB,ImDRKuD,GnDQL,OmDRA,SAAKA,GACDA,EAAAA,SAAAA,QACAA,EAAAA,UAAAA,SACAA,EAAAA,UAAAA,SACAA,EAAAA,aAAAA,YACAA,EAAAA,UAAAA,SACAA,EAAAA,WAAAA,UACAA,EAAAA,UAAAA,SACAA,EAAAA,UAAAA,SACAA,EAAAA,aAAAA,WACH,EAVD,CAAKA,KAAAA,GAAiB,KAYtB,ICZKC,GAgBAC,GDJL,OCZA,SAAKD,GACDA,EAAAA,WAAAA,UACAA,EAAAA,gBAAAA,eACAA,EAAAA,gBAAAA,eACAA,EAAAA,OAAAA,MACAA,EAAAA,UAAAA,SACAA,EAAAA,UAAAA,SACAA,EAAAA,WAAAA,UACAA,EAAAA,mBAAAA,kBACAA,EAAAA,aAAAA,YACAA,EAAAA,SAAAA,QACAA,EAAAA,iBAAAA,gBACAA,EAAAA,eAAAA,cACAA,EAAAA,cAAAA,YACH,EAdD,CAAKA,KAAAA,GAAU,KAgBf,SAAKC,GACDA,EAAAA,YAAAA,WACAA,EAAAA,iBAAAA,gBACAA,EAAAA,iBAAAA,gBACAA,EAAAA,QAAAA,OACAA,EAAAA,WAAAA,UACAA,EAAAA,WAAAA,UACAA,EAAAA,YAAAA,WACAA,EAAAA,qBAAAA,oBACAA,EAAAA,kBAAAA,iBACAA,EAAAA,eAAAA,cACAA,EAAAA,UAAAA,SACAA,EAAAA,gBAAAA,cACH,CAbD,CAAKA,KAAAA,GAAgB,KAiBd,ICjCFC,GDiCQC,GAAW,SAAC7V,GACrB,OAAQA,GACJ,KAAK0V,GAAWI,aACZ,OAAOH,GAAiBI,cAC5B,KAAKL,GAAWM,cACZ,OAAOL,GAAiBM,eAC5B,KAAKP,GAAWQ,QACZ,OAAOP,GAAiBQ,SAC5B,KAAKT,GAAWU,aACZ,OAAOT,GAAiBU,cAC5B,KAAKX,GAAWY,IACZ,OAAOX,GAAiBY,KAC5B,KAAKb,GAAWc,OACZ,OAAOb,GAAiBc,QAC5B,KAAKf,GAAWgB,OACZ,OAAOf,GAAiBgB,QAC5B,KAAKjB,GAAWkB,QACZ,OAAOjB,GAAiBkB,SAC5B,KAAKnB,GAAWoB,gBACZ,OAAOnB,GAAiBoB,kBAC5B,KAAKrB,GAAWsB,UACZ,OAAOrB,GAAiBsB,YAC5B,KAAKvB,GAAWwB,MACZ,OAAOvB,GAAiBwB,OAEpC,EAEaC,GAAa,SAAbA,EAAcpX,GACvB,GAAIqX,MAAMC,QAAQtX,GACd,OAAOA,EAAKkP,KAAI,SAAAqI,GAAC,OAAIH,EAAWG,EAAgB,IAEpD,OAAQvX,GACJ,KAAK2V,GAAiBI,cAClB,OAAOL,GAAWI,aACtB,KAAKH,GAAiBQ,SAClB,OAAOT,GAAWQ,QACtB,KAAKP,GAAiBU,cAClB,OAAOX,GAAWU,aACtB,KAAKT,GAAiBY,KAClB,OAAOb,GAAWY,IACtB,KAAKX,GAAiBc,QAClB,OAAOf,GAAWc,OACtB,KAAKb,GAAiBgB,QAClB,OAAOjB,GAAWgB,OACtB,KAAKf,GAAiBkB,SAClB,OAAOnB,GAAWkB,QACtB,KAAKjB,GAAiBoB,kBAClB,OAAOrB,GAAWoB,gBACtB,KAAKnB,GAAiBsB,YAClB,OAAOvB,GAAWsB,UACtB,KAAKrB,GAAiBwB,OAClB,OAAOzB,GAAWwB,MAE9B,EAGA,OCzFA,SAAKtB,GACDA,EAAAA,WAAAA,UACAA,EAAAA,UAAAA,SACAA,EAAAA,cAAAA,aACAA,EAAAA,aAAAA,YACAA,EAAAA,UAAAA,SACAA,EAAAA,SAAAA,QACAA,EAAAA,UAAAA,SACAA,EAAAA,gBAAAA,eACAA,EAAAA,aAAAA,YACAA,EAAAA,oBAAAA,mBACAA,EAAAA,SAAAA,QACAA,EAAAA,mBAAAA,kBACAA,EAAAA,UAAAA,SACAA,EAAAA,WAAAA,UACAA,EAAAA,UAAAA,SACAA,EAAAA,aAAAA,YACAA,EAAAA,YAAAA,UACH,EAlBD,CAAKA,KAAAA,GAAgB,KAoBrB,ICpBK4B,GDoBL,OCpBA,SAAKA,GACDA,EAAAA,eAAAA,cACAA,EAAAA,eAAAA,cACAA,EAAAA,+BAAAA,8BACAA,EAAAA,kBAAAA,iBACAA,EAAAA,YAAAA,WACAA,EAAAA,mBAAAA,kBACAA,EAAAA,mCAAAA,kCACAA,EAAAA,oBAAAA,mBACAA,EAAAA,qBAAAA,oBACAA,EAAAA,sBAAAA,oBACH,EAXD,CAAKA,KAAAA,GAAmB,KAaxB,ICbKC,GDaL,OCbA,SAAKA,GACDA,EAAAA,cAAAA,aACAA,EAAAA,cAAAA,aACAA,EAAAA,QAAAA,OACAA,EAAAA,iBAAAA,gBACAA,EAAAA,YAAAA,WACAA,EAAAA,QAAAA,OACAA,EAAAA,iBAAAA,gBACAA,EAAAA,WAAAA,UACAA,EAAAA,aAAAA,YACAA,EAAAA,aAAAA,YACAA,EAAAA,eAAAA,cACAA,EAAAA,gBAAAA,eACAA,EAAAA,cAAAA,aACAA,EAAAA,YAAAA,WACAA,EAAAA,eAAAA,cACAA,EAAAA,QAAAA,OACAA,EAAAA,gBAAAA,eACAA,EAAAA,YAAAA,WACAA,EAAAA,gBAAAA,eACAA,EAAAA,kBAAAA,iBACAA,EAAAA,oBAAAA,mBACAA,EAAAA,QAAAA,OACAA,EAAAA,OAAAA,MACAA,EAAAA,YAAAA,UACH,EAzBD,CAAKA,KAAAA,GAAc,KA2BnB,ICMYC,GAIAC,GDVZ,OCMA,SAAYD,GACRA,EAAAA,EAAAA,mBAAAA,GAAAA,iBACH,EAFD,CAAYA,KAAAA,GAAU,KAItB,SAAYC,GACRA,EAAAA,EAAAA,UAAAA,GAAAA,SACAA,EAAAA,EAAAA,WAAAA,GAAAA,UACAA,EAAAA,EAAAA,aAAAA,GAAAA,YACAA,EAAAA,EAAAA,UAAAA,GAAAA,QACH,CALD,CAAYA,KAAAA,GAAY,KCJjB,ICOKC,GDPCC,GAA2B,CACpCC,qBAAsB,eACtBC,eAAgB,eCKpB,SAAYH,GACRA,EAAAA,aAAAA,YACAA,EAAAA,iBAAAA,gBACAA,EAAAA,YAAAA,UACH,EAJD,CAAYA,KAAAA,GAAQ,K,2DCpCpBrI,IAAAA,OAAayI,MACbzI,IAAAA,OAAaC,KACbD,IAAAA,OAAa0I,MACb,OAAe1I,ICJT,SAAU2I,GACZC,GAEA,IAAKA,EAAMC,OAAQ,OAAO,KAC1B,GAAqB,IAAjBD,EAAMC,OAAc,OAAOlG,GAAAA,MAC/B,IAAMmG,EAAgBC,GAAOH,EAAM,IAAII,KAAKD,GAAOH,EAAM,IAAK,QAC9D,OAAOE,EAAgB,GAAKnG,GAAAA,QAAsBA,GAAAA,KACtD,CAAC,IAEoBsG,GAAO,WASxB,WAAY/V,IAAQ,yOAEG,kBAARA,GAIPP,KAAKO,IAAMA,EAGH,WAARA,GACAP,KAAKuW,YAAc,KACnBvW,KAAKwW,MAAQ,KACbxW,KAAKyW,UAAW,EAChBzW,KAAK6G,SAAU,GACA,cAARtG,GAKQ,cAARA,GAJPP,KAAKuW,YAAc,QACnBvW,KAAKwW,MAAQ,KACbxW,KAAKyW,UAAW,EAChBzW,KAAK6G,SAAU,GAMA,QAARtG,GACPP,KAAKuW,YAAc,UACnBvW,KAAKwW,MAAQ,KACbxW,KAAKyW,UAAW,EAChBzW,KAAK6G,SAAU,GACRtG,EAAImW,SAAS,MACpB1W,KAAKuW,YAAc,QACnBvW,KAAKwW,MAAQnV,OAAOd,EAAIoW,UAAU,EAAGpW,EAAI2V,OAAS,IAClDlW,KAAKyW,UAAW,EAChBzW,KAAK6G,SAAU,GACRtG,EAAImW,SAAS,MACpB1W,KAAKuW,YAAc,UACnBvW,KAAKwW,MAAQnV,OAAOd,EAAIoW,UAAU,EAAGpW,EAAI2V,OAAS,IAClDlW,KAAKyW,UAAW,EAChBzW,KAAK6G,SAAU,GAEf7G,KAAK6G,SAAU,GArCf7G,KAAK6G,SAAU,CAuCvB,CAkCC,OAlCA,6CAEM,SAAsB+P,EAAwBC,GACjD,IAAK7W,KAAK6G,QAAS,MAAO,MAAE2F,OAAWA,GACvC,IAAMsK,EAAeD,EAAST,GAAON,IAAIe,GAAUT,GAAON,MAC1D,GAAiB,WAAb9V,KAAKO,IACL,MAAO,CAACqW,EAAUC,GAAQE,QAAO,SAAAhK,GAAC,QAAMA,CAAC,IACtC,GAAiB,cAAb/M,KAAKO,IAAqB,CACjC,IAAMyW,EAAeF,EAAaG,KAAK,EAAG,UACpCC,EAAUF,EAAaG,MAAM,SAASN,SACtCO,EAAYJ,EAAaK,QAAQ,SAASR,SAChD,MAAO,CAACO,EAAWF,E,CAChB,GAAiB,cAAblX,KAAKO,IAAqB,CACjC,IAAMyW,EAAeF,EACfI,EAAUF,EAAaG,MAAM,SAASN,SACtCO,EAAYJ,EAAaK,QAAQ,SAASR,SAChD,MAAO,CAACO,EAAWF,E,CAChB,GAAiB,QAAblX,KAAKO,IAAe,CAC3B,IAAMyW,EAAeF,EACfI,EAAUF,EAAaG,MAAM,SAASN,SACtCO,EAAYJ,EAAaC,KAAK,GAAI,UAAUI,QAAQ,SAASR,SACnE,MAAO,CAACO,EAAWF,E,CAChB,GAAIlX,KAAKO,IAAImW,SAAS,KAAM,CAC/B,IAAMM,EAAeF,EACfI,EAAUF,EAAaG,MAAM,OAAON,SACpCO,EAAYJ,EAAaC,KAAK,EAAIjX,KAAKwW,MAAO,QAAQa,QAAQ,OAAOR,SAC3E,MAAO,CAACO,EAAWF,E,CAChB,GAAIlX,KAAKO,IAAImW,SAAS,KAAM,CAC/B,IAAMM,EAAeF,EACfI,EAAUF,EAAaG,MAAM,SAASN,SACtCO,EAAYJ,EAAaC,KAAK,EAAIjX,KAAKwW,MAAO,UAAUa,QAAQ,SAASR,SAC/E,MAAO,CAACO,EAAWF,E,CAEvB,MAAO,EACX,KAAC,EArFuB,GCEfI,I,kBAAS,SAAOvP,EAAWwP,EAAeC,GAAY,QAAOzP,GAAOyP,EAAKC,QAAQ1P,KAASwP,CAAK,GAkB/FG,GAA2B,SAACC,EAAoBvY,GAAwB,IAAEwY,EAAY,UAAH,6CAAG,IAAG,OACjGD,GAAc,IACVE,MAAMD,GACNE,OAAO1Y,GACP2X,OAAOO,IACPS,KAAKH,EAAU,EC7BXI,GAAsC,SAACjL,GAChD,IAAMkL,EAAU,IAAI3B,GAAQvJ,EAAEmL,cACxBtB,EAAWqB,EAAQxB,SAAW,IAAI0B,KAAKpL,EAAE6J,UAAY,KACrDC,EAASoB,EAAQxB,SAAW,IAAI0B,KAAKpL,EAAE8J,QAAU,KACjDuB,EAAQH,EAAQI,sBAAsBzB,EAAUC,GAEhDyB,EAA+C,CACjD/B,YAAaxJ,EAAEwJ,cAAgBvG,GAAAA,OAAqBjD,EAAEwJ,cAAgBvG,GAAAA,QAChEjD,EAAEwJ,YACFvG,GAAAA,MACN6G,OAAQuB,EAAM,GACdxB,SAAUwB,EAAM,GAChBG,YAAaxL,EAAEwL,YACfL,aAAcnL,EAAEmL,aAChBM,YAAazL,EAAEyL,YACfC,iBAAkB1L,EAAEwJ,cAAgBvG,GAAAA,MAAoB,KAAO,MAG7D0I,EAA4B,GAC9BC,EAAuB,GACvBC,EAA4B,GAC5BC,EAAuB,GACvBC,EAAwB,GACxBC,EAA2B,GAC3B3E,EAAqB,KACrBN,EAA+B,KAC/B0E,EAA6B,KAC7B5D,EAAiC,KAErC7H,EAAEiM,QAAQC,SAAQ,SAACC,GACXA,EAAEpb,OAAS0V,GAAAA,aACXkF,EAAgB/a,KAAKub,EAAE9R,IAChB8R,EAAEpb,OAAS0V,GAAAA,QAClBmF,EAAWhb,KAAKub,EAAE9R,IACX8R,EAAEpb,OAAS0V,GAAAA,aAClBoF,EAAgBjb,KAAKub,EAAE9R,IAChB8R,EAAEpb,OAAS0V,GAAAA,QAClBqF,EAAWlb,KAAKub,EAAE9R,IACX8R,EAAEpb,OAAS0V,GAAAA,OAClBsF,EAAYnb,KAAKub,EAAElY,MACZkY,EAAEpb,OAAS0V,GAAAA,UAClBuF,EAAepb,KAAKub,EAAElY,MACfkY,EAAEpb,OAAS0V,GAAAA,IAClBY,EAAM8E,EAAE9R,GACD8R,EAAEpb,OAAS0V,GAAAA,cAClBM,EAAgBoF,EAAElY,KACXkY,EAAEpb,OAAS0V,GAAAA,WAClBgF,EAAcU,EAAE9R,GACT8R,EAAEpb,OAAS0V,GAAAA,kBAClBoB,EAAkBsE,EAAElY,KAE5B,IAEI6X,EAAW3C,SACXoC,EAAEa,UAAYN,EAAW,IACzBD,EAAgB1C,SAChBoC,EAAEc,eAAiBR,EAAgB,IACnCD,EAAWzC,SACXoC,EAAEe,UAAYV,EAAW,IACzBD,EAAgBxC,SAChBoC,EAAEI,gBAAkBA,GACpBC,EAAWzC,SACXoC,EAAEe,UAAYV,EAAW,IACzBG,EAAY5C,SACZoC,EAAEgB,WAAaR,EAAY,IAC3BC,EAAe7C,SACfoC,EAAEiB,cAAgBR,EAAe,IACjC3E,IACAkE,EAAEkB,YAAcpF,GAChBN,IACAwE,EAAEmB,aAAe3F,GACjB0E,IACAF,EAAEE,YAAcA,GAChB5D,IACA0D,EAAE1D,gBAAkBA,GAExB,IAAM8E,GAAgB3M,EAAE4M,aAAe,IAAI9B,MAAM,KAOjD,OANI6B,EAAaxD,OAAS,EACtBoC,EAAEqB,YAAcD,EACTA,EAAaxD,SACpBoC,EAAEqB,YAAcD,EAAa,IAG1BpB,CACX,EAEasB,GAAoC,SAAC7M,GAE9C,IAAMkL,EAAU,IAAI3B,GAAQvJ,EAAEmL,cACxBtB,EAAWqB,EAAQxB,SAAW,IAAI0B,KAAKpL,EAAE6J,UAAY,KACrDC,EAASoB,EAAQxB,SAAW,IAAI0B,KAAKpL,EAAE8J,QAAU,KACjDuB,EAAQH,EAAQI,sBAAsBzB,EAAUC,GAEhDyB,EAA8C,CAChD/B,YAAaxJ,EAAEwJ,cAAgBvG,GAAAA,OAAqBjD,EAAEwJ,cAAgBvG,GAAAA,QAChEjD,EAAEwJ,YACFvG,GAAAA,MACN6G,OAAQuB,EAAM,GAAGyB,cACjBjD,SAAUwB,EAAM,GAAGyB,cACnBtB,YAAaxL,EAAEwL,YACfuB,MAAO,GACPlB,gBAAiB,GACjBG,eAAgB,GAChBlE,kBAAmB,GACnBgE,WAAY,GACZY,aAAc,GACdX,YAAa,GACbH,WAAY,GACZa,YAAa,GACbd,gBAAiB,GACjBqB,aAAc,GACdC,cAAe,IAGbtB,EAA4B,GAC9BC,EAAuB,GACvBC,EAA4B,GAC5BC,EAAuB,GACvBC,EAAwB,GACxBC,EAA2B,GAC3B3E,EAAqB,KACrBN,EAA+B,KAC/B0E,EAA6B,KAkCjC,OAhCAzL,EAAEiM,QAAQC,SAAQ,SAACC,GACXA,EAAEpb,OAAS0V,GAAAA,aACXkF,EAAgB/a,KAAKub,EAAE9R,IAChB8R,EAAEpb,OAAS0V,GAAAA,QAClBmF,EAAWhb,KAAKub,EAAE9R,IACX8R,EAAEpb,OAAS0V,GAAAA,aAClBoF,EAAgBjb,KAAKub,EAAE9R,IAChB8R,EAAEpb,OAAS0V,GAAAA,QAClBqF,EAAWlb,KAAKub,EAAE9R,IACX8R,EAAEpb,OAAS0V,GAAAA,OAClBsF,EAAYnb,KAAKub,EAAElY,MACZkY,EAAEpb,OAAS0V,GAAAA,UAClBuF,EAAepb,KAAKub,EAAElY,MACfkY,EAAEpb,OAAS0V,GAAAA,IAClBY,EAAM8E,EAAE9R,GACD8R,EAAEpb,OAAS0V,GAAAA,cAClBM,EAAgBoF,EAAElY,KACXkY,EAAEpb,OAAS0V,GAAAA,aAClBgF,EAAcU,EAAE9R,GAExB,IAEAkR,EAAEO,WAAanB,GAAyB,GAAImB,GAC5CP,EAAEM,gBAAkBlB,GAAyB,GAAIkB,GACjDN,EAAEK,WAAajB,GAAyB,GAAIiB,GAC5CL,EAAEI,gBAAkBhB,GAAyB,GAAIgB,GACjDJ,EAAEQ,YAAcpB,GAAyB,GAAIoB,GAC7CR,EAAES,eAAiBrB,GAAyB,GAAIqB,GAChDT,EAAEkB,YAAcpF,EAChBkE,EAAEmB,aAAe3F,EACjBwE,EAAEE,YAAcA,GAAezL,EAAEyL,aAAe,KAEzCF,CACX,ECrKInZ,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,yBAAyB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,WAAarB,EAAIkc,WAAW,QAAUlc,EAAImc,MAAMC,GAAG,uBAAuBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,UAAU,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAmD,IAAxC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAAShI,EAAO,EAAPA,QAASiQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,yBAAyB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,MAAQG,EAAK,MAAQ,WAAO,EAAE,MAAQ6I,EAAQ,KAAOgI,EAAO,QAAUhQ,GAAS6B,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIyc,yBAAyBJ,EAAO,GAAC,KAAK,IAAI,MAAK,IAC5wB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAmB9I,EAAM,Q,MAAC,GAAO,kBAAe,C,MAAC,CAAsB,MAAS,EAACE,WAAY,kBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,KAASvH,CAAAA,C,IAAgB,U,GAA0BlG,SAAG,G,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAwE,sEAAiB,eAAgB,IAC7pB,UAGD,E,kBCJ4Dia,GAAO1c,WAAsB,MAAU,KAAaF,EAAK,EAAC,SAAQ,EAACE,MAAIyI,Y,OAA2C,cAAeC,C,MAAiD,CAAsB,+CAACC,SAAY3I,EAAIoQ,UAAI,mCAAC5N,QAAI,EAAS,S,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAU,EAAK,OAAC,EAAQ,EAACF,M,MAAO,GAAS,GAAC9Q,UAAW,MAAC,OAAUA,KAAY,OAAQgR,EAAO,QAAC,4BAAI,MAAU,IAAQ3P,IAAoBkB,MAAQ,G,MAAoB,CAAY,MAAC,UAACb,SAAU,SAAC,GAAS,WAAIe,EAAmB3C,WAAM,Y,CAAiC,OAAc,CAAQ,MAAC,CAAC0B,MAAM,sBAACH,MAAOrB,EAAIiD,GAAK,S,MAA6B,CAAS,MAAC,OAACvB,SAAU,SAAC,GAAM,QAAIe,EAAe3C,WAAM,UAAqB,OAAW,C,MAAG,CAA+B,kBAAmB,SAAY,GAAM,MAAQ,EAAE,mBAAC,mBAAqB,kBAAC0B,MAAM,GAACH,kBAAWsb,I,MAAyC,CAAgB,MAAC,cAACjb,SAAU,SAAC,GAAa,eAAK1B,EAAoEF,WAAM,iBAAyD,gCAAwB,gC,MAAC,CAAgB,oDAA8B,uBAAC0B,UAAM,EAACH,2BAAyB,I,MAA6B,CAAkB,MAAC,gBAACK,SAAU,SAAC,GAAe,iBAAG,EAA+E5B,WAAM,mBAAyD,OAAS,gCAAe,gC,MAAC,CAAgB,oDAA8B,uBAAC0B,UAAM,EAACH,2BAAyB,I,MAA6B,CAAkB,MAAC,gBAACK,SAAU,SAAC,GAAe,iBAAG,EAA0E5B,WAAM,mBAAoD,OAAS,2BAAU,gC,MAAC,CAAgB,+CAA8B,kBAAC0B,UAAM,EAACH,2BAAoB,I,MAA6B,CAAa,MAAC,WAACK,SAAU,SAAC,GAAU,YAAG,EAA0E5B,WAAM,cAAoD,OAAS,2BAAU,gC,MAAC,CAAgB,+CAA8B,kBAAC0B,UAAM,EAACH,2BAAoB,I,MAA6B,CAAa,MAAC,WAACK,SAAU,SAAC,GAAU,YAAG,EAAyE5B,WAAM,cAAmD,OAAS,0BAAS,gC,MAAC,CAAgB,8CAA8B,iBAAC0B,UAAM,EAACH,2BAAmB,I,MAA6B,CAAY,MAAC,UAACK,SAAU,SAAC,GAAS,WAAG,EAA4E5B,WAAM,aAAuD,OAAS,6BAAY,gC,MAAC,CAAgB,kDAA8B,oBAAC0B,UAAM,EAACH,2BAAuB,I,MAA6B,CAAgB,MAAC,cAACK,SAAU,SAAC,GAAa,eAAG,EAAkF5B,WAAM,iBAA6D,OAAS,mCAAkB,gC,MAAC,CAAgB,wDAA8B,0BAAC0B,UAAM,EAACH,2BAA6B,I,MAA6B,CAAsB,MAAC,oBAACK,SAAU,SAAC,GAAmB,qBAAG,EAA+E5B,WAAM,uBAAyD,OAAS,gCAAgB,gC,MAAC,CAAgB,oDAA8B,wBAAC0B,UAAM,EAACH,2BAAyB,I,MAA6B,CAAkB,MAAC,gBAACK,SAAU,SAAC,GAAe,iBAAG,EAAsE5B,WAAM,mBAAwD,OAAS,EAAK,qBAAC,gC,MAAC,CAAgB,mDAA8B,cAAC0B,UAAM,EAACH,2BAAwB,I,MAA6B,CAAiB,MAAC,eAACK,SAAU,SAAC,GAAc,gBAAG,EAAyE5B,WAAM,kBAAmD,OAAS,0BAAS,gC,MAAC,CAAgB,8CAA8B,iBAAC0B,UAAM,EAACH,2BAAmB,I,MAA6B,CAAY,MAAC,UAACK,SAAU,SAAC,GAAS,WAAG,EACt+H,wBAGD,EAASN,MAAQhB,E,QCGXwc,I,SAAU,SAACC,GAAyB,MAAyB,CAAExT,GAAIwT,EAAEC,GAAI7Z,KAAM4Z,EAAEE,KAAM,GACvFC,GAAe,SAAC3T,EAAYpG,EAAc4N,EAAwB2I,GAAa,MAChF,CACGsD,GAAIzT,EACJ0T,KAAM9Z,EACNga,YAAa,KACbC,SAAU,KACVC,KAAMtM,EACNuM,YAAa5D,EACW,EAE1ByB,GAAU,SAACxR,GAAQ,wBACfwR,EAAU,GA+BhB,OA9BQ,OAAJxR,QAAI,IAAJA,GAAqB,QAAjB,EAAJA,EAAMoR,uBAAe,WAAjB,EAAJ,EAAuB1C,QAAS,GAChC8C,EAAQrb,KAAK6V,GAAAA,eAET,OAAJhM,QAAI,IAAJA,GAAqB,QAAjB,EAAJA,EAAMkR,uBAAe,WAAjB,EAAJ,EAAuBxC,QAAS,GAChC8C,EAAQrb,KAAK6V,GAAAA,eAET,OAAJhM,QAAI,IAAJA,GAAmB,QAAf,EAAJA,EAAM4T,qBAAa,WAAf,EAAJ,EAAqBlF,QAAS,GAC9B8C,EAAQrb,KAAK6V,GAAAA,UAET,OAAJhM,QAAI,IAAJA,GAAmB,QAAf,EAAJA,EAAM6T,qBAAa,WAAf,EAAJ,EAAqBnF,QAAS,GAC9B8C,EAAQrb,KAAK6V,GAAAA,UAET,OAAJhM,QAAI,IAAJA,GAAa,QAAT,EAAJA,EAAMiN,eAAO,WAAT,EAAJ,EAAeyB,QAAS,GACxB8C,EAAQrb,KAAK6V,GAAAA,SAET,OAAJhM,QAAI,IAAJA,GAAiB,QAAb,EAAJA,EAAMuN,mBAAW,WAAb,EAAJ,EAAmBmB,QAAS,GAC5B8C,EAAQrb,KAAK6V,GAAAA,YAET,OAAJhM,QAAI,IAAJA,GAAuB,QAAnB,EAAJA,EAAMqN,yBAAiB,WAAnB,EAAJ,EAAyBqB,QAAS,GAClC8C,EAAQrb,KAAK6V,GAAAA,kBAET,OAAJhM,QAAI,IAAJA,GAAwB,QAApB,EAAJA,EAAM8T,0BAAkB,WAApB,EAAJ,EAA0BpF,QAAS,GACnC8C,EAAQrb,KAAK6V,GAAAA,gBAET,OAAJhM,QAAI,IAAJA,GAAkB,QAAd,EAAJA,EAAMuS,oBAAY,WAAd,EAAJ,EAAoB7D,QAAS,GAC7B8C,EAAQrb,KAAK6V,GAAAA,MAET,OAAJhM,QAAI,IAAJA,GAAa,QAAT,EAAJA,EAAM+M,eAAO,WAAT,EAAJ,EAAe2B,QAAS,GACxB8C,EAAQrb,KAAK6V,GAAAA,QAEVwF,CACX,EAEMuC,GAAgB,SAACC,EAAgBC,EAAO7M,GAC1C,IAAM8M,EAA+B,OAAdF,QAAc,IAAdA,OAAc,EAAdA,EAAgBG,MAAK,SAACC,GAAO,OAAKA,IAAYhN,CAAU,IAC/E,GAAI8M,GAAoC,KAAb,OAALD,QAAK,IAALA,OAAK,EAALA,EAAOvF,QAAc,CACvC,IAAM2F,EAAeL,EAAezE,QAAO,SAACA,GAAM,OAAKA,IAAWnI,CAAU,IAC5E,OAAOiN,C,CAKX,OAHKH,IAAuB,OAALD,QAAK,IAALA,OAAK,EAALA,EAAOvF,QAAS,GACnCsF,EAAe7d,KAAKiR,GAEjB4M,CACX,EAEMM,GAAmB,SAAClD,GAAmB,MACzC,OAGK,QAHG,EACW,OAAfA,QAAe,IAAfA,OAAe,EAAfA,EAAiB5L,KAAI,SAACoM,EAAmC7B,GAAa,OAClEwD,GAAa3B,EAAehS,GAAIgS,EAAepY,KAAMwS,GAAAA,aAAyB+D,EAAM,WACvF,QAAI,EAEb,EAEMwE,GAAmB,SAACrD,GAAmB,MACzC,OAGK,QAHG,EACW,OAAfA,QAAe,IAAfA,OAAe,EAAfA,EAAiB1L,KAAI,SAACgP,EAAmCzE,GAAa,OAClEwD,GAAaiB,EAAe5U,GAAI4U,EAAehb,KAAMwS,GAAAA,aAAyB+D,EAAM,WACvF,QAAI,EAEb,EAEM0E,GAAc,SAACb,GAAiB,MAClC,OAGK,QAHG,EACS,OAAbA,QAAa,IAAbA,OAAa,EAAbA,EAAepO,KAAI,SAACmM,EAA8B5B,GAAa,OAC3DwD,GAAa5B,EAAU/R,GAAI+R,EAAUnY,KAAMwS,GAAAA,QAAoB+D,EAAM,WACxE,QAAI,EAEb,EAEM2E,GAAc,SAACb,GAAiB,MAClC,OAGK,QAHG,EACS,OAAbA,QAAa,IAAbA,OAAa,EAAbA,EAAerO,KAAI,SAACqM,EAA8B9B,GAAa,OAC3DwD,GAAa1B,EAAUjS,GAAIiS,EAAUrY,KAAMwS,GAAAA,QAAoB+D,EAAM,WACxE,QAAI,EAEb,EAEM4E,GAAa,SAAC1H,GAAY,MAC5B,OAC2G,QADnG,EACG,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASzH,KAAI,SAACwH,EAAgB+C,GAAa,OAAKwD,GAAavG,EAAQA,EAAQhB,GAAAA,OAAmB+D,EAAM,WAAC,QAAI,EAEnH,EAEM6E,GAAiB,SAACrH,GAAe,MACnC,OAGK,QAHG,EACO,OAAXA,QAAW,IAAXA,OAAW,EAAXA,EAAa/H,KAAI,SAAC8H,EAAmByC,GAAa,OAC9CwD,GAAajG,EAAWA,EAAWtB,GAAAA,UAAsB+D,EAAM,WAClE,QAAI,EAEb,EAEM8E,GAAuB,SAACxH,GAAqB,MAC/C,OAGK,QAHG,EACa,OAAjBA,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmB7H,KAAI,SAAC4H,EAAyB2C,GAAa,OAC1DwD,GAAanG,EAAiBA,EAAiBpB,GAAAA,gBAA4B+D,EAAM,WACpF,QAAI,EAEb,EAEM+E,GAAmB,SAAChB,GAAsB,MAC5C,OAQK,QARG,EACc,OAAlBA,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoBtO,KAAI,SAACuP,EAA2BhF,GAAa,OAC7DwD,GACIwB,EACA7a,OAAO8a,OAAOjJ,IAAmBgJ,GACjC/I,GAAAA,cACA+D,EACH,WACJ,QAAI,EAEb,EAEMkF,GAAkB,SAAC1C,GAAgB,MACrC,OAGK,QAHG,EACQ,OAAZA,QAAY,IAAZA,OAAY,EAAZA,EAAc/M,KAAI,SAACwM,EAAqBjC,GAAa,OACjDwD,GAAavB,EAAaA,EAAahG,GAAAA,IAAgB+D,EAAM,WAChE,QAAI,EAEb,EAEMmF,GAAa,SAACnI,GAAW,MAC3B,OAGK,QAHG,EACG,OAAPA,QAAO,IAAPA,OAAO,EAAPA,EAASvH,KAAI,SAAC2P,EAAqBpF,GAAa,OAC5CwD,GAAa4B,EAAaA,EAAanJ,GAAAA,OAAmB+D,EAAM,WACnE,QAAI,EAEb,EAEA,IAAejT,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEoI,MAAOpF,OAAQqF,SAAUrF,OAAQvC,QAASqC,QAASsG,KAAM9F,QAClE+C,MAAK,SAAC6T,GAAC,gCACGzR,GAAUhC,EAAAA,EAAAA,MAAI,GACduC,GAAKvC,EAAAA,EAAAA,KAAsB,QAAnB,EAAe,QAAf,EAASyT,EAAE9Q,YAAI,aAAN,EAAQJ,UAAE,SAAK,GAChCpG,GAAO6D,EAAAA,EAAAA,KAAwB,QAArB,EAAe,QAAf,EAASyT,EAAE9Q,YAAI,aAAN,EAAQxG,YAAI,QAAI,IAEnC4b,GAAiB/X,EAAAA,EAAAA,KAAI,CACvB2O,GAAAA,aACAA,GAAAA,cACAA,GAAAA,UACAA,GAAAA,QACAA,GAAAA,QACAA,GAAAA,OACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,aACAA,GAAAA,kBAGEkH,GAAc7V,EAAAA,EAAAA,KAAkBmU,GAAQV,EAAE9Q,OAE1CqV,GAAgCna,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,aAAwB,IAClGK,GAAgBhP,EAAAA,EAAAA,KAA8BiX,GAAuB,QAAP,EAACxD,EAAE9Q,YAAI,aAAN,EAAQoR,kBAEvEkE,GAAgCpa,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,aAAwB,IAClGW,GAAgBtP,EAAAA,EAAAA,KAA8BkX,GAAuB,QAAP,EAACzD,EAAE9Q,YAAI,aAAN,EAAQkR,kBAEvEqE,GAA2Bra,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,QAAmB,IACxFmB,GAAW9P,EAAAA,EAAAA,KAA8BoX,GAAkB,QAAP,EAAC3D,EAAE9Q,YAAI,aAAN,EAAQ4T,gBAE7D4B,GAA2Bta,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,QAAmB,IACxFS,GAAWpP,EAAAA,EAAAA,KAA8BqX,GAAkB,QAAP,EAAC5D,EAAE9Q,YAAI,aAAN,EAAQ6T,gBAE7D4B,GAA0Bva,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,OAAkB,IACtFiB,GAAU5P,EAAAA,EAAAA,KAA8BsX,GAAiB,QAAP,EAAC7D,EAAE9Q,YAAI,aAAN,EAAQiN,UAE3DyI,GAA6Bxa,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,UAAqB,IAC5FuB,GAAclQ,EAAAA,EAAAA,KAA8BuX,GAAqB,QAAP,EAAC9D,EAAE9Q,YAAI,aAAN,EAAQuN,cAEnEoI,GAAmCza,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,gBAA2B,IACxGqB,GAAoBhQ,EAAAA,EAAAA,KAA8BwX,GAA2B,QAAP,EAAC/D,EAAE9Q,YAAI,aAAN,EAAQqN,oBAE/EuI,GAAgC1a,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,cAAyB,IACnG6J,GAAgBxY,EAAAA,EAAAA,KAA8ByX,GAAuB,QAAP,EAAChE,EAAE9Q,YAAI,aAAN,EAAQ8T,qBAEvEgC,GAAuB5a,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,IAAe,IAChFuG,GAAelV,EAAAA,EAAAA,KAA8B4X,GAAsB,QAAP,EAACnE,EAAE9Q,YAAI,aAAN,EAAQuS,eAErEwD,GAA0B7a,EAAAA,EAAAA,WAAS,kBAAMgY,EAAYtb,MAAM8K,SAASsJ,GAAAA,OAAkB,IACtFe,GAAU1P,EAAAA,EAAAA,KAA8B6X,GAAiB,QAAP,EAACpE,EAAE9Q,YAAI,aAAN,EAAQ+M,UAE3DvW,GAAO0E,EAAAA,EAAAA,WAAS,WAClB,MAAO,CACH0E,GAAIA,EAAGhI,MACP4B,KAAMA,EAAK5B,MACXwZ,gBAAiB/E,EAAczU,MAAM4N,IAAI2N,IACzCjC,gBAAiBvE,EAAc/U,MAAM4N,IAAI2N,IACzCS,cAAezG,EAASvV,MAAM4N,IAAI2N,IAClCU,cAAepH,EAAS7U,MAAM4N,IAAI2N,IAClClG,QAASA,EAAQrV,MAAM4N,KAAI,SAACH,GAAC,OAAKA,EAAEiO,IAAI,IACxC/F,YAAaA,EAAY3V,MAAM4N,KAAI,SAACH,GAAC,OAAKA,EAAEgO,EAAE,IAC9ChG,kBAAmBA,EAAkBzV,MAAM4N,KAAI,SAACH,GAAC,OAAKA,EAAEiO,IAAI,IAC5DQ,mBAAoB+B,EAAcje,MAAM4N,KAAI,SAACH,GAAC,OAAKA,EAAEgO,EAAE,IACvDd,aAAcA,EAAa3a,MAAM4N,KAAI,SAACH,GAAC,OAAKA,EAAEgO,EAAE,IAChDtG,QAASA,EAAQnV,MAAM4N,KAAI,SAACqI,GAAC,OAAKA,EAAEwF,EAAE,IAE9C,IACA,MAAO,CACHzT,GAAAA,EACApG,KAAAA,EACA6S,cAAAA,EACAM,cAAAA,EACAQ,SAAAA,EACAV,SAAAA,EACAQ,QAAAA,EACAM,YAAAA,EACAF,kBAAAA,EACAwI,cAAAA,EACAtD,aAAAA,EACAxF,QAAAA,EACA1N,QAAAA,EACA7I,KAAAA,EACA0c,YAAAA,EACAmC,8BAAAA,EACAK,2BAAAA,EACAC,iCAAAA,EACAJ,yBAAAA,EACAK,8BAAAA,EACAH,wBAAAA,EACAD,yBAAAA,EACAF,8BAAAA,EACAQ,qBAAAA,EACAC,wBAAAA,EACAX,eAAAA,EAER,EACA9a,MAAO,CACH,UAAW,SAAU0b,EAAQC,GACzBzd,KAAKoH,GAAKoW,CACd,EACA,YAAa,SAAUA,EAAQC,GAC3Bzd,KAAKgB,KAAOwc,CAChB,EACA,uBAAwB,SAAUA,EAAQC,GACtCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,cAC3DxT,KAAK6T,cAAgBiI,GAAiB0B,EAC1C,EACA,uBAAwB,SAAUA,EAAQC,GACtCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,cAC3DxT,KAAKmU,cAAgB4H,GAAiByB,EAC1C,EACA,qBAAsB,SAAUA,EAAQC,GACpCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,SAC3DxT,KAAK2U,SAAWsH,GAAYuB,EAChC,EACA,qBAAsB,SAAUA,EAAQC,GACpCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,SAC3DxT,KAAKiU,SAAWiI,GAAYsB,EAChC,EACA,eAAgB,SAAUA,EAAQC,GAC9Bzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,QAC3DxT,KAAKyU,QAAU0H,GAAWqB,EAC9B,EACA,mBAAoB,SAAUA,EAAQC,GAClCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,WAC3DxT,KAAK+U,YAAcqH,GAAeoB,EACtC,EACA,yBAA0B,SAAUA,EAAQC,GACxCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,iBAC3DxT,KAAK6U,kBAAoBwH,GAAqBmB,EAClD,EACA,0BAA2B,SAAUA,EAAQC,GACzCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,eAC3DxT,KAAKqd,cAAgBf,GAAiBkB,EAC1C,EACA,oBAAqB,SAAUA,EAAQC,GACnCzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,KAC3DxT,KAAK+Z,aAAe0C,GAAgBe,EACxC,EACA,eAAgB,SAAUA,EAAQC,GAC9Bzd,KAAK0a,YAAca,GAAcvb,KAAK0a,YAAa8C,EAAQhK,GAAAA,QAC3DxT,KAAKuU,QAAUmI,GAAWc,EAC9B,GAEJ9a,SAAU,CACNgb,mBAAkB,sBACd,OAAO1d,KAAK4c,eAAe5P,KAAI,SAACkM,GAAa,MAAM,CAC/C9R,GAAI8R,EACJlY,KAAM,EAAKmO,GAAG,qBAAD,OAAsBwE,GAASuF,GAAE,WACjD,GACL,KC3S2S,M,uBCAxF,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCHhC,IACA9a,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEA0b,WAAAA,CACAnc,KAAAA,OACAS,QAAAA,MAEAM,QAAAA,CACAf,KAAAA,QACAS,SAAAA,IAGAgG,WAAAA,CAAAoZ,eAAAA,KClC6Q,MCOzQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5Bxe,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,mBAAmB,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAAY,CAAChgB,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,qCAAqC,MACzS,EACIhR,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,qCACA,IC7B6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCehC,IACA6E,WAAAA,CAAAyZ,qBAAAA,GAAAC,qBAAAA,IACA7f,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEA0b,WAAAA,CACAnc,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACA0b,yBAAAA,SAAAA,IACA5a,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iDAAAA,CAAAse,eAAAA,EAAAA,QACA,wBACA,+CACA,ICtD6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,YCrBnBC,I,2QAAe,SAACC,GACzB,IAAMC,EAAOC,GAAaF,GAC1B,OAAOG,GAAiBF,EAC5B,GAGaC,GAAe,SAACF,GACzB,OAAO,IAAII,KAAK,CAACJ,GAAS,CAAEtgB,KAAM,cACtC,EAGaygB,GAAmB,SAACF,GAC7B,OAAO,IAAI/Y,SAAoB,SAACC,EAASC,GACrC,IAAMiZ,EAAS,IAAIC,WACnBD,EAAOE,OAAS,SAAU9a,GACtB0B,EAAQ,IAAIqZ,WAAW/a,EAAMgb,OAAOC,QACxC,EACAL,EAAOM,QAAU,SAAU5V,GACvB3D,EAAO2D,EACX,EACAsV,EAAOO,kBAAkBX,EAC7B,GACJ,EAGaY,GAAe,SAACZ,GACzB,OAAO,IAAI/Y,SAAgB,SAACC,EAASC,GACjC,IAAMiZ,EAAS,IAAIC,WACnBD,EAAOE,OAAS,SAAU9a,GACtB0B,EAAQ1B,EAAMgb,OAAOC,OACzB,EACAL,EAAOM,QAAU,SAAU5V,GACvB3D,EAAO2D,EACX,EACAsV,EAAOS,WAAWb,EACtB,GACJ,ECtBac,GAAQ,yCAAG,WACpBxF,EACAyF,GAA+B,uFAElB3P,EAAAA,EAAAA,KAAAA,IAAe,cAAD,OAAekK,EAAY0F,eAAiB,CACnED,OAAAA,IACDxS,MAAK,SAACG,GAAC,OACNA,EAAEnO,IAA6D,IAClE,mFACJ,gBAToB,wCAWR0gB,GAAQ,yCAAG,WACpBF,GAGC,uEAOA,OALGA,EAAOG,QAAUpK,MAAMC,QAAQgK,EAAOG,UACtCH,EAAOG,OAASH,EAAOG,OAAOxH,KAAK,MAEnCqH,EAAOzF,aAAexE,MAAMC,QAAQgK,EAAOzF,eAC3CyF,EAAOzF,YAAcyF,EAAOzF,YAAY5B,KAAK,MAChD,SACYtI,EAAAA,EAAAA,KAAAA,IAAe,aAAc,CAAE2P,OAAAA,IAAUxS,MAAK,SAACG,GAAC,OACzDA,EAAEnO,IAA6D,IAClE,mFACJ,gBAfoB,sCAiBR4gB,GAAW,yCAAG,WACvBJ,GAA+B,2GAC/BlH,EAAAA,EAAAA,OAAAA,QAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAAuB,KACvBO,EAAAA,EAAAA,OAAAA,QAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAA2B,KAAI,KAEvBP,EAAY,OACX,WADW,KACH,EAER,cAFQ,MAGR,cADW,MAEX,QADW,KADA,EAEN,wCAHC,MAAI,yCAwCV,OAlCGA,EAAaxB,SAAS,MAAQwB,EAAaxB,SAAS,QAChD+I,EAAmB,EACnBC,EAAkC,OAElCjH,IACMkH,EAAQlH,EAAiBkH,MAAM,gBACjCA,IAAO,WACiBA,EAAK,GAApBvgB,EAAK,KAAEwgB,EAAI,KACpBH,EAAmBI,SAASzgB,EAAO,IACnCsgB,EAAwB,MAATE,EAAe,SAAW,SAK7CR,EAAO7I,cAAgBuJ,GAAAA,SACjBC,EAA+B,SAAjBL,EACdlP,KAAKwP,KAAKP,EAAmB,IAC7BA,GAAoB,EAC1BL,GAAS,kBACFA,GAAM,IACTvI,OAAQT,GAAON,MAAMmB,IAAI8I,EAAa,UAAU5I,MAC5C,SACFN,SAASgD,iBAERuF,EAAO7I,cAAgBuJ,GAAAA,QACxBG,EAA6B,WAAjBP,EACO,GAAnBD,EACAA,GAAoB,EAC1BL,GAAS,kBACFA,GAAM,IACTvI,OAAQT,GAAON,MAAMmB,IAAIgJ,EAAW,QAAQpJ,SACvCgD,kBAGhB,4CAGIpK,EAAAA,EAAAA,KAAAA,IAAe,gBAAiB,CAAE2P,OAAAA,IAC1Cc,OAAM,SAACva,GAIJ,OAH4B,MAAxBA,EAAI1G,SAASmK,QACb+W,QAAQhX,MAAM,8BAA+BxD,GAE1C,CAAE/G,KAAM,CAAC,EACpB,IACCgO,MAAK,SAACG,GAEH,IAAMqT,EAAerT,EAAEnO,KAAKyhB,WAAatT,EAAEnO,KAAKyhB,UAAUnK,OAAS,EAC7DnJ,EAAEnO,KAAKyhB,UAAUC,QAAO,SAACC,EAAKjN,GAC5B,OAAO,IAAI6E,KAAK7E,EAAKkN,WAAa,IAAIrI,KAAKoI,EAAIC,WACzClN,EACAiN,CACV,IAAGC,WACD,IAAIrI,MAAO0B,cACXjb,EAAOmO,EAAEnO,KAEf,OADAA,EAAKwhB,aAA2B,OAAZA,QAAY,IAAZA,EAAAA,GAAgB,IAAIjI,MAAO0B,cACxCjb,CACX,IAAE,qFACT,gBAtEuB,sCAwEX6hB,GAAa,yCAAG,WACzB9G,EACAyF,EACA5Q,GAAqC,uFAExBiB,EAAAA,EAAAA,KAAAA,IACJ,mBAAD,OAAoBkK,EAAY0F,cAAa,YAAI7Q,GAAS,CAC1D4Q,QAAQ,kBAAKA,GAAM,IAAEG,OAAQ,WAEhC3S,MAAK,SAACG,GAAC,OACJA,EAAEnO,IAA2D,IAEhEgO,MAAK,SAACG,GAMH,OALAA,EAAE2T,UAAUzH,SAAQ,SAAC0H,GACjBA,EAAE9a,QAAQoT,SAAQ,SAAClM,GACfA,EAAE6T,IAAM,GACZ,GACJ,IACO7T,CACX,IAAE,mFACT,gBApByB,0CAsBb8T,GAAO,yCAAG,WACnBlH,EACAyF,GAA+B,uFAElB3P,EAAAA,EAAAA,KAAAA,IACJ,aAAD,OAAckK,EAAY0F,eAAiB,CAAED,OAAAA,IAChDxS,MAAK,SAACG,GAAC,OACJA,EAAEnO,IAA2D,IAChE,mFACR,gBATmB,wCAWPkiB,GAAe,yCAAG,WAC3B1B,GAA+B,yFAC/BlH,EAAAA,EAAAA,OAAAA,QAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAAuB,KAAI,KAEnBA,EAAY,OACX,WADW,MAEX,cADQ,MAER,cADW,MAEX,QADW,KAFH,EAGH,iDAiBL,OAdGA,EAAaxB,SAAS,MAAQwB,EAAaxB,SAAS,QAChD0I,EAAO7I,cAAgBuJ,GAAAA,QACvBV,GAAS,kBACFA,GAAM,IACTvI,OAAQT,GAAON,MAAMmB,IAAI,EAAG,UAAUE,MAAM,SACvCN,SAASgD,gBAEXuF,EAAO7I,cAAgBuJ,GAAAA,QAC9BV,GAAS,kBACFA,GAAM,IACTvI,OAAQT,GAAON,MAAMmB,IAAI,EAAG,QAAQJ,SAC/BgD,kBAGhB,2CAGIpK,EAAAA,EAAAA,KAAAA,IAAe,qBAAsB,CAAE2P,OAAAA,IAC/Cc,OAAM,SAACva,GAIJ,OAH2B,KAAvBA,EAAI1G,SAASmK,QACb+W,QAAQhX,MAAM,8BAA+BxD,GAE1C,CAAE/G,KAAM,CAAC,EACpB,IACCgO,MAAK,SAACG,GACH,IAAMqT,EAAerT,EAAEnO,KAAKyhB,WAAatT,EAAEnO,KAAKyhB,UAAUnK,OAAS,EAC7DnJ,EAAEnO,KAAKyhB,UAAUC,QAAO,SAACC,EAAKjN,GAC5B,OAAO,IAAI6E,KAAK7E,EAAKkN,WAAa,IAAIrI,KAAKoI,EAAIC,WACzClN,EACAiN,CACV,IAAGC,WACD,IAAIrI,MAAO0B,cACXjb,EAAOmO,EAAEnO,KAEf,OADAA,EAAKwhB,aAA2B,OAAZA,QAAY,IAAZA,EAAAA,GAAgB,IAAIjI,MAAO0B,cACxCjb,CACX,IAAE,oFACT,gBA/C2B,sCAiDfmiB,GAAW,yCAAG,WACvBC,EACAT,EACAU,GAAoB,yFACsC,OAA1D1K,EAAAA,EAAAA,OAAAA,QAAAA,IAAAA,EAAAA,GAAAA,EAAAA,GAAkCuJ,GAAAA,MAAwB,kBAEnDrQ,EAAAA,EAAAA,KAAAA,IAAe,+BAAD,OACcuR,EAAInH,cAAa,gBAAQ0G,EAAI1G,cAAa,uBACrEnC,GAAyB,GAAIuJ,GACjC,wBAAgB1K,IAEf3J,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAgC,KAAC,2CACvD,gBAZuB,0CAcXsiB,GAAa,yCAAG,6GAGlBzR,EAAAA,EAAAA,KAAAA,IAAe,kBAAkB7C,MAAK,SAACG,GAAC,OAC3CA,EAAEnO,IAAsC,KAC3C,2CACJ,kBANyB,mCAQbuiB,GAAS,yCAAG,WAMvBxH,EAAoByF,GAAiC,uFAWtC3P,EAAAA,EAAAA,KAAAA,IACJ,sBAAD,OAAuBkK,EAAY0F,eAAiB,CAAED,OAAAA,IACzDxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBApBqB,wCAsBTwiB,GAAgB,yCAAG,WAC5BzH,EACAyF,GAAkC,uFAErB3P,EAAAA,EAAAA,KAAAA,IACJ,sBAAD,OAAuBkK,EAAY0F,cAAa,YAAY,CAC5DD,OAAAA,IAEHxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBAT4B,wCAWhByiB,GAAkB,yCAAG,WAC9BL,EACAT,GAAS,6EAEwD,OAA3DnB,EAAS,CAAE4B,IAAKA,EAAInH,cAAe0G,IAAKA,EAAI1G,eAAe,SACpDpK,EAAAA,EAAAA,KAAAA,IACJ,yBAA0B,CAAE2P,OAAAA,IAChCxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBAR8B,wCAkBlB0iB,GAAoB,yCAAG,WAChClC,GAAwC,uFAE3B3P,EAAAA,EAAAA,KAAAA,IACJ,yBAA0B,CAAE2P,OAAAA,IAChCxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBANgC,sCAQpB2iB,GAAe,yCAAG,oGAGd9R,EAAAA,EAAAA,KAAAA,IAAe,qBAAqB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACvE,kBAJ2B,mCAMf4iB,GAAc,yCAAG,WAC1Bpa,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,qBAAD,OAAsBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC7E,gBAJ0B,sCAYd6iB,GAAc,yCAAG,oGACbhS,EAAAA,EAAAA,KAAAA,IAAe,oBAAoB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACtE,kBAF0B,mCAId8iB,GAAa,yCAAG,WACzBta,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,oBAAD,OAAqBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC5E,gBAJyB,sCA6Bb+iB,GAAU,yCAAG,oGACTlS,EAAAA,EAAAA,KAAAA,IACJ,eACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,kBAJsB,mCAMVgjB,GAAiB,yCAAG,oGAGhBnS,EAAAA,EAAAA,KAAAA,IACJ,qBACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,kBAN6B,mCAQjBijB,GAAgB,yCAAG,WAAOza,GAAU,uFACvCqI,EAAAA,EAAAA,KAAAA,UAAkB,oBAAD,OAAqBrI,IAAK,2CACpD,gBAF4B,sCAIhB0a,GAAgB,yCAAG,WAC5B1a,EACA7H,GAA0C,uFAE7BkQ,EAAAA,EAAAA,KAAAA,IAAe,oBAAD,OAAqBrI,GAAM7H,GAAOqN,MAAK,SAACG,GAAC,OAChEA,EAAEnO,IAAI,IACT,mFACJ,gBAP4B,wCAShBmjB,GAAgB,yCAAG,WAC5BxiB,GAA0C,uFAE7BkQ,EAAAA,EAAAA,KAAAA,KAAgB,mBAAoBlQ,GAAOqN,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC9E,gBAJ4B,sCAMhBojB,GAAkB,yCAAG,WAC9BC,GAAsD,uFAEzCxS,EAAAA,EAAAA,KAAAA,KAAgB,4BAA6BwS,GAAQrV,MAC9D,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAChB,mFACJ,gBAN8B,sCAQlBsjB,GAAiB,yCAAG,oGAGhBzS,EAAAA,EAAAA,KAAAA,IAAe,4BAA4B7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC9E,kBAJ6B,mCAMjBujB,GAAa,yCAAG,oGACZ1S,EAAAA,EAAAA,KAAAA,IAAe,eAAe7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACjE,kBAFyB,mCAIbwjB,GAAoB,yCAAG,WAChChb,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,mBAAD,OAAoBrI,EAAE,aAAYwF,MAAK,SAACG,GAAC,OAChEA,EAAEnO,IAAI,IACT,mFACJ,gBANgC,sCAQpByjB,GAAS,yCAAG,WAAOjb,GAAU,uFACzBqI,EAAAA,EAAAA,KAAAA,IAAe,eAAD,OAAgBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACvE,gBAFqB,sCAcT0jB,GAAY,yCAAG,WACxBC,GAAgC,uFAEnB9S,EAAAA,EAAAA,KAAAA,KAAgB,gBAAiB8S,GAAa3V,MAAK,SAACG,GAAC,OAC9DA,EAAEnO,IAAI,IACT,mFACJ,gBANwB,sCAQZ4jB,GAAS,yCAAG,WACrBD,GAAgC,uFAEnB9S,EAAAA,EAAAA,KAAAA,IAAe,iBAAD,OAAkB8S,EAAYnb,IAAMmb,GAC1D3V,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBALqB,sCAOT6jB,GAAY,yCAAG,oGACXhT,EAAAA,EAAAA,KAAAA,IAAe,iBAAiB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACnE,kBAFwB,mCAIZ8jB,GAAc,yCAAG,oGAGbjT,EAAAA,EAAAA,KAAAA,IAAe,yBAAyB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3E,kBAJ0B,mCAMd+jB,GAAS,yCAAG,WAAOvb,GAAU,uFACzBqI,EAAAA,EAAAA,KAAAA,IAAe,iBAAD,OAAkBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACzE,gBAFqB,sCAITgkB,GAAiB,yCAAG,WAC7Bxb,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,iBAAD,OAAkBrI,EAAE,aAAYwF,MAAK,SAACG,GAAC,OAC9DA,EAAEnO,IAAI,IACT,mFACJ,gBAN6B,sCAiBjBikB,GAAgB,yCAAG,oGAGfpT,EAAAA,EAAAA,KAAAA,IAAe,wBAAwB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC1E,kBAJ4B,mCAMhBkkB,GAAc,yCAAG,oGACbrT,EAAAA,EAAAA,KAAAA,IAAe,4BAA4B7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC9E,kBAF0B,mCAIdmkB,GAAwB,yCAAG,6GAC7BC,KAAcpW,MAAK,SAACG,GAAC,OAAKA,EAAEC,KAAI,SAACH,GAAC,OAAKA,EAAE7L,IAAI,GAAC,KAAC,2CACzD,kBAFoC,mCAIxBiiB,GAAe,yCAAG,oGAGdxT,EAAAA,EAAAA,KAAAA,IAAe,oBAAoB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACtE,kBAJ2B,mCAMfokB,GAAW,yCAAG,oGACVvT,EAAAA,EAAAA,KAAAA,IAAe,gBAAgB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAClE,kBAFuB,mCAIXskB,GAAU,yCAAG,WACtB9b,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,gBAAD,OAAiBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFACxE,gBAJsB,sCAYVukB,GAAiB,yCAAG,WAC7BC,GAAoC,uFAEvB3T,EAAAA,EAAAA,KAAAA,KAAgB,mBAAoB2T,GAAMxW,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC7E,gBAJ6B,sCAMjBykB,GAAc,yCAAG,WAC1BD,GAAoC,uFAEvB3T,EAAAA,EAAAA,KAAAA,IAAe,oBAAD,OAAqB2T,EAAKhc,IAAMgc,GAAMxW,MAAK,SAACG,GAAC,OACpEA,EAAEnO,IAAI,IACT,mFACJ,gBAN0B,sCAQd0kB,GAAc,yCAAG,WAC1Blc,GAAU,uFAEGqI,EAAAA,EAAAA,KAAAA,IAAe,oBAAD,OAAqBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC5E,gBAJ0B,sCAMd2kB,GAAkB,yCAAG,WAC9BC,EACAC,GAAgB,uFAEHhU,EAAAA,EAAAA,KAAAA,IAAe,iBAAD,OAAkB+T,EAAQ,oBAAYC,IAC5D7W,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,mFAC3B,gBAN8B,wCAQlB8kB,GAAkB,yCAAG,WAC9BC,EACAC,EACAC,GAAsB,uFAETpU,EAAAA,EAAAA,KAAAA,KAAgB,qBAAD,OAAsBkU,EAAQ,YAAY,CAClEC,OAAAA,EACAE,YAAaD,IACf,mFACL,gBAT8B,0CAWlBE,GAAoB,yCAAG,oGAGnBtU,EAAAA,EAAAA,KAAAA,IAAe,mBAAmB7C,MAAK,SAACG,GACjD,OAAOA,EAAEnO,IACb,IAAE,mFACL,kBANgC,mCAQpBolB,GAAqB,yCAAG,WACjCpJ,EACAqJ,GAAa,mFAEwB,OAA/BC,EAAY9d,KAAKC,UAAU4d,GAAI,SACb9F,GAAa+F,GAAU,OAKjB,OALxBC,EAAY,EAAH,KACTC,EAAO,IAAI5F,KAAK,CAAC2F,GAAY,CAAErmB,KAAM,6BACrCgK,EAAW,IAAIuc,SACrBvc,EAASwc,OAAO,OAAQ1J,EAAE5Z,MAC1B8G,EAASwc,OAAO,cAAe1J,EAAE1I,aACjCpK,EAASwc,OAAO,OAAQF,GAAM,UACjB3U,EAAAA,EAAAA,KAAAA,KAAgB,kBAAmB3H,EAAU,CACtDzI,QAAS,CACL,eAAgB,yBAErBuN,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,qFACzB,gBAhBiC,wCAkBrB2lB,GAAkB,yCAAG,WAC9Bnd,EACAwT,EACAqJ,GAAa,qFAEwB,OAA/BC,EAAY9d,KAAKC,UAAU4d,GAAI,SACb9F,GAAa+F,GAAU,OAKjB,OALxBC,EAAY,EAAH,KACTC,EAAO,IAAI5F,KAAK,CAAC2F,GAAY,CAAErmB,KAAM,6BACrCgK,EAAW,IAAIuc,SACrBvc,EAASwc,OAAO,OAAQ1J,EAAE5Z,MAC1B8G,EAASwc,OAAO,cAAe1J,EAAE1I,aACjCpK,EAASwc,OAAO,OAAQF,GAAM,UACJ3U,EAAAA,EAAAA,KAAAA,IAAe,mBAAD,OACjBrI,GACnBU,EACA,CACIzI,QAAS,CACL,eAAgB,yBAG1BuN,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QARJ,OAAX4lB,EAAc,EAAH,uBASVA,GAAW,4CACrB,gBAtB8B,0CAwBlBC,GAAqB,yCAAG,WAAOrd,GAAU,mGAC3BqI,EAAAA,EAAAA,KAAAA,IAAe,mBAAD,OAAoBrI,EAAE,YAAY,CACnEsd,aAAc,gBAChB,OAC8C,OAH1CzlB,EAAW,EAAH,KAGR0lB,EAAa,IAAI/F,WAAW3f,EAASL,MAAK,SACxBqgB,GAAa,IAAIT,KAAK,CAACmG,KAAa,OAC3B,OAD3BT,EAAY,EAAH,KACTD,EAAM7d,KAAKwe,MAAMV,GAAU,kBAC1BD,GAAG,2CACb,gBARiC,sCAUrBY,GAAe,yCAAG,WAAOtkB,GAAW,uFAChCkP,EAAAA,EAAAA,KAAAA,KAAgB,kCAAmC,CAC5DqV,aAAcvkB,IAChB,mFACL,gBAJ2B,sCAKfwkB,GAAgB,yCAAG,WAAOxkB,GAAW,uFACjCkP,EAAAA,EAAAA,KAAAA,KAAgB,mCAAoC,CAC7DqV,aAAcvkB,IAChB,mFACL,gBAJ4B,sCAMhBykB,GAAY,yCAAG,WAAOzkB,GAAW,uFAC7BkP,EAAAA,EAAAA,KAAAA,KAAgB,+BAAgC,CACzDqV,aAAcvkB,IAChB,mFACL,gBAJwB,sCAKZ0kB,GAAc,yCAAG,WAAO1kB,GAAW,uFAC/BkP,EAAAA,EAAAA,KAAAA,KAAgB,iCAAkC,CAC3DqV,aAAcvkB,IAChB,mFACL,gBAJ0B,sC,YCpkBd2kB,GAAqB,SAACC,GAAgB,MAA8B,CAC7EjK,KAAMiK,EAAErnB,KACR+c,GAAIsK,EAAE/d,GACN0T,KAAMqK,EAAEnkB,KACRga,YAAamK,EAAEjT,YACf+I,SAAUkK,EAAEC,SACZjK,YAAagK,EAAEE,YAClB,EAwCYC,GAA6B,SAACH,GAEvC,IAAKA,EAAG,OAAO,KACf,IAAKA,EAAEjP,OAAQ,OAAO,KAEtB,IAAMqP,EAAyB,CAC3BnK,cAAe,GACf1C,gBAAiB,GACjBE,gBAAiB,GACjByC,cAAe,GACftB,aAAc,GACdtF,QAAS,GACTF,QAAS,GACTQ,YAAa,GACbuG,mBAAoB,GACpBzG,kBAAmB,IAwBvB,OArBAsQ,EAAElM,SAAQ,SAAC3F,GACHA,EAAK4H,OAAS1H,GAAAA,QACd+R,EAAGlK,cAAc1d,KAAK,CAAEyJ,GAAIkM,EAAKuH,GAAI7Z,KAAMsS,EAAKwH,OACzCxH,EAAK4H,OAAS1H,GAAAA,QACrB+R,EAAGnK,cAAczd,KAAK,CAAEyJ,GAAIkM,EAAKuH,GAAI7Z,KAAMsS,EAAKwH,OACzCxH,EAAK4H,OAAS1H,GAAAA,aACrB+R,EAAG7M,gBAAgB/a,KAAK,CAAEyJ,GAAIkM,EAAKuH,GAAI7Z,KAAMsS,EAAKwH,OAC3CxH,EAAK4H,OAAS1H,GAAAA,aACrB+R,EAAG3M,gBAAgBjb,KAAK,CAAEyJ,GAAIkM,EAAKuH,GAAI7Z,KAAMsS,EAAKwH,OAC3CxH,EAAK4H,OAAS1H,GAAAA,IACrB+R,EAAGxL,aAAapc,KAAK2V,EAAKwH,MACnBxH,EAAK4H,OAAS1H,GAAAA,OACrB+R,EAAG9Q,QAAQ9W,KAAK2V,EAAKwH,MACdxH,EAAK4H,OAAS1H,GAAAA,UACrB+R,EAAGxQ,YAAYpX,KAAK2V,EAAKwH,MAClBxH,EAAK4H,OAAS1H,GAAAA,cACrB+R,EAAGjK,mBAAmB3d,KAAK2V,EAAKuH,IACzBvH,EAAK4H,OAAS1H,GAAAA,iBACrB+R,EAAG1Q,kBAAkBlX,KAAK2V,EAAKwH,KAEvC,IACOyK,CACX,EAEA,IACInnB,MAAO,CACHgB,MAAO,CACHomB,MAAO,CAAC9jB,OAAQyT,OAChB5W,QAAS,MAEbknB,MAAO,CACH3nB,KAAMsD,OACN7C,QAAS,MAEbsU,SAAU,CACN2S,MAAOtkB,QACP3C,SAAS,GAEbmnB,UAAW,CACP5nB,KAAMoD,QACN3C,SAAS,GAEbinB,MAAO,CACHA,MAAOrQ,MACP5W,QAAS,iBAAM,CACXiV,GAAAA,QACAA,GAAAA,aACAA,GAAAA,aACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,QACAA,GAAAA,UACAA,GAAAA,cACH,GAELZ,KAAM,CACF9U,KAAMoD,QACN3C,SAAS,GAEboU,MAAO,CACH7U,KAAMoD,QACN3C,SAAS,GAEbwU,OAAQ,CACJjV,KAAMoD,QACN3C,SAAS,GAEbonB,KAAM,CACF7nB,KAAMoD,QACN3C,SAAS,GAEbqnB,aAAc,CACV9nB,KAAMoD,QACN3C,SAAS,GAEbG,SAAU,CACNZ,KAAMoD,QACN3C,SAAS,GAEbuU,MAAO,CACHhV,KAAMoD,QACN3C,SAAS,GAEbmU,YAAa,CACT5U,KAAMoD,QACN3C,SAAS,GAEbkU,YAAa,CACT3U,KAAMsD,OACN7C,QAAS,UAEbsnB,aAAc,CACV/nB,KAAMsD,OACN7C,QAAS,IAEbunB,cAAe,CACXhoB,KAAMoD,QACN3C,SAAS,GAEb8I,SAAU,CACNvJ,KAAMoD,QACN3C,SAAS,GAEbyU,MAAO,CACHlV,KAAMqX,MACN5W,QAAS,MAEb6U,sBAAuB,CACnBtV,KAAMoD,QACN3C,SAAS,IAGjBmE,SAAU,CACNqjB,UAAW,CACP/b,IAAG,WACC,OAAKhK,KAAKZ,MACNY,KAAK6S,SACE7S,KAAKZ,MAAM4N,KAAI,SAACkM,GAAC,OAAKA,EAAE2B,EAAE,IAE1B7a,KAAKZ,MAAMyb,GAJE,IAM5B,EACAmL,IAAG,SAACje,GACKA,EAID/H,KAAK6S,SACL7S,KAAKgE,MACD,QACAhE,KAAKimB,MAAMlP,QAAO,SAACmC,GAAC,OAAKnR,EAAImC,SAASgP,EAAE2B,GAAG,KAG/C7a,KAAKgE,MACD,QACAhE,KAAKimB,MAAMtK,MAAK,SAACzC,GAAC,OAAKA,EAAE2B,KAAO9S,CAAG,KAXvC/H,KAAKgE,MAAM,QAAS,KAc5B,GAEJkiB,kBAAmB,CACflc,IAAG,WACC,IAAMvM,EAAU6nB,GAA2BtlB,KAAKZ,OAEhD,OAAO3B,CACX,IAGR8G,WAAY,CAAE4hB,qBAAAA,IACdvnB,KAAI,WACA,MAAO,CACHsU,WAAY,GACZ+S,MAAO,GACPG,eAAgB9V,GAAiB+V,SACjCC,YAAY,EAEpB,EACAxkB,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GAAG,WACP,GAAKA,EACL,GAAI/H,KAAK6S,SAAU,OACT0T,EAAQvmB,KAAKZ,MAAM2X,QAAO,SAACzD,GAAI,OAAM,EAAK2S,MAAMtK,MAAK,SAAC6K,GAAC,OAAKA,EAAE3L,KAAOvH,EAAKuH,EAAE,GAAC,IAC/E0L,EAAMrQ,SAAQ,EAAAlW,KAAKimB,OAAMtoB,KAAI,iBAAI4oB,G,KAClC,CACH,IAAKvmB,KAAKZ,MAAMyb,GAAI,OACf7a,KAAKimB,MAEEjmB,KAAKimB,MAAMtK,MAAK,SAAC6K,GAAC,OAAKA,EAAE3L,KAAO,EAAKzb,MAAMyb,EAAE,KACrD7a,KAAKimB,MAAMtoB,KAAKqC,KAAKZ,OAFrBY,KAAKimB,MAAQ,CAACjmB,KAAKZ,M,CAK/B,EACA4I,WAAW,EACXjG,MAAM,GAEVmR,WAAU,SAACnL,EAAK0e,GACP1e,GAAQ0e,GACbzmB,KAAKmT,+BACT,EACA0S,aAAY,SAAC9d,EAAK0e,GACT1e,GAAQ0e,GACbzmB,KAAKmT,+BACT,GAEJrU,QAAS,CACLmU,YAAW,SAAClL,GAAG,WACNA,EAID/H,KAAK6S,SACL7S,KAAKgE,MACD,QACA+D,EAAIiF,KAAI,SAAC0D,GAAC,OAAK,EAAKuV,MAAMtK,MAAK,SAACzC,GAAC,OAAKA,EAAE2B,KAAOnK,CAAC,GAAC,KAGrD1Q,KAAKgE,MACD,QACAhE,KAAKimB,MAAMtK,MAAK,SAACzC,GAAC,OAAKA,EAAE2B,KAAO9S,CAAG,KAXvC/H,KAAKgE,MAAM,QAAS,KAc5B,EACAqP,kBAAiB,SAACH,GACdlT,KAAKgE,MAAM,QAAS,CAChB6W,GAAI3H,EACJ4H,KAAM5H,EACN8H,YAAa,KACbC,SAAU,GACVC,KAAM,YACNC,YAAa,GAErB,EACAhI,8BAA6B,WACzBnT,KAAK0mB,cACD1mB,KAAKkT,WACLlT,KAAKwlB,OAAS,CACVhS,GAAAA,QACAA,GAAAA,aACAA,GAAAA,aACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,QACAA,GAAAA,WAEJ,EACA,GAER,EACMkT,cAAa,SAACC,EAAanB,EAAOoB,EAAMC,GAAQ,6IAC9C,EAAK3M,MAAMC,GAAG,iBAAD,OAAkB,EAAKiM,iBAAmB,CAAF,gDAcpD,OAdoD,SAErD,EAAKlM,MAAM4M,MAAM,iBAAD,OAAkB,EAAKV,iBACjCW,EAAe,IAAIC,gBACnBC,EAAc,GAAH,OAAM,EAAKpB,cAAgB,IAAE,OAAGc,GAAe,IAChEI,EAAazC,OAAO,IAAK2C,GACJ,qBAAVzB,GAAyBA,EAAMzN,MACtCgP,EAAazC,OAAO,QAASkB,EAAMzN,QAEnB,qBAAT6O,GACPG,EAAazC,OAAO,OAAQsC,GAER,qBAAbC,GACPE,EAAazC,OAAO,WAAYuC,GACnC,UACuC7nB,EAAAA,EAAAA,KAAAA,IAC/B,eAAD,OAAgB+nB,EAAapW,aAChC/D,MAAK,SAACG,GAAC,OAAKA,EAAEnO,KAAKoO,IAAIkY,GAAmB,IAAC,QAF1CgC,EAAe,EAAKjB,MAAQ,EAAH,KAG1B,EAAK7mB,MAEC,EAAKyT,UACNsU,EAAM,IAAIC,IAAIF,EAAYla,KAAI,SAACqa,GAAC,OAAKA,EAAExM,EAAE,KAC/C,EAAKoL,MAAQ,GAAH,gBAAOiB,IAAW,QAAK,EAAK9nB,MAAM2X,QAAO,SAACsQ,GAAC,OAAMF,EAAIG,IAAID,EAAExM,GAAG,OAExE,EAAKoL,OAASiB,GAAe,IAAIpP,OAAO,CAAC,EAAK1Y,QAL9C,EAAK6mB,MAAQiB,EAMhB,QAEsD,OAFtD,UAED,EAAKhN,MAAMqN,IAAI,iBAAD,OAAkB,EAAKnB,iBAAkB,0EA5BT,EA8BtD,EACAoB,qBAAoB,WAChBxnB,KAAKsmB,YAAa,EAClBtmB,KAAKgE,MAAM,mBAAoBhE,KAAKkT,WACxC,EACAuU,aAAaC,EAAAA,GAAAA,IAAQ,qBAAoB,yCAAE,oFAEJ,OAFI,SAEnC1nB,KAAK2nB,oBAAqB,EAAK,SACNlG,KAAgB,OAAzCzhB,KAAK4nB,YAAc,EAAH,KAChB5nB,KAAK2nB,oBAAqB,EAAM,oDAEhCjoB,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,6BAA6B,yDAEvD,SARyD0Y,IAAc,sCAAdA,CAAc,CAA/B,MC5VyQ,M,uBCAxF,GAAe,KCO7O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYrnB,GAAOK,WAAS,MAAU,KAAUhD,EAAK,EAAC,S,OAAC,EAAM,IAAK0U,CAAI,OAAIxU,KAAOA,EAAIkS,OAEjH9R,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,aAExB,E,MCCA,IACAC,MAAAA,CACAgB,MAAAA,OACAmT,KAAAA,SAEA7P,SAAAA,CACA8P,UAAAA,WACA,uBACA,mBACA,oBACA,sBACA,iBACA,cACA,sBACA,mBACA,oBACA,uBACA,aACA,oBACA,WACA,iBACA,UACA,aACA,aACA,gBACA,eACA,kBACA,wBACA,iBACA,mBACA,OACA,QACA,eAEA,ICvCuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYhS,GAAOK,WAAS,MAAU,KAAUhD,EAAK,EAAC,S,OAAC,EAAM,IAAK0U,C,MAAK,CAAe,YAAIxU,KAAOA,EAAIkS,OAEjI9R,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,aAExB,E,MCCA,IACAC,MAAAA,CACAgB,MAAAA,OACAmT,KAAAA,QACAuV,KAAAA,CAAAA,OAAAA,SAEAplB,SAAAA,CACA8P,UAAAA,WACA,uBACA,YACA,6BACA,aACA,2BACA,aACA,2BACA,cACA,gCACA,aACA,2BACA,gBACA,iCACA,OACA,QACA,oBAEA,IC9B8Q,MCO1Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,wBClB2D3U,GAAM,W,IAAC,O,EAA+B,QAAY,G,OAAoB,OAAW,C,IAAG,OAAmB,MAAC,CAAC6I,0BAAoB,EAACnG,WAAI,mBAAYoG,WAAG,G,YAAa,S,YAAmBnG,EAAG,K,IAA8B3C,Y,YAAeE,G,IAAuB,IAAQA,G,EAAU,Q,MAAgC,QAAkB,EAAC0U,GAAAA,EAAAA,GAAW,C,MAAC,CAAc,QAAY1U,mBAAwB,MAAQA,EAAI4U,MAAM,YAAWgT,kBAAK,eAAejnB,EAAAA,YAAS,SAAWkU,GAAK,YAAe7U,KAAI2U,EAAAA,SAAY,MAAQ3U,EAAIiV,MAAM,KAAQ,EAACjV,KAAW,oBAAC2I,KAAAA,EAAY3I,KAAwBwC,eAAa,cAACoG,MAAG,Q,OAAmBnG,EAAG,Q,YAAuC,kB,kCAA0CzC,CAAAA,EAAI8K,GAAAA,EAAO,C,YAAC,O,MAACpJ,CAAgB,YAAI,qBAAC,OAAM,EAAW,WAAO,SAA4C,EAAO,UAAQ1B,MAAS,UAACuC,eAAS,GAAUynB,GAAK,I,WAAetoB,CAAiB,aAAIe,SAAG,SAAgB,GAAI,EAAC,KAAQ,CAAC3C,EAAO,WAAW,S,CAAmC,OAAa,C,IAAC,S,MAAgB,CAAuB,MAAQE,EAAIkY,oBAAM,MAAU,IAAc,UAAG,KAAC,OAAC,WAAW,EAAC+R,QAAK,MAAQ,EAAI,MAAK,qBACxpC,IACG7pB,MAAAA,EAAe,KAEnB,OAAe,EAAEA,S,UC6CjB,IACAC,MAAAA,CACAgB,MAAAA,CAAAA,KAAAA,OAAAA,OAAAA,OACA6oB,SAAAA,CACAnqB,KAAAA,QACAS,SAAAA,GAEAoU,MAAAA,CACA7U,KAAAA,QACAS,SAAAA,GAEAonB,KAAAA,CACA7nB,KAAAA,QACAS,SAAAA,GAEAG,SAAAA,CACAZ,KAAAA,QACAS,SAAAA,GAEAqU,KAAAA,CACA9U,KAAAA,QACAS,SAAAA,GAEAmU,YAAAA,CACA5U,KAAAA,QACAS,SAAAA,GAEAknB,MAAAA,CACA3nB,KAAAA,OACAS,QAAAA,QAEAkU,YAAAA,CACA3U,KAAAA,OACAS,QAAAA,SAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,QAEAyU,MAAAA,CACAlV,KAAAA,MACAS,QAAAA,WAAA,WAEA2pB,QAAAA,CACApqB,KAAAA,QACAS,SAAAA,GAEA0X,MAAAA,CACAnY,KAAAA,QACAS,SAAAA,GAEA8I,SAAAA,CACAvJ,KAAAA,QACAS,SAAAA,GAEAyiB,IAAAA,CACAljB,KAAAA,OACAS,QAAAA,cAEAgiB,IAAAA,CACAziB,KAAAA,OACAS,QAAAA,cAEAwU,OAAAA,CACAjV,KAAAA,QACAS,SAAAA,IAGAK,KAAAA,WAAA,OACAupB,MAAAA,EACAtf,KAAAA,EACA,EACAnG,SAAAA,CACA0lB,oBAAAA,WACA,kBACA,WACA,mEAEA,sCAJA,IAMA,EACAC,mBAAAA,WACA,kBACA,mBACA,WACA,WACAtR,QAAAA,SAAAA,GAAA,aACA/J,KAAAA,SAAAA,GAAA,0CACA+K,KAAAA,OAEA,yCAEA,oBACA,WACA,WACAhB,QAAAA,SAAAA,GAAA,aACA/J,KAAAA,SAAAA,GAAA,uCACA+K,KAAAA,KAEA,sCAGA,WACA,WACAhB,QAAAA,SAAAA,GAAA,aACA/J,KAAAA,SAAAA,GAAA,0BACA+K,KAAAA,OAEA,yBA1BA,IA6BA,GAEAjW,MAAAA,CACAqmB,KAAAA,SAAAA,GAAA,WACA,uEACA,EACAtf,IAAAA,SAAAA,GACA,2BACA,GAEA/J,QAAAA,CACAkpB,KAAAA,SAAAA,GACA,eACA,uFACA,sBACA,sCACA,MACA,wBACA,+BAEA,ICpLuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,WClBYxnB,GAAOK,WAAS,MAAU,KACrE,aACD,OAAI1C,EAAAA,WAAoB,0DAExB,E,MCIA,IACAS,KAAAA,WAAA,OAAA0pB,SAAAA,EAAA,EACAxmB,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GAAA,+BAAAgG,WAAAA,EAAAjG,MAAAA,KCZyQ,MCOrQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCUhCgH,EAAAA,WAAAA,UAAc,iBAAkByf,GAChCzf,EAAAA,WAAAA,UAAc,cAAe0f,IAC7B1f,EAAAA,WAAAA,UAAc,eAAgB2f,IAC9B3f,EAAAA,WAAAA,UAAc,aAAc4f,IAC5B5f,EAAAA,WAAAA,UAAc,uBAAwB6f,IACtC7f,EAAAA,WAAAA,UAAc,qBAAsB6G,IACpC7G,EAAAA,WAAAA,UAAc,uBAAwB8G,IACtC9G,EAAAA,WAAAA,UAAc,cAAe8f,IAC7B9f,EAAAA,WAAAA,UAAc,YAAa+f,IAC3B/f,EAAAA,WAAAA,UAAc,cAAeggB,IAC7BhgB,EAAAA,WAAAA,UAAc,cAAeigB,IAC7BjgB,EAAAA,WAAAA,UAAc,oBAAqBkgB,IACnClgB,EAAAA,WAAAA,UAAc,mBAAoBmgB,GAAAA,GAClCngB,EAAAA,WAAAA,UAAc,qBAAsBogB,GAAAA,GACpCpgB,EAAAA,WAAAA,UAAc,kBAAmBqgB,IACjCrgB,EAAAA,WAAAA,UAAc,cAAesgB,IAC7BtgB,EAAAA,WAAAA,UAAc,cAAeugB,IAC7BvgB,EAAAA,WAAAA,UAAc,QAASwgB,EAAAA,OACvBxgB,EAAAA,WAAAA,UAAc,cAAeygB,IAC7BzgB,EAAAA,WAAAA,UAAc,eAAgB0gB,IAC9B1gB,EAAAA,WAAAA,UAAc,kBAAmB2gB,IACjC3gB,EAAAA,WAAAA,UAAc,6BAA8B4gB,IAC5C5gB,EAAAA,WAAAA,UAAc,mBAAoB6gB,IAClC7gB,EAAAA,WAAAA,UAAc,2BAA4B8gB,IAC1C9gB,EAAAA,WAAAA,UAAc,mBAAoB+gB,IAClC/gB,EAAAA,WAAAA,UAAc,qBAAsBghB,ICnDpChhB,EAAAA,WAAAA,UAAc,aAAc,CACxBihB,KAAI,SAACC,EAAGC,EAASC,GACb,IAAMhiB,EAAWgiB,EAAMzkB,QAAQ0kB,gBAC/BD,EAAME,MAAMC,IAAI,SAAS,kBAAMniB,EAAS2e,MAAMoD,EAAQ9qB,MAAM,IAC5D+qB,EAAME,MAAMC,IAAI,QAAQ,kBAAMniB,EAASof,IAAI2C,EAAQ9qB,MAAM,GAC7D,I,aCPCmrB,G,wECAmP,W,MAAW,K,IAAwB1sB,MAAM,G,SAAC,KAAO,EAAC,KAAa,C,YAAC,C,OAAS,Q,MAAyBA,C,IAAO,G,SAA6B,G,MAAO,M,KAA4BA,EAAM,oB,YAAsB,O,IAAG,U,GAAkC4C,W,MAA6B,GAAC,M,MAAC,CAAU,oBAAkB,KAAO,KAAgF,qBAAClB,MAAM,CAACH,KAAOrB,EAAIysB,uB,GAAkD,EAACA,uBAAwB,C,MAAC,CAAC/qB,MAAAA,EAAW,aAA0B,gCAAC,wBAAC0Q,MAAM,CAAM,QAAK,eAAQ,GAAI,QAAW,MAAW,WAAcpS,eAAI0sB,eAAwBC,UAAclqB,eAA+B3C,MAAM,CAAC,MAAO,EAAC,qBAAgB,SAAQ,SAAE,GAAC,EAAM,qBAAG,CAAC,EAAe,qC,SAA4D,G,KAAI,S,GAAcA,W,MAAO,GAAM,MAAC,0CAAE,mBAAE,MAAMK,CAAgFL,MAAM,gBAAC,MAAQE,GAAM,QAAI,cAAEoS,GAAM,CAAO,kBAAO,wBAAM,IAA0C,CAACwa,EAAAA,EAAAA,EAAO5C,CAAI,OAACtoB,KAAW,KAAe,yBAAgB,qDAAM,MAAC,CAAC,MAAc,QAAwD,EAAwJ,OAAS,KAAa,MAAM,CAAgB5B,MAAM,S,SAAQ,SAAiB+sB,GAAoB,SAAS,CAAM,EAAE,WAAK,WAA6B,GAAE7sB,gBAAc8sB,CAAmG,MAAMC,CAAwDjtB,MAAM,KAAC,0BAAQ,4BAAU2C,GAAG,uBAAsB,kGAACC,OAAAA,EAAAA,MAAY,CAAO5C,IAAM,GAAC,QAAgB,CAAG,MAAM,CAAG,4BAAKE,OAAI+sB,SAAsNvqB,CAAAA,EAAIgX,EAAAA,EAAK,CAAC9W,YAAY,QAAO5C,CAAAA,EAAK,GAAC,sE,MAAC,YAAQ,gC,MAAM,CAAE,MAAS,SAA2H4C,CAAAA,EAAAA,GAAAA,EAAY,CAAO,YAAS,OAAyP,MAAOD,CAAUD,cAAI2Y,GAAE,KAAK,M,EAAuB,YAAQ,eAAS,iJ,OAAC,SAAS,CAAM,MAAE,YAAY,OAAyI,MAAInb,CAAuDF,MAAM,SAAa,mE,IAAG,EAAC,wC,YAAC,QAAyB,yNAAG,OAAKmQ,EAAG,MAAK,CAAgBnQ,IAAM,GAAC,QAAQ,CAAM,OAAC0B,MAAM,UAACH,OAAW2rB,S,CAA8ChtB,EAAIgtB,GAAAA,IAAAA,EAAAA,GAAAA,EAAmB,GAAChD,0CAAG,6C,KAAC,mD,MAACtoB,CAAgC,SAAiB5B,GAAAA,CAAO,gBAAQ,EAAS,SAAU,mBAAE,MAAK,CAAgB4C,MAAW,OAA0B5C,MAAM,CAAC,MAAM,EAAC,oBAAE,qBAAIE,EAAM,oBAAoBA,CAA6C0C,EAAqB1C,WAAO,wB,CAAqF,OAAQ,C,MAAoB,CAA4B,gBAAC,UAA+BF,CAAAA,EAAK,MAAC,C,YAAU,W,CAAC,MAAM,CAA6C,OAAI2C,KAAG,K,CAAiB,KAAM,mBAAC,8BAAE,oBAAG,CAACzC,EAAIG,GAAG,0CAAuC,EAAE,MAAO,kBAC9oH,IACGC,MAAAA,SAAoB,GAExB,EAASgB,qBAAuB,C,+QCJuI,W,IAAc,OAACI,EAAK,EAAC,S,OAACH,EAAK,KAAM4rB,C,MAAU1qB,C,UAA6B0qB,K,CAAcvrB,EAAAA,GAAAA,EAAW,CAAU,OAAG1B,eAAYktB,gBAAsC,SAAU,IAA0B,MAAM,CAAe1qB,MAAI,WAA4B1C,SAAM,YAAC,WAAQ,CAAE,EAAE,WAAY,a,EAAuEA,GAAK,EAAC,yB,OAAC,aAAQ,CAAE,OAAG,CAACE,EAAG,KAAWkoB,CAAwB,mBAAU,E,MAAmB/M,CAAErb,MAAM,K,CAAa,4CAAC,YAAM,OAAmK,MAAI,CAAK,MAAI,MAEtyBM,EAAAA,GAAAA,EAAe,OAAK,cAExB,OAASgB,EAAM,KAAEhB,C,sKCqCX+sB,GAAkB,iBAwDXC,GAAkB,SAC3BL,GAEA,IAAMM,EACFzmB,EAAAA,EAAAA,iBAAwB,kBACxBmmB,EAAYO,iBAAiB,iBAC3BC,EAAkB3mB,EAAAA,EAAAA,iBAAwB,kBAC5CmmB,EAAYO,iBAAiB,mBAC5BD,EACCG,EAAsB5mB,EAAAA,EAAAA,iBAAwB,sBAChDmmB,EAAYO,iBAAiB,sBAC7BP,EAAYO,iBAAiB,wBAC5BD,EACL,MAAO,CAAEG,oBAAAA,EAAqBD,gBAAAA,EAClC,EAEaE,IAAiBC,EAAAA,GAAAA,IAAY,CACtCrkB,GAAI,SACJskB,MAAO,WACH,OAAOC,IACX,EACAC,QAAS,CACLP,iBAAgB,SAACK,GACb,OAAO,SAACG,GACJ,OAAKlnB,EAAAA,EAAAA,iBAAwB,0BAGrB+mB,EAAMI,UAAY,IAAI5hB,SAAS2hB,EAC3C,CACJ,EACAE,cAAa,SAACL,GACV,OAAO,SAACM,GAAkB,OACrBN,EAAMO,aAAe,IAAI/hB,SAAS8hB,EAAW,CACtD,GAEJE,QAAS,CACCC,oBAAmB,SAAC1iB,GAAgB,6IAChCnE,QAAQ2H,IAAI,CACd,EAAKmf,WAAW3iB,GAChB,EAAK4iB,iBAAiB5iB,KACxB,0CAJoC,EAK1C,EACA6iB,iBAAgB,WACZ,QAASpjB,GAAAA,EAAAA,QACb,EACMkjB,WAAU,SAAC3iB,GAAiB,mIACe,OAAzCA,IAAUP,GAAAA,EAAAA,SAAsBO,GAAS,SACjBgG,EAAAA,EAAAA,KAAAA,IACxB,yCACF7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFf2tB,EAAgB,EAAH,KAGfA,GACA,EAAKC,iBAAiBD,GACzB,0CAP6B,EAQlC,EACMF,iBAAgB,SAAC5iB,GAAiB,mIACS,OAAzCA,IAAUP,GAAAA,EAAAA,SAAsBO,GAAS,SACxBgG,EAAAA,EAAAA,KAAAA,IAAe,gDAAgD7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAAjGwK,EAAS,EAAH,KACZ,EAAKojB,iBAAiB,CAAEpjB,OAAAA,IAAU,0CAHE,EAIxC,EACAojB,iBAAgB,SAAC5tB,GACboB,KAAKysB,OAAO7tB,GACZ,IAAM8tB,EAAkBtmB,KAAKC,UAAUrG,KAAK2sB,QAC5CtjB,aAAaE,QAAQ2hB,GAAiBwB,EAC1C,EACAE,uBAAsB,SAAChuB,GACnB,IAAMiuB,EAAgB,CAClB7rB,KAAMpC,EAAKoC,KACX8rB,QAASluB,EAAKmuB,aAAa,SAAMvgB,EACjCwgB,QAASpuB,EAAKmuB,aAAa,SAAMvgB,EACjCygB,QAASruB,EAAKmuB,aAAa,SAAMvgB,GAErCxM,KAAKwsB,iBAAiBK,EAC1B,EACAK,aAAY,WACR,IAAM7Y,EAAO,CAACrU,KAAK8sB,QAAS9sB,KAAKgtB,QAAShtB,KAAKitB,SAC/C,OAAK5Y,EAAKsH,MAAK,SAACtG,GAAC,OAAKA,CAAC,IAChBhB,EAD0B,EAErC,KAIFsX,GAAmB,WACrB,IAAMwB,EAAsB9jB,aAAaC,QAAQ4hB,IAC7CkC,EAAgBhnB,KAAKwe,MAAMuI,GAwB/B,OAvBKC,IACDA,EAA8B,CAC1B3jB,SAAU,GACV4jB,WAAY,GACZC,aAAc,MACdR,QAAS,KACTE,QAAS,KACTC,QAAS,KACTM,WAAY,GACZC,uBAAwB,EACxBC,sBAAuB,KACvBC,wBAAyB,KACzBC,uBAAwB,KACxB7B,SAAU,GACVG,YAAa,GACb2B,eAAe,EACfC,uBAAuB,EACvBzkB,OAAQ,CACJ0kB,kBAAkB,EAClBC,iBAAkB,MAIvBX,CACX,GH7MA,SAAK7C,GACDA,EAAAA,gBAAAA,yBACAA,EAAAA,2BAAAA,0BACAA,EAAAA,oBAAAA,4BACH,EAJD,CAAKA,KAAAA,GAAY,KAKjB,UI8DA,IACAnsB,MAAAA,CACA4vB,sBAAAA,CACAlwB,KAAAA,QACAS,SAAAA,IAGAK,KAAAA,WACA,OACAqvB,eAAAA,EACAC,qBAAAA,EACAC,eAAAA,EACAnD,SAAAA,GACAT,aAAAA,GAEA,EACA7nB,UAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAAAA,CAAAA,EAAAA,CACAnD,UAAAA,WAEA,2BAAAK,EAAAA,EAAAA,gBAAAC,EAAAA,EAAAA,oBACA,IACA,IACA,IACA,qDACA,EACAA,GAAAA,KAAAA,YAAAA,iBAAAA,sBACA,EACA,oDAEA,GACA,kEACA,kDACA,mDACA,GACA,0DACA,EACA8C,GACAC,GACAC,GACA,2CACA,EACAjD,GAAAA,KAAAA,YAAAA,SAAAA,SAAAA,oBACA,iFACA,OACA+C,EACA,CACA7nB,MAAAA,sCACAyf,MAAAA,CACA,CAAAuI,GAAAA,GAAAA,OAAAA,EAAAA,YAAAnd,KAAAA,UAAA7K,MAAAA,gCACA,CAAAgoB,GAAAA,GAAAA,OAAAA,EAAAA,YAAAnd,KAAAA,WAAA7K,MAAAA,4BACA,CAAAgoB,GAAAA,GAAAA,OAAAA,EAAAA,WAAAnd,KAAAA,YAAA7K,MAAAA,+BACAioB,EACA,CAAAD,GAAAA,GAAAA,OAAAA,EAAAA,eAAAnd,KAAAA,qBAAA7K,MAAAA,0BACA,KACA,CAAAgoB,GAAAA,GAAAA,OAAAA,EAAAA,iBAAAnd,KAAAA,OAAA7K,MAAAA,qCACA,CAAAgoB,GAAAA,GAAAA,OAAAA,EAAAA,mBAAAnd,KAAAA,QAAA7K,MAAAA,+BACA,iBAEA,KACA8nB,EACA,CACA9nB,MAAAA,gCACAyf,MAAAA,CACA,CAAAuI,GAAAA,GAAAA,OAAAA,EAAAA,uBAAAnd,KAAAA,MAAA7K,MAAAA,+BACA,CACAgoB,GAAAA,GAAAA,OAAAA,EAAAA,sBACAnd,KAAAA,WACA7K,MAAAA,+BAEA,CAAAgoB,GAAAA,GAAAA,OAAAA,EAAAA,kBAAAnd,KAAAA,QAAA7K,MAAAA,0BACAkoB,EACA,CAAAF,GAAAA,GAAAA,OAAAA,EAAAA,mBAAAnd,KAAAA,uBAAA7K,MAAAA,8BACA,MACA,iBAEA,KACA,CACAA,MAAAA,kCACAyf,MAAAA,CACA0I,EACA,CAAAH,GAAAA,GAAAA,OAAAA,EAAAA,oBAAAnd,KAAAA,YAAA7K,MAAAA,+BACA,KACAooB,EACA,CAAAJ,GAAAA,eAAAnd,KAAAA,aAAA7K,MAAAA,2BACA,KACAqoB,GAAAA,EACA,CACAL,GAAAA,GAAAA,OAAAA,EAAAA,YACAnd,KAAAA,cACA7K,MAAAA,EAAAA,sBAAAA,2BAEA,KACAsoB,EACA,CAAAN,GAAAA,GAAAA,OAAAA,EAAAA,aAAAnd,KAAAA,aAAA7K,MAAAA,wBACA,MACA,iBAEA,CACAA,MAAAA,mCACAyf,MAAAA,CACAsI,EACA,CAAAC,GAAAA,GAAAA,OAAAA,EAAAA,mBAAAnd,KAAAA,WAAA7K,MAAAA,6BACA,KACAuoB,EACA,CAAAP,GAAAA,GAAAA,OAAAA,EAAAA,gBAAAnd,KAAAA,OAAA7K,MAAAA,2BACA,KACAwoB,EACA,CAAAR,GAAAA,GAAAA,OAAAA,EAAAA,iBAAAnd,KAAAA,YAAA7K,MAAAA,4BACA,MACA,iBAEA,CACAA,MAAAA,mCACAyf,MACAgJ,GAAAA,KAAAA,YAAAA,cAAAA,iBACA,CACA,CAAAT,GAAAA,GAAAA,OAAAA,EAAAA,qBAAAnd,KAAAA,WAAA7K,MAAAA,sBACA,CACAgoB,GAAAA,GAAAA,OAAAA,EAAAA,oBACAnd,KAAAA,eACA7K,MAAAA,kCAGA,KAEA,iDACA,KClMoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,eCtBiP3I,W,MAAO,K,IAAU,MAAO,G,SAAiB,M,MAAG,C,WAAiB,G,IAAC,I,YAAqC,KAAY,E,4BAA8D,G,IAAc,OAAC,MAAK2C,CAAAA,EAAG,QAAW,yCAAC3C,MAAM,CAAC,KAAO,GAAG,MAAQ,mBAAmB,CAAC2C,EAAG,MAAM,CAAC3C,MAAM,CAAC,IAAM,cAA8C,IAAM,SAAS,aAAa,uBAAuB,MAAQ,uBAAuB,KAAO,oBAAqB,EAAE,KAAI,CAAyP,OAAG,QAAO,MAAS,mBAAQ,GAAQ,MAAE,CAAC,MAAW,CAAG,kDAAO,aAAkF,oCAAC,MAAQ,uBAAiBuc,KAAO8U,qBAA8C,mKAAC,MAAiQxoB,CAAAA,EAAAA,GAAAA,EAAW,C,MAAc,CAAYC,MAAG,G,UAAa,K,CAA0M,wDAAC,GAAE,CAACpG,MAAI,SAAS,GAAuB,OAApB,EAAC,kBAAWuO,EAAK,iB,aAA2C,sBAAuB,oK,YAAC,KAAW,E,IAA+D,Y,GAACpI,SAAW,G,IAAUnG,EAAI,K,MAAY,CAAC,OAAU,iH,8BAAwD,G,MAAc,Q,OAAC,e,MAAI,OAAC,wBAAC4P,SAAM,gEAAkB,YAAK,OAAyBtS,IAAM,UAAC,cAAqB,MAAS,GAACE,cAAa,CAAmB,GAAQ,CAA2D,kBAAQ,eAAiB,EAA8BuC,OAAS,IAAoB6uB,MAAAA,IAA2B,4BAAC1vB,MAAU,CAAyB,iBAAO,QAAae,EAAG,4BAAqB,oEAAe,GAAIA,KAE11ErC,MAAAA,CAEJ,MAASgB,EAAQhB,uB,6NCJ2BqC,GAAOK,WAAS,MAAU,KAAgBhD,EAAK,EAAC,S,OAAC,OAAcgB,C,MAAQ,CAAsB,QAAQd,EAAIqxB,QAAc,QAAU,EAAC,QAAK,sBAAkC,WAAUrxB,KAAa,iBAAgBsxB,EAAAA,aAAW,qBAAG,YAAC,c,GAAwCtxB,CAAuB,sBAAC,YAAC,gB,EAAgE,wBAAC,YAAC,eAAgB,C,EAAoC,gBAAC,YAAC,WAAgB,C,EAAqC,iBAAC,YAAC,WAAiB,C,EAAuC,kBAAC,YAAC,aAAkB,C,EAAuC,+BAAE,cAAC2I,G,YAAsC,KAAU,E,IAAC,UAA0E,GAAC,WAACyJ,MAAM,iEAAK,EAAE5P,OAAG,GAA0BoG,C,IAAqB,yB,GAAC,SAAW,G,IAA+B9I,EAAM,O,MAAC,iCAAkB,C,MAAC,CAAqB,cAAC0B,UAAM,U,MAAgCe,C,MAA6BgvB,EAAKhc,kBAA+B,SAAC,YAAC7T,EAAAA,KAAU,EAAC,sBAAwB,EAAI,uCAAIc,GAAqCoG,C,IAAqB,iC,GAAC,SAAW,G,IAA+B9I,EAAM,O,MAAC,iCAAkB,C,MAAC,CAA6B,cAAC0B,UAAM,kB,MAAwCe,C,MAA6BgvB,EAAKhc,0BAAuC,SAAC,YAAC7T,EAAAA,KAAU,EAAC,8BAAgC,EAAI,+CAAIc,GAAmBoG,C,IAAqB,e,GAAC,SAAc,G,IAAmB,EAAO2M,EAAAA,KAAI,MAAG,iCAAgB,IAC58C,UAGD,E,MCJ4C9S,GAAOK,WAAS,MAAU,KAAchD,EAAK,EAAC,S,OAAC,OAAcE,C,MAAU,CAAsB,cAAc,EAACc,MAAQ,kBAAG,SAAC,W,GAA2B,CAAiC,mBAAC,0BAAG,IAIpO,E,MCGA,IACAT,MAAAA,CAAAA,QAAAA,WAAAA,aACAQ,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAywB,eAAAA,SAAAA,GAAA,WACA,IACA,uBACA,gBACA,EAQAvwB,EAAAA,EAAAA,KAAAA,UACA0Q,eAAAA,OAAAA,KAAAA,YACA9C,MAAAA,WACA,cACAhN,EAAAA,EAAAA,IAAAA,2CACA,IAZAZ,EAAAA,EAAAA,KAAAA,KACAwwB,eAAAA,OAAAA,KAAAA,YACA5iB,MAAAA,WACA,cACAhN,EAAAA,EAAAA,IAAAA,+CACA,IASA,+BAGA,CAFA,UACAF,EAAAA,EAAAA,IAAAA,0CACA,CACA,ICpCkR,MCO9Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCehC,IACAtB,MAAAA,CAAAA,QAAAA,UAAAA,UACAmG,WAAAA,CAAAkrB,0BAAAA,IACA/sB,SAAAA,CACA0sB,cAAAA,WACA,kBACA,uFADA,EAEA,EACA/vB,QAAAA,WAAA,WACA,OACA,CACAS,KAAAA,KAAAA,GAAAA,QACAV,MAAAA,OACAswB,UAAAA,GAEA,CACA5vB,KAAAA,mBACAV,MAAAA,sBACAswB,UAAAA,GAEA,CACA5vB,KAAAA,iBACAV,MAAAA,oBACAswB,UAAAA,GAEA,CACA5vB,KAAAA,0BACAV,MAAAA,4BACAswB,UAAAA,GAEA,CACA5vB,KAAAA,UACAV,MAAAA,UACAswB,UAAAA,IAEA,kEACA,GAEA9wB,KAAAA,WACA,OACA+wB,aAAAA,EACAC,SAAAA,OACAP,YAAAA,EACAQ,aAAAA,GAEA,GC9E4Q,MCQxQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCjBjB,SAAS,GAAC1K,GACrB,SAAS2K,EAAEC,EAAGC,GACV,IAAInjB,EAAGwa,EAAGlC,EAAG8K,EAAGtP,EAMhB,OALAwE,EAAQ,WAAJ4K,EACJE,EAAQ,WAAJD,EACJnjB,EAAQ,WAAJkjB,EACJ1I,EAAQ,WAAJ2I,EACJrP,GAAS,WAAJoP,IAAuB,WAAJC,GACjBnjB,EAAIwa,EAAQ,WAAJ1G,EAAiBwE,EAAI8K,EAAIpjB,EAAIwa,EAAQ,WAAJ1G,EAAqB,WAAJA,EAAiBwE,EAAI8K,EAAQ,WAAJtP,EAAiBwE,EAAI8K,EAAItP,EAAIwE,EAAI8K,CAC/H,CAEA,SAASC,EAAEH,EAAGC,EAAGnjB,EAAGwa,EAAGlC,EAAG8K,EAAGtP,GAEzB,OADAoP,EAAID,EAAEC,EAAGD,EAAEA,EAAEE,EAAInjB,GAAKmjB,EAAI3I,EAAGlC,GAAIxE,IAC1BmP,EAAEC,GAAKE,EAAIF,IAAM,GAAKE,EAAGD,EACpC,CAEA,SAASG,EAAEJ,EAAGC,EAAGnjB,EAAGwa,EAAGlC,EAAG8K,EAAGtP,GAEzB,OADAoP,EAAID,EAAEC,EAAGD,EAAEA,EAAEE,EAAI3I,EAAIxa,GAAKwa,EAAGlC,GAAIxE,IAC1BmP,EAAEC,GAAKE,EAAIF,IAAM,GAAKE,EAAGD,EACpC,CAEA,SAASpV,EAAEmV,EAAGC,EAAG3I,EAAGxa,EAAGsY,EAAG8K,EAAGtP,GAEzB,OADAoP,EAAID,EAAEC,EAAGD,EAAEA,EAAEE,EAAI3I,EAAIxa,EAAGsY,GAAIxE,IACrBmP,EAAEC,GAAKE,EAAIF,IAAM,GAAKE,EAAGD,EACpC,CAEA,SAASI,EAAEL,EAAGC,EAAG3I,EAAGxa,EAAGsY,EAAG8K,EAAGtP,GAEzB,OADAoP,EAAID,EAAEC,EAAGD,EAAEA,EAAEzI,GAAK2I,GAAKnjB,GAAIsY,GAAIxE,IACxBmP,EAAEC,GAAKE,EAAIF,IAAM,GAAKE,EAAGD,EACpC,CAEA,SAAS1X,EAAEyX,GACP,IAEIljB,EAFAmjB,EAAI,GACJ3I,EAAI,GAER,IAAKxa,EAAI,EAAG,GAAKA,EAAGA,IAAKwa,EAAI0I,IAAM,EAAIljB,EAAI,IAAKwa,EAAI,IAAMA,EAAE1W,SAAS,IAAKqf,GAAK3I,EAAEgJ,OAAOhJ,EAAEnR,OAAS,EAAG,GACtG,OAAO8Z,CACX,CACA,IACIM,EAAGvjB,EAAGwjB,EAAGlb,EAAG0a,EAAGC,EAAGnjB,EAAGwa,EADrB4I,EAAI,GAwBR,IAtBA9K,EAAI,SAAU4K,GACVA,EAAIA,EAAExf,QAAQ,QAAS,MACvB,IAAK,IAAIyf,EAAI,GAAI3I,EAAI,EAAGA,EAAI0I,EAAE7Z,OAAQmR,IAAK,CACvC,IAAIxa,EAAIkjB,EAAES,WAAWnJ,GACrB,IAAMxa,EAAImjB,GAAK5uB,OAAOqvB,aAAa5jB,IAAM,IAAMA,GAAK,KAAOA,EAAImjB,GAAK5uB,OAAOqvB,aAAa5jB,GAAK,EAAI,MAAQmjB,GAAK5uB,OAAOqvB,aAAa5jB,GAAK,GAAK,KAAMmjB,GAAK5uB,OAAOqvB,aAAa5jB,GAAK,EAAI,GAAK,MAAOmjB,GAAK5uB,OAAOqvB,aAAiB,GAAJ5jB,EAAS,KACtO,CACA,OAAOmjB,CACX,CAPI,CAOF7K,GACF8K,EAAI,SAAUD,GACV,IAAID,EAAGljB,EAAImjB,EAAE9Z,OACb6Z,EAAIljB,EAAI,EACR,IAAK,IAAIwa,EAAI,KAAO0I,EAAIA,EAAI,IAAM,GAAK,GAAI5K,EAAIhQ,MAAMkS,EAAI,GAAI4I,EAAI,EAAGtP,EAAI,EAAGA,EAAI9T,GAAIkjB,GAAKpP,EAAIA,EAAI,GAAK,EAAGsP,EAAItP,EAAI,EAAI,EAAGwE,EAAE4K,IAAMC,EAAEQ,WAAW7P,IAAMsP,EAAGtP,IAKrJ,OAJAoP,GAAKpP,EAAIA,EAAI,GAAK,EAClBwE,EAAE4K,IAAM,KAAOpP,EAAI,EAAI,EACvBwE,EAAEkC,EAAI,GAAKxa,GAAK,EAChBsY,EAAEkC,EAAI,GAAKxa,IAAM,GACVsY,CACX,CATI,CASFA,GACF4K,EAAI,WACJC,EAAI,WACJnjB,EAAI,WACJwa,EAAI,UACClC,EAAI,EAAGA,EAAI8K,EAAE/Z,OAAQiP,GAAK,GAAImL,EAAIP,EAAGhjB,EAAIijB,EAAGO,EAAI1jB,EAAGwI,EAAIgS,EAAG0I,EAAIG,EAAEH,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI6I,EAAE7I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAIqjB,EAAErjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,WAAY6K,EAAIE,EAAEF,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAIG,EAAEH,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI6I,EAAE7I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAIqjB,EAAErjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAIE,EAAEF,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAIG,EAAEH,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI6I,EAAE7I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAIqjB,EAAErjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAIE,EAAEF,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAIG,EAAEH,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,IAAK,EAAG,YAAakC,EAAI6I,EAAE7I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,GAAI,YAAatY,EAAIqjB,EAAErjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAIE,EAAEF,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAII,EAAEJ,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI8I,EAAE9I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,EAAG,YAAatY,EAAIsjB,EAAEtjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,WAAY6K,EAAIG,EAAEH,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAII,EAAEJ,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI8I,EAAE9I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,EAAG,UAAWtY,EAAIsjB,EAAEtjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAIG,EAAEH,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAII,EAAEJ,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,WAAYkC,EAAI8I,EAAE9I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,EAAG,YAAatY,EAAIsjB,EAAEtjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAIG,EAAEH,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAII,EAAEJ,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,IAAK,EAAG,YAAakC,EAAI8I,EAAE9I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,EAAG,YAAatY,EAAIsjB,EAAEtjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAIG,EAAEH,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAInV,EAAEmV,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAIzM,EAAEyM,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAI+N,EAAE/N,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAIpV,EAAEoV,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAInV,EAAEmV,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAIzM,EAAEyM,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAI+N,EAAE/N,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAIpV,EAAEoV,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAInV,EAAEmV,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,IAAK,EAAG,WAAYkC,EAAIzM,EAAEyM,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAI+N,EAAE/N,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAIpV,EAAEoV,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,UAAW4K,EAAInV,EAAEmV,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAIzM,EAAEyM,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,GAAI,YAAatY,EAAI+N,EAAE/N,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,WAAY6K,EAAIpV,EAAEoV,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAIK,EAAEL,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI+I,EAAE/I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAIujB,EAAEvjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAII,EAAEJ,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAIK,EAAEL,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,IAAK,EAAG,YAAakC,EAAI+I,EAAE/I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,GAAI,GAAI,YAAatY,EAAIujB,EAAEvjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,IAAK,GAAI,YAAa6K,EAAII,EAAEJ,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAIK,EAAEL,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI+I,EAAE/I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,GAAI,YAAatY,EAAIujB,EAAEvjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,YAAa6K,EAAII,EAAEJ,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,IAAK,GAAI,YAAa4K,EAAIK,EAAEL,EAAGC,EAAGnjB,EAAGwa,EAAG4I,EAAE9K,EAAI,GAAI,EAAG,YAAakC,EAAI+I,EAAE/I,EAAG0I,EAAGC,EAAGnjB,EAAGojB,EAAE9K,EAAI,IAAK,GAAI,YAAatY,EAAIujB,EAAEvjB,EAAGwa,EAAG0I,EAAGC,EAAGC,EAAE9K,EAAI,GAAI,GAAI,WAAY6K,EAAII,EAAEJ,EAAGnjB,EAAGwa,EAAG0I,EAAGE,EAAE9K,EAAI,GAAI,GAAI,YAAa4K,EAAID,EAAEC,EAAGO,GAAIN,EAAIF,EAAEE,EAAGjjB,GAAIF,EAAIijB,EAAEjjB,EAAG0jB,GAAIlJ,EAAIyI,EAAEzI,EAAGhS,GACz6F,OAAQiD,EAAEyX,GAAKzX,EAAE0X,GAAK1X,EAAEzL,GAAKyL,EAAE+O,IAAIhI,aACvC,CCmBA,QACAjhB,MAAAA,CAAAA,OAAAA,SACAmG,WAAAA,CAAAmsB,oBAAAA,IACA9xB,KAAAA,WACA,OACA+K,MAAAA,KAAAA,MAAAA,KAAAA,MACAwlB,wBAAAA,EACAwB,SAAAA,GAEA,EACA5wB,QAAAA,WACA,mBACA,EACA2C,SAAAA,CACAkuB,YAAAA,WACA,2BACA,mCACA,iCAEA,OADA,gDACA,CACA,GAEA9xB,QAAAA,CACA+xB,gBAAAA,WACA,mDACA,yBACAxnB,aAAAA,QAAAA,aAAAA,QAEAA,aAAAA,QAAAA,aAAAA,QAEA,EACAynB,cAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACArhB,EAAAA,EAAAA,KAAAA,IAAAA,6BAAAA,MAAAA,SAAAA,GAAA,+FAGA3N,MAAAA,CACA,6BACA,QACA,iCAEA,EACAC,MAAAA,IC9HwQ,M,uBCA/C,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,aCtBwH,W,IAAY4E,EAAG,K,EAAgB,EAALjG,MAAE,G,OAAI,OAAW,S,MAAsB7C,C,WAAO,G,OAAqD,I,YAAoD,O,mBAAkB,YAAC,IAAGE,EAAIG,EAAG,GAAkM,oBAAI,OAAO,sDAAwBoC,GAAS,QAAa,GAAE,KAACvC,MAAIgzB,CAAe,kBAAwB,mIAAIvwB,K,MAA2F,CAAY,mBAAIA,SAAG,SAAuB,GAA+N3C,EAAM,YAAC,EAAc,0BAC3gC,8DACGM,MAAAA,CAEJ,GAASgB,c,4VCKI6xB,IAAkBvF,EAAAA,GAAAA,IAAY,CACvCrkB,GAAI,UACJskB,MAAO,iBAAqB,CACxB/hB,MAAO,KACPsnB,QAAS,GACZ,EACDrF,QAAS,CACLsF,WAAY,SAACC,GAAG,OAAKA,EAAIF,QAAQ/a,MAAM,GAE3CgW,QAAS,CACCkF,mBAAkB,wJACC3hB,EAAAA,EAAAA,KAAAA,IAAe,yBAAyB7C,MAAK,SAAAG,GAAC,OAAIA,EAAEnO,IAAI,IAAC,OAA9E,EAAKqyB,QAAU,EAAH,+CADQ,EAExB,KCmCR,IACA7yB,MAAAA,CAAAA,SACAQ,KAAAA,WACA,OAAAmyB,YAAAA,EACA,EACAruB,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,GAAAA,MC9D0Q,M,uBCA/C,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC0FhC,IACAptB,KAAAA,MACAuD,WAAAA,CACA8sB,YAAAA,GACAC,kBAAAA,GACAC,gBAAAA,IAEAxxB,QAAAA,WAAA,WACA,aACA,2BACA,wBACAixB,KAAAA,qBACA,8BACA,IACA,mBAIA,CAHA,SACAQ,cAAAA,IACA9xB,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,iCACA,CACA,QACAC,GAAAA,EAAAA,IAAAA,0BAAAA,KAAAA,kBACAA,GAAAA,EAAAA,IAAAA,eAAAA,KAAAA,cACAA,GAAAA,EAAAA,IAAAA,gBAAAA,KAAAA,cACA,EACAS,UAAAA,WACAT,GAAAA,EAAAA,KAAAA,0BAAAA,KAAAA,kBACAA,GAAAA,EAAAA,KAAAA,eAAAA,KAAAA,cACAA,GAAAA,EAAAA,KAAAA,gBAAAA,KAAAA,cACA,EACAb,QAAAA,CACAoS,aAAAA,WACA,wBACA,EACAugB,cAAAA,WACA,gCACA,EACAC,iBAAAA,SAAAA,GACA,sBACA,EACAC,OAAAA,EAAAA,GAAAA,IAAAA,YAAAA,WAAA,kIACAliB,EAAAA,EAAAA,KAAAA,IAAAA,4BAAAA,MAAAA,SAAAA,GAAA,uFACA,SAFAkiB,IAAA,wCAAAA,IAGAC,qBAAAA,EAAAA,GAAAA,IAAAA,sBAAAA,WAAA,wHASA,OARAC,EAAAA,CACA,wBACA,wBACA,yBACA,2BACA,qBACA,4BACA,6CACA,SACApiB,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,MACA,oBACA,6BACA,EADA,WACAoiB,GAAA,8CACA,qBACA,QAEA,gCACA,QACA,OACA,OAVA,kFAWA,SArBAD,IAAA,wCAAAA,IAsBAE,kBAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,WAAA,wIACAriB,EAAAA,EAAAA,KAAAA,IAAAA,yCAAAA,MAAAA,SAAAA,GAAA,2BAAA8c,EAAAA,EAAAA,MACAA,EAAAA,CAAA,gBACA,yCAEA,uFACA,4EAIA,qGACA,2EAKA,yDACA,0GAIA,SArBAuF,IAAA,wCAAAA,IAsBAC,iBAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,qHACA,qGACA,oFACA,SAHAA,IAAA,wCAAAA,KAKAnzB,KAAAA,WACA,OACA+rB,QAAAA,EACAH,qBAAAA,KACAwH,GAAAA,CAAAA,EACAhE,uBAAAA,EACAjD,qBAAAA,EACAL,aAAAA,EAAAA,EAAAA,MAAAA,cACAD,iBAAAA,EAAAA,EAAAA,iBAAAA,sBAAAA,EAAAA,EAAAA,MAAAA,cACAwH,mBAAAA,EAAAA,EAAAA,MAAAA,0BAAAA,EAEA,EACAvvB,UAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAAAA,CAAAA,EAAAA,CACA8D,qBAAAA,WAAA,WACA,iCACA,KACAC,EAAAA,SAAAA,SAAAA,GAAA,MACA,mBAAAC,EAAAA,EAAAA,MAAAC,EAAAA,EAAAA,KACA,mFAEA,OACAC,EAAAA,GAAAA,CAAAA,GAGA,UACAA,EAAAA,GAAAA,GAAAA,CAAAtxB,KAAAA,EAAAuxB,OAAAA,KAGAD,EAAAA,GAAAA,GAAAA,OAAAA,KAAAA,EACA,IAEA,SAqCA,OAnCA5wB,OAAAA,QAAAA,GAAAA,SAAAA,SAAAA,GAAA,oBAAA2wB,EAAAA,EAAAA,GAAAG,EAAAA,EAAAA,GACA9wB,OAAAA,QAAAA,GAAAA,SAAAA,SAAAA,GAOA,IAPA,oBAAA9C,GAAAqrB,EAAAA,GAAArrB,EAAAA,IACA,6CACA,KAEA,OACA,IAEA,mBACA,WACA6zB,EAAAA,EAAAA,IAEAC,EAAAA,KACAC,IAAAA,EAAAA,GAAAA,OACAvxB,OAAAA,GAAAA,SAAAA,EAAAA,MAAAA,GAAAA,OACAA,OAAAA,GAAAA,SAAAA,EAAAA,KAAAA,KAAAA,OAAAA,OAAAA,GAAAA,SAAAA,EAAAA,OAEAuxB,EAAAA,EAAAA,GACAF,EAAAA,GAIAC,EAAAA,KACAC,IAAAA,EAAAA,GAAAA,OACAvxB,OAAAA,GAAAA,SAAAA,EAAAA,MAAAA,GAAAA,OACAA,OAAAA,GAAAA,SAAAA,EAAAA,KAAAA,KAAAA,OAAAA,OAAAA,GAAAA,SAAAA,EAAAA,OAGA0d,EAAAA,KAAAA,CACA8T,iBAAAA,EAAAA,KACAC,YAAAA,GAAAA,OAAAA,EAAAA,KAAAA,MAAAA,KAAAA,OAAAA,EAAAA,OAAAA,KAEA,GACA,IAEA,CACA,IAEA/wB,MAAAA,CACA0oB,qBAAAA,CACAxoB,QAAAA,SAAAA,GAAA,WACA,IACA,mBACA,qDACA,wBACA,0DACA,eACA,iDACA,wBACA,2DACA,mBACA,qDACA,uBACA,gDAGA,2BACA,2BACA,IACA,EACAD,MAAAA,EACAiG,WAAAA,KC1SwP,M,uBCA5C,GAAe,KCOvN,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,aCtBuU,W,MAAW,K,EAAwG,W,OAACmI,EAAK,WAAC,kBAAI,MAAE,CAAC5P,MAAI,KAAU,mBAACoG,KAAG,a,OAAwCmsB,CAAAA,EAAAA,eAAAA,CAAAA,EAAAA,cAAkC,C,MAAiC,C,MAA4B,EAAC,iC,cAAS/0B,EAAIg1B,gB,SAA8C,I,YAAkHC,EAAU,GAAEj1B,CAAG,C,IAA8Bq0B,U,GAA4B,WAAY,4FAACjiB,EAAY,UAAI3P,CAAkB3C,IAAM,WAAC,cAAoDo1B,MAAAA,CAAAA,EAAAA,OAAmBA,CAAgB,qEAAC,qBAAeC,CAAkB,OAACxsB,MAAgByH,EAAI,kBAAK,QAAS,oBAAe,EAAQpQ,GAAG,IAAI,EAAIA,GAAG,EAAIA,GAAG,EAAI,4BAA8B,EAACA,qBAAgBuvB,qBAAoB,CAAC,yCAACnd,MAAM,mBAAM,SAAKpS,EAA6E0C,OAAAA,OAAmC,gBAAe,C,MAAqC,CAAc,8CAAC0yB,cAAS,kB,SAAoC,EAACC,mBAA4C,YAAC,OAAC1sB,IAAAA,UAAqBnG,GAAG,WAAa,MAAC,UAAU,yE,EAA0O,OAAC,OAAY,EAAC,uE,YAAK,gB,MAAc,C,MAAkB,EAAI,wC,SAAgC,I,SAAoF,C,MAAO,SAAY0P,GAAuC,mDAACE,GAAqC,YAAW,EAAC,KAACtS,IAAM,UAAC,cAAY,MAAK,qMAAG,EAAI2C,OAAG,GAAWC,CAAmBuK,IAAAA,WAAa,cAAqB,mCAAO,MAAM,CAACvK,MAAY,uEAAgDA,EAAW,GAAC,0CAAwBD,EAAqBC,OAAAA,IAAoD,MAAM,EAAM,cAA0B5C,EAAK,KAAC,C,MAAC,CAAuB,UAAuB,S,GACj3E2Y,GAAAA,EAAOzY,C,YACC,O,YACX,CAAE,sB,CAAsBwC,EAAG,MAAC,C,YAAmB,0B,GAAW,QAAU,EAAC,MAAQ,C,YAAQ,uB,WAAC,EAAQ,MAAG,C,YAAC,qC,cAAc,yB,MAACmG,C,MAAwB,EAAC,W,aAAe,U,QAAgB,EAAH,kC,QAAI,EAAO,GAAG,yBAAgB,C,QAACjG,oBAAkB,W,SAAC5C,EAAK,YAAC,gB,YAAiB6C,EAAG,GAAEF,CAAE,C,yCAA2B,Q,MAAG,CAAkF,UAAG,eAA6EE,YAAG,OAAC,gB,GAAyB,SAAW2yB,G,IAAwBnb,EAAAA,EAAY,G,MAAQrB,CAAM,EAAE,IAAM,EAAF,IAAED,YAAU,OAAO,qBAAQ,WAA4C,MAAC,CAAC,KAAa,KAA+C,0EAAI,M,CAA2E,OAAQ,QAASwD,CAAAA,EAAM,GAAC,yB,GAAC,C,MAAmClC,SAAkB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,KAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAA8C,YAAI,MAAmC,OAA5B,gCAAoE,KAAO,MAAU4Z,CAAAA,EAAAA,GAAO,0B,GAAC,C,MAAmClC,SAAmB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,KAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAA+C,YAAI,MAAmC,OAA5B,gCAA2E,KAAQ,MAAG,gC,GAAC,CAAc,kBAACkG,OAAW,EAAC3I,sBAAQ,CAAI,aAAY,MAAI,YAAgB,SAAH,M,YAAoE,S,MAAE,C,SAAQyC,G,MAAmB,QAAD,EAAC,8B,GAAU,iD,MAAG,CAAwK,UAAG,eAA6EE,YAAG,OAAC,gB,GAAyB3C,SAAc,GAAY,WAAC,mBAAO,mBAA8Q,OAAC,SAAQ,KAAyC,WAAC,OAAO,UAAkP,gJAAM,MAAmC,+CAAC,IAA6B,MAAKu1B,SAAY,GAAC,aAAkBC,SAAyB,IAAK,GAAQx1B,GAAAA,EAAIy1B,CAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,mBAAAA,GAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,qBAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,oEAAAA,IAAAA,GAAAA,EAAAA,GAAAA,EAAAA,CAAoB,IAAQhzB,MAAG,SAAe,GAACC,EAAY,WAAM,OAAO,IAAoD,QAAmB,yJAAC,EAAuD,a,CAAuEF,EAAG,qBAAgB,C,MAAI,C,WAAqB,EAAC,Q,KAAS1C,EAAM,a,YAAC,EAAY,aAAE,a,UAAe,2B,GAAmC,kB,YAAO,O,MAAUA,C,MAAO,EAAM,GAAC,oC,aAAE,O,QAAQK,EAAG,0C,YAAuG,oDAAK,IAAC,gBAAmBsC,GAAG,WAAmBC,MAAW,GAAC,IAAM,CAAM,MAAC,CAAC,UAAYgzB,GAAc,KAAc,IAAyE,IAAuB,MAAS,2BAAkB,CAAC,EAAE,IAAI,CAAe/sB,MAAY3I,CAAa,KAAS,KAAuB,CAAR+Q,EAAAA,GAAK,yF,SAAkCjR,G,MAAO,MAAQE,I,qBAA+Bmc,C,YAA2B,O,aAA0G,gB,eAAqB,yB,gBAAanc,EAAIoQ,YAAI,a,oBAAc,G,OAAI,e,OAAoBnQ,EAAAA,cAAI,C,YAAE6Q,EAAAA,GAAM,E,0BAAqBrO,G,MAAqB,Q,SAAC,kBAAQsO,C,MAAK,C,MAAO,e,QAA0C,6B,MAAC,EAAO,sC,SAAkC,EAAQjI,GAAAA,sC,cAAiB,G,YAAuB,O,IAACnG,U,YAAa,G,MAA0BkM,EAAK,Q,EAAA,EAAM7O,K,EAAwD,S,EAAA,U,MAAC,kBAAG,GAAC,YAAiB,sCAAI,4CAAO,QAAY21B,QAAQC,EAAuB,QAA2D,IAAY,oBAAsB,qBAAoB,OAAC,0DAAI,GAAY,KAC1qI,IACGx1B,MAAgB,K,kNCLwC,GAAU,W,IAAaN,EAAM,K,EAAC,QAAS,G,OAAG,QAAC6I,MAAAA,CAAqBnG,OAAI,I,YAA4B,O,IAAE1C,Y,GAAS,SAAW,G,IAAwBA,EAAM,K,EAAC,EAAQE,M,MAAa,kBAAE,MAAC,CAAkE,oBAAU,SAAW,GAAO,GAAQ61B,GAAAA,CAAAA,EAAAA,GAAa,IAAI,wBAC/V,MAGD,GAASz0B,OAAQhB,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,mB,QCoBhC,IACAC,MAAAA,CACAgB,MAAAA,CAAAA,OAAAA,QACAy0B,gBAAAA,CACA/1B,KAAAA,OACAS,QAAAA,oBAGAmE,SAAAA,CACAyP,UAAAA,WACA,4BACA,2CADA,KAEA,iDACA,uDACA,sDACA,IACA,EACA2hB,SAAAA,WACA,4BACA,2CADA,OAEA,kDACA,oDACA,sDACA,MACA,EACAF,YAAAA,WACA,2EACA,2CACA,oDAAAC,gBAAAA,KAAAA,kBAEA,uCACA,gDAAAA,gBAAAA,KAAAA,kBAEA,6CACA,sDAAAA,gBAAAA,KAAAA,kBAEA,8CACA,uDACAA,gBAAAA,KAAAA,kBAGA,+CACA,IClE6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B10B,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCKT61B,I,UAAevI,EAAAA,GAAAA,IAAY,QAAQ,WAC5C,IAAMwI,GAAQpvB,EAAAA,EAAAA,KAAc,IACtBiiB,EAAQ,SAACvmB,GACN0zB,EAAM70B,MAAM8K,SAAS3J,IACtB0zB,EAAM70B,MAAMzB,KAAK4C,EACzB,EACM2zB,EAAO,SAAC3zB,GACV,IAAMkX,EAAUwc,EAAM70B,MAAMqY,QAAQlX,IACnB,IAAbkX,GACAwc,EAAM70B,MAAM+0B,OAAO1c,EAAS,EACpC,EACM0C,EAAK,SAAC5Z,GACR,OAAO0zB,EAAM70B,MAAM8K,SAAS3J,EAChC,EACM6zB,EAAM,yCAAG,WAAmD7zB,EAAaD,GAAW,0EAC9D,oBAAbA,EAAuB,gBACqB,OAAnD6f,QAAQkU,KAAK,sCAAsC,kBAC5C/zB,GAAQ,OAGJ,OAHI,SAGfwmB,EAAMvmB,GAAK,SACED,IAAU,+CAEb,OAFa,SAEvB4zB,EAAK3zB,GAAK,yEAEjB,gBAXW,wCAYZ,MAAO,CAAE4Z,GAAAA,EAAI2M,MAAAA,EAAOoN,KAAAA,EAAME,OAAAA,EAAQH,MAAAA,EACtC,KCvBaK,IAAiB7I,EAAAA,GAAAA,IAAY,CACtCrkB,GAAI,SACJskB,MAAK,WACD,MAAO,CACHjuB,QAAS82B,KAEjB,EACArI,QAAS,CACLsI,UAAS,SAAC51B,GACNoB,KAAKvC,SAAU,kBAAKuC,KAAKvC,SAAYmB,EACzC,EACM61B,0BAAyB,yJACxB,EAAKh3B,QAAQi3B,UAAY,EAAKj3B,QAAQi3B,SAASxe,OAAS,GAAC,yCACjD,EAAKzY,QAAQi3B,UAAQ,OAGX,GADjBC,EAAK,GACHC,EAAa,GACa,QADX,EACjB,EAAKn3B,QAAQib,uBAAe,QAA5B,EAA8BxC,OAAM,iCACtB2e,GAAsB,EAAKp3B,QAAQib,gBAAgB,IAAG,gEAC7D,EAAKjb,QAAQ2b,eAAgB,CAAF,iCACpB0b,GAAsB,EAAKr3B,QAAQ2b,gBAAe,iEACzD,EAAK3b,QAAQ4b,UAAW,CAAF,iCACf0b,GAAiB,EAAKt3B,QAAQ4b,WAAU,6DAC/C,EAAK5b,QAAQ+b,aACpBob,EAAWj3B,KAAK6V,GAAAA,KAChBmhB,EAAK,EAAKl3B,QAAQ+b,aACX,EAAK/b,QAAQ6b,YACpBsb,EAAWj3B,KAAK6V,GAAAA,QAChBmhB,EAAK,EAAKl3B,QAAQ6b,YACX,EAAK7b,QAAQgc,cACpBmb,EAAWj3B,KAAK6V,GAAAA,eAChBmhB,EAAK,EAAKl3B,QAAQgc,cAEb,EAAKhc,QAAQ8b,eAClBqb,EAAWj3B,KAAK6V,GAAAA,WAChBmhB,EAAK,EAAKl3B,QAAQ8b,eAEb,EAAK9b,QAAQmX,iBAClBggB,EAAWj3B,KAAK6V,GAAAA,iBAChBmhB,EAAK,EAAKl3B,QAAQmX,iBAEb,EAAKnX,QAAQ0b,WAClByb,EAAWj3B,KAAK6V,GAAAA,SAChBmhB,EAAK,EAAKl3B,QAAQ0b,WAEb,EAAK1b,QAAQ+a,cAClBoc,EAAWj3B,KAAK6V,GAAAA,YAChBmhB,EAAK,EAAKl3B,QAAQ+a,aACrB,WACS,IAANmc,EAAQ,kCACQjO,GAAciO,EAAIC,EAAY,EAAG,IAAG,QAA7C,OAAD7nB,EAAI,EAAH,uBACAA,GAAC,iCAEL,MAAI,2CA1CgB,EA2C/B,EACAgC,MAAK,WACD/O,KAAKw0B,UAAUD,KACnB,GAEJS,QAAS,CACLC,aAAY,SAAC9D,GACLA,EAAI+D,MAAMz3B,QAAQmZ,WAClBua,EAAI+D,MAAMz3B,QAAQmZ,SAAW,IAAIuB,KAAKgZ,EAAI+D,MAAMz3B,QAAQmZ,WACxDua,EAAI+D,MAAMz3B,QAAQoZ,SAClBsa,EAAI+D,MAAMz3B,QAAQoZ,OAAS,IAAIsB,KAAKgZ,EAAI+D,MAAMz3B,QAAQoZ,QAC9D,KAIF6P,GAAa,yCAAG,WAAOC,EAAanB,EAAOoB,EAAMC,GAAQ,iFAY1D,OAXKE,EAAe,IAAIC,gBACnBC,EAAc,GAAH,OAAMN,GAAe,IACtCI,EAAazC,OAAO,IAAK2C,GACJ,qBAAVzB,GAAyBA,EAAMzN,MACtCgP,EAAazC,OAAO,QAASkB,EAAMzN,QAEnB,qBAAT6O,GACPG,EAAazC,OAAO,OAAQsC,GAER,qBAAbC,GACPE,EAAazC,OAAO,WAAYuC,GACnC,SACyB7nB,EAAAA,EAAAA,KAAAA,IACjB,eAAD,OAAgB+nB,EAAapW,aAChC/D,MAAK,SAACG,GAAC,OAAKA,EAAEnO,KAAKoO,IAAIkY,GAAmB,IAAC,OAF/B,OAAXgC,EAAc,EAAH,uBAIVA,GAAW,4CACrB,gBAlBkB,4CAoBb2N,GAAqB,yCAAG,WAAOztB,GAAU,+FAChBpI,EAAAA,EAAAA,KAAAA,IAClB,+BAAD,OAAgCoI,IACnCwF,MAAK,SAAAG,GAAC,OAAIA,EAAEnO,IAAI,IAAC,OASrB,OAXKsV,EAAe,EAAH,KAIZihB,EAAwB,CAC1B/tB,GAAIA,EACJpG,KAAMkT,EAAakhB,iBACnBt3B,KAAM0V,GAAAA,aACNtB,YAAa,GACbkT,SAAUlR,EAAaqI,kBACvB8I,YAAa,GAChB,kBACMH,GAAmBiQ,IAAO,2CACpC,gBAd0B,sCAgBrBL,GAAqB,yCAAG,WAAO1tB,GAAU,+FAChBpI,EAAAA,EAAAA,KAAAA,IAClB,+BAAD,OAAgCoI,IACnCwF,MAAK,SAAAG,GAAC,OAAIA,EAAEnO,IAAI,IAAC,OASrB,OAXKgV,EAAe,EAAH,KAIZuhB,EAAwB,CAC1B/tB,GAAIA,EACJpG,KAAM4S,EAAa5S,KACnBlD,KAAM0V,GAAAA,aACNtB,YAAa0B,EAAayhB,gBAC1BjQ,SAAUxR,EAAa6F,aACvB4L,YAAa,GAChB,kBACMH,GAAmBiQ,IAAO,2CACpC,gBAd0B,sCAgBrBJ,GAAgB,yCAAG,WAAO3tB,GAAU,+FAChBpI,EAAAA,EAAAA,KAAAA,IACb,0BAAD,OAA2BoI,IAC9BwF,MAAK,SAAAG,GAAC,OAAIA,EAAEnO,IAAI,IAAC,OASrB,OAXKoV,EAAU,EAAH,KAIPmhB,EAAwB,CAC1B/tB,GAAIA,EACJpG,KAAMgT,EAAQshB,YACdx3B,KAAM0V,GAAAA,aACNtB,YAAa,GACbkT,SAAUpR,EAAQuI,kBAClB8I,YAAa,GAChB,kBACMH,GAAmBiQ,IAAO,2CACpC,gBAdqB,sCAgBhBZ,GAAmB,WACrB,IAAMgB,EAAmC,CACrCrd,aAAcvT,EAAAA,EAAAA,iBAAwB,yBAA2B,MAAQ,MACzE4R,YAAa,QACbgC,YAAa,GACboB,YAAalG,GAAiBkB,SAC9BkC,OAAQ,KACRD,SAAU,KACVwC,eAAgB,KAChBV,gBAAiB,KACjBW,UAAW,KACXF,UAAW,KACXM,aAAc,KACdH,WAAY,KACZC,cAAe,KACfC,YAAa,KACbO,aAAa,GACbnF,gBAAiB,KACjB8f,SAAU,MAEd,OAAOa,CACX,ECtKaC,I,kBAAuB,mBACvBC,GAAwB,mBAExBC,GAAqB,wBACrBC,GAAsB,yBACtBC,GAAwB,2BACxBC,GAAwB,2BAExBC,GAAuB,0BACvBC,GAAyB,4BACzBC,GAAyB,4B,uBCZhCC,GAAiBtxB,EAAAA,EAAAA,MAAauxB,aAAanf,QAAO,SAAAlK,GAAC,MAAU,KAANA,CAAQ,IAE/DspB,GAAW,SAACC,GACd,IAAMC,EAAaD,EAAI7lB,QAAQ,KAAM,IAC/B+lB,EAASzW,SAASwW,EAAY,IAC9BtpB,EAAKupB,GAAU,GAAM,IACrB3V,EAAK2V,GAAU,EAAK,IACpBtG,EAAa,IAATsG,EACV,MAAO,CAAEvpB,EAAAA,EAAG4T,EAAAA,EAAGqP,EAAAA,EACnB,EAEauG,GAAoBN,IAAkBA,GAAe/f,OAAS,EAAI+f,GAAiB,CAC5F,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WAESO,GAAoBD,GAAkBvpB,KAAI,SAAAopB,GACnD,IAAMK,EAAMN,GAASC,GACrB,MAAO,CAAEK,EAAI1pB,EAAE4D,WAAY8lB,EAAI9V,EAAEhQ,WAAY8lB,EAAIzG,EAAErf,WACvD,I,8CCtBM+lB,GAAU,CACdC,SAAU,yBACVC,YAAa,gBACbC,OAAQ,YACRC,OAAQ,SACRC,KAAM,KACNC,IAAK,QACLC,KAAM,KACN7E,MAAO,WACP8E,QAAS,cACT7E,KAAM,QAGR8E,GAAAA,GAAAA,MAAAA,SAA2C,oBAAX/gB,IAAwB,CACtDghB,IAAK,SAELC,QAAS,WACP,OAAOX,EACT,EAEA9R,MAAO,SAASxlB,EAAOqO,GAMrB,MALqB,kBAAVrO,GAAwC,kBAAXqO,EACtCrO,EAAQgX,IAAOhX,EAAOqO,GACXrO,aAAiBgX,MAC5BhX,EAAQgX,IAAOhX,IAEVA,EAAMyH,UAAYzH,EAAMk4B,UAAY,IAC7C,EAEA7pB,OAAQ,SAAS8pB,EAAM9pB,GACrB,OAAO2I,IAAOmhB,GAAM9pB,OAAOA,EAC7B,EAEAwJ,IAAK,SAASsgB,EAAMC,EAAQ5X,GAC1B,OAAOxJ,IAAOmhB,GAAMtgB,IAAIugB,EAAQ5X,GAAM0X,SACxC,EAEAjhB,KAAM,SAASkK,EAAKS,EAAKpB,GACvB,OAAOxJ,IAAOmK,GAAKlK,KAAKD,IAAO4K,GAAMpB,EACvC,EAEAvI,QAAS,SAASkgB,EAAM3X,EAAM6X,GAE5B,OADAF,EAAOnhB,IAAOmhB,GACD,YAAT3X,GACF6X,EAAUjnB,KAAKknB,MAAMlnB,KAAKwQ,IAAIxQ,KAAK+P,IAAI,EAAGkX,GAAU,IAC7CF,EAAKI,WAAWF,GAASpgB,QAAQ,OAAOigB,WAE1CC,EAAKlgB,QAAQuI,GAAM0X,SAC5B,EAEAngB,MAAO,SAASogB,EAAM3X,GACpB,OAAOxJ,IAAOmhB,GAAMpgB,MAAMyI,GAAM0X,SAClC,GACE,CAAC,GCvDL,IAAMM,GAAwB,SAAClpB,EAAOtH,GAClC,IAAMywB,EAAkBztB,SAAS0tB,eAAe1wB,GAC5C2wB,EAAgBF,EAAgBG,cAAc,MAelD,OAbKD,IACHA,EAAgB3tB,SAAS6tB,cAAc,MACvCF,EAAcj3B,MAAMo3B,QAAU,OAC9BH,EAAcj3B,MAAMq3B,cAAgB,SACpCJ,EAAcj3B,MAAMs3B,OAAS,IAC7BL,EAAcj3B,MAAMu3B,QAAU,IAC9BN,EAAcj3B,MAAMw3B,WAAa,OACjCP,EAAcj3B,MAAMy3B,cAAgB,OAEpCR,EAAcj3B,MAAM03B,SAAW,QAC/BX,EAAgBY,YAAYV,IAGvBA,CACT,EAEMW,GAAmB,CACvBtxB,GAAI,aACJuxB,YAAW,SAACjqB,EAAOkqB,EAAMn7B,GACvB,IAAMo7B,EAAKjB,GAAsBlpB,EAAOjR,EAAQq7B,aAGhD,MAAOD,EAAGE,WACRF,EAAGE,WAAWC,SAIhB,IAAM/S,EAAQvX,EAAMjR,QAAQw7B,QAAQC,OAAOC,OAAOC,eAAe1qB,GAEjEuX,EAAMhN,SAAQ,SAAA3F,GACZ,IAAM+lB,EAAKjvB,SAAS6tB,cAAc,MAClCoB,EAAGv4B,MAAMw4B,WAAa,SACtBD,EAAGv4B,MAAMy4B,OAAS,UAClBF,EAAGv4B,MAAMo3B,QAAU,OACnBmB,EAAGv4B,MAAMq3B,cAAgB,MACzBkB,EAAGv4B,MAAM04B,WAAa,OACtBH,EAAGv4B,MAAM24B,aAAe,MAExBJ,EAAGK,QAAU,WACX,IAAO57B,EAAQ4Q,EAAMzG,OAAdnK,KACM,QAATA,GAA2B,aAATA,EAEpB4Q,EAAMirB,qBAAqBrmB,EAAKiE,OAE7B9Z,EAAQm8B,aACTn8B,EAAQm8B,aAAa,KAAM,CAAC,CAACC,aAAcvmB,EAAKumB,aAActiB,MAAO,IAAK7I,GAG1EA,EAAMorB,qBAAqBxmB,EAAKumB,cAAenrB,EAAMqrB,iBAAiBzmB,EAAKumB,eAI/EnrB,EAAMsrB,QACR,EAGA,IAAMC,EAAU7vB,SAAS6tB,cAAc,QACvCgC,EAAQn5B,MAAMo5B,WAAa5mB,EAAK6mB,UAChCF,EAAQn5B,MAAMs5B,YAAc9mB,EAAK+mB,YACjCJ,EAAQn5B,MAAMw5B,YAAc,QAC5BL,EAAQn5B,MAAMy5B,YAAcjnB,EAAKknB,UAAY,KAC7CP,EAAQn5B,MAAMo3B,QAAU,eACxB+B,EAAQn5B,MAAM25B,WAAa,IAC3BR,EAAQn5B,MAAMQ,OAAS,OACvB24B,EAAQn5B,MAAM45B,YAAc,OAC5BT,EAAQn5B,MAAMK,MAAQ,OAGtB,IAAMw5B,EAAgBvwB,SAAS6tB,cAAc,KAC7C0C,EAAc75B,MAAMrC,MAAQ6U,EAAKsnB,UACjCD,EAAc75B,MAAMs3B,OAAS,IAC7BuC,EAAc75B,MAAMu3B,QAAU,IAC9BsC,EAAc75B,MAAM+5B,eAAiBvnB,EAAKwnB,OAAS,eAAiB,GAEpE,IAAMh7B,EAAOsK,SAAS2wB,eAAeznB,EAAKxT,MAC1C66B,EAAclC,YAAY34B,GAE1Bu5B,EAAGZ,YAAYwB,GACfZ,EAAGZ,YAAYkC,GACf9B,EAAGJ,YAAYY,EACjB,GACF,GAGF,M,YC7EF9P,GAAAA,GAAAA,SAAeyR,GAAAA,GAEf,IAWYC,GAXNC,GAAa,IACbC,GAAuB,MACvBC,GAA4B,OASlC,SAAYH,GACRA,EAAAA,WAAAA,UACAA,EAAAA,SAAAA,QACAA,EAAAA,WAAAA,SACH,EAJD,CAAYA,KAAAA,GAAgB,KAa5B,IAAMI,GAAU,SAAChmB,GACb,OAAQA,GACJ,KAAK4lB,GAAiBK,MAClB,OAAO,SAACC,GAAC,OAAKA,EAAED,KAAK,EACzB,KAAKL,GAAiBO,QAClB,OAAO,SAACD,GAAC,OAAKA,EAAEC,OAAO,EAC3B,KAAKP,GAAiBQ,QAClB,OAAO,SAACF,GAAC,OAAKA,EAAEE,OAAO,EAC3B,QACI,MAAM,IAAIC,MAAM,6BAE5B,EAEE,SAASC,GAAYxK,EAAqCyK,EAA6BC,GACrF,IAAMntB,EAAQyiB,EAAIziB,MAClB,EAAwBA,EAAMotB,UAAvB36B,EAAK,EAALA,MAAOG,EAAM,EAANA,OACRy6B,EAAWrtB,EAAMstB,eAAe,GAAGp9B,KAAK,GAC9C,GAAGm9B,EAAS,SAAU,CAClB,GAAa,WAAVH,EAAqB,CACpB,IAAMK,EAASF,EAAS,SAAW,GACnC,OAAGE,EAASJ,EACDA,EAEJI,C,CAEN,GAAc,SAAXL,EAAmB,CACvB,IAAMK,EAASF,EAAS,SAAW,EACnC,OAAGE,EAASJ,EACDA,EAEJI,C,EAIf,IACInU,EAAM1oB,EADJ88B,EAAO1rB,KAAK2rB,KAAK3rB,KAAK4rB,IAAIj7B,EAAO,GAAKqP,KAAK4rB,IAAI96B,EAAQ,IAS7D,OAPK6vB,EAAIrJ,MAIPA,EAAOqJ,EAAIrJ,KACX1oB,EAAQ88B,EAAOpU,EAAO+T,IAJtB1K,EAAIrJ,KAAOA,EAAOoU,EAClB98B,EAAQy8B,GAKPz8B,EAAQy8B,EACAA,EAEI,SAAXD,EACK,CAAC9T,KAAM1oB,GAETA,CACT,CAEK,IAAMi9B,GAAiC,SAACC,EAA6DC,GACxG,MAA6DA,GAAQ,CAAC,EAA9DC,EAAW,EAAXA,YAAaC,EAAU,EAAVA,WAAYC,EAAW,EAAXA,YAAaC,EAAU,EAAVA,WACxCC,EAAqD,GACrDC,EAAUH,GAA4BlG,GA4B5C,QA3BY,OAAX8F,QAAW,IAAXA,OAAW,EAAXA,EAAa5b,YAAa,IAAIoc,UAAU7jB,SAAQ,SAAC0H,EAAGzH,GACjD,IAAMza,EAAQo+B,EAAQ3jB,EAAI2jB,EAAQ3mB,QAC5B6mB,EAAY,OAAH,OAAUt+B,EAAK,KAExBu+B,EAAkD,CACpDp+B,KAAM,GACN6mB,OAAmB,KAAX9E,EAAE7iB,KAAc,SAAW6iB,EAAE3f,OAASw7B,EAAc,KAAH,OAAQA,EAAW,KAAM,IAClFS,gBAAiBtc,EAAEuc,QAAUC,KAAAA,KAAa,WAAY,UAAW,WAAaJ,EAC9E3C,YAAa,QACbgD,qBAAsBzc,EAAEuc,QAAUC,KAAAA,KAAa,WAAY,UAAW,WAAa,UACnF5C,YAAa,EACb8C,MAAO1c,EAAEuc,QAAU/B,GAAwBD,GAAahiB,EACxDmd,YAAY,EACZiH,MAAOb,GAA0B,UAE/Bc,EAAmCZ,EAAwCxnB,MAAMC,QAAQunB,GAAcA,EAAa,CAACA,GAArE,CAAC1B,GAAiBK,OAChEl0B,EAAauZ,EAAbvZ,GAAItJ,EAAS6iB,EAAT7iB,KACZ6iB,EAAE6c,aAAavkB,SAAQ,SAAAsiB,GACnB,IAAM/U,EAAI,IAAIrO,KAAKojB,EAAE/a,WAAWid,UAChCF,EAAYtkB,SAAQ,SAAA5D,GAChB,IAAM1O,EAAK00B,GAAQhmB,GACbqoB,EAAI/2B,EAAG40B,GACbyB,EAAQp+B,KAAKjB,KAAK,CAAE6oB,EAAAA,EAAGkX,EAAAA,EAAGt2B,GAAAA,EAAItJ,KAAAA,GAClC,GACJ,IACA8+B,EAASj/B,KAAKq/B,EAClB,IACO,CACH7D,OAAQ,GACRyD,SAAAA,EAER,EAEae,GAAsC,SAACC,EAA2CpB,EAA6BC,EAA4BoB,GACpJ,IAAKD,EACD,MAAO,CACHzE,OAAQ,GACRyD,SAAU,IAGlB,IAAMI,EAAwC,CAC1Cp+B,KAAM,GACN6mB,MAAO,aAAe+W,EAAc,KAAH,OAAQA,EAAW,KAAM,IAC1DS,gBAAiBE,KAAAA,KAAa,WAAaU,GAA4B,UAAY,QACnFzD,YAAa,QACbG,YAAa,EACb8C,MAAOjC,GACPkC,MAAOb,GAA0B,UASrC,QAPkB,OAAjBmB,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBvd,YAAa,IAAItJ,QAAO,SAAAyP,GAAC,OAAIA,EAAEsX,SAAW,CAAC,IAAE7kB,SAAQ,SAACsiB,GACtE,IAAMwC,EAAoB,IAAI5lB,KAAKojB,EAAE/a,WAAWid,UAChDT,EAAQp+B,KAAKjB,KAAK,CACd6oB,EAAGuX,EACHL,EAAGnC,EAAEuC,UAEb,IACO,CACH3E,OAAQ,GACRyD,SAAU,CAACI,GAEnB,EAEM,SAAUgB,GAA2BC,GAAkG,IAA3DC,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAuD,KAC/HC,EAAeF,EAAcG,MAAK,SAACrO,EAAGC,GACxC,IAAMqO,EAAQ,IAAIlmB,KAAK4X,EAAEsC,KAAMtC,EAAEqC,MAAQ,EAAGrC,EAAEiH,KACxCsH,EAAQ,IAAInmB,KAAK6X,EAAEqC,KAAMrC,EAAEoC,MAAQ,EAAGpC,EAAEgH,KAC9C,OAAO,IAAI7e,KAAKkmB,GAAOZ,UAAY,IAAItlB,KAAKmmB,GAAOb,SACvD,IACMc,EAAiC,GAoCvC,OAnCAJ,EAAallB,SAAQ,SAAC7Z,GAClB,IAAMo/B,EAAc,IAAIrmB,KAAKA,KAAKsmB,IAAIr/B,EAAMizB,KAAMjzB,EAAMgzB,MAAQ,EAAGhzB,EAAM43B,MACnE0H,EAAY,IAAIvmB,KAAKqmB,GAC3BE,EAAUC,QAAQH,EAAYI,UAAY,GAC1C,IAAIC,GAAW,EACTC,EAAeP,EAAUA,EAAUroB,OAAS,GAUlD,GATK4oB,EAEMA,EAAaC,MAAQP,EAAYf,YAEjCqB,EAAaC,MAAQL,EAAUjB,UACtCqB,EAAaE,KAAOR,EAAYf,UAEhCoB,GAAW,GANXA,GAAW,EAQXA,EAAU,CACV,IAAMI,EAA8B,CAChCnhC,KAAM,MACNihC,KAAMP,EAAYf,UAClBuB,KAAMR,EAAYf,UAClBR,gBAAiB,2BACjBiC,MAAK,WACIhB,GACLA,EAAQe,EAASF,KAAgBE,EAASD,KAC9C,GAEJT,EAAU5gC,KAAKshC,E,CAEvB,IACAV,EAAUtlB,SAAQ,SAACkmB,GACf,IAAMC,EAAW,IAAIjnB,KAAKgnB,EAAKJ,MAC/BI,EAAKJ,KAAO,IAAI5mB,KAAKinB,EAASC,SAAS,EAAG,EAAG,EAAG,IAAI5B,UACpD,IAAM6B,EAAW,IAAInnB,KAAKgnB,EAAKH,MAC/BG,EAAKH,KAAO,IAAI7mB,KAAKmnB,EAASD,SAAS,GAAI,GAAI,GAAI,MAAM5B,SAC7D,IACOc,CACX,CAEM,SAAUgB,GAA8BtB,EAA6Br/B,EAAuC2X,GAAqF,IAA3D2nB,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAuD,KACzLsB,EAAW5gC,EAAK6gC,SAAQ,gBAAE7gC,EAAI,EAAJA,KAAM0+B,EAAK,EAALA,MAAK,OAAM1+B,EAAKoO,KAAI,SAAA0wB,GACtD,MAAO,CAAClX,EAAIkX,EAAElX,EAAEkX,EAAGA,EAAEA,EAAGJ,MAAAA,EAC5B,GAAE,IACIa,EAAeF,EAAcjxB,KAAI,SAAAwZ,GAAC,OAAI,IAAIrO,KAAKqO,EAAEkZ,eAAe,IAAEtB,MAAK,SAACrO,EAAGC,GAC7E,OAAOD,EAAE0N,UAAYzN,EAAEyN,SAC3B,IACIkC,EAAU,EACRC,EAAUJ,EAASxyB,KAAI,SAAAwZ,GAAM,MAAO,CAACA,EAAGA,EAAEA,EAAG8W,MAAO9W,EAAE8W,MAAM,IAAGvmB,QACjE,SAAC3X,EAAOmY,EAAOC,GAAI,OAAKA,EAAKrK,WAAU,SAAA0yB,GAAK,OAAIzgC,EAAMk+B,OAASuC,EAAMvC,OAASl+B,EAAMonB,GAAKqZ,EAAMrZ,CAAC,MAAMjP,CAAK,IACzGuoB,EAAqC,CAAC,EAC5CF,EAAQ3mB,SAAQ,SAAAuN,GAAI,MACVhQ,EAA8G,QAAzG,EAAGgpB,EAASzoB,QAAO,SAAAzD,GAAI,OAAIA,EAAKkT,GAAKA,EAAEA,GAAKlT,EAAKgqB,OAAS9W,EAAE8W,KAAK,IAAEtwB,KAAI,SAAA0wB,GAAC,OAAIA,EAAEA,CAAC,IAAEpd,QAAO,SAACyP,EAAGC,GAAC,OAAMD,EAAIC,CAAC,WAAC,QAAI,EACrHxZ,EAAQmpB,IACPA,EAAUnpB,KAEVspB,EAAOtZ,EAAEA,IAAMsZ,EAAOtZ,EAAEA,GAAKhQ,KAC7BspB,EAAOtZ,EAAEA,GAAKhQ,EAEtB,IAGA,IAAM+nB,EAAsC,GAyE5C,OAxEAJ,EAAallB,SAAQ,SAAC7Z,GAClB,IAAMggC,EAAW,IAAIjnB,KAAK/Y,GAC1BggC,EAASC,SAAS,EAAG,EAAG,EAAG,GAC3B,IAAMC,EAAW,IAAInnB,KAAK/Y,GAC1BkgC,EAASD,SAAS,GAAI,GAAI,GAAI,KAE3B9oB,GAAevG,GAAAA,UACdovB,EAAST,QAAQ,GACjBW,EAASX,QAAQvoB,IAAOkpB,GAAUnoB,MAAM,SAAS6f,QAErD,IAAM0H,EAAY,IAAIvmB,KAAKinB,GAC3BV,EAAUC,QAAQS,EAASR,UAAY,GACvC,IAAIC,GAAW,EACTC,EAAeP,EAAUA,EAAUroB,OAAS,GAUlD,GATK4oB,EAEMA,EAAaC,MAAQK,EAAS3B,YAE9BlnB,GAAevG,GAAAA,SAAuB8uB,EAAaC,MAAQL,EAAUjB,UAC5EqB,EAAaE,KAAOI,EAAS3B,UAE7BoB,GAAW,GANXA,GAAW,EAQXA,EAAU,CACV,IAAMkB,EAAUX,EAAS3B,UACnBuC,EAAUV,EAAS7B,UACrBwC,EAAS7pB,IAAO,IAAI+B,KAAK/Y,IACvB8gC,EAASD,EAAOE,YAElBF,EADDC,GAAU,EACAD,EAAO5oB,QAAQ,OAGf4oB,EAAO9oB,MAAM,OAE1B8oB,EAASA,EAAOhpB,IAAIgpB,EAAOE,YAAa,KACxC,IAAMC,EAAaZ,EAASzoB,QAAO,SAAAyP,GAAC,OAAIA,EAAEA,GAAKuZ,GAAWvZ,EAAEA,GAAKwZ,CAAO,IAAEhzB,KAAI,SAAAwZ,GAAC,OAAIA,EAAEA,CAAC,IAAEzP,QACpF,SAAC3X,EAAOmY,EAAOC,GAAI,OAAKA,EAAKrK,WAAU,SAAA0yB,GAAK,OAAIzgC,GAASygC,CAAK,MAAMtoB,CAAK,IACzEf,EAAQ,EACZ4pB,EAAWnnB,SAAQ,SAAAuN,GACZsZ,EAAOtZ,GAAKhQ,IACXA,EAAQspB,EAAOtZ,GAEvB,IAEA,IAAMyY,EAAgB,CAClBnhC,KAAM,QACNm/B,gBAAiB,qBACjBoD,QAAS,IACTC,KAAM,SAACnP,GAAG,OAAKwK,GAAYxK,EAAK,OAAQ5a,GAAevG,GAAAA,QAAsB,GAAK,GAAG,EACrFqoB,QAAS,SAAClH,GAAG,OAAKwK,GAAYxK,EAAK,UAAW5a,GAAevG,GAAAA,QAAsB,EAAI,EAAE,EACzF+uB,KAAMK,EAAS3B,UACfuB,KAAMM,EAAS7B,UACf8C,SAAU,CACN/Z,EAAG,SACHkX,EAAG,UAEP8C,OAAQjqB,GAAevG,GAAAA,QAAsBovB,EAAS3B,UAAYwC,EAAOppB,SAAS4mB,UAClFgD,OAAQjqB,EAAmB,IAAVmpB,EACjBT,MAAK,WACIhB,GACLA,EAAQe,EAASF,KAAgBE,EAASD,KAC9C,GAEJT,EAAU5gC,KAAKshC,E,CAEvB,IACAV,EAAUtlB,SAAQ,SAACkmB,GACf,IAAMC,EAAW,IAAIjnB,KAAKgnB,EAAKJ,MAC/BI,EAAKJ,KAAO,IAAI5mB,KAAKinB,EAASC,SAAS,EAAG,EAAG,EAAG,IAAI5B,UACpD,IAAM6B,EAAW,IAAInnB,KAAKgnB,EAAKH,MAC/BG,EAAKH,KAAO,IAAI7mB,KAAKmnB,EAASD,SAAS,GAAI,GAAI,GAAI,MAAM5B,SAC7D,IACOc,CACX,CAwBA,SAASmC,GAASC,EAAOC,EAAQC,GAC7B,IAAMC,EAAKH,EAAMI,iBAAiBH,GAC5BI,EAAKL,EAAMI,iBAAiBF,GAClC,MAAO,CACL7f,IAAKxQ,KAAKwQ,IAAI8f,EAAIE,GAClBzgB,IAAK/P,KAAK+P,IAAIugB,EAAIE,GAEtB,CAEF,gBAAgBC,EAA8BxjC,EAAmByjC,GAC7D,IAAQ5T,EAA4F7vB,EAA5F6vB,aAAc4Q,EAA8EzgC,EAA9EygC,QAAS3nB,EAAqE9Y,EAArE8Y,YAAazY,EAAwDL,EAAxDK,KAAMqjC,EAAkD1jC,EAAlD0jC,iBAAkBC,EAAgC3jC,EAAhC2jC,oBAAqBpB,EAAWviC,EAAXuiC,QACnFl/B,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACxCE,OAAgBl1B,EACpBm1B,GAAAA,GAAAA,cAAAA,WAAmC,SAAChB,EAAOiB,EAAMC,EAAQC,GAAM,OAAK,CAAK,EACzEH,GAAAA,GAAAA,kBAAAA,WAAuC,SAAChB,EAAOoB,EAAMvT,EAAIsT,GACrD,IAAM7rB,EAAQyqB,GAASC,EAAOoB,EAAMvT,GAGpC,OAFAkT,EAAgBzrB,GAET,CAAK,EAEhB0rB,GAAAA,GAAAA,aAAAA,WAAkC,SAAChB,EAAOqB,EAAOF,GAAM,OAAK,CAAK,EACjE,IAAMG,EAAmB,SAAChY,EAAG,EAAavb,GAAS,oBAArBwzB,EAAS,KACnC,GAAKA,EAAL,CACA,IAAMC,EAAgBzzB,EAAM9P,KAAKg+B,SAASsF,EAAUrI,cACpD,GAAKsI,GAAiBA,EAAc9E,QAAUjC,GAA9C,CACA,IAAMvc,EAA0BsjB,EAAcvjC,KAAKsjC,EAAU3qB,OACxDsH,GACe,KAAhBA,EAAO/gB,MACPogC,GACAA,EAAQ,CACJ3mB,MAAO4qB,EAAc9E,MACrBH,QAASiF,EAAc9E,QAAUlC,GACjCn6B,KAAMmhC,EAAc1c,MACpB2c,eAAgBvjB,EAAOzX,IATgD,CAFzD,CAc1B,EAGMsH,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAMA,GAAQ,MACdc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACL28B,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAERvJ,YAAaoI,GAEjBU,KAAM,CACFA,KAAM,CACFU,KAAM,CACFC,QAASnB,GAEfoB,KAAM,IACNC,eAAc,SAAC/zB,GACb,GAAGyyB,QAAqC30B,GAAjBk1B,EAA4B,CAC/C,IAAMgB,EAAW,IAAIvqB,KAAK3H,KAAKmyB,MAAMjB,EAAc1gB,MACnD0hB,EAASrD,SAAS,EAAE,EAAE,EAAE,GAExB,IAAMuD,EAAW,IAAIzqB,KAAK3H,KAAKwP,KAAK0hB,EAAcnhB,MAClDqiB,EAASvD,SAAS,GAAG,GAAG,GAAG,KAE3B,IAAMwD,EAAOH,EAASjF,UAEhBqF,EAAOF,EAASnF,UAChBb,EAAWluB,EAAMA,MAAM9P,KAAKg+B,SAC5BpgB,EAASogB,EAAS6C,SAAQ,SAAAjZ,GAAC,OAAIA,EAAE5nB,KAAKmY,QAAO,SAAC2mB,GAAQ,OAAKA,EAAElX,GAAKqc,GAAQnF,EAAElX,GAAKsc,CAAI,GAAC,IAC5F,IAAS,OAANtmB,QAAM,IAANA,OAAM,EAANA,EAAQtG,QAAS,EAAG,SACb6sB,EAAkF,QAAxE,EAA+C,QAA/C,EAAGvmB,EAAOzF,QAAO,SAAAyP,GAAC,OAAIA,CAAC,IAAExZ,KAAI,SAACwZ,GAAQ,OAAKA,EAAEkX,CAAC,WAAC,aAA5C,EAA8Cpd,QAAO,SAACyP,EAAEC,GAAC,OAAMD,EAAIC,CAAC,WAAC,QAAI,EAC5FmR,EAAiB,CACbpC,KAAM8D,EACN7D,KAAM8D,EACNE,WAAYD,G,EAIxBrB,OAAgBl1B,CAClB,IAGNhG,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,IAGfwB,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,MAAO,CAACA,EAAK0pB,QAAQvX,MACzB,EACA0d,WAAU,SAAC7vB,GACP,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAAkBpG,EAAQp+B,KAC1BykC,EAAoBD,EAAO9vB,EAAKgwB,WAChCC,EAAeH,EAAOp2B,KAAI,SAAC+iB,GAAQ,OAAKA,EAAE2N,CAAC,IAAEpd,QAAO,SAACyP,EAAGC,GAAC,OAAKD,EAAIC,CAAC,IACnEwT,EAAiBD,EAAevG,EAAQp+B,KAAKsX,OAC7CutB,GAAwBJ,EAAW3F,EAAI8F,GAAkBA,EAAiB,IAC1E5G,EAAWtpB,EAAK5E,MAAM9P,KAAKg+B,SAC3BpgB,EAASogB,EAAS7lB,QAAO,SAAAyP,GAAC,OAAIA,EAAE8W,OAASN,EAAQM,KAAK,IAAEmC,SAAQ,SAAAjZ,GAAC,OAAIA,EAAE5nB,KAAKmY,QAAO,SAAC2mB,GAAQ,OAAKA,EAAElX,GAAK6c,EAAW7c,CAAC,GAAC,IACrHuc,EAAavmB,EAAOzF,QAAO,SAAAyP,GAAC,OAAIA,CAAC,IAAExZ,KAAI,SAACwZ,GAAQ,OAAKA,EAAEkX,CAAC,IAAEpd,QAAO,SAACyP,EAAEC,GAAC,OAAMD,EAAIC,CAAC,IACtF,MAAO,CAAC,UAAD,OACO5jB,EAAei3B,EAAW3F,EAAGpQ,IAAa,UACjDmW,EAAsB,EAAI,IAAMA,EAAoBC,QAAQ,GAAKD,EAAoBC,QAAQ,GAAE,yCACjFt3B,EAAe22B,EAAYzV,IAEpD,GAEJkV,KAAM,SAEVmB,WAAY,CACRC,YAAa,CAAC,IAGtBC,YAAa,CACTC,WAAW,EACXtB,KAAM,WAEVuB,QAAO,SAAClgC,EAAO,GAAS,oBAAR+X,EAAO,KACfooB,EAAY,UAChB,GAAIpoB,EAAS,CACT,IAAMumB,EAAgBzzB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cAClD,IAAKsI,EAAe,OACpB,IAAMtjB,EAA0BsjB,EAAcvjC,KAAKgd,EAAQrE,OAC3D,IAAKsH,EAAQ,OACb,GAAoB,KAAhBA,EAAO/gB,KAAa,OACpBqkC,EAAc9E,QAAUjC,KACxB4I,EAAY,U,CAGnBngC,EAAMogC,OAAOplB,OAAuB/d,MAAMy4B,OAASyK,CACxD,EACAE,YAAY,EACZC,qBAAqB,EACrBjG,QAAO,SAACjU,EAAG,EAAavb,GAAK,oBAAjBwzB,EAAS,KAClBD,EAAiBhY,EAAE,CAACiY,GAAYxzB,EACnC,EACA01B,OAAQ,CACJ5d,EAAG,CACC1oB,KAAM,OACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX+lC,KAAM,IACNjN,KAAM,CACF3X,KAAMrJ,GAAevG,GAAAA,QAAsB,QAAU,OAEzDy0B,OAAQ,QACRlkB,IAAM,IAAIpI,KAAY,OAAP6nB,QAAO,IAAPA,EAAAA,EAAW7nB,KAAKusB,OAAOjH,WAE1CC,EAAG,CACC5/B,KAAM,SACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEXtgB,IAAK,EACLwjB,KAAM,IACNh+B,MAAO,CACH1G,KAAM,SAAF,OAAWwtB,EAAY,KAC3B7uB,MAAOgjC,EACPvJ,SAAS,GAEboF,MAAO,IACPpF,SAAS,KAKrBe,QAAS,CAACP,GAAkBiJ,GAAAA,MAEhC,OAAOjzB,CACV,EC7eD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHmY,YAAanV,OACbxC,KAAM8C,OACNkiC,YAAazuB,MACb7T,OAAQF,OACRggC,oBAAqBlgC,QACrB8+B,QAAS5+B,QAEbqD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAE5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAChB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB6tB,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBACV,SAAbqB,EAAEhX,QACFujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,eACzB6tB,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,sBAEpC4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG5C43B,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY7sB,EAAEhX,QAAU,QAE3CwjC,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQ02B,GAAoBP,EAAOzlC,MAAO,CAC5CkuB,aAAcA,EAAaluB,MAC3BmX,YAAa+B,EAAE/B,YACf2nB,QAAO,SAACr6B,GACJ8gC,EAAK,QAAS9gC,EAClB,EACAs9B,iBAAgB,SAACt9B,GACb8gC,EAAK,mBAAoB9gC,EAC7B,EACAu9B,oBAA8C,GAAzB9oB,EAAE8oB,oBACvBpB,QAAS1nB,EAAE0nB,SAEf9G,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMjR,QAAQw7B,QAAQ0K,WAAWC,YAActrB,EAAEsrB,aAAe,GAChEl1B,EAAMsrB,QA1CiB,CA2C3B,EAcA,OAbAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,KAE7BD,EAAAA,EAAAA,QACI,kBAAMwW,EAAEsrB,WAAW,IACnB,kBAAMoB,GAAa,GACnB,CAAEh9B,WAAW,EAAOjG,MAAM,IAEvB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAAa9L,OAAAA,EACxC,EACAp3B,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MCxGwS,MCOhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYxkC,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAiB,C,MAAC,CAAwB,MAAS,EAACE,MAAY,oBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,EAAO,Q,MACnPzN,CAAI,EAAEjD,GAAIiD,UAAI,M,KACdskC,CACAC,KAAAA,EAAAA,KACAxY,oBAAmByY,EAAAA,aACtB,0BAAC,aAAe,mDAAqB,OAAS,EAAa,QAAQz2B,EAAAA,MAAO,QAAC,oBAAexP,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAK1B,WAAI0nC,U,CAAwC,eAAYC,EAAS,M,MAAC,CAAc,QAAY,UAAG,SAAW,GAAY,aAACnmC,MAAM,c,MAAkBe,C,MAA6BU,EAAI,KAAI,SAAC,YAACvB,EAAAA,KAAW,CAAM,EAAG,WAAUe,UAAsCQ,EAAI,KAAC,EAAM,sB,WAAS,EAAS5B,KAAK,OAAcK,QAAAA,SAAqB,eAAC5B,WAAM,WAA8B,MAAC,CAAC0B,MAAM,qB,MAA0Be,C,MAA6BgtB,EAAAA,aAAgB,SAAC,YAAC7tB,EAAAA,aAAW,CAAc,EAAK1B,WAAI4nC,kBAAwD9nC,EAAK,iBAAC,Q,YAASE,OAA2B,MAAC,CAACwB,MAAM,2B,MAAyBe,C,MAA6BilC,EAAAA,YAAe,SAAC,YAAC9lC,EAAAA,YAAW,CAAa,EAAG,WAAUe,iBAA8C3C,EAAM,+B,YAASE,O,MAAsC,CAAc,MAAQ,EAAC,GAAK,+BAAC,OAAQ,EAAM,UAACwB,OAAM,G,MAA2Be,C,MAA6BklC,EAAAA,cAAiB,SAAC,YAAC/lC,EAAAA,cAAW,CAAe,EAAIe,WAAG,mBAA2C3C,EAAK,uBAAC,C,YAASE,O,MAAsC,CAAc,MAAQ,EAAC,GAAK,+BAAC,OAAQ,EAAM,UAACwB,OAAM,G,MAA2Be,C,MAA6BslC,EAAAA,cAAiB,SAAC,YAACnmC,EAAAA,cAAW,CAAe,EAAIe,WAAG,mBAA2C3C,EAAK,uBAAC,C,YAASE,O,MAAsC,CAAc,MAAQ,EAAC,GAAK,+BAAC,OAAQ,EAAM,UAACwB,OAAM,G,MAA2Be,C,MAA6BulC,EAAAA,cAAiB,SAAC,YAACpmC,EAAAA,cAAW,CAAe,EAAI,WAAG,oBAErmDtB,EAEJ,E,iBCT4D,GAAY,W,IAAiCN,EAAM,K,EAAC,QAAUE,G,OAA8B,EAAO,cAAmN,OAAYiV,C,MAAM,CAA4C,QAAa,MAAgD,cAAG,MAAC,kCAAC,YAAQ,8C,GAAkD,CAAC,kBAAG,yBAC/iB,KADwK,Q,MAAC,CAA0B,QAAQjV,EAAM,MAAC,oBAA6B,MAAQA,EAAIiV,MAAM,sBAAG,MAAC,kCAAC,MAAQ,S,GAAkD,CAAC,kBAAIxS,OAAG,QAAc,QAAC,EAAC3C,I,QCgCzV,IACAO,MAAAA,CAAAA,QAAAA,SACAQ,KAAAA,WACA,OACAknC,cAAAA,GACAC,eAAAA,EAEA,EACAhmC,SAAAA,EAAAA,GAAAA,IAAAA,iBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,gGAEAimC,EAAAA,sBAAA,mFAEA,gFC5CyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B7mC,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,6BAA6BzC,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,OAASE,EAAIgV,OAAO,MAAQ,CAAC,UAAU,MAAQhV,EAAIkoC,aAAa,eAAe,KAAK,MAAQloC,EAAI0nB,OAAS1nB,EAAIoR,GAAG,mCAAmC,eAAe,GAAG,iBAAiB,IAAIzO,GAAG,CAAC,MAAQ3C,EAAImoC,wBAAwB,6BAA6BnoC,EAAI+f,QAAO,GAC5X,EACI3f,GAAkB,GCuBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAurB,GAAAA,OAAAA,CAAAA,EAAAA,CACA5W,OAAAA,CACAjV,KAAAA,QACAS,SAAAA,GAEAa,MAAAA,SAEAmF,WAAAA,CAAAolB,yBAAAA,IACAjnB,SAAAA,CACAujC,aAAAA,WACA,kBACA,CACAprB,GAAAA,KAAAA,MACAC,KAAAA,KAAAA,MACAE,YAAAA,SACAC,SAAAA,GACAC,KAAAA,SACAC,YAAAA,GAPA,IASA,GAEArc,QAAAA,CACAonC,sBAAAA,SAAAA,GACA,EACA,yBADA,wBAEA,ICpD2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCyDhC,IACA9nC,MAAAA,CACAS,QAAAA,QACAO,MAAAA,OACAiI,SAAAA,QACAb,MAAAA,OACAC,SAAAA,OACAg/B,aAAAA,CACA3nC,KAAAA,QACAS,SAAAA,IAGAgG,WAAAA,CAAA4hC,iBAAAA,GAAAC,mBAAAA,IACAxnC,KAAAA,WAAA,WACA,OACAJ,OAAAA,EACAwC,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,iDACApY,aAAAA,MACAiY,YAAAA,GACAI,kBAAAA,EACAU,kBAAAA,CAAAA,SAAAA,GAAA,yDACAb,cAAAA,WACAI,cAAAA,UACAC,cAAAA,cAEA,EACA/jC,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,8DACA,+BACA,wCACA,iBACA,qCACA,qCACA,sCAEA,EACAgG,WAAAA,EACAjG,MAAAA,KCzHsQ,M,sBCA/C,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B5C,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAOE,EAAIqB,MAAQ,wBAAH,OAA2BrB,EAAIqB,MAAMgI,IAAO,KAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACnQ,EACI5f,GAAkB,GCqBtB,IACAoG,WAAAA,CAAA6kB,cAAAA,IACAhrB,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gCACA,IC7BwQ,M,qBCA/C,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBmT,W,MAAgB7B,K,IAAO,MAAM,GAAG,oB,OAAE,EAAEE,WAAO,MAAa,aAAa,EAACA,GAAAA,GAAWysB,EAAAA,WAA63B,OAA73BA,EAAoB,KAAOA,C,MAAuD,CAAG,WAAM,GAAoBhqB,0BAAY,GAAoB,YAAK,OAA8BC,IAAAA,YAAmB5C,GAAK,SAAC,GAAC,QAAe,GAAI,aAAiB,MAAC,MAAS,CAAC,SAAU,KAAiB,MAAc,IAAK,CAAC,MAAQE,CAAyC,KAAYuoC,KAA4C,gHAAG,IAAE,MAAO,EAAKC,aAAyB,SAAChnC,YAAM,Q,CAACH,EAAAA,6BAAgC,C,YAAU,O,MAAmB,CAAyB,gBAAC,GAACK,eAAW,GAAsB,QAAI,MAAO,GAAgF5B,UAAM,EAAC,eAAW,KAAC,QAAW,qCAAG,6BAAC6I,SAAY3I,EAAIoQ,S,GAAuB,C,MAAe,EAAD,0B,MAA+B1N,C,MAAmB5C,EAAM,qB,SAAC,SAAW,G,EAAE,sB,aAA6D,2B,IAAU,gE,MAAG,C,OAAyF,G,WAAQ,I,YAAWK,EAAG,GAAK,CAAC,CAAmE,gBAAG,GAAC,SAAW,GAAgB,IAAC,EAAQ,EAAK,GAA0D,mBAAC,YAAQ,OAAiB,MAAOH,CAAmC,cAAQ,IAAuB,WAAvB,QAAkB,SAAsB,OAAsN,OAAC,KAAQ,KAA6D,oEAAC,OAAO,UAAyQ,GAAS,GAAE,+DAAC,IAAc,qBAAC2I,CAAAA,EAAAA,GAAAA,EAAW,CAAC3I,EAAG,KAAK,6B,GAACwC,CAAgBoG,MAAG,SAAgB,UAAF,EAAD,+B,YAAwD,gK,UAAc,YAAC,OAAK,EAAI,sBAAU,W,YAAiB,0K,MAAG,CAA6E,UAAG,WAAC,I,YAAmB6/B,EAAAA,GAAAA,CAAAA,CAAoBlmC,IAAAA,Y,GAAyBvC,SAAIyoC,GAAuB,WAAC/mC,MAAAA,CAAU,EAAC,UAAoB,mBAAO,MAAQ,CAAiE,cAA0B,GAAO1B,CAAAA,EAAIs1B,EAAAA,EAAAA,CAAwBnb,MAAAA,CAAqBrB,KAAQ,KAAuB,0EAAG,MAAK,CAAuChZ,MAAM,qBAAC,SAAU,SAAG,GAAC,qBAAkBqa,CAAsB,EAAI,WAAO,uB,CAAmE,OAAQ,QAASkC,CAAAA,EAAM,GAAC,yB,GAAC,C,MAAmClC,SAAmB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,MAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAAwC,YAAI,MAAkC,QAA3B,yBAAmE,KAAO,MAAU4Z,CAAAA,EAAAA,GAAO,yB,GAAC,C,MAAmClC,SAAkB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,MAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAAuC,YAAI,MAAkC,QAA3B,yBAAoE,KAAO,MAAU4Z,CAAAA,EAAAA,GAAO,yB,GAAC,C,MAAmClC,SAAkB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,KAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAAuC,YAAI,MAAkC,OAA3B,yBAAoE,KAAO,MAAU4Z,CAAAA,EAAAA,GAAO,0B,GAAC,C,MAAmClC,SAAmB,G,OAAErB,EAAQ,sBAAI,CAAED,aAAU,KAAO,2BAAKpW,I,CAAiD,OAAa,S,MAAC,CAAwC,YAAI,MAAkC,OAA3B,yBAAkE,WAAwB,GAAC,GAAK,0B,GAAC,CAAc,MAAQ,SAAC,GAAG,gCAACkG,aAAmB,MAAK,OAAC,KAAe,e,YAAuH,S,gBAA4C,G,MAAgC3I,QAAzB,EAAG,MAAC,iBAA+C,2CAAE,MAAK,CAAiBF,0BAAM,EAAC,WAAQ,GAAG,W,YAAa,O,IAAiBuc,Y,GAEn/IlC,SAAY,G,IACZrB,EAAM,EAAMsB,G,MACZvB,CAAAA,EAAQ,KAAWwD,EAAAA,GAAQ,CAAC,sBAC9B,MACE,aAAE,0CAAerc,GAAIqa,EAAAA,GAAAA,GAAM,sBAAC9X,M,CAAsC,EAAC,M,MAACb,CAAkB,UAAmE5B,GAAAA,CAAO,MAAQ,SAAG,GAAY,IAAX,UAAW,yBAAG,sBAAC6I,OAAY3I,IAAIoQ,KAAI,MAAI,SAAC,IAAW,Y,SAAgD1N,C,MAAmB5C,EAAM,M,SAAC,SAAW,G,EAAE,O,EAA0E,uBAA0B0B,IAAM,+C,MAAM,CAA8Be,OAAS,G,WAAoBmmC,I,YAAsC,EAAC,KAAwB,gBAAIjmC,GAAG,SAAY,GAAuG,WAAC,MAAQ,YAAS4Z,CAAQ,YAAWssB,OAA6B,OAAC,cAAoD,8DAAC,IAAc,MAAO,EAAKtnC,WAA+B,OAAI,MAAM,EAAC,uBAAgE,SAAC,YAAC,yBAAuB,C,EAA0C,sCAAI,CAACoB,EAAG,aAAsBA,CAAAA,EAAG,yBAAa,uCAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,KAAS,IAAyEsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA+B,0CAAKF,GAAG,QAAoB,CAAC,EAAI,gBAAa,WAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,KAAU,IAA0EsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA+B,0CAAKF,GAAG,QAAoB,CAAC,EAAI,gBAAa,WAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,MAAU,IAA2HsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA8B,2CAAKF,GAAG,QAAoB,CAAC,EAAI,iBAAa,WAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,MAAS,IAA2EsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA8B,2CAAKF,GAAG,QAAoB,CAAC,EAAI,iBAAa,oDAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,KAAS,IAA2EsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA8B,0CAAKF,GAAG,QAAoB,CAAC,EAAI,kBAAa,WAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,KAAS,IAA2EsB,CAAE,EAAC,c,MAAC,C,SAAmC,GAA+B,0CAAKF,GAAG,QAAoB,CAAC,EAAI,kBAAa,WAAC3C,GAAAA,CAAO,eAAa,GAAC,OAAQE,EAAIqB,wBAAsB,KAAU,IAAyHvB,CAAAA,EAAK,KAAC,S,MAAC,CAAY,SAAW,GAAG,0CAAsB0C,GAAI,QAAW,gC,GAAG,C,MAAe,SAAD,GAAI,OAAO,EAAI,wBAAe,M,YAAsC,S,MAAE,C,SAASxC,G,MAAkE,QAAD,EAAC,2B,GAAU,0E,OAAA,Q,MAAG,C,OAAwF,G,WAAQ,I,YAAWG,EAAG,K,IAAgFL,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,MAAU,GAAC,CAAmEL,YAAM,O,MAAC,CAAS,cAA8FA,GAAK,CAAC,iD,MAAC,CAAS,UAAkGA,CAAAA,EAAK,GAAC,6D,MAAC,CAAS,UAAqFA,CAAAA,EAAK,GAAC,kE,MAAC,CAAS,UAA+FA,CAAAA,EAAK,GAAC,gE,MAAC,CAAS,UAA0FA,CAAAA,EAAK,GAAC,qE,MAAC,CAAS,UAAiI,+EAAI,MAAK,CAAsB,KAASE,KAAiFwC,CAAAA,EAAG,+DAAI,OAAC,KAAQ,K,CAA2DoZ,EAAAA,GAAAA,cAAapZ,EAAAA,KAAAA,sBAAAA,EAAAA,MAAAA,YAAAA,EAAAA,EAAAA,EAAAA,CAAG,MAAG,WAAQ,yBAA6B,OAAkCxC,YAAlC,QAAmB,YAAsB,MAAa,CAAmyB,MAAIA,CAAiD0C,KAAY,KAAc,uBAAkB,oGAAC,IAAiB,oBAAG,GAAC1C,GAAAA,EAAS,EAAG,2CAClrK,eACGI,IAAAA,EAEJ,GAASgB,C,23BCVgGtB,GAAM,W,IAAC,O,EAA+B,QAAY,G,OAAG,OAAY,C,YAAY,OAAG,MAAC,CAAG,MAAC,qBAAC,UAAY,GAAqB,WAAGE,UAAYkoB,I,GAA6C1lB,CAAM,OAAW,yB,EAA6B,KAAO,OAAG,c,OAAC,aAAc,C,IAAC,G,CAAqB,WAAP,EAAW,O,MAAC,CAAuB,SAAIxC,UAAa,GAAsFF,SAAM,GAAC,QAAc,SAAW,aAAgC,+EAAC6I,MAAAA,CAAqBnG,WAAI,GAAYoG,OAAG,G,0BAAa,G,YAAqC,O,4BAAY,G,IAAe,IAAU,G,MAAI,GAAO,IAAC,EAAQ,I,MAAC,CAAuB,SAAGjG,UAAY,GAAoE,YAAQ,MAAM,SAAO,sBAAkCJ,GAAS,YAAUynB,GAAG,EAAE,qD,IAA8B,S,MAACtoB,CAAiC,6BAAIe,SAAG,SAAgB,GAAC3C,EAAM,sBAAC,EAAW,oC,CAAQuB,EAAAA,GAAAA,EAAiB,C,MAACkB,C,MAA6B8X,I,MAAW3Y,CAAkB,cAAIe,SAAU,SAAC,GAAC3C,EAAM,OAAC,EAAW,WAAQ,WAAsB,OAAC6C,MAAG,CAAC,MAAQ,G,MAAwB3C,YAAoC,SAAG,GAAEA,CAAuF,kBAC5yC,uCACGI,I,2FCCSwoC,GAAsB,CAAC,MAAO,MAAO,KAAM,UASxD,IACEvoC,MAAO,CACLgB,MAAOsC,OACPukB,MAAO,CACLnoB,KAAMqX,MACN5W,QAAS,kBAAMooC,EAAmB,GAEpCt/B,SAAU,CACRvJ,KAAMoD,QACN3C,SAAS,IAGbK,KAAI,WACF,MAAO,CACLwZ,MAAO,GACPwuB,sBAAsB,EAE1B,EACA9nC,QAAS,CACP+nC,qBAAoB,SAAC3uB,GACnB,IAAM3X,EAAM,IAAI+V,GAAQ4B,GACxB,GAAK3X,EAAIsG,UAAWtG,EAAIkW,SAAxB,CACA,IAAMqwB,EAAiC,CACrC5uB,aAAAA,EACAtB,SAAU,KACVC,OAAQ,MAEV7W,KAAKgE,MAAM,QAAS8iC,EANoB,CAO1C,EACAzT,sBAAqB,SAACpd,GACpB,GAAKA,GAA0B,IAAjBA,EAAMC,OAApB,CAIA,IAAM4wB,EAAiC,CACrC5uB,aAAc,SACdtB,SAAUR,GAAON,IAAIG,EAAM,IAAIY,SAC/BA,OAAQZ,EAAM,GAAKG,GAAON,IAAIG,EAAM,IAAIY,cAAWrK,GAErDxM,KAAKgE,MAAM,QAAS8iC,E,MARlBpnC,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,yCASvB,ICpDmT,M,uBCAxF,GAAe,KCO1O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB8H,W,IAAe,OAAuB,EAAC,W,OAAI,Q,YAAUpR,OAA2B,OAAIA,MAAQA,EAAIgpC,MAA2B,UAAU,GAASxmC,QAAK,GAAC1C,UAAM,G,SAAS,EAAE,U,GAAgB,C,OAAqB,EAAI,0B,CAAwB,gCAAC,OAAM,EAAG,IAAI,CAAkE,IAAKmpC,EAAyBnpC,MAAM,CAAC,MAAU,GAAI,UAAW,GAAC,YAA+B,QAAC6I,SAAe,EAAI,WAAkBC,CAAE,EAAC,YAAgB,2D,MAAA,W,OAAH,Q,MAAI,C,WAAiC,G,OAAC,G,0BAAyB,G,YAAe,EAAQ,K,mBAA+B,YAAC,IAAEjG,EAAK3C,EAAIG,G,MAAgC,GAAC,U,MAAC,CAAU,SAAIH,UAAO,GAAqB,YAAQ,MAAO,QAAiB,sBAA6BuC,GAAS,iBAAUynB,EAAK,KAAChqB,MAAIkpC,CAAoB,WAA6B,2BAAIzmC,IAAqD,MAAU,a,MAAkB,CAAUE,MAAG,kB,SAAQ,SAAU0Z,G,EAAQ,gBAAW8sB,C,EAA8B,+BAAyI,CAAC,EAAG,KAAInpC,EAAIiQ,GAAG,EAAG,YAAE,cACjwC,eACG7P,IAAAA,KAAAA,OAAkB,GAEtB,GAASgB,C,mLCFIgoC,GAA4B,CACrC1zB,GAAiBkB,SACjBlB,GAAiBQ,SACjBR,GAAiBU,cACjBV,GAAiBwB,OACjBxB,GAAiBI,cACjBJ,GAAiBgB,SAErB,IACIrW,MAAO,CACHgB,MAAOgC,OACP6kB,MAAO,CACHnoB,KAAMqX,MACN5W,QAAS,kBAAM4oC,EAAyB,GAE5CH,WAAY,CACRlpC,KAAMoD,QACN3C,SAAS,GAEb8I,SAAU,CACNvJ,KAAMoD,QACN3C,SAAS,GAEbsU,SAAU,CACN/U,KAAMoD,QACN3C,SAAS,IAGjBK,KAAI,WACA,MAAO,CACHqoC,iBAAiB,EAEzB,EACAvkC,SAAU,CACNqkC,UAAS,WACL,GAAI/mC,KAAKonC,SAASC,WAAWC,UACzB,MAAO,CAACtnC,KAAKZ,OAASY,KAAKimB,MAAM,IAGrC,IAAIA,EAAQjmB,KAAKimB,MAIjB,OAHKjmB,KAAKimB,MAAM/b,SAASlK,KAAKZ,SAC1B6mB,EAAQA,EAAMnO,OAAO9X,KAAKZ,QAEvB6mB,CACX,EACAshB,WAAU,sBACN,OAAOJ,GAA0BpwB,QAAO,SAAC1B,GAAC,OAAM,EAAK4Q,MAAM/b,SAASmL,IAAMA,IAAM,EAAKjW,KAAK,GAC9F,GAEJN,QAAS,CACLooC,wBAAuB,SAACM,GACA,UAAhBA,GACJxnC,KAAKgE,MAAM,QAASwjC,EACxB,ICvDiT,M,uBCAxF,GAAe,KCO5O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICVY9xB,GDUZ,GAAe,GAAiB,SCVhC,SAAYA,GACRA,EAAAA,UAAAA,SACAA,EAAAA,YAAAA,WACAA,EAAAA,aAAAA,WACH,EAJD,CAAYA,KAAAA,GAAQ,KA+Bd,SAAU+xB,GAAgBhqC,GAC5B,IAAMya,EAAe,IAAI5B,GAAQ7Y,EAAQya,cACzC,OAAKA,EAAarR,QACXqR,EAAaG,sBAAsB5a,EAAQmZ,SAAUnZ,EAAQoZ,QADlC,EAEtC,CAEM,SAAU6wB,GAA2BjqC,GACvC,IAAMwY,EAAQwxB,GAAgBhqC,GAC9B,GAAqB,IAAjBwY,EAAMC,OAAc,OAAO,KAC/B,IAAMK,EAAe9Y,EAAQ8Y,aAAeP,GAAwBC,GAG9DmJ,EAAoC,CACtCxI,SAAUX,EAAM,GAAG4D,cACnBhD,OAAQZ,EAAM,GAAG4D,cACjBtB,YAAa9a,EAAQ8a,aAAe,GACpChC,YAAAA,GAgBJ,OAdI9Y,EAAQib,iBAAmBjb,EAAQib,gBAAgBxC,OAAS,IAC5DkJ,EAAO1G,gBAAkBjb,EAAQib,gBAAgBX,QACjDta,EAAQ2b,iBAAgBgG,EAAOxG,gBAAkBnb,EAAQ2b,gBACzD3b,EAAQ4b,YAAW+F,EAAOzG,WAAalb,EAAQ4b,WAC/C5b,EAAQ0b,YAAWiG,EAAOvG,WAAapb,EAAQ0b,WAC/C1b,EAAQgc,eAAc2F,EAAO3F,aAAehc,EAAQgc,cACpDhc,EAAQ6b,aAAY8F,EAAOtG,YAAcrb,EAAQ6b,YACjD7b,EAAQ8b,gBAAe6F,EAAOrG,eAAiBtb,EAAQ8b,eACvD9b,EAAQ+b,cAAa4F,EAAO5F,YAAc/b,EAAQ+b,aAClD/b,EAAQsc,cAAgBtc,EAAQsc,aAAa7D,OAAS,IAAGkJ,EAAOrF,aAAetc,EAAQsc,aAAahC,KAAK,MACzGta,EAAQmX,kBAAiBwK,EAAOvK,kBAAoBpX,EAAQmX,iBAC5DnX,EAAQkqC,WAAUvoB,EAAOuoB,SAAWlqC,EAAQkqC,UAC5ClqC,EAAQuc,gBAAeoF,EAAOpF,cAAgBvc,EAAQuc,eACtDvc,EAAQ+a,cAAa4G,EAAO5G,YAAc/a,EAAQ+a,aAC/C4G,CACX,CAEM,SAAUwoB,GAA4BxoC,EAA0B+P,GAClE,GAAU,OAAL/P,QAAK,IAALA,IAAAA,EAAOua,YAAa,MAAO,cAChC,IAAMpZ,EAAM,IAAI+V,GAAQlX,EAAM8Y,cACxB2vB,EAAmB1yB,MAAMC,QAAQhW,EAAMua,aACvC,WACAva,EAAMua,YAAYmuB,WAAW,SAC7B1oC,EAAMua,YAAY9B,MAAM,KAAK,GAC7B1I,EAAG,uBAAD,OAAwB/P,EAAMua,YAAY0F,cAAa,WAC/D,GAAI9e,EAAIkW,SACJ,OAAOtH,EAAG,2CAA4C,CAClDwK,YAAakuB,EACbjxB,SAAUR,GAAON,IAAI1W,EAAMwX,UAAUnJ,OAAO,cAC5CoJ,OAAQT,GAAON,IAAI1W,EAAMyX,QAAU,IAAIsB,MAAQ1K,OAAO,gBAEvD,GAAIlN,EAAIgW,cAAgBvG,GAAAA,MAC3B,OAAOb,EAAG,0CAA2C,CACjDoH,YAAahW,EAAIgW,YACjBoD,YAAakuB,EACbrxB,MAAOjW,EAAIiW,MACXuxB,gBAAiB,SAElB,GAAIxnC,EAAIgW,cAAgBvG,GAAAA,QAC3B,OAAOb,EAAG,0CAA2C,CACjDoH,YAAahW,EAAIgW,YACjBoD,YAAakuB,EACbrxB,MAAOjW,EAAIiW,MACXuxB,gBAAiB,WAGrB,MAAM,IAAIrM,MAAM,6BAExB,CAEA,QAAep3B,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHgB,MAAOsC,OACPsmC,WAAY,CACRlqC,KAAMoD,QACN3C,SAAS,GAEb+nC,qBAAsB,CAClBxoC,KAAMqX,MACN5W,QAAS,iBAAM,CACXiV,GAAAA,aACAA,GAAAA,aACAA,GAAAA,QACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,UACAA,GAAAA,cACAA,GAAAA,WACH,GAELy0B,kBAAmB,CACfnqC,KAAMqX,MACN5W,QAAS,kBAAMooC,EAAmB,GAEtCuB,yBAA0B,CACtBpqC,KAAMqX,MACN5W,QAAS,kBAAM4oC,EAAyB,GAE5CgB,gBAAiB,CACbrqC,KAAMoD,QACN3C,SAAS,GAEb6pC,sBAAuB,CACnBtqC,KAAMoD,QACN3C,SAAS,GAEbM,QAAS,CACLf,KAAMoD,QACN3C,SAAS,IAGjBmE,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5B6c,qBAAoB,WAChB,GAAgC,QAA5BroC,KAAKZ,MAAM8Y,aAAwB,MAAO,WAC9C,GAAgC,WAA5BlY,KAAKZ,MAAM8Y,aAA2B,CACtC,IAAMtB,EAAWvJ,IAAMrN,KAAKZ,MAAMwX,UAC5BC,EAASxJ,IAAMrN,KAAKZ,MAAMyX,QAEhC,OAAID,EAASyb,SAAWxb,EAAOwb,QAAUzb,EAASwb,UAAYvb,EAAOub,QAE1D,GAAP,OAAUxb,EAASnJ,OAAO,OAAM,YAAImJ,EAAS0xB,OAAM,YAAIzxB,EAAOyxB,OAAM,aAAK1xB,EAASyb,QAC3Ezb,EAASyb,SAAWxb,EAAOwb,OAE3B,GAAP,OAAUzb,EAASnJ,OAAO,SAAQ,cAAMoJ,EAAOpJ,OAAO,gBAInD,GAAP,OAAUmJ,EAASnJ,OAAO,eAAc,cAAMoJ,EAAOpJ,OAAO,e,CAEhE,OAAOzN,KAAKZ,MAAM8Y,YACtB,IAEJtZ,KAAI,WACA,MAAO,CACHgoC,sBAAsB,EACtB2B,0BAA0B,EAC1B/B,oBAAoB,EACpBC,wBAAwB,EACxBjc,qBAAsB,KACtBpS,MAAO,GAEf,EACMxV,QAAO,8IAC2B,OAA9B4lC,EAAclU,KAAgB,SACFkU,EAAY/T,4BAA2B,OAAzE,EAAKjK,qBAAuB,EAAH,+CAFhB,EAGb,EACA1oB,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GAAG,WACP,GAAKA,EAAL,CACA,IAAMmtB,EAAQZ,KACdY,EAAMT,4BAA4B7nB,MAAK,SAACG,GAAC,OAAM,EAAKyd,qBAAuBzd,CAAC,GAF5D,CAGpB,EACA/E,WAAW,EACXjG,MAAM,IAGdjD,QAAS,CACL2pC,sBAAqB,SAACruB,GAClBpa,KAAKgE,MAAM,SAAS,kBAAKhE,KAAKZ,OAAK,IAAEuoC,SAAUvtB,IACnD,EACAiZ,sBAAqB,SAACjZ,GAA2B,QACvC7Z,EAAM,IAAI+V,GAAQ8D,EAAOlC,cACzBwwB,EAAYnoC,EAAI8X,sBAAsB+B,EAAOxD,SAAUwD,EAAOvD,QAC9DN,EAAcP,GAAwB0yB,GACxCjwB,EAA2C,WAAxB2B,EAAOlC,kBAA4B1L,EAAYxM,KAAKZ,MAAMqZ,kBAAoB,KACjF,UAAhBlC,GAAuD,QAA5B,EAACvW,KAAKZ,MAAMqZ,wBAAgB,OAA3B,EAA6B/B,SAAS,KAE3C,YAAhBH,GAAyD,QAA5B,EAACvW,KAAKZ,MAAMqZ,wBAAgB,OAA3B,EAA6B/B,SAAS,OAC3E+B,EAAmB,MAFnBA,EAAmB,KAIvBzY,KAAKgE,MAAM,SAAS,0BAAKhE,KAAKZ,OAAUgb,GAAM,IAAE7D,YAAAA,EAAakC,iBAAAA,KAC7DzY,KAAKwmC,oBAAqB,CAC9B,EACAE,wBAAuB,SAACtsB,GACpBpa,KAAKgE,MAAM,SAAS,kBAAKhE,KAAKZ,OAAK,IAAEqZ,iBAAkB2B,IAC3D,EACAmsB,yBAAwB,SAAC7R,GAiBrB,IAhBA,IAAMiU,GAAQ,kBACP3oC,KAAKZ,OAAK,IACbsZ,gBAAiB,GACjBU,eAAgB,KAChBC,UAAW,KACXG,YAAa,KACbO,aAAc,GACdT,WAAY,KACZG,aAAc,KACdF,cAAe,KACff,YAAa,OAGXowB,EAAelU,EAASxe,OACxB2yB,EAAyB,GAEtB3vB,EAAI,EAAGA,EAAI0vB,EAAc1vB,IAAK,CACnC,IAAMic,EAAST,EAASxb,GAClB4vB,EAAepU,EAASkU,EAAe,GAE7C,GAAIzT,EAAOja,OAAS1H,GAAAA,IAApB,CAKA,GAAIs1B,EAAa5tB,OAAS1H,GAAAA,aAAyB,CAC3Cs1B,EAAa5tB,OAAS1H,GAAAA,aACtBm1B,EAASvvB,eAAiB0vB,EAAajuB,GAChCiuB,EAAa5tB,OAAS1H,GAAAA,QAC7Bm1B,EAAStvB,UAAYyvB,EAAajuB,GAC3BiuB,EAAa5tB,OAAS1H,GAAAA,QAC7Bm1B,EAASrvB,WAAawvB,EAAahuB,KACnC6tB,EAASlvB,aAAeqvB,EAAa7tB,UAC9B6tB,EAAa5tB,OAAS1H,GAAAA,UAC7Bm1B,EAASpvB,cAAgBuvB,EAAahuB,KAC/BguB,EAAa5tB,OAAS1H,GAAAA,cAC7Bm1B,EAASlvB,aAAeqvB,EAAahuB,KAC9BguB,EAAa5tB,OAAS1H,GAAAA,SAC7Bm1B,EAASxvB,UAAY2vB,EAAajuB,GAClC8tB,EAASI,YAAcD,EAAahuB,MAC7BguB,EAAa5tB,OAAS1H,GAAAA,gBAC7Bm1B,EAAS/zB,gBAAkBk0B,EAAajuB,GACjCiuB,EAAa5tB,OAAS1H,GAAAA,aAC7Bm1B,EAASnwB,YAAcswB,EAAajuB,IAExC7a,KAAKwqB,qBAAuB,CAACse,GAC7B,K,CAEAH,EAASjwB,gBAAgB/a,KAAKw3B,EAAOta,IACrCguB,EAAuBlrC,KAAKw3B,E,MA5B5BwT,EAAS5uB,aAAapc,KAAKw3B,EAAOta,G,CAgCtCguB,EAAuB3yB,OAAS,IAChClW,KAAKwqB,qBAAuBqe,GAEhCF,EAASjU,SAAW10B,KAAKwqB,qBACzBxqB,KAAKgE,MAAM,QAAS2kC,EACxB,KCtRsT,M,uBCAxF,GAAe,KCOjP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICtBYK,GDsBZ,GAAe,GAAiB,Q,GEtBgO,W,IAAyB,O,EAAsB,QAAUjrC,GAAY,oB,OAA6B,aAAkB,GAACA,YAAIkrC,C,IAAiB,S,MAA8C,kBAAgBC,OAAAA,EAAAA,SAAAA,MAAAA,KAAAA,QAAAA,GAAAA,UAAAA,OAAAA,EAAAA,UAAAA,GAAAA,eAAS,MAAC,CAAG,WAAC,UAAC,UAAanrC,QAAe,kBAAIyC,kBAAc,SAAC3C,iBAAM,mBAAC,oBAAiB,sBAAC,UAAY,EAAG,W,GAAiB,CAAwC,aAAaE,EAAIqpC,eAA4B7nC,EAAK,KAAC,C,MAAM,CAAqBe,YAAS,M,WAAoB6oC,GAAiB,WAAC,GAAC1pC,WAAW,2BAAe,yCAAyCgB,MAAAA,CAAmB5C,MAAM,gBAAC,SAASE,SAAIqrC,GAAiB,gBAAgB,CAAE,EAAI5oC,WAAG,kBAA6C,CAAE,EAACzC,GAAAA,EAAIqrC,CAAAA,EAAAA,GAAAA,EAAwB,CAAkN3oC,YAAY,OAAOC,MAAG,CAAC,OAAQ,mB,cAA4BoO,MAAQ,SAAE,YAAamB,kBAAqFpS,CAAAA,EAAM,2M,YAAS,O,GAAY,CAAgB,kBAAI,gBAAC,I,CAAwC,qE,OAAA,OAAC,OAAIE,MAAO,YACj6C,eAGD,I,wICCA,IACI,IAAM+K,GAAMnE,EAAAA,EAAAA,MACZ0kC,GAAAA,EAAAA,cAA6BvgC,GAAIwgC,Y,CACnC,MAAO3jC,IACLwa,QAAQhX,MAAMxD,G,EFTlB,SAAYqjC,GACRA,EAAAA,eAAAA,cACAA,EAAAA,QAAAA,MACH,EAHD,CAAYA,KAAAA,GAAa,KGYzB,IAAMO,GAAqB,iBAErBC,GAAwB,SAACprB,GAC3B,OAAOA,EAAOqrB,OAAO,GAAGC,cAAgBtrB,EAAOurB,MAAM,EACzD,EACMC,GAAa,SAACC,EAAgBC,GAChC,MAAO,CACHC,WAAYF,EACZG,MAAOF,EACPpa,UAAU,EACV3Y,QAAQ,EACRkzB,UAAU,EACVC,UAAU,EACVC,WAAW,EACXC,gBAAgB,EAChBtsC,KAAM,eACNusC,aAAc,SAACjrB,GAAU,QACrB,MAAO,GAAP,OAAkC,QAAlC,EAAsB,QAAtB,EAAUA,EAAOhgB,aAAK,aAAZ,EAAcskC,QAAQ,UAAE,QAAI,IAC1C,EAER,EACA,IAAep/B,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAE+lC,UAAAA,GAAAA,WACdlsC,MAAO,CACH6nB,MAAOvkB,OACP7C,QAASqC,QACTosB,aAAclsB,OACduY,YAAavY,OACbmV,YAAanV,OACbmpC,gBAAiBnpC,OACjBkT,OAAQlT,OACRopC,cAAeppC,OACfyuB,aAAc,CACV/xB,KAAMuD,OACN9C,QAAS,IAEbksC,aAAc,CACV3sC,KAAMoD,QACN3C,SAAS,GAEbmsC,kBAAmBxpC,QACnBypC,WAAYzpC,QACZ0pC,iBAAkB1pC,QAClB2pC,OAAQ,CACJ/sC,KAAMsD,OACN7C,QAAS,YAEbusC,cAAe1pC,OACf8nC,UAAW,CACPprC,KAAMsD,OACN7C,QAAS,eAGjBK,KAAI,WACA,MAAO,CACHmsC,OAAQ,QACRC,UAAU,EACVC,QAAS,CAACC,GAAAA,IACV/B,eAAe,EACfC,kBAAkB,EAClB+B,SAAU,GACVv8B,WAAY,GACZw8B,QAAS,KACTC,cAAe,KACfC,eAAgBtC,GAExB,EACAlqC,QAAS,CACLysC,UAAS,WACDvrC,KAAKorC,SACLprC,KAAKorC,QAAQI,iBAErB,EACMC,GAAE,8IACyB,OAA7B,EAAKrC,kBAAmB,EAAK,SACN35B,EAAAA,EAAAA,KAAAA,KACd,WAAqC,CACtC07B,SAAU,EAAKA,SACfv8B,WAAY,EAAKA,aAEpBhC,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OALlBK,EAAW,EAAH,KAOV,EAAKkqC,gBACA,EAAKuC,OAAO,EAAKv6B,QAAQxT,KAAK,+BAAD,OAAgCsB,EAAS0sC,SAC3E,EAAK3nC,MAAM,UAAW/E,IACzB,0CAZG,EAaR,EACA6P,MAAK,WACD9O,KAAKopC,kBAAmB,EACxBppC,KAAKmpC,eAAgB,CACzB,EACAyC,UAAS,WACL5rC,KAAKorC,QAAQS,kBACjB,EACAC,YAAW,SAAC1sB,GAAM,WACdpf,KAAKorC,QAAUhsB,EAAO2sB,IACtB/rC,KAAKqrC,cAAgBjsB,EAAO4sB,UAC5BhsC,KAAKwC,WAAU,WACX,GAAI,EAAK6oC,cAAe,CACpB,IAAMY,EAAe,GACrB,EAAKZ,cAAca,gBAAgBjzB,SAAQ,SAACkzB,GACxCF,EAAatuC,KAAKwuC,EAAOC,WAC7B,IACA,EAAKf,cAAcgB,gBAAgBJ,GAAc,E,CAEzD,IACAjsC,KAAK4rC,WACT,GAEJlpC,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BnsB,QAAO,0BACGiuB,EAAettB,KAAKstB,aACpBgf,EAAkBtsC,KAAK2Z,YAAY9B,MAAM,KACzC00B,EAAyBvsC,KAAK8qC,eAAiB9B,GAAcwD,YAE7DntC,EAAoBitC,EAAgBt/B,KAAI,SAAC2M,GAAmB,MAAM,CACpEowB,WAAYP,GAAsB7vB,GAClCqwB,MAAO,KAAF,OAAOrwB,GACZ+V,UAAU,EACV3Y,QAAQ,EACRkzB,UAAU,EACVC,UAAU,EACVE,gBAAgB,EAChBqC,OAAQ,OACRtC,WAAW,EACXuC,eAAgB,SAAC3kC,GAAQ,OAAUA,EAAI3I,KAAK,EAC5CirC,aAAc,SAACjrB,GACX,IAAKA,EAAOxgB,KACR,OAAOwgB,EAAOhgB,MAElB,IAcIuO,EACA3M,EAfE8E,EAAwCsZ,EAAOxgB,KAC/Cu2B,EAA0CrvB,EAAO4uB,SAAS/Y,MAAK,SAACwJ,GAAC,OAAKA,EAAErnB,OAAS6b,CAAW,IAClG,IAAKwb,EAAQ,OAAOoU,GACpB,GAAIzjC,EAAO6mC,QACP,MAAO,qBAEX,GACI7mC,EAAOo3B,SACN,EAAKjX,OAAS,EAAKA,MAAM2mB,UAC1B,EAAKnC,cACL9wB,IAAgBlG,GAAiBwB,OAEjC,MAAO,SAAP,OAAgBkgB,EAAOn0B,KAAI,WAI/B,GAAI2Y,IAAgBlG,GAAiBY,KAAM,CACvC,IAAM9T,EAAMssC,mBAAmB,EAAKv4B,QAChClN,EAAKylC,mBAAmB1X,EAAO/tB,IAC/B+tB,EAAO/tB,IAAM,EAAKkN,QAAU6gB,EAAO/tB,KACnCA,EAAKylC,mBAAmB,GAAD,OAAI1X,EAAO/tB,GAAE,eAExCuG,EAAQ,GAAH,OAAM,EAAKk9B,OAAM,oBAAYtqC,EAAG,gBAAQ6G,GAAM7G,GAAO6G,EAAKA,EAAK,YACpEpG,EAAOm0B,EAAO/tB,GAAK+tB,EAAO/tB,GAAK,Y,MAC5B,GAAIuS,EAAYmuB,WAAW,SAAU,CACxC,MAAmB3S,EAAO/tB,GAAGyQ,MAAM,KAAI,gBAAhCtX,EAAG,KAAEwH,EAAG,KACf4F,EAAQ,GAAH,OAAM,EAAKk9B,OAAM,oBAAYtqC,EAAG,gBAAQwH,GAAY,YACzD/G,EAAO+G,GAAY,Y,MAEnB4F,EAAQ,GAAH,OAAM,EAAKk9B,OAAM,YAAI1V,EAAOr3B,KAAI,YAAIq3B,EAAO/tB,IAChDpG,EAAOm0B,EAAOn0B,KAElB,IAAM8rC,EAAO1iC,SAAS6tB,cAAc,KAOpC,OANA6U,EAAKzuC,KAAO,EAAK8S,QAAQ5L,QAAQoI,GAAOtP,KACxCyuC,EAAKC,UAAY/rC,EACjB8rC,EAAKE,iBAAiB,SAAS,SAAC7nB,GAC5BA,EAAE/U,iBACF,EAAKe,QAAQxT,KAAKgQ,EACtB,IACOm/B,CACX,EACH,IAGG9sC,KAAK2Z,cAAgBlG,GAAiBwB,QAAWs3B,GACjDltC,EAAQ1B,KAAK,CACTosC,WAAY,QACZC,MAAO,OACPyC,OAAQ,OACRtC,WAAW,EACXC,gBAAgB,EAChBC,aAAc,SAACjrB,GAAU,QACrB,MAAO,MAAP,OAAqC,QAArC,EAAyB,QAAzB,EAAaA,EAAOhgB,aAAK,aAAZ,EAAcskC,QAAQ,UAAE,QAAI,IAAG,OAChD,IAIJ1jC,KAAKitC,qBACL5tC,EAAQ1B,KAAK,CACTosC,WAAY,eACZC,MAAO,eACPyC,OAAQ,OACRpC,aAAc,SAACjrB,GAAU,MACftZ,EAA+CsZ,EAAOxgB,KAC5D,IAAKkH,GAAUA,EAAO6mC,SAAW7mC,EAAOo3B,QAAS,OAAOqM,GAExD,IAAMpU,EAASrvB,EAAO4uB,SAAS,GACzBoY,EAAO1iC,SAAS6tB,cAAc,KAC9B5mB,EAAOjH,SAAS6tB,cAAc,KAWpC,OAVA,EAAA5mB,EAAK6zB,WAAUjuB,IAAG,iBAAI,2CAA2CY,MAAM,OACvExG,EAAK07B,UAAY,aACjBD,EAAKrU,YAAYpnB,GAEjBy7B,EAAKE,iBAAiB,SAAS,SAAC7nB,GAC5BA,EAAE/U,iBACF,EAAK+6B,SAAWhW,EAAO/tB,GACvB,EAAKwH,WAAasG,GAAWigB,EAAOr3B,MACpC,EAAKqrC,eAAgB,CACzB,IACO2D,CACX,IAIRztC,EAAQ1B,KAAK,CACTosC,WAAY,WACZC,MAAO,WACPta,UAAU,EACV0O,KAAM,KACNrnB,QAAQ,EACRkzB,UAAU,EACVC,UAAU,EACVE,gBAAgB,EAChBD,WAAW,EACXrsC,KAAM,eACNusC,aAAY,SAACjrB,GACT,OAAQA,EAAOhgB,OACX,IAAK,SACD,MAAO,SACX,IAAK,YACD,MAAO,YACX,IAAK,WACD,MAAO,WACX,KAAK,KACD,MAAO,QACX,QACI,OAAOggB,EAAOhgB,MAE1B,IAGJC,EAAQ1B,KAAK,CACTosC,WAAY,UAAF,OAAYzc,EAAY,KAClC0c,MAAOuC,EAAyB,QAAU,mBAC1C7c,UAAU,EACV0O,KAAM,OACNrnB,QAAQ,EACRkzB,UAAU,EACVC,UAAU,EACVE,gBAAgB,EAChBD,WAAW,EACXrsC,KAAM,eACNusC,aAAY,SAACjrB,GAAW,QACpB,MAAO,MAAP,OAAqC,QAArC,EAAyB,QAAzB,EAAaA,EAAOhgB,aAAK,aAAZ,EAAcskC,QAAQ,UAAE,QAAI,IAAG,OAChD,IAGJ,IAC6B,EADvBwJ,GAAuB,QAAV,EAAAltC,KAAKimB,aAAK,aAAV,EAAYinB,aAAc,GAAG,WAC7BA,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB3+B,EAAI,QACLy7B,EAAQuC,EACRh+B,EAAK4+B,kBAAiB,UACnB5+B,EAAK6+B,mBAAiB,OAAGz3B,GAAyBC,sBAC3DvW,EAAQ1B,KAAKisC,GAAWr7B,EAAKs7B,OAAQG,G,CACxC,iCAED,IAC6B,EADvBqD,GAAwD,QAAV,EAAArtC,KAAKimB,aAAK,aAAV,EAAYonB,aAAc,GAAG,WAC9DA,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB9+B,EAAI,QACLy7B,EAAQuC,EAAyBh+B,EAAK6+B,kBAAoB7+B,EAAK++B,kBACrEjuC,EAAQ1B,KAAKisC,GAAWr7B,EAAKs7B,OAAQG,G,CACxC,iCACD,OAAO3qC,CACX,EACA4tC,oBAAmB,WACf,IAAMX,EAAkBtsC,KAAK2Z,YAAY9B,MAAM,KAC/C,OAC+B,IAA3By0B,EAAgBp2B,QAChBlW,KAAK8qB,YAAYO,iBAAiBd,GAAAA,2BACjCvqB,KAAK2Z,cAAgBlG,GAAiBkB,UAAY3U,KAAK2Z,cAAgBlG,GAAiBQ,YACxFjU,KAAK4qC,gBAEd,EACA/kC,QAAO,iBACH,QAAkB,QAAV,EAAA7F,KAAKimB,aAAK,aAAV,EAAYpgB,UAAW,IAAIkR,QAAO,SAAChK,GAAgC,OAAMA,EAAEmwB,OAAO,GAC9F,EACAgQ,WAAU,iBACN,OAAiB,QAAV,EAAAltC,KAAKimB,aAAK,aAAV,EAAYinB,aAAc,EACrC,EACAjE,iBAAgB,WACZ,MAAO,EACX,EACAsE,oBAAmB,mBACTjB,GAAkC,QAAhB,EAAAtsC,KAAK2Z,mBAAW,aAAhB,EAAkB9B,MAAM,OAAQ,GACxD,IAAKy0B,EAAgBp2B,OAAQ,MAAO,GAEpC,IAUuC,EAVjCs3B,GAA6D,QAAV,EAAAxtC,KAAKimB,aAAK,aAAV,EAAYpgB,UAAW,GAC1E4nC,EAA4C,CAC9C/Y,SAAU,CAAC,CAAEttB,GAAI,GAAIpG,KAAM,cAAelD,KAAMwuC,EAAgB,KAChE91B,MAAO,EACP0mB,SAAS,EACTyP,SAAS,EACTe,iBAAkB,EAClB9tB,KAAM,GACN+tB,WAAW,IAAIx1B,MAAOslB,WACxB,WACsB+P,GAAe,IAAvC,IAAK,EAAL,qBAAyC,KAA9BI,EAAS,QAChBH,EAAWj3B,OAASo3B,EAAUp3B,MAC9Bi3B,EAAWC,kBAAoBE,EAAUF,iBAAiB,IACxB,EADwB,WACvC1tC,KAAKktC,YAAU,IAAlC,IAAK,EAAL,qBAAoC,KAAzB3+B,EAAI,QACNk/B,EAAWl/B,EAAK4+B,qBACjBM,EAAWl/B,EAAK4+B,mBAAqB,GAEzCM,EAAWl/B,EAAK4+B,oBAAsBS,EAAUr/B,EAAK4+B,oBAAsB,C,CAC9E,iC,CACJ,iCACD,MAAO,GAAP,gBAAWK,EAAgBz2B,QAAO,SAAChK,GAAC,OAAKA,EAAEmwB,OAAO,KAAC,CAAEuQ,GACzD,MCxUyS,M,uBCAxF,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCRnBI,GAAwB,wCAgLhC,OAhLgC,iDACjC,SACIzuB,EACAzF,EACA1a,GACmB,IAS8B,EATjD0oC,EAAW,UAAH,6CAAG,SAELuF,EAAaW,EAAyBC,qBACxC1uB,GAEEiuB,EAAaQ,EAAyBE,qBACxC3uB,GAEEvZ,EAAU,GAAG,WACY5G,EAASyhB,WAAS,IAAjD,IAAK,EAAL,qBAAmD,KAqBlB,EArBtBstB,EAAgB,QACjBtZ,EACFsZ,EAAiBtZ,UAAYsZ,EAAiBtZ,SAASxe,OACjD83B,EAAiBtZ,SACjB,CAAC,CACC1zB,KAAMgtC,EAAiBhtC,KACvBoG,GAAI4mC,EAAiB5mC,GACrBtJ,KAAMqX,MAAMC,QAAQuE,GAAeA,EAAY5B,KAAK,KAAO4B,IAEjE7T,EAEF,CACA0Q,MAAOw3B,EAAiBC,cAAgBD,EAAiBx3B,MACzD0mB,QAAS8Q,EAAiB9Q,QAC1BwQ,iBAAkBM,EAAiBN,kBAAoB,EACvD9tB,KAAMouB,EAAiBpuB,MAAQ,OAC/B8U,SAAAA,EACAiZ,UAAWv3B,GAAON,IAAIk4B,EAAiBjO,SAASlpB,SAC3C4mB,UACLkK,SAAAA,GACF,WACmBjT,GAAQ,IAA7B,IAAK,EAAL,qBAA+B,KAApBS,EAAM,QACbrvB,EAAO,KAAD,OAAMqvB,EAAOr3B,OAAUq3B,EAAOn0B,I,CACvC,qCAC4B,EAD5B,WACkBksC,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB3+B,EAAI,QACL2/B,EACFF,EAAiBG,eAAe5/B,EAAK8jB,MACnC+b,GACDJ,EAAiBK,0BAA4B,CAAC,GAC3C9/B,EAAK8jB,OACJ,CAAC,EACN6b,GACApoC,EAAOyI,EAAK6+B,mBACRc,EAAqB3/B,EAAK6jB,QAAU,EACxCtsB,EACIyI,EAAK6+B,kBACLz3B,GAAyBC,sBACzBw4B,EAA0B7/B,EAAK6jB,QAAU,OAE7CtsB,EAAOyI,EAAK6+B,mBAAqB,EACjCtnC,EACIyI,EAAK6+B,kBACLz3B,GAAyBC,sBACzB,K,CAEX,iCACD,GAAIy3B,EAAWn3B,OAAQ,KACoC,EADpC,WACO83B,EAAiBxQ,cAAY,IAAvD,IAAK,EAAL,qBAAyD,KAA9C8Q,EAAW,QACZC,EAASn4B,GAAON,IAAIw4B,EAAY9tB,WAAW/S,OAC7CkI,GAAyBE,gBAE7B/P,EAAO,MAAD,OAAOyoC,IAAYD,EAAY9S,QACrC11B,EAAO,MAAD,OACIyoC,GAAM,OAAG54B,GAAyBC,uBACxC04B,EAAYE,a,CACnB,iC,CAEL3oC,EAAQlI,KAAKmI,E,CAChB,iCAED,MAAO,CAAEonC,WAAAA,EAAYG,WAAAA,EAAYxnC,QAAAA,EACrC,GAAC,kCAED,SACIuZ,GAEA,GAAIA,EAAO7I,cAAgBvG,GAAAA,MAAmB,MAAO,GAKrD,IAHA,IAAM4G,EAAWR,GAAON,IAAIsJ,EAAOxI,UAC7BC,EAAST,GAAON,IAAIsJ,EAAOvI,QAC3BuB,EAAQ,GAENq2B,EAAWr4B,GAAOQ,GACtB63B,EAASC,SAAS73B,GAClB43B,EAAWA,EAASx3B,IAAI,EAAG,QAE3BmB,EAAMza,KAAK8wC,GAGf,OADAr2B,EAAMza,KAAKkZ,GACJuB,EAAMpL,KAAI,SAACs7B,GACd,IAAMqG,EAAUrG,EAAK76B,OACjBkI,GAAyBE,gBAEvBwc,EAAOiW,EAAK76B,OAAO,QACnB2kB,EAAQkW,EAAK76B,OAAO,MACpBupB,EAAMsR,EAAK76B,OAAO,MACxB,MAAO,CACHo8B,OAAQvB,EAAK76B,OAAO,cAEpB4kB,KAAAA,EACAD,MAAAA,EACA4E,IAAAA,EAEA4X,aAAc,WAAF,OAAaD,GACzBvB,kBAAmB,MAAF,OAAQuB,GACzBrB,kBAAiB,aACPqB,GAAO,OAAGh5B,GAAyBC,sBAErD,GACJ,GAAC,kCAED,SACIwJ,GAEA,GAAIA,EAAO7I,cAAgBvG,GAAAA,QAAqB,MAAO,GAQvD,IAPA,IAAM4G,EAAWR,GAAON,IAAIsJ,EAAOxI,UAC7BC,EAAST,GAAON,IAAIsJ,EAAOvI,QAC3Bg4B,EAAYz4B,GAAON,IAAIsJ,EAAOxI,UAAUS,QAAQ,SAChDy3B,EAAU14B,GAAON,IAAIsJ,EAAOvI,QAAQQ,QAAQ,SAE5C03B,EAAQ,GACVzG,EAAOuG,EACF31B,EAAI,GAAIovB,EAAK0G,QAAQF,KAAY51B,EAAG,CACzC,IAAM+1B,EAAY3G,EAAK76B,OAAO,YACxByhC,EAAa5G,EAAKnxB,MAAM,SAE1Bg4B,OAA6B,EAC7Bv4B,EAASo4B,QAAQ1G,EAAM,SAEvB6G,EAAwBv4B,EAASnJ,OAAO,MAG5C,IAAI2hC,OAAmB,EACnBv4B,EAAO63B,SAASQ,EAAY,SAE5BE,EAAsBv4B,EAAOpJ,OAAO,MAGxC,IAAIo8B,OAAc,EAGdA,EAFAsF,GAAyBC,EAEnB,UACCD,EAAqB,YAAIC,EAAmB,YAAIH,GAChDE,EAEE,GAAH,OAAMA,EAAqB,YAC7BD,EAAWzhC,OAAO,KACtB,YAAIwhC,GACGG,EAEE,GAAH,OACF9G,EAAK76B,OAAO,KAChB,YAAI2hC,EAAmB,YAAIH,GAGlBA,EAGb,IAAM1gC,EAAO,CACTs7B,OAAAA,EAEAxX,KAAMiW,EAAK76B,OAAO,QAClB2kB,MAAOkW,EAAK76B,OAAO,MAEnBmhC,aAAc,aAAF,OAAe11B,GAC3Bi0B,kBAAmB,QAAF,OAAUj0B,GAC3Bk0B,kBAAmB,QAAF,OAAUl0B,IAE/B61B,EAAMpxC,KAAK4Q,GACX+5B,EAAOA,EAAKrxB,IAAI,EAAG,I,CAEvB,OAAO83B,CACX,KAAC,EAhLgC,GCiPrC,IACA3wC,MAAAA,CAAAA,MACAoI,MAAAA,SAAAA,GACA,8BACA,EACAjC,WAAAA,CACA8qC,qBAAAA,GACAC,mBAAAA,GACAC,cAAAA,GACAC,gBAAAA,GACAC,gBAAAA,IAEA7wC,KAAAA,WACA,OACA8wC,WAAAA,UACApc,aAAAA,CAAA6F,OAAAA,GAAAyD,SAAAA,IACA+S,2BAAAA,CAAAA,EACAC,kBAAAA,EACAC,oBAAAA,EACAC,mBAAAA,EACAC,eAAAA,EACAC,eAAAA,EACAC,iBAAAA,EACAp8B,cAAAA,GACAq8B,aAAAA,GACAC,cAAAA,GAAAA,MAAAA,OAAAA,QACAld,cAAAA,GAAAA,MAAAA,KAAAA,EAAAA,UAAAA,OAAAA,QACAmd,sBAAAA,CAAAA,EACAC,qBAAAA,CAAAA,EACA5c,cAAAA,KACA+J,aAAAA,GACA8S,YAAAA,GACA15B,SAAAA,KACAopB,QAAAA,KACAzM,aAAAA,CACArb,aAAAA,KACAO,iBAAAA,KACAlC,YAAAA,GAAAA,QACAgC,YAAAA,GACAoB,YAAAA,gBACAguB,SAAAA,YAEA4I,WAAAA,CACAr4B,aAAAA,KACAyB,YAAAA,GACApD,YAAAA,GAAAA,SAEAi6B,aAAAA,KACA9c,QAAAA,CACAC,cAAAA,GAGA,EACA5zB,QAAAA,WACA,wBACA,gCACA,8BACA,EACA+B,MAAAA,CACAkwB,GAAAA,CACAhwB,QAAAA,SAAAA,GACA,aACA,qDACA,2CAEA,EACAgG,WAAAA,GAEAurB,aAAAA,CACAvxB,QAAAA,SAAAA,GACA,IACA,wCACA,0BACA,EACAgG,WAAAA,EACAjG,MAAAA,GAEA2tC,WAAAA,CACA1tC,QAAAA,WACA,yCACA,IAGAU,UAAAA,EAAAA,EAAAA,GAAAA,CACAqwB,kBAAAA,WACA,kDACA,EACAD,4BAAAA,WACA,4BACA,kEADA,CAEA,EACAI,kBAAAA,WACA,gCACA,4DACA,yDACA,+BACA,6CAAAuI,QAAAA,IACAgV,CACA,EACAC,yBAAAA,WACA,wEACA,yDAEA,iDACA,kBACA,kDAEA,yBACA,sDAEA,qBACA,kDAEA,2BACA,wDAEA,4BACA,yDAEA,iDACA,EACAC,WAAAA,WAAA,WACA,6CACA,kCAEA,kEAEA,IACAviB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA8xC,mBAAAA,EAAAA,GAAAA,IAAAA,wBAAAA,WAAA,qKACA,GAAAC,EAAAA,GAAAA,GACAA,EAAAA,CAAA,gDAIA,OAHAtxB,EACA,4BACA,wBACA,+BACAD,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAqoB,SAAAA,SAAApoB,OAAAA,KAAA,OAqBA,OArBAuxB,EAAAA,EAAAA,KACAC,EAAAA,GAAAA,EAAAA,CACAvU,YAAAA,YAAAA,KAAAA,WAAAA,gBAAAA,YACAG,WAAAA,CAAAA,KAAAA,cAEAqU,EACA,4BACA3U,GAAAA,EAAAA,CACAG,YAAAA,gBACAG,WAAAA,CAAAA,WACAD,YAAAA,CAAAA,cACAD,WAAAA,YAEA,CAAAG,SAAAA,GAAAzD,OAAAA,IAEA,kFACA6X,EAAAA,CAAApU,SAAAA,GAAAzD,OAAAA,KAEA,mBACAA,OAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SACAyD,SAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,YACA,UAEApd,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAqxB,GAAAA,CAAAA,EAAAA,CAAAlJ,SAAAA,WACAlqC,EAAAA,aACAA,EAAAA,kBACA,QAKA,GATAwzC,EAAAA,EAAAA,KAKAC,EAAAA,GAAAA,EAAAA,aACA,mBACA/X,OAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SACAyD,SAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,aAGA,0FACAt3B,QAAAA,IAAAA,CACAga,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAqoB,SAAAA,WAAApoB,OAAAA,KACAC,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAqxB,GAAAA,CAAAA,EAAAA,CAAAlJ,SAAAA,aACAlqC,EAAAA,aACAA,EAAAA,oBAEA,iCAPA0zC,EAAAA,EAAAA,GAAAC,EAAAA,EAAAA,GAQAC,EAAAA,GAAAA,EAAAA,CACA7U,YAAAA,iBACAC,WAAAA,WACAC,YAAAA,CAAAA,aACAC,WAAAA,CAAAA,KAAAA,cAEA2U,EAAAA,GACAF,EACA,iBACA,WACA,WAEA,mBACAjY,OAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GACA+X,EAAAA,SAAAA,EAAAA,GAAAA,GACAH,EAAAA,SAAAA,EAAAA,GAAAA,GACAC,EAAAA,SAAAA,EAAAA,GAAAA,GACAK,EAAAA,SAAAA,EAAAA,GAAAA,GACAC,EAAAA,SAEA1U,SAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GACAsU,EAAAA,WAAAA,EAAAA,GAAAA,GACAH,EAAAA,WAAAA,EAAAA,GAAAA,GACAC,EAAAA,WAAAA,EAAAA,GAAAA,GACAK,EAAAA,WAAAA,EAAAA,GAAAA,GACAC,EAAAA,YAEA,wBAEA,mBACAnY,OAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SACAyD,SAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,YACA,QAEA,mCACA,oEAEA2U,EAAAA,GAAAA,MACAC,EAAAA,GAAAA,MAAAA,KAAAA,EAAAA,UACA,sEACA,qHACA,qBACA,sIACA,uBACA,wIACA,qBACA,sIACAC,EAAAA,EAAAA,UAAAA,MAAAA,SAAAA,GAAA,OACAF,EAAAA,OAAAA,GAAAA,IAAAA,EAAAA,WAAAA,QAAA,IAEA,yFACA,SArGAX,EAAAA,GAAA,wCAAAA,IAsGA90B,kBAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,WAAA,kIACArM,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,MAAAA,SAAAA,GAAA,kGACA,SAFAqM,IAAA,wCAAAA,IAGA41B,0BAAAA,EAAAA,GAAAA,IAAAA,2BAAAA,WAAA,sHACA,2FACAjiC,EAAAA,EAAAA,KAAAA,IACAzF,gCACA4C,MAAAA,SAAAA,GAAA,6BAFA,wDAIA,8EAEA,SARA8kC,IAAA,wCAAAA,IASAC,yBAAAA,EAAAA,GAAAA,IAAAA,0BAAAA,WAAA,sHACA,2FACAliC,EAAAA,EAAAA,KAAAA,IACAzF,yCACA4C,MAAAA,SAAAA,GAAA,wBAFA,uDAIA,6EAEA,SARA+kC,IAAA,wCAAAA,IASAC,iBAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,yIAEAC,OAAAA,QAAAA,IAAAA,GAAAA,EAAAA,OAAAA,CAAA,gDACA,GAAAzyB,EAAAA,GAAAA,KAAAA,YACAA,EAAAA,CAAA,gDAIA,OAFA1F,EAAAA,EAAAA,KAAAA,SAAAA,GAAA,2BAEA,kDAEA4F,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAF,GAAAA,CAAAA,EAAAA,CACAzF,YAAAA,EACA4F,OAAAA,CAAAA,GAAAA,QAAAA,GAAAA,UACA,QAJAuxB,EAAAA,EAAAA,KAMA,wGAEApxC,EAAAA,EAAAA,IAAAA,wCAAA,0DAEA,SApBAkyC,EAAAA,GAAA,wCAAAA,IAqBAE,uBAAAA,WACA,qCACA,oBACA/kB,cAAAA,EAAAA,GAAAA,GAAAA,KAAAA,GAAAA,OAAAA,gBAEA,4BACA,EACAglB,kBAAAA,SAAAA,GACA,8BACA,2CACA,oCACA,EACA3e,qBAAAA,WACA,6CACA,+BAEA,qCAEA,EACAI,qBAAAA,SAAAA,GAAA,uBAAA0J,EAAAA,EAAAA,QACA,EACA,+DAEA,kFAEA,EACA8U,mBAAAA,SAAAA,GACA,IACA,8BACA,uCACA,EACA3e,sBAAAA,SAAAA,GACA,qBAAAzc,EAAAA,EAAAA,SAAAC,EAAAA,EAAAA,OACA,YACA,+BACA,QACA,gCACA,iCACA,6BACA,0BACA,IC1jBgQ,M,uBCA5C,GAAe,KCQ/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvB4B4D,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,EAACE,MAAO,Y,OAAyB,EAAM,WAAC,CAAW,iB,MAAC,CAAc,oCAAqB,iBAAIyC,SAAS,GAACC,mBAAY,K,CAAsB,QAAU,CAAG,2BAAE,MAAMvC,CAAyIL,SAAM,K,CAAwD,OAAU,GAACE,EAAM,GAAC,kCAA8Bk0C,IAAWl0C,EAAI+sB,GAAAA,EAAAA,gBAAwB,2CAAC,OAAK/sB,MAAIm0C,EAAAA,GAAAA,wCAAuDr0C,SAAM,0E,CAA6C,gBAAcq0C,kBAAcC,EAAAA,kBAAgB,C,MAAC,CAAU,wCAAG,QAAWp0C,EAAIm0C,cAAcE,iBAA8JpnC,MAAW,MAAwB,OAAS,iJAAG,YAAC,CAACnN,SAAM,WAAC,OAASE,KAAmD,OAAI,OAAO,WAAc,oBAACF,cAAM,OAAyD,mBAAkB,CAAuE,OAAKE,MAAIs0C,EAAAA,GAAAA,yCAAwDx0C,SAAM,2E,CAA8C,iBAAcw0C,kBAAeF,EAAAA,kBAAgB,C,MAAC,CAAU,yCAAG,QAAWp0C,EAAIm0C,eAAcE,iBAA+JpnC,MAAW,MAAwB,OAAS,kJAAG,YAAC,CAACnN,SAAM,WAAC,OAASE,KAAmD,OAAI,OAAO,WAAc,oBAACF,cAAM,OAAwD,mBAAkB,CAAsE,OAAKE,MAAIu0C,EAAAA,GAAAA,wCAAuDz0C,SAAM,0E,CAA6C,gBAAcy0C,kBAAcH,EAAAA,kBAAgB,C,MAAC,CAAU,wCAAG,QAAWp0C,EAAIm0C,cAAcE,iBAA8JpnC,MAAW,MAAwB,OAAS,iJAAG,YAAC,CAACnN,SAAM,WAAC,OAASE,KAAmD,OAAI,OAAQyC,EAAG,6BAAgBC,cAAkB,OAAQ,OAAQ1C,EAAIoR,eAAG,C,YAAgC,O,MAA8B,CAAkD,2CAAI3O,aAAG,iBAAqBC,QAAY,KAAM,oC,CAAQ,OAAmB0Z,C,YAA6B,OAAkB,OAAI3Z,OAAG,qCAAoCC,cAAkB,MAAQ,qCAAuB,C,YAA0B,OAAuC,MAAC,CAAG,QAAC,qCAAC,iBAAQ,EAAS2Z,kB,GAA2C,CAAE,kBAAC7a,OAAM,0BAACH,G,MAA6D,CAAyB,MAAC,uBAACK,SAAU,SAAC,GAAsB,wBAAIe,EAAoB3C,WAAM,0BAA0B,mBAAC6C,MAAG,CAAC,KAAO,EAAI,eAAoB,GAAE3C,CAAqFF,MAAM,sBAAgE,aAAvC,uBAAeitB,YAAwB,+B,MAAC,CAAwB,oBAAG,SAAMynB,EAAAA,YAAqB54B,aAA4D9b,eAAM,aAAgE,aAAvC,uBAAeitB,YAAwB,+B,MAAC,CAAwB,oBAAG,SAAMynB,EAAAA,YAAqB54B,aAAoE9b,eAAM,aAAgE,kBAAvC,uBAAeitB,YAAwB,kC,MAAC,CAAwB,oBAAG,SAAMynB,EAAAA,YAAqB54B,aAAoE9b,eAAM,aAAgE,kBAAvC,uBAAeitB,YAAwB,kC,MAAC,CAAwB,oBAAG,SAAW,EAAG,YAAO,aAAiB,eAAC,aAA+B,gCAAG,GAAG,CACj3H,+BAGD,E,QCJI3rB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,0BAA0B,CAAC3C,MAAM,CAAC,MAAQE,EAAIkoB,MAAM,QAAUloB,EAAIc,QAAQ,SAAWd,EAAI0O,SAAS,KAAO1O,EAAID,MAAM4I,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,WAAWoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,CAAC9S,EAAG,cAAc,CAAC3C,MAAM,CAAC,GAAI,UAAIE,EAAIy0C,YAAW,qBAAal/B,EAAK+F,aAAc,CAACtb,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAKgiB,aAAa,OAAO,MACvX,EACIn3B,GAAkB,GCFgEsC,GAAAA,WAAkB,IAAI,EAAKkqC,KAA2Bp8B,EAAI,EAAC,SAAe,OAAM,iBAAQ,CAAC1Q,YAAM,Q,CAAC,aAA2T,OAAnT,EAAW,Y,KAAC,iBAAU,QAAC6C,MAAG,CAAC,MAAQ,Y,KAAiB,IAAuB,IAAIF,MAAG,SAAS,GAAC3C,OAAM,aAAC,IAAY,CAACE,EAAG,IAAI,CAA8HF,MAAM,CAAC,KAAO,K,CAAiC,yBAAe,gF,MACre40C,CACJ,cAAE,kBAAC/rC,eAAgByH,CAAK5N,oBAAa,gB,YAAiE,O,iBAAU,WAAC,MAAM,CAACrC,EAAG,MAA4G,gBAAE,MAAMA,CAA2BuC,MAAW,UAAmB1C,KAAO,KAA8C,GAAC,0BAAM,6BAAI,0CAAY,GAAzP,QAAmBA,CAAAA,EAAIG,EAAAA,EAAG,CAAgDL,MAAM,CAAC,KAAO,KAAoB,uDAA8I8I,E,OAAc2M,G,KAAwC,Y,GAAa,SAAC,gBAAG,6BAAI,S,QAAgJzV,kB,YAAeyV,G,IAAuB,IAAUA,K,MAAsB,GAAO,GAAC,8EAAE,OAAIvV,MAAO,EAAIA,kBAAqD,2BAAG,YAAgC,WAAkB,4C,IAAgF,4BAAE,GAAC,YAACwC,IAAG,SAA4B,MAAC,WAAkB,kD,IAAiF,6BAAG,GAAC,SAAS,GAAM,IAAC,SAC3gC,oEACGpC,IAEJ,MAASgB,M,UCNIuzC,I,SAAU,wCA2BlB,OA3BkB,iCACZ,SAAUC,EAAkB3xC,GAC/B,IAAI4xC,EAAa,+BAEjBD,EAAK15B,SAAQ,SAAC45B,GACV,IAAMC,EAAMD,EAAS96B,KAAK,KAC1B66B,GAAcE,EAAM,MACxB,IAEA,IAAMC,EAAaC,UAAUJ,GACvB9F,EAAO1iC,SAAS6tB,cAAc,KACpC6U,EAAKmG,aAAa,OAAQF,GAC1BjG,EAAKmG,aAAa,WAAYjyC,GAC9BoJ,SAASgZ,KAAKqV,YAAYqU,GAC1BA,EAAK5N,QACL90B,SAASgZ,KAAK8vB,YAAYpG,EAC9B,GAAC,wBACM,SAAWqG,EAAanyC,GAC3B,IAAMoyC,EAAOhtC,KAAKC,UAAU8sC,GACtBE,EAAQ,IAAI70B,KAAK,CAAC40B,GAAO,CAAEt1C,KAAM,6BACjC0R,EAAM8jC,IAAIC,gBAAgBF,GAC1BvG,EAAO1iC,SAAS6tB,cAAc,KACpC6U,EAAKmG,aAAa,OAAQzjC,GAC1Bs9B,EAAKmG,aAAa,WAAYjyC,GAC9BoJ,SAASgZ,KAAKqV,YAAYqU,GAC1BA,EAAK5N,QACL90B,SAASgZ,KAAK8vB,YAAYpG,EAC9B,KAAC,EA3BkB,IA6BvB,OAAmB4F,GCwBnB,IACAt0C,MAAAA,CACA6nB,MAAAA,MACAxZ,SAAAA,OACA3O,KAAAA,OACA6sC,WAAAA,SAEAjoC,SAAAA,CACArD,QAAAA,WACA,OACA,CAAAS,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,OAAAswB,UAAAA,GACA,CAAA5vB,KAAAA,KAAAA,GAAAA,4CAAAV,MAAAA,aAAAswB,UAAAA,GACA,CAAA5vB,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,mBAAAswB,UAAAA,GACA,CAAA5vB,KAAAA,KAAAA,GAAAA,yCAAAV,MAAAA,oBAAAswB,UAAAA,IAEA,QACA,GAEA5wB,QAAAA,CACAysC,UAAAA,WACA,OACA,CAAAzrC,KAAAA,KAAAA,GAAAA,4CAAAV,MAAAA,cACA,CAAAU,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,oBACA,CAAAU,KAAAA,KAAAA,GAAAA,yCAAAV,MAAAA,sBAGA,yBACAC,EAAAA,QAAAA,CAAAS,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,qBACA,qBACAC,EAAAA,QAAAA,CAAAS,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,gBACA,sBACAC,EAAAA,QAAAA,CAAAS,KAAAA,KAAAA,GAAAA,sCAAAV,MAAAA,gBAGA,2CACA,0EACAo0C,EAAAA,QAAAA,EAAAA,KAAAA,SAAAA,GAAA,kBACAd,GAAAA,UAAAA,EAAAA,sBAAAA,KAAAA,KAAAA,OACA,IC3F8Q,M,sBCA/C,GAAe,KCQ1O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCXhC,IACAnuC,WAAAA,CAAAkvC,sBAAAA,IACAr1C,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAkO,SAAAA,OACA+lC,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,YAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,aC3BgR,MCQ5Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,GCnBgE,W,IAAI,OAAqB,aAAC,OAAM,QAA6BV,MAAM,CAAC,KAAO,GAAuB,MAAQE,gBAAoC,gCAAC2C,MAAG,CAAC,MAAQ,oB,MAAwB3C,EAAIiG,e,cAA0C,I,GAAW,CAAC,kBAAM,OAAC,EAAU,MAAK,iBAAiB,uBAACvD,YAAkB,IAAc,KAAoB5C,EAAK,MAAC,Q,YAASE,O,YAAyBA,CAAa,YAAYoR,Q,MAAoD,CAAc,QAAY,MAAM,OAAC,QAAY,SAAS,WAAe,uCAAa,QAAkB,YAAG,YAAC,OAAC,aAAQ,Q,eAA4BnL,a,eAAuCoW,I,GAAS,CAAC,kBAAM,OAAC,iBAAmB,+BAAM,OAAC,IAA0B,KAAwE,qBAAS,C,MAAC,CAAc,cAAe,OAAK,eAAUs5B,GAAiB,MAAO31C,EAAIqB,GAAAA,uCAA4C,QAAG,SAAC,GAAC,eAAQ,K,IAAiB,EAAOrB,iB,KAA2Cqc,UAARvD,EAAQuD,MAAAA,OAAAA,QAAAA,Q,GAAS,CAAC,kBAAKrc,OAAIc,EAAO,MAAK,iBAAsB,uBAAC4B,OAAY,IAAc,KAAoC,kBAAG,YAAU,OAC7qC,OACGtC,cAAkB,GAEtB,MAAe,a,kBC6Cf,IACAoG,WAAAA,CAAAovC,wBAAAA,IACAv1C,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,QACA60C,iBAAAA,OACAE,eAAAA,CACA91C,KAAAA,MACAS,QAAAA,WAAA,iEAGAK,KAAAA,WACA,OACAi1C,SAAAA,CACA,CAAAz0C,MAAAA,QAAAU,KAAAA,4BACA,CAAAV,MAAAA,MAAAU,KAAAA,6BACA,CAAAV,MAAAA,KAAAU,KAAAA,2BACA,CAAAV,MAAAA,KAAAU,KAAAA,sBAGA,GCrEsR,M,uBCA/C,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BX,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,0BAA0B,CAAC3C,MAAM,CAAC,MAAQE,EAAIkoB,MAAM,QAAUloB,EAAIc,QAAQ,SAAWd,EAAI0O,SAAS,KAAO1O,EAAID,MAAM4I,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,WAAWoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,CAAC9S,EAAG,cAAc,CAAC3C,MAAM,CAAC,GAAI,UAAIE,EAAIy0C,YAAW,qBAAal/B,EAAK6F,aAAc,CAACpb,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAKy1B,aAAa,OAAO,MACvX,EACI5qC,GAAkB,GCUtB,IACAoG,WAAAA,CAAAkvC,sBAAAA,IACAr1C,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAkO,SAAAA,OACA+lC,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,YAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,aC3BgR,MCQ5Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BY,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,0BAA0B,CAAC3C,MAAM,CAAC,MAAQE,EAAIkoB,MAAM,QAAUloB,EAAIc,QAAQ,SAAWd,EAAI0O,SAAS,KAAO1O,EAAID,MAAM4I,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,WAAWoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,CAAC9S,EAAG,cAAc,CAAC3C,MAAM,CAAC,GAAI,UAAIE,EAAIy0C,YAAW,0BAAkBl/B,EAAK0I,kBAAmB,CAACje,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAK8hB,kBAAkB,OAAO,MACtY,EACIj3B,GAAkB,GCUtB,IACAoG,WAAAA,CAAAkvC,sBAAAA,IACAr1C,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAkO,SAAAA,OACA+lC,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,YAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,kBC3BqR,MCQjR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BY,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,0BAA0B,CAAC3C,MAAM,CAAC,MAAQE,EAAIkoB,MAAM,QAAUloB,EAAIc,QAAQ,SAAWd,EAAI0O,SAAS,KAAO1O,EAAID,MAAM4I,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,WAAWoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,CAAC9S,EAAG,cAAc,CAAC3C,MAAM,CAAC,GAAI,UAAIE,EAAIy0C,YAAW,0BAAkBl/B,EAAK8F,kBAAmB,CAACrb,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAKsf,kBAAkB,OAAO,MACtY,EACIz0B,GAAkB,GCUtB,IACAoG,WAAAA,CAAAkvC,sBAAAA,IACAr1C,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAkO,SAAAA,OACA+lC,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,YAEAT,KAAAA,CACAA,KAAAA,OACAS,QAAAA,kBC3BqR,MCQjR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB5BY,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCkBT21C,GAAiC,SAAwHC,EAAsCC,EAA8BC,GACtO,IAAM9a,EAAmB,GACnB+a,EAA2D,CAC7Dt1C,KAAM,GACN6mB,MAAO,WACPwX,gBAAiB,UACjB1C,YAAa,EACbH,YAAa,SAEX+Z,EAA2D,CAC7Dv1C,KAAM,GACN6mB,MAAO,WACPwX,gBAAiB,UACjB1C,YAAa,EACbH,YAAa,SAEXwC,EAAsD,CAACsX,EAAiBC,GAW9E,OAVAJ,EAAcrf,SAAS0J,MAAK,SAACrO,EAAGC,GAAC,OAAKxf,KAAK4jC,IAAIpkB,EAAEiiB,YAAczhC,KAAK4jC,IAAIrkB,EAAEkiB,WAAW,IAAEtI,MAAM,EAAG,IAAI1wB,SAAQ,SAACkM,GACzG,GAAqB,IAAjBA,EAAE8sB,WAAN,CACA,IAAMjjC,EAAaglC,EAAO7uB,GACpBgmB,EAAW8I,EAAK9uB,GAChBkvB,EAAgBlvB,EAAE8sB,WAAa,EAAI9sB,EAAE8sB,WAAa,EAClDqC,EAAgBnvB,EAAE8sB,WAAa,EAAI9sB,EAAE8sB,WAAa,EAClDsC,EAAW,CAAEnC,kBAAmBjtB,EAAEitB,kBAAmBD,iBAAkBhtB,EAAEgtB,iBAAkBhH,SAAAA,GACjG+I,EAAgBt1C,KAAKjB,MAAK,QAAE6oB,EAAG6tB,EAAe3W,EAAG1uB,GAAeulC,IAChEJ,EAAgBv1C,KAAKjB,MAAK,QAAE6oB,EAAG8tB,EAAe5W,EAAG1uB,GAAeulC,GAPlC,CAQlC,IACO,CACHpb,OAAAA,EACAyD,SAAAA,EAER,EAEa4X,GAAwC,SAACT,GAClD,OAAOD,GAA+BC,GAAe,SAAAz7B,GAAC,OAAIA,EAAEywB,WAAW,IAAE,SAAAzwB,GAAC,OAAIA,EAAEa,SAAS,GAC7F,EAEas7B,GAAwC,SAACV,GAClD,OAAOD,GAA+BC,GAAe,SAAAz7B,GAAC,OAAIA,EAAEgd,WAAW,IAAE,SAAAhd,GAAC,OAAIA,EAAEe,SAAS,GAC7F,EAEaq7B,GAA6C,SAACX,GACvD,OAAOD,GAA+BC,GAAe,SAAAz7B,GAAC,OAAIA,EAAE8c,gBAAgB,IAAE,SAAA9c,GAAC,OAAIA,EAAE0D,cAAc,GACvG,EAEa24B,GAA6C,SAACZ,GACvD,OAAOD,GAA+BC,GAAe,SAAAz7B,GAAC,OAAIA,EAAEsa,gBAAgB,IAAE,SAAAta,GAAC,OAAIA,EAAEc,cAAc,GACvG,EAEA,YAAgB6nB,EAA8BxjC,EAAmByjC,GAC7D,IAAQ5T,EAAiB7vB,EAAjB6vB,aACFxsB,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACtC9yB,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACLm3C,UAAW,IACXxa,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAEJvJ,YAAaoI,GAErB16B,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,IAGfwB,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAA6BpG,EAAQp+B,KACrCykC,EAA+BD,EAAO9vB,EAAKgwB,WACjD,MAAO,CAAC,cAAD,OACWl3B,EAAei3B,EAAW8O,iBAAkB7kB,IAAa,wBACtDlhB,EAAei3B,EAAW+O,kBAAmB9kB,IAAa,sBAC5D+V,EAAW7c,EAAI,EAAI,IAAM,IAAE,OAAGpa,EAAei3B,EAAW7c,EAAG8G,IAGlF,GAEJkV,KAAM,UAGd0B,YAAY,EACZC,qBAAqB,EACrBC,OAAQ,CACJ1G,EAAG,CACC5/B,KAAM,WACNwmC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX4lC,SAAS,GAEb7d,EAAG,CACC8d,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEX96B,MAAO,CACH1G,KAAM,SAAF,OAAWwtB,EAAY,KAC3B7uB,MAAOgjC,EACPvJ,SAAS,GAEbA,SAAS,EACTmM,SAAS,IAGjBnG,QAAO,SAACjU,EAAG,EAAavb,GAAK,oBAAjBwzB,EAAS,KACjB,GAAKzkC,EAAQo3C,QAAb,CACA,IAAM1S,EAAgBzzB,EAAM9P,KAAKg+B,SAASsF,EAAUrI,cAC9Chb,EAA2BsjB,EAAcvjC,KAAKsjC,EAAU3qB,OAC9D9Z,EAAQo3C,QAAQh2B,EAAOssB,SAHK,CAIhC,EACAtH,YAAa,CACTC,WAAW,EACXtB,KAAM,SAEVuB,QAAO,SAAClgC,EAAO,GAAS,oBAAR+X,EAAO,KACfooB,EAAY,UAChB,GAAIpoB,EAAS,CACT,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cACxCmD,IACAgH,EAAY,U,CAGnBngC,EAAMogC,OAAOplB,OAAuB/d,MAAMy4B,OAASyK,CACxD,GAEJ/K,QAAS,CAACP,MAEd,OAAOhqB,CACV,ECnJD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLQ,KAAM8C,OACNJ,OAAQF,QAEVqD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACHC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAE5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAClB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB6tB,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBAEV,SAAbqB,EAAEhX,QACFujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,eACzB6tB,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,sBAEpC4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG5C43B,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY7sB,EAAEhX,QAAU,QAE3CwjC,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQomC,GAAqBjQ,EAAOzlC,MAAO,CAC7CkuB,aAAcA,EAAaluB,MAC3By1C,QAAO,SAAC1J,GACN,IAAM4J,EAA0B,CAAE5J,SAAAA,GAClCxG,EAAK,QAASoQ,EACd,GAEJ7b,EAAO95B,MAAMgI,IACfsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QArCiB,CAsCzB,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACRL,GACF,KACAljC,EAAAA,EAAAA,QACE,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEpB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EACzB,EACAljC,MAAO,CACL,sBAAuB,CACrBE,QAAO,WACLhC,KAAKglC,aACP,MC5FyS,MCO3S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCGhC,IAAe1gC,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,wBAClB,EACA5K,WAAY,CACRywC,wBAAAA,GACAC,8BAAAA,GACAC,wBAAAA,GACAC,6BAAAA,GACAC,6BAAAA,GACAC,cAAAA,IAEJ3yC,UAAU,QACN4yC,UAAS,WACL,OAAOt1C,KAAK8qB,YAAY6C,uBAClBvX,GAAON,IAAI9V,KAAK8qB,YAAY6C,wBAAwBlgB,OAAO,gBAC3D2I,GAAON,MAAMrI,OAAO,eAC9B,IACG2gB,EAAAA,GAAAA,IAAU5C,KAEjBzrB,QAAO,WAEHC,KAAK0zC,iBAAmBt9B,GAAON,IAAI9V,KAAK8qB,YAAY6C,wBAAwBlgB,OAAO,cACnFzN,KAAKuyC,qBAAqB17B,OAAS7W,KAAKuoB,OAAOgtB,MAAM1+B,OAC/CT,GAAON,IAAI9V,KAAKuoB,OAAOgtB,MAAM1+B,QAC7B7W,KAAK8qB,YAAY6C,uBACjBvX,GAAON,IAAI9V,KAAK8qB,YAAY6C,wBAAwB9W,SACpDT,GAAON,MAAMe,SACnB7W,KAAKw1C,yBACLx1C,KAAKy1C,kBACT,EACA72C,KAAI,WACA,MAAO,CACH82C,kBAAmB,EACnBxD,cAAe,CACXE,kBAAmB,EACnBD,iBAAkB,EAClBF,WAAY,EACZ0D,gBAAiB,GAErBtD,eAAgB,CACZD,kBAAmB,EACnBD,iBAAkB,EAClBF,WAAY,EACZ0D,gBAAiB,GAErBrD,cAAe,CACXF,kBAAmB,EACnBD,iBAAkB,EAClBF,WAAY,EACZ0D,gBAAiB,GAErBxF,cAAe/5B,GAAON,MAAMrI,OAAO,QACnCwlB,cAAe7c,GAAON,MAAMmB,KAAK,EAAG,UAAUxJ,OAAO,QACrDimC,iBAAkB,KAClBkC,uBAAwB,EACxBC,uBAAwB,EACxBC,YAAa,GACbC,eAAgB,GAChBvY,aAAc,GACdwY,YAAa,GACbp/B,SAAU,KACVq/B,aAAc,CAAEC,YAAa,IAC7BC,cAAe,CAAEhd,OAAQ,GAAIyD,SAAU,IACvC2V,qBAAsB,CAClB54B,YAAa3Z,KAAKuoB,OAAOgtB,MAAM57B,aAAe,WAC9Cy8B,OAAQp2C,KAAKuoB,OAAOgtB,MAAMa,QAAU,MACpCv/B,OAAQT,GAAON,MAAMe,UAGjC,EACA/U,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAAC+F,GACCA,IACDA,EAAIwtC,MAAM57B,cAAa3Z,KAAKuyC,qBAAqB54B,YAAc5R,EAAIwtC,MAAM57B,aACzE5R,EAAIwtC,MAAMa,SAAQp2C,KAAKuyC,qBAAqB6D,OAASruC,EAAIwtC,MAAMa,QAC/DruC,EAAIwtC,MAAM1+B,SAAQ7W,KAAKuyC,qBAAqB17B,OAAS,IAAIsB,KAAKpQ,EAAIwtC,MAAM1+B,SAChF,EACA7O,WAAW,EACXjG,MAAM,IAGdjD,QAAS,CACL02C,wBAAwB9tB,EAAAA,GAAAA,IAAQ,yBAAwB,yCAAE,kGAIrD,GAHKtI,EAAS,CACXg3B,OAAQp2C,KAAKuyC,qBAAqB6D,OAClCv/B,OAAQ7W,KAAKuyC,qBAAqB17B,OAAOgD,eAEzC7Z,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBkB,SAAQ,gCAC9CwM,GAAU1N,GAAiBkB,SAAUyK,GAAO,OAA3DN,EAAS,EAAH,KACZ9e,KAAKm2C,cAAgB3B,GAAsC11B,GAC3D9e,KAAKg2C,YAAcl3B,EAAO4V,UAAY,GAAG,0BAClC10B,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBQ,SAAQ,kCACrDkN,GAAU1N,GAAiBQ,SAAUmL,GAAO,QAA3DN,EAAS,EAAH,KACZ9e,KAAKm2C,cAAgB1B,GAAsC31B,GAC3D9e,KAAKg2C,YAAcl3B,EAAO4V,UAAY,GAAG,2BAClC10B,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBU,cAAa,kCAC1DgN,GAAU1N,GAAiBU,cAAeiL,GAAO,QAAhEN,EAAS,EAAH,KACZ9e,KAAKm2C,cAAgBzB,GAA2C51B,GAChE9e,KAAKg2C,YAAcl3B,EAAO4V,UAAY,GAAG,2BAClC10B,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBI,cAAcwiC,oBAAmB,iBACnF,OAAlBl2B,QAAQm2B,IAAI,OAAM,UACKn1B,GAAU1N,GAAiBI,cAAeuL,GAAO,QAAhEN,EAAS,EAAH,KACZ9e,KAAKm2C,cAAgBxB,GAA2C71B,GAChE9e,KAAKg2C,YAAcl3B,EAAO4V,UAAY,GAAG,8BAEnC,IAAIgH,MAAM,+CAA8C,iDAErE,SAzBwE6a,IAAW,sCAAXA,CAAW,CAA5B,IA0BxDd,kBAAkB/tB,EAAAA,GAAAA,IAAQ,mBAAkB,yCAAE,oGACf1nB,KAAKw2C,iBAAiB,GAAE,OAAjC,OAAlBx2C,KAAKkyC,cAAgB,EAAH,cACUlyC,KAAKw2C,iBAAiB,IAAG,OAAlC,OAAnBx2C,KAAKqyC,eAAiB,EAAH,cACQryC,KAAKw2C,iBAAiB,IAAG,OAApDx2C,KAAKsyC,cAAgB,EAAH,qDACrB,SAJ4DmD,IAAgB,sCAAhBA,CAAgB,CAAjC,IAK5Ce,kBAAkB9uB,EAAAA,GAAAA,IAAQ,mBAAkB,yCAAE,WAAgC+uB,GAAY,6EAG/C,OAFjCC,EAAgB12C,KAAK8qB,YAAY6C,uBACjCvX,GAAON,IAAI9V,KAAK8qB,YAAY6C,wBAAwBlgB,OAAO,cAC3D2I,GAAON,MAAMrI,OAAO,cAAa,SAC1B2T,GAAiB3N,GAAiBU,cAAe,CAC1DsiC,KAAAA,EACAC,cAAAA,IACF,wFACL,SAR4DF,EAAiB,GAAD,sCAAhBA,CAAgB,CAAjC,IAS5CG,iBAAgB,SAAC9yC,GACT7D,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBQ,SAC3DjU,KAAKmR,QAAQxT,KAAK,oBAAD,OAAqBkG,EAAMsnC,WACrCnrC,KAAKuyC,qBAAqB54B,cAAgBlG,GAAiBkB,UAClE3U,KAAKmR,QAAQxT,KAAK,oBAAD,OAAqBkG,EAAMsnC,UAEpD,EACA6G,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,WAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,yBAC1B,KC5J6R,M,uBCAlF,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB4J,W,IAAQ,O,EAAc,WAAqB,oBAAC,OAAM,aAAc,CAAEpR,EAAG,cAAastB,CAA2DxtB,MAAM,CAAC,MAAQE,EAAI4yC,GAAAA,+BAAW,YAAuB,SAAU5yC,GAAmC,yBAAoBF,EAAK,KAAC,wE,MAAC,CAAU,MAAQ,aAAa,uBAAI2C,QAAG,oC,CAAuC,OAAUzC,C,MAAoC,CAAqD,QAAsB,sBAAkBwB,CAAAA,EAAK,+BAAC,C,MAAM,CAAoBe,QAAS,kC,sBAAiCynB,CAAG,8CAAC,GAACtoB,cAAW,IAAiB,MAAKe,CAAyB3C,MAAM,eAAC,SAAU,SAAY,GAAC,EAAM,aAAKy1B,CAAa,EAA2C,8BAAK,KAAO,qBAAKE,CAAoB,OAAI,WAAU,EAAGhzB,QAAmBC,KAAAA,EAAY,aAAO5C,YAAM,4B,GAAkD,CAAoB,MAAS,EAACE,yBAA2CyC,GAAG,wBAAoB,CAACC,YAAY,OAAO5C,MAAM,CAAC,MAAQ,EAAI,GAACqc,kCAA6B,oBAAkB,gDAAuBzZ,CAAAA,EAAAA,GAAAA,EAAY,CAAO,YAAK,OAAY8N,MAAK,CAAkB/N,OAAU,EAAC,6BAAC3C,cAAM,MAAqB,iBAAO,CAAE,YAAC,QAAC6C,CAAE,EAAC,Y,KAAC,iB,GAAyB,IAAO3C,C,MAAe,CAAC,kBAAIyC,KAAG,I,GAAiB,CAAS,kBAAIzC,OAAO,aAAqHF,I,CAAiC,MAAS,CAAY,MAAC,CAAC6I,KAAAA,K,CAAmCC,EAAG,uBAAU,gF,MAAC,C,MAAwD,EAAC,c,QAAC,EAAO,S,YAAUzI,EAAG,K,IAA0EL,U,oBAAyB,GAAO,aAAiI,EAAE,MAAI,QAAC,OAAM,MAAC,UAAM,UAA4B,mBAAkB,sBAAH,iBAAI,GAAQ2C,GAAG,0DAA2B,GAA1O,gBAAE,OAAIzC,KAAO,KAAqD,CAACA,EAAIG,GAAG,iD,SAAwK,G,KAAmC,oB,GAAG,SAAW,GAAgC,aAAG,qCAAI,OAAwB,qBAAWoV,KAAI,MAA8BzV,EAAK,GAAC,8B,QAA8C,oBAAqC,eAAG,aAAC0C,MAAG,iBAAgB,CAAI,OAAW+S,GAAI,2CAAsB7S,CAAAA,EAAAA,GAAAA,EAAY,sB,GAAwD,CAAE,IAAC,gBAACF,GAAG,YAAoB,IAAC,SAAkB,MAAP+S,CAAI,QAAJA,CAAQ,YAAe,eAAgC,kCAAG,GAAe,CAA2B,IAAC,iBAAC,YAAY0+B,GAAkB,aAAM,MAAK,iCAC9mF,IACG7zC,MAAAA,MAEJ,IAASgB,GAAM,EAAEhB,cAAe,C,iDCchC,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,8BAClB,EACA5K,WAAY,CAAE+qC,mBAAAA,GAAoBwH,6BAAAA,IAClCp0C,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BmlB,WAAU,WACN,MAAO,mBACX,EACAvhB,cAAa,WACT,OAAKpvB,KAAK+2C,aACH/2C,KAAK+2C,aAAa/pC,KAAI,SAACkM,GAC1B,IAAM9B,EAAYhB,GAAON,IAAIoD,EAAE9B,WACzBtR,EAAS,CACXkxC,cAAe99B,EAAEc,cACjBi9B,aAAc/9B,EAAE0Z,iBAChBskB,eAAgBh+B,EAAEi+B,eAClBC,aAAcl+B,EAAEm+B,aAChBC,YAAap+B,EAAE6vB,YACfwO,aAAcr+B,EAAEO,aAChB+9B,SAAUt+B,EAAEu+B,SACZC,OAAQx+B,EAAE1E,OACVmjC,cAAez+B,EAAE0+B,cACjBC,cAAe3+B,EAAE4+B,qBACjBC,UAAW3gC,EAAU3J,OAAO,gBAEhC,OAAO3H,CACX,IAjB+B,EAkBnC,EACAzG,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,kDACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,gDACd/P,MAAO,iBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,8CACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,6CACd/P,MAAO,cACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0CACd/P,MAAO,WACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd/P,MAAO,SACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,+CACd/P,MAAO,gBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,2CACd/P,MAAO,YACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,+CACd/P,MAAO,gBACPswB,UAAU,GAGtB,IAEJ3vB,QAAO,WACHC,KAAKg4C,kBACT,EACAp5C,KAAI,WACA,MAAO,CACHm4C,aAAc,GACdxjB,aAAc,CACVrb,aAAc,MACd3B,YAAa,QACbgC,YAAa,IACboB,YAAalG,GAAiBsjC,aAC9BpP,SAAUjyB,GAAAA,UAEd4d,aAAc,CAAE6F,OAAQ,GAAIyD,SAAU,IACtCoD,aAASxzB,EAEjB,EACA1N,QAAS,CACLk5C,kBAAkBtwB,EAAAA,GAAAA,IAAQ,mBAAkB,yCAAE,4FACzB,OAAXtI,EAAS,CAAC,EAAC,SACM3P,EAAAA,EAAAA,KAAAA,IAAe,oBAAqB,CAAE2P,OAAAA,IAAUxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAApFK,EAAW,EAAH,KACde,KAAK+2C,aAAe93C,EAAS,gDAChC,SAJ4D+4C,IAAgB,sCAAhBA,CAAgB,CAAjC,IAK5CzM,UAAS,WACL,IAAMlsC,EAAU,CACZ,CAAES,KAAME,KAAKmP,GAAG,gDAAiD/P,MAAO,kBACxE,CAAEU,KAAME,KAAKmP,GAAG,8CAA+C/P,MAAO,gBACtE,CAAEU,KAAME,KAAKmP,GAAG,6CAA8C/P,MAAO,eACrE,CAAEU,KAAME,KAAKmP,GAAG,0CAA2C/P,MAAO,YAClE,CAAEU,KAAME,KAAKmP,GAAG,wCAAyC/P,MAAO,UAChE,CAAEU,KAAME,KAAKmP,GAAG,+CAAgD/P,MAAO,iBACvE,CAAEU,KAAME,KAAKmP,GAAG,2CAA4C/P,MAAO,aACnE,CAAEU,KAAME,KAAKmP,GAAG,+CAAgD/P,MAAO,yBAGrE64C,EAAe54C,EAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,IACzCo0C,EAAYxzC,KAAK+2C,aAAa/pC,KAAI,SAACkM,GAAC,OACtC++B,EAAajrC,KAAI,SAACkjB,GAAC,MAAW,eAALA,EAAqBhX,EAAEgX,GAAG3f,QAAQ,KAAM,IAAM2I,EAAEgX,EAAE,GAAE,IAEjFsjB,EAAU0E,QAAQ74C,EAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAEpZ,IAAI,KAC3C4yC,GAAAA,UAAqBc,EAAW,mBACpC,EACAhgB,qBAAoB,SAAC50B,GACjB,IAAMu5C,EAAcn4C,KAAK+2C,aAAap7B,MAAK,SAAA5O,GAAC,OAAIA,EAAEqrC,WAAax5C,EAAKwjC,cAAc,IAC7E+V,GACLn4C,KAAKmR,QAAQxT,KAAK,iBAAD,OAAkBw6C,EAAYn+B,eACnD,EACAq+B,iBAAiB3wB,EAAAA,GAAAA,IAAQ,sBAAqB,yCAAE,WAA+BjqB,GAAO,mFAChC,GAA5C2hB,EAASsoB,GAA2BjqC,GACrC2hB,EAAQ,CAAF,gDAGV,OAFgC,QAA7B,EAAApf,KAAKuzB,aAAa5Z,mBAAW,OAA7B,EAA+BmuB,WAAW,UAC1C1oB,EAAO5F,YAAcxZ,KAAKsU,OAAS,GAAH,OAAMtU,KAAKsU,OAAM,KAAM,MAC1D,SAC2B7E,EAAAA,EAAAA,KAAAA,IAEpB,qBAAchS,EAAQkc,cACM,QAAvBlc,EAAQkc,YAAwB,IAAH,OAAOkzB,mBAAmB7sC,KAAKsU,SAAO,IACxE,CAAE8K,OAAAA,IAELxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OANlBkyC,EAAgB,EAAH,KAOnB9wC,KAAK4W,SAAW,IAAIuB,KAAKiH,EAAOxI,UAChC5W,KAAKggC,QAAU5gB,EAAOvI,OAChBk6B,EAAe1U,GAA+ByU,EAAe,CAC/DnU,WAAY1B,GAAiBO,UAEjCx7B,KAAKszB,aAAeyd,EAAa,iDACpC,SAnB8DsH,EAAgB,GAAD,sCAAfA,CAAe,CAAhC,IAoB9CrG,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,iBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,+BAC1B,GAEJrN,MAAO,CACHyxB,aAAc,CACVvxB,QAAO,SAACvE,GACCA,IACDuC,KAAKka,MAAMC,GAAG,wBAClBna,KAAKq4C,gBAAgB56C,GACzB,EACAuK,WAAW,EACXjG,MAAM,MCnLyR,M,uBCAlF,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,+DCtB+dvB,W,MAA0B3C,K,IAAO,MAAO,G,SAAW,uBAAkB,C,aAAY,wB,KAAM,a,YAAwE,EAAQ,GAAC,uE,IAAG,kB,GAAC6I,W,MAAwB,GAAC,Q,YAAe,a,GAAgB,GAALhG,iCAAE,qD,MAAI,C,MAAiC,G,MAAE,yB,SAAW,K,QAA8C,C,MAAGA,CAAkM,gBAAG,cAAY,GAAcF,KAAG,SAA8F,IAAU,IAAV,EAAQ,QAAE,gC,MAAC,CAAiC,OAAU,IAAK,YAAY,EAACzC,GAAIkS,CAAE,CAA6F,gBAAM,GAAC,YAAW,IAAC,EAAK,EAAI,GAAO,OAAa,EAAC,WAAY,MAAC,CAAcqoC,MAAAA,GAAqF,MAAM,yBAAO,cAAsC,0KAAQtqC,IAAoIvN,MAAY,eAAauN,CAAAA,EAAI,OAAMjQ,CAAAA,EAAIw6C,GAAAA,EAAAA,GAAAA,EAAAA,GAAkB,oCAAmC,SAAQ,QAAM,MAAC,CAAO,MAAC,GAAG,+BAAO,SAAW,KAAQ,GAAQ,6BAA2B,oEAAC,EAA0B,UAAqB,iBAAG,EAAC,M,YAAU,Q,GAAiB,gCAAsB,uC,YAAA,OAAC,MAAC,CAACh5C,gBAAM,qBAAqCe,EAAAA,KAAS,6CAAe,4E,YAAKk4C,SAA4B,wD,MAAC/4C,CAAoC,WAAsIgB,CAAAA,EAAAA,GAAAA,EAAY,CAAU5C,MAAM,CAAC,MAAO,4BAA+B,sBAAG,QAAI,Y,GAA6B,CAAc,mBAAC0B,OAAM,aAACH,G,MAAoD,CAAgB,MAAC,0BAACK,SAAU,SAAC,GAAa,2BAAK,EAAuF5B,WAAM,8BAAkB,OAAS,EAAI,qBAAC46C,EAAAA,yBAAAA,EAAAA,MAAAA,GAAAA,uBAAAA,EAAAA,GAAAA,EAAAA,CAAa,sBAAG,MAAKzqC,CAAmE,KAAU,mCAA4C,EAAG,KAAC,C,MAAiC,C,SAAE,IAAkB,MAAM,CAA2CnQ,MAAM,c,SAAQ,SAAe,GAAC,cAAeE,CAA4B,EAAG,WAASyC,gB,GAA6C,yBAAW,iCAA2C,OAA3C,iB,MAAU,CAAE,KAAK,UAAU3C,QAAM,mBAAU,4CAAC,OAAM,QAA+BA,IAAK,EAAC,I,CAAC,OAAuB66C,C,MAAiB,CAAiB,eAAC,K,CAAiC,UAAc,6BAAiBprB,CAAY,OAAI9sB,MAAG,EAA0E3C,aAAM,+BAAoC,OAAS,EAACE,GAAAA,EAAc,CAAgE,YAAC,CAAC2I,SAAY3I,a,CAAyB4I,EAAE,KAAC,C,MAAgB,C,KAAC,K,iCAAqD,C,aAAW,8B,OAAI,Y,mBAAoC,E,aAA8C,8B,EAAG,MAAS,SAAS,wC,MAAC9I,C,MAAO,EAAM,uB,QAAG,6E,YAA+C,OAAE,IAAC,YAAC0C,GAAG,SAAU,GAAG,IAAC,OAA0D,MAA/CvC,CAAI,MAAJA,EAAI,IAAE6Q,MAAM,CAAEhI,MAAO,YAAEhI,KAAO,IAASiQ,GAAAA,CAAS,MAAW,YAAsCwL,OAAU,EAAE,gCAACtZ,I,GAAyC5B,CAAK,EAAE,K,MAAkCK,CAA+C,U,CAAQ,eAAkB,EAACk5C,GAAAA,gBAAiB,G,8BAA0D9pC,G,IAAO,IAAUhQ,KAAO,EAAC,SAAC6B,EAAG,U,EAAC,EAAU,Q,EAAiB,EAAOoO,M,EAAO,Q,MAAC,yCAAG,WAAC,oBAAQ,QAAK,eAAS,MAAM,iCAAc,WAAU,qCAElmI3Q,MAAe,CAEVgB,iBAAuB,K,yJCFnBy5C,GAAc,WAiBzB,WAAYC,IAAG,gmBACb74C,KAAKoH,GAAKyxC,EAAIzxC,GACdpH,KAAKgB,KAAO63C,EAAI73C,KAChBhB,KAAKkS,YAAc2mC,EAAI3mC,YACvBlS,KAAK84C,WAAaD,EAAIC,WACtB94C,KAAK04C,QAAUG,EAAIH,QAAQ1rC,KAAI,SAAA+rC,GAAG,OAAI,IAAIC,GAAqBD,EAAI,IACnE/4C,KAAKi5C,aAAc,EACnBj5C,KAAKk5C,sBAAwBL,EAAIK,sBACjCl5C,KAAKm5C,sBAAwBN,EAAIM,sBACjCn5C,KAAKo5C,+BAAiCP,EAAIO,+BAC1Cp5C,KAAKq5C,+BAAiCR,EAAIQ,+BAC1Cr5C,KAAK6vC,oBAAsBgJ,EAAIhJ,oBAC/B7vC,KAAKs5C,wBAA0BT,EAAIS,wBACnCt5C,KAAKu5C,SAAWV,EAAIU,SACpBv5C,KAAKw5C,oBAAsBX,EAAIW,oBAC/Bx5C,KAAKuc,kBAAoBs8B,EAAIt8B,iBAC/B,CAkBC,OAlBA,qCAED,WACE,OAAKvc,KAAK04C,QACE14C,KAAK04C,QAAQp4B,QAAO,SAACm5B,EAAOZ,GAAG,OAAKY,GAASZ,EAAIa,WAAa,EAAI,EAAE,GAAE,GADxD,CAE5B,GAAC,gBAED,WACE,OAAK15C,KAAK04C,QACE14C,KAAK04C,QAAQp4B,QAAO,SAACm5B,EAAOZ,GAAG,OAAKY,GAASZ,EAAIa,WAAab,EAAIc,KAAO,EAAE,GAAE,GAD/D,CAE5B,GAAC,4BAED,WACE,OAAO35C,KAAK04C,WAAa14C,KAAK04C,QAAQ/8B,MAAK,SAACo9B,GAAG,OAAKA,EAAIW,UAAU,GACpE,GAAC,uBAED,WACE,OAAO15C,KAAK25C,KAAKjW,QAAQ,EAC3B,KAAC,EAnDwB,GAsDdsV,GAAoB,WAqB/B,WAAYD,IAAG,ivBACb/4C,KAAKoH,GAAK2xC,EAAI3xC,GACdpH,KAAK+oC,YAAcgQ,EAAIhQ,YACvB/oC,KAAK45C,iBAAmBb,EAAIa,iBAC5B55C,KAAKkU,aAAe6kC,EAAI/8B,eACxBhc,KAAKo1B,iBAAmB2jB,EAAI3jB,iBAC5Bp1B,KAAKs1B,YAAcyjB,EAAIzjB,YACvBt1B,KAAKqZ,UAAY0/B,EAAI1/B,UACrBrZ,KAAK25C,KAAOZ,EAAIY,KAChB35C,KAAKqU,KAAO0kC,EAAI1kC,KAChBrU,KAAK65C,iBAAmBd,EAAIc,iBAC5B75C,KAAK85C,UAAYf,EAAIe,UACrB95C,KAAK05C,YAAa,EAClB15C,KAAKk5C,sBAAwBH,EAAIG,sBACjCl5C,KAAKm5C,sBAAwBJ,EAAII,sBACjCn5C,KAAKo5C,+BAAiCL,EAAIK,+BAC1Cp5C,KAAKq5C,+BAAiCN,EAAIM,+BAC1Cr5C,KAAK6vC,oBAAsBkJ,EAAIlJ,oBAC/B7vC,KAAKs5C,wBAA0BP,EAAIO,wBACnCt5C,KAAK+5C,mBAAqBhB,EAAIgB,kBAChC,CAIC,OAJA,iCAED,WACE,OAAO/5C,KAAK25C,KAAKjW,QAAQ,EAC3B,KAAC,EA7C8B,GCxDqD7lC,GAAM,W,IAAC,O,EAAsB,EAAO,MAAKooB,G,OAAM,OAAiB,C,MAAG,CAAqB,QAAW,EAACloB,QAAa,cAAG,iBAAC,GAAC,YAAe,O,YAA4B,EAACqc,U,GAAQ,C,gBAA6CA,SAAM,GAAC,UAAC,E,iBAAgDA,SAAM,GAAC,UAAC,E,kBAAiDA,SAAM,eAAE,EAAC1T,mBAAoB,YAACnG,EAAG,SAAY,CAACoG,G,YAA8BnG,EAAG,K,IAAe3C,Y,YAAW,G,IAAsC,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAyB,OAAG,8CAAgC,YAAkB,yB,IAAuD,4BAAE,GAAC,YAAC/S,IAAG,SAA6B,MAAC,UAAkB,8B,QAAoBE,0B,GAA4B,SAAY,GAAgC,aAAG,iBAAI,6BAA+B,aAAkB,uB,IAA+F,+BAAE,GAAC,YAACF,IAAG,SAAgC,MAAC,UAAkB,kE,QAAqF1C,6B,YAAgB,G,IAAG,S,MAAC6I,CAAAA,EAAW,sBAAS,Q,MAAK,CAAYC,OAAG,I,YAA0B2M,EAAK6lC,GAAAA,CAAAA,C,IAA0Et7C,Y,YAAe,G,IAAG,IAAQ,G,MAAU,2BAAW,qCAAE,OAAG6C,MAASxC,GAA0GL,MAAM,UAAC,SAAU,K,GAAmB,MAAW,uFAAE,OAAG6C,MAASxC,GAAoK,gBAAQ,SAAK,KAA0F,wJAAG,IAAI,UAAmC,gBAAkB,oEAAxqB,2B,IAA6xB,mCAAE,GAAC,YAACqC,IAAG,SAAyC,MAAC,UAAkB,4F,QAA8F1C,sC,YAAgB,G,IAAG,S,MAAC6I,CAAAA,EAAW,+BAAS,Q,MAAK,CAAYC,OAAG,I,YAA0B2M,EAAK+lC,GAAAA,CAAAA,C,IAA4Fx7C,Y,YAAe,G,IAAG,IAAQ,G,MAAU,oCAAW,8CAAE,OAAG6C,MAASxC,GAAoFL,MAAM,UAAC,SAAU,K,GAAmB,MAAW,qEAAE,OAAG6C,MAASxC,GAAkH,gBAAQ,SAAK,KAA6G,8GAAG,IAAK,MAAS,IAAI,WAAU,4FAAxmB,2B,GAAysB,CAACiS,IAAK,UAAO,GAAC,WAAY,4FACj3F,EACGhS,OAAAA,IAEJ,MAASgB,I,QCmET,IACAf,MAAAA,CAAAA,QAAAA,iBAAAA,gBACAQ,KAAAA,WACA,OACAmsC,OAAAA,wBACAC,UAAAA,EAEA,EACAtoC,SAAAA,CACArD,QAAAA,WACA,SAwBA,OAvBA,8EACAA,EAAAA,KAAAA,CAAAS,KAAAA,eAAAV,MAAAA,qBACAC,EAAAA,KAAAA,CAAAS,KAAAA,UAAAk6C,MAAAA,QAAAtqB,UAAAA,EAAAtwB,MAAAA,iBAEAC,EAAAA,KAAAA,CAAAS,KAAAA,eAAAk6C,MAAAA,QAAAtqB,UAAAA,EAAAtwB,MAAAA,qBAGA,4FACAC,EAAAA,KAAAA,CAAAS,KAAAA,cAAAV,MAAAA,uBAEA,mEACA,gEACAC,EAAAA,KAAAA,CAAAS,KAAAA,wBAAAV,MAAAA,wBAEAC,EAAAA,KAAAA,CAAAS,KAAAA,eAAAV,MAAAA,2BAEA,4EACA,oEACAC,EAAAA,KAAAA,CAAAS,KAAAA,4BAAAV,MAAAA,4BAEAC,EAAAA,KAAAA,CAAAS,KAAAA,mBAAAV,MAAAA,oCAGA,CACA,IC1GoQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClB6D,W,IAAG,OAAE,EAAK,W,OAAqB,EAAC,M,MAAC,CAAkB,UAAmCvB,CAAAA,EAAK,MAAC,C,MAAC,CAAY,gBAAS,KAAoC,+BAAG,MAAI,CAAM4C,KAAAA,KAAkC1C,KAAO,GAA8F,MAAU,QAAS,qBAAOF,EAAAA,KAAM,C,YAAS,qB,GAAQ,OAAO,OAAO,MAACo8C,MAAYl8C,KAAIqB,EAAMo6C,IAAAA,EAAAA,MAAAA,qBAAoB,kB,OAAuB,OAAE,IAAK,EAAiB,MAAM,CAAS/4C,MAAY,QACviB1C,MAAUm8C,GAAAA,OAAAA,EAAAA,YACL96C,EAAM+5C,MAAAA,qBAAyB,2BAC4b34C,CAAE,EAAC,GAAM,U,KAAEC,GAAAA,EAAAA,OAAY,CAA6B,YAAawP,cAAiExP,CAAAA,EAAAA,MAAW,mBAAC,ubAAkC,YAAS,sDAAsCA,CAAAA,EAAAA,OAAY,CAAO5C,YAAM,8B,CAAC,KAAO,EAACE,GAAIoU,EAAAA,MAAAA,iBAAAA,sBAAAA,EAAAA,EAAAA,EAAAA,CAAS,+CAAG,CAACpU,EAAIG,GAAG,wBAA2B,GAAG,IAAI,CAAOuC,YAAY,OAAiC,MAAK,CAAUuK,MAAW,EAAC,Y,CAAuB,KAAM,4BAAO,Y,YAAC,kCAAqB,QAAE,YAAS,CAAmDvK,SAAY,WAAS1C,KAAO,OAAsEF,cAAM,U,CAA6B,+BAAS,gBAAQ,oBAAG,CAACE,EAAIG,GAAG,SAAa,EAAE,MAAK8P,aAAU,+BACprC,OACG7P,KAAAA,EAAAA,MAAoB,WAExB,OAAe,W,0CC8Cf,IACAC,MAAAA,CACAgB,MAAAA,OACAkuB,aAAAA,QAEA1uB,KAAAA,WACA,OAAAq7C,YAAAA,CAAA,6BACA,EACAv3C,SAAAA,CACAyP,UAAAA,WACA,kDACA,IChEiR,MCO7Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAAU1R,EAAAA,KAAyB5C,EAAK,EAAC,S,OAAC,EAAM,KAAC,CAAE,yBAAE,MAAK,CAA4B4C,KAAAA,KAAmI5C,CAAAA,EAAK,MAAC,S,YAAU,0B,CAAS,KAAM,6EAAe,OAAkC,OAAIE,OAAO,SACzX,+DAGD,GAASoB,GAAAA,qBAAuB,E,QCUhC,IACAP,KAAAA,WACA,OAAA8F,QAAAA,EAAAA,EAAAA,MAAAA,SACA,GCjB6R,MCOzR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBgDjE,GAAAA,W,IAAyB5C,EAAM,K,EAAC,EAAM,MAAC,G,OAAE,QAAE,YAAK,aAA4B4C,MAAAA,CAAuCD,KAAG,KAAsD,CAACzC,EAAG,MAAI,QAAoBA,CAAiHF,YAAM,0B,CAAC,MAAK,CAAmB,4CAAG,CAACE,EAAIG,GAAG,yBAA4B,wFAAY,iBAC1d,OACGC,GAAAA,sB,sDCDA,GAAS,CAAC,EAKV,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCjBYqC,GAAOK,WAAS,MAAU,KAAe6F,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,cAAW,C,YAAI,KAASsc,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAoC9I,EAAM,Q,MAAC,GAAO,mCAAU,C,MAAC,CAAsB,cAAC6I,QAAY3I,EAAIoQ,S,YAAsB,KAASvH,CAAAA,C,IAAgB,U,GAA0BlG,SAAG,G,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAqDoG,EAAAA,GAAAA,GAAc,EAAE,4BAAI,GAAa,eAAerH,IAAOH,MAAOrB,G,MAAYuC,C,MAA6Bs2C,EAAAA,OAAU,SAAC,YAACn3C,EAAAA,OAAW,CAAQ,EAAG,sBAI9oB,E,MCJ4D,GAAU,W,IAAa5B,EAAM,K,EAAC,EAAO,MAAK2I,G,OAAuD,cAAc3H,CAAO,MAAC,CAAC6H,MAAW,EAAC3I,OAAQ,4CAACwC,QAAI,EAAS,S,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAO,S,EAAEorC,EAAAA,M,MAAsCC,CAAAA,EAAQ,mBAAuB,KAAC,CAAC,sBAAe,YAAC,UAAUr8C,EAAAA,GAAAA,GAAS,gBAAuB,OAAQgR,EAAO,QAAC,0BAAI,MAAU,IAAQ3P,IAAkBkB,MAAQ,G,MAAoB,CAAU,MAAC,QAACb,SAAU,SAAC,GAAO,SAAIe,EAAiB3C,WAAM,UAAyD,SAAC0B,MAAM,CAACH,MAAOrB,EAAIs8C,GAAAA,0C,MAAuC,CAAc,MAAC,YAAC56C,SAAU,SAAC,GAAW,aAAI1B,EAAgD,WAAU,eAAsBF,EAAAA,GAAM,6B,OAAC,OAAQy8C,C,IAAiB,E,MAAyD,CAAc,cAAC/6C,KAAM,mCAACH,SAAOk7C,I,MAA8C,CAA+B,MAAC,QAAC76C,SAAU,SAAC,GAAkB,mBAAG,EAAK,WAAC,qBAIpgC,O,QC8BA,IACArB,MAAAA,CACAgB,MAAAA,OACAoH,MAAAA,CACA1I,KAAAA,OACAS,QAAAA,MAEAM,QAAAA,CACAf,KAAAA,QACAS,SAAAA,IAGAK,KAAAA,WACA,OACAJ,OAAAA,EACA67C,WAAAA,EACAE,YAAAA,GAEA,EACAz4C,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,cACA,uCACA,oEACA,EACAgG,WAAAA,EACAjG,MAAAA,KC9DsR,M,uBCA/C,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCHhC,IACAwC,WAAAA,CAAAi2C,8BAAAA,IACA57C,KAAAA,WACA,OAAAg4C,QAAAA,EACA,EACAx4C,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,CACAf,KAAAA,QACAS,SAAAA,KC5BwR,MCOpR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BY,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,+BAAyBE,EAAI67C,iBAAgB,aAAY,MAAS77C,EAAIqB,OAAS,CAAC,EAAG,QAAU,MAAMsB,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC3R,EACI5f,GAAkB,GCuBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAgrB,GAAAA,OAAAA,CAAAA,EAAAA,CACAwwB,iBAAAA,SAEA96C,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gDACA,ICjCwR,M,uBCA/C,GAAe,KCOpP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYc,GAAOK,WAAS,MAAU,KAAWhD,EAAK,EAAC,S,OAAC,OAAS,C,MAAM,CAAkB,aAAmB,gBAAI2C,iBAAS,KAAwB,CAACzC,EAAG,MAAI,CAA2C0C,YAAY,WAA0B,CAAC1C,EAAIG,GAAG,kCAAkB,QAAsIL,YAAM,0B,CAAC,SAAS,KAAQ,2H,MAAC,CAAsC,gBAAIE,KAAOA,kCAEhfI,CAAAA,EAAAA,GAAAA,EAAAA,GAAe,EAAK,oFAExB,E,MCkBA,IACAC,MAAAA,CACAq8C,gBAAAA,UCxBuR,M,uBCA/C,GAAe,KCOnP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCiIhC,iBACA,4BAEA,IACAj0C,MAAAA,SAAAA,GACA,8BACA,EACAjC,WAAAA,CACAm2C,0BAAAA,GACAC,yBAAAA,GACAC,qCAAAA,GACAC,sCAAAA,GACAC,gCAAAA,GACAC,gCAAAA,GACAC,+BAAAA,IAEAp8C,KAAAA,WACA,OACAq8C,YAAAA,GACAC,gBAAAA,GACAC,+BAAAA,CAAAA,EACAC,QAAAA,CAAAA,EACAC,iBAAAA,EACAC,uBAAAA,CAAAnB,uBAAAA,EAAAC,SAAAA,IACAmB,oBAAAA,EACA/C,wBAAAA,GACAgD,cAAAA,CACAC,IAAAA,QAAAA,EAAAA,GAAAA,GACA/5C,OAAAA,KAAAA,IAEAqV,QAAAA,SAAAA,GAAA,gEACA/J,KAAAA,SAAAA,GAAA,iDAGA,EACApK,QAAAA,WACA,2BACA,2BACA,EACAF,UAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CACAg5C,sBAAAA,WACA,sDACA,gEAEA,EACAnD,mBAAAA,WACA,sFACA,EACAoD,4BAAAA,WACA,yDACA,EACArD,gCAAAA,WACA,uGACA,EACAsD,qBAAAA,WACA,4DACA,EACAC,UAAAA,WACA,2GACA,EACApB,gBAAAA,WACA,uBACA,IACArsB,EAAAA,GAAAA,IAAAA,KAAAA,CAAAA,EAAAA,CACA0tB,wBAAAA,WAAA,WACA,6DACA,iGACA,EACArD,cAAAA,WACA,uFACA,8GACA,IAEA35C,QAAAA,CACAi9C,qBAAAA,EAAAA,GAAAA,IAAAA,sBAAAA,WAAA,uJAEAC,EAAAA,EAAAA,KAAAA,IAAAA,wBAAAA,MAAAA,SAAAA,GAAA,wBAiBA,OAjBAC,EAAAA,EAAAA,KACA,gDAEA,uCACAjvC,KAAAA,SAAAA,GAAA,oBACAoxB,MAAAA,SAAAA,EAAAA,GACA,wCACA,MAEAjT,GAAAA,KAAAA,aAAAA,EAAAA,EAAAA,gBACA,IACA,4GAGA,mCACA,+CACA8wB,EAAAA,gCACA,UACAD,EAAAA,EAAAA,KAAAA,IAAAA,yCAAA,QAAAE,EAAAA,EAAAA,KACA,8CACA,4FAEA,uIAEA,SA1BAH,IAAA,wCAAAA,IA2BAI,4BAAAA,EAAAA,GAAAA,IAAAA,6BAAAA,WAAA,mIACAH,EAAAA,EAAAA,KAAAA,IACAhyC,wBAAAA,OAAAA,EAAAA,cACA4C,MAAAA,SAAAA,GAAA,wBAFA,mFAGA,SAJAwvC,EAAAA,GAAA,wCAAAD,IAKA3nB,UAAAA,WACAnrB,aAAAA,QAAAA,GAAAA,KAAAA,wBACA,EACAgzC,qBAAAA,WACA,+BACA,IACA,+BAEA,ICzQ+P,M,uBCA5C,GAAe,KCQ9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvBmO57C,GAAAA,W,IAA8B5C,EAAM,K,EAAC,EAAO,MAAKsR,GAA6B,QAAa,Y,OAAa,aAAiB,kBAA+C,MAAC,CAACzI,MAAW,EAAC3I,GAAIoQ,mBAAK5N,KAAI,wB,EAA8B,KAAW,C,YAAkC,Q,kBAAamoC,C,YAAU,kB,MAAChoC,C,MAAI,EAAO,GAAC3C,0B,aAAyB,a,QAAI,mD,YAAQ,OAAM,oBAAKA,GAAImc,WAAyDzZ,MAAW,GAAC,2BAAS,CAAM,MAAC,CAAO,MAAC,aAAsC,IAAsBA,MAAY,EAAM,yBAAsB,EAAClB,OAAM,OAAwBe,EAAAA,MAAS,0BAAe,Q,YAAKg8C,U,MAAe,CAAC78C,KAAAA,mCAA6B1B,EAAG,KAAgB,CAAoBF,YAAM,O,MAAC,CAAiB,SAAUE,IAAsC,MAAKiQ,CAA6C,MAAS,EAAC,WAAqBzN,SAAIg8C,SAAQA,GAAU/7C,EAAG,YAA4B3C,E,WAAO,eAAmB,CAAC,EAAI,SAAQ,OAAsDA,EAAK,KAAtD,gBAAS,C,MAAM,C,KAAQ,UAAG,6CAA6B,6B,OAAC,OAAgB,CAAE,eAAG,CAAC2C,EAAG,KAAK,CAACC,MAAAA,CAAkC1C,eAAcw+C,KAAyD,CAACx+C,EAAG,KAAO,CAACkS,EAAGlS,GAAAA,EAAO,CAA0D0C,MAAAA,CAA+CD,KAAG,KAAmD,CAACzC,EAAG,MAAI,CAAmD0C,MAAAA,CAAqB1C,gBAAekS,KAAsE,GAAC,KAAO,CAA+DpS,YAAM,qB,CAAC,KAAO,EAACE,GAAIoR,EAAG,qBAA8B,C,YAAE,c,CAAiC,OAAUpR,GAAG,EAAI,cAAJ,CAAI,UAAkC,2B,YAAWw+C,kC,CAAgB,EAAC,KAAC,yCAAG,CAAC/7C,EAAG,+BAAuB,cAAC3C,YAAM,Q,CAAC,SAAU0+C,EAAAA,GAAQA,EAAAA,GAAO,8B,QAAO,EAAQ,WAA2B,6CAAC77C,MAAG,CAAC,MAAQ3C,EAAIy+C,GAAAA,gCAA4B,iCAAI,QAAO,sCAAe,CAAC/7C,QAAY,EAAM,Y,CAAqD,yBAAoB,C,MAAC,C,QAA4D87C,EAAQA,QAAQ,KAAC,6BAAG,GAAI,CAA0B1+C,MAAM,mCAA4B,oBAAoByvB,C,YAAuBvvB,OAAmC,OAAI,MAAQ,EAAG,iCAAK,aAAS,QAAkB,6CAAC,QAAYi0C,EAAAA,YACl+E,4BACG7zC,MAAAA,CAEJ,MAAiBA,EAAAA,W,iKCJ2C,I,SAAU,W,IAAgBN,EAAM,K,EAAC,QAAUE,G,OAAoC,OAAcsB,C,MAAQ,CAAkB,0CAACqH,QAAY3I,EAAIoQ,QAAK5N,MAAI,S,YAAiCxC,EAAIc,GAAAA,CAAAA,C,IAAgChB,U,oBAAgB,2BAAE,MAAMK,CAA6EL,KAAM,K,CAAmB,KAAM,mBAAC,8CAAE,OAAIE,MAAO,UAAwB0C,KAAAA,KAA2F,6BAAC0P,YAAM,iBAAM,uDAAC5P,EAAqBoG,OAAG,G,KAAmB,iB,GAA0B9I,SAAM,G,IAAC,EAAI,O,MAUlmB,kBAAE,MAAMK,CAA6B,8TAAO,QAAa,mBAACyI,G,KAAsB,aAAgF,eAAG,aAACpG,MAAG,UAAc,oDAACoG,G,KAAwClG,c,GAA+B,W,MAA8BA,CAAAA,EAAAA,KAAY,SAAmB,YAAawP,oBAA8D,0BAACE,YAAM,oBAAO,CAAI,EAAC,GAAI,yDAAG,EACjb,WACGhS,MAAAA,I,SCHSs+C,I,SAAmC,SAC5CC,EAAqB59B,GACgB,MACrC,GAAW,OAANA,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQlgB,YAAI,QAAZ,EAAcsX,OACf,MAAO,GAEX,IAAMymC,EAAS,IAAIC,IAoBnB,OAnBA99B,EAAOlgB,KAAKmY,QAAO,SAACzD,GAChB,IAAMipC,EAAUjpC,EAAKupC,cAAc,GACnC,OAAON,EAAQO,WAAaJ,CAChC,IAAGzjC,SAAQ,SAAC3F,GAAuB,MACzBypC,EAAYzpC,EAAKupC,cAAc,GACrC,GAAuB,QAAnB,EAACE,EAAUD,gBAAQ,OAAlB,EAAoBE,OAAzB,CAEA,IAAKL,EAAOr1B,IAAIy1B,EAAUD,UAAW,CACjC,IAAMhK,EAAyC,CAC3CyJ,QAASjpC,EAAKupC,cAAc,GAAGC,SAC/BC,UAAWA,EAAUD,SACrBtmC,MAAO,GAEXmmC,EAAO32B,IAAI+2B,EAAUD,SAAUhK,E,CAEnC,IAAMA,EAAM6J,EAAO3yC,IAAI+yC,EAAUD,UAC3BG,EAAazsC,KAAK0sC,MAAwB,IAAlB5pC,EAAK2pC,YAAoB,IACvDnK,EAAIt8B,OAASymC,CAZ0B,CAa3C,KACO,QAAIN,EAAOQ,WAAWnwC,KAAI,gCAAI0D,EAAC,YAAMA,CAAC,GACjD,GAEA,IACItS,MAAO,CACH6nB,MAAO9Q,MACPmY,aAAclsB,OACdvC,QAASqC,SAEbwB,SAAU,CACNu6C,WAAU,WACN,OAAOj9C,KAAKimB,MAAM3F,QAAO,SAAC9J,EAAelD,GAAuC,OAAKkD,EAAQlD,EAAKkD,KAAK,GAAE,EAC7G,EACAnX,QAAO,WACH,OAAKW,KAAKimB,MAEH,CACH,CACInmB,KAAME,KAAKmP,GAAG,+CACd/P,MAAO,YACPswB,UAAU,EACVnY,MAAO,GAEX,CACIzX,KAAME,KAAKmP,GAAG,2CACd/P,MAAO,QACPswB,UAAU,EACVnY,MAAO,IAbS,EAgB5B,ICjE6S,M,uBCAxF,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BpY,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,OAAOmG,YAAY,CAAC,OAAS,UAC3I,EACI7M,GAAkB,GCahBi/C,GAAqF,CACvF,YAAe,CAAE33B,MAAO,cAAevT,YAAa,CAAC,0DAA2D,oFAAqF,mFACrM,UAAa,CAAEuT,MAAO,WAAYvT,YAAa,CAAC,wEAAyE,+FACzH,WAAc,CAAEuT,MAAO,YAAavT,YAAa,CAAC,8DAA+D,mEAAoE,6CAG5KmrC,GAA+B,SAACC,GACzC,IAAMzgB,EAAU,CAAC,UAAW,UAAW,UAAW,WAE5CD,EAA4D,GAelE,OAdAl7B,OAAO2M,KAAKivC,GAAarkC,SAAQ,SAAC1Y,EAAKgX,GACnC,IAAMkO,EAAQ23B,GAAgB78C,GAAO68C,GAAgB78C,GAAKklB,MAAQllB,EAClEq8B,EAASj/B,KAAK,CACViB,KAAM,CAAC,CACH2+C,WAAYh9C,EAAI8e,cAChBmH,EAAG82B,EAAY/8C,GACfm9B,EAAGjY,IAEPA,MAAOA,EACPwX,gBAAiBJ,EAAQtlB,EAAQslB,EAAQ3mB,QACzCqkB,YAAa,EACbH,YAAa,SAErB,IACO,CACHwC,SAAAA,EAER,EAEA,YAAgBqE,EAA8BxjC,GAC1C,IAAQ6vB,EAAiB7vB,EAAjB6vB,aACFxsB,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACtCS,EAAmB,SAAChY,EAAG,EAAavb,GAAS,oBAArBwzB,EAAS,KACnC,GAAKzkC,EAAQo3C,QAAb,CACA,IAAM1S,EAAgBzzB,EAAM9P,KAAKg+B,SAASsF,EAAUrI,cAC9Chb,EAAiCsjB,EAAcvjC,KAAKsjC,EAAU3qB,OACpE9Z,EAAQo3C,QAAQh2B,EAAO0+B,WAHK,CAIhC,EACM7uC,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACLm3C,UAAW,IACXxa,YAAa,kBACbnB,QAAS,CACLzyB,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,GAEb+K,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAAmCpG,EAAQp+B,KAC3CykC,EAAqCD,EAAO9vB,EAAKgwB,WACvD,MAAO,CAAC,UAAR,OACcl3B,EAAei3B,EAAW7c,EAAG8G,KAAa,gBACjD8vB,GAAgB/Z,EAAWka,YAAcH,GAAgB/Z,EAAWka,YAAYrrC,YAAc,IAEzG,GAEJswB,KAAM,UAGd0B,YAAY,EACZC,qBAAqB,EACrBC,OAAQ,CACJ1G,EAAG,CACC5/B,KAAM,WACNwmC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX4lC,SAAS,GAEb7d,EAAG,CACC8d,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEX96B,MAAO,CACH1G,KAAM,SAAF,OAAWwtB,EAAY,KAC3B7uB,MAAOgjC,EACPvJ,SAAS,GAEbA,SAAS,EACTmM,SAAS,IAGjBnG,QAAO,SAACjU,EAAG,EAAavb,GAAK,oBAAjBwzB,EAAS,KACjBD,EAAiBhY,EAAG,CAACiY,GAAYxzB,EACrC,EACAm1B,YAAa,CACTC,WAAW,EACXtB,KAAM,SAEVuB,QAAO,SAAClgC,EAAO,GAAS,oBAAR+X,EAAO,KACfooB,EAAY,UAChB,GAAIpoB,EAAS,CACT,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cACxCmD,IACAgH,EAAY,U,CAGnBngC,EAAMogC,OAAOplB,OAAuB/d,MAAMy4B,OAASyK,CACxD,KAGR,OAAOt1B,CACV,EC/GD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHQ,KAAM8C,OACN66C,QAASn7C,QAEbqD,MAAK,SAACrG,EAAO,GAAQ,IAANumC,EAAI,EAAJA,KACLC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MACtC,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAChB,GAAK5mC,EAAMQ,MACNgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBJ,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC2M,EAAKxlC,MAAMq5B,YAAYoM,EAAOzlC,OAC9B,IAAMsP,EAAQ8uC,GAAiC3Y,EAAOzlC,MAAO,CACzDkuB,aAAcA,EAAaluB,MAC3By1C,QAAO,SAAC0I,GACJ5Y,EAAK,QAAS,CAAE4Y,WAAAA,EAAYhB,QAASn+C,EAAMm+C,SAC/C,IAEJ7tC,EAAM9P,KAAOR,EAAMQ,KACnB8P,EAAMsrB,QAXiB,CAY3B,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAM1D,EAAMQ,IAAI,IAChB,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEtB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAC3B,EACAljC,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MCjE0S,MCOlT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCgBhC,IAAe1gC,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEk5C,sBAAAA,GAAuBC,qBAAAA,GAAsBC,oBAAAA,IAC3Dn3C,MAAK,WACD,OAAOxG,KAAKmP,GAAG,kBACnB,EACA1K,MAAK,WACD,OAAyBsgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OAENwpB,GAAmB/4C,EAAAA,EAAAA,KAA8B,MACjDy3C,GAAaz3C,EAAAA,EAAAA,KAAc,IAC3B6jC,GAAY7jC,EAAAA,EAAAA,KAAyB,CAAEqT,aAAc,MAAOtB,SAAU,KAAMC,OAAQT,GAAON,MAAMe,WACjGgnC,GAAqBh5C,EAAAA,EAAAA,KAAgC,IASrDi5C,EAAgB,yCAAG,WAAOpV,GAA8B,uFACpDtU,EAAO,uBAAqB,uBAAE,8FAG+D,GAH/D,SAEtB7zB,EAAM,IAAI+V,GAAQoyB,EAAUxwB,cAClC2lC,EAAmBz+C,MAAQmB,EAAI8X,sBAAsBqwB,EAAU9xB,SAAU8xB,EAAU7xB,WACvD,QAAxB,EAAAgnC,EAAmBz+C,aAAK,aAAxB,EAA0B8W,QAAS,GAAC,gBAC2B,OAA/DxW,EAAAA,EAAAA,IAAW,oDAAoD,0CAGrBqhB,GAC1C88B,EAAmBz+C,MAAM,GACzBy+C,EAAmBz+C,MAAM8W,OAAS,EAAI2nC,EAAmBz+C,MAAM,GAAKy+C,EAAmBz+C,MAAM,GAC7F,CAAC,qBAAsB,wBAAyB,wBAChD4Q,GAAAA,OACH,OALiB,GAAZ+tC,EAAY,OAObA,GAA6C,IAA7BA,EAAan/C,KAAKsX,OAAY,iBACjB,OAA9B0nC,EAAiBx+C,MAAQ,KAAK,2BAIlCw+C,EAAiBx+C,MAAQ2+C,EAAa,sDAEtCr+C,EAAAA,EAAAA,IAAW,gDACXk+C,EAAiBx+C,MAAQ,KAAK,2DAEpC,2CACL,gBA3BqB,sCAkChB4+C,GAA2Dt7C,EAAAA,EAAAA,WAAS,WAAK,QAC3E,GAA2B,QAAvB,EAACk7C,EAAiBx+C,aAAK,OAAM,QAAN,EAAtB,EAAwBR,YAAI,QAA5B,EAA8BsX,OAC/B,MAAO,GAEX,IAAMymC,EAAS,IAAIC,IAoBnB,OAnBAgB,EAAiBx+C,MAAMR,KAAKqa,SAAQ,SAAC3F,GACjC,IAAMipC,EAAUjpC,EAAKupC,cAAc,GAC7BU,EAAajqC,EAAKupC,cAAc,GACtC,GAAKU,EAAWT,SAAhB,CAEA,IAAKH,EAAOr1B,IAAIi1B,EAAQO,UAAW,CAC/B,IAAMhK,EAAkC,CACpCyJ,QAASA,EAAQO,SACjBtmC,MAAO,EACP8mC,YAAa,CAAC,GAElBX,EAAO32B,IAAIu2B,EAAQO,SAAUhK,E,CAEjC,IAAMA,EAAM6J,EAAO3yC,IAAIuyC,EAAQO,UACzBG,EAAazsC,KAAK0sC,MAAwB,IAAlB5pC,EAAK2pC,YAAoB,IAClDnK,EAAIwK,YAAYC,EAAWT,YAAWhK,EAAIwK,YAAYC,EAAWT,UAAY,GAClFhK,EAAIt8B,OAASymC,EACbnK,EAAIwK,YAAYC,EAAWT,WAAaG,CAdR,CAepC,KACO,QAAIN,EAAOQ,WAAWnwC,KAAI,gCAAI0D,EAAC,YAAMA,CAAC,GACjD,IAQMutC,GAA4Dv7C,EAAAA,EAAAA,WAAS,WAAK,QAC5E,GAA2B,QAAvB,EAACk7C,EAAiBx+C,aAAK,OAAM,QAAN,EAAtB,EAAwBR,YAAI,QAA5B,EAA8BsX,OAC/B,MAAO,GAGX,IAAMgoC,EAAa,IAAItB,IAkBvB,OAjBAgB,EAAiBx+C,MAAMR,KAAKqa,SAAQ,SAAC3F,GACjC,IAAMipC,EAAUjpC,EAAKupC,cAAc,GACnC,IAAIqB,EAAW52B,IAAIi1B,EAAQO,UAA3B,CAEA,IAAMqB,EAAmBH,EAAa5+C,MAAMuc,MAAK,SAACrI,GAAgC,OAAKA,EAAKipC,UAAYA,EAAQO,QAAQ,IACxH,GAAKqB,EAAL,CAEA,IAAMC,EAAsC,CACxC7B,QAASA,EAAQO,SACjBtmC,MAAO2nC,EAAiB3nC,MACxB6nC,WAAY5B,GAAiCF,EAAQO,SAAUc,EAAiBx+C,OAChFk/C,0BAA2BjB,GAA6Bc,EAAiBb,cAG7EY,EAAWl4B,IAAIu2B,EAAQO,SAAUsB,EATJ,CAHe,CAahD,KAEO,QAAIF,EAAWf,WAAWnwC,KAAI,gCAAI0D,EAAC,YAAMA,CAAC,GACrD,IAOM6tC,GAAoE77C,EAAAA,EAAAA,WAAS,WAC/E,GAAIm7C,EAAmBz+C,MAAM8W,OAAS,EAAG,MAAO,CAAEU,SAAU,GAAIC,OAAQ,IAExE,IAAMD,EAAWR,GAAON,IAAI+nC,EAAmBz+C,MAAM,IAAIqO,OAAO,gBAC1DoJ,EAASgnC,EAAmBz+C,MAAM8W,OAAS,EAAIE,GAAON,IAAI+nC,EAAmBz+C,MAAM,IAAIqO,OAAO,gBAAkBmJ,EACtH,MAAO,CAAEA,SAAAA,EAAUC,OAAAA,EACvB,IAYA,OAVA/U,EAAAA,EAAAA,OAAMm8C,GAAmB,SAACO,GACK,IAAvBA,EAAYtoC,SACZomC,EAAWl9C,MAAQ,CAAC,GAE5B,KAEA0C,EAAAA,EAAAA,OAAM4mC,EAAS,yCAAE,WAAOA,GAA8B,uFAC5CoV,EAAiBpV,GAAU,2CACpC,mDAFc,GAEZ,CAAE1gC,WAAW,IAET,CACH0gC,UAAAA,EACA6V,eAAAA,EACAE,SAAUR,EACVD,aAAAA,EACA1B,WAAAA,EACAsB,iBAAAA,EACAtwB,aAAAA,EACAwwB,iBAAAA,EACAY,KAAM,CAAEvkC,GAAAA,EAAIia,OAAAA,GAEpB,EAEAt1B,QAAS,CACL09C,6BAA4B,SAAC34C,GACzB7D,KAAKmR,QAAQxT,KAAK,uBAAD,OAAwBkvC,mBAC7B,yBACS,gBAAQA,mBACjB,yBACS,YAAIA,mBACDhpC,EAAM05C,WAAWl+B,eACpB,yBAAiBwtB,mBAC9B,sBACa,YAAIA,mBACDhpC,EAAM04C,QAAQl9B,gBAG1C,EACAgU,sBAAqB,SAACjZ,GAClBpa,KAAK0oC,UAAYtuB,CACrB,EACA43B,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,eAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,mBAC1B,KC9MiS,M,uBCAlF,GAAe,KCQlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvB5BhQ,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,cACtE,EACIrC,GAAkB,GCDlB,GAAS,CAAC,EAKV,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GCjBid,W,IAAM,EAAK,KAAoB,EAACJ,EAAM,MAAK,GAA+C,oB,OAAC,EAAM,WAAC,kBAAE,MAAC,CAACwB,MAAM,2BAACH,KAAOrB,iB,EAA2CA,2BAAoB,Y,MAAC,CAAC0B,MAAAA,MAAyB,eAAIe,MAAG,a,YAA6E,EAAS,KAACmG,IAAG,O,GAAkB,WAAC,MAAO,CAACnG,EAAG,iI,SAAsDA,I,MAA+D3C,EAAM,c,OAAC,EAAO,c,MAAE,C,KAAIE,I,aAAwN,e,SAAmB,SAAQ,G,EAAE,c,EAAyB,4BAAM,CAACyC,EAAG,aAAyC,CAACjB,YAAM,OAACH,IAAK,UAAakB,GAAAA,SAAS,GAAgBvC,IAAIS,EAAK,EAAI,KAAC,uBAACiB,YAAW,aAAO,0BAAO,MAAO,CAAQ,UAAgB,0IAAO,MAAO,CAAQ,kBAAO,cAAC,GAAG,aAA+B,kBAAC,OAAiE,OAAkB,S,MAAC,CAAc,MAAO,EAAG,MAAC,SAAU,SAAG,GAAC,QAAYk/C,CAAgB,EAAW,WAAW,UAAKj4C,CAAAA,EAAAA,GAAAA,EAAW,C,MAAc,CAAYC,aAAG,K,QAAgD,C,YAA8B,M,QAAe,C,aAAoB,mC,MAAG,EAAQ,QAAqD,mBAAG,SAAC,GAACpH,MAAM,GAACH,SAAWw/C,GAAYt+C,MAAQ,EAAC,gB,MAAoBs+C,GAAc,UAAC,IAAwB,mBAAIp+C,IAAG,YAAkB3C,GAAK,SAAC,GAAC,MAAQE,CAAAA,EAAIoR,GAAAA,EAAG,MAAkC,MAAQpR,CAAY,cAAkB,WAAC,MAAY8gD,IAAiC,GAAO,CAAI,MAAa,WAAY,gDAACn4C,K,MAAwC,C,MAAe,EAAQlG,W,SAAyB,SAAC,G,EAAC,WAAa,C,aAA0B,gB,OAAe,C,aAAqB,uC,MAA+B,U,YAAiC,O,MAAC,qB,SAAG,GAA6D,SAAG,SAAC,GAACjB,MAAM,I,YAAqC,O,IAAmB,YAAmB,GAAC,YAACE,MAAAA,CAAU,EAAC,WAAgB,OAAQe,cAAW,WAAO,SAAO,MAAC,IAAU,IAAe,eAAO,cAAC,YAAG,4BAAO,IAA2B,SAAc,EAAC,gBAA2B,qBAAC,K,MAAiD,CAAc,QAAU,eAAK,SAAO,YAAQ,kBAACjB,EAAOH,WAAWgY,qB,GAAuC,EAACA,GAAAA,EAAAA,C,MAAc,CAAC3X,KAAAA,OAA0B,EAAG,KAAI,CAAS5B,MAAM,CAAC,KAAO,MAAM,CAAC2C,EAAG,mBAAQ,CAAC3C,MAAM,CAAC,MAAO,iCAAG,kBAAI2C,MAAG,iBAAoB3C,SAAM,GAAC,SAAQE,EAAiC,KAAO,S,MAAsC,CAAc,QAAU,UAAK,SAAO,YAAQ,aAACwB,EAAOH,WAAW8X,gB,GAAqC,EAACA,GAAAA,EAAO,C,MAAK,CAACzX,KAAAA,OAAwB,EAAG,KAAI,CAAyC5B,MAAM,CAAC,KAAO,MAAM,CAAC2C,EAAG,mBAAQ,CAAC3C,MAAM,CAAC,MAAO,+BAAe,gBAAI2C,MAAG,EAAQ,aAAC3C,SAAM,GAAC,SAAU,EAAwD,cAA6D,MAAC,CAAG,MAAC,UAAC,SAAQ,SAASuc,GAAQ,UAAW0kC,CAAiB,EAAC,yBAAiBjhD,IAAM,2B,MAAC,CAAS,YAAyH4C,EAAAA,GAAAA,EAAW,CAAQ5C,MAAM,CAAC,KAAO,kBAA4C,CAAC2C,EAAG,KAAY+N,MAAK,CAAkB/N,UAAW,2CAAC3C,QAAM,8BAAC,MAAQ,aAAqB,GAAC,CAAG,MAAC,YAAC,OAAQ,mB,IAAiE,QAAE,MAAK,CAAUA,KAAM,KAAU,6GAAE,YAAS,OAA0GA,MAAM,CAAC,MAAOE,EAAIghD,GAAAA,oCAAgB,CAACv+C,EAAG,WAAW,CAAEC,KAAAA,iBAAoB,CAACD,EAAG,KAAmBqE,MAAI,CAAkBpE,MAAW,YAAQ5C,KAAM,I,GAA6B,CAA0C,eAAqB,GAAC,eAAmB,mBAAG,WAAC,IAA2B,GAAG,IAAK2C,CAAkBE,MAAG,CAAC,KAAO,KAA2B,GAAG,sGACj3I,OACGvC,KAAAA,EAAAA,iB,8SCFAgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCMhB+8B,GAAa,IAEN8jB,GAAoC,SAACC,GAC9C,IAE+C,EAFzCriB,EAA2C,GAC7C1jB,EAAI,EAAE,WACa+lC,EAAev+B,WAAS,IAA/C,IAAK,EAAL,qBAAiD,KAAtCw+B,EAAQ,QACTzgD,EAAQ+3B,GAAkBtd,EAAIsd,GAAkBtgB,QAChDtX,EAAOsgD,EAAS1hB,aAAaxwB,KAAI,SAAAD,GAAC,MAAK,CACzCyZ,EAAG,IAAIrO,KAAKpL,EAAEyT,WAAWid,UACzBC,EAAG3wB,EAAEyuB,QACR,IACDoB,EAASj/B,KAAK,CACViB,KAAAA,EACA6mB,MAAOy5B,EAASl+C,KAChBi8B,gBAAiB,OAAF,OAASx+B,EAAK,KAC7B27B,YAAa,QACbG,YAAa,EACb8C,MAAQnC,GAAahiB,IAEzBA,G,CACH,iCACD,MAAO,CACHigB,OAAQ,GACRyD,SAAAA,EAER,EAYA,YAAgBqE,EAA8BxjC,EAAmByjC,GAC7D,IAAQ5T,EAA0B7vB,EAA1B6vB,aAAc4Q,EAAYzgC,EAAZygC,QAChBp9B,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACtC9yB,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACL28B,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAEJvJ,YAAaoI,GAErB16B,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,IAGfwB,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,MAAO,CAACA,EAAK0pB,QAAQvX,MACzB,EACA0d,WAAU,SAAC7vB,GACP,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAAkBpG,EAAQp+B,KAC1BykC,EAAoBD,EAAO9vB,EAAKgwB,WAChCC,EAAeH,EAAOp2B,KAAI,SAAC+iB,GAAQ,OAAKA,EAAE2N,CAAC,IAAEpd,QAAO,SAACyP,EAAGC,GAAC,OAAKD,EAAIC,CAAC,IACnEwT,EAAiBD,EAAevG,EAAQp+B,KAAKsX,OAC7CqB,EAA+BvX,KAAK0O,MAAMzG,OAAOrJ,KAAKg+B,SAAS5vB,KAAI,SAAAmyC,GAAE,OAAIA,EAAGvgD,KAAK0U,EAAKgwB,UAAU,IAChG8b,EAAa7nC,EAAMvK,KAAI,SAAAsL,GAAC,OAAK,OAADA,QAAC,IAADA,OAAC,EAADA,EAAGolB,IAAK,CAAC,IAAEpd,QAAO,SAACyP,EAAGC,GAAC,OAAKD,EAAIC,CAAC,IAC7DqvB,EAA0Bhc,EAAW3F,GAAK0hB,GAAc/b,EAAW3F,GAAK,IACxE+F,GAAwBJ,EAAW3F,EAAI8F,GAAkBA,EAAiB,IAChF,MAAO,CAAC,UAAD,OACOp3B,EAAei3B,EAAW3F,EAAGpQ,IAAa,UACjD+xB,EAAuB3b,QAAQ,GAAE,wBAAgBt3B,EAAegzC,EAAY9xB,GAAa,eACzFmW,EAAsB,EAAI,IAAMA,EAAoBC,QAAQ,GAAKD,EAAoBC,QAAQ,GAAE,iBAE1G,GAEJlB,KAAM,UAGd8c,MAAO,CACH9c,KAAM,WAGV0B,YAAY,EACZC,qBAAqB,EACrBN,YAAa,CACTC,WAAW,GAEf5F,QAAO,SAACr6B,EAAO,EAAW6K,GAAK,oBAAfkN,EAAO,KACnB,GAAKA,EAAL,CACA,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cACvCmD,GACDkB,GACAA,EAAQ,CACJ3mB,MAAOylB,EAAQK,MACfr8B,KAAMg8B,EAAQvX,OANF,CASxB,EACA2e,OAAQ,CACJ5d,EAAG,CACC1oB,KAAM,OACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX+lC,KAAM,IACNjN,KAAM,CACF3X,KAAM,UAGd8d,EAAG,CACC5/B,KAAM,SACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEXtgB,IAAK,EACLwjB,KAAM,IACNh+B,MAAO,CACH1G,KAAM,SAAF,OAAWwtB,EAAY,KAC3B7uB,MAAOgjC,EACPvJ,SAAS,GAEboF,MAAO,IACPpF,SAAS,KAIrBe,QAAS,CAACP,MAEd,OAAOhqB,CACV,ECxJD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHQ,KAAM8C,QAEV+C,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAE5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAChB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM0B,MAAMQ,OAAS,QAC5BujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBAE3BiiB,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY,QAE/BL,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC6tB,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQ6wC,GAAwB1a,EAAOzlC,MAAO,CAChDkuB,aAAcA,EAAaluB,MAC3B8+B,QAAO,SAACr6B,GACJ8gC,EAAK,QAAS9gC,EAClB,GAEJq1B,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QA7BiB,CA8B3B,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEtB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAC3B,EACAljC,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MCnEuS,MCO/S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,YClBYxkC,GAAOK,WAAS,MAAU,KAA0BhD,EAAK,EAAC,S,OAAC,OAAYY,EAAK,S,MAAC,CAAgB,QAAa,MAAgB,KAAQ,EAACV,KAAW,cAAYqB,EAAAA,WAAM,gBAACsH,MAAW,EAAC3I,O,YAA0B,KAAU,E,IAAC,UAA0B,GAAC,WAACoS,MAAM,iBAAM,EAAa,WAClT,UACGhS,WAAAA,EAAe,QAAK,yEAExB,E,MCmBA,IACAC,MAAAA,CACAK,MAAAA,CACAX,KAAAA,OACAS,QAAAA,WAEA8S,KAAAA,CACAvT,KAAAA,OACAS,QAAAA,IAEAihD,WAAAA,CACA1hD,KAAAA,QACAS,SAAAA,GAEAsT,OAAAA,CACA/T,KAAAA,QACAS,SAAAA,GAEAa,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,KC3C+P,MCO3P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCYhC,IAAe+F,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRk7C,kBAAAA,GACAhQ,gBAAAA,GACAiQ,OAAAA,IAEJl5C,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,qBAClB,EACAvQ,KAAI,sBACM20B,EAAkC,CACpCrb,aAAc,KACdO,iBAAkB,MAEtB,MAAO,CACHknC,aAAc,EACdf,WAAY,KACZgB,eAAgB,GAChBrrC,QAAS,GACT6C,UAAWhB,KAASypC,SAAS,EAAG,UAChCC,WAAW,EACX5oC,QAASd,KACT2pC,SAAS,EACTtsB,cAAe,GACfusB,mBAAoB,GACpBjB,cAAe,CAAE5lB,OAAQ,GAAIyD,SAAU,IACvCp+B,OAAO,EACPyhD,YAAa,CAAC,SAACvvC,GAAC,QAAOA,GAAK,yBAAyB,GACrDwvC,eAAgB,CACZ,WACI,IAAM9oC,EAAYhB,GAAON,IAAK,EAAasB,WAAWC,QAAQ,SACxDH,EAAUd,GAAON,IAAK,EAAaoB,SAASC,MAAM,SACxD,QAAIC,EAAUs3B,SAASx3B,IACX,gDAChB,GAEJipC,aAAc,CACV,WACI,IAAM/oC,EAAYhB,GAAON,IAAK,EAAasB,WAAWC,QAAQ,SACxDH,EAAUd,GAAON,IAAK,EAAaoB,SAASC,MAAM,SACxD,QAAIC,EAAUs3B,SAASx3B,IACX,+CAChB,GAEJynC,gBAAiB,CAAC,SAACjuC,GAAC,QAAOA,GAAK,yBAAyB,GACzDmuC,mBAAoB,CAAC,SAACnuC,GAAC,OAAKA,EAAEwF,OAAS,GAAK,iCAAiC,GAC7Eqd,aAAAA,EACA6sB,gBAAiB,KACjBC,2BAA4B17C,EAAAA,EAAAA,6BAEpC,EACM/B,QAAO,wIACT,EAAK8Z,aAAa,0CADT,EAEb,EACAha,UAAU,QACN0c,OAAM,WACF,IAAM/K,EAAiB,GAEvB,GADAA,EAAK1W,KAAKqC,KAAK4+C,YACX5+C,KAAK4/C,gBAAkB5/C,KAAK4/C,eAAe1pC,OAAS,EAAG,KAClB,EADkB,WACrClW,KAAK4/C,gBAAc,IAArC,IAAK,EAAL,qBAAuC,KAA5BxrC,EAAG,QACVC,EAAK1W,KAAKyW,E,CACb,iC,CAEL,MAAO,CACHmC,YAAavG,GAAAA,QACbgR,IAAK5K,GAAON,IAAI9V,KAAKoX,UAAW,YAAYC,QAAQ,SAASR,SAC7D0J,IAAKnK,GAAON,IAAI9V,KAAKkX,QAAS,YAAYC,MAAM,SAASN,SACzDoK,WAAY5M,EAEpB,EACAqF,aAAY,WACR,IAAMA,EAAe1Z,KAAKof,OAAO6B,WAAWlK,QAAO,SAAAsQ,GAAC,OAAIA,CAAC,IAAEra,KAAI,SAACqa,GAAC,qBAAaA,EAAC,IAC/E,OAAO3N,CACX,IACG0U,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACL4d,YAAYgL,EAAAA,GAAAA,IAAQ,iBAAgB,yCAAE,6GAETxG,KAAgBtU,MAAK,SAACsjB,GAAC,OAAKA,EAAEtxB,IAAI,IAAC,OAAxDoB,KAAKuU,QAAU,EAAH,yDAEZ7U,EAAAA,EAAAA,IAAW,4CACXM,KAAKuU,QAAU,GAAG,yDAEzB,SAPoD+rC,IAAW,sCAAXA,CAAW,CAA5B,IAQpCxB,iBAAiBp3B,EAAAA,GAAAA,IAAQ,kBAAiB,yCAAE,4FAG6C,GAH7C,SAEpC1nB,KAAK2/C,aAAe,KACdvgC,EAASsoB,GAA2B1nC,KAAKuzB,cAC1CnU,EAAQ,CAAF,gDAEoE,OAD/EA,EAAOxI,SAAWR,GAAON,IAAI9V,KAAKoX,WAAWC,QAAQ,SAASR,SAASgD,cACvEuF,EAAOvI,OAAST,GAAON,IAAI9V,KAAKkX,SAASC,MAAM,SAASN,SAASgD,cAAc,SAEnDyF,IAAS,kBAC9BF,GAAM,IACTzF,YAAa3Z,KAAK0Z,aAClB6F,OAAQ,CAACxP,GAAgBwwC,QAASxwC,GAAgBywC,UACpD,OAJI1P,EAAgB,EAAH,KAMnB9wC,KAAKogD,gBAAkBvS,GAAyB4S,qBAC5CrhC,EACApf,KAAK0Z,aACLo3B,GAEJ9wC,KAAK++C,cAAgBC,GAAkClO,GAAe,sDAGtEpxC,EAAAA,EAAAA,IAAW,wCACXM,KAAKyzB,cAAgB,GACrBzzB,KAAKggD,mBAAqB,GAC1BhgD,KAAK++C,cAAgB,GACrB/+C,KAAK2/C,aAAe,EAAE,0DAE7B,SA5B0De,IAAY,sCAAZA,CAAY,CAA7B,IA6B1C1nB,OAAM,SAAC1lB,GACH,IAAMiE,EAAQvX,KAAK4/C,eAAenoC,QAAQnE,GACtCiE,GAAS,GAAGvX,KAAK4/C,eAAezrB,OAAO5c,EAAO,EACtD,EACAy6B,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,gBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,sBAC1B,KCxJqS,M,uBCAxF,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtByD,GAAU,W,IAA8BtR,EAAM,K,EAAC,EAAO,MAAKsR,GAAsB,EAAC,kB,OAAe,aAAa,kB,MAAC,CAAqB,wBAAI3O,KAAG,eAAS3C,SAAM,GAAC,mBAAmB,K,CAAU,O,MAAc,CAAe,MAAQ,YAAI,IAAO,GAAI,SAAQ,GAAG,aAAG,OAAC,GAAC,MAAQ,G,MAAwBE,IAAwB,IAAIyC,MAAG,SAAiB,GAA8CC,OAAW,EAAC,mBAASD,I,CAAoB,MAAS,mD,YAAS,Q,CAAC,OAAM,CAAE,OAAIA,KAAG,GAAe3C,IAAM,GAAC,IAAO,K,CAAmO,gBAAiB,C,MACnyB8iD,C,MACAC,EAAAA,GAAAA,WAAAA,CAAqBA,EAAAA,aAAAA,EAAAA,YAAAA,cACvB,YAAC,wIAAC,oDAAM,kBAAmB,EAACv1B,kBAA6CxtB,gBAAM,wBAAoB,GAAK,EAAC,2CAGQ,EAAC,KAHT,QAAE,OAAI2C,KAAG,GAAe3C,IAAM,GAAC,IAAO,K,CAAgI,gBAAiB,C,MAC9R8iD,C,MACAC,EAAAA,GAAAA,WAAAA,CAAqBA,EAAAA,YAAAA,EAAAA,YAAAA,cACvB,YAAC,8CAAC,oDAAM,kBAAiB91B,EAAAA,kBAAyDjtB,gBAAM,wBAAoB,GAAM,6CAGnD,EAAC,KAHkD,QAAE,OAAI2C,KAAG,GAAe3C,IAAM,GAAC,IAAO,K,CAAiH,gBAAiB,C,MACxR8iD,C,MACAC,GAAAA,OAAiB7iD,EAAI6iD,YAAAA,EAAAA,YAAAA,QAAAA,GAAAA,EAAAA,KACvB,YAAC,yCAAC,oDAAM,kBAAc,oBAAU/iD,gBAAM,wBAAoB,GAAM,QAAE,OAAI2C,KAAG,GAAe3C,IAAM,GAAC,IAAO,K,CAAsF,gBAAiB,C,MAC3M8iD,C,MACAC,EAAAA,gBACF,YAAC,iDAAC,oDAAM,kBAAc,oBAAC/iD,gBAAM,wBAAc2C,GAAG,QAAgB3C,MAAM,CAAC,KAAO,KAAoB,CAAC2C,EAAG,gBAAmB3C,MAAM,CAAC,MAAOE,mBAAqB,GAAG,kBAAgB,CAAEF,MAAM,CAAC,KAAO,oBAAM2C,IAAG,UAAiB,CAAEqE,MAAI,CAAkBhH,KAAM,K,CAAkD,oBAAmBitB,C,IAAyB,kB,MAA+C,CAA2D,uCAAI,aAAW,2BACrd,2CACG3sB,WAAgB,EAAI,+C,kBCdpBgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCOhB+8B,GAAa,IACb2lB,GAAuB,GACvBC,GAAuB,GAEhBC,GAAwC,SACjDzkB,EACA0kB,GAEA,IAAMpkB,EAAoD,GAiB1D,GAhBAN,EAAY2kB,UAAUhoC,SAAQ,SAAC0H,EAAGzH,GAC9B,IAAMza,EAAQ+3B,GAAkBtd,EAAIsd,GAAkBtgB,QAChDgrC,EAAgD,CAClDtiD,KAAM,GACN6mB,MAAO9E,EAAEwgC,aAAe,UACxBlkB,gBAAiB,OAAF,OAASx+B,EAAK,KAC7B27B,YAAa,QACbG,YAAa,EACb8C,MAAOnC,GAAahiB,GAExBgoC,EAAgBtiD,KAAO+hB,EAAEygC,uBAAuBp0C,KAAI,SAACuuB,GAAC,MAAM,CACxD/U,EAAG,IAAIrO,KAAKojB,EAAElJ,KAAMkJ,EAAEnJ,MAAQ,EAAG,GAAGqL,UACpCC,EAAGnC,EAAEoe,KAAOpe,EAAE8lB,OACjB,IACDzkB,EAASj/B,KAAKujD,EAClB,IACIF,EAAY,CACZ,IAAMM,EAA+C,CACjDxjD,KAAM,OACNc,KAAM,GACN6mB,MAAO,SACPwX,gBAAiB,uBACjB7C,YAAa,oBACbmnB,MAAM,EACNC,QAAS,GACTnkB,MAAOwjB,GACPY,QAAS,MAEPC,EAA8C,CAChD9iD,KAAM,GACN6mB,MAAO,eACPwX,gBAAiBE,KAAAA,KAAa,SAAU,WACxCE,MAAOyjB,GACPvmB,YAAa,EACbH,YAAa,SAEjBkC,EAAYqlB,oBAAoB1oC,SAAQ,SAAC5D,GACrC,IAAMizB,EAAO,IAAInwB,KAAK9C,EAAEgd,KAAMhd,EAAE+c,MAAQ,EAAG,GAC3CkvB,EAAc1iD,KAAKjB,KAAK,CAAE6oB,EAAG8hB,EAAK7K,UAAWC,EAAGroB,EAAE+iB,SAClDspB,EAAc9iD,KAAKjB,KAAK,CAAE6oB,EAAG8hB,EAAK7K,UAAWC,EAAGroB,EAAEgsC,QACtD,IACAC,EAAc1iD,KAAO0iD,EAAc1iD,KAAKw/B,MAAK,SAACrO,EAAGC,GAAC,OAAKA,EAAExJ,EAAIuJ,EAAEvJ,CAAC,IAChEk7B,EAAc9iD,KAAO8iD,EAAc9iD,KAAKw/B,MAAK,SAACrO,EAAGC,GAAC,OAAKA,EAAExJ,EAAIuJ,EAAEvJ,CAAC,IAChEoW,EAASj/B,KAAK2jD,GACd1kB,EAASj/B,KAAK+jD,E,CAElB,MAAO,CACHvoB,OAAQ,GACRyD,SAAAA,EAER,EAMA,YAAgBqE,EAA8BxjC,EAAmByjC,GAC7D,IAAQ5T,EAAiB7vB,EAAjB6vB,aACFxsB,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACtC9yB,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACL28B,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAERvJ,YAAaoI,GAEjB16B,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,KAInByC,YAAY,EACZC,qBAAqB,EACrBN,YAAa,CACTC,WAAW,EACXtB,KAAM,SAEV4B,OAAQ,CACJ5d,EAAG,CACC1oB,KAAM,OACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX+lC,KAAM,IACNjN,KAAM,CACF3X,KAAM,UAGd8d,EAAG,CACC5/B,KAAM,SACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEXtgB,IAAK,EACLwjB,KAAM,IACNh+B,MAAO,CACH1G,KAAM,SAAF,OAAWwtB,EAAY,KAC3B7uB,MAAOgjC,EACPvJ,SAAS,GAEboF,MAAO,IACPpF,SAAS,GAEb0pB,GAAI,CACA9jD,KAAM,SACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOA,EAAMskC,QAAQ,GAAK,GAC9B,GAEJnD,SAAU,QACVgE,KAAM,CACFsd,iBAAiB,MAKjC5oB,QAAS,CAACP,MAEd,OAAOhqB,CACV,EC9JD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLQ,KAAM8C,QAER+C,MAAK,SAAC6T,GACJ,IAAMssB,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAC5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAClB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM0B,MAAMQ,OAAS,QAC5BujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBAE3BiiB,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY,QAE/BL,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC6tB,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQozC,GAA4Bjd,EAAOzlC,MAAO,CACtDkuB,aAAcA,EAAaluB,OAE7B85B,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QA1BiB,CA2BzB,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACRL,GACF,KACAljC,EAAAA,EAAAA,QACE,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEpB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EACzB,EACAljC,MAAO,CACL,sBAAuB,CACrBE,QAAO,WACLhC,KAAKglC,aACP,MC9DiT,MCOnT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYxkC,GAAOK,WAAS,MAAU,KAAgBhD,EAAK,EAAC,S,OAAC,iBAAmB,C,MAAC,CAAsC,kBAAI2C,QAAG,UAAe,yB,CAAQ,OAAcnB,C,MAAQ,CAA6B,kBAAoB,MAAS,EAACtB,iBAAW,iBAAcc,GAAQ,mBAAG,QAAC,W,GAAkCd,CAAiB,gBAAC,YAAC,U,EAAmD,6BAAE,UAAC2I,G,YAAoD,O,IAAkB,wB,GAAC,SAAc,GAA6E,aAAG,+EAACnG,GAAyBoG,C,IAAqB,qB,GAAC,SAAc,GAA0E,aAAG,4EAACpG,GAA2BoG,C,IAAqB,uB,GAAC,SAAc,GAA4E,aAAG,8EAACpG,GAA2BoG,C,IAAqB,uB,GAAC,SAAc,GAAmD,aAAG,yDAACpG,GAA4BoG,C,IAAqB,wB,GAAC,SAAc,GAA6E,aAAG,+EAACpG,GAAyBoG,C,IAAqB,qB,GAAC,SAAc,GAA0E,aAAG,4EAACpG,GAA2BoG,C,IAAqB,uB,GAAC,SAAc,GAA4E,aAAG,8EAACpG,GAA2BoG,C,IAAqB,uB,GAAC,SAAc,GAAmD,aAAI,MAAK,GAAI,gDAAI,IACz/C,YACGxI,EAEJ,E,MC+BA,IACAC,MAAAA,CAAAA,QAAAA,eAAAA,UAAAA,cACAQ,KAAAA,WACA,OAAAmsC,OAAAA,eACA,EACAroC,SAAAA,CACAq/C,iBAAAA,WACA,kBAEA,4BACA,oEACAC,QAAAA,EACAC,KAAAA,EACAC,OAAAA,EACAC,OAAAA,GAEA,gEACAH,QAAAA,EACAC,KAAAA,EACAC,OAAAA,EACAC,OAAAA,GAEA,OACA50B,WAAAA,EAAAA,WACA4zB,aAAAA,EAAAA,aACAiB,iBAAAA,EAAAA,QACAC,cAAAA,EAAAA,KACAC,gBAAAA,EAAAA,OACAC,gBAAAA,EAAAA,OACAC,iBAAAA,EAAAA,QACAC,cAAAA,EAAAA,KACAC,gBAAAA,EAAAA,OACAC,gBAAAA,EAAAA,OAEA,IA3BA,EA4BA,EACAtjD,QAAAA,WACA,kCACA,kDACA,GACA8hD,aAAAA,gBACAiB,iBAAAA,GAAAA,OAAAA,EAAAA,YACAC,cAAAA,GAAAA,OAAAA,EAAAA,SACAC,gBAAAA,GAAAA,OAAAA,EAAAA,WACAC,gBAAAA,GAAAA,OAAAA,EAAAA,WACAC,iBAAAA,GAAAA,OAAAA,EAAAA,YACAC,cAAAA,GAAAA,OAAAA,EAAAA,SACAC,gBAAAA,GAAAA,OAAAA,EAAAA,WACAC,gBAAAA,GAAAA,OAAAA,EAAAA,YAWA,OARA,sBACAtjD,EAAAA,CACA8hD,aAAAA,gBACAkB,cAAAA,GAAAA,OAAAA,EAAAA,SACAI,cAAAA,GAAAA,OAAAA,EAAAA,WAIA,uCACA3iD,KAAAA,EAAAA,GACAV,MAAAA,EACAswB,UAAAA,EACA,GACA,ICnGsQ,MCOlQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCLhC,IAAeprB,EAAAA,EAAAA,iBAAgB,CAC7BkC,MAAK,SAAC2qB,GACJ,OAAOA,EAAIhiB,GAAG,4BAChB,EACA5K,WAAY,CACVq+C,eAAAA,GACAC,eAAAA,IAEF/jD,QAAS,CACPgkD,kBAAiB,WACf,IAAMC,EAAQ/iD,KAAKgjD,MAAM,mBACnB3jD,EAAU0jD,EAAM1jD,QAChB44C,EAAe54C,EAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,IACzCo0C,EAAYuP,EAAMhB,iBAAiB/0C,KAAI,SAACkM,GAAC,OAAK++B,EAAajrC,KAAI,SAACkjB,GAAC,OAAKhX,EAAEgX,EAAE,GAAC,IACjFsjB,EAAU0E,QAAQ74C,EAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAEpZ,IAAI,KAC3C4yC,GAAAA,UAAqBc,EAAWxzC,KAAKmP,GAAG,sCAC1C,GAEFvQ,KAAI,WACF,MAAO,CACLw8C,QAAS,KACT6H,cAAe,CAAE9pB,OAAQ,GAAIyD,SAAU,IACvCsmB,YAAa9sC,GAAON,MAAM+pC,SAAS,EAAG,UAAUxoC,QAAQ,SAASR,SACjEssC,UAAW/sC,GAAON,MAAMe,SAE5B,EACAnU,UAAU,QACR0gD,aAAY,WACV,OAAKpjD,KAAKo7C,QACHp7C,KAAKo7C,QAAQgI,aADM,CAE5B,EACAC,YAAW,WACT,OAAKrjD,KAAKo7C,QACHp7C,KAAKo7C,QAAQiI,YADM,CAE5B,EACAC,YAAW,WACT,OAAKtjD,KAAKo7C,QACHp7C,KAAKo7C,QAAQkI,YADM,CAE5B,EACAC,gBAAe,WACb,OAAKvjD,KAAKo7C,QACHp7C,KAAKo7C,QAAQ6F,UAAU/qC,OADJ,CAE5B,EACAyqC,kBAAiB,WACf,OAAOvqC,GAAON,IAAI9V,KAAKkjD,aAAaz1C,OAAO,WAC7C,EACAmzC,gBAAe,WACb,OAAOxqC,GAAON,IAAI9V,KAAKmjD,WAAW11C,OAAO,WAC3C,IACG2gB,EAAAA,GAAAA,IAAU5C,KAETzrB,QAAO,8IAEgC,OAFhC,SAET,EAAKma,MAAM4M,MAAM,wBAAwB,SACtBzF,GAAmB,EAAK6hC,YAAa,EAAKC,WAAU,OAAjEvkD,EAAO,EAAH,KACV,EAAKw8C,QAAUx8C,EACf,EAAKqkD,cAAgBlC,GAAsCniD,GAAO,EAAKksB,YAAYO,iBAAiB,eAAe,mDAEnH1rB,GAAAA,EAAAA,MAAe,eAAgB,qDAAqD,QAE7C,OAF6C,UAEpF,EAAKua,MAAMqN,IAAI,wBAAwB,2EAT9B,EAWb,IC3E8S,M,uBCAxF,GAAe,KCOnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4B9M,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,EAACE,MAAO,Y,OAAwB,EAAM,WAAC,kBAAa,OAAIyC,MAAG,KAAa,wBAA0B3C,KAAM,iBAAmC,+BAAC6C,MAAG,CAAC,MAAQ,yB,GAAoD,CAAC,kBAAM,OAAC,mBAAqB,EAACD,KAA0B,uBAAwB,C,YAAkD1C,O,MAAoB,CAA6C,6DAAC2I,MAAW,EAAC3I,gBAASwC,gBAAI,EAAe,0B,YAAuBC,EAAG,K,IAAgBC,gB,GAAoC5C,W,MAAO,QAAe,C,YAAe,wB,MAAS,CAAqB,eAAe,QAAI,KAAO,SAAG,kBAAe,GAAc,mBAAoC,KAAO,GAAuC,eAAY,cAAG,oCAAC0B,MAAM,oCAACH,UAAWokD,I,MAAyC,CAAwB,MAAC,cAAC/jD,SAAU,SAAC,GAAa,qBAAI,EAAC,4BAAiBe,EAAoB,OAAC,OAA+B,iBAAG,GAAG,CAChjC,+BAGD,IAASrB,E,QCJLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,aAAa,CAAC3C,MAAM,CAAC,MAAQE,EAAI0lD,aAAa,mBAAmB,aACpK,EACItlD,GAAkB,GCATulD,GAAiB,SAACjmD,GAC3B,IAAQkmD,EAAWlmD,EAAXkmD,OACR,MAAO,CACHj1C,MAAO,CACHuuB,gBAAiB,cACjBjwB,IAAK,gBAET42C,UAAW,CAAErhB,SAAS,GACtB9G,QAAS,CAAE8G,SAAS,GACpB/7B,MAAO,CAAE1G,KAAM,IACf+jD,cAAe,CAAEthB,SAAS,GAC1BrJ,OAAQ,CACJ4qB,UAAW,CACPrlD,MAAO,OAAF,OAAS+2B,GAAoB,MAEtCuuB,eAAgB,CACZtlD,MAAO,OAAF,OAAS+2B,GAAoB,MAEtCwuB,WAAY,CACRljD,MAAO,CACHrC,MAAO,OAAF,OAAS+2B,GAAoB,MAEtCyuB,YAAavuB,KAGrBwuB,UAAW,GACXC,YAAa,CACTC,OAAQ,CACJC,MAAO,CACHV,OAAQ,CACJzkB,MAAO,WACCykB,GAAUA,EAAO,iBACjBA,EAAO,gBAAgB3jD,KAE/B,MAKhBokD,OAAQ,CAAC,CACLpjD,KAAM,YACNvC,MAAO,UACP6lD,qBAAqB,EACrBC,cAAc,IAG1B,EAEaC,GAAwB,SAACC,EAAsBC,GAAyC,IAAzB7Z,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAAiB,KACnF8Z,EAAc,CAChBC,MAAO,UACPC,OAAQ,aAEN/+C,EAAS,CACXhI,KAAM,YACNkD,KAAMyjD,EACNK,OAAQ,KACRlmD,KAAM,GACNmmD,QAAS,GACTC,QAAS,MACT/hB,QAAoB,cAAXyhB,EACH,CACEO,eAAc,WACV,OAAIjlD,KAAKklD,EAAI,MACF,GAAP,OAAUllD,KAAKgB,KAAI,cACZhB,KAAKklD,EAAI,KACT,GAAP,OAAUllD,KAAKgB,KAAI,SACZhB,KAAKklD,EAAI,MACT,GAAP,OAAUllD,KAAKgB,KAAI,YACZhB,KAAKklD,EAAI,KACT,GAAP,OAAUllD,KAAKgB,KAAI,UAEZ,GAAP,OAAUhB,KAAKgB,KAAI,cAE3B,GAEF,CACEikD,eAAc,WACV,MAAO,GAAP,OAAgB,OAANpa,QAAM,IAANA,EAAAA,EAAU,IAAE,OAAG7qC,KAAKgB,KAAI,aAAKhB,KAAKklD,EAAExhB,QAAQ,GAAE,YAAIghB,EAChE,IAMZ,OAHIC,EAAYF,KACZ3+C,EAAO,SAAW6+C,EAAYF,IAE3B3+C,CACX,EAEaq/C,GAA6B,SAACC,EAAuBC,EAAkBZ,EAAsBa,EAAaC,EAAanmD,GAChI,MAAO,CACH4B,KAAMqkD,EACNG,KAAMJ,EACNhgC,SAAUq/B,EACVa,IAAAA,EACAC,IAAAA,EACAL,EAAG9lD,EAEX,EAEaqmD,GAAwB,SAACllC,GAClC,MAAO,CACHS,IAAK,EACLT,IAAAA,EACAmlC,MAAO,CACH,CAAC,EAAG,WACJ,CAAC,GAAK,WACN,CAAC,GAAK,WACN,CAAC,EAAG,YAGhB,ECtGaC,GAAoC,SAC/CC,EACAnxC,EACA6Y,EACAu4B,GAEA,IAAMC,EAAeF,EAAMhnD,KAAK0hB,QAAO,SAACylC,EAAKh+C,GAC3C,IAAMxH,EAAM,UAAGwH,EAAI0R,aAAY,YAAI1R,EAAIuR,YAAaowB,cAEpD,OADAqc,EAAIxlD,GAAOwH,EAAI8zC,UACRkK,CACT,GAAG,CAAC,GACE3B,EAAS1iD,OAAO8a,OACpB/H,EAAQ6L,QAAO,SAAC0lC,EAAKxxC,GACnB,IAAMyxC,EAAiB,UAAGzxC,EAAOiF,aAAY,YAAIjF,EAAOxT,MAAO0oC,cAC/D,IAAKoc,EAAaG,GAAiB,OAAOD,EAE1C,IAAMvsC,EAAejF,EAAOiF,aACtBysC,EAAcF,EAAIvsC,GACtBusC,EAAIvsC,IAAiB0sC,GAAmC1sC,EAAc6T,EAAcu4B,GActF,OAZIrxC,EAAO8wC,KACTY,EAAWtnD,KAAKjB,KACdwoD,GACE3xC,EAAOpN,GACPoN,EAAOxT,MAAQ,UACfyY,EACAjF,EAAO8wC,IACP9wC,EAAO4xC,KACPN,EAAaG,KAIZD,CACT,GAAG,CAAC,IAQN,OANA5B,EAAOlM,QAAQ,CACbl3C,KAAM,YACNvC,MAAO,UACP6lD,qBAAqB,EACrBC,cAAc,IAETH,CACT,EAEA,IAAe9/C,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAE6nB,MAAO9Q,OAChB1Q,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACH8e,GAAe5+C,EAAAA,EAAAA,KACnBshD,GAA4B,CAC1BxC,OAAQ,CACN0C,aAAY,SAACC,GACX,IAAMC,EAA6C,CACjDjtC,WAAYgtC,EAAUtlD,KACtByY,aAAc6sC,EAAUlC,OAAOpjD,MAEjC2jC,EAAK,QAAS4hB,EAChB,MAWN,OAPAzkD,EAAAA,EAAAA,QACE,kBAAMwW,EAAE2N,KAAK,IACb,SAACA,GACCw9B,EAAarkD,MAAMglD,OAASn+B,CAC9B,GACA,CAAEje,WAAW,EAAMjG,MAAM,IAEpB,CAAE0hD,aAAAA,EACX,IC9EoT,MCOlT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BtkD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,eAAe,CAAC3C,MAAM,CAAC,MAAQE,EAAIyI,OAASzI,EAAIoR,GAAG,0BAA0B,QAAUpR,EAAIoR,GAAG,8BAA8BzI,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,gBAAgBoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,iBAAiB,EAAE0B,OAAM,IAAO,MAAK,IAAO,CAAC3P,EAAG,gBAAgBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAC,EAAE,gBAAgB9f,EAAI+f,QAAO,GAAO/f,EAAIggB,cAAc,EAC1a,EACI5f,GAAkB,GCFmE,GAAU,W,IAAgBN,EAAM,K,EAAC,QAAUE,GAAY,EAAUA,MAAIsB,Y,OAAQ,OAAiB,C,MAAC,CAAgB,kBAAkC,QAAUtB,EAAI6xB,QAAS,QAAY7xB,MAAe,WAASA,KAAe,gCAAG,UAAC,WAAC,yB,OAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,GAAC,cAAC,E,mBAAgDA,SAAM,iBAAE,EAAC1T,gBAAkB,SAAE,GAACnG,EAAI,WAAK,CAACoG,G,YAAsClG,EAAW,GAAC,E,IAAO5C,M,oBAAiB,GAAO,KAAC,CAAa,mBAAE,MAAK,CAAgB4C,KAAAA,GAAmB5C,MAAM,gB,CAAoB,OAAS,C,YAAC,O,MAA8B,CAAkB,gBAAcE,GAA0C,KAAO,GAAqC,8BAACwB,eAAM,GAACH,YAAW8T,EAAAA,GAAW,mCAAC5S,MAAQ,EAAC,iC,MAAmC,CAACb,MAAAA,EAAU,WAAa,qBAAM,EAAE,YAAC,EAAM,WAAC,iBAAW,GAAUkH,E,OAAc,GAAkE,CAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,UAAiB,0CAACoG,E,OAAc2M,G,KAAkCzV,iB,YAAW,G,IAAqE,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAuB,OAAG,mFAAoB,YAAkB,uB,QAA2BzV,Y,YAAW,G,IAA4D,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAkB,OAAG,0EAA4B,YAAkB,kB,IAAwF,wBAAG,GAAC,SAAS,GAAG,aACzyD,2EACGnV,IAEJ,MAASgB,I,QCAIqnD,GAAkC,SAC3CZ,EACAnxC,GAEA,IAAMqxC,EAAeF,EAAMhnD,KAAK0hB,QAAO,SAACylC,EAAKh+C,GACzC,IAAMxH,EAAM,UAAGwH,EAAI0R,aAAY,YAAI1R,EAAIuR,YAAaowB,cAEpD,OADAqc,EAAIxlD,GAAOwH,EAAI8zC,UACRkK,CACX,GAAG,CAAC,GACJ,OAAOtxC,EAAQzH,KAAI,SAACD,GAAC,yBACdA,GAAC,IACJ05C,aAAcX,EAAa/4C,EAAE3F,KAAG,GAExC,EASA,IAAe9C,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH6nB,MAAO9Q,MACPtW,QAASqC,QACTosB,aAAclsB,QAElBqD,MAAK,WACD,IAAMmrB,GAAW/qB,EAAAA,EAAAA,KAAI,gBACfwqB,GAAaxqB,EAAAA,EAAAA,MAAI,GACjBgrB,GAAehrB,EAAAA,EAAAA,KAAI,IACnBqO,GAAarO,EAAAA,EAAAA,KAAmB,MACtC,MAAO,CAAE+qB,SAAAA,EAAUP,WAAAA,EAAYQ,aAAAA,EAAc3c,WAAAA,EACjD,EACAtU,KAAI,WACA,MAAO,CACHS,QAAS,CACL,CACIS,KAAME,KAAKmP,GAAG,gCACd/P,MAAO,YACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,mCACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,mCACd/P,MAAO,eACPswB,UAAU,IAI1B,IChE0S,M,uBCAxF,GAAe,KCQjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCnBhC,IAAeprB,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEmiD,aAAAA,IACdtoD,OAAO,kBAAKsoD,GAAatoD,OAAK,IAAEoI,MAAOpF,WCNuQ,M,uBCAxF,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCJhC,IAAekD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,MACRmG,WAAY,CAAEoiD,iBAAAA,GAAkBC,gBAAAA,IAChCpgD,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,uBAClB,EACAvQ,KAAI,WACA,MAAO,CACH6V,QAAS,GACToyC,cAAe,GACfC,gBAAiB,GACjBC,sBAAuB,GACvBvD,YAAa,KAErB,EACAzjD,QAAO,WACHC,KAAKgnD,iBACT,EACAtkD,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACL63C,iBAAgB,SAAC/3C,GACb,IAAQ6a,EAA6B7a,EAA7B6a,aAAcH,EAAe1a,EAAf0a,WACtBtZ,KAAKmR,QAAQxT,KAAK,2BAAD,OAA4B8b,EAAY,YAAIH,GACjE,EACA04B,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,mBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,wBAC1B,EACM63C,gBAAe,sKACsB1hD,QAAQ2H,IAAI,CAAC,EAAKg6C,gBAAiB,EAAKC,kBAAmBx6C,EAAAA,kBAAkC,EAAKoe,YAAYwC,gBAAe,gCAA7J7Y,EAAO,KAAEmxC,EAAK,KAAEx4C,EAAM,KAC7B,EAAKqH,QAAU+xC,GAAgCZ,EAAOnxC,GAASsC,QAAO,SAAAyP,GAAC,OAAIA,EAAEigC,aAAe,CAAC,IAC7F,EAAKK,gBAAkB,EAAKryC,QAC5B,EAAKoyC,cAAgBlB,GAAkCC,EAAOnxC,EAAS,EAAKqW,YAAYwC,aAAclgB,GACtG,EAAK25C,sBAAwB,EAAKF,cAAc,2CAL/B,EAMrB,EACAI,eAAev/B,EAAAA,GAAAA,IAAQ,kBAAgB,uBAAE,6GAEpBjY,EAAAA,EAAAA,KAAAA,IAAe,gBAAgB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,4EAE/Dc,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,wCAAwC,yDAGnE+3C,iBAAiBx/B,EAAAA,GAAAA,IAAQ,uBAAqB,uBAAE,0FAKvC,OALuC,SAElCtI,EAAS,CACX4B,IAAK5K,GAAON,MAAMmB,KAAK,GAAI,QAAQI,QAAQ,OAAO5J,SAClD8S,IAAKnK,GAAON,MAAMqB,MAAM,OAAO1J,UAClC,SACYgC,EAAAA,EAAAA,KAAAA,IAAe,mBAAoB,CAAE2P,OAAAA,IAAUxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,4EAE/Ec,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,6CAA6C,2DAI5ErN,MAAO,CACH0hD,YAAa,CACTxhD,QAAO,SAAC+F,GACJ,GAAU,IAAPA,GAAoB,GAAPA,EAGZ,OAFA/H,KAAK8mD,gBAAkB9mD,KAAKyU,aAC5BzU,KAAK+mD,sBAAwB/mD,KAAK6mD,eAGtC7mD,KAAK8mD,gBAAmB9mD,KAAKyU,QAAQsC,QAAO,SAAAyP,GAAC,OAAIA,EAAEigC,aAAe1+C,CAAG,IAErE,IAAMo/C,EAAO/gD,KAAKwe,MAAMxe,KAAKC,UAAWrG,KAAK6mD,gBAAiB9vC,QAAO,SAAAyP,GAAC,aAAKA,EAAE5nB,OAAc,QAAV,EAAI4nB,EAAE5nB,YAAI,aAAN,EAAQwoD,MAAK,SAAA1pB,GAAC,OAAIA,EAAEwnB,EAAIn9C,CAAG,OAAOye,EAAE5nB,IAAI,IAC7HuoD,EAAKluC,SAAQ,SAAA2C,GACNA,EAAQhd,OACPgd,EAAQhd,KAAOgd,EAAQhd,KAAKmY,QAAO,SAAAyP,GAAC,OAAIA,EAAE0+B,EAAIn9C,CAAG,IAEzD,IACA/H,KAAK+mD,sBAAwBI,CACjC,MC5FoS,M,uBCAxF,GAAe,KCOnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBuNtpD,GAAM,W,IAAC,O,EAA4DsyC,EAAAA,MAAAA,GAAmC,oB,OAAC,aAAW,kBAAE,MAAC,CAACzpC,MAAW,EAAC3I,GAAIoQ,yBAAK5N,KAAI,S,EAAwB,KAAYrC,CAAE,EAAC,eAAempD,CAAAA,EAAAA,cAAiB3jB,C,MAAyB,CAACvzB,MAAM,gDAAM,gCAAgBxJ,SAAG,I,YAA+E,OAACwJ,IAAK,UAAO,cAAM,MAAC,MAAa,IAAC,gDAACtS,EAAO,OAAO,G,CAAmF,IAAE,WAAC,cAAc,4DAAC6I,EAAqBnG,OAAI,O,EAAwB,cAAe,C,MAAsD,CAAC4P,MAAM,6CAAM,gCAAgBxJ,SAAG,I,YAA4E,OAACwJ,IAAK,UAAO,cAAKpS,MAAI+sB,CAAAA,EAAAA,GAAYgB,IAAAA,EAAS5hB,GAAAA,EAAS,sBAAsB,IAAK,YAAgBzJ,EAA4B5C,OAAM,GAAC,CAAoD,eAAc,cAACs1B,MAAS,mDAAC,E,OAAyB,OAAmC,yEAACzsB,YAAY3I,gB,MAAa,CAAU4I,MAAG,0C,SAAmB5I,I,SAAkN,CAAK,MAAC,YAACwC,OAAI,wBAAWoG,G,YAAyD,O,iBAAoF,WAAC,MAAM,CAACzI,EAAG,GAAG,IAAK+R,EAAGlS,IAAI2yC,EAAAA,sBAAyB,gCAAM,8GAAEvgC,OAAM,GAAM,CAAyB,IAAKnC,WAA4BnQ,GAAK,WAAE,MAAQE,CAAAA,EAAIoR,yBAAG,CAAqC,OAAmB,MAAc+K,EAAAA,qBAAS,EAAsB,8CAAQ,SAAgB,EAAC,oCAACrc,EAAO,WAAuB,MAAOE,EAAIu1B,cAAa,WAAcv1B,EAAIupD,eAAAA,CAA8B,MAAC,CAAG,MAAC,0CAAC,aAAY9zB,MAAoB,6CAA2B/yB,CAAAA,EAAAA,iBAAkB,CAAC5C,MAAM,CAAC,WAAQ,UAAwB,oBAAI2C,YAAG,qBAAmB,a,GAAQ,CAA0B,QAAY,yBAAqE,oBAAuB,CAAkB,mBAAG,MAAK,CAAkD,MAAC,2BAA+B,uBAAG,MAAI,CAAY3C,MAAM,gBAAC,WAAY,qBAAM,2CAAC0B,QAAM,kCAAuCe,IAAAA,GAAS,yBAAe,iB,GAACvC,CAAiC,MAAC,wBAAuC,QAAE,MAAK,CAAUF,YAAM,O,MAAmB,CAAS,kCAAI2C,SAAG,SAAe,GAACC,EAAAA,0BAAY,CAAYD,EAAa3C,WAAM,8BAAU,SAAE,MAAMK,CAA0FuC,MAAW,UAAU1C,KAAO,K,CAA2Q,QAAQ,C,YAAqBwpD,W,CAAiC,OAAC,OAAI/mD,KAAG,K,CAA+B,KAAM,mBAAG,qD,YAAO,QAA6C,gQAAE,GAAI,CAAW3C,MAAM,YAAC,EAAM,2BAAC,CAAE,KACpxG,eACGM,MAAAA,CAEJ,KAASgB,G,gJCJLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCehBqpD,GAAqB,EACrBtsB,GAAa,IACbC,GAAuB,MACvBC,GAA4B,MAQrBqsB,GAA0C,SACnDnrB,EACAC,GAEA,MAAiDA,GAAQ,CAAC,EAAlDC,EAAW,EAAXA,YAAaC,EAAU,EAAVA,WAAYC,EAAW,EAAXA,YAC3BE,EAAoD,GACpD8qB,EAAwB,CAAC,EACzB7qB,EAAUH,GAA4BlG,KAChC,OAAX8F,QAAW,IAAXA,OAAW,EAAXA,EAAa5b,YAAa,IAAIoc,UAAU7jB,SAAQ,SAAC0H,EAAGzH,GACjDwuC,EAAOxuC,EAAIgiB,IAAcva,EAAEvZ,GAC3B,IAAM3I,EAAQo+B,EAAQ3jB,EAAI2jB,EAAQ3mB,QAC5B6mB,EAAY,OAAH,OAAUt+B,EAAK,KACxBu+B,EAAwC,CAC1Cp+B,KAAM,GACN6mB,OAAmB,KAAX9E,EAAE7iB,KAAc,SAAW6iB,EAAE3f,OAChCw7B,EAAc,KAAH,OAAQA,EAAW,KAAM,IACzCS,gBAAiBtc,EAAEuc,QACbC,KAAAA,KAAa,WAAY,UAAW,WACpCJ,EACN3C,YAAa,QACbgD,qBAAsBzc,EAAEuc,QAClBC,KAAAA,KAAa,WAAY,UAAW,WACpC,UACN5C,YAAa,EACb8C,MAAO1c,EAAEuc,QAAU/B,GAAwBD,GAAahiB,EACxDokB,MAAOb,GAA0B,UAErC9b,EAAE6c,aAAavkB,SAAQ,SAACsiB,GACpByB,EAAQp+B,KAAKjB,KAAK,CACd6oB,EAAG,IAAIrO,KAAKojB,EAAE/a,WAAWid,UACzBC,EAAGnC,EAAEosB,MAEb,IACA/qB,EAASj/B,KAAKq/B,EAClB,IACA,IAAM4qB,EAA+C,CACjDhpD,KAAM09B,EAAYurB,iBAAiB76C,KAAI,SAACuuB,GAAC,MAAM,CAC3C/U,EAAG,IAAIrO,KAAKojB,EAAE/a,WAAWid,UACzBC,EAAGnC,EAAEusB,IACR,IACDriC,MAAO,sBAAwB+W,EAAc,KAAH,OAAQA,EAAW,KAAM,IACnE1+B,KAAM,OACNy8B,YAAa,EACb0C,gBAAiB,uBACjB7C,YAAa,uBACbmnB,MAAM,EACNC,QAAS,GACTC,QAAS,KACTpkB,MAAOmqB,IAGX,OADA5qB,EAASj/B,KAAKiqD,GACP,CAAC,CACJzuB,OAAQ,GACRyD,SAAAA,GACD8qB,EACP,EAEaK,GAAgC,SACzCzrB,GAE6D,IAD7D0rB,EAAU,UAAH,8CAEDprB,EAAoD,GACpD8qB,EAAwB,CAAC,EA0B/B,KAzBY,OAAXprB,QAAW,IAAXA,OAAW,EAAXA,EAAa5b,YAAa,IAAIoc,UAAU7jB,SAAQ,SAAC0H,EAAGzH,GACjDwuC,EAAOxuC,EAAIgiB,IAAcva,EAAEvZ,GAC3B,IAAM3I,EAAQ+3B,GAAkBtd,EAAIsd,GAAkBtgB,QAChD6mB,EAAY,OAAH,OAAUt+B,EAAK,KACxBu+B,EAAwC,CAC1Cp+B,KAAM,GACN6mB,MAAO9E,EAAE3f,KACTi8B,gBAAiBtc,EAAEuc,QACbC,KAAAA,KAAa,WAAY,UAAW,WACpCJ,EACN3C,YAAa,QACbgD,qBAAsBzc,EAAEuc,QAClBC,KAAAA,KAAa,WAAY,UAAW,WACpC,UACN5C,YAAa,EACb8C,MAAO1c,EAAEuc,QAAU/B,GAAwBD,GAAahiB,GAE5DyH,EAAE9a,QAAQoT,SAAQ,SAACsiB,GACfyB,EAAQp+B,KAAKjB,KAAK,CACd6oB,EAAG,IAAIrO,KAAKojB,EAAE/a,WAAWid,UACzBC,EAAGnC,EAAE0sB,MAEb,IACArrB,EAASj/B,KAAKq/B,EAClB,KACKgrB,EAAS,CACV,IAAMJ,EAA+C,CACjDhpD,KAAM09B,EAAYurB,iBAAiB76C,KAAI,SAACuuB,GAAC,MAAM,CAC3C/U,EAAG,IAAIrO,KAAKojB,EAAE/a,WAAWid,UACzBC,EAAGnC,EAAE3a,IACR,IACD6E,MAAO,qBACP3nB,KAAM,OACNy8B,YAAa,EACb0C,gBAAiB,uBACjB7C,YAAa,uBACbmnB,MAAM,EACNC,QAAS,GACTC,QAAS,KACTpkB,MAAOmqB,IAEX5qB,EAASj/B,KAAKiqD,E,CAElB,MAAO,CAAC,CACJzuB,OAAQ,GACRyD,SAAAA,GACD8qB,EACP,EAEa/pB,GAAsC,SAC/CC,GAEA,IAAMZ,EAAwC,CAC1Cp+B,KAAM,GACN6mB,MAAO,WACPwX,gBAAiBE,KAAAA,KAAa,WAAY,UAAW,QACrD/C,YAAa,QACbG,YAAa,EACb8C,MAAOjC,IASX,QAPkB,OAAjBwC,QAAiB,IAAjBA,OAAiB,EAAjBA,EAAmBvd,YAAa,IAAIpH,SAAQ,SAACsiB,GAC1C,IAAMwC,EAAoB,IAAI5lB,KAAKojB,EAAE/a,WAAWid,UAChDT,EAAQp+B,KAAKjB,KAAK,CACd6oB,EAAGuX,EACHL,EAAGnC,EAAEuC,UAEb,IACO,CACH3E,OAAQ,GACRyD,SAAU,CAACI,GAEnB,EAgBA,YACIiE,EACAxjC,EACAyjC,GAEA,IAAQhD,EAAwCzgC,EAAxCygC,QAAS3nB,EAA+B9Y,EAA/B8Y,YAAazY,EAAkBL,EAAlBK,KAAMkiC,EAAYviC,EAAZuiC,QAE9Bl/B,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBACxBC,IAEEC,EAAe3gC,EAAMygC,iBACvBC,IAEES,EAAmB,SAAChY,EAAG,EAAWvb,GAAS,oBAAnBkN,EAAO,KACjC,GAAKA,EAAL,CACA,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cAEvCmD,GAAWA,EAAQK,QAAUjC,IAC9B4B,EAAQK,QAAUmqB,IAElBtpB,GACAA,EAAQ,CACJ3mB,MAAOylB,EAAQK,MACfH,QAASF,EAAQK,QAAUlC,GAC3Bn6B,KAAMg8B,EAAQvX,OAVF,CAaxB,EACM2e,EAAc,CAChB5d,EAAG,CACC1oB,KAAM,OACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX+lC,KAAM,IACNjN,KAAM,CACF3X,KAAMrJ,GAAevG,GAAAA,QAAsB,QAAU,OAEzDy0B,OAAQ,QACRlkB,IAAK,IAAIpI,KAAY,OAAP6nB,QAAO,IAAPA,EAAAA,EAAW7nB,KAAKusB,OAAOjH,WAEzCC,EAAG,CACC5/B,KAAM,SACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,MAAO,GAAP,OAAUA,EAAMskC,QAAQ,GAAE,UAC9B,GAEJa,KAAM,CACF9lC,MAAO6iC,GAEXtgB,IAAK,EACLwjB,KAAM,IACNh+B,MAAO,CACH1G,KAAM,qBACNrB,MAAOgjC,EACPvJ,SAAS,GAEboF,MAAO,IACPpF,SAAS,IAGZz6B,EAAQuqD,UACT5jB,EAAOwd,GAAK,CACR9jD,KAAM,SACNumC,SAAS,EACT79B,MAAO,CACH1G,KAAM,eACNo4B,SAAS,EACTz5B,MAAOgjC,GAEX6C,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOA,EAAMskC,QAAQ,GAAK,MAC9B,GAEJnD,SAAU,QACVgE,KAAM,CACFsd,iBAAiB,KAI7B,IAAMnzC,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAMA,GAAQ,MACdc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACL28B,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAERvJ,YAAaoI,GAEjB16B,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,IAGfwB,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,MAAO,CAACA,EAAK0pB,QAAQvX,MACzB,EACA0d,WAAU,SAAC7vB,GACP,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAAkBpG,EAAQp+B,KAC1BykC,EAAoBD,EAAO9vB,EAAKgwB,WAChCC,EAAeH,EAAOp2B,KAAI,SAAC+iB,GAAQ,OAAKA,EAAE2N,CAAC,IAC5Cpd,QAAO,SAACyP,EAAGC,GAAC,OAAKD,EAAIC,CAAC,IACrBwT,EAAiBD,EACnBvG,EAAQp+B,KAAKsX,OACXutB,GACDJ,EAAW3F,EAAI8F,GAChBA,EAAiB,IACrB,MAAO,CAAC,UAAD,OACOH,EAAW3F,EAAEgG,QAAQ,GAAE,qBAE7BD,EAAsB,EAChB,IAAMA,EAAoBC,QAAQ,GAClCD,EAAoBC,QAAQ,GACtC,iBAER,GAEJlB,KAAM,UAGdqB,YAAa,CACTC,WAAW,EACXtB,KAAM,WAEVuB,QAAO,SAAClgC,EAAO,GAAS,oBAAR+X,EAAO,KACfooB,EAAY,UAChB,GAAIpoB,EAAS,CACT,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cAExCmD,GACAA,EAAQK,QAAUjC,IAClB4B,EAAQK,QAAUmqB,KAElBxjB,EAAY,U,CAGnBngC,EAAMogC,OAAOplB,OAAuB/d,MAAMy4B,OAASyK,CACxD,EACAE,YAAY,EACZC,qBAAqB,EACrBjG,QAAO,SAACjU,EAAG,EAAWvb,GAAK,oBAAfkN,EAAO,KACfqmB,EAAiBhY,EAAG,CAACrO,GAAUlN,EACnC,EACA01B,OAAAA,GAEJnL,QAAS,CAACP,MAEd,OAAOhqB,CACV,EC3UD,IAAepK,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHmY,YAAanV,OACbxC,KAAM8C,OACNJ,OAAQF,OACR4+B,QAAS5+B,OACT4mD,QAAS9mD,SAEbuD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAEtCmgC,EAAc,WAChB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB6tB,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBACV,SAAbqB,EAAEhX,QACFujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,eACzB6tB,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,sBAEpC4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG5C43B,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY7sB,EAAEhX,QAAU,QAE3CwjC,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAC9B,IAAMsP,EAAQw5C,GAAuBrjB,EAAOzlC,MAAO,CAC/CmX,YAAa+B,EAAE/B,YACf2nB,QAAO,SAACr6B,GACJ8gC,EAAK,QAAS9gC,EAClB,EACAm8B,QAAS1nB,EAAE0nB,QACXgoB,QAAS1vC,EAAE0vC,UAAW,GAE1B9uB,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QApCiB,CAqC3B,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEtB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAC3B,EACAljC,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MCtFoS,MCO5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAAgBnnC,EAAM,K,EAAC,QAAUE,G,OAAY,OAAcsB,C,MAAQ,CAAkB,UAAc,Q,QACjKozC,EAAAA,QACJ,cAAE,gBAAC/rC,oBAAoB,iB,YAAuC3I,EAAIkoB,GAAAA,CAAAA,C,IAA8BpoB,U,oBAAgB,SAAqH,gBAAE,OAAIE,MAAO,UAAwB0C,KAAAA,KAA6E,6BAAC0P,YAAM,iBAAM,6CAApP,gBAAE,MAAMjS,CAA6EL,KAAM,K,CAAmB,KAAM,mBAAC,8BAAgI0C,EAAmBoG,OAAG,G,KAAmB,e,GAA0B9I,SAAM,G,IAAC,EAAI,O,MAEpX,kBAAE,MAAMK,CAAoC,wLAAO,WAAe,uBAACyI,G,KAAsB,e,GAA0B9I,SAAM,G,IAAC,EAAI,O,MAE9H,kBAAE,MAAMK,CAAoC,wLAAO,WAAe,uBAACyI,G,KAAsB,e,GAA0B9I,SAAM,G,IAAC,EAAI,O,MAE9H,kBAAE,MAAMK,CAAoC,wLAA8C,GAAO,+B,KAA4B,GAAC,gBAAkB,c,MAAA,C,IAAC,QAAW,OAAI,S,GAACqC,SAAK,G,IAACE,EAAAA,EAAY,KAAW,MAAM,CAACvC,EAAG,IAAG,CAAiFuC,IAAAA,EAAsC,YAAY,aAA6D,8EAAE,uCAAQ,GAAC,GAAI,sDAAG,EAE5dtC,KAAAA,MAAAA,I,QCESgqD,GAAuC,SAACrpC,GAA6C,MAC9F,OAAW,OAANA,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQlgB,YAAI,OAAZ,EAAcsX,OACZ4I,EAAOlgB,KAAK,GAAGi+C,cADY,EAEtC,EAUauL,GAAkC,SAACtpC,GAA4D,MACxG,GAAW,OAANA,QAAM,IAANA,GAAY,QAAN,EAANA,EAAQlgB,YAAI,QAAZ,EAAcsX,OACf,MAAO,GAEX,IAAMymC,EAAS,IAAIC,IAyBnB,OAxBA99B,EAAOlgB,KAAKqa,SAAQ,SAAC3F,GACjB,IAAM+0C,EAAW/0C,EAAKkN,UAAU7J,UAAU,EAAG,GACvC2xC,EAAS,GAAGxwC,OACdxE,EAAKupC,cAAc,GAAGC,SACG,MAAzBxpC,EAAKupC,cAAc,GAAavpC,EAAKupC,cAAc,GAAGC,SAAW,QACxC,MAAzBxpC,EAAKupC,cAAc,GAAavpC,EAAKupC,cAAc,GAAGC,SAAW,SAE/DyL,EAAOj1C,EAAKi1C,KACZ3nC,EAAMtN,EAAKsN,IACjB,GAAK+7B,EAAOr1B,IAAIghC,GAST,CACH,IAAMxV,EAAM6J,EAAO3yC,IAAIs+C,GACvBxV,EAAIyV,KAAKF,GAAYE,EACrBzV,EAAIlyB,IAAIynC,GAAYznC,C,KAZC,CACrB,IAAM4nC,EAAqC,CACvC17B,QAASxZ,EAAKupC,cAAc,GAC5B7vB,QAAkC,MAAzB1Z,EAAKupC,cAAc,GAAavpC,EAAKupC,cAAc,GAAK,KACjE5vB,QAAkC,MAAzB3Z,EAAKupC,cAAc,GAAavpC,EAAKupC,cAAc,GAAK,KACjE0L,MAAM,UAAGF,EAAWE,GACpB3nC,KAAK,UAAGynC,EAAWznC,IAEvB+7B,EAAO32B,IAAIsiC,EAAQE,E,CAM3B,KACO,QAAI7L,EAAOQ,WAAWnwC,KAAI,gCAAI0D,EAAC,YAAMA,CAAC,GACjD,EAEA,IACItS,MAAO,CACH6nB,MAAO9Q,MACP8L,WAAY9L,MACZmY,aAAclsB,OACdvC,QAASqC,SAEbwB,SAAU,CACN+lD,aAAY,WACR,OAAOzoD,KAAKX,QAAQ0X,QAAO,SAAC+Y,GAAC,OAAMA,EAAE1wB,MAAM0oC,WAAW,SAAS,GACnE,EACAzoC,QAAO,WACH,IAAKW,KAAKihB,aAAejhB,KAAKimB,MAAO,MAAO,GAE5C,IAAM5mB,EAAU,GAChBW,KAAKihB,WAAWhI,SAAQ,SAACoO,EAAqCnO,GACtDmO,GACAhoB,EAAQ1B,KAAK,CACTmC,KAAMunB,EAAE/S,OACRlV,MAAO,SAAF,OAAW8Z,EAAI,GACpBwW,UAAU,EACVnY,MAAO,IAAIY,MAAM,OAAmBe,IAGhD,IAEA,IAAMwvC,EAAY,IAAIthC,IActB,OAbApnB,KAAKimB,MAAMhN,SAAQ,SAAC3F,GAChB5R,OAAO2M,MAAK,kBAAKiF,EAAKi1C,MAASj1C,EAAKsN,MAAO3H,SAAQ,SAAC1Y,GAC3CmoD,EAAUphC,IAAI/mB,KACfmoD,EAAUzxC,IAAI1W,GACdlB,EAAQ1B,KAAK,CACTmC,KAAMS,EACNnB,MAAOmB,EACPmvB,UAAU,EACVnY,MAAOnB,GAAON,IAAIvV,GAAKsW,WAGnC,GACJ,IACOxX,EAAQ++B,MAAK,SAACrO,EAAGC,GAAC,OAAKD,EAAExY,MAAQyY,EAAEzY,KAAK,GACnD,GAEJzY,QAAS,CACLysC,UAAS,WACL,IAAM0M,EAAyBj4C,KAAKX,QAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,IACxDo0C,EAAwBxzC,KAAKimB,MAAMjZ,KAAI,SAAClH,GAAoC,OAC9EmyC,EAAajrC,KAAI,SAAC68B,GACd,GAAIA,EAAO/B,WAAW,UAAW,CAC7B,IAAM6gB,EAAY7iD,EAAO+jC,GACzB,OAAO8e,EAAU7L,Q,CAEjB,OAAOh3C,EAAOyiD,KAAK1e,EAE3B,GAAE,IAEN2J,EAAU0E,QAAQl4C,KAAKX,QAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAEpZ,IAAI,KAChD4yC,GAAAA,UAAqBc,EAAW,kBACpC,ICnHwS,MCO5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYhzC,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAwP,oB,OAAC,EAAM,WAAC,4NAAc,MAAC,CAAG,KAAC,gB,GAA0BzC,CAA0B,kBAAC,oBAAIA,I,CAA+EqB,EAAAA,GAAOrB,iBAAI6qD,EAAgB,2C,MAACtoD,C,MAA6BsoD,EAAAA,gBAAmB,SAAC,YAACnpD,EAAAA,gBAAW,CAAiB,EAAI,WAAG,sBAE3mBtB,EAEJ,E,MCJ4CqC,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAqB,oB,OAAC,gBAAYpB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA4B9I,EAAM,Q,MAAC,8BAAuB,C,MAAiB,CAAkB,QAAQE,EAAM,MAAC,oBAAoC,QAAWA,MAA8C,+CAAC2I,SAAY3I,EAAIoQ,GAAI,wC,YAAkB,KAAU,E,IAAC,U,GAA0BzN,W,MAAI,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAsB,EAAC,MAAM,EAAc,sBAAgB,IAC1uB,UAGD,E,iBCJ4CA,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAmB,oB,OAAC,cAAiB,C,MAAC,CAAwB,MAAS,EAACzC,MAAY,oBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,EAAQ,EAACI,M,MAAO,GAAS,GAAC9Q,UAAS,MAAC,OAAS,EAAa,QAAQgR,EAAAA,MAAO,QAAC,oBAAexP,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,UAAyE,CAACzC,EAAG,KAAc,CAAC,EAAEyC,QAAQ,iBAACC,YAAY,aAAa,CAAC1C,EAAIG,GAAG,oBAAuB,CAAoD,YAAU,a,CAAMqC,EAAG,GAAC2Y,4BAAAA,EAAAA,QAAAA,EAAAA,GAAAA,EAAAA,OAAAA,SAAAA,EAAAA,GAAC,OAAM,OAAMnb,CAAkH,IAAK,GACtzB,qGACD,IAAII,MAAAA,EAEJ,E,MCAA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLS,QAASqC,QACT+kB,MAAO9Q,MACP3O,MAAOpF,OACPqF,SAAUrF,QAEZqD,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACH1xB,EAAc,SAAClL,GACnB48B,EAAK,QAAS58B,EAChB,EACA,GAAyBg9B,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,MAAO,CACL9uB,OAAOqG,EAAAA,EAAAA,MAAI,GACXyoB,aAAAA,EACAra,YAAAA,EAEJ,ICrBwT,M,uBCAxF,GAAe,KCO7O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCjBhC,IAAe3O,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEskD,yBAAAA,IACdzqD,MAAO,CACLgB,MAAO8B,SAETuD,MAAK,SAAC6T,GACJ,IAAM1B,EAAW,IAAIuB,KACrBvB,EAASkyC,SAASlyC,EAASmyC,WAAa,GACxC,IAAMC,EAA6C,CACjDpyC,SAAUA,EAASiD,cACnBhD,QAAQ,IAAIsB,MAAO0B,cACnBtD,YAAavG,GAAAA,SAETiW,GAAQphB,EAAAA,EAAAA,KAAI,IAYlB,OAXA/C,EAAAA,EAAAA,QACE,kBAAMwW,EAAElZ,KAAK,4CACb,WAAO2I,EAAK0V,GAAM,0EACX1V,IAAO0V,EAAM,iDAClB6D,GAAqB0nC,GAAiBp8C,MAAK,SAACG,GAC1CkZ,EAAM7mB,MAAQ2N,CAChB,IAAG,2CACJ,qDANY,GAOb,CAAE/E,WAAW,IAGR,CAAEie,MAAAA,EACX,IC/B0T,M,uBCAxF,GAAe,KCO/O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QClBhC,IAAe3hB,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAE0kD,2BAAAA,IACdxkD,MAAK,WACH,IAAMmkD,GAAkB/jD,EAAAA,EAAAA,MAAI,GAC5B,MAAO,CAAE+jD,gBAAAA,EACX,ICTmT,MCOjT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCIhC,IAAetkD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,MACRoI,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,wBAClB,EACA5K,WAAY,CACR2kD,eAAAA,GACAC,eAAAA,GACAC,oBAAAA,IAEJrpD,QAAO,WACHC,KAAKqpD,mBACLrpD,KAAKspD,sBAAsBtpD,KAAKsnD,oBAChCtnD,KAAK0xC,2BACL1xC,KAAK2xC,yBACT,EACA/yC,KAAI,WACA,MAAO,CACHuxC,cAAe/5B,GAAON,MAAMrI,OAAO,QACnCwlB,cAAe7c,GAAON,MAAMmB,KAAK,EAAG,UAAUxJ,OAAO,QAErD45C,iBAAkB,EAClBkC,gBAAiB,EACjBC,cAAe,EACfC,aAAc,EAEdC,gBAAiB,EACjBC,eAAgB,EAEhBrC,mBAAoB,CAChBpvC,aAAc,MACd3B,YAAavG,GAAAA,QACbuI,YAAa,GACboB,YAAa,YAEjB2Z,aAAc,CAAEsJ,SAAU,GAAIzD,OAAQ,IACtC6G,aAASxzB,EACTo9C,eAAgB,KAChBn2B,cAAe,GACfusB,mBAAoB,GACpB5P,sBAAuB,CAAC,EACxBC,qBAAsB,CAAC,EAEvBkX,2BAA2B,EAC3B78B,aAAc/lB,EAAAA,EAAAA,MAAaklD,cAEnC,EACA/nD,MAAO,CACHgoD,cAAe,CACX9nD,QAAO,SAACvE,GACCA,IACDuC,KAAKka,MAAMC,GAAG,yBAClBna,KAAK+pD,iBAAiBtsD,GAC1B,EACAuK,WAAW,EACXjG,MAAM,IAGdW,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BklB,yBAAwB,WACpB,GAAI1wC,KAAKka,MAAMC,GAAG,6BAA+Bna,KAAKqwC,qBAClD,OAAOrwC,KAAKmP,GAAG,0CAEnB,IAAM/P,EAAQY,KAAKqwC,qBAAqBgL,iBACxC,YAAc7uC,IAAVpN,EACOY,KAAKmP,GAAG,0CAEL,IAAV/P,GAAyB,gBAAVA,EACRY,KAAKmP,GAAG,8CAEL,IAAV/P,GAAyB,YAAVA,EACRY,KAAKmP,GAAG,0CAEL,IAAV/P,GAAyB,kBAAVA,EACRY,KAAKmP,GAAG,gDAEL,IAAV/P,GAAyB,mBAAVA,EACRY,KAAKmP,GAAG,iDAEZnP,KAAKmP,GAAG,yCACnB,IAEJrQ,QAAS,CACLwqD,uBAAuB5hC,EAAAA,GAAAA,IAAQ,uBAAsB,yCAAE,WAAqCjqB,GAAO,mHACxC,GAAjDozC,EAAcnJ,GAA2BjqC,GAC1CozC,EAAa,CAAF,gEACiCvrC,QAAQ2H,IAAI,CACzD4T,GAAQpjB,EAAQkc,YAAak3B,GAC7B/vB,GAAgB+vB,EAAapzC,EAAQya,gBACvC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GAA8BiC,GAAe,gBAA7EjZ,EAAY,KAAE6Y,EAAc,KACnC5pD,KAAK4pD,eAAiBA,EAChBM,EAAkBvsB,GAAoCssB,GAC5DjqD,KAAKszB,aAAe,CAChB6F,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE5D58B,KAAKggC,SAA0B,OAAhBiqB,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBywB,EAAYh6B,OAC7D7W,KAAK0pD,gBAAkBM,EAAeG,UACtCnqD,KAAK2pD,eAAiBK,EAAeI,SAC/B7Y,EAAKn7B,GAAON,MACZ07B,EAAKp7B,GAAON,MAAMmB,KAAK,EAAG,UAChCjX,KAAKqnD,kBAAmD,QAAhC,EAAA2C,EAAeK,yBAAiB,OAAqB,QAArB,EAAhC,EAAmC9Y,EAAG9jC,OAAO,gBAAQ,WAArB,EAAhC,EAAwD8jC,EAAG9jC,OAAO,SAAU,EACpGzN,KAAKupD,iBAAiD,QAA/B,EAAAS,EAAeM,wBAAgB,OAAqB,QAArB,EAA/B,EAAkC/Y,EAAG9jC,OAAO,gBAAQ,WAArB,EAA/B,EAAuD8jC,EAAG9jC,OAAO,SAAU,EAClGzN,KAAKwpD,eAAgD,QAAhC,EAAAQ,EAAeK,yBAAiB,OAAqB,QAArB,EAAhC,EAAmC7Y,EAAG/jC,OAAO,gBAAQ,WAArB,EAAhC,EAAwD+jC,EAAG/jC,OAAO,SAAU,EACjGzN,KAAKypD,cAA8C,QAA/B,EAAAO,EAAeM,wBAAgB,OAAqB,QAArB,EAA/B,EAAkC9Y,EAAG/jC,OAAO,gBAAQ,WAArB,EAA/B,EAAuD+jC,EAAG/jC,OAAO,SAAU,EAAI,iDACtG,SAvBqE67C,EAAsB,GAAD,sCAArBA,CAAqB,CAAtC,IAwBrDD,kBAAkB3hC,EAAAA,GAAAA,IAAQ,mBAAkB,yCAAE,gGAIgB,OAJhB,SAEhC1G,EAAM5K,GAAON,MAAMmB,KAAK,EAAG,UAAUI,QAAQ,SAASwC,cACtD0G,EAAMnK,GAAON,MAAMqB,MAAM,SAAS0C,cAClC0wC,EAAOvqD,KAAK8qB,YAAYoC,eAAenV,KAAK,KAAI,SACTtI,EAAAA,EAAAA,KAAAA,IACpC,oCAAD,OAAqCuR,EAAG,gBAAQT,EAAG,uBAAegqC,IACrE39C,MAAK,SAAC49C,GAAI,OAAKA,EAAK5rD,IAAI,IAAC,OAFxBm/C,EAAY,OAGlB/9C,KAAKyzB,cAAgB20B,GAAgCrK,GACrD/9C,KAAKggD,mBAAqBmI,GAAqCpK,GAAc,sDAE7Er+C,EAAAA,EAAAA,IAAW,wCACXM,KAAKyzB,cAAgB,GACrBzzB,KAAKggD,mBAAqB,GAC1BhgD,KAAK++C,cAAgB,GACrB/+C,KAAK2/C,aAAe,EAAE,0DAE7B,SAjB4De,IAAY,sCAAZA,CAAY,CAA7B,IAkB5CltB,qBAAoB,YAAmB,MAAhBjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAC1B,GAAIA,EACAl9B,KAAKsnD,mBAAmB/uC,YAAcvY,KAAKsnD,mBAAmB/uC,YAAc,QACzE,GAAuC,QAAnC,EAAAvY,KAAKsnD,mBAAmB3tC,mBAAW,OAAnC,EAAqCmuB,WAAW,QAAkB,CACzE,IAAM1F,EAAiBpiC,KAAK4pD,eAAeryC,GACrCnD,EAAM,GAAH,OAAMy4B,mBAAmB7sC,KAAKsU,QAAO,YAAIu4B,mBAAmBzK,IACrEpiC,KAAKmR,QAAQxT,KAAK,+BAAD,OAAgCkvC,mBAAmB7sC,KAAKsU,QAAO,gBAAQF,EAAG,W,KACxF,CACH,IAAMguB,EAAiBpiC,KAAK4pD,eAAeryC,GAC3CvX,KAAKmR,QAAQxT,KAAK,uBAAD,OACUqC,KAAKsnD,mBAAmB3tC,YAAW,YAAIyoB,EAAc,W,CAGxF,EACA4P,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,uBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,yBAC1B,EACAuiC,0BAA0BhqB,EAAAA,GAAAA,IAAQ,2BAA0B,yCAAE,wFACtD1nB,KAAK8qB,YAAYgB,SAAS5hB,SAAS,wBAAyB,CAAF,+BACvBuF,EAAAA,EAAAA,KAAAA,IAC1B,gCACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,KAAKA,IAAI,IAAC,OAF7BoB,KAAKowC,sBAAwB,EAAH,2BAI1BpwC,KAAKowC,sBAAwB,CAAC,EAAE,gDAEvC,SAR4EsB,IAAwB,sCAAxBA,CAAwB,CAAzC,IAS5DC,yBAAyBjqB,EAAAA,GAAAA,IAAQ,0BAAyB,yCAAE,wFACpD1nB,KAAK8qB,YAAYgB,SAAS5hB,SAAS,wBAAyB,CAAF,+BACxBuF,EAAAA,EAAAA,KAAAA,IACzB,yCACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFxBoB,KAAKqwC,qBAAuB,EAAH,2BAIzBrwC,KAAKqwC,qBAAuB,CAAC,EAAE,gDAEtC,SAR0EsB,IAAuB,sCAAvBA,CAAuB,CAAxC,IAS1Dve,qBAAoB,WAChB,MAA4BjI,GAAgBnrB,KAAK8qB,aAAzCQ,EAAe,EAAfA,gBACJA,EACItrB,KAAKqwC,qBAAqBgL,iBAAmB,EAC7Cr7C,KAAKmR,QAAQxT,KAAK,aAElBqC,KAAKmR,QAAQxT,KAAK,oBAGtBqC,KAAKunD,2BAA4B,CAEzC,KCpMkS,M,uBCAxF,GAAe,KCQ7N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,2BCvBwJ,W,IAAY,OAAa,aAAO,EAAQ,MAAC,Y,OAAM,EAAC,6B,MAAC,CAAiC,sCAAsB,gBAAChoD,SAAM,K,CAAiBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAQ,mBAAC,cAACb,mBAAW,IAAO,MAAO,CAAwB,MAAS,EAAC,IAASc,SAAS,YAAC1C,EAAK,IAAC,C,aAAqB,QAAuC,EAAI,GAACwT,EAAI,MAAK,SAAS,G,OAAM,EAAC,M,IAAC,M,MAAW,CAAS,QAAItT,SAAWkS,EAAKoB,MAAM,GAAE,0BAA4FxT,CAAAA,EAAK,KAAC,OAAC,MAAO,CAAgB,SAAmB,KAAS,KAAuC6I,CAAAA,EAAAA,GAAW,EAAC3I,GAAIoQ,EAAG,SAAC,sC,IAAC5N,IAAI,UAAe,mB,MAAI,C,MAAkB,EAAI,W,aAAe,M,QAAC,EAAO,MAAE,4B,YAAkC,EAAQ,K,uBAAmC,W,MAAK,Q,MAAC,C,KAA6BkqD,GAAsB,iCAAC,0BAAIjqD,KAAG,U,GAAiB,CAA0C,kBAAIzC,EAAM,SAAW,EAAG,OAAE,IAAa,QAAO,OAAmB,kCAAW,GAAQ,iBAAa,EAAIyC,OAAG,M,CAAuC,OAAUzC,C,MAAqC,CAAqD,QAAsB,sB,CAAK,iCAAwB,C,MAAC,CAAiC,2CAAE,kDAACwB,mBAAM,I,GAA2Be,C,MAA6BwpD,SAAc/hC,GAAI,yBAACtoB,GAA6B,MAAKe,CAAqB3C,MAAM,gBAAC,SAAU,SAAY,GAAC,EAAM,cAAKy1B,CAAa,EAA4C,+BAAK,KAAO,iBAAKE,CAAoB,OAAIhzB,WAAG,EAAa,QAAE3C,KAAM,eAAC,YAAY6sD,EAAAA,cAAa,a,GAA8C,CAA6C,gCAA8D,iBAAG,MAAK,CAAwB,MAAC,gBAAC,gBAAY1Y,EAAAA,YAAAA,aAAkB,2CAAI,oBAAG,oBAC74D,uBAGD,IAAS7yC,GAAM,EAAEhB,cAAe,C,6CCJsDsC,GAAAA,WAAkB,IAAI,EAAKkqC,KAA2Bp8B,EAAI,EAAC,SAAe,OAAM,iBAAQ,CAAC1Q,YAAM,Q,CAAC,aAA8T,OAAtT,EAAW,Y,KAAC,iBAAU,QAAC6C,MAAG,CAAC,MAAQ,Y,KAAiB,IAAuB,IAAIF,MAAG,SAAS,GAAC3C,OAAM,aAAC,IAAY,CAACE,EAAG,IAAI,CAAyHF,MAAM,CAAC,U,CAA0C,yBAAqB,2E,MAAC,CAAW,QAAUE,EAAIgtC,QAAO,QAAYhtC,QAAa,kBAAkC,SAA4C,mBAAG,YAAC,WAAC,iBAAgB,e,sBAAkC,qB,GAAE,C,gBAA6Cqc,SAAM,GAAC,UAAC,E,iBAAgDA,SAAM,GAAC,UAAC,E,kBAAiDA,SAAM,eAAE,EAAC1T,mBAAoB,YAACnG,EAAG,SAAY,CAACoG,G,YAA+B5I,EAAI4b,GAAAA,CAAAA,C,IAAkClZ,Y,GAAwB,SAAY,G,IAA4CA,EAAAA,EAAY,KAAyB,MAAM,CAAmB,WAAlBvC,EAAG,YAAsB,EAAK,IAAG,CAAmJL,YAAM,a,CAAC,EAAI,iCAA+BgvC,EAAAA,OAAAA,CAEtwC,uCAAG,CAAC9uC,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAKtS,MAAM,SAAS,EAAC,SAAc,2GAACnD,MAAM,CAAC,GAAI,8BAAuBE,OAAI4b,mBAAW,EAAIrG,QAAO,sDAAY,CAACvV,EAAIG,GAAG,IAAIH,EAAIkS,GAAGqD,EAAKtS,MAAM,OAAO,wBAAG,4EAAyB,YAAkB,kB,QAAiBP,iB,GAAwB,SAAY,G,IAAkFA,EAAAA,EAAY,KAAyB,MAAM,CAACvC,EAAG,IAAG,CAA+D,yBAAOkQ,CAAAA,EAAIrQ,GAAImvC,IAAAA,EAAU,GAAE,YAAe,QAAC,kCAA8B,OAA9B,UAAC,YAAO,2BAAI,GAAC3+B,GAAKqgC,IAAAA,EAAAA,IAAY,wC,KAAsB,GAAPt7B,EAAI,YAAJA,SAAI,K,MAAI,C,IAAgB/S,EAAK,a,GAAQE,SAAW,GAAY,IAAG1C,EAAO,EAAIA,K,MAA+F0C,CAAAA,EAAAA,IAAY,CAA0B,IAAK,EAAI,KAA0F,yBAAE,gFAAoB,OAApB,UAAI,YAAS,2BAAO,2EACt4B,EAGD,KAAStB,MAAM,M,UCsBT,SAAUwrD,GAA8BvrC,EAAyBngB,GACnE,IAGkC,EAH5BiuC,EAAaY,GAAqB1uB,GAElCvZ,EAAU,GAAG,WACH5G,EAASyhB,WAAS,IAAlC,IAAK,EAAL,qBAAoC,KAUH,EAVtB3T,EAAC,QACFjH,EAAgE,CAClEsB,GAAI2F,EAAE3F,GACNpG,KAAM+L,EAAE/L,KACR4pD,UAAW79C,EAAE89C,WAAa,EAC1BT,SAAUr9C,EAAEq9C,UAAY,EACxB1c,iBAAkB3gC,EAAE2gC,iBACpBxQ,QAASnwB,EAAEmwB,QACXtd,KAAM7S,EAAE6S,MAAQ,QAClB,WACiBstB,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB3+B,EAAI,QACLu8C,GAAsB/9C,EAAEg+C,mBAAqB,CAAC,GAAGx8C,EAAK8jB,OAAS,CAAC,EAChE24B,GAAqBj+C,EAAEu9C,kBAAoB,CAAC,GAAG/7C,EAAK8jB,OAAS,CAAC,EAChEy4B,GACAhlD,EAAOyI,EAAK4+B,mBAAqB2d,EAAmBv8C,EAAK6jB,QAAU,EACnEtsB,EAAOyI,EAAK4+B,kBAAoB,QAAU6d,EAAkBz8C,EAAK6jB,QAAU,OAE3EtsB,EAAOyI,EAAK4+B,mBAAqB,EACjCrnC,EAAOyI,EAAK4+B,kBAAoB,QAAU,K,CAEjD,iCACDtnC,EAAQlI,KAAKmI,E,CAChB,iCAED,MAAO,CAAEonC,WAAAA,EAAYrnC,QAAAA,EACzB,CAEM,SAAU46C,GACZrhC,EACAngB,GAEA,IAGkC,EAH5BiuC,EAAaY,GAAqB1uB,GAElCvZ,EAAU,GAAG,WACH5G,EAASyhB,WAAS,IAAlC,IAAK,EAAL,qBAAoC,KAUH,EAVtB3T,EAAC,QACFjH,EAAgE,CAClEsB,GAAI2F,EAAE3F,GACNpG,KAAM+L,EAAE/L,KACR4pD,UAAW79C,EAAE89C,UACbT,SAAUr9C,EAAEq9C,SACZ1c,iBAAkB3gC,EAAE2gC,iBACpBxQ,QAASnwB,EAAEmwB,QACXtd,KAAM7S,EAAE6S,MAAQ,QAClB,WACiBstB,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB3+B,EAAI,QACLu8C,GAAsB/9C,EAAEg+C,mBAAqB,CAAC,GAAGx8C,EAAK8jB,OAAS,CAAC,EAChE24B,GAAqBj+C,EAAEu9C,kBAAoB,CAAC,GAAG/7C,EAAK8jB,OAAS,CAAC,EAChEy4B,GACAhlD,EAAOyI,EAAK4+B,mBAAqB2d,EAAmBv8C,EAAK6jB,QAAU,EACnEtsB,EAAOyI,EAAK4+B,kBAAoB,QAAU6d,EAAkBz8C,EAAK6jB,QAAU,OAE3EtsB,EAAOyI,EAAK4+B,mBAAqB,EACjCrnC,EAAOyI,EAAK4+B,kBAAoB,QAAU,K,CAEjD,iCACDtnC,EAAQlI,KAAKmI,E,CAChB,iCAED,MAAO,CAAEonC,WAAAA,EAAYrnC,QAAAA,EACzB,CAEA,SAASioC,GAAqB1uB,GAQ1B,IAPA,IAAMxI,EAAWR,GAAON,IAAIsJ,EAAOxI,UAC7BC,EAAST,GAAON,IAAIsJ,EAAOvI,QAC3Bg4B,EAAYz4B,GAAON,IAAIsJ,EAAOxI,UAAUS,QAAQ,SAChDy3B,EAAU14B,GAAON,IAAIsJ,EAAOvI,QAAQQ,QAAQ,SAE5C03B,EAAQ,GACVzG,EAAOuG,EACF31B,EAAI,GAAIovB,EAAK0G,QAAQF,KAAY51B,EAAG,CACzC,IAAM+1B,EAAY3G,EAAK76B,OAAO,YACxByhC,EAAa5G,EAAKnxB,MAAM,SAE1Bg4B,OAAqB,EACrBv4B,EAASo4B,QAAQ1G,EAAM,SAEvB6G,EAAwBv4B,EAASnJ,OAAO,MAG5C,IAAI2hC,OAAmB,EACnBv4B,EAAO63B,SAASQ,EAAY,SAE5BE,EAAsBv4B,EAAOpJ,OAAO,MAGxC,IAAIo8B,OAAc,EAGdA,EAFAsF,GAAyBC,EAEhB,GAAH,OAAMD,EAAqB,YAAIC,EAAmB,YAAIH,GACrDE,EAEE,GAAH,OAAMA,EAAqB,YAAID,EAAWzhC,OAAO,KAAI,YAAIwhC,GACxDG,EAEE,GAAH,OAAM9G,EAAK76B,OAAO,KAAI,YAAI2hC,EAAmB,YAAIH,GAG9CA,EAGb,IAAM1gC,EAAO,CACTs7B,OAAAA,EAEAxX,KAAMiW,EAAK76B,OAAO,QAClB2kB,MAAOkW,EAAK76B,OAAO,MAEnBmhC,aAAc,aAAF,OAAe11B,GAC3Bi0B,kBAAmB,QAAF,OAAUj0B,IAE/B61B,EAAMpxC,KAAK4Q,GACX+5B,EAAOA,EAAKrxB,IAAI,EAAG,I,CAEvB,OAAO83B,CACX,CAEA,QACI3wC,MAAO,CACH6nB,MAAOvkB,OACP7C,QAASqC,QACTyY,YAAavY,OACbmpC,gBAAiBnpC,OACjBkT,OAAQlT,OACRopC,cAAeppC,OACfyuB,aAAc,CACV/xB,KAAMuD,OACN9C,QAAS,IAEbksC,aAAc,CACV3sC,KAAMoD,QACN3C,SAAS,GAEbmsC,kBAAmBxpC,QACnBypC,WAAYzpC,QACZ8mD,QAAS9mD,SAEbtC,KAAI,WACA,MAAO,CACHmsC,OAAQ,YACRC,UAAU,EAElB,EACAtoC,SAAU,CACNrD,QAAO,iBAG0B,EAFvBA,EAAU,CAAC,CAAES,KAAME,KAAKuqC,iBAAmB,OAAQnrC,MAAO,SAC1D8tC,GAAuB,QAAV,EAAAltC,KAAKimB,aAAK,aAAV,EAAYinB,aAAc,GAAG,WAC7BA,GAAU,IAA7B,IAAK,EAAL,qBAA+B,KAApB3+B,EAAI,QACXlP,EAAQ1B,KAAK,CAAEmC,KAAMyO,EAAKs7B,OAAQzqC,MAAOmP,EAAK4+B,mB,CACjD,iCAED,OADA9tC,EAAQ1B,KAAK,CAAEmC,KAAM,QAASV,MAAO,cAC9BC,CACX,EACAwG,QAAO,iBACH,OAAiB,QAAV,EAAA7F,KAAKimB,aAAK,aAAV,EAAYpgB,UAAW,EAClC,EACAqnC,WAAU,iBACN,OAAiB,QAAV,EAAAltC,KAAKimB,aAAK,aAAV,EAAYinB,aAAc,EACrC,GAEJpuC,QAAS,CACLysC,UAAS,WACL,IAAM0M,EAAej4C,KAAKX,QAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,IAC9Co0C,EAAYxzC,KAAK6F,QAAQmH,KAAI,SAACkM,GAAC,OAAK++B,EAAajrC,KAAI,SAACkjB,GAAC,OAAKhX,EAAEgX,EAAE,GAAC,IACvEsjB,EAAU0E,QAAQl4C,KAAKX,QAAQ2N,KAAI,SAACkM,GAAC,OAAKA,EAAEpZ,IAAI,KAChD4yC,GAAAA,UAAqBc,EAAW,YAAcxzC,KAAK2Z,YAAc,OACrE,ICpMqS,M,uBCAxF,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,+CCdnBsxC,GAAa,4CAEtB,mBAIO,OAJP,eACI,cAAM,eAAc,mCACpB,EAAKtsD,QAAQ,GAAGusD,OAAO,CACnBC,MAAO,QACR,CACP,CAkFC,OAlFA,oFAED,WAA0BtgB,GAAc,6FAChB7qC,KAAKmrD,MAAMC,MAAM,OAAOtjB,WAAW+C,GAAQwgB,UAAS,OAA7D,OAALF,EAAQ,EAAH,uBACJA,EAAMn+C,KAAI,SAACgjB,GAAC,MAAK,CAACA,EAAEzvB,IAAKyvB,EAAE5wB,MAAM,KAAC,gDAC5C,sDALA,IAKA,8DAED,WAAcmB,GAAW,uFACRP,KAAKmrD,MAAMnhD,IAAIzJ,GAAKqM,MAAK,SAACG,GAAC,OAAM,OAADA,QAAC,IAADA,OAAC,EAADA,EAAG3N,QAAS,IAAI,IAAC,wFACjE,sDAJA,IAIA,8DAED,WAAqBmB,GAAU,+FACRP,KAAKsrD,QAAQ/qD,GAAI,OAA1B,GAAJ8d,EAAO,EAAH,KACLA,EAAM,CAAF,wCAAS,MAAI,uBACHA,EAAKve,OAAM,OAApB,OAAJszC,EAAO,EAAH,uBACHhtC,KAAKwe,MAAMwuB,IAAK,gDAC1B,sDAPA,IAOA,8DAED,WAAqB7yC,EAAY3B,GAAU,+EAE8B,OAD/D2sD,EAAanlD,KAAKC,UAAUzH,GAC5B4sD,EAAW,IAAIhtC,KAAK,CAAC+sC,GAAa,CAAEztD,KAAM,qBAAqB,kBAC9DkC,KAAKyrD,QAAQlrD,EAAKirD,IAAS,gDACrC,wDANA,IAMA,8DAED,WAAcjrD,EAAanB,GAAW,uFAC5BY,KAAKmrD,MAAMO,IAAI,CAAEnrD,IAAAA,EAAKnB,MAAAA,GAASmB,GAAI,gDAC5C,wDAJA,IAIA,yEAED,WAAgCsqC,GAAc,+GACtB7qC,KAAK2rD,oBAAoB9gB,GAAO,OAA9CsgB,EAAQ,EAAH,KACLS,EAA0B,GAAE,WACRT,GAAK,yDAAV,OAAU,sBAAnB5qD,EAAG,KAAE8d,EAAI,eACIA,EAAKwtC,cAAa,QAAjCC,EAAS,EAAH,KACNrwC,EAAQ,IAAImD,WAAWktC,GAAQn7C,WAC/BsT,EAAM7d,KAAKwe,MAAMnJ,GACvBmwC,EAAKjuD,KAAK,CAAC4C,EAAK0jB,IAAM,2KAEnB2nC,GAAI,gEACd,sDAZA,IAYA,6DAED,WAAoBrrD,GAAW,+FACRP,KAAKsrD,QAAQ/qD,GAAI,OAA1B,GAAJ8d,EAAO,EAAH,KACLA,EAAM,CAAF,wCAAS,MAAI,uBACIY,GAAaZ,GAAK,OAA5B,OAAV0tC,EAAa,EAAH,uBAET3lD,KAAKwe,MAAMmnC,IAAW,gDAChC,sDARA,IAQA,6DAED,WAAoBxrD,EAAa0jB,GAAU,+FACnB9F,GAAa/X,KAAKC,UAAU4d,IAAK,OACvB,OADxBxI,EAAQ,EAAH,KACL4C,EAAO,IAAIG,KAAK,CAAC/C,IAAO,SACxBzb,KAAKyrD,QAAQlrD,EAAK8d,GAAK,gDAChC,wDANA,IAMA,gEAED,WACI9d,EACA+X,GAAmE,2FAG3C,OAAhB0zC,EAAqB1zC,EAArB0zC,SAAUC,EAAW3zC,EAAX2zC,OAAM,SAEAjsD,KAAKksD,OAAc3rD,GAAI,OAe9C,GAfG4rD,EAAI,OACJC,EAAOD,EAEPE,GAAS,EACRF,IACDA,EAAOF,IACPI,GAAS,GAETC,GAAU,EACVN,IACMltC,EAASktC,EAASG,GACpBrtC,IACAstC,EAAOttC,EACPwtC,GAAU,MAGdD,GAAWD,GAAQE,GAAQ,kCACrBtsD,KAAKusD,OAAOhsD,EAAK6rD,GAAQD,GAAK,QAEd,OAApBK,EAAQJ,GAAQD,EAAI,kBACnBK,GAAK,iDACf,wDA9BA,MA8BA,EAzFqB,CAAQC,GAAAA,IA4FlC,OAAmBxB,GC7FNyB,GAAkB,yCAAG,6GACvBC,GAAAA,QAAmB,uBAAqB,2CAClD,kBAF8B,mCAIlBC,GAAkB,yCAAG,WAAOC,GAA6B,gGAC3DF,GAAAA,QAAmB,qBAAsBE,IAAY,2CAC/D,gBAF8B,sCCQzBC,GAA0B,SAACn/C,GAC7B,IAAIo/C,EAAOp/C,EAAMo/C,KAAK1tC,cAOtB,OANI1R,EAAMyR,OAAO4tC,eACbD,EAAOA,EACFl1C,MAAM,KACNd,QAAO,SAACyP,GAAC,OAAKA,GAAK7Y,EAAMyR,OAAO4tC,YAAY,IAC5Cj1C,KAAK,MAEVg1C,EAAKjlB,WAAW,+BACT,WACAilB,EAAKjlB,WAAW,oCAChB,gBACAilB,EAAKjlB,WAAW,oCAChB,gBACAilB,EAAKjlB,WAAW,+BAChB,WACAilB,EAAKjlB,WAAW,8BAChB,OACAilB,EAAKjlB,WAAW,wCAChB,oBAEA,eAEf,EAEA,IAAexjC,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAE2kD,eAAAA,GAAgBpS,6BAAAA,GAA8BmW,YAAAA,IAC5DzmD,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,0BAClB,EACAvQ,KAAI,WACA,MAAO,CACHsuD,IAAK,KACL54C,OAAQtU,KAAKuoB,OAAOnJ,OAAO+tC,OAC3BrD,cAAe,CACX5xC,aAAc,MACd3B,YAAavG,GAAAA,MACbuI,YAAa,GACboB,YAAamzC,GAAwB9sD,KAAKuoB,SAE9C6kC,cAAe,CAAC,EAChB1C,cAAe,CAAC,EAChBd,eAAgB,CAAC,EACjBt2B,aAAc,CAAE6F,OAAQ,GAAIyD,SAAU,IACtCoD,aAASxzB,EACTi+C,SAAS,EAEjB,EACA3oD,MAAO,CACHgoD,cAAe,CACX9nD,QAAO,SAACvE,GACCA,IACDuC,KAAKka,MAAMC,GAAG,yBAClBna,KAAKqtD,iBAAiB5vD,GAC1B,EACAuK,WAAW,EACXjG,MAAM,GAEVwmB,OAAQ,CACEvmB,QAAO,SAAC2L,GAAK,0IACVA,EAAO,CAAF,gDAQmB,OAP7B,EAAK2G,OAAS3G,EAAMyR,OAAO+tC,OACrBG,EAAiBR,GAAwBn/C,GAC3C,EAAKm8C,cAAcnwC,cAAgB2zC,IACnC,EAAKF,cAAgB,KACrB,EAAK1C,cAAgB,KACrB,EAAKZ,cAAcnwC,YAAc2zC,GAE/BC,EAAY,EAAKC,OAAM,SACHd,KAAoB,OAEoC,OAF5EG,EAAc,EAAH,KACjBA,EAAYY,gBAAkBF,EAC9B,EAAK9C,QAAUoC,EAAYa,yBAA2Bb,EAAYY,gBAAgB,UAC5Eb,GAAmBC,GAAY,2CAbtB,EAcnB,EACA7kD,WAAW,EACXjG,MAAM,GAEJ0oD,QAAO,SAACkD,GAAS,mJACOjB,KAAoB,OAKL,OALnCG,EAAc,EAAH,KACjBA,EAAYa,uBAAyBC,EAC/B,EAAKH,OACL,EAAKA,SAAWX,EAAYa,uBAC5B,KACAb,EAAYa,uBAAuB,SACnCd,GAAmBC,GAAY,0CAPlB,EAQvB,EACAv4C,OAAQ,CACJtS,QAAO,SAAC4rD,EAAWC,GACVA,GACL7tD,KAAKqtD,iBAAiBrtD,KAAK8pD,cAC/B,IAGRpnD,UAAU,QACN8qD,OAAM,WACF,IAAMF,EAAiBR,GAAwB9sD,KAAKuoB,QACpD,OAAqB,OAAd+kC,QAAc,IAAdA,GAAAA,EAAgBxlB,WAAW,QAAgB,kBACjC+E,mBAAmB7sC,KAAKsU,SACnCg5C,EAAejuC,aACzB,EACAsxB,WAAU,sBACN,OAAO/I,GAA4B5nC,KAAK8pD,eAAe,kBAAe,EAAK36C,GAAE,MAAP,EAAI,UAAc,GAC5F,EACA2+C,kBAAiB,WACb,OAAO9tD,KAAK+pC,WAAW/pC,KAAK8pD,cAAcnwC,YAC9C,EACAo0C,KAAI,WACA,IAAMljB,EAAS7qC,KAAKuoB,OAAOnJ,OAAO4tC,aAAe,IAAH,OAAOhtD,KAAKuoB,OAAOnJ,OAAO4tC,cAAiB,GACnFe,EAAO,CACT,CACIvnD,MAAOxG,KAAKmP,GAAG,mCACf5O,IAAK,WACLiuB,GAAI,GAAF,OAAKqc,EAAM,+BACbx5B,KAAM,iBAEV,CACI7K,MAAOxG,KAAKmP,GAAG,oCACf5O,IAAK,YACLiuB,GAAI,GAAF,OAAKqc,EAAM,+BACbx5B,KAAM,UAEV,CACI7K,MAAOxG,KAAKmP,GAAG,wCACf5O,IAAK,gBACLiuB,GAAI,GAAF,OAAKqc,EAAM,oCACbx5B,KAAM,eAEV,CACI7K,MAAOxG,KAAKmP,GAAG,wCACf5O,IAAK,gBACLiuB,GAAI,GAAF,OAAKqc,EAAM,oCACbx5B,KAAM,mBA2Bd,OAxBIrR,KAAK8qB,YAAYgC,SACjBihC,EAAKpwD,KAAK,CACN6I,MAAOxG,KAAK8qB,YAAYgC,QACxBvsB,IAAKP,KAAK8qB,YAAYgC,QACtB0B,GAAI,GAAF,OAAKqc,EAAM,sCAA8BgC,mBAAmB7sC,KAAK8qB,YAAYgC,UAC/Ezb,KAAM,SAGVrR,KAAK8qB,YAAYkC,SACjB+gC,EAAKpwD,KAAK,CACN6I,MAAOxG,KAAK8qB,YAAYkC,QACxBzsB,IAAKP,KAAK8qB,YAAYkC,QACtBwB,GAAI,GAAF,OAAKqc,EAAM,sCAA8BgC,mBAAmB7sC,KAAK8qB,YAAYkC,UAC/E3b,KAAM,SAGVrR,KAAK8qB,YAAYmC,SACjB8gC,EAAKpwD,KAAK,CACN6I,MAAOxG,KAAK8qB,YAAYmC,QACxB1sB,IAAKP,KAAK8qB,YAAYmC,QACtBuB,GAAI,GAAF,OAAKqc,EAAM,sCAA8BgC,mBAAmB7sC,KAAK8qB,YAAYmC,UAC/E5b,KAAM,SAGP08C,CACX,IACG3/B,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACLkzC,mBAAkB,SAAC4E,GACf,IAAM/L,EAAS7qC,KAAKuoB,OAAOnJ,OAAO4tC,aAAe,IAAH,OAAOhtD,KAAKuoB,OAAOnJ,OAAO4tC,cAAiB,GACrFpW,IACA52C,KAAK8pD,cAAcnwC,cAAgBlG,GAAiBY,KACpDrU,KAAKmR,QAAQxT,KAAK,GAAD,OAAIktC,EAAM,sCAA8BgC,mBAAmB7sC,KAAKsU,UAEjFtU,KAAKmR,QAAQxT,KAAK,sBAAD,OAAuBqC,KAAK8pD,cAAcnwC,cAE/D3Z,KAAK62C,OAAS72C,KAAKmP,GAAG,2BAC1B,EACA46B,WAAU,SAACikB,GACP,OAAOhuD,KAAKmP,GAAG,6BAA+B6+C,EAClD,EACAX,kBAAkB3lC,EAAAA,GAAAA,IAAQ,uBAAsB,yCAAE,WAAgCjqB,GAA0B,iGACtD,GAA5C2hB,EAASsoB,GAA2BjqC,GACrC2hB,EAAQ,CAAF,gDAIV,OAHKzF,EAAc3Z,KAAK8pD,cAAcnwC,YACnCA,IAAgBlG,GAAiBY,OACjC+K,EAAO5F,YAAcxZ,KAAKsU,OAAS,GAAH,OAAMtU,KAAKsU,OAAM,KAAM,MAC1D,SACkDhP,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAClC,gCAHK8xC,EAAc,KAAEiE,EAAkB,KAInCC,EAAqBvwB,GAAoCswB,GAAmB,EAC3ClG,GAA8BiC,GAAe,gBAA7EjZ,EAAY,KAAE6Y,EAAc,KACnC5pD,KAAKszB,aAAe,CAChB6F,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+0B,EAAmB/0B,SACvDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKsxB,EAAmBtxB,YAE/D58B,KAAKggC,SAA4B,OAAlBiuB,QAAkB,IAAlBA,OAAkB,EAAlBA,EAAoB7tC,eAAgBhB,EAAOvI,OAC1D7W,KAAK4pD,eAAiBA,EACtB5pD,KAAK0qD,cAAgBjK,GAAqBrhC,EAAQ4qC,GAAgB,iDACrE,SApBgEqD,EAAiB,GAAD,sCAAhBA,CAAgB,CAAjC,IAqBhD75B,qBAAoB,YAAmB,MAAhBjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAC1B,GAAIA,EACAl9B,KAAK8pD,cAAcvxC,YAAcvY,KAAK8pD,cAAcvxC,YAAc,QAC/D,GAAkC,QAA9B,EAAAvY,KAAK8pD,cAAcnwC,mBAAW,OAA9B,EAAgCmuB,WAAW,QAAkB,CACpE,IAAM1F,EAAiBpiC,KAAK4pD,eAAeryC,GACrCnD,EAAM,GAAH,OAAMy4B,mBAAmB7sC,KAAKsU,QAAO,YAAIu4B,mBAAmBzK,IACrEpiC,KAAKmR,QAAQxT,KAAK,8BAAD,OAA+BkvC,mBAAmB7sC,KAAKsU,QAAO,gBAAQF,EAAG,W,KACvF,CACH,IAAMguB,EAAiBpiC,KAAK4pD,eAAeryC,GAC3CvX,KAAKmR,QAAQxT,KAAK,sBAAD,OAAuBqC,KAAK8pD,cAAcnwC,YAAW,YAAIyoB,EAAc,W,CAEhG,KCnOkS,M,uBCAxF,GAAe,KCO7N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICZY+rB,GDYZ,GAAe,GAAiB,QEtByD,GAAU,W,IAA8BtwD,EAAM,K,EAAC,EAAO,MAAKsR,GAA4B,EAAC,kB,OAAa,+BAAG,MAAI,CAAuCtR,MAAM,wBAAC,KAAO,iBAA6C,+BAAC6C,MAAG,CAAC,MAAQ,gB,UAA4Bi2C,IAAAA,EAAAA,KAAyB,GAAC,CAACjwC,MAAW,SAAS,GAACnG,OAAI,mBAAe,EAACoG,G,YAAyC,O,wCAA0C5I,CAAAA,EAAImvD,GAAAA,EAAInlC,C,MAAI,CAACtoB,MAAAA,EAAU,IAAM,qBAAM,EAAC,IAAQ,CAAgH,EAAM,WAAC,QAAa,oCAA4B,qEAACgB,EAAmB5C,OAAM,OAAmE,8BAAY4W,CAAO,mBAAG,MAAI,CAAiB,QAAC,qDAAC,MAAQ1W,EAAIi0C,WAAsB,EAAG,cAAI,CACr2B,IACG7zC,MAAAA,EAAe,uB,cCFfgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,WAAW,CAACA,EAAG,aAAa,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,OAAOuZ,QAAQ,SAASnb,MAAOrB,EAAIqwD,UAAW3uD,WAAW,cAAc5B,MAAM,CAAC,MAAQE,EAAIswD,iBAAiB,mBAAmB,YAAY3nD,YAAY3I,EAAIoQ,GAAG,CAACpQ,EAAIqQ,GAAI1M,OAAO2M,KAAKtQ,EAAIuQ,eAAe,SAASC,GAAM,MAAO,CAAChO,IAAIgO,EAAK5H,GAAG,SAAS6H,GAAO,MAAO,CAACzQ,EAAI0Q,GAAGF,EAAK,KAAK,KAAKC,GAAO,EAAE,KAAI,MAAK,KAAQhO,EAAG,aAAa,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,OAAOuZ,QAAQ,SAASnb,OAAQrB,EAAIqwD,UAAW3uD,WAAW,eAAe5B,MAAM,CAAC,MAAQE,EAAIuwD,gBAAgB,mBAAmB,YAAY5nD,YAAY3I,EAAIoQ,GAAG,CAACpQ,EAAIqQ,GAAI1M,OAAO2M,KAAKtQ,EAAIuQ,eAAe,SAASC,GAAM,MAAO,CAAChO,IAAIgO,EAAK5H,GAAG,SAAS6H,GAAO,MAAO,CAACzQ,EAAI0Q,GAAGF,EAAK,KAAK,KAAKC,GAAO,EAAE,KAAI,MAAK,MAAS,EACvxB,EACIrQ,GAAkB,IFQtB,SAAYgwD,GACRA,EAAAA,QAAAA,OACAA,EAAAA,OAAAA,MACAA,EAAAA,aAAAA,WACH,EAJD,CAAYA,KAAAA,GAAe,KAMpB,IAAMxI,GAAoC,SAC7CC,EACAnxC,EACA3W,GAEA,IAOI4mD,EAPEoB,EAAeF,EAAMhnD,KAAK0hB,QAAO,SAACylC,EAAKh+C,GACzC,IAAMxH,EAAM,UAAGwH,EAAI0R,aAAY,YAAI1R,EAAIuR,YAAaowB,cAIpD,OAHI5rC,IAASqwD,GAAgB5F,KAAMxC,EAAIxlD,GAAOwH,EAAIwgD,KACzCzqD,IAASqwD,GAAgBI,IAAKxI,EAAIxlD,GAAOwH,EAAI6Y,IAC7C9iB,IAASqwD,GAAgBC,YAAWrI,EAAIxlD,GAAOwH,EAAIwgD,KAAOxgD,EAAI6Y,KAAO,GACvEmlC,CACX,GAAG,CAAC,GAEAjoD,IAASqwD,GAAgB5F,KAAM7D,EAAS,OACnC5mD,IAASqwD,GAAgBC,UAAW1J,EAAS,YAC7C5mD,IAASqwD,GAAgBI,MAAK7J,EAAS,OAChD,IAAMN,EAAS1iD,OAAO8a,OAClB/H,EAAQ6L,QAAO,SAAC0lC,EAAKxxC,GACjB,IAAMyxC,EAAiB,UAAGzxC,EAAOiF,aAAY,YAAIjF,EAAOxT,MAAO0oC,cAC/D,IAAKoc,EAAaG,GAAiB,OAAOD,EAE1C,IAAMvsC,EAAejF,EAAOiF,aACtBysC,EAAcF,EAAIvsC,GACpBusC,EAAIvsC,IAAiB0sC,GAAmC1sC,EAAcirC,GAc1E,OAZIlwC,EAAO8wC,KACPY,EAAWtnD,KAAKjB,KACZwoD,GACI3xC,EAAOpN,GACPoN,EAAOxT,MAAQ,UACfyY,EACAjF,EAAO8wC,IACP9wC,EAAO4xC,KACPN,EAAaG,KAIlBD,CACX,GAAG,CAAC,IAQR,OANA5B,EAAOlM,QAAQ,CACXl3C,KAAM,YACNvC,MAAO,UACP6lD,qBAAqB,EACrBC,cAAc,IAEXH,CACX,EAEA,IAAe9/C,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6nB,MAAO9Q,MAAOi5C,UAAWltD,SAClCuD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACD6pB,EAAgBrI,GAA4B,CAC9CxC,OAAQ,CACJ0C,aAAY,SAACC,GACT,IAAMC,EAA6C,CAC/CjtC,WAAYgtC,EAAUtlD,KACtByY,aAAc6sC,EAAUlC,OAAOpjD,MAEnC2jC,EAAK,QAAS4hB,EAClB,KAGF+H,GAAkBzpD,EAAAA,EAAAA,MAAI,UAAK2pD,IAC3BH,GAAmBxpD,EAAAA,EAAAA,MAAI,kBAAK2pD,GAAa,IAAEtK,UAAW,CAACiC,GAAmC,WAC1FsI,GAAiB5pD,EAAAA,EAAAA,MAAI,GAS3B,OARA/C,EAAAA,EAAAA,QACI,kBAAMwW,EAAE2N,KAAK,IACb,SAACA,GACGqoC,EAAgBlvD,MAAMglD,OAASn+B,EAC/BooC,EAAiBjvD,MAAMglD,OAASn+B,CACpC,GACA,CAAEje,WAAW,EAAMjG,MAAM,IAEtB,CAAEusD,gBAAAA,EAAiBD,iBAAAA,EAAkBI,eAAAA,EAChD,IG3FmT,MCOnT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BtvD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,eAAe,CAAC3C,MAAM,CAAC,MAAQE,EAAIyI,OAASzI,EAAIoR,GAAG,gCAAgC,QAAUpR,EAAIoR,GAAG,qCAAqC,CAAC3O,EAAG,uBAAuBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAC,EAAE,uBAAuB9f,EAAI+f,QAAO,GAAO/f,EAAIggB,cAAc,EACnV,EACI5f,GAAkB,GCFmE,GAAU,W,IAAgBN,EAAM,K,EAAC,QAAUE,GAAY,EAAUA,MAAIsB,Y,OAAQ,OAAiB,C,MAAC,CAAgB,kBAAkC,QAAUtB,EAAI6xB,QAAS,QAAY7xB,MAAe,WAASA,KAAe,gCAAG,UAAC,WAAC,yB,OAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,GAAC,cAAC,E,mBAAgDA,SAAM,iBAAE,EAAC1T,gBAAkB,SAAE,GAACnG,EAAI,WAAK,CAACoG,G,YAAsClG,EAAW,GAAC,E,IAAO5C,M,oBAAiB,GAAO,KAAC,CAAa,mBAAE,MAAK,CAAgB4C,KAAAA,GAAmB5C,MAAM,gB,CAAoB,OAAS,C,YAAC,O,MAA8B,CAAkB,gBAAcE,GAAgD,KAAO,GAA2C,8BAACwB,eAAM,GAACH,YAAW8T,EAAAA,GAAW,yCAAC5S,MAAQ,EAAC,uC,MAAmC,CAACb,MAAAA,EAAU,WAAa,qBAAM,EAAE,YAAC,EAAM,WAAC,iBAAW,GAAUkH,E,OAAc,GAAwE,CAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,UAAiB,gDAACoG,E,OAAc2M,G,KAAkCzV,iB,YAAW,G,IAA2E,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAuB,OAAG,4FAAoB,YAAkB,uB,QAA2BzV,Y,YAAW,G,IAAkE,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAkB,OAAG,mFAAgC,YAAkB,kB,IAAyE,4BAAE,GAAC,YAAC/S,IAAG,SAA0B,MAAC,UAAkB,gD,IAAqE,2BAAE,GAAC,YAACA,IAAG,SAAgC,MAAC,UAAkB,4C,IAAkG,iCAAG,GAAC,SAAS,GAAG,aACjlE,gFACGpC,IAEJ,MAASgB,I,QCAIqnD,GAAkC,SAC3CkI,EACAj6C,GAEA,IAAMqxC,EAAe4I,EAAU9vD,KAAK0hB,QAAO,SAACylC,EAAKh+C,GAC7C,IAAMxH,EAAM,UAAGwH,EAAI0R,aAAY,YAAI1R,EAAIuR,YAAaowB,cAEpD,OADAqc,EAAIxlD,GAAO,CAAEgoD,KAAMxgD,EAAIwgD,KAAM3nC,IAAK7Y,EAAI6Y,KAC/BmlC,CACX,GAAG,CAAC,GACJ,OAAOtxC,EAAQzH,KAAI,SAACD,GAChB,IAAIyJ,EAAQsvC,EAAa/4C,EAAE3F,IAE3B,OADKoP,IAAOA,EAAQ,CAAEoK,IAAK,EAAG2nC,KAAM,KAC7B,kBACAx7C,GAAC,IACJ4hD,iBAAkBn4C,EAAM+xC,KACxBqG,gBAAiBp4C,EAAMoK,KAE/B,IAAG7J,QAAO,SAAAhK,GAAC,OAAIA,EAAE4hD,iBAAmB,CAAC,GACzC,EAUA,IAAerqD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH6nB,MAAO9Q,MACPtW,QAASqC,SAEbuD,MAAK,WACD,IAAMmrB,GAAW/qB,EAAAA,EAAAA,KAAI,oBACfwqB,GAAaxqB,EAAAA,EAAAA,MAAI,GACjBgrB,GAAehrB,EAAAA,EAAAA,KAAI,IACnBqO,GAAarO,EAAAA,EAAAA,KAAmB,MACtC,MAAO,CAAE+qB,SAAAA,EAAUP,WAAAA,EAAYQ,aAAAA,EAAc3c,WAAAA,EACjD,EACAtU,KAAI,WACA,MAAO,CACHS,QAAS,CACL,CACIS,KAAME,KAAKmP,GAAG,sCACd/P,MAAO,YACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,6CACd/P,MAAO,mBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,4CACd/P,MAAO,kBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,kDACd/P,MAAO,wBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,yCACd/P,MAAO,eACPswB,UAAU,IAI1B,IC/EgT,M,sBCAxF,GAAe,KCQvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCnBhC,IAAeprB,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEsqD,mBAAAA,IACdzwD,OAAO,kBAAKywD,GAAmBzwD,OAAK,IAAEoI,MAAOpF,WCNuQ,M,uBCAxF,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCLhC,IAAekD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,MACRmG,WAAY,CAAEqiD,gBAAAA,GAAiBkI,uBAAAA,IAC/BtoD,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,kBAClB,EACAvQ,KAAI,WACA,MAAO,CACHmwD,gBAAiB,KACjBC,cAAe,KACf9B,IAAK,EAEb,EACAntD,QAAO,WACHC,KAAKgnD,iBACT,EACAtkD,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5Bq7B,cAAa,WACT,IAAK7mD,KAAK+uD,kBAAoB/uD,KAAKgvD,cAAe,MAAO,GACzD,IAAMxyC,EAAS,CAAC2xC,GAAgBC,UAAWD,GAAgBI,IAAKJ,GAAgB5F,MAChF,OAAO5C,GAAkC3lD,KAAK+uD,gBAAiB/uD,KAAKgvD,cAAexyC,EAAOxc,KAAKktD,KACnG,EACAz4C,QAAO,WACH,OAAKzU,KAAK+uD,iBAAoB/uD,KAAKgvD,cAC5BxI,GAAgCxmD,KAAK+uD,gBAAiB/uD,KAAKgvD,eADT,EAE7D,IAEJlwD,QAAS,CACL63C,iBAAgB,SAAC/3C,GACb,IAAQ6a,EAA6B7a,EAA7B6a,aAAcH,EAAe1a,EAAf0a,WACtBtZ,KAAKmR,QAAQxT,KAAK,0BAAD,OAA2B8b,EAAY,YAAIH,GAChE,EACA04B,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,kBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,mBAC1B,EACM63C,gBAAe,oKACc1hD,QAAQ2H,IAAI,CAAC,EAAKg6C,gBAAiB,EAAKC,oBAAmB,gCAAnFzyC,EAAO,KAAEmxC,EAAK,KACrB,EAAKoJ,cAAgBv6C,EACrB,EAAKs6C,gBAAkBnJ,EAAM,0CAHZ,EAIrB,EACAqB,eAAev/B,EAAAA,GAAAA,IAAQ,kBAAgB,uBAAE,6GAEpBjY,EAAAA,EAAAA,KAAAA,IAAe,gBAAgB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,4EAE/Dc,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,yCAAyC,yDAGpE+3C,iBAAiBx/B,EAAAA,GAAAA,IAAQ,uBAAqB,uBAAE,0FAKvC,OALuC,SAElCtI,EAAS,CACX4B,IAAK5K,GAAON,MAAMmB,KAAK,GAAI,QAAQI,QAAQ,OAAO5J,SAClD8S,IAAKnK,GAAON,MAAMqB,MAAM,OAAO1J,UAClC,SACYgC,EAAAA,EAAAA,KAAAA,IAAe,mBAAoB,CAAE2P,OAAAA,IAAUxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,4EAE/Ec,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,8CAA8C,6DC3EoN,M,uBCAxF,GAAe,KCOxN,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB6O,W,IAAG,OAAE,EAAK,WAAsB,oB,OAAC,aAAQ,GAAW,e,MAAC,CAA2B,wBAACzI,KAAAA,eAAqBnG,SAAI,GAAgBoG,mBAAa,M,gBAAsC,S,YAAoB,K,kBAAuF,C,aAAe,Y,QAAyB,GAAC5I,OAAIkxD,KAAS,S,YAAqB,EAAO,K,IAAQ,gB,GAAC1vD,W,MAAOH,CAAAA,EAAOrB,mBAAW,C,MAACuC,C,MAA6BuW,EAAM,OAAI,eAAC,GAACpX,MAAAA,EAAW,gDAAQ,QAAK1B,SAAI+sB,GAA4EjtB,eAAM,KAAC,MAAUE,UAA0D,gBAAG,KAAC,SAA6C,MAAC,CAAC2I,MAAAA,EAAY3I,OAASwC,SAAI,SAAW,GAAG,EAAC,Q,aAA2B,Y,cAA8B,8D,eAAsB,wD,YAA6C,EAAQ,gC,YAA0B,O,IAAGG,Y,GAAkB7C,SAAM,G,IAAC,IAAO,G,MAAE,SAAE,MAAMK,CAA6C,QAAQ,MAAO,gBAAwB,qBAAO,OAAM,kBAAO,UAAe,KAAkBH,GAAIsB,CAAAA,EAAAA,EAAAA,EAAO,CAAStB,MAAIkjD,CAAU,KAAmB,KAAgCljD,CAAAA,EAAImc,GAAAA,SAAS,wBAAoB,OAAE,IAAI,sBAAC,O,EAAkD,OAAC,M,GAAmCnc,GAAAA,EAAWqc,C,MAAM,CAAE,kBAAC1T,MAAW,EAAC3I,UAASwC,iBAAe,GAACoG,UAAG,S,QAAgB,EAAD,MAAJ2M,GAAI,uB,oBAAyC,Y,EAA+B,Q,EAAgC,6BAAG,UAAC/S,G,YAAsC,EAAD,IAAJ+S,C,IAAQ,Y,GAAkCzV,SAAM,G,IAAC,IAAW,K,MAAG,kBAAC6I,MAAAA,CAAqBnG,GAAI,qBAAW,e,GAAoB,GAALG,EAAE,c,mCAA+C,G,MAAK,EAAK,K,MAAqC,QAA8hB,OAA9hB,QAAC,MAAG,CAAaF,WAAW,I,YAAiB,OAAE,gBAAIA,GAAG,SAAa,GAAK,WAAC,MAAQ,YAAS4Z,CAAQ,MAAOrc,CAA4B,UAAQ,UAAkB,GAAI,GAAC,gBAAiB,GAA8H,IAAG,UAAI,SAA4B,OAAWuV,MAAI,KAAsB7S,CAAAA,EAAAA,GAAAA,EAAY,CAAa,GAAE1C,CAAyF,kBAAG,8BAAI,IAA2C,CAAPuV,EAAAA,GAAAA,EAAK,CAAD,2F,QAAgD,wBAAuF,eAAG,aAAC/S,MAAG,UAA+B,0BAAkB,CAAP+S,EAAI,QAAJA,EAAI,cAAJA,CAAI,mD,QAAgD,qBAAqG,eAAG,aAAC/S,MAAG,UAA2B,0BAAkB,CAAP+S,EAAI,QAAJA,EAAI,cAAJA,CAAI,gD,QAIzxF,2BAA4D,eAAG,aAAC/S,MAAG,UAA2B,0BAAkB,CAAP+S,EAAI,OAAJA,EAAI,8E,QAI7G,uBAAiG,eAAG,aAAC/S,MAAG,SAAc,CAAI,wBAAU,0EAAC,GAASxC,GAAG,IAACkjD,EAAS,GAAC/qC,EAAM,gBAAe1V,QAAO,IAAMtC,Q,QAA8FuC,uB,GAAyB,SAAY,G,IAAmFA,EAAAA,EAAY,KAAY,MAAM,CAACvC,EAAGH,MAAOA,CAA8HmxD,MAAMnxD,EAAIslD,gBAAkB,yBAAyB,iDAAc,CAACtlD,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoxD,GAAG,WAAPpxD,CAAmBA,EAAIslD,gBAAgBv4B,EAAAA,YAAYwC,eAAoB,O,QAAiI7sB,c,GAAyB,W,MAA4CA,CAAAA,EAAAA,UAAY,kDAAa,YAAawP,cAAwF,qCAACE,YAAM,cAAO,CAAI,EAAC,GAAI,6EAAQ,YAAU,cAA+B,qHAA8D,OAA9D,QAAC,QAAa,YAAU,uCAAC,UAAiBpS,EAAIqxD,GAAAA,EAAAA,GAAAA,WAAAA,CAAgB,+FAAgC,OAAhC,QAAC,YAAc,cAAiB,qBAAI,0BAAC,GAAS,GAACrxD,EAAIsxD,GAAAA,EAAAA,eAAAA,EAAAA,KAAAA,CAAiB,0BAAO,uFAACjwD,EAA2BkB,OAAAA,IAAyBvC,MAAIuxD,MAAmB,qC,MAAC7vD,CAA2B,sBAAI,eAAG,mBACr4C,8BAGD,I,6ICZqFiH,GAAAA,W,IAAqBnG,EAAI,K,EAAc,EAAC,S,OAAmB,gBAAe,C,YAAgC,OAAE,IAAC,YAACA,GAAG,SAAU,GAAG,MAAC,kBAAmB,a,QAAyB1C,U,YAAeE,G,IAA+B,IAAUA,M,MAAY,gBAAC2I,MAAAA,CAAqBnG,MAAI,KAAS,wBAACoG,QAAG,W,YAA2B,O,IAAEkI,U,GAAQE,SAAK,GAAI,MAAW,UAAerO,EAAG,U,EAAQ,EAAC,O,EAAiB,EAAOoO,M,MAAO,kBAAC,IAAItO,MAAG,SAAe,GAAuB3C,OAAM,GAAC,KAAmC,QAAOgR,EAAM,uB,MAAC,CAAgB,MAAS,EAAChQ,SAAQ,QAAG,KAAC,EAAC,MAAS,E,QAA0B+N,G,GAAkD,CAAC,oBAAC,qBAAI,0CAAQ,KAAsCtM,IAAyBvC,MAAIwxD,G,MAAgB,CAAC9vD,MAAAA,EAAU,YAAc,qBAAM,EAAC,YAAe,CAAC5B,EAAO,WAAW,gBAAyE,SAAC0B,MAAM,CAACH,MAAOrB,EAAIiD,GAAK,qCAACV,MAAQ,CAAC,sB,MAA6B,CAACb,MAAAA,EAAU,KAAO,qBAAM,EAAC,MAAsB5B,EAAO,WAAUE,UAAyBwB,EAAK,qBAAC,C,MAAM,CAA2Be,MAAQ,CAAC,sB,MAA4C,CAACb,MAAAA,EAAU,oBAAsB,qBAAM,EAAC,oBAAa,CAAC5B,EAAO,WAAW,yBAAoD0B,EAAK,KAAC,C,MAAM,CAAsBe,MAAQ,EAAC,mD,MAAuC,CAACb,MAAAA,EAAU,eAAiB,qBAAM,EAAE,kBAAQ,WAAM,qBAAe1B,GAAYuC,IAAyBvC,MAAI64C,G,MAAW,CAACn3C,MAAAA,EAAU,OAAS,qBAAG,UACz/C,EACGtB,WAAAA,W,QCFwCqC,GAAOK,WAAS,MAAU,KAAkChD,EAAK,EAAC,S,OAAC,qBAAiB,W,MAAC,CAAwB,MAAS,EAAC,MAAK,sBAAG,QAAC,MAAsB,IAAG,oB,mBAAiF,mCAAE,OAAIE,KAAO,KAE/RI,CAAAA,EAAAA,GAAAA,UAAoB,oDAExB,E,MCsBA,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA8qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA9pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,kCACA,ICpC0Q,M,uBCA/C,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC0BhC,IACAd,KAAAA,WACA,OAAAg4C,QAAAA,EAAA51C,KAAAA,GAAAuuD,aAAAA,EAAAjqB,oBAAAA,GAAAkqB,gBAAAA,EACA,EACAjrD,WAAAA,CACAkrD,kBAAAA,GAAAtpB,iBAAAA,IAEAzjC,SAAAA,CACAoF,SAAAA,WACA,OAAA9G,KAAAA,KAAAA,KAAAskC,oBAAAA,KAAAA,oBAAAkqB,eAAAA,KAAAA,eACA,GAEApxD,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,CACAf,KAAAA,QACAS,SAAAA,IAGAO,QAAAA,CACA4wD,4BAAAA,SAAAA,IACA9vD,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iCACAoxB,KAAAA,qBACA,uBACA,ICxE6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCb1B,SAAU2+B,GAAInpC,EAAGkX,GACnB,OAAOlX,EAAIkX,CACf,CAEA,QACIl3B,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,8BAClB,EACA5K,WAAY,CACRqrD,qBAAAA,GACAhnC,mBAAAA,IAEJ9pB,QAAS,CACL+wD,oBAAoBnoC,EAAAA,GAAAA,IAAQ,qBAAoB,yCAAE,0FAI7C,OAHGtI,OAAU5S,EACXxM,KAAK6W,SACJuI,EAAS,CAACA,OAAQ,CAAC0wC,WAAY15C,GAAON,IAAI9V,KAAK6W,QAAQpJ,OAAO,iBACjE,SACsBgC,EAAAA,EAAAA,KAAAA,IAAe,gBAAiB2P,GAAQxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAAlFoB,KAAKihD,UAAY,EAAH,qDACjB,SANgE4O,IAAkB,sCAAlBA,CAAkB,CAAnC,IAOhDE,+BAA8B,WAC1B/vD,KAAK6vD,oBACT,EACAG,mBAAkB,SAACC,GACfjwD,KAAKovD,iBAAmBa,EACxBjwD,KAAKsvD,gBAAiB,CAC1B,EACAD,iBAAgB,SAACa,GACblwD,KAAKsvD,eAAiBY,EACtBlwD,KAAK6vD,oBACT,GAEJjxD,KAAI,WACA,MAAO,CACHqiD,UAAW,GACXlW,OAAQ,OACRqkB,iBAAkB,KAClBE,gBAAgB,EAChBz4C,OAAQ,IAAIsB,KACZg4C,UAAY/5C,GAAON,IAAI,IAAIqC,MAAQ1K,OAAO,cAC1CwhD,UAAY74C,GAAON,IAAI,IAAIqC,MAAQlB,KAAK,GAAI,SAASxJ,OAAO,cAEpE,EACA/K,UAAU,QACN0tD,YAAW,WACP,OAAQpwD,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAK+8C,sBAAsB,IAAE/vC,OAAOqvC,GAAK,GAA1E,CAC7B,EACAvM,aAAY,WACR,OAAQpjD,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAKkvC,gBAAgB,IAAEliC,OAAOqvC,GAAK,GAApE,CAC7B,EACA9T,UAAS,WACL,OAAQ77C,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAKmvC,aAAa,IAAEniC,OAAOqvC,GAAK,GAAjE,CAC7B,EACAtM,YAAW,WACP,OAAQrjD,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAKovC,eAAe,IAAEpiC,OAAOqvC,GAAK,GAAnE,CAC7B,EACAW,WAAU,WACN,OAAQtwD,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAKi9C,qBAAqB,IAAEjwC,OAAOqvC,GAAK,GAAzE,CAC7B,EACAa,gBAAe,WACX,OAAQxwD,KAAKihD,UAAgBjhD,KAAKihD,UAAUj0C,KAAI,SAACsG,GAAI,OAAKA,EAAKm9C,mBAAmB,IAAEnwC,OAAOqvC,GAAK,GAAvE,CAC7B,EACAvZ,OAAM,WACF,OAAQp2C,KAAKihD,WAAiBjhD,KAAKihD,UAAU/qC,OAAS,EAAI,WAAalW,KAAKihD,UAAU,GAAG7K,OAAS,IAAzE,EAC7B,EACAmN,gBAAe,WACX,OAAKvjD,KAAKihD,UACHjhD,KAAKihD,UAAU/qC,OADM,CAEhC,EACA7W,QAAO,iBACGqxD,EAA2D,QAAlD,EAAG1wD,KAAK8qB,YAAYO,iBAAiB,qBAAa,SAC1DhsB,GAAwB,IAAdqxD,EAAsB,CAAC,CAChC5wD,KAAME,KAAKmP,GAAG,8BACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd6qC,MAAO,MACP56C,MAAO,yBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0CACd6qC,MAAO,MACP56C,MAAO,mBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,uCACd6qC,MAAO,MACP56C,MAAO,gBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,gCACd6qC,MAAO,MACP56C,MAAO,kBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,yCACd6qC,MAAO,MACP56C,MAAO,kBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,uCACd6qC,MAAO,MACP56C,MAAO,wBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd6qC,MAAO,MACP56C,MAAO,sBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,WACd/P,MAAO,UACPswB,UAAU,IAEd,CAAC,CACG5vB,KAAME,KAAKmP,GAAG,8BACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd6qC,MAAO,MACP56C,MAAO,yBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,uCACd6qC,MAAO,MACP56C,MAAO,gBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,uCACd6qC,MAAO,MACP56C,MAAO,wBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd6qC,MAAO,MACP56C,MAAO,sBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,WACd/P,MAAO,UACPswB,UAAU,IAGlB,OAAOrwB,CACX,IACG+uB,EAAAA,GAAAA,IAAU5C,KAEXzrB,QAAO,wIACT,EAAK8vD,qBAAqB,0CADjB,EAEb,EACA/tD,MAAO,CACH+U,OAAQ,CACJ7U,QAAS,WACLhC,KAAK6vD,oBACT,KClLqS,M,uBCAxF,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,2BCtBoH1O,W,IAAuD,EAAE,K,EAAC,EAAM,MAAC,G,OAAe,aAAa,kB,MAAC,CAA+B,WAAe,wBAAmB,gDAAiBtjD,KAAM,eAAC,YAAsB,+BAAC0B,eAAM,sB,CAAiBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAQ,mBAAC,IAAiB,OAAIE,MAAG,EAAO,IAAED,SAAI,YAAWxC,EAAM,IAAC,CAA+BwC,EAAoBxC,WAAO,QAAyC,CAACA,EAAG,KAAI,CAAsEwB,IAAK,U,CAAEH,EAAAA,GAAOrB,mBAAQ,Q,IAACuC,e,GAAyBvC,GAAImvD,gBAAO,Q,IAAC,S,CAACztD,EAAAA,GAAAA,0BAAW,uBAAK,OAAIe,MAAG,MAAcD,SAAI,YAAa,EAAC,KAAe1C,EAAO,WAAY,QAAwC,SAAC6C,IAAG,U,CAAC,iB,MAAsC,CAA+B,WAAC,aAAC,WAAe,U,GAA0C,CAAC,+BAAM,OAAK,sBAAcH,EAAoBC,aAAc,YAAC3C,OAAM,gBAAC,MAA+D,WAAG,IAAI,eAAkB0C,CAAAA,EAAI,YAAQ,MAAK,CAAS1C,WAAM,aAAC,eAAiB0vB,EAAAA,mBAAkC,WAAG,IAAI,SAC/rC,YACGpvB,MAAAA,CAEJ,WAAiBA,EAAAA,W,iDCJqN,W,IAAgBwI,EAAG,K,EAAW,QAAW,G,SAAU9I,WAAM,mB,YAAC,O,MAAc,C,MAAC6I,EAAAA,GAAW,qB,QAAc,8B,YAAsC,EAAV,K,yCAA6CjG,EAAAA,GAAAA,EAAAA,C,MAAmB5C,C,WAAO,I,YAAkC,O,IAAG,Y,GAAuCA,SAAM,G,IAAC,IAAO,GAAE,UAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,EAAI,GAAG,CAAoD,mBAAG,OAAO,MAAUyC,YAAqB,eAA0B,QAAWmwD,GAAAA,GAAAA,GAAoB,eAAC,UAA0I,uEAAC,M,CAAuD,gBAAC,IAAInwD,MAAG,SAAoBA,GAAoH,6BAAM,IAAY,QAAS,0EAAI,IAAW,MAAYiO,SAAc,GAAC,4BAAM,IAAwB,QAAc,2FAAC5Q,EAAO,OAAO,GAAe,CAAmC,cAAC6I,GAAAA,WAAqBnG,MAAG,MAAY,WAACoG,E,OAAc2M,IAAQ,U,iBAAwC,C,aAAe,Y,QAAC5M,EAAW,MAAKyH,GAAG,a,YAAqB,O,4BAAyB3N,G,MAAmB3C,EAAM,K,SAAC,KAAy2C,wBAAl2C,Q,MAAE,C,WAAQ2C,IAAwC,YAAQ,EAAI,KAAK8S,IAAKxV,YAA8BD,GAAK,SAAC,GAAC,MAAQ,KAAE,mBAAMyV,MAAKs9C,CAAsC,UAA0B,GAAO7yD,CAAAA,EAAI8yD,EAAAA,EAAAA,CAAAA,EAAAA,GAAgB,gBAAM,OAAC,UAAG,CAAI,SAAHrwD,EAAG,KAAmB,EAAG,KAAC,CAAqJE,MAAG,CAAC,MAAQ,K,CAAoD,kBAA4O,OAA5O,QAAC,IAAIF,MAAG,SAAoBA,GAAkJ3C,OAAM,qBAAC,IAAa,CAAE,EAACyV,GAAAA,EAAKs9C,CAAAA,EAAe,IAAK,iBAAc,gEAAClwD,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAI+yD,mBAAmBx9C,EAAK,IAAI,CAAC9S,EAAG,QAAkB,IAAK,MAAS,aAAc,GAAI,EAAE,MAAK,SAA0B,WAAmB,EAAEzC,GAAIG,eAAiB,QAAU,GAAI,EAAE,KAAIH,CAA2B2C,MAAG,CAAC,MAAQ,K,CAAsD,kBAA2P,OAA3P,QAAC,IAAIF,MAAG,SAAoBA,GAAoK,8BAAQ,IAA+BkG,CAAAA,EAAW,KAAS,wFAAI,GAAC,CAAa,eAAmB,GAARoI,OAAK,yBAAI,I,CAAmC,OAAcoL,CAAAA,EAAMC,EAAAA,EAAG,MAAa,+E,UAAwB,M,GAACzT,EAAAA,cAAkB,C,YAAO,O,0BAA4B,G,MAAEmI,EAAM,M,OAAEhI,EAAAA,gBAAAA,C,MAASvI,C,QAAiBkC,EAAG,uB,MAAkB,c,YAA0B,EAAOsO,GAAAA,CAAAA,C,iBAAQ,YAAC,IAAGtO,EAAG,EAAU,KAA0C8Z,EAAAA,EAAY,O,EAAM,U,EAAaC,EAAQ,M,MAAenb,CAAAA,EAAO,cAAa,C,GAACK,CAA2B,kBAAC5B,OAAM,GAAC,KAA2B,QAAQgJ,EAAO,WAAiS,uBAAe,C,WAAQgI,CAAAA,CAAO,kBAAiD,uBAAG,MAAC,aAAC,WAAU,iB,MAA2C,CAAC,QAAI,gBAAQ,KAAK,EAAI,uDAAI,IAAO,oBAAY6kB,IAAQq9B,KAAAA,EAAAA,SAA6B,KAA5f,qB,WAAQliD,CAAAA,CAAO,kBAAiD,uBAAG,MAAC,aAAC,WAAU,iB,MAA2C,CAAC,QAAG,MAAI,EAAsByL,MAAU,EAAGtZ,KAAK,EAAauZ,OAAQ,iBAAc,+B,GAAsB9a,CAA2B,oBAAC5B,IAAM,gBAAC,KAAwT4B,IAAuC,WAAsBiH,K,MAAsC,C,MAAWoI,EAAK,2B,SAAYtO,SAAG,G,EAA+B3C,KAAM,iC,aAA6B,gC,gBAA6EE,C,YAAwBizD,EAAO,GAAE,E,iBAAa,SAAC,G,IAACtqD,EAAAA,EAAe,M,MAAS,GAAC,8BAAS,C,MAAI,C,MAAW1I,EAAI,gB,QAAQ,QAAN6Q,GAAAA,mB,OAAQhQ,EAAO,W,SAAU,EAAD,iBAAI,SAAQ2B,GAAkBE,M,YAA6B,EAAOoO,GAAAA,CAAAA,C,iBAAQ,YAAC,IAAGtO,EAAG,EAAU,KAAc3C,EAAM,S,EAAQ,EAAC,Q,EAAiB,U,MAAS,GAAM,cAAO,C,GAAC,CAA+B,MAAS,SAACgB,GAAQ,UAAG,K,EAA2B,MAAWoyD,EAAAA,EAAAA,EAAAA,C,MAAgC,CAAC,gBAAIzwD,KAAG,SAAU3C,KAAM,EAAC,SAAO,MAAE,WAA2C,IAAQ,MAAK,YAAI,qCAAW,QAAW,MAAC61B,CAAyC,UAAqE,oCAACj0B,IAA2C,WAAsBiH,K,MAAsC,C,MAAWoI,EAAK,+B,SAAYtO,SAAG,G,EAAoB3C,KAAM,qC,aAAsC,oC,gBAA4EE,C,YAAmC,EAAQ,GAAC,E,IAAK,U,GAAC2I,SAAW,G,IAAUnG,EAAI,EAAS,M,MAAG,CAAC,qBAAoC,C,MAAA,C,QAAV,QAANsO,GAAAA,c,MAAa,e,MAAW,EAAI,4B,SAAkB,iC,QAAC,G,YAAuC,O,IAAC,U,GAAG,SAAI,G,IAAqCyL,EAAW,EAAC,Q,EAAM,S,EAAaC,EAAQ,M,MAAenb,CAAAA,EAAO,cAAa,C,GAACK,CAA2B,kBAAC5B,OAAM,GAAC,KAAuC,QAAQgJ,EAAO,sB,WAAQgI,CAAAA,CAAO,kBAA+D,uBAAG,MAAC,aAAC,WAAU,iB,MAA2C,CAAC,qBAAI,gBAAQ,KAAK,EAAI,qEAAI,IAAO,oBAAY6kB,IAAQw9B,KAAAA,EAAW,SAAU,KAA0DzxD,IAA+B,WAA6B5B,K,MAA8C,CAA0B,gBAAa,WAAuD,qBAAI,gCAAC,E,WAAqC,wBAAa,wBAAC0B,MAAM,CAACH,eAAkB,EAAC+xD,kBAAiB7wD,WAAS,a,YAA6BozB,iBAAS,SAAmB3L,WAAI,yB,GAAEtoB,CAAoC,oBAAM,OAAC,YACr5L,GAGD,MAASN,C,2JCJsLuH,GAAAA,W,IAAqBnG,EAAI,K,EAAY,EAAC,S,OAAoB,EAATsO,YAAM,C,MAAI,C,MAA+B,EAAO9Q,GAAI+J,qB,SAAiB,EAAC+G,GAAAA,wB,QAAO,EAAU9Q,S,YAAuC,EAACA,GAAIgR,CAAAA,C,IAAQ,yBAAI,IAAI,EAAM,SAACxP,MAAM,sBAACH,KAAWZ,EAAM,SAAC8B,OAAS,EAAgBvC,QAAUgqB,EAAG,MAAC,kBAACtoB,MAAW,UAAWe,IAAmB3C,MAAM,G,MAAC,CAAgC,QAAU,MAAI,kBAAc,GAAC,QAAYsR,CAAW,EAAC5P,WAAM,U,CAAkBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAS,MAAC,sBAACb,SAAW,GAAM,aAAIe,MAAG,c,MAAuB,CAAkE,MAAO,EAAEzC,KAA2C,SAAU,SAAG,GAAC,OAAYoR,CAAY,EAAC5P,WAAM,UAAmBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAU,SAAC,2CAACb,MAAAA,CAAU,EAAC,oCAAO,YAAIe,MAAG,EAAS,GAAG,U,MAA+D,CAAc,cAACjB,SAAM,YAACH,EAAK,MAAMgyD,CAAS9wD,E,WAA6B8wD,WAAa3xD,EAAAA,GAAAA,EAAU,GAAC,sBAAS,OAAI,SAAO,I,MAAuQ,CAAqBa,MAAAA,EAAS,Q,SAAoB+wD,SAAiB,GAAC,WAAC5xD,EAA0B,yBAAkRF,GAAM,8J,MAAM,CAAqBe,MAAAA,EAAS,c,SAAoBgxD,SAAiB,GAAC,iBAAC7xD,EAA0B,+BAAkRF,GAAM,0K,MAAM,CAAwBe,MAAAA,EAAS,c,SAAoBixD,SAAoB,GAAC,iBAAC9xD,EAA6B,+BAC3tE,6KACGtB,MAAAA,CAEJ,MAASgB,EAAQhB,iB,uPC+EjB,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WACA,OACAJ,OAAAA,EACAwC,KAAAA,GACA2I,MAAAA,GACAynD,SAAAA,EACAE,eAAAA,EACAD,eAAAA,EACAE,kBAAAA,EACAC,YAAAA,EAEA,EACA1vD,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GAGA,mBACA,yBACA,2BACA,gBACA,+CACA,2DACA,2DACA,mEATA,YAYA,EACAgG,WAAAA,EACAjG,MAAAA,IAGAW,SAAAA,CACAoF,SAAAA,WACA,SAKA,OAJA,gCACA,4CACA,4CACA,kDACA,CACA6B,MAAAA,KAAAA,MACA8nD,SAAAA,KAAAA,KACAxlC,YAAAA,EAEA,GAEAntB,QAAAA,CACAiQ,MAAAA,WACA,mBACA,gBACA,eACA,gBACA,sBACA,sBACA,wBACA,IC7IoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYvO,GAAOK,WAAS,MAAU,KAAgBhD,EAAK,EAAC,S,OAAC,OAAcgB,C,MAAQ,CAAsB,QAAQd,EAAIkoB,QAAM,QAAU,EAAC,QAAK,cAAkC,WAAUloB,KAAa,iBAAgBsxB,EAAAA,aAAW,qBAAG,YAAC,c,GAAwCtxB,CAAuB,sBAAC,YAAC,gB,EAAgE,wBAAC,YAAC,eAAgB,C,EAAoC,gBAAC,YAAC,WAAgB,C,EAAqC,iBAAC,YAAC,WAAiB,C,EAAuC,kBAAC,YAAC,aAAkB,C,EAAuC,+BAAE,cAAC2I,G,YAA+C,O,IAAkB,mB,GAAC,SAAeulB,GAA8V,aAAG,sUAAC1rB,GAAmBoG,C,IAAqB,e,GAAC,SAAc,G,IAAmB,EAAO2M,EAAAA,KAAI,MAAG,iCAAgB,IACnoC,UAGD,E,MCDao+C,GAAqB,SAACC,EAAgBC,GAC/C,IAAMC,GAAYF,GAAS,IAAI3kD,KAAI,SAACuuB,GAAC,MAAM,CACvCn0B,GAAIm0B,EAAEn0B,GACNuC,MAAO4xB,EAAE5xB,MACT8nD,SAAUl2B,EAAEk2B,SACZ3zD,KAAM,OACNmuB,YAAasP,EAAEtP,YAClB,IACK6lC,GAAiBF,GAAc,IAAI5kD,KAAI,SAAC+kD,GAAE,MAAM,CAClD3qD,GAAI2qD,EAAG3qD,GACPuC,MAAO,KACP8nD,SAAUM,EAAG/wD,KACbirB,YAAa8lC,EAAG9lC,YAChBnuB,KAAM,QACT,IACD,OAAO+zD,EAAS/5C,OAAOg6C,EAC3B,EAEA,IACI1zD,MAAO,CAAC,QAAS,WACjBQ,KAAI,WACA,MAAO,CACHgxB,SAAU,OACVP,YAAY,EACZQ,aAAc,GAEtB,EACAntB,SAAU,CACNrD,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,WACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,eACd/P,MAAO,cACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,WACd/P,MAAO,UACPswB,UAAU,GAGtB,ICtDoS,MCQxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnB4B,GAAU,W,IAAS7xB,EAAM,K,EAAC,EAAM,MAAC,G,OAAS,MAAQ,C,MAAY,CAAe,cAAqC,MAAS,YAAa,UAAWG,GAAK,6BAAG,QAAC,UAAC,KAAO,EAAC,M,GAAyC,CAAmB,kBAAO,OAAN,mBAAO,EAAS,QAACH,IAAgB,QAAE,MAAMK,CACtU,UAGD,GAASiB,GAAAA,WAAQhB,EAAAA,GAAe,c,QCchC,IACAC,MAAAA,CACAgB,MAAAA,OACAd,MAAAA,SACAE,MAAAA,QACAR,KAAAA,OACA6sC,OAAAA,CACA/sC,KAAAA,OACAS,QAAAA,uCAGAK,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,qIAIA,OAHA,iBACA,sBAEAizD,EAAAA,CAAAA,EAAAA,OAAA,SACAviD,EAAAA,EAAAA,KAAAA,KACA+f,EAAAA,OAAAA,GACA5iB,MAAAA,SAAAA,GAAA,wBAFA3N,EAAAA,EAAAA,KAGA,UACA,2EAEAS,EAAAA,EAAAA,IACA,mIAEA,gCAGA,OAHA,UAEA,aACA,4FAjBA,EAmBA,ICpDsQ,MCOlQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAAS7B,EAAM,K,EAAC,EAAM,MAAC,G,OAAS,MAAQ,C,MAAY,CAAe,cAAqC,MAAS,YAAa,UAAWG,GAAK,6BAAG,QAAC,UAAC,KAAO,EAAC,M,GAAyC,CAAmB,kBAAO,OAAN,mBAAO,EAAS,QAACH,IAAgB,QAAE,MAAMK,CACtU,UAGD,GAASiB,GAAAA,UAAQhB,EAAAA,GAAAA,YAAe,E,QCchC,IACAC,MAAAA,CAAAA,QAAAA,QAAAA,QAAAA,OAAAA,UACAQ,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,qIAIA,OAHA,iBACA,sBAEAkzD,EAAAA,CAAAA,EAAAA,OAAA,SACAxiD,EAAAA,EAAAA,KAAAA,IACAi8C,EAAAA,OAAAA,GACA9+C,MAAAA,SAAAA,GAAA,wBAFA3N,EAAAA,EAAAA,KAGA,UACA,2EAEAS,EAAAA,EAAAA,IACA,mIAEA,gCAGA,OAHA,UAEA,aACA,4FAjBA,EAmBA,IC3CyQ,MCOrQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAAS7B,EAAM,K,EAAC,EAAM,MAAC,G,OAAS,MAAQ,C,MAAQ,CAAe,cAAqC,MAAS,QAAa,UAAWG,GAAK,6BAAG,QAAC,UAAC,KAAO,EAAC,M,GAAyC,CAAmB,kBAAO,OAAN,mBAAO,EAAS,QAACH,IAAgB,QAAE,MAAMK,CAClU,UAGD,GAASiB,GAAAA,WAAQhB,EAAAA,GAAe,c,QCchC,IACAC,MAAAA,CACAgB,MAAAA,OACAd,MAAAA,SACAE,MAAAA,QACA0zD,aAAAA,OACAl0D,KAAAA,OACA6sC,OAAAA,CACA/sC,KAAAA,OACAS,QAAAA,uCAGAK,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,mIAEA,OADA,iBACA,+BAEA0Q,EAAAA,EAAAA,KAAAA,UACAC,EAAAA,OAAAA,CACA9Q,KAAAA,KAAAA,UAAAA,CAAAA,EAAAA,MAAAA,QACAS,QAAAA,CACA,qCAGAuN,MAAAA,SAAAA,GAAA,wBAPA3N,EAAAA,EAAAA,KAQA,UACA,0EAEAU,GAAAA,EAAAA,MACA,eACA,mIAEA,gCAGA,OAHA,UAEA,aACA,4FAtBA,EAwBA,IC1DyQ,MCOrQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB6K+G,GAAAA,W,IAAqBnG,EAAI,K,EAAY,EAAC,S,OAAoB,EAATsO,YAAM,C,MAAI,C,MAA+B,EAAO9Q,GAAI+J,4B,SAAiB,EAAC+G,GAAAA,+B,QAAO,EAAU9Q,S,YAAuC,EAACA,GAAIgR,CAAAA,C,IAAQ,yBAAI,IAAI,EAAM,SAACxP,MAAM,sBAACH,KAAWZ,EAAM,SAAC8B,OAAS,EAAgBvC,QAAUgqB,EAAG,MAAC,kBAACtoB,MAAW,UAAWe,IAAe3C,MAAM,G,MAAC,CAAgD,MAAO,EAACE,MAAW,SAAQ,SAAO,GAAC,QAAY,CAAO,EAAkB,qB,CAAQqB,EAAAA,GAAAA,EAAW4xD,C,MAAS1wD,C,SAA6B0wD,EAAQjpC,UAAG,yBAAC,SAACtoB,MAAAA,QAAoB,mBAAIe,aAAaA,M,MAAiE,CAAc,gBAACjB,SAAM,YAACH,EAAK,QAAMgyD,CAAS9wD,E,WAA6B8wD,aAAa3xD,EAAAA,GAAAA,EAAU,GAAC,sBAAS,OAAI,SAAO,I,MAAqR,CAAqBa,MAAAA,EAAS,Q,SAAoB+wD,SAAiB,GAAC,WAAC5xD,EAA0B,yBAAgSF,GAAM,4K,MAAM,CAAqBe,MAAAA,EAAS,c,SAAoBgxD,SAAiB,GAAC,iBAAC7xD,EAA0B,+BAAgSF,GAAM,wL,MAAM,CAAwBe,MAAAA,EAAS,c,SAAoBixD,SAAoB,GAAC,iBAAC9xD,EAA6B,+BAC9iE,2LACGtB,MAAAA,CAEJ,MAASgB,EAAQhB,iB,qQC0EjB,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,SAAAA,YACAQ,KAAAA,WACA,OACAJ,OAAAA,EACAwyD,QAAAA,GACAI,SAAAA,EACAE,eAAAA,EACAD,eAAAA,EACAE,kBAAAA,EACAC,YAAAA,EAEA,EACA1vD,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GAGA,mBACA,uBACA,gBACA,+CACA,2DACA,2DACA,mEARA,YAWA,EACAgG,WAAAA,EACAjG,MAAAA,IAGAW,SAAAA,CACAoF,SAAAA,WACA,SAKA,OAJA,gCACA,4CACA,4CACA,kDACA,CACAkpD,QAAAA,KAAAA,QACA/kC,YAAAA,EAEA,GAEAntB,QAAAA,CACAiQ,MAAAA,WACA,mBACA,gBACA,sBACA,sBACA,wBACA,ICnIoR,M,uBCA/C,GAAe,KCOhP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCyKhC,IACA3Q,MAAAA,CAAAA,aAAAA,YACAoI,MAAAA,SAAAA,GACA,gCACA,EACAjC,WAAAA,CACA4tD,YAAAA,GACAC,WAAAA,GACAC,cAAAA,GACAC,iBAAAA,GACAC,iBAAAA,GACAC,eAAAA,GACAC,4BAAAA,GACA7pC,mBAAAA,IAEAhqB,KAAAA,WACA,OACAozB,GAAAA,KACA2/B,MAAAA,GACAC,WAAAA,GACAc,sBAAAA,GACAC,aAAAA,KACAC,WAAAA,KACAC,gBAAAA,KACAC,kBAAAA,KACAp/B,QAAAA,CACAw9B,YAAAA,EACAH,oBAAAA,EACAgC,wBAAAA,EACA5B,iBAAAA,GAGA,EACAzuD,SAAAA,CACAswD,UAAAA,WACA,gDACA,GAEAlxD,MAAAA,CACAyrB,WAAAA,CACAvrB,QAAAA,SAAAA,GACAme,QAAAA,IAAAA,MAAAA,EAAAA,MACA,GACA,eACA,EACAnY,WAAAA,IAGAlJ,QAAAA,CACA6xD,mBAAAA,WACA,qBACA,kCACA,EACAsC,kBAAAA,WACA,0BACA,sCACA,EACAnC,mBAAAA,SAAAA,GACA,sBAAAE,QAAAA,EAAAA,GAAA/kC,YAAAA,EAAAA,aACA,sCACA,EACA+jC,mBAAAA,SAAAA,GACA,oBACA,0BACA,EACAa,iBAAAA,SAAAA,GACA,kBACA,kCACA,EACAqC,qBAAAA,SAAAA,GACA,yBACA,+BACA,EAGAjC,oBAAAA,SAAAA,EAAAA,GAAA,6IACAxhD,EAAAA,EAAAA,KAAAA,IACAi8C,iBAAAA,OAAAA,EAAAA,WAAAA,yBAAAA,OAAAA,EAAAA,SAAAA,EAAAA,aACA9+C,MAAAA,SAAAA,GAAA,wBACA,aACAkC,IAAA,0CALA,EAMA,EACAqkD,UAAAA,EAAAA,GAAAA,IAAAA,YAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,qFACA,OAAAhzC,QAAAA,IAAAA,MAAA,SACA7a,QAAAA,IAAAA,CACAmK,EAAAA,EAAAA,KAAAA,IAAAA,iBAAAA,OAAAA,KAAAA,WAAAA,WAAAA,MAAAA,SAAAA,GAAA,iBACAA,EAAAA,EAAAA,KAAAA,IAAAA,0CAAAA,MAAAA,SAAAA,GAAA,iBACAA,EAAAA,EAAAA,KAAAA,IAAAA,iBAAAA,OAAAA,KAAAA,WAAAA,yBAAAA,MAAAA,SAAAA,GAAA,mBACA,gCAJAkiD,EAAAA,EAAAA,GAAAC,EAAAA,EAAAA,GAAAwB,EAAAA,EAAAA,GAMA,aACA,kBACA,iFC3RuQ,M,uBCAlD,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBgTv1D,W,MAAO,K,IAAU,MAAO,G,SAAc,yB,MAAG,C,MAAiC,c,QAAE,sE,YAAuC,EAAI,GAACw1D,CAAAA,EAAAA,YAAAA,cAAAA,oBAAAA,C,IAAc,gB,GAAE,W,MAAoB,GAAC,M,MAAC,CAAS,QAAIt1D,MAAO,gBAA8C,GAAC,aAAM,MAAM,CAAgB,kBAAsB,aAAC,GAAUA,EAAIsB,iBAAqD,OAAgB,CAAI,MAAUtB,CAAW,KAAa,KAAoC,2CAAC,E,OAAqCgtC,GAAc,gB,CAAC,Q,MAAqC,CAAc,kBAAE,yCAACrkC,iBAAmB,GAAEnG,UAAG,SAA6CoG,QAAG,WAAkB,uB,GAAC,C,gBAAmHqM,SAAoBsgD,GAI9iC,EAAGv1D,OAAO,CAAkF,EAAE,iBAAC,YAACwC,EAAG,QAA2BoG,G,YAA+B2M,EAAKigD,GAAAA,CAAAA,C,IAA8BrE,4C,GAI/L,SAAY,GAA6D,aAAG,uFAAI,4BAAoB,gHAAI,YAAkB,qE,IAAyH,8BAAE,GAAC,YAAC3uD,IAAG,IAAe,KAAG,MAAC,sBAAkB,eAAF,EAAD,gGAAI,GAASxC,GAAG,IAAC+sB,EAAAA,GAAYiB,EAAAA,mBAAc,QAAkB,IAAK,QAAS,EAAC,K,+BAAiC,SAAC,G,IAACrlB,EAAAA,EAAY3I,K,MAAY,GAAC,OAAW,kF,mCAAqD,G,MAAE,EAAM,K,OAAG,wD,MAAG2C,CAA4C,cAAG,OAAM,IAAuC7C,YAAM,OAAC,IAAI,YAAmE,eAAM,IAAC,OAA8J,mBAAC,MAAQ,CAAiB,KAAW21D,KAAsB,mCAAIhzD,IAAiK,UAAI,CAAI,EAAC,KAAI,SAAO,OAAekG,GAAY3I,uBAAQ,uDAAkB,QAAmB,uFAAR+Q,CAAS,MAAW,YAAsBjR,OAAM,oBAAC,I,CAAgE,OAAe,0BAAuB,qE,UAA8C,K,gBAAaE,C,YAAa,O,0BAAwB8I,G,MAASvI,EAAK,M,OAAEuQ,EAAAA,qBAAM,C,MAAEhQ,C,QAAmB2B,EAAG,yB,MAAkB,e,MAAC,EAAO,GAACsO,wB,SAAK,iC,YAAyD,O,0BAA0F/Q,G,IAAiB,EAAQ8I,EAAO,Q,EAAC,EAAQvI,M,EAAY,EAACuQ,O,EAAO,EAAUhQ,Q,MAAQ,kBAAC6B,GAAG,CAAC,MAAS,K,QAAqC3C,EAAI01D,4BAAc,C,MAAC,wEAAC,qBAAI,gBAAQ,KAAK,EAAI,WAAI,IAAO,oBAAYC,IAAAA,MAAe,WAAU,uBAAoBA,GAAmB,KAAqC,IACp5D,WAGD,K,qHCZIv0D,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,sCAAgCE,EAAIqb,eAAc,oBAAYrb,EAAIqB,OAAS,CAAC,GAAGyb,IAAK,QAAU,MAAMna,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAClS,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,QAEAsb,eAAAA,SAEAta,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,6CACA,IClCqR,M,uBCA/C,GAAe,KCOjP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICtBKi0D,GDsBL,GAAe,GAAiB,SCtBhC,SAAKA,GACDA,EAAAA,UAAAA,SACAA,EAAAA,iBAAAA,gBACAA,EAAAA,6BAAAA,4BACAA,EAAAA,eAAAA,cACAA,EAAAA,2BAAAA,0BACAA,EAAAA,kBAAAA,iBACAA,EAAAA,8BAAAA,6BACAA,EAAAA,qBAAAA,oBACAA,EAAAA,iCAAAA,+BACH,EAVD,CAAKA,KAAAA,GAAY,KAYjB,UCTaC,IAAiCnoC,EAAAA,GAAAA,IAAY,CACtDrkB,GAAI,yBACJskB,MAAO,iBAAgC,CACnCmoC,aAAc,KACdpqD,SAAU,KACV2P,eAAgB,KACnB,EACD8S,QAAS,CACL4nC,uBAAsB,SAACC,GACnB/zD,KAAK6zD,aAAeE,EAAkBF,aACtC7zD,KAAKyJ,SAAWsqD,EAAkBtqD,SAClCzJ,KAAKoZ,eAAiB26C,EAAkB36C,cAC5C,GAEJ4b,SAAS,ICVb,IACI52B,MAAO,CAAC,aAAc,YACtBmG,WAAY,CACRyvD,uBAAAA,IAEJp1D,KAAI,WACA,MAAO,CACH80D,gBAAgB,EAChBO,aAAc,KACdlpB,OAAQ,eAEhB,EACAjsC,QAAS,CACL+wD,mBAAkB,WACd7vD,KAAKgE,MAAM,qBACf,EACAyvD,aAAY,WACRzzD,KAAKgE,MAAM,eACf,EACAwvD,gBAAe,SAAClgD,GACZtT,KAAKi0D,aAAe,CAAEn5C,KAAMxH,EAAKtS,KAAM6Z,GAAIvH,EAAKlM,GAAI8sD,qBAAsB5gD,EAAK6gD,sBAC/En0D,KAAK0zD,gBAAiB,CAC1B,GAEJhxD,UAAU,QACN2wD,eAAc,WACV,MAAO,qBAAP,OAA4BrzD,KAAKutB,WAAU,cAC/C,EACAluB,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,yCACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,qCACd/P,MAAO,yBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,yBACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,gCACd/P,MAAO,uCACP46C,MAAO,MACPtqB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,+BACd/P,MAAO,qBACP46C,MAAO,MACPtqB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0BACd/P,MAAO,UACP46C,MAAO,MACPtqB,UAAU,GAGtB,IACGtB,EAAAA,GAAAA,IAAU5C,KAEjBzrB,QAAO,WACH,IAAMq0D,EAAoB,CACtBP,aAAcF,GAAAA,OACdlqD,SAAUzJ,KAAKutB,WACfnU,eAAgB,MAEd8b,EAAQ0+B,KACd1+B,EAAM4+B,uBAAuBM,EACjC,GClFoT,M,uBCA9F,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBmK,cAAC,IAAG5zD,EAAG,KAAuD,IAAS,MAAC,G,OAAkB,EAACqrB,MAAQwoC,CAAAA,EAAAA,eAAAA,CAAS,MAAM,CAAuCx2D,MAAM,W,QAAC,kE,CAAkL,EAAC,wC,OAAI,Q,IAAC,EAAS,W,GAAiB,KAAWy2D,CAAAA,EAAAA,GAAAA,EAAsBD,C,MAAkB,CAAE,6GAAC90D,QAAM,mD,GAA2Be,C,OAAiC,SAAU,GAAkB,qCAACb,GAAiC,MAAKe,CAAkD3C,MAAM,YAAC,SAAQguB,SAAQ0oC,GAAkB,uBAAIx2D,EAA2D,WAAQ,wBAE94BI,GAAAA,EAAAA,GAAAA,GAAoB,UAExB,MAASgB,C,gGCwBT,IACAf,MAAAA,CAAAA,aAAAA,kBACAsE,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAw1D,cAAAA,SAAAA,EAAAA,GAAA,mIAGA,OAHA,SAEA,2CACAl1D,EAAAA,CAAAi7C,UAAAA,GAAA,SACA5qC,EAAAA,EAAAA,KAAAA,KAAAA,kBAAAA,OAAAA,EAAAA,WAAAA,cAAAA,OAAAA,GAAAA,GAAAA,MAAAA,YACA7P,EAAAA,EAAAA,IAAAA,iCACA,+DAEAF,EAAAA,EAAAA,IAAAA,4CAAA,QAEA,OAFA,UAEA,oHAVA,EAYA,IC9C0Q,MCOtQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QC2BhC,IACA8G,MAAAA,SAAAA,GACA,oCAAA26C,aAAAA,EAAAA,SAAAA,EAAAA,SAAAA,KAAAA,OACA,EACA58C,WAAAA,CACAiwD,WAAAA,GACAC,SAAAA,GACAC,MAAAA,IAEA51D,QAAAA,CACA+wD,oBAAAA,EAAAA,GAAAA,IAAAA,qBAAAA,WAAA,kIACApgD,EAAAA,EAAAA,KAAAA,IAAAA,kBAAAA,MAAAA,SAAAA,GAAA,8FACA,SAFAogD,IAAA,wCAAAA,IAGA4D,cAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,2IAEAhkD,EAAAA,EAAAA,KAAAA,IAAAA,kBAAAA,OAAAA,KAAAA,aAAAA,MAAAA,SAAAA,GAAA,6CACA,4CAAA0xC,aAAAA,KAAAA,SAAAA,OAAA,oDAEAzhD,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gCAAA,yDAEA,SAPAi1D,IAAA,wCAAAlB,IAQAmB,sBAAAA,EAAAA,GAAAA,IAAAA,0BAAAA,WAAA,2IAEAnlD,EAAAA,EAAAA,KAAAA,IACAzF,kBAAAA,OAAAA,KAAAA,WAAAA,cACA4C,MAAAA,SAAAA,GAAA,wBAFA,8EAIAlN,EAAAA,EAAAA,IAAAA,kDAAA,wDAEA,SARAm1D,IAAA,wCAAAD,KAUAh2D,KAAAA,WACA,OACAsuD,IAAAA,SACA3/B,WAAAA,KACA0iC,SAAAA,CACAjvD,KAAAA,MACA8zD,wBAAAA,CACA,CACA9hD,MAAAA,CACA+hD,OAAAA,KACAC,cAAAA,CACA5tD,GAAAA,KACAksD,iBAAAA,KACA2B,kBAAAA,UAMAC,eAAAA,GAEA,EACApzD,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GACA,IACA,4BACA,oBACA,4BACA,EACAgG,WAAAA,EACAjG,MAAAA,KC3GuQ,M,uBCA/C,GAAe,KCOnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4B0Y,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,EAACE,MAAO,Y,OAA+B,EAAM,WAAC,kBAAsB,OAAIyC,MAAG,KAAa,+BAAuC3C,KAAM,0B,EAAmEsyC,GAAAA,EAAa,GAAEpyC,eAAIoyC,CAAAA,EAAAA,cAAAA,C,MAAe,CAAE,4DAACzpC,cAAkB,EAAE,iB,YAAqC3I,EAAIG,GAAG,EAAwD,IAAC,UAACiS,GAAAA,WAAY,gEAAI3P,EAAkB3C,OAAM,O,EAAgEo1B,cAAel1B,C,MAAmB,CAAE,yDAAC2I,cAAkB,EAAE,iB,YAAqC3I,EAAIG,GAAG,EAAqD,IAAC,UAACiS,GAAAA,WAAY,6DAAKpS,EAA6E0C,OAAAA,OAAmC,cAAe,0CAAmC,iBAAC,YAAC,gBAAC0yB,MAAAA,CAAU,MAAQ,2C,SAAkD,CAAE,kBAACzsB,OAAW,EAAC3I,sBAASwC,G,YAAoCxC,EAAIG,GAAG,EAAmM,IAAC,UAACiS,GAAAA,WAAa,MAAK,GAAK,GAAC,MAAU,wKAAG,EAAiCtS,OAAM,IAAC,MAAO,EAAO,cAA4C,QAAUE,GAAIoR,EAAG,gB,MAAkC,CAAmB,MAAS,EAACpR,GAAImc,2CAAiC,+CAACxT,aAAe,MAAMnG,QAAI,QAAe,4B,YAAuBC,EAAG,K,IAAYC,gB,GAAwBuK,W,MAAa,GAAO,KAAC,CAAO,YAAC,YAACnN,YAAM,CAAC,MAAQ,S,MAA+C,CAAmB,cAAC0B,MAAM,6BAACH,gBAAiB,I,MAA6B,CAAU,MAAC,QAACK,SAAU,SAAC,GAAO,SAAI,EAAC,sBAAiBe,EAAqB3C,OAAM,M,CAAwB,mBAAWy1B,C,MAAa,CAAiD,WAAW,UAAG,oBAAG,YAAC,iCAAC,WAAW,IAAwB,GAAG,CAAgBz1B,MAAM,0BAA2B,gBAAgBE,C,MAA6B,CAAkD,sBAAsE,gBAAc,2BAAC,eAAW,iCAAE,oEAAI,UAAQyC,KAAoB,WAAC,OAA+B,wBAAG,GAAG,CACpyE,+BAGD,E,QCYA,IAAe8D,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,MACRoI,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,8BAClB,EACA5K,WAAY,CACR2kD,eAAAA,GACA+D,YAAAA,IAEJltD,QAAO,WACHC,KAAKspD,sBAAsBtpD,KAAKsnD,oBAChCtnD,KAAK0xC,2BACL1xC,KAAK2xC,yBACT,EACA/yC,KAAI,WACA,MAAO,CACHuxC,cAAe/5B,GAAON,MAAMrI,OAAO,QACnCwlB,cAAe7c,GAAON,MAAMmB,KAAK,EAAG,UAAUxJ,OAAO,QAErD45C,iBAAkB,EAClBkC,gBAAiB,EACjBC,cAAe,EACfC,aAAc,EAEdC,gBAAiB,EACjBC,eAAgB,EAEhBn7C,MAAO,SAEP84C,mBAAoB,CAChBpvC,aAAc,MACd3B,YAAavG,GAAAA,QACbuI,YAAa,GACboB,YAAa,iBAEjB2Z,aAAc,CAAEsJ,SAAU,GAAIzD,OAAQ,IACtC6G,aAASxzB,EACTo9C,eAAgB,KAChBxZ,sBAAuB,CAAC,EACxBC,qBAAsB,CAAC,EACvBqa,cAAe,CAAC,EAEhBhgC,aAAc/lB,EAAAA,EAAAA,MAAaklD,cAEnC,EACA/nD,MAAO,CACHwlD,mBAAoB,CAChBtlD,QAAO,SAACvE,GACCA,IACDuC,KAAKka,MAAMC,GAAG,yBAClBna,KAAKspD,sBAAsB7rD,GAC/B,EACAuK,WAAW,EACXjG,MAAM,GAEVyM,MAAO,CACHxM,QAAO,WACEhC,KAAKsnD,qBACNtnD,KAAKka,MAAMC,GAAG,yBAClBna,KAAKspD,sBAAsBtpD,KAAKsnD,oBACpC,EACAt/C,WAAW,IAGnBtF,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BklB,yBAAwB,WACpB,GAAI1wC,KAAKka,MAAMC,GAAG,6BAA+Bna,KAAKqwC,qBAClD,OAAOrwC,KAAKmP,GAAG,0CAEnB,IAAM/P,EAAQY,KAAKqwC,qBAAqBgL,iBACxC,YAAc7uC,IAAVpN,EACOY,KAAKmP,GAAG,0CAEL,IAAV/P,GAAyB,gBAAVA,EACRY,KAAKmP,GAAG,8CAEL,IAAV/P,GAAyB,YAAVA,EACRY,KAAKmP,GAAG,0CAEL,IAAV/P,GAAyB,kBAAVA,EACRY,KAAKmP,GAAG,gDAEL,IAAV/P,GAAyB,mBAAVA,EACRY,KAAKmP,GAAG,iDAEZnP,KAAKmP,GAAG,yCACnB,IAEJrQ,QAAS,CACLwqD,uBAAuB5hC,EAAAA,GAAAA,IAAQ,uBAAsB,yCAAE,WAAqCjqB,GAAO,2GACxC,GAAjDozC,EAAcnJ,GAA2BjqC,GAC1CozC,EAAa,CAAF,gEACapwB,GAAchjB,EAAQkc,YAAak3B,EAAa7wC,KAAKwO,OAAM,OAAlFw7C,EAAiB,EAAH,OACmBjC,GAA8BiC,GAAgB,GAAK,gBAAnFjZ,EAAY,KAAE6Y,EAAc,KACnC5pD,KAAK4pD,eAAiBA,EACtB5pD,KAAKszB,aAAe,CAChB6F,QAAQ,QAAI4X,EAAa5X,QACzByD,UAAU,QAAImU,EAAanU,WAE/B58B,KAAKggC,QAAU6Q,EAAYh6B,OAC3B7W,KAAK0pD,gBAAkBM,EAAeG,UACtCnqD,KAAK2pD,eAAiBK,EAAeI,SAC/B7Y,EAAKn7B,GAAON,MACZ07B,EAAKp7B,GAAON,MAAMmB,KAAK,EAAG,UAChCjX,KAAKqnD,kBAAmD,QAAhC,EAAA2C,EAAeK,yBAAiB,OAAqB,QAArB,EAAhC,EAAmC9Y,EAAG9jC,OAAO,gBAAQ,WAArB,EAAhC,EAAwD8jC,EAAG9jC,OAAO,SAAU,EACpGzN,KAAKupD,iBAAiD,QAA/B,EAAAS,EAAeM,wBAAgB,OAAqB,QAArB,EAA/B,EAAkC/Y,EAAG9jC,OAAO,gBAAQ,WAArB,EAA/B,EAAuD8jC,EAAG9jC,OAAO,SAAU,EAClGzN,KAAKwpD,eAAgD,QAAhC,EAAAQ,EAAeK,yBAAiB,OAAqB,QAArB,EAAhC,EAAmC7Y,EAAG/jC,OAAO,gBAAQ,WAArB,EAAhC,EAAwD+jC,EAAG/jC,OAAO,SAAU,EACjGzN,KAAKypD,cAA8C,QAA/B,EAAAO,EAAeM,wBAAgB,OAAqB,QAArB,EAA/B,EAAkC9Y,EAAG/jC,OAAO,gBAAQ,WAArB,EAA/B,EAAuD+jC,EAAG/jC,OAAO,SAAU,EAC/FzN,KAAK0qD,cAAgBjK,GAAqB5P,EAAamZ,GAAgB,iDAC1E,SApBqEV,EAAsB,GAAD,sCAArBA,CAAqB,CAAtC,IAqBrD91B,qBAAoB,YAAmB,MAAhBjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAC1B,GAAIA,EACAl9B,KAAKsnD,mBAAmB/uC,YAAcvY,KAAKsnD,mBAAmB/uC,YAAc,QACzE,GAAuC,QAAnC,EAAAvY,KAAKsnD,mBAAmB3tC,mBAAW,OAAnC,EAAqCmuB,WAAW,QAAkB,CACzE,IAAM1F,EAAiBpiC,KAAK4pD,eAAeryC,GACrCnD,EAAM,GAAH,OAAMy4B,mBAAmB7sC,KAAKsU,QAAO,YAAIu4B,mBAAmBzK,IACrEpiC,KAAKmR,QAAQxT,KAAK,qCAAD,OAAsCkvC,mBAAmB7sC,KAAKsU,QAAO,gBAAQF,EAAG,W,KAC9F,CACH,IAAMguB,EAAiBpiC,KAAK4pD,eAAeryC,GAC3CvX,KAAKmR,QAAQxT,KAAK,6BAAD,OACgBqC,KAAKsnD,mBAAmB3tC,YAAW,YAAIyoB,EAAc,W,CAG9F,EACA4P,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,6BAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,+BAC1B,EACAuiC,0BAA0BhqB,EAAAA,GAAAA,IAAQ,2BAA0B,yCAAE,wFACtD1nB,KAAK8qB,YAAYgB,SAAS5hB,SAAS,wBAAyB,CAAF,+BACvBuF,EAAAA,EAAAA,KAAAA,IAC1B,gCACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,KAAKA,IAAI,IAAC,OAF7BoB,KAAKowC,sBAAwB,EAAH,2BAI1BpwC,KAAKowC,sBAAwB,CAAC,EAAE,gDAEvC,SAR4EsB,IAAwB,sCAAxBA,CAAwB,CAAzC,IAS5DC,yBAAyBjqB,EAAAA,GAAAA,IAAQ,0BAAyB,yCAAE,wFACpD1nB,KAAK8qB,YAAYgB,SAAS5hB,SAAS,wBAAyB,CAAF,+BACxBuF,EAAAA,EAAAA,KAAAA,IACzB,yCACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFxBoB,KAAKqwC,qBAAuB,EAAH,2BAIzBrwC,KAAKqwC,qBAAuB,CAAC,EAAE,gDAEtC,SAR0EsB,IAAuB,sCAAvBA,CAAuB,CAAxC,IAS1Dve,qBAAoB,WAChB,MAA4BjI,GAAgBnrB,KAAK8qB,aAAzCQ,EAAe,EAAfA,gBACJA,EACItrB,KAAKqwC,qBAAqBgL,iBAAmB,EAC7Cr7C,KAAKmR,QAAQxT,KAAK,aAElBqC,KAAKmR,QAAQxT,KAAK,oBAGtBqC,KAAKunD,2BAA4B,CAEzC,KC/KmS,M,uBCAxF,GAAe,KCQ9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCvBkF,W,IAA0B,EAAM,K,EAAY,QAAW,G,OAAE,+BAAE,MAAK,CAAU1pD,MAAM,uBAAC,gBAAiC,cAAuB0B,CAAAA,EAAK,KAAC,C,MAAM,CAAWe,mBAAS,c,mBAA2B,I,MAAEb,CAAgB,YAAIe,SAAU,SAAC,GAAC3C,EAAM,KAAC,EAAwB,mBAAiBA,CAAAA,EAAK,KAAC,C,MAAC,CAAS,yBAAkGA,CAAAA,EAAK,IAAC,C,MAAK,CAAkB,UAAiBA,CAAAA,EAAK,GAAC,6E,MAAC,CAAS,uBAA0FA,CAAAA,EAAK,IAAC,C,MAAK,CAAmB,UAAiBA,CAAAA,EAAK,GAAC,qE,MAAC,CAAS,wBAA0GA,CAAAA,EAAK,IAAC,C,MAAK,CAAkB,UAAiBA,CAAAA,EAAK,GAAC,qF,MAAC,CAAS,uBAAiIA,CAAAA,EAAK,IAAC,C,MAAK,CAAmB,UAAiBA,CAAAA,EAAK,GAAC,wG,MAAC,CAAS,wBAA0IA,CAAAA,EAAK,IAAC,C,MAAK,CAAoB,UAAiBA,CAAAA,EAAK,GAAC,+G,MAAC,CAAS,yBAA+IA,CAAAA,EAAK,IAAC,C,MAAK,CAAmB,UAAiBA,CAAAA,EAAK,GAAC,oH,MAAC,CAAS,wBAA4IA,CAAAA,EAAK,IAAC,C,MAAK,CAAsB,UAAiBA,CAAAA,EAAK,GAAC,iH,MAAC,CAAS,2BAA0JA,CAAAA,EAAK,IAAC,C,MAAK,CAAmB,UAAiBA,CAAAA,EAAK,GAAC,+H,MAAC,CAAS,wBAAwGA,CAAAA,EAAK,IAAC,C,MAAK,CAAmB,UAAiBA,CAAAA,EAAK,GAAC,iF,MAAC,CAAS,wBAA8FA,CAAAA,EAAK,IAAC,C,MAAK,CAAyB,UAAiBA,CAAAA,EAAK,GAAC,yE,MAAC,CAAS,8BAAqGA,CAAAA,EAAK,IAAC,C,MAAK,CAAoB,UAAiBA,CAAAA,EAAK,GAAC,gF,MAAC,CAAS,yBAAoGA,CAAAA,EAAK,IAAC,C,MAAK,CAA0B,UAAiBA,CAAAA,EAAK,GAAC,+E,MAAC,CAAS,+BAAiIA,CAAAA,EAAK,IAAC,C,MAAK,CAAwB,UAAiBA,CAAAA,EAAK,GAAC,wG,MAAC,CAAS,6BAAiIA,CAAAA,EAAK,IAAC,C,MAAK,CAAoB,UAAiBA,CAAAA,EAAK,GAAC,sG,MAAC,CAAS,yBAAsGA,CAAAA,EAAK,IAAC,C,MAAK,CAAoB,UAAiBA,CAAAA,EAAK,GAAC,+E,MAAC,CAAS,yBAA0GA,CAAAA,EAAK,IAAC,C,MAAK,CAAuB,UAAiBA,CAAAA,EAAK,GAAC,qF,MAAC,CAAS,4BAAgGA,CAAAA,EAAK,IAAC,C,MAAK,CAAqB,UAAiBA,CAAAA,EAAK,GAAC,2E,MAAC,CAAS,0BAAmHA,CAAAA,EAAK,IAAC,C,MAAK,CAAkB,UAAiBA,CAAAA,EAAK,GAAC,0F,MAAC,CAAS,uBAAoIA,CAAAA,EAAK,IAAC,C,MAAC,CAAmC,U,CAAK,oBAAwB,IAAKie,EAAAA,GAAAA,EAAAA,GAAAA,wBAAAA,MAAAA,GAAAA,EAAAA,MAAAA,IAAAA,GAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,cAAAA,CAAgB,OAAI,iBAAO,iBAEnyH3d,GAAAA,CAEJ,uBAAgC,uB,cCyHhC,+CACA,+CACA,IACAS,KAAAA,WACA,OACAsuD,IAAAA,KACAviC,QAAAA,EACA9W,cAAAA,GAEA,EACA/U,QAAAA,CACAgd,kBAAAA,EAAAA,GAAAA,IAAAA,oBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACArM,EAAAA,EAAAA,KAAAA,IACAzF,+BACA4C,MAAAA,SAAAA,GAAA,wBAFA,4EAKA7M,QAAAA,WACA,uBACA,EACA2C,UAAAA,EAAAA,EAAAA,GAAAA,CACAyyD,iBAAAA,WACA,OACAC,IACA,wDAEA,EACAC,wBAAAA,WACA,wCACA,uBAEA,YACA,EACAC,qBAAAA,WACA,wDACA,EACAC,mBAAAA,WACA,qDACA,EACAC,gBAAAA,WACA,wDACA,EACAC,iBAAAA,WACA,wDACA,EACAC,gBAAAA,WACA,wDACA,EACAC,eAAAA,WACA,4DACA,IACAvnC,EAAAA,GAAAA,IAAAA,MChLkQ,M,sBCA/C,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2N,W,IAAgBznB,EAAG,K,EAAW,QAAW,GAA6B,EAAC,kB,SAAC,KAAQ,kBAAgB,C,aAAgD,8B,QAAE,kC,YAA0B,O,wCAAgC,6BAA0B,C,UAAyB,SAAC,G,OAAC,EAAO,6BAAY,E,eAAuBnG,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAG,OAAI,kBAAC,eAAa,WAAO,OAAwC,UAA2CA,CAAAA,EAAImc,GAAAA,SAAS,SAAkB,2BAAE,OAAsCvT,E,OAAc2M,M,oCAAiD,C,aAAmB,EAAC,oB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,4BAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAA4Q,yBAAC,I,CAAkE,oGAAC,IAAIA,MAAG,SAAoBA,GAAgQ,+BAAC,I,CAAqE,yMAAC,IAAIA,MAAG,SAAoBA,GAA0P,oCAAC,I,CAA0D,+LAAC,IAAIA,MAAG,SAAoBA,GAAsN,uCAAC,I,CAA4D,iMAAC,IAAIA,MAAG,SAAoBA,GAA0J,4BAAQ,IAAmD,2JAAC,IAAqC,kBAAO,8BAAM,IAAwD,CAACq1D,EAAAA,GAAAA,EAAAA,CAAAA,EAAoB,IAAI,wGAAEp2D,MAAAA,KAAiC,sCAAG,GAAG,CAA+C,QAAC,0BAAqC,MAAC,CAACF,MAAM,uBAACH,SAAU,SAAC02D,GAA+Bx1D,EAAAA,qBAAmBynB,C,EAA2C,WAAC,0BAA2C,8CAAG,GAAG,CAAgClqB,QAAM,0BAA6B,MAAC,CAAG,MAAC,gCAAC,SAAS,SAAKk4D,GAAuB,iCAACx2D,EAAOH,WAAW42D,mC,EAA+Cj4D,8BAA4B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAyB,GAAG,CAAmC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,uBAAC,SAAS,SAAKk4D,GAAuB,wBAACx2D,EAAOH,WAAW62D,0B,EAA8Cl4D,iCAA2B,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAwB,GAAG,CAA4C5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,sBAAC,SAAS,SAAKk4D,GAAuB,uBAACx2D,EAAOH,WAAW82D,yB,EAAuDn4D,0CAAoC,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAiC,GAAG,CAAmC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,+BAAC,SAAS,SAAKk4D,GAAuB,gCAACx2D,EAAOH,WAAW+2D,kC,EAAkDp4D,iCAA+B,C,MAAC,CAAC0B,QAAU,EAAC,gBAA4B,GAAG,CAAyC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,0BAAC,SAAS,SAAKk4D,GAAuB,2BAACx2D,EAAOH,WAAWg3D,6B,EAAqDr4D,uCAAkC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA+B,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,2BAC9nJ,qBACGtB,EAAAA,2BAAoB,CAExB,E,6GCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,uBAAuBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,WAAW,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACvvB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAkC9I,EAAM,Q,MAAC,oCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACzuB,UAGD,E,SCJ6I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,oC,QAAiH,W,YAAkB,EAAM,K,IAA4B,W,GAAE,WAA6C,qHAACoS,MAAM,CAAM,eAAK,KAAS,qCAA+B,CAAhBtB,EAAAA,GAAM,iC,SAAW,G,2BAEneynD,G,IACAC,EAAAA,EAAAA,O,EACIC,EAAAA,M,MACAC,CAAAA,EAAK,GAAE14D,UAAI24D,KAAe,C,KAC1BC,C,KACAC,EAAAA,KACJ,0CACH,uBAAC,WAAe,cAAC,MAAU74D,EAAIS,gBAAM,UAAcK,EAAAA,aAAQ,WAAQkQ,EAAAA,aAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAWE,CAAkC,EAAsB,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACwB,SAAM,4BAACH,MAAOrB,EAAIiD,UAAMV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAgB3C,SAAM,YAAC,sBAAc,CAA4B,EAAyD,WAAW,yBAA+B,OAAW,CAAE,MAAC,CAAC0B,YAAM,4BAACH,MAAOrB,EAAI84D,GAAAA,0CAAav2D,MAAQ,EAAC,iB,QAAoBu2D,GAAsD,SAAC,IAAyB,OAAIr2D,MAAG,cAAgB3C,SAAM,YAAC,cAAc,8BAAgD,EAAwE,WAAWi5D,iBAAuG,OAAYC,C,MAAqB,CAAa,YAAW,gDAAG,kEAAG,KAAC,wCAAC,WAAe,8C,MAAOh5D,EAAI+4D,qBAA8C,WAAE,a,GAAQ13D,CAA4BkB,eAAS,WAAgBvC,OAAI24D,EAAAA,qBAA2B,EAAK,mBAA0B,GAA8B,OAAIl2D,MAAG,kBAA0B3C,SAAM,YAAC,kBAAe,6BAAwC,CAAC,E,WAAe,qBAAM,4BAAC0B,MAAM,CAACH,MAAOrB,EAAIi5D,GAAAA,yCAAY12D,MAAQ,CAAC,WAAgBvC,OAAIi5D,CAAc,IAAyB,OAAIx2D,MAAG,aAA0B3C,SAAM,YAAC,aAAkBg5D,CAAY,EAAsC,WAAS94D,gBAAyE,2BAAYk5D,CAAiB,MAAC,CAAC13D,YAAM,cAACH,gBAAW83D,EAAa,gBAAC52D,OAAS,a,MAAoB42D,EAAAA,GAAAA,2CAAuD,MAAC,qBAA0B,OAAI,MAAG,eAC19E,qBACG/4D,EAAAA,aAAoB,8BAExB,E,wCCbwFN,I,SAAM,W,IAAC,O,EAAkB,EAAO,MAAKs5D,G,OAAgB,OAAct4D,C,MAAQ,CAA0B,MAAQd,EAAIiV,MAAM,wBAAkB,UAAe,QAAI,eAAYyS,EAAK,OAAC,cAAmB,kBAAG,gBAAC,GAAC,MAAQ,Q,gBAA4BzhB,I,GAAwB,C,MAA0CozD,SAAa,GAAC,yBAAC,E,qBAAwD,sBAAE,EAAC1wD,sBAAoB,YAACnG,EAAI,QAAgBoG,G,YAAqG,O,wCAAuB,GAAQ,QAAS,Q,MAAC,CAAkB,QAAI,UAAC,gBAAM,cAAC,MAA/B,wBACnoB,EACGxI,OAAAA,M,SCqBJ,IACAC,MAAAA,CAAAA,QAAAA,cAAAA,kBAAAA,SAAAA,QAAAA,SACAsE,SAAAA,CACAy0D,gBAAAA,WAAA,WACA,0BACAnqD,KAAAA,SAAAA,GAAA,uBACAoxB,OACA,mBACA,cACAtmB,OAAAA,EAAAA,QAAAA,SAAAA,GAAA,kCACAf,QAAAA,SAAAA,EAAAA,EAAAA,GACA,uBACA,IALA,CAMA,EACAsgD,kBAAAA,WACA,gEACA,GAEAv1D,MAAAA,CACAu1D,kBAAAA,WACA,gBACA,sBACA,EACAD,OAAAA,SAAAA,GAAA,gIACArvD,EAAAA,CAAA,oDACA,+DACA,mEACA,kEACA,yEACA,6DAEA,wCAEA/I,EAAAA,EAAAA,KAAAA,KACAwwB,sBAAAA,CACAgnC,WAAAA,EAAAA,YACAC,MAAAA,EAAAA,gBACAG,WAAAA,EAAAA,SAEAhqD,MAAAA,SAAAA,GAAA,yBANA,4EAQAjN,GAAAA,EAAAA,MACA,eACA,8HAEA,qBAEA,OAFA,UAEA,0FAxBA,EA0BA,GAEAf,KAAAA,WACA,OACA04D,aAAAA,KACAC,SAAAA,EACA14D,SAAAA,EACAu4D,OAAAA,GAEA,GCjFsR,MCOlR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBwDv5D,GAAM,W,IAAC,O,EAAkB,EAAO,MAAK25D,G,OAAkB,OAAkB,C,MAAC,CAAoB,MAAS,EAACz5D,MAAY,0BAA0B,YAAYiV,OAAM,aAAY5T,OAAgE,kBAAqB,eAAe,EAAE,OAAC,cAAmB,KAAQrB,EAAI0nB,WAAK,4CAAC,kBAAgB,GAAG,kBAAG,gBAAC,GAAC,MAAQ,Q,gBAA4BzhB,I,GAA6C,C,MAA0CozD,SAAa,GAAC,qCAAC,E,qBAAwD,sBAAE,EAAC1wD,sBAAoB,YAACnG,EAAI,QAAgBoG,G,YAAqG,O,wCAAuB,GAAQ,QAAS,Q,MAAC,CAAkB,QAAI,UAAC,gBAAM,cAAC,MAA/B,wBAClyB,EACGxI,OAAAA,M,QCqCG,IACP,CAAAkO,KAAAA,GAAArL,KAAAA,cACA,CAAAqL,KAAAA,aAAArL,KAAAA,mBACA,CAAAqL,KAAAA,iBAAArL,KAAAA,oBAGA,IACA5C,MAAAA,CAAAA,QAAAA,QAAAA,SACAsE,SAAAA,CACA80D,kBAAAA,WAAA,WACA,mBACA,cACA1/C,OAAAA,KAAAA,WAAAA,QAAAA,SAAAA,GAAA,uCACAf,QAAAA,SAAAA,EAAAA,EAAAA,GACA,4DACA,IALA,eAMA,GAEAnY,KAAAA,WACA,OACA64D,WAAAA,GAAAA,OAAAA,IACAF,SAAAA,EACA14D,SAAAA,EACAu4D,OAAAA,GAEA,GChEsR,M,uBCAlD,GAAe,KCO/O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC2FhC,kBACA,wBACA,uEACA,IACA7yD,WAAAA,CAAAmzD,qBAAAA,GAAAC,qBAAAA,IACAv5D,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WAAA,WACA,OACAJ,OAAAA,EACAkG,QAAAA,EAAAA,EAAAA,MAAAA,SACA1D,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,8DACAkyB,qBAAAA,EACAf,YAAAA,GACAgB,iBAAAA,CACA,gFACA,yFAEAb,WAAAA,GACAF,qBAAAA,EACAJ,gBAAAA,GACAK,qBAAAA,CACA,oFACA,mBACAe,GAAAA,KAAAA,IAAAA,EAAAA,GAAAA,0DAAA,GAEAZ,aAAAA,GACAD,kBAAAA,CACA,iFACA,+FAGA,EACAn1D,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,+CACA,yBACA,oDACA,mDACA,mDACA,sDAEA,oBACA,wBACA,qBACA,oBAEA,EACAgG,WAAAA,EACAjG,MAAAA,KCrK4R,M,uBCAlD,GAAe,KCOrP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAwzD,2BAAAA,IACAj5D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B8R,MCO1R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B5R,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,8BAA8B,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACzO,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,yCACA,IC5B+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCGhC,IACA6E,WAAAA,CAAAyzD,6BAAAA,GAAAC,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5BkS,MCO9R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,uCAAuC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,uBAAuBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,OAAO,UAAMG,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAC3uB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAsC9I,EAAM,Q,MAAC,wCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IAC7uB,UAGD,E,SCJ8H,W,IAAoD,OAAqB,EAAC,WAACpI,EAAY3I,MAAM,Y,OAAM,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,4C,QAAiH,W,YAAkB,EAAM,K,IAA4B,W,GAAE,WAA6C,qHAACoS,MAAM,CAAM,eAAK,KAAS,qCAA+B,CAAhBtB,EAAAA,GAAM,iC,SAAW,G,2BAE9fgrC,G,IACVyc,EAAAA,EAAAA,O,EACA4B,EAAAA,M,MACIC,CAAAA,EAAAA,GAAAA,UAAkBC,KAAAA,C,KAClB5B,C,KACAC,EAAO14D,K,KACP44D,EAAAA,iB,oBACgBK,EAAAA,oBACpB,yBACH,0BAAC,WAAe,UAAC,MAAUj5D,EAAIS,YAAM,UAAcK,EAAAA,aAAQ,WAAQkQ,EAAAA,aAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAWE,CAAkC,EAAkC,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACwB,SAAM,4BAACH,MAAOrB,CAAG,EAACiD,OAAK,YAACV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAKhqB,MAAIs6D,EAAAA,oBAAiCx6D,SAAM,YAAC,sBAAe,CAAmD,EAA+C,oCAAQuB,EAAAA,eAAkB,Q,MAACkB,C,MAA6Bg4D,EAAM,GAACvwC,mDAAG,SAAC,+BAAoB,OAAG,MAAO,EAAGvnB,OAAmB3C,SAAM,YAAC,SAAc,CAA+C,EAA6D,WAAUE,YAAsG,OAAU,EAAC,MAAE,MAAC,CAAG,YAAC,+CAAC,MAAQ,EAAC,iD,MAAwBA,CAAAA,EAAIw6D,OAAAA,WAAoB,EAAE,wEAAE,a,GAAQn5D,CAAoBkB,OAAS,YAAgBvC,OAAIy6D,EAAO,sBAA2C,GAAsB,OAAIh4D,MAAG,UAAgB3C,SAAM,YAAC,UAAc,oBAAmB,UAAC,EAAgE,WAAUE,aAAwE,OAAW,CAAE,MAAC,CAACwB,YAAM,oBAACH,MAAOrB,EAAIq6D,GAAAA,iDAAY93D,MAAQ,CAAC,oBAAe,iC,QAAK83D,GAAqD,SAAC,IAAwB,OAAI53D,MAAG,aAAgB3C,SAAM,YAAC,aAAc,oBAAqB,UAAC,EAAiE,WAAUE,gBAAuE,OAAW,CAAE,MAAC,CAACwB,YAAM,sBAACH,MAAOrB,EAAI06D,GAAAA,kDAAan4D,MAAQ,CAAC,oBAAe,gC,QAAKm4D,GAAsD,SAAC,IAAyB,OAAIj4D,MAAG,cAAgB3C,SAAM,YAAC,cAAe,8BAAiD,E,WAAe,iBAAM,OAAc,CAAqB,MAAC,CAAC0B,MAAM,sDAACH,MAAOrB,CAAG,WAAauC,OAAQ,C,GAAmC,YAAC,uBAAwB,OAAIE,MAAG,aAAgB3C,SAAM,YAAC,aAAe,CAAmD,EAA8B,2BAAsC0B,EAAK,KAAC,C,MAAM,CAAoBe,MAAQ,EAAC,sD,MAAoB42D,EAAAA,kBAAuD,YAAC,wBAA0B,OAAI,MAAG,eACngG,qBACG/4D,EAAAA,aAAoB,8BAExB,E,wCCVMu6D,GAAuB,iBACvBC,GAAkB,oEACxB,IAAer0D,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,UAAW,QAAS,YAC5BQ,KAAI,sBACA,MAAO,CACHJ,OAAO,EACPkG,QAASC,EAAAA,EAAAA,MAAaC,SACtB5D,KAAM,GACN42D,qBAAqB,EACrBQ,WAAY,GACZI,QAAS,GACTC,YAAaC,GACbxB,aAAc,GACdoB,QAAQ,EACRrB,kBAAmB,CACf,SAACvmD,GAAC,QAAOA,GAAK,EAAKvB,GAAG,2DAA2D,EACjF,SAACuB,GAAC,OAAKioD,GAAgBh2D,KAAK+N,IAAM,EAAKvB,GAAG,gEAAgE,GAE9G6nD,WAAY,GAEpB,EACAl1D,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,IACL/H,KAAKgB,KAAO+G,EAAI/G,KAChBhB,KAAKs4D,OAAsB,eAAbvwD,EAAIjK,KAClBkC,KAAK43D,oBAAsB7vD,EAAI6vD,oBAC3B7vD,EAAI6wD,yBACJ54D,KAAKo4D,WAAarwD,EAAI6wD,wBAAwBC,aAC9C74D,KAAKw4D,QAAUzwD,EAAI6wD,wBAAwBE,WAC3C94D,KAAKy4D,YAAc1wD,EAAI6wD,wBAAwB5vD,MAC/ChJ,KAAKg3D,WAAajvD,EAAI6wD,wBAAwB5B,WAC9Ch3D,KAAKk3D,aAAenvD,EAAI6wD,wBAAwBG,YAEhD/4D,KAAKo4D,WAAa,GAClBp4D,KAAKw4D,QAAU,GACfx4D,KAAKy4D,YAAcC,GACnB14D,KAAKk3D,aAAe,GACpBl3D,KAAKg3D,WAAa,IAE1B,EACAhvD,WAAW,EACXjG,MAAM,IAGdW,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5B6sC,eAAc,WACV,OAAOr4D,KAAK8qB,YAAYO,iBAAiB,eAC7C,EACAwuB,iBAAgB,WACZ,OAAO75C,KAAKs4D,OAAS,aAAe,QACxC,IAEJx5D,QAAS,CACLy5D,qBAAoB,WAChB,IAAIv4D,KAAKo4D,YACJp4D,KAAKw4D,SACLx4D,KAAKw4D,QAAQ1wB,WAAW,iBAA7B,CACA,MAAyB9nC,KAAKw4D,QAAQ3gD,MAAM,KAAI,gBAArCugD,EAAU,KAChBA,IACLp4D,KAAKo4D,WAAaA,EAHmC,CAIzD,KCrEwU,M,uBCA9F,GAAe,KCO7P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACAh6D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAy0D,mCAAAA,IACAl6D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1BsS,MCOlS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCUhC,IACAxM,WAAAA,CAAA00D,qCAAAA,GAAAhB,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,SAEAsD,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,MClC0S,MCOtS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BjvB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,sBAAsB,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,KAAO,wBAAwB,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,MACjwB,EACI3Q,GAAkB,GCFlBgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,uCAAiCE,EAAIqB,OAAS,CAAC,GAAGgI,GAAE,YAAIrJ,EAAID,MAAO,QAAU,KAAK,OAASC,EAAIqB,OAAS,CAAC,GAAGrB,EAAID,MAAQ,KAAK4C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACrT,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAgrB,GAAAA,OAEAtqB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,oCACA,IC/B4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCGhC,IACA6E,WAAAA,CAAAyzD,6BAAAA,GAAAmB,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICpCgS,MCO5R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B3P,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,uCAAuC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,sBAAsB,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,EAAM8C,QAAQ,KAAQ14D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,KAAO,0BAA0B,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,MACrxB,EACI3Q,GAAkB,GCuBtB,IACAoG,WAAAA,CAAA00D,qCAAAA,GAAAE,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICpCyS,MCOrS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYtO,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA6B9I,EAAM,Q,MAAC,+BAAuB,C,MAAiB,CAAoB,QAAQE,EAAM,MAAC,oBAAkC,QAAWA,QAA4C,6CAAC2I,SAAY3I,EAAIoQ,GAAI,sC,YAAkB,O,IAAoC,U,GAAhBU,SAAM,G,IAAEvQ,EAAK,EAALA,QAAS,EAAW,SAAeoC,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA8DQ,EAAAA,GAAAA,GAAK,gCAAY,C,WAAS,EAAe5B,KAAK,aAAmBK,QAAAA,eAA8B,sBAAC5B,WAAM,oB,MAAqB,CAAc,MAAQgJ,EAAAA,QAAQ,MAAOgI,EAAO,QAAG,KAAC,G,GAA4BC,C,QAAmB/Q,SAAU,GAAkB,IAAC,4CAAC,GAAI,KAAiB,eAAgB,IACtgC,UAGD,E,MCJIoB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,uCAAiCE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACrQ,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,yCACA,ICjCiR,M,uBCA/C,GAAe,KCO7O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCmBhC,IACA6E,WAAAA,CAAA80D,uBAAAA,GAAAC,yBAAAA,IACAl7D,MAAAA,CACAgB,MAAAA,QACAm6D,QAAAA,SC7CiR,M,uBCA/C,GAAe,KCO7O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBY/4D,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA2B9I,EAAM,Q,MAAC,GAAO,0BAAY,C,MAAC,CAA8C,gBAAC6I,QAAY3I,EAAIoQ,MAAI,2B,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA6DQ,EAAAA,GAAAA,GAAK,+BAAY,C,WAAS,EAAe5B,KAAK,aAAyBK,QAAAA,eAAoC,4BAAC5B,WAAM,0B,MAAqB,C,MAAiB,U,QAAiB,EAAQuB,GAAAA,UAAmB,YAAC,MAAOyP,EAAM,OAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,G,GAA4BiQ,C,QAAmB/Q,SAAIy7D,GAA4B,IAAC,mDAAC,GAAI,KAAiB,eAAgB,IAC1gC,UAGD,E,MCJ4Ch5D,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAiB,C,MAAC,CAAwB,MAAS,EAACE,MAAY,oBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,IAAU1Q,M,MAAU,GAAQgR,GAAAA,UAAK,MAAC,QAASF,EAAAA,MAAO,MAAS,EAAa,OAAO,E,QAAW,EAACG,QAAW,MAAI,qBAAezP,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,U,CAAuB,OAAai5D,C,MAAmB,CAAqB,MAAQ17D,CAAAA,EAAIoR,OAAG,YAAQ,kBAAW,GAAG,mBAAC5P,SAAM,I,MAAwBe,C,MAA6B0O,EAAAA,WAAc,SAAC,YAACvP,EAAAA,WAAW,CAAY,EAAI,WAAG,iBAEtqBtB,EAEJ,E,MCkBA,IACAC,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,CACAN,SAAAA,EACAT,KAAAA,SAEA0I,MAAAA,CACAjI,QAAAA,cACAT,KAAAA,QAEA2I,SAAAA,CACAlI,QAAAA,6CACAT,KAAAA,SAGAc,KAAAA,WACA,OACAJ,OAAAA,EACAwQ,WAAAA,GAEA,EACAlN,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,uBACA,EACAgG,WAAAA,KClD6Q,MCOzQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7I,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAM,uCAAiC37D,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACvR,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAO,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,wCACA,ICzCgR,M,uBCA/C,GAAe,KCO5O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCUhC,IACAtB,MAAAA,CACAgB,MAAAA,QACAm6D,QAAAA,QAEAh1D,WAAAA,CAAAo1D,qBAAAA,GAAAC,wBAAAA,IACA96D,QAAAA,CACA06D,uBAAAA,SAAAA,IACA55D,EAAAA,EAAAA,IAAAA,2BAAAA,OAAAA,EAAAA,OACA,uBACA,IC1CmR,MCO/Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYY,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAqC9I,EAAM,Q,MAAC,GAAO,oCAAY,C,MAAC,CAAoD,gBAAC6I,QAAY3I,EAAIoQ,MAAI,iC,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA6DQ,EAAAA,GAAAA,GAAK,+BAAY,C,WAAS,EAAe5B,KAAK,aAA+BK,QAAAA,eAA0C,kCAAC5B,WAAM,gC,MAAa,CAAsC,MAAC,CAAC,KAAS,QAAE,mB,QAAuB,EAAuBuB,GAAAA,UAAkC,2BAAC,MAAOyP,EAAM,sBAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,G,GAA4BiQ,C,QAAmB/Q,SAAIy7D,GAA4B,IAAC,mDAAC,GAAI,KAAiB,eAAgB,IACpmC,UAGD,E,SCJgJ,W,IAA4D,OAAqB,EAAC,W,OAAC9yD,EAAAA,YAAoB,C,MAAK,CAAUC,MAAG,KAASkI,uC,SAAuB9Q,EAAM,GAAC,0C,QAAsB,EAAC,S,YAAgD,O,IAAC,U,GAAgB,SAAUA,EAAS,G,MAAC,GAAS,GAACA,UAAW,MAAC,KAAO,CAAS,2CAAI,OAAU,EAAM,QAAC,QAACqB,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAW3C,SAAM,YAAC,QAAQ,CAAU,EAAS,qBAAiBA,CAAAA,EAAK,KAAC,C,MAAC,CAAU,MAAQ,UAAS,UAAmHA,CAAAA,EAAK,IAAC,C,MAAC,CAAsC,QAA4D,kB,CAAsB0C,EAAG,GAAC,aAAQ,4E,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAI,MAAG,sBAC/1C,qBACG5pB,EAAAA,oBAAoB,CAExB,E,+CC+CA,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WACA,OACAJ,OAAAA,EACAo5D,qBAAAA,EAEA,EACA91D,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,+CACA,EACAgG,WAAAA,EACAjG,MAAAA,KClEsR,M,uBCA/C,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCQhC,IACA3D,MAAAA,CACAgB,MAAAA,QACAm6D,QAAAA,QAEAh1D,WAAAA,CAAAs1D,8BAAAA,GAAAD,wBAAAA,IACA96D,QAAAA,CACA06D,uBAAAA,SAAAA,IACA55D,EAAAA,EAAAA,IAAAA,yCACA,uBACA,ICxCyR,MCOrR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBsD/B,GAAM,W,IAAC,O,EAAsB,QAAUE,G,OAAY,OAAYqxB,C,MAAc,CAAgB,kBAAkC,QAAUrxB,EAAI6xB,QAAS,QAAY7xB,cAAe,gBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,iBAAE,EAAC1T,mBAAoB,YAACnG,EAAI,WAAS,CAACoG,G,YAA2F,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,yDAACoG,E,OAAc2M,G,KAA6BzV,Y,YAAc,G,IAAS,S,MAAI,a,MAAC,C,KAAyB,UAAoC,IAAI2C,MAAS,SAAC,GAACC,OAAW,EAAC,qBAAkB1C,IAAyC,WAAI,6BAAoC,YAAkB,oB,QAAoBmxD,gC,GAAqD,SAAY,G,IAA4DrxD,EAAM,O,MAAC,UAAS,CAAE,MAAC,yCAAC6I,CAAAA,EAAAA,GAAAA,IAAY3I,EAAM,GAAE,yC,MAAK,CAAY4I,OAAG,I,YAAyBnG,EAAG,K,IAAiB3C,Y,YAAe,G,IAAG,IAAU,G,MAAC,GAAO,IAAMi8D,EAAAA,GAAAA,CAA0C,OAAGp5D,MAASxC,GAA2D,SAAQ,MAAK,2CAAkK,wDAAG,IAAI,UAA+B,gBAAkB,+H,QAAsJgxD,2B,GAAiE,SAAY,GAA2D,aAAG,yGAAI,4BAAe,2BAAI,aAAkB,oBAAlB,CAAkB,2BAAzC,sB,QAA2E,e,GAAuB,SAAC,gBAAI,MAAK,GAAI,qBAAG,mBAE7iE/wD,IAEJ,MAASgB,I,QCCH,SAAU46D,GAA8BC,GAC1C,MAA2B,WAApBA,EAAGvgD,YACd,CAEA,QACIrb,MAAO,CACH6nB,MAAO9Q,MACPtW,QAAS,CACLf,KAAMoD,QACN3C,SAAS,GAEbi0C,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,qBAGjBK,KAAI,WACA,MAAO,CACHgxB,SAAU,OACVP,YAAY,EACZQ,aAAc,GAEtB,EACAntB,SAAU,CACN0sB,cAAa,WACT,OAAKpvB,KAAKimB,MACHjmB,KAAKimB,MAAMlP,OAAOgjD,IAA+B/sD,KAAI,SAACgtD,GAAM,gBAC3DC,EACAD,EAAGE,uBAAyBF,EAAGE,sBAAsBD,WAC/C,IAAI9hD,KAAK6hD,EAAGE,sBAAsBC,QAClC,KAENF,GAAc3tD,MAAM2tD,EAAWx8B,aAC/Bw8B,EAAa,MAEjB,IAAMG,EACsB,QAAxB,EAAAJ,EAAGE,6BAAqB,OAAxB,EAA0BpB,YACA,QADU,EACpCkB,EAAGpB,+BAAuB,OAA1B,EAA4BE,YAChB,oBAAZkB,EAAGl8D,KACG,WACA,kBACJu8D,EACsB,QAAxB,EAAAL,EAAGE,6BAAqB,OAAxB,EAA0BnB,WACA,QADS,EACnCiB,EAAGpB,+BAAuB,OAA1B,EAA4BE,YAChB,oBAAZkB,EAAGl8D,KACG,WACA,kBACJg8D,GACsB,QAAxB,EAAAE,EAAGE,6BAAqB,aAAxB,EAA0B17D,SACA,QADK,EAC/Bw7D,EAAGpB,+BAAuB,aAA1B,EAA4Bp6D,QAChB,oBAAZw7D,EAAGl8D,KACP,MAAO,CACH+c,GAAIm/C,EAAG5yD,GACP0T,KAAMk/C,EAAGh5D,KACT84D,qBAAAA,EACAM,yBAAAA,EACAC,wBAAAA,EACAC,oBAAqBL,EACrBM,UAAWP,EAEnB,IAnCwB,EAoC5B,EACA36D,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0CACd/P,MAAO,2BACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,yCACd/P,MAAO,0BACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,qCACd/P,MAAO,sBACPswB,UAAU,GAEd,CACI5vB,KAAM,UACNV,MAAO,UACPswB,UAAU,GAGtB,GAEJ5wB,QAAS,CACL07D,mBAAkB,SAAClnD,GACf,IAAM8gD,EAA6C,CAC/CP,aAAcF,GAAAA,wBACdlqD,SAAU,KACV2P,eAAgB9F,EAAKuH,IAGzB,OADA+4C,KAAiCE,uBAAuBM,GACjDp0D,KAAKmR,QAAQxT,KAAK,GAAD,OAAIqC,KAAKwyC,YAAW,YAAIl/B,EAAKuH,IACzD,IC1GgU,M,uBCA9F,GAAe,KCQrP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvB5B1b,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,qBAAqB,CAAC3C,MAAM,CAAC,MAAQE,EAAI08D,iBAAiB/5D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,IAAI,MAAK,IACjV,EACIlc,GAAkB,GCFmE,GAAU,W,IAAUN,EAAM,K,EAAC,QAAW,GAAG,EAAS,kB,OAAG,QAAC6I,MAAAA,CAAqBnG,WAAI,GAAYoG,OAAG,I,YAAkE,OAAG,IAAC,YAAanG,GAAG,SAAS,GAAC3C,MAAM,+BAAC,IAAW,UAAiB,SAAE,MAAO,CAAwC,MAAU,GAAY0C,YAASA,Q,EAA6B1C,GAAK,EAAC,+B,OAAC,EAAK,WAAS,C,IAAC,EAAOyV,K,CAAU,qBAAoB,C,MAAC,CAAa,UAAG,KAAC,OAAC,OAAQ,S,OAAwBvV,GAA6B,IAAKmb,MAAS,SAAa,GAAwC,OAAG,sBACvnB,KAGD,IAAS/Z,EAAQhB,MAAAA,OAAgB,EAAD,kB,kBCJ4D6M,GAAAA,W,IAAa,OAAe,EAAC,W,OAAM,EAAC,W,YAAS,CAAS,eAAwDkkD,MAAK,CAAiFnxD,MAAO,YAAoD,EAAG,YAAI,SAAoB,UAAC0C,MAAAA,GAAAA,OAAY,wEAAQ,CAAC1C,EAAI0Q,GAAG,kBAAqB,MAAO,CAACjO,EAAG,KAAO,GAACzC,EAAM,MAAqB,KAAI,GAAGyC,EAAG,MAAM,CAAC0uD,YAAK,QAAuE,CAACnxD,EAAI0Q,GAAG,WAAS,WAAW,MAAO,CAACjO,EAAG,OAAKzC,CAAG,EAAIA,GAAG,EAAIA,GAAG,EAAC28D,SAAW,KAAI,GAAG,EAAG,MAAI,CACzoB,+EACGv8D,CAAAA,EAAAA,GAAAA,UAAkB,WAEtB,MAASgB,CAAAA,EAAM,IAAEhB,CAAAA,EAAAA,GAAAA,EAAe,gB,uBCiBhC,IACAC,MAAAA,CAAAA,MAAAA,OAAAA,SAAAA,UCtBuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCPhC,IAAekG,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAE6nB,MAAO9Q,OAChB5Q,WAAY,CAAEo2D,eAAAA,IACdj4D,SAAU,CACR+3D,gBAAe,WACX,OAAOz6D,KAAKimB,KAChB,KCjBgT,MCOhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCThC,IAAe3hB,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEq2D,mBAAAA,IACdx8D,MAAO,CACLgB,MAAO,KACP6mB,MAAO,CACLnoB,KAAMqX,MACN5W,QAAS,iBAAM,CACb+W,GAAAA,mBACAA,GAAAA,YACD,IAGL5S,UAAU,mBACL0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BivC,gBAAe,sBACb,OAAKz6D,KAAKimB,MAENjmB,KAAK8qB,YAAYO,iBAAiB,gBAC7B,IAAIlW,MAAM,CACf5U,IAAK,qBACLs6D,IAAK76D,KAAKmP,GAAG,sDACbrP,KAAME,KAAKmP,GAAG,uDACdurD,OAAQ16D,KAAKmP,GAAG,2DAGbnP,KAAKimB,MACTlP,QACC,SAACmC,GAAQ,OACPA,GAAK5D,GAAAA,oBACL3Q,EAAAA,EAAAA,iBAAwB,uBAAuB,IAElDqI,KAAI,SAACkM,GAAS,MAAM,CACnB3Y,IAAK2Y,EACL2hD,IAAK,EAAK1rD,GAAG,2BAAD,OAA4B+J,EAAC,SACzCpZ,KAAM,EAAKqP,GAAG,2BAAD,OAA4B+J,EAAC,UAC1CwhD,OAAQ,EAAKvrD,GAAG,2BAAD,OAA4B+J,EAAC,YAC7C,IArBqB,EAsB1B,MC9CiU,M,uBCA9F,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCDhC,IAAe5U,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLyV,cAAesB,OAEjB5Q,WAAY,CACVu2D,iCAAAA,GACAC,yCAAAA,GACAC,+BAAAA,GACAC,wCAAAA,GACAC,yBAAAA,GACAC,2BAAAA,GACAC,2BAAAA,GACAC,iCAAAA,GACAC,wBAAAA,IAEF90D,MAAK,WACH,OAAOxG,KAAKmP,GAAG,wBACjB,EACAvQ,KAAI,WACF,MAAO,CACLi3D,sBAAsB,EACtBC,+BAA+B,EAC/BG,qBAAqB,EACrBC,8BAA8B,EAC9BC,yBAAyB,EACzBC,4BAA4B,EAC5BJ,sBAAsB,EACtBuF,eAAgB,KAChBC,yBAA0B72D,EAAAA,EAAAA,iBAAwB,wBAEtD,EACAjC,UAAU,QACR+4D,oBAAmB,WACjB,OAAOz7D,KAAK6T,cAAckD,OAAOgjD,GACnC,IACG3rC,EAAAA,GAAAA,IAAU5C,KAEf1sB,QAAS,CACP48D,6BAA4B,SAC1Bn7D,GAEIA,IAAQ+U,GAAAA,mBACVtV,KAAK81D,+BAAgC,EAC5Bv1D,IAAQ+U,GAAAA,cACjBtV,KAAK61D,sBAAuB,EAEhC,EACA7jB,mBAAkB,SAAC4E,GACbA,IACJ52C,KAAKmR,QAAQxT,KAAK,oBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,yBACxB,EACA4mD,uBAAsB,WACpB/1D,KAAKgE,MAAM,yBACb,EACA4xD,cAAa,SAAC2D,GACZv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKm2D,yBAA0B,CACjC,EACAwF,oBAAmB,SAACpC,GAClBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKo2D,4BAA6B,CACpC,EACAwF,4BAA2B,SAACrC,GAC1Bv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKi2D,qBAAsB,CAC7B,EACA4F,yBAAwB,SAACtC,GACvBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKk2D,8BAA+B,CACtC,EACA4F,iBAAgB,SAACxoD,GACf,IAAMyoD,EAA4C,CAChDlI,aAAcF,GAAAA,YACdlqD,SAAU,KACV2P,eAAgB,MAElBw6C,KAAiCE,uBAAuBiI,GACxD,IAAMvsD,EAAM,uBAAH,OAA0B8D,EAAK8F,gBACxCpZ,KAAKmR,QAAQxT,KAAK6R,EACpB,EACAwgD,mBAAkB,SAACuJ,GACjBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKg2D,sBAAuB,CAC9B,KCzGwS,M,sBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtByN,W,IAAgBrvD,EAAG,K,EAAW,QAAW,GAA6B9I,EAAM,kB,SAAC,KAAW,CAACm+D,EAAAA,eAAAA,C,MAAkB,C,MAAI,6B,QAAC,EAAQ,+B,YAAsD,O,IAAE,gB,GAACt1D,W,MAAwB,GAAC,4BAAW,C,MAAI,C,MAAc,EAAD,mB,UAAuD,SAAC,G,OAAC,EAAO,mBAAY,E,eAAuBlG,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAG,OAAI,kBAAC,eAAa,WAAO,OAAoC,UAA0CA,CAAAA,EAAImc,GAAAA,SAAS,SAAkB,2BAAE,OAAgDvT,E,OAAc2M,M,gCAAiD,C,aAAmB,EAAC,mB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,sCAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAAyF,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAIk+D,EAAAA,EAAAA,EAAAA,GAAAA,CAA2B,OAAC,UAAyN,mCAAC,IAAyB,U,CAAuC,6DAAC,IAAIz7D,MAAG,SAAoBA,GAAgT,iCAAG,IAAoB,QAAkB,qIAAP8S,CAAQ,MAAW,SAAS,GAAC5M,OAAW,EAAC3I,uBAAQ,EAACwC,I,GAAmC,KAALG,CAAE,2N,gCAA+C,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAIF,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAAiO,yBAAC,I,CAA0D,oGAAC,IAAIA,MAAG,SAAoBA,GAAsN,+BAAC,I,CAA4D,0KAAC,IAAIA,MAAG,SAAoBA,GAA0J,4BAAQ,IAAoD,2JAAC,IAAqC,kBAAO,8BAAM,IAA6D,CAAC07D,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,EAAAA,EAA0Bn0C,CAAAA,EAAG,qGAAEtoB,MAAAA,KAAsC,uCAAG,GAAG,CAA4C,QAAC,0BAAqC,MAAC,CAACF,MAAM,4BAACH,SAAU,SAAC+8D,GAA2B77D,EAAAA,0BAAwB,C,EAAkC,WAAC,+BAAuC,2CAAG,GAAG,CAA2C,QAAC,0BAAqC,MAAC,CAACf,MAAM,4BAACH,SAAU,SAACg9D,GAA0B97D,EAAAA,0BAAwB,C,EAAiC,WAAC,+BAAsC,0CAAG,GAAG,CAAwC,QAAC,0BAAqC,MAAC,CAACf,MAAM,2BAACH,SAAU,SAACi9D,GAAwB/7D,EAAAA,yBAAwB,C,EAA+B,WAAC,8BAAoC,uCAAG,GAAG,CAA+C,QAAC,0BAAqC,MAAC,CAACf,MAAM,yBAACH,SAAU,SAACk9D,GAA4Bh8D,EAAAA,uBAAsB,C,EAAqC,WAAC,4BAAwC,8CAAG,GAAG,CAAwCzC,QAAM,0BAA0B,MAAC,CAAG,MAAC,6BAAC,SAAS,SAAKk4D,GAAuB,8BAACx2D,EAAOH,WAAWm9D,gC,EAAmDx+D,sCAAgC,C,MAAC,CAAC0B,KAAAA,EAAW,gBAA6B,GAAG,CAAwC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,2BAAC,SAAS,SAAKk4D,GAAuB,4BAACx2D,EAAOH,WAAWo9D,8B,EAAmDz+D,sCAAgC,C,MAAC,CAAC0B,KAAAA,EAAW,gBAA6B,GAAG,CAAuC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,2BAAC,SAAS,SAAKk4D,GAAuB,4BAACx2D,EAAOH,WAAWq9D,8B,EAAkD1+D,qCAA+B,C,MAAC,CAAC0B,KAAAA,EAAW,gBAA4B,GAAG,CAAoC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,0BAAC,SAAS,SAAKk4D,GAAuB,2BAACx2D,EAAOH,WAAWs9D,6B,EAAgD3+D,kCAA6B,C,MAAC,CAAC0B,KAAAA,EAAW,gBAA0B,GAAG,CAAgC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,wBAAC,SAAS,SAAKk4D,GAAuB,yBAACx2D,EAAOH,WAAWu9D,2B,EAA4C5+D,8BAAyB,C,MAAC,CAAC0B,QAAU,EAAC,gBAAsB,GAAG,CAAmC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,oBAAC,SAAS,SAAKk4D,GAAuB,qBAACx2D,EAAOH,WAAWw9D,uB,EAA+C7+D,iCAA4B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAyB,GAAG,CAAyC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,uBAAC,SAAS,SAAKk4D,GAAuB,wBAACx2D,EAAOH,WAAWg3D,0B,EAAqDr4D,uCAAkC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA+B,GAAG,CAA4C5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,6BAAC,SAAS,SAAKk4D,GAAuB,8BAACx2D,EAAOH,WAAWy9D,gC,EAAoD9+D,0CAAiC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA8B,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,0BAC90M,qBACGtB,EAAAA,0BAAoB,CAExB,E,4GCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,qBAAqB,CAAC3C,MAAM,CAAC,MAAQE,EAAI08D,iBAAiB/5D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,IAAI,MAAK,IACjV,EACIlc,GAAkB,GCItB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEq2D,mBAAAA,IACdx8D,MAAO,CACLgB,MAAO,KACP6mB,MAAO,CACLnoB,KAAMqX,MACN5W,QAAS,iBAAM,CACbmV,GAAAA,MACAA,GAAAA,SACAA,GAAAA,OACAA,GAAAA,OACAA,GAAAA,aACAA,GAAAA,MACAA,GAAAA,OACAA,GAAAA,QACD,IAGLhR,SAAU,CACR+3D,gBAAe,sBACb,OAAKz6D,KAAKimB,MACHjmB,KAAKimB,MAAMjZ,KAAI,SAACkM,GAAS,MAAM,CACpC3Y,IAAK2Y,EACL2hD,IAAK,EAAK1rD,GAAG,0BAAD,OAA2B+J,EAAC,SACxCpZ,KAAM,EAAKqP,GAAG,0BAAD,OAA2B+J,EAAC,UACzCwhD,OAAQ,EAAKvrD,GAAG,0BAAD,OAA2B+J,EAAC,YAC5C,IANuB,EAO1B,KCjCoT,M,sBCAxF,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B/Z,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,4BAA4BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,0BAA2BK,WAAW,8BAA8B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,UAAU,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACrwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAkC9I,EAAM,Q,MAAC,oCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACzuB,UAGD,E,SCJ6I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,oC,QAA2O,W,YAAkB,EAAM,K,IAA6B,W,GAAE,WAAkC,+OAACoS,MAAM,CAAM,eAAK,KAAS,sCAA+B,CAAhBtB,EAAAA,GAAM,WAANA,EAAM,S,SAAW,G,2BAEnlBynD,G,IACA7B,EAAQ,EAAMqI,O,EACdC,EAAAA,M,MACI5E,CAAAA,EAAAA,GAAAA,UAAkB1uD,KAAQ,C,KAC1B+sD,C,KACAC,EAAO14D,KACX,0CACH,gDAAC,0CAAe,CAAC,aAAcS,EAAK,SAAC,WAAcK,EAAAA,SAAQ,MAAQkQ,EAAAA,eAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAWE,CAAkC,EAAsB,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACwB,SAAM,4BAACH,MAAOrB,EAAIiD,UAAMV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAcwK,SAAW,SAAC,GAAC,OAAQ,CAAQ,EAACnN,WAAM,UAAuC,OAAWE,CAAgD,YAAC,CAAC2I,MAAW,S,MAA0B,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACA,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAcwK,SAAW,SAAC,GAAC,sBAAQ,CAAQ,EAACnN,WAAM,yBAA6D,OAAWE,CAA2C,YAAC,CAAC2I,MAAW,S,MAA0B,C,MAAkB,EAAI,gD,SAAmB,uC,YAAa,O,IAACA,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAAiF,WAAc,4CAAO,MAA4BuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,8D,EAAuB,OAAC,KAA4B,OAAIvnB,MAAG,iBAAgB3C,SAAM,YAAC,iBAAYm/D,CAAc,EAAc,WAAW,oBAA4Cz9D,EAAK,KAAC,C,MAAM,CAAgBe,MAAQ,EAAC,c,SAAoBmJ,GAAmD,MAAC,6CAAsB,OAAIjJ,MAAG,WAAgB3C,SAAM,YAAC,WAAyB,kBAAbo/D,EAAa,UAAC,EAAa,WAAW,cAAyD,QAAC19D,MAAM,CAACH,MAAOrB,EAAIm/D,cAAU58D,QAAS,G,SAAoB48D,GAAmD,MAAC,6CAAsB,OAAI18D,MAAG,WAAgB3C,SAAM,YAAC,WAA6B,kBAAjBs/D,EAAiB,UAAC,EAAqE,WAAWC,cAAqD,OAAc,CAA2C,MAAC,CAAG,MAAC,oBAAC,cAAc,EAAC,+C,KAAA,EAAU,iBAAiB,OAAQA,WAAgB,YAAE,uD,GAAQh+D,CAAyBkB,eAAS,WAAgBvC,OAAIs/D,EAAAA,kBAAwB,EAAK,gBAA0B,GAA2B,OAAI,MAAG,eAC3rF,qBACGl/D,EAAAA,aAAoB,8BAExB,E,wCC2GA,gFACA,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WAAA,WACA,OACA8F,QAAAA,EAAAA,EAAAA,MAAAA,SACAlG,OAAAA,EACAwC,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,8DACAkyB,qBAAAA,EACAkF,gBAAAA,EACArzD,SAAAA,GACAuzD,cAAAA,CACA,6EACA,qFAEAE,SAAAA,GACAD,cAAAA,CACA,6EACA,qFAEAI,aAAAA,GACAF,kBAAAA,CAAAA,SAAAA,GAAA,sEACAC,kBAAAA,EAEA,EACAt7D,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,+CACA,2EACA,6CACA,qEACA,oEACA,yEAEA,iBACA,qBACA,kBAEA,EACAgG,WAAAA,EACAjG,MAAAA,KCpK4R,M,uBCAlD,GAAe,KCOrP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAA+4D,2BAAAA,IACAx+D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B8R,MCO1R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAAg5D,6BAAAA,GAAAtF,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5B+R,MCO3R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,4BAA4BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,0BAA2BK,WAAW,8BAA8B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,aAAa,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACxwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAkC9I,EAAM,Q,MAAC,oCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACzuB,UAGD,E,MCJoKpI,GAAAA,W,IAAqBnG,EAAI,K,EAAa,EAAC,S,OAAW,cAAe,C,MAA2Q1C,C,MAAO,KAAS,oC,QAAQ,EAAM,S,YAAwCK,EAAG,KAAwB,IAAC,WAACiS,GAAAA,WAAY,sRAAI,MAAC,CAAa,eAAWtB,KAAM,UAANA,EAAM,6BAAW,GAAQ9Q,GAAG,WAAI,EAAU,GAAI,M,SAC9pB+c,G,2BAGA0iD,G,MACIrF,EAAY,O,EACZ3B,EAAAA,M,MACAC,CAAAA,EAAK,GAAE14D,UAAIs/D,KAAY,C,KACvBzG,C,KACAD,EAAAA,KACJ,0CACH,gDAAC,2CAAe,CAAC,aAAcn4D,EAAK,SAAC,WAAcK,EAAAA,SAAQ,MAAQkQ,EAAAA,aAAQ,iGAAsB3P,OAAWZ,EAAO8B,QAAS,QAAgBvC,QAAUgqB,EAAG,QAAC,UAAmB,IAAM,MAAC,GAAgBlqB,MAAM,CAAC,QAAU,MAAmC,SAAQE,SAAa,GAAC,QAAa,CAAC,EAAe,WAAW,UAAawB,CAAAA,EAAK,KAAC,C,MAAM,CAAYe,SAAS,YAAUynB,EAAG,SAAE,K,MAAK/mB,EAAK+mB,UAAG,SAAC,GAACtoB,UAAW,GAAM,oBAA6CuL,MAAAA,CAAa,MAAO,EAAC,KAAQ,qBAACnN,EAAM,MAAC,EAAsC,WAAWE,UAAkD2I,EAAAA,GAAAA,EAAW,GAAC3I,GAAAA,EAAQ,S,YAAK,CAAS4I,MAAG,S,MAAmC9I,C,MAAO,KAAS,uB,SAAG,4C,YAA0B,O,kCAA8BA,EAAAA,GAAAA,EAAK,C,MAAI,C,OAAuC,I,YAAY,EAAQ,K,IAAE,Y,GAAE,SAASA,GAAoD,WAAG,UAAM,MAAO,GAAEE,EAAAA,EAAOA,EAAIkS,GAAGlS,EAAIoR,GAAG,CAAsC,OAAO,QAAO,WAAmByoD,QAAAA,GAAAA,GAAoB,8BAACt3D,MAAqD,+DAACb,EAAgC,YAAqCuL,MAAAA,CAAa,MAAO,EAAC,oBAAQ,qBAACnN,EAAM,qBAAC,EAA4D,WAAWE,0BAA6C2I,GAAAA,EAAAA,GAAAA,EAAe,CAACyH,EAAG,KAAC,C,YAAK,CAASxH,MAAG,S,MAAmC9I,C,MAAO,KAAS,6C,SAAG,uC,YAA0B,O,kCAA8BA,EAAAA,GAAAA,EAAK,C,MAAI,C,OAAuC,I,YAAY,EAAQ,K,IAAE,Y,GAAE,SAASA,GAAoD,WAAG,UAAM,MAAO,GAAEE,EAAAA,EAAOA,EAAIkS,GAAGlS,EAAIoR,GAAG,CAA4D,OAAO,QAAO,WAAmB2tD,QAAAA,GAAe,iCAACx8D,MAAgD,qFAACb,EAA2B,YAA+B5B,MAAM,CAAC,MAAO,EAACE,eAAkB,SAAU,SAAG,GAAC,iBAAe,CAAuC,EAACwB,WAAM,qBAAsBe,IAAAA,GAAS,Q,MAAmB,CAAoD,MAAC,gBAACb,SAAW,GAAU,mDAAuB5B,MAAM,CAAC,MAAO,EAACE,SAAkB,SAAS,SAAG,GAAC,WAAa,8BAAC,EAAsD,yBAAQqB,EAAAA,GAAAA,EAAW89D,C,MAAU58D,C,MAA6B48D,EAAAA,cAAmD,QAAC,GAACz9D,SAAW,GAAU,mDAAuB5B,MAAM,CAAC,MAAO,EAACE,SAAsB,kBAAkBq/D,GAAmD,EAAM,SAAwB,kBAAnBA,EAA4B,SAAU,CAAC,EAAc,WAAW,cAAkD,EAAC,M,MAAC,C,MAAsBr/D,EAAIq/D,kBAAwC,+DAAE,0CAAC79D,SAAM,GAACH,MAAOrB,EAAIs/D,GAAAA,4C,GAAuCt/D,CAA2D,eAAC,WAAC0B,OAAAA,EAAW,oCAAc,GAA+C5B,MAAM,CAAC,QAAU,aAAG,SAAQE,SAAI0/D,GAAoB,eAAa,8BAAC,EAA4D,6BAAQr+D,EAAAA,GAAAA,EAAOrB,CAAG,EAAC2/D,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAe,C,MAACp9D,C,QAA6Bo9D,GAAyD,MAAC,sBAACj+D,SAAW,GAAgB,yDAAuC5B,MAAM,CAAC,QAAU,eAAG,SAAQE,SAAkB,GAAC,iBAAa,8BAAC,EAAuD,gCAAQqB,GAAK,EAAErB,GAAAA,EAAIg7D,CAAAA,EAAAA,GAAAA,EAAU,C,MAACz4D,C,QAA6By4D,GAAoD,MAAC,iBAACt5D,SAAW,GAAW,oDAAuD5B,MAAM,CAAC,QAAU,UAAG,SAAQE,SAAI4/D,GAAmB,YAAa,8BAAC,EAA2D,2BAAQv+D,IAAK,GAAK,EAACw+D,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAc,S,MAACt9D,C,QAA6Bs9D,GAAwD,MAAC,qBAACn+D,SAAW,GAAe,wDAAuC5B,MAAM,CAAC,QAAU,cAAG,SAAQE,SAAmB,GAAC,gBAAa,8BAAC,EAAwD,+BAAQqB,GAAK,EAAErB,GAAAA,EAAI8/D,CAAAA,EAAAA,GAAAA,EAAW,C,MAACv9D,C,QAA6Bu9D,GAAqD,MAAC,kBAACp+D,SAAW,GAAY,qDACl7H,OACGtB,MAAAA,EAAAA,WAEJ,SAAe,SAAiB,G,2FCmGhC,gFACA,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WAAA,WACA,OACA8F,QAAAA,EAAAA,EAAAA,MAAAA,SACAlG,OAAAA,EACAwC,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,8DACAg4B,eAAAA,GACAD,oBAAAA,CAAAA,SAAAA,GAAA,wEACA1E,UAAAA,GACA+E,eAAAA,CAAAA,SAAAA,GAAA,mEACAF,cAAAA,GACAD,mBAAAA,CAAAA,SAAAA,GAAA,uEACAE,WAAAA,GACAE,gBAAAA,CAAAA,SAAAA,GAAA,oEACAnG,qBAAAA,EACAkF,gBAAAA,EACArzD,SAAAA,GACAuzD,cAAAA,CACA,6EACA,qFAEAE,SAAAA,GACAD,cAAAA,CACA,6EACA,qFAEAI,aAAAA,GACAF,kBAAAA,CAAAA,SAAAA,GAAA,sEACAC,kBAAAA,EAEA,EACAt7D,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,+CACA,2EACA,8CACA,sEACA,qEACA,wEACA,4EACA,oFACA,wFACA,uFAEA,iBACA,qBACA,iBACA,uBACA,kBACA,sBACA,oBAEA,EACAgG,WAAAA,EACAjG,MAAAA,KC9K4R,M,uBCAlD,GAAe,KCOrP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAy5D,2BAAAA,IACAl/D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B8R,MCO1R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAA05D,6BAAAA,GAAAhG,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5BkS,MCO9R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kCAAkC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,2BAA2BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,yBAA0BK,WAAW,6BAA6B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,YAAY,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACnwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAiC9I,EAAM,Q,MAAC,mCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACxuB,UAGD,E,SCJ4I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,sC,QAAgB,W,YAAmB,EAAO,K,IAAE,W,GAAE,WAA6X,cAACoS,MAAM,CAAM,gBAAK,KAAS,KAA+B,CAAhBtB,EAAAA,GAAM,iX,SAAW,G,2BAEtrBynD,G,IACA4H,EAAAA,EAAAA,O,EAAyBzH,EAAO14D,M,MAAa,sBACjD,KAAC,CAAC,KAAQ,EAAC8Q,KAAO,oBAAmB,sBAAC,sBAAqB,CAAC,MAAQE,EAAAA,WAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAY6nC,CAAU,EAA6C,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACnmC,MAAM,YAACH,SAAW4B,EAAK,0BAACV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAgB3C,SAAM,YAAC,sBAAc,CAAsB,EAAiE,WAAWsgE,yBAAwF,OAAYC,C,MAAc,CAAc,kCAAG,cAAC,6CAAC,oBAAe,kB,MAAOrgE,EAAIogE,GAAAA,sCAAgC,sBAAE,a,GAAQ/+D,CAAqBkB,eAAS,WAAgBvC,OAAIsgE,EAAAA,cAAoB,EAAK,YAA0B,GAAuB,OAAKtgE,MAAIugE,EAAAA,SAAqCzgE,SAAM,YAAC,WAAe,8BAA8C,EAAc,yBAAQuB,EAAAA,iBAAWk/D,EAAAA,GAAAA,EAAiB,C,MAACh+D,C,MAA6Bg+D,EAAAA,GAAAA,8CAA2D,SAAC,IAA8B,OAAG,MAAO,EAAIvgE,iBAAmCF,SAAM,YAAC,mBAAe,sBAAuC,QAAC,EAAc,iCAAQuB,EAAK,KAAM66D,EAAAA,WAAW,Q,MAAC35D,C,MAA6B25D,EAAAA,GAAU,wCAAI,SAAC,IAAwB,OAAG,MAAO,EAAG,WAC3+D,qBACG97D,EAAAA,WAAoB,CAExB,E,gFCRc,SAAUogE,GAASv1D,GAC7B,IACI,OAAO5C,KAAKwe,MAAM45C,KAAKx1D,EAAM6O,MAAM,KAAK,I,CAC1C,MAAOsN,GACL,OAAO,I,CAEf,CCgFA,QACA/mB,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WAAA,WACA,OACAJ,OAAAA,EACAwC,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,6DACAkyB,qBAAAA,EACA0G,iBAAAA,GACArE,WAAAA,KACAkE,cAAAA,EACAE,SAAAA,GACAD,cAAAA,CACA,4EACA,YACA,eACA,YACA,gEAGA,8BACA,mDAHA,qDAMA,GAGA,EACAt8D,MAAAA,CACAu8D,SAAAA,SAAAA,GACA,MAGA,OAFA,8BACA,sBAGA,YACA,MAGA,OAFA,8BACA,sBAGA,yCACA,mCACA,EACAj/D,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,+CACA,wBACA,4CAEA,iBAEA,EACAgG,WAAAA,EACAjG,MAAAA,KC9I2R,M,uBCAlD,GAAe,KCOpP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAk6D,0BAAAA,IACA3/D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B6R,MCOzR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAAm6D,4BAAAA,GAAAzG,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5BiS,MCO7R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,+BAA+B,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,yBAAyBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,uBAAwBK,WAAW,2BAA2B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,UAAU,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACxvB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA8B9I,EAAM,Q,MAAC,gCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACruB,UAGD,E,SCJ0I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,iC,QAAiE,W,YAAkB,EAAO,K,IAA0C,W,GAAE,WAAsD,qEAACoS,MAAM,CAAM,eAAK,KAAS,6CAA+B,CAAhBtB,EAAAA,GAAM,0C,SAAW,G,2BAExcynD,G,IACAqI,EAAAA,EAAAA,O,EAAsBnI,EAAAA,M,MAA0BC,CAAAA,EAAK,GAAE14D,UAAIs/D,KAAAA,C,KAAa,CAC3E,YAAC,oBAAe,sBAAC,mBAAmB,CAAC,WAAcx+D,EAAAA,SAAQ,MAAQkQ,EAAAA,eAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAY6nC,CAAU,EAA6C,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACnmC,MAAM,YAACH,SAAW4B,EAAK,0BAACV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAgB3C,SAAM,YAAC,sBAAyB,CAAC,EAAa,WAAW,yBAAsD,QAAC0B,MAAM,CAACH,MAAOrB,EAAIm/D,cAAU58D,QAAS,G,SAAoB48D,GAAmD,MAAC,0CAAsB,OAAI18D,MAAG,WAAgB3C,SAAM,YAAC,WAA6B,kBAAjBs/D,EAAiB,UAAC,EAAqE,WAAWC,cAAqD,OAAc,CAAwC,MAAC,CAAG,MAAC,oBAAC,cAAc,EAAC,+C,KAAA,EAAU,iBAAiB,OAAQA,WAAgB,YAAE,oD,GAAQh+D,CAAyBkB,eAAS,WAAgBvC,OAAIs/D,EAAAA,kBAAwB,EAAK,gBAA0B,GAA2B,OAAI,MAAG,eACjvD,qBACGl/D,EAAAA,aAAoB,8BAExB,E,wCCsEA,gFACA,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WAAA,WACA,OACAJ,OAAAA,EACAwC,KAAAA,GACA0kC,UAAAA,CAAAA,SAAAA,GAAA,2DACAkyB,qBAAAA,EACAsF,SAAAA,GACAD,cAAAA,CACA,0EACA,kFAEAI,aAAAA,GACAF,kBAAAA,CAAAA,SAAAA,GAAA,mEACAC,kBAAAA,EAEA,EACAt7D,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,iBACA,+CACA,sBACA,8CACA,+CAEA,iBACA,sBAEA,EACAgG,WAAAA,EACAjG,MAAAA,KChHyR,M,uBCAlD,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAq6D,wBAAAA,IACA9/D,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B2R,MCOvR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAAs6D,0BAAAA,GAAA5G,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5B+R,MCO3R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,2BAA2B,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,0BAA2BK,WAAW,8BAA8B5B,MAAM,CAAC,KAAO,4CAA4C,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IACt4B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAAg5D,6BAAAA,GAAApE,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvCiS,MCO7R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B3P,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,2BAA2B,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,0BAA2BK,WAAW,8BAA8B5B,MAAM,CAAC,KAAO,6CAA6C,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IACv4B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAA05D,6BAAAA,GAAA9E,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvCiS,MCO7R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B3P,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kCAAkC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,0BAA0B,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,yBAA0BK,WAAW,6BAA6B5B,MAAM,CAAC,KAAO,wBAAwB,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IAC92B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAAm6D,4BAAAA,GAAAvF,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvCgS,MCO5R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B3P,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,+BAA+B,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,wBAAwB,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,uBAAwBK,WAAW,2BAA2B5B,MAAM,CAAC,KAAO,qBAAqB,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,MAChwB,EACI3Q,GAAkB,GCuBtB,IACAoG,WAAAA,CAAAs6D,0BAAAA,GAAA1F,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICpC8R,MCO1R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClBkG,W,IAAsB,O,EAA0B,QAAW,G,OAAO,aAAiB/Q,CAAAA,EAAI8xB,GAAAA,EAAY,C,MAAC,CAAuB,QAAW,EAAC9xB,QAAe,QAAU,EAAI,QAAU,QAAa,cAAI,kBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,WAAmB,SAAC,WAAC,kB,GAAiE,CAAC,sBAAgB,SAAgB,GAAC9xB,EAAI6xB,aAASxV,CAAM,EAAE,wBAAiB,SAAgB,GAACrc,EAAI6xB,aAASxV,CAAM,EAAE,gBAAiB,SAAC,GAAiBrc,EAAIsxB,SAAU,CAAO,EAAE,iBAAkB,SAAC,GAAiBtxB,EAAIsxB,SAAU,CAAO,EAAE,kBAAkB,SAASjV,GAAQrc,EAAI+gE,WAAS1kD,CAAM,EAAE,+BAAC1T,EAAAA,WAAoB,CAACnG,EAAcoG,kBAAa,YAAC,WAAe,CAA0D,GAAY,YAAE,OAACpG,IAAI,UAAgBoG,GAAG,WAA2B,MAAhB2M,CAAI,2D,SAAa,G,wBAAgD,YAAC,IAAG9S,EAAG,OAAkBC,EAAAA,EAAY,Q,MAAY,GAAC,M,MAAC,CAAU,mBAAkCA,CAAAA,EAAAA,GAAAA,EAAY,CAAY,YAAawP,OAAgNxP,MAAAA,CAAqB1C,MAAO,KAG9vCF,CAAAA,EAAK,QAAC,iB,YAAS,a,CAAY,OAAW,GAAC,EAAE,sL,YAAW,QAAG,8IAAC6C,YAAG,O,MAAC,C,MAAgC3C,YAAgC,aAAC,cAAgF0C,GAAAA,CAAsB1C,MAAO,SAAc,GAAMiN,OAAW,EAAC,yBAAC,IAAwB,CAACxK,EAAG,QAAW,EAAC,yDAAC3C,YAAM,S,CAAC,aAAS,WAAE,YAAC,CAAC6I,aAAe,W,CAAsBC,EAAE,KAAC,C,MAAgB,C,OAASnG,I,YAA2B,EAAQ,GAAE,E,4BAAoB8S,G,IAAiD,OAAC,MAAK,CAAC,EAACvV,EAAAA,EAAO,EAAIA,GAAG,CAA2D,OAAQ,MAAK,GAAO,MAAW,GAAgJiN,MAAY,6CAAsB,kEAAKsI,IAA0HzV,MAAM,I,CAAC,SAAS,oIAAE,YAAC,CAAC6I,aAAe,W,CAAyC,SAAnBC,EAAG,gBAAgB,sE,MAAA,C,OAASnG,I,YAA2B,EAAQ,GAAE,E,4BAAoB8S,G,IAIpiC,OAAC,MAAK,CAAC,EAACvV,EAAAA,EAAO,EAAIA,GAAG,CAA8D,OAAQ,MAAK,GAAO,MAAW,GAA8R0C,MAAY,kFAA6IA,GAAW,CAAC,KAAM,4DAAC5C,IAAO,MAAO,I,CAAa,SAAW,GAAG,+P,YAAW,QAAG,mHAAC6C,YAAG,O,MAAC,C,MAAgC3C,YAAgC,aAAC,cAAgF0C,GAAAA,CAAsB1C,MAAO,SAAc,GAAMiN,OAAW,EAAC,yBAAC,IAAwB,CAACxK,EAAG,KAAO,GAACzC,EAAM,GAAC,6CAAiB,SAACiN,YAAY,S,CAAC,aAAa,WAAQ,aAAIxK,aAAc,W,CAAS,SAAS,uBAAE,YAAC,CAACkG,aAAe,W,CAAsBC,EAAE,KAAC,C,MAAgB,C,OAASnG,I,YAA2B,EAAQ,GAAE,E,4BAAoB8S,G,IAIzkC,OAAC,MAAK,CAAC,EAACvV,EAAAA,EAAO,EAAIA,GAAG,CAA8D,OAAQ,MAAK,GAAO,MAAW,GAA2SuV,MAAKinD,EAAAA,0BAAAA,UAAAA,EAAAA,sBAAAA,QAAAA,YAAgB,qEAAG,IAAI,UAAgB,gBAAkB,0QAAH,eAAI,G,QAA4C,Y,GAAC75D,SAAG,G,IAAC,EAAO,EAAC,K,MAAiB,YAAW85D,C,MAAwB,CAAC,eAAe/5D,GAAAA,CAA8B1C,MAAO,SAAe,GAAgB,8BAAG,IAAuB,WAAkB,YAAH,iBAAI,GAAQA,GAAG,IAAI,OAAY,MAAK,S,IAAyB,mBAAG,GAAC,SAAS,GAAM,IAAC,IAAc,KAAC2I,MAAW,GAAI,GAAG,YAAE,MAAI,KAAC,EAAS,Y,IAAwB,W,gBAAyC,C,YAAC,EAAQ3I,GAAG,CAACghE,C,IAAmB,U,GAACr4D,SAAW,G,IAAUnG,EAAI,EAAS,M,MAAG,CAAC,yBAAU,C,MAAC,C,MAA6B,sB,YAA0B,EAAOuO,GAAAA,CAAAA,C,iBAAQ,WAAC,MAAG,kBAAC,IAAM,MAAC,YAAY,OAAI,GAAI,KAAW,EAAM,OAAMkwD,IAA2B,MAAC,KAAyC,KAAgC,OAAI,MAAG,oBACnwC,qBACG7gE,EAAAA,kBAAoB,CAExB,E,6CCf4CqC,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAe,CAA+B,MAAC,CAAC6I,MAAW,EAAC3I,GAAIoQ,iC,YAAuB,KAAU,E,IAAC,W,GAAkMtQ,W,MAAO,GAAQ,GAAC,2KAAO,O,MAAC,CAAmC,eAAIE,KAAO,UAAU,EAAI,QAAS,kBAAQ,GAAC,yBAAK,EAAEwC,OAAI,GAAUoG,C,IAAsB,U,GAAC,SAAc,G,IAAiB,EAAQoI,EAAAA,MAAK,MAAG,gCAAexP,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,U,CAAuB,OAAU,C,MAAC,CAA2C,MAAS,GAAa,QAAQzC,EAAIoW,MAAAA,GAAAA,oBAAc,kBAAyB,sBAACzN,sBAAoB,I,YAAkB,KAAU,E,IAAC,UAAiF,GAAC,WAACyJ,MAAM,oEAAK,EAAE5P,OAAG,GAAaoG,C,IAAqB,Y,GAAC,SAAc,GAA4B,aAAI,MAAK,GAAI,yBAAI,IAChjC,YACGxI,EAEJ,E,MC4CA,IACAC,MAAAA,CAAAA,SACAQ,KAAAA,WACA,OACAJ,OAAAA,EACAK,SAAAA,EACAsV,cAAAA,GACAzP,QAAAA,EAAAA,EAAAA,MAAAA,SAEA,EACA5F,QAAAA,CACAid,kBAAAA,EAAAA,GAAAA,IAAAA,oBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,iFAEA,OADA3C,EAAAA,KAAAA,MAAAA,eACA6lD,EAAAA,KAAAA,MAAAA,aAAA,SACAxvD,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OACAoP,EAAAA,8BAAAA,OAAAA,EAAAA,mBAEAxM,MAAAA,SAAAA,GAAA,wBAJAhO,EAAAA,EAAAA,KAMA,6CAAAkc,KAAAA,EAAA,sDAGApY,SAAAA,CACArD,QAAAA,WACA,OACA,CACAS,KAAAA,KAAAA,GAAAA,wCACAV,MAAAA,OACAswB,UAAAA,GAGA,GAEA5tB,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,sBACA,wBACA,EACAgG,WAAAA,KCzF8R,M,sBCAlD,GAAe,KCOvP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QChB1B,SAAUk3D,GAA6BlF,GACzC,MAA2B,UAApBA,EAAGvgD,YACd,CAEA,QACIlV,WAAY,CACR46D,oBAAAA,IAEJ/gE,MAAO,CACH6nB,MAAO9Q,MACPtW,QAAS,CACLf,KAAMoD,QACN3C,SAAS,GAEbi0C,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,oBAGjBO,QAAS,CACLsgE,uBAAsB,SAAC9rD,GAEdA,EAAKinD,UAAU8E,2CACf/rD,EAAKinD,UAAU8E,0CAA0Cj4D,KAK9DpH,KAAK++D,mBAAqB,CACtB3lD,eAAgB9F,EAAKinD,UAAUnhD,eAC/B6lD,aAAc3rD,EAAKinD,UAAU8E,0CAA0Cj4D,IAE3EpH,KAAKg/D,mBAAoB,EAC7B,EACAxE,mBAAkB,SAAClnD,GACf,IAAM8gD,EAA6C,CAC/CP,aAAcF,GAAAA,0BACdlqD,SAAU,KACV2P,eAAgB9F,EAAKuH,IAGzB,OADA+4C,KAAiCE,uBAAuBM,GACjDp0D,KAAKmR,QAAQxT,KAAK,GAAD,OAAIqC,KAAKwyC,YAAW,YAAIl/B,EAAKuH,IACzD,GAEJnY,SAAU,CACN0sB,cAAa,WACT,IAAKpvB,KAAKimB,MAAO,MAAO,GACxB,IAAMyO,EAAW10B,KAAKimB,MAAMlP,OAAOmoD,IAA8BlyD,KAAI,SAACgtD,GAAM,MAClEsF,EAAmB,CACrBzkD,GAAIm/C,EAAG5yD,GACP0T,KAAMk/C,EAAGh5D,KACTu+D,wBAAuBvF,EAAGqF,2CACpBrF,EAAGqF,0CAA0CxG,aAEnD0B,UAAWP,GAEf,OAAQA,EAAGl8D,MACP,IAAK,QACDwhE,EAAYE,qBAAuB,uBACnCF,EAAYG,yBAAyBzF,EAAGqF,2CAClCrF,EAAGqF,0CAA0C7gE,MAEnD8gE,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MACJ,IAAK,WACD8gE,EAAYE,qBAAuB,gDACnCF,EAAYG,yBAAyBzF,EAAG2F,4CAClC3F,EAAG2F,2CAA2CnhE,MAEpD8gE,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MACJ,IAAK,UACD8gE,EAAYE,qBAAuB,uBACnCF,EAAYM,qBAAuB,uBACnCN,EAAYG,yBAAyBzF,EAAG6F,uBAClC7F,EAAG6F,sBAAsBrhE,MAE/B8gE,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MACJ,IAAK,QACD8gE,EAAYE,qBAAuB,iBACnCF,EAAYM,qBAAuB,uBACnCN,EAAYG,yBAAyBzF,EAAG8F,oBAClC9F,EAAG8F,mBAAmBthE,MAE5B8gE,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MACJ,IAAK,YACD8gE,EAAYE,qBAAuB,mBACnCF,EAAYM,qBAAuB,uBACnCN,EAAYG,wBAAmD,QAA1B,EAAAzF,EAAGpB,+BAAuB,aAA1B,EAA4Bp6D,SAAS,EAC1E8gE,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MACJ,IAAK,kBACD8gE,EAAYE,qBAAuB,eACnCF,EAAYM,qBAAuB,uBACnCN,EAAYG,wBAAyB,EACrCH,EAAYI,4BAA4B1F,EAAGqF,2CACrCrF,EAAGqF,0CAA0C7gE,MAEnD,MAER,OAAO8gE,CACX,IACA,OAAO5qC,CACX,EACAr1B,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAM,UACNV,MAAO,UACPswB,UAAU,GAGtB,GAEJ9wB,KAAI,WACA,MAAO,CACHkgE,SAAU,GACVnvC,aAAa,EACbC,SAAU,OACVP,YAAY,EACZQ,aAAc,GACdmvC,mBAAmB,EACnBD,mBAAoB,CAChB3lD,eAAgB,KAChB6lD,aAAc,MAG1B,GCtJiU,M,uBCA9F,GAAe,KCQlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCKhC,IAAe36D,EAAAA,EAAAA,iBAAgB,CAC7BkC,MAAK,WACH,OAAOxG,KAAKmP,GAAG,uBACjB,EACA/Q,MAAO,CACLyV,cAAesB,OAEjB5Q,WAAY,CACVw7D,8BAAAA,GACAC,gCAAAA,GACAC,iCAAAA,GACAC,8BAAAA,GACAC,gCAAAA,GACAC,gCAAAA,GACAC,+BAAAA,GACAC,6BAAAA,GACApF,yBAAAA,GACAqF,wBAAAA,GACAnF,2BAAAA,GACAC,iCAAAA,GACAN,yCAAAA,GACAE,wCAAAA,GACAuF,uBAAAA,IAEF5hE,KAAI,WACF,IAAMo9D,EAAoB,CAACtoD,GAAAA,MAAwBA,GAAAA,SAA2BA,GAAAA,SAO9E,OANI/O,EAAAA,EAAAA,iBAAwB4lB,GAAAA,eAC1ByxC,EAAkBr+D,KAAK+V,GAAAA,OAErB/O,EAAAA,EAAAA,iBAAwB4lB,GAAAA,mBAC1ByxC,EAAkBr+D,KAAK+V,GAAAA,WAElB,CACLwoD,2BAA2B,EAC3BK,0BAA0B,EAE1BJ,2BAA2B,EAC3BK,0BAA0B,EAE1BJ,0BAA0B,EAC1BK,yBAAyB,EAEzBJ,wBAAwB,EACxBK,uBAAuB,EAEvBJ,4BAA4B,EAC5BO,2BAA2B,EAE3BD,sBAAsB,EACtBxG,4BAA4B,EAC5BuG,mBAAmB,EACnBpB,eAAgB,KAEhBS,kBAAAA,EAEJ,EACAt5D,UAAU,QACR+9D,mBAAkB,WAChB,OAAOzgE,KAAK6T,cAAckD,OAAOmoD,GACnC,IACG9wC,EAAAA,GAAAA,IAAU5C,KAEf1sB,QAAS,CACPkzC,mBAAkB,SAAC4E,GACbA,IACJ52C,KAAKmR,QAAQxT,KAAK,mBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,wBACxB,EACA4mD,uBAAsB,WACpB/1D,KAAKgE,MAAM,yBACb,EACA2sD,mBAAkB,SAAC7yD,GACjB,OAAQA,GACN,IAAK,QACHkC,KAAKk8D,2BAA4B,EACjC,MACF,IAAK,UACHl8D,KAAKo8D,0BAA2B,EAChC,MACF,IAAK,WACHp8D,KAAKm8D,2BAA4B,EACjC,MACF,IAAK,YACHn8D,KAAKs8D,4BAA6B,EAClC,MACF,IAAK,QACHt8D,KAAKq8D,wBAAyB,EAC9B,MACF,QACE,MAAM,IAAI3gC,MAAM,0BAEtB,EACAugC,sBAAqB,SAAC1C,GAEpB,OADAv5D,KAAKu7D,eAAiBhC,EACdA,EAAQz7D,MACd,IAAK,QACHkC,KAAKu8D,0BAA2B,EAChC,MACF,IAAK,UACHv8D,KAAKy8D,yBAA0B,EAC/B,MACF,IAAK,WACHz8D,KAAKw8D,0BAA2B,EAChC,MACF,IAAK,YACHx8D,KAAK68D,2BAA4B,EACjC,MACF,IAAK,QACH78D,KAAK08D,uBAAwB,EAC7B,MACF,QACE,MAAM,IAAIhhC,MAAM,0BAEtB,EACAk6B,cAAa,SAAC2D,GACZv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAK48D,sBAAuB,CAC9B,EACAjB,oBAAmB,SAACpC,GAClBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKo2D,4BAA6B,CACpC,EACApG,mBAAkB,SAACuJ,GACjBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAK28D,mBAAoB,CAC3B,EACA+D,uBAAsB,SAACnH,GACrBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKu8D,0BAA2B,CAClC,EACAoE,uBAAsB,SAACpH,GACrBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKw8D,0BAA2B,CAClC,EACAV,iBAAgB,SAACxoD,GACf,IAAMyoD,EAA4C,CAChDlI,aAAcF,GAAAA,cACdlqD,SAAU,KACV2P,eAAgB,MAElBw6C,KAAiCE,uBAAuBiI,GACxD,IAAMvsD,EAAM,uBAAH,OAA0B8D,EAAK8F,gBACxCpZ,KAAKmR,QAAQxT,KAAK6R,EACpB,KC3KuS,M,uBCAxF,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBiN,W,MAAW,K,IAA6C,MAAC,G,SAAC,KAAUzR,CAAAA,EAAIg4D,eAAAA,C,MAAuB,C,MAACrvD,EAAAA,GAAW,yB,QAAc,kC,YAA+B,EAAH,K,yCAAkD7I,EAAAA,+BAAM,C,YAAqB,0B,YAAsB2C,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAI,OAAO,kBAAM,UAAM6iE,KAAkD,GAACA,CAAAA,EAAAA,EAAAA,EAAAA,CAAyB,OAACnhE,KAAW,KAA0B,mDAAC,KAAa,OAAO,6BAAqC,qBAAQ,EAAI,qBAAoB,CAAC,EAA2C,qCAAsCkH,E,OAAc2M,M,iCAAiD,C,aAAmB,EAAC,oB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,4BAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAA4M,yBAAC,I,CAA+D,oGAAC,IAAIA,MAAG,SAAoBA,GAAkP3C,OAAM,wBAAC,IAAoD,CAAC2C,EAAG,QAAkB,IAAK,MAAS,wBAAyB,GAAG,EAAEA,GAAAA,GAAG,SAA0B,QAAmB,GAAEzC,EAAIG,GAAGH,wBAAc,OAAiC,oBAAjC,EAA0B,KAAyB,EAACmd,GAAAA,EAAS,CAAqCxa,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiyD,sBAAmB18C,EAAK,IAAI,CAAC9S,EAAG,QAAkB,IAAK,MAAS,6BAA6B,GAAGA,EAAG,SAAqB,MAAK,MAAmB,EAAEzC,GAAIG,EAAGH,GAAIkS,8BAA6B,IAAGlS,GAAIiQ,EAAK,KAAI,EAAI,gEAAQ,GAAK,kDAA4C,2JAAC,IAA6B,kBAAI,8BAAC,IAA4C,mHAAC5O,IAAiCkB,MAAQ,K,EAAiBvC,8BAA4B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAyB,GAAG,CAA0C5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,uBAAC,SAAS,SAAKk4D,GAAuB,wBAACx2D,EAAOH,WAAWyhE,0B,EAA8C9iE,wCAA2B,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAwB,GAAG,CAAmC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,sBAAC,SAAS,SAAKk4D,GAAuB,uBAACx2D,EAAOH,WAAW0hE,yB,EAAkD/iE,iCAA+B,C,MAAC,CAAC0B,QAAU,EAAC,gBAA4B,GAAG,CAAyC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,0BAAC,SAAS,SAAKk4D,GAAuB,2BAACx2D,EAAOH,WAAWg3D,6B,EAAqDr4D,uCAAkC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA+B,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,2BACnjH,qBACGtB,EAAAA,2BAAoB,CAExB,E,6GCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qCAAqC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,0BAA0BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,wBAAyBK,WAAW,4BAA4B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,WAAW,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAClwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAoC9I,EAAM,Q,MAAC,sCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IAC3uB,UAGD,E,8BCJ4N,GAAC,W,IAACpI,EAAAA,K,EAAwB,EAAC,S,OAAa,EAAC,YAAU,C,MAAC,C,MAA+H,EAAC,yC,SAAO,2C,QAAqC,EAAQ,S,YAAiBxI,EAAG,KAAiC,IAAC,WAACiS,GAAAA,WAAY,sHAAI,MAAC,CAAa,eAA2B,iCAAhBtB,OAAM,WAAW,GAAQ9Q,GAAG,iC,SAChjB+c,G,2BAGW/c,G,MACPo6D,EAAY,O,EACZxB,EAAS,M,MACTH,CAAAA,EAAAA,GAAAA,UAAgBuK,KAAAA,C,KACpB,CACH,YAAC,oBAAe,sBAAC,0BAAmB,CAAC,MAAUhjE,EAAIc,cAAQ,aAAQkQ,EAAAA,UAAQ,6CAAsB3P,OAAWZ,EAAO8B,QAAS,QAAgBvC,QAAUgqB,EAAG,QAAC,UAAmB,IAAM,MAAC,GAAgBlqB,MAAM,CAAC,MAAO,EAAEE,MAAuB,SAAU,SAAiBA,GAAkB,QAAa,CAAC,EAAe,WAAW,UAAawB,CAAAA,EAAK,KAAC,C,MAAM,CAAYe,MAAQ,CAAC,qB,SAAwB,EAAI,mCAAC,GAACb,UAAW,GAAM,oBAAqB5B,MAAM,CAAC,MAAO,EAACE,KAA8B,SAAU,SAAiBA,GAAiC,QAAC2I,EAAqBnG,WAAI,U,EAAuB,KAAW,C,MAAa1C,C,MAAO,KAAS,uB,SAAG,4C,YAA0B,O,kCAA8BA,EAAAA,GAAAA,EAAK,C,MAAI,C,OAAuC,I,YAAY,EAAQ,K,IAAE,Y,GAAE,SAASA,GAAoD,WAAG,UAAM,MAAO,GAAEE,EAAAA,EAAOA,EAAIkS,GAAGlS,EAAIoR,GAAG,CAAsC,OAAO,QAAO,WAAmByoD,QAAAA,GAAAA,GAAoB,8BAACt3D,MAAqD,+DAACb,EAAgC,YAAuB5B,MAAM,CAAC,4BAAuB,SAAQE,SAAO,GAAgD,uBAAG,EAAE,WAASA,yBAAiCyC,EAAG,KAAY,CAAE3C,MAAM,CAAC,kBAAa,KAAC,MAAQ,EAAI,GAAC47D,iD,GAAiC,CAA+D,sCAAQr6D,EAAAA,GAAAA,EAAW4hE,C,MAAe1gE,C,SAA6B0gE,GAAiB,MAAC,sBAACvhE,SAAW,GAAe,4DAAuB5B,MAAM,CAAC,MAAO,EAAEE,cAAuB,SAAU,SAAG,GAAC,gBAAe,CAA0C,EAACwB,WAAM,mBAAuBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAc,MAAC,sBAACb,SAAW,GAAW,sDAAuB5B,MAAM,CAAC,MAAO,EAAEE,UAAuB,SAAU,SAAG,GAAC,YAAc,CAA0C,EAAuD,0BAAQqB,EAAAA,GAAAA,EAAW6hE,C,MAAS3gE,C,MAA6B2gE,CAAAA,EAAO,OAAI,qBAAC,GAACxhE,YAAW,0CAAS,oDACr7D,OACGtB,MAAAA,EAAAA,QAEJ,SAAe,SAAiB,G,gDCXhC,IACIC,MAAO,CAAC,UAAW,QAAS,YAC5BQ,KAAI,WACA,MAAO,CACHJ,OAAO,EACPwC,KAAM,GACN42D,qBAAqB,EACrBsJ,UAAW,GACXD,QAAS,GACTD,cAAe,GACft8D,QAASC,EAAAA,EAAAA,MAAaC,SAE9B,EACAlC,SAAU,CACNq+D,UAAS,WACL,IAAK/gE,KAAKghE,cAAe,OAAO,KAChC,IACI,IAAMG,EAAY/6D,KAAKwe,MAAM5kB,KAAKghE,eAClC,OAAOG,EAAU,eAAiB,I,CACpC,SACE,OAAO,I,CAEf,GAEJriE,QAAS,CACCsiE,0BAAyB,SAACh9C,GAAU,gIACjCA,EAAM,CAAF,gEACkBA,EAAKtkB,OAAM,OAAtC,EAAKkhE,cAAgB,EAAH,+CAFoB,EAG1C,GAEJl/D,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,IACL/H,KAAKgB,KAAO+G,EAAI/G,KAChBhB,KAAK43D,oBAAsB7vD,EAAI6vD,oBAC3B7vD,EAAIs5D,2BACJrhE,KAAKghE,cAAgBj5D,EAAIs5D,0BAA0Br4D,MACnDhJ,KAAKihE,QAAUl5D,EAAIs5D,0BAA0BtI,UAC7C/4D,KAAKkhE,UAAYn5D,EAAIs5D,0BAA0BxI,eAE/C74D,KAAKghE,cAAgB,GACrBhhE,KAAKihE,QAAU,GACfjhE,KAAKkhE,UAAY,IAEzB,EACAl5D,WAAW,EACXjG,MAAM,KCjDwT,M,uBCA9F,GAAe,KCOvP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAA+8D,6BAAAA,IACAxiE,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1BgS,MCO5R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAAg9D,+BAAAA,GAAAtJ,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5B2R,MCOvR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qCAAqC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,yBAAyB,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,wBAAyBK,WAAW,4BAA4B5B,MAAM,CAAC,KAAO,4BAA4B,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IACl3B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAAg9D,+BAAAA,GAAApI,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvCmS,MCO/R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBsDjR,GAAM,W,IAAC,O,EAAsB,QAAUE,G,OAAY,OAAYqxB,C,MAAc,CAAgB,kBAAkC,QAAUrxB,EAAI6xB,QAAS,QAAY7xB,cAAe,gBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,iBAAE,EAAC1T,mBAAoB,YAACnG,EAAI,WAAS,CAACoG,G,YAAyF,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,uDAACoG,E,OAAc2M,G,KAAkCzV,Y,YAAW,G,IAAgC,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAc,OAAG,+CAA+B,YAAkB,c,QAAoB47C,uB,GAAwD,SAAY,G,IAAmDrxD,EAAM,O,MAAC,UAAS,CAAE,MAAC,4CAAC6I,CAAAA,EAAAA,GAAAA,IAAY3I,EAAM,GAAE,gC,MAAK,CAAY4I,OAAG,I,YAAyBnG,EAAG,K,IAAiB3C,Y,YAAe,G,IAAG,IAAU,G,MAAC,GAAO,IAAM2jE,EAAAA,GAAAA,CAA6C,OAAG9gE,MAASxC,GAA8D,SAAQ,MAAK,8CAAmK,2DAAG,IAAI,UAAkC,gBAAkB,gI,QAA4JgxD,8B,GAAoE,SAAY,GAA8D,aAAG,+GAAI,+BAAe,2BAAI,aAAkB,oBAAlB,CAAkB,8BAAzC,sB,QAA2E,e,GAAuB,SAAC,gBAAI,MAAK,GAAI,qBAAG,mBAE19D/wD,IAEJ,MAASgB,I,QCyDF,SAASsiE,GAA8BzH,GAC9C,+BACA,CAEA,QACA57D,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAi0C,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,qBAGAK,KAAAA,WACA,OACAgxB,SAAAA,OACAP,YAAAA,EACAQ,aAAAA,GAEA,EACAntB,SAAAA,CACA0sB,cAAAA,WACA,kBACA,uCACA,MACA4qC,EAAAA,2BAAAA,EAAAA,0BAAAA,WAAAA,IAAAA,KAAAA,EAAAA,0BAAAA,QAAAA,KAKA,OAHA,wBACAC,EAAAA,MAEA,CACAp/C,GAAAA,EAAAA,GACAC,KAAAA,EAAAA,KACA0mD,wBAAAA,EAAAA,0BACAxH,EAAAA,0BAAAA,MACAA,oBAAAA,EAAAA,KACA0H,gBAAAA,EAAAA,0BACA1H,EAAAA,0BAAAA,YAAAA,kBACAA,oBAAAA,EAAAA,KACA,WACA,kBACA2H,gBAAAA,EAAAA,0BACA3H,EAAAA,0BAAAA,aACAA,oBAAAA,EAAAA,KACA,WACA,kBACA4H,uBAAAA,EACArH,UAAAA,EAEA,IA3BA,EA4BA,EACAl7D,QAAAA,WACA,OACA,CACAS,KAAAA,KAAAA,GAAAA,QACAV,MAAAA,OACAswB,UAAAA,GAEA,CACA5vB,KAAAA,KAAAA,GAAAA,sCACAV,MAAAA,kBACAswB,UAAAA,GAEA,CACA5vB,KAAAA,KAAAA,GAAAA,sCACAV,MAAAA,kBACAswB,UAAAA,GAEA,CACA5vB,KAAAA,KAAAA,GAAAA,mCACAV,MAAAA,yBACAswB,UAAAA,GAEA,CACA5vB,KAAAA,UACAV,MAAAA,UACAswB,UAAAA,GAGA,IC/I0R,M,uBCAlD,GAAe,KCQnP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC2FhC,IACAlpB,MAAAA,WACA,uCACA,EACApI,MAAAA,CACAyV,cAAAA,OAEAtP,WAAAA,CACAs9D,yBAAAA,GACAC,0BAAAA,GACA5G,yBAAAA,GACAE,2BAAAA,GACAC,iCAAAA,GACA0G,kCAAAA,IAEAnjE,KAAAA,WACA,OACAgiE,sBAAAA,EACAC,qBAAAA,EACAC,yBAAAA,EACA1K,4BAAAA,EACA4L,sBAAAA,EACAzG,eAAAA,KAEA,EACA74D,UAAAA,EAAAA,EAAAA,GAAAA,CACAu/D,oBAAAA,WACA,oCACA,IACA7zC,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAkzC,mBAAAA,SAAAA,GACA,IACA,sCACA,6CACA,EACA+jB,uBAAAA,WACA,oCACA,EACAH,cAAAA,SAAAA,GACA,sBACA,+BACA,EACAqG,sBAAAA,SAAAA,GACA,sBACA,2BACA,EACAjM,mBAAAA,SAAAA,GACA,sBACA,4BACA,EACA2L,oBAAAA,SAAAA,GACA,sBACA,kCACA,ICzKmQ,M,uBCA/C,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2N,W,IAAgBh1D,EAAG,K,EAAW,QAAW,GAAkC,EAAC,kB,SAAC,KAAU5I,CAAAA,EAAIg4D,eAAAA,C,MAAuB,C,MAACrvD,EAAAA,GAAW,yB,QAAc,kC,YAA+B,EAAH,K,yCAAkD7I,EAAAA,+BAAM,C,YAAqB,0B,YAAsB2C,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAI,OAAO,kBAAM,UAAMmkE,KAAkD,GAACA,CAAAA,EAAAA,EAAAA,EAAAA,CAAyB,OAACziE,KAAW,KAA0B,mDAAC,KAAa,OAAO,6BAAqC,qBAAQ,EAAI,qBAAoB,CAAC,EAA2C,qCAAsCkH,E,OAAc2M,M,iCAAiD,C,aAAmB,EAAC,oB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,4BAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAA4M,yBAAC,I,CAA+D,oGAAC,IAAIA,MAAG,SAAoBA,GAAqP,+BAAC,I,CAA0D,kJAAC,IAAIA,MAAG,SAAoBA,GAAsN,iCAAC,I,CAA4D,4LAAC,IAAIA,MAAG,SAAoBA,GAA0J,4BAAQ,IAAiD,2JAAC,IAA6B,kBAAI,8BAAC,IAA4C,mHAACpB,IAAiCkB,MAAQ,K,EAAiBvC,8BAA4B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAyB,GAAG,CAAqC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,uBAAC,SAAS,SAAKk4D,GAAuB,wBAACx2D,EAAOH,WAAW+iE,0B,EAA8CpkE,mCAA2B,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAwB,GAAG,CAAmC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,sBAAC,SAAS,SAAKk4D,GAAuB,uBAACx2D,EAAOH,WAAWgjE,yB,EAAkDrkE,iCAA+B,C,MAAC,CAAC0B,QAAU,EAAC,gBAA4B,GAAG,CAAyC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,0BAAC,SAAS,SAAKk4D,GAAuB,2BAACx2D,EAAOH,WAAWg3D,6B,EAAqDr4D,uCAAkC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA+B,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,2BACllH,qBACGtB,EAAAA,2BAAoB,CAExB,E,6GCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,gCAAgC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,0BAA0BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,wBAAyBK,WAAW,4BAA4B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,WAAW,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAC7vB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA+B9I,EAAM,Q,MAAC,iCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACtuB,UAGD,E,MCJoN,GAAC,W,IAACpI,EAAAA,K,EAAwB,EAAC,S,OAAa,EAAC,YAAU,C,MAAC,C,MAA+H,EAAC,qC,SAAO,uC,QAAqC,EAAQ,S,YAAiBxI,EAAG,KAAiC,IAAC,WAACiS,GAAAA,WAAY,sHAAI,MAAC,CAAa,eAA2B,iCAAhBtB,OAAM,WAAW,GAAQ9Q,GAAG,iC,SACxiB+c,G,2BAGW/c,G,MACPo6D,EAAY,O,EACZxB,EAAS,M,MACTH,CAAAA,EAAAA,GAAAA,UAAgB6L,KAAS,C,KACzBzL,CACJ,YACH,0CAAC,iBAAe,CAAC,MAAU74D,EAAIS,QAAM,aAAcK,EAAO,OAAC,UAAQkQ,EAAAA,YAAQ,+CAAsB3P,OAAWZ,EAAO8B,QAAS,QAAgBvC,QAAUgqB,EAAG,QAAC,UAAmB,IAAM,MAAC,GAAgBlqB,MAAM,CAAC,MAAO,EAAEE,MAAuB,SAAU,SAAiBA,GAAkB,QAAa,CAAC,EAAe,WAAW,UAAawB,CAAAA,EAAK,KAAC,C,MAAM,CAAYe,MAAQ,CAAC,qB,SAAwB,EAAI,mCAAC,GAACb,UAAW,GAAM,oBAAqB5B,MAAM,CAAC,MAAO,EAACE,KAA8B,SAAU,SAAiBA,GAAiC,QAAC2I,EAAqBnG,WAAI,U,EAAuB,KAAW,C,MAAa1C,C,MAAO,KAAS,uB,SAAG,4C,YAA0B,O,kCAA8BA,EAAAA,GAAAA,EAAK,C,MAAI,C,OAAuC,I,YAAY,EAAQ,K,IAAE,Y,GAAE,SAASA,GAAoD,WAAG,UAAM,MAAO,GAAEE,EAAAA,EAAOA,EAAIkS,GAAGlS,EAAIoR,GAAG,CAAsC,OAAO,QAAO,WAAmByoD,QAAAA,GAAAA,GAAoB,8BAACt3D,MAAqD,+DAACb,EAAgC,YAAuB5B,MAAM,CAAC,4BAAuB,SAAQE,SAAO,GAA2C,uBAAG,EAAE,WAASA,yBAAiCyC,EAAG,KAAY,CAAE3C,MAAM,CAAC,kBAAa,KAAC,MAAQ,EAAI,GAAC47D,4C,GAAiC,CAA0D,sCAAQr6D,EAAAA,GAAAA,EAAWkjE,C,MAAShiE,C,SAA6BgiE,GAAW,MAAC,sBAAC7iE,SAAW,GAAS,uDAAuB5B,MAAM,CAAC,MAAO,EAAEE,QAAuB,SAAU,SAAG,GAAC,UAAc,CAAuF,EAAqD,wBAAQqB,EAAAA,GAAAA,EAAWijE,C,MAAW/hE,C,MAA6B+hE,CAAAA,EAAAA,OAAa,qBAAC,GAAC5iE,YAAW,uFAAW,kDAAuB5B,MAAM,CAAC,MAAO,EAAEE,UAAuB,SAAU,SAAG,GAAC,YAAc,CAAoF,EAAkD,0BAAQqB,EAAAA,GAAAA,EAAWmjE,C,MAAQjiE,C,MAA6BiiE,CAAAA,EAAM,OAAI,qBAAC,GAAC9iE,YAAW,oFAAQ,+CAAuB5B,MAAM,CAAC,MAAO,EAAEE,OAAuB,SAAU,SAAG,GAAC,SAAc,CAAuD,EAAuD,uBAAQqB,EAAAA,GAAAA,EAAWojE,C,MAAaliE,C,MAA6BkiE,CAAAA,EAAAA,OAAYz6C,YAAG,SAAC,GAACtoB,YAAW,uDAAa,oDAAuB5B,MAAM,CAAC,MAAO,EAAEE,YAAuB,SAAU,SAAG,GAAC,cAAc,CAAsB,EAAoD,4BAAQqB,EAAAA,GAAAA,EAAWqjE,C,MAAUniE,C,MAA6BmiE,CAAAA,EAAQ,OAAI,qBAAC,GAAChjE,YAAW,sBAAU,iDAC3kF,OACGtB,MAAAA,EAAAA,SAEJ,SAAe,SAAiB,G,kDCZhC,IACIC,MAAO,CAAC,UAAW,QAAS,YAC5BQ,KAAI,WACA,MAAO,CACHJ,OAAO,EACPwC,KAAM,GACN42D,qBAAqB,EACrByK,UAAW,GACXE,OAAQ,GACRE,SAAU,GACVD,YAAa,GACbF,QAAS,GACT59D,QAASC,EAAAA,EAAAA,MAAaC,SAE9B,EACA9F,QAAS,CACCsiE,0BAAyB,SAACh9C,GAAU,gIACjCA,EAAM,CAAF,gEACYA,EAAKtkB,OAAM,OAAhC,EAAKwiE,QAAU,EAAH,+CAF0B,EAG1C,GAEJxgE,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,IACL/H,KAAKgB,KAAO+G,EAAI/G,KAChBhB,KAAK43D,oBAAsB7vD,EAAI6vD,oBAC3B7vD,EAAI26D,uBACJ1iE,KAAKqiE,UAAYt6D,EAAI26D,sBAAsB5J,WAC3C94D,KAAKsiE,QAAUv6D,EAAI26D,sBAAsB15D,MACzChJ,KAAKwiE,YAAcz6D,EAAI26D,sBAAsB3J,UAC7C/4D,KAAKuiE,OAASx6D,EAAI26D,sBAAsB7J,aACxC74D,KAAKyiE,SAAW16D,EAAI26D,sBAAsB1L,aAE1Ch3D,KAAKqiE,UAAY,GACjBriE,KAAKsiE,QAAU,GACftiE,KAAKwiE,YAAc,GACnBxiE,KAAKuiE,OAAS,GACdviE,KAAKyiE,SAAW,IAExB,EACAz6D,WAAW,EACXjG,MAAM,KC5CoT,M,uBCA9F,GAAe,KCOnP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCFhC,IACA3D,MAAAA,CAAAA,QAAAA,UAAAA,WAAAA,QACAmG,WAAAA,CAAAo+D,yBAAAA,IACA7jE,QAAAA,CACAiS,KAAAA,WACA,sBACA,IC1B4R,MCOxR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAxM,WAAAA,CAAAq+D,2BAAAA,GAAA3K,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5B2R,MCOvR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,gCAAgC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,yBAAyB,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,wBAAyBK,WAAW,4BAA4B5B,MAAM,CAAC,KAAO,mBAAmB,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IACp2B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAAq+D,2BAAAA,GAAAzJ,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvC+R,MCO3R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBsDjR,GAAM,W,IAAC,O,EAAsB,QAAUE,G,OAAY,OAAYqxB,C,MAAc,CAAgB,kBAAkC,QAAUrxB,EAAI6xB,QAAS,QAAY7xB,cAAe,gBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,iBAAE,EAAC1T,mBAAoB,YAACnG,EAAI,WAAS,CAACoG,G,YAAyF,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,uDAACoG,E,OAAc2M,G,KAA6BzV,Y,YAAc,G,IAAS,S,MAAI,a,MAAC,C,KAAyB,UAAoC,IAAI2C,MAAS,SAAC,GAACC,OAAW,EAAC,qBAAkB1C,IAAyC,WAAI,6BAA2B,YAAkB,oB,QAAoBmxD,uB,GAAwD,SAAY,G,IAAmDrxD,EAAM,O,MAAC,UAAS,CAAE,MAAC,4CAAC6I,CAAAA,EAAAA,GAAAA,IAAY3I,EAAM,GAAE,gC,MAAK,CAAY4I,OAAG,I,YAAyBnG,EAAG,K,IAAiB3C,Y,YAAe,G,IAAG,IAAU,G,MAAC,GAAO,IAAMglE,EAAAA,GAAAA,CAA6C,OAAGniE,MAASxC,GAA8D,SAAQ,MAAK,8CAAmK,2DAAG,IAAI,UAAmB,gBAAkB,gI,QAAkC,e,GAAuB,SAAC,gBAAI,MAAK,GAAI,qBAAG,mBAE7sDC,IAEJ,MAASgB,I,QCAH,SAAU2jE,GAA8B9I,GAC1C,MAA2B,WAApBA,EAAGvgD,YACd,CAEA,QACIrb,MAAO,CACH6nB,MAAO9Q,MACPtW,QAAS,CACLf,KAAMoD,QACN3C,SAAS,GAEbi0C,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,qBAGjBK,KAAI,WACA,MAAO,CACHgxB,SAAU,OACVP,YAAY,EACZQ,aAAc,GAEtB,EACAntB,SAAU,CACN0sB,cAAa,WACT,OAAKpvB,KAAKimB,MACHjmB,KAAKimB,MAAMlP,OAAO+rD,IAA+B91D,KAAI,SAACgtD,GACzD,MAAO,CACHn/C,GAAIm/C,EAAG5yD,GACP0T,KAAMk/C,EAAGh5D,KACT6hE,wBAAyB7I,EAAG0I,sBACtB1I,EAAG0I,sBAAsBlkE,MACb,oBAAZw7D,EAAGl8D,KACTilE,gBAAiB/I,EAAG0I,sBACd1I,EAAG0I,sBAAsB5J,WAAWniD,UAAU,EAAE,KAAO,kBAC3C,oBAAZqjD,EAAGl8D,KACH,WACA,kBACNklE,aAAchJ,EAAG0I,sBACX1I,EAAG0I,sBAAsB7J,aAAaliD,UAAU,EAAG,IACvC,oBAAZqjD,EAAGl8D,KACH,WACA,kBACNy8D,UAAWP,EAEnB,IApBwB,EAqB5B,EACA36D,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,sCACd/P,MAAO,kBACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,mCACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAM,UACNV,MAAO,UACPswB,UAAU,GAGtB,GAEJ5wB,QAAS,CACL07D,mBAAkB,SAAClnD,GAEf,IAAM8gD,EAA6C,CAC/CP,aAAeF,GAAAA,2BACflqD,SAAW,KACX2P,eAAiB9F,EAAKuH,IAG1B,OADA+4C,KAAiCE,uBAAuBM,GACjDp0D,KAAKmR,QAAQxT,KAAK,GAAD,OAAIqC,KAAKwyC,YAAW,YAAIl/B,EAAKuH,IACzD,ICtF8T,M,uBCA9F,GAAe,KCQnP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCPhC,IAAevW,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,WACD,OAAOxG,KAAKmP,GAAG,wBACnB,EACA/Q,MAAO,CACHyV,cAAesB,OAEnB5Q,WAAY,CACR0+D,yBAAAA,GACAC,0BAAAA,GACAhI,yBAAAA,GACAE,2BAAAA,GACAC,iCAAAA,GACA8H,8BAAAA,IAEJvkE,KAAI,WACA,MAAO,CACHsjE,sBAAsB,EACtBC,qBAAqB,EACrBC,yBAAyB,EACzBhM,4BAA4B,EAC5BgN,sBAAsB,EACtB7H,eAAgB,KAExB,EACA74D,UAAU,QACN2gE,oBAAmB,WACf,OAAOrjE,KAAK6T,cAAckD,OAAO+rD,GACrC,IACG10C,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACLkzC,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,oBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,yBAC1B,EACA4mD,uBAAsB,WAClB/1D,KAAKgE,MAAM,yBACf,EACA4xD,cAAa,SAAC2D,GACVv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKoiE,yBAA0B,CACnC,EACAnG,sBAAqB,SAAC1C,GAClBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKmiE,qBAAsB,CAC/B,EACArG,iBAAgB,SAACxoD,GAEd,IAAMyoD,EAA6C,CAC9ClI,aAAeF,GAAAA,eACflqD,SAAW,KACX2P,eAAiB,MAErBw6C,KAAiCE,uBAAuBiI,GACzD,IAAMvsD,EAAM,uBAAH,OAA0B8D,EAAK8F,gBACxCpZ,KAAKmR,QAAQxT,KAAK6R,EACrB,EACAwgD,mBAAkB,SAACuJ,GACfv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKojE,sBAAuB,CAChC,EACAzH,oBAAmB,SAACpC,GAChBv5D,KAAKu7D,eAAiBhC,EACtBv5D,KAAKo2D,4BAA6B,CACtC,KClFoS,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBmN,W,MAAW,K,IAAoD,MAAC,G,SAAC,KAAUr4D,CAAAA,EAAIg4D,eAAAA,C,MAAuB,C,MAACrvD,EAAAA,GAAW,0B,QAAc,mC,YAA+B,EAAH,K,yCAAkD7I,EAAAA,sCAAM,C,YAAqB,0B,YAAsB2C,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAI,OAAO,kBAAM,UAAMulE,KAA+C,GAACA,CAAAA,EAAAA,EAAAA,EAAAA,CAAsB,OAAC7jE,KAAW,KAAuB,mDAAC,KAAa,OAAO,0BAAsC,qBAAQ,EAAI,kBAAC8jE,CAAqB,EAA2C,kCAAsC58D,E,OAAc2M,M,kCAAiD,C,aAAmB,EAAC,qB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,4BAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAA4M,yBAAC,I,CAA+D,oGAAC,IAAIA,MAAG,SAAoBA,GAAkP3C,OAAM,wBAAC,IAAoD,CAAC2C,EAAG,QAAkB,IAAK,MAAS,wBAAyB,GAAG,EAAEA,GAAAA,GAAG,SAA0B,QAAmB,GAAEzC,EAAIG,GAAGH,wBAAc,OAAiC,oBAAjC,EAA0B,KAAyB,EAACmd,GAAAA,EAAS,CAAqCxa,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiyD,sBAAmB18C,EAAK,IAAI,CAAC9S,EAAG,QAAkB,IAAK,MAAS,6BAA6B,GAAGA,EAAG,SAAqB,MAAK,MAAmB,EAAEzC,GAAIG,EAAGH,GAAIkS,8BAA6B,IAAGlS,GAAIiQ,EAAK,KAAI,EAAI,gEAAQ,GAAK,kDAAkD,2JAAC,GAAOjQ,CAAmB,kBAAI,8BAAC,IAA4C,mHAACqB,IAA6BkB,MAAQ,K,EAAiBvC,oCAAwB,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAqB,GAAG,CAAgC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,mBAAC,SAAS,SAAKk4D,GAAuB,oBAACx2D,EAAOH,WAAWu9D,sB,EAA4C5+D,8BAAyB,C,MAAC,CAAC0B,QAAU,EAAC,gBAAsB,GAAG,CAAmC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,oBAAC,SAAS,SAAKk4D,GAAuB,qBAACx2D,EAAOH,WAAWw9D,uB,EAA+C7+D,iCAA4B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAyB,GAAG,CAAyC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,uBAAC,SAAS,SAAKk4D,GAAuB,wBAACx2D,EAAOH,WAAWg3D,0B,EAAqDr4D,uCAAkC,C,MAAC,CAAC0B,QAAU,EAAC,gBAA+B,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,2BACthH,qBACGtB,EAAAA,2BAAoB,CAExB,E,6GCJsFN,GAAM,W,IAAC,O,EAAsB,QAAUE,G,OAAY,OAAYqxB,C,MAAc,CAAgB,kBAAkC,QAAUrxB,EAAI6xB,QAAS,QAAY7xB,cAAe,gBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,iBAAE,EAAC1T,mBAAoB,YAACnG,EAAI,WAAS,CAACoG,G,YAA0F,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,wDAACoG,E,OAAc2M,G,KAAkCzV,Y,YAAW,G,IAAgC,SAAC,MAAM,CAACK,EAAG,cAAWoV,CAAc,OAAG,+CAA2B,YAAkB,c,QAAoB47C,mB,GAAkD,SAAY,G,IAA+CrxD,EAAM,O,MAAC,UAAS,CAAE,MAAC,sCAAC6I,CAAAA,EAAAA,GAAAA,IAAY3I,EAAM,GAAE,4B,MAAK,CAAY4I,OAAG,I,YAAyBnG,EAAG,K,IAAiB3C,Y,YAAe,G,IAAG,IAAU,G,MAAC,GAAO,IAAM2lE,EAAAA,GAAAA,CAAuC,OAAG9iE,MAASxC,GAAwD,SAAQ,MAAK,wCAA8J,qDAAG,IAAI,UAAsB,gBAAkB,2H,IAAiD,sBAAE,GAAC,YAACqC,IAAG,IAAe,KAAG,MAAC,UAAkB,wB,QAAkC,e,GAAuB,SAAC,gBAAI,MAAK,GAAI,qBAAG,mBAEvrDpC,IAEJ,MAASgB,I,QCHH,SAAUskE,GAA+BzJ,GAC3C,MAA2B,YAApBA,EAAGvgD,YACd,CAEA,QACIrb,MAAO,CACH6nB,MAAO9Q,MACPtW,QAAS,CACLf,KAAMoD,QACN3C,SAAS,GAEbi0C,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,sBAGjBK,KAAI,WACA,MAAO,CACHgxB,SAAU,OACVP,YAAY,EACZQ,aAAc,GAEtB,EACAntB,SAAU,CACN0sB,cAAa,WACT,IAAKpvB,KAAKimB,MAAO,MAAO,GACxB,IAAMy9C,EAAkB1jE,KAAKimB,MAAMlP,OAAO0sD,IAAgCz2D,KAAI,SAACgtD,GAC3E,MAAO,CACHn/C,GAAIm/C,EAAG5yD,GACP0T,KAAMk/C,EAAGh5D,KACTwiE,kBAAmBxJ,EAAG2J,uBAChB3J,EAAG2J,uBAAuBnlE,MACd,oBAAZw7D,EAAGl8D,KACT8lE,YAAa5J,EAAG2J,uBACV3J,EAAG2J,uBAAuB7K,YAAc,kBAC5B,oBAAZkB,EAAGl8D,KACH,WACA,kBACN84D,WAAYoD,EAAG2J,uBACT3J,EAAG2J,uBAAuB3M,WACd,oBAAZgD,EAAGl8D,KACH,WACA,kBACNy8D,UAAWP,EAEnB,IAEA,OAAO0J,CACX,EACArkE,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,yCACd/P,MAAO,cACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,wCACd/P,MAAO,aACPswB,UAAU,GAEd,CACI5vB,KAAM,UACNV,MAAO,UACPswB,UAAU,GAGtB,ICzE+T,M,uBCA9F,GAAe,KCQpP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvB5BvwB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,iCAAiC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,2BAA2BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,4BAA4B,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,yBAA0BK,WAAW,6BAA6B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,YAAY,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAClwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAgC9I,EAAM,Q,MAAC,kCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACvuB,UAGD,E,SCJ4I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,mC,QAAqH,W,YAAkB,EAAM,K,IAAqC,W,GAAE,WAAgD,yHAACoS,MAAM,CAAM,eAAK,KAAS,8CAA+B,CAAhBtB,EAAAA,GAAM,oC,SAAW,G,2BAElfynD,G,IACAuN,EAAAA,EAAAA,O,EACIrN,EAAAA,M,MACAC,CAAAA,EAAK,GAAE14D,UAAI24D,KAAe,C,KAC1BE,CACJ,YACH,0CAAC,uBAAe,CAAC,WAAcp4D,EAAK,YAAC,MAAUT,EAAIc,gBAAQ,WAAQkQ,EAAAA,aAAY,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAWE,CAAkC,EAAsB,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACwB,SAAM,4BAACH,MAAOrB,EAAIiD,UAAMV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAgB3C,SAAM,YAAC,sBAAc,CAAgC,EAAwD,WAAW,yBAAgC,QAAC0B,MAAM,CAACH,YAAWy3D,gCAAav2D,MAAQ,EAAC,4C,MAAoBu2D,EAAAA,iBAAsD,SAAC,IAAyB,OAAIr2D,MAAG,cAAgB3C,SAAM,YAAC,cAAc,8BAA8C,EAAwE,WAAWi5D,iBAAsG,OAAYC,C,MAAqB,CAAc,0DAAG,cAAC,oDAAC,2BAAe,kB,MAAOh5D,EAAI+4D,GAAAA,6CAA8C,6BAAE,a,GAAQ13D,CAA4BkB,eAAS,WAAgBvC,OAAI24D,EAAAA,qBAA2B,EAAK,mBAA0B,GAA8B,OAAIl2D,MAAG,kBAA+B3C,SAAM,YAAC,kBAAe,sBAAsC,OAAC,CAAC,E,WAAe,qBAAM,iCAAC0B,MAAM,CAACH,MAAOrB,EAAIi5D,GAAAA,wCAAY12D,MAAQ,CAAC,WAAgBvC,OAAIi5D,CAAc,IAAyB,OAAI,MAAG,aACxlE,qBACG74D,EAAAA,WAAoB,CAExB,E,sCCZwFN,GAAM,W,IAAC,O,EAAkB,EAAO,MAAKimE,G,OAAuB,OAAkB,C,MAAC,CAAoB,MAAS,EAAC/lE,MAAY,+BAA0B,YAAYiV,OAAM,aAAY5T,OAAqE,kBAAqB,eAAe,EAAE,OAAC,cAAmB,KAAQrB,EAAI0nB,WAAK,iDAAC,kBAAgB,GAAG,kBAAG,gBAAC,GAAC,MAAQ,Q,gBAA4BzhB,I,GAA6C,C,MAA0CozD,SAAa,GAAC,qCAAC,E,qBAAwD,sBAAE,EAAC1wD,sBAAoB,YAACnG,EAAI,QAAgBoG,G,YAAqG,O,wCAAuB,GAAQ,QAAS,Q,MAAC,CAAkB,QAAI,UAAC,gBAAM,cAAC,MAA/B,wBAC5yB,EACGxI,OAAAA,M,QCAS4lE,GAAkB,CAC3B,CAAE13D,KAAM,aAAcrL,KAAM,WAC5B,CAAEqL,KAAM,aAAcrL,KAAM,WAC5B,CAAEqL,KAAM,iBAAkBrL,KAAM,eAChC,CAAEqL,KAAM,eAAgBrL,KAAM,UAC9B,CAAEqL,KAAM,gBAAiBrL,KAAM,WAC/B,CAAEqL,KAAM,cAAerL,KAAM,YAC7B,CAAEqL,KAAM,cAAerL,KAAM,YAC7B,CAAEqL,KAAM,cAAerL,KAAM,YAC7B,CAAEqL,KAAM,YAAarL,KAAM,UAC3B,CAAEqL,KAAM,eAAgBrL,KAAM,aAC9B,CAAEqL,KAAM,aAAcrL,KAAM,WAC5B,CAAEqL,KAAM,iBAAkBrL,KAAM,WAGpC,IACI5C,MAAO,CAAC,QAAS,QAAS,SAC1BsE,SAAU,CACNohE,uBAAsB,sBAClB,OAAK9jE,KAAKo3D,OACH,CAACp3D,KAAKo3D,QACRt/C,OAAO9X,KAAKy3D,WAAW1gD,QAAO,SAAAiZ,GAAC,OAAIA,EAAEhvB,KAAK8mC,WAAW,EAAKsvB,OAAO,KACjErgD,QAAO,SAAC3X,EAAOmY,EAAOC,GACnB,OAAOA,EAAKrK,WAAU,SAAAN,GAAC,OAAIA,EAAER,MAAQjN,EAAMiN,IAAI,MAAMkL,CACzD,IALqBvX,KAAKy3D,UAMlC,GAEJ74D,KAAI,WACA,MAAO,CACH64D,WAAY,GAAF,OAAMsM,IAChBxM,SAAS,EACT14D,SAAS,EACTu4D,OAAQ,GAEhB,GCpCmU,M,uBCA9F,GAAe,KCOpP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCnBhC,IACI7yD,WAAY,CAAEy/D,0BAAAA,IACd5lE,MAAO,CAAC,UAAW,QAAS,YAC5BQ,KAAI,sBACA,MAAO,CACHJ,OAAO,EACPkG,QAASC,EAAAA,EAAAA,MAAaC,SACtB5D,KAAM,GACN0kC,UAAW,CAAC,SAACh1B,GAAC,QAAOA,GAAK,EAAKvB,GAAG,0CAA0C,GAC5EyoD,qBAAqB,EACrBf,YAAa,GACbgB,iBAAkB,CAAC,SAACnnD,GAAC,QAAOA,GAAK,EAAKvB,GAAG,iDAAiD,GAC1F6nD,WAAY,GACZF,qBAAqB,EACrBJ,gBAAiB,GACjBK,qBAAsB,CAAC,SAACrmD,GAAC,QAAOA,GAAK,EAAKvB,GAAG,qDAAqD,GAE1G,EACArN,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,IACL/H,KAAKgB,KAAO+G,EAAI/G,KAChBhB,KAAK43D,oBAAsB7vD,EAAI6vD,oBAC3B7vD,EAAI47D,wBACJ3jE,KAAK62D,YAAc9uD,EAAI47D,uBAAuB7K,WAC9C94D,KAAK02D,gBAAkB3uD,EAAI47D,uBAAuB36D,MAClDhJ,KAAKg3D,WAAajvD,EAAI47D,uBAAuB3M,aAE7Ch3D,KAAK62D,YAAc,GACnB72D,KAAK02D,gBAAkB,GACvB12D,KAAKg3D,WAAa,IAE1B,EACAhvD,WAAW,EACXjG,MAAM,KCtCqT,M,uBCA9F,GAAe,KCOpP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCpBhC,IACI3D,MAAO,CAAC,QAAS,UAAW,WAAY,QACxCmG,WAAY,CAAE0/D,0BAAAA,IACdnlE,QAAS,CACLiS,KAAI,WACA/Q,KAAKgE,MAAM,SAAS,EACxB,ICRiU,MCOrU,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCOhC,IACAO,WAAAA,CAAA2/D,4BAAAA,GAAAjM,uBAAAA,IACA75D,MAAAA,CACAgB,MAAAA,UC5BiS,MCO7R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BD,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,iCAAiC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,0BAA0B,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,yBAA0BK,WAAW,6BAA6B5B,MAAM,CAAC,KAAO,yBAAyB,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IAC92B,EACI3Q,GAAkB,GC0BtB,IACAoG,WAAAA,CAAA2/D,4BAAAA,GAAA/K,oBAAAA,IACA/6D,MAAAA,CACAgB,MAAAA,QACAi3D,KAAAA,OACAhvD,SAAAA,QAEAvI,QAAAA,CACAo6D,aAAAA,SAAAA,EAAAA,GAAA,6IACApqD,IAAA,OACA,+DAFA,EAGA,ICvCgS,MCO5R,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCiGhC,IACAtI,MAAAA,WACA,wCACA,EACApI,MAAAA,CACAyV,cAAAA,OAEAjV,KAAAA,WACA,OACA28D,eAAAA,KACAqB,sBAAAA,EACAxG,4BAAAA,EACA+N,kBAAAA,EACAb,mBAAAA,EACA3G,mBAAAA,EAEA,EACAp4D,WAAAA,CACA6/D,0BAAAA,GACAlJ,yBAAAA,GACAE,2BAAAA,GACAiJ,+BAAAA,GACAC,gCAAAA,GACAjJ,iCAAAA,IAEA34D,UAAAA,EAAAA,EAAAA,GAAAA,CACA6gE,qBAAAA,WACA,oCACA,IACAn1C,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAkzC,mBAAAA,SAAAA,GACA,IACA,uCACA,8CACA,EACA+jB,uBAAAA,WACA,oCACA,EACAkG,sBAAAA,SAAAA,GACA,sBACA,wBACA,EACArG,cAAAA,SAAAA,GACA,sBACA,4BACA,EACA+F,oBAAAA,SAAAA,GACA,sBACA,kCACA,EACA3L,mBAAAA,SAAAA,GACA,sBACA,yBACA,IC1KoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBiO,W,IAAgBrpD,EAAG,K,EAAW,QAAW,GAAkC,EAAC,kB,SAAC,KAAU5I,CAAAA,EAAIg4D,eAAAA,C,MAAuB,C,MAACrvD,EAAAA,GAAW,4B,QAAc,qC,YAA+B,EAAH,K,yCAAkD7I,EAAAA,+BAAM,C,YAAqB,0B,YAAsB2C,EAAG,K,IAAU3C,Y,YAAc,G,IAAE,OAAC,MAAM,CAACK,EAAG,IAAM,EAAGH,GAAG,CAAuC,mBAAI,OAAO,kBAAM,UAAMuoB,KAAwC,GAACA,CAAAA,EAAAA,EAAAA,EAAWyB,CAAI,OAACtoB,KAAW,KAAgB,mDAAC,KAAa,OAAO,mBAA+B,qBAAQ,EAAI,WAAC8kE,CAAkB,EAA2C,2BAAsC59D,E,OAAc2M,M,2BAAiD,C,aAAmB,EAAC,kB,QAAgB,EAAH,SAAF5S,qB,YAAiC7C,EAAK,GAAC,E,4BAAU,G,MAAK,EAAK,K,MAAqC,SAAC,YAAQ,EAAI,KAAI2C,IAAG,YAA8B,GAAC,YAAC,MAAQ,KAAiB,MAAOzC,CAAAA,EAAI63D,EAAAA,EAAAA,EAAAA,GAAa,CAAM,OAAC,UAAkL,mCAAC,IAAyB,U,CAAoC,gBAAC,IAAIp1D,MAAG,SAAoBA,GAA4M,yBAAC,I,CAA+D,oGAAC,IAAIA,MAAG,SAAoBA,GAAqP,+BAAC,I,CAA0D,kJAAC,IAAIA,MAAG,SAAoBA,GAAsN,iCAAC,I,CAA4D,4LAAC,IAAIA,MAAG,SAAoBA,GAA0J,4BAAQ,IAA8C,2JAAC,IAA6B,kBAAI,8BAAC,IAA4C,mHAACpB,IAAuBkB,MAAQ,K,EAAiBvC,2BAAkB,C,MAAC,CAAC0B,QAAU,EAAC,gBAAe,GAAG,CAAqC5B,QAAM,0BAA0B,MAAC,CAAG,MAAC,aAAC,SAAS,SAAKk4D,GAAuB,cAACx2D,EAAOH,WAAWolE,gB,EAAoCzmE,mCAAiB,C,MAAC,CAAC0B,KAAAA,EAAW,gBAAc,GAAG,CAA+B5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,YAAC,SAAS,SAAKk4D,GAAuB,aAACx2D,EAAOH,WAAWqlE,e,EAAwC1mE,6BAAqB,C,MAAC,CAAC0B,QAAU,EAAC,gBAAkB,GAAG,CAAqC5B,QAAM,0BAA6B,MAAC,CAAG,MAAC,gBAAC,SAAS,SAAKk4D,GAAuB,iBAACx2D,EAAOH,WAAWslE,mB,EAA8C3mE,mCAA2B,C,MAAC,CAAC0B,QAAU,EAAC,gBAAwB,GAAG,CAAkB,QAAC,0BAA+B,OAAI,MAAM,EAAC,oBACx7G,qBACGtB,EAAAA,oBAAoB,CAExB,E,sGCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,gCAAgC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,6BAA6BzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,yBAAyB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,2BAA4BK,WAAW,+BAA+B5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEkd,KAAM,cAAc,MAAQ5c,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IACtwB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA+B9I,EAAM,Q,MAAC,iCAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiBoO,CAAmB,kBAAC,WAAItO,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACtuB,UAGD,E,SCJ8I,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAU,C,MAAI,C,MAAkB,EAAI,GAAG,qC,QAA+G,W,YAA0C,EAAQ,GAAC,E,IAAQ,W,GAAE,WAA2C,mHAACoS,MAAM,CAAM,8CAAK,OAAS,WAA+B,CAAhBtB,EAAAA,GAAM,iC,SAAW,G,KAAmD,U,GAAgB,SAAU9Q,G,IAAU,EAAUA,EAAIc,OAAQ,EAAO,EAACkQ,MAAK,MAAG,sCAAI,OAAU,EAAM,QAAC,QAAC3P,QAAWZ,EAAM,QAAC8B,MAAS,IAA6B,IAAEb,MAAAA,GAAkB,OAAIe,MAAG,QAAgB3C,SAAM,YAAC,QAAa47D,CAAmB,EAA6C,WAAW,U,CAAkB,OAAc,CAAQ,MAAC,CAACl6D,MAAM,sBAACH,SAAW4B,EAAK,0BAACV,SAAS,G,UAAyBynB,GAAG,MAAC,cAAkB,OAAIvnB,MAAG,OAAc3C,SAAM,YAAC,OAAYsR,CAA0B,EAA4D,qBAAsB5O,EAAG,KAAS,C,MAAI,C,MAAkB,EAAI,0B,SAAmB,4C,YAAa,O,IAACmG,S,oBAAuC,CAAC,Q,MAAuB,C,OAAF,I,YAA2C,O,4BAAmB,G,IAAE,OAAE,EAAQ,EAAC7I,MAAoD,wBAAG,OAAO,KAAQE,GAA2D,WAAc,4CAAO,MAAiCuC,CAAAA,EAAQ,OAAC,QAAUynB,GAAG,EAAE,wC,EAA4B,OAAC,KAAiC,OAAIvnB,MAAG,sBAAgB3C,SAAM,YAAC,sBAAoB8mE,CAAY,EAAc,WAAW,yBAAqDplE,EAAK,KAAC,C,MAAM,CAAwBe,MAAQ,CAAC,qB,SAAoBskE,GAAoB,MAAC,sDAA8B,OAAIpkE,MAAG,mBAAgB3C,SAAM,YAAC,mBAAoB8mE,CAAY,EAAc,WAAW,sBAAgDplE,EAAK,KAAC,C,MAAM,CAAmBe,MAAQ,CAAC,qB,SAAoBukE,GAAe,MAAC,iDAAyB,OAAIrkE,MAAG,cAAgB3C,SAAM,YAAC,cAAmB,CAAa,EAAc,WAAW,iBAA6C0B,EAAK,KAAC,C,MAAM,CAAgBe,MAAQ,CAAC,qB,SAAoBwkE,GAAY,MAAC,8CAAsB,OAAItkE,MAAG,WAAgB3C,SAAM,YAAC,WAAa47D,CAAmB,EAAkB,WAAW,cAA0D,QAACl6D,MAAM,CAACH,MAAOrB,CAAG,EAACgnE,OAAS,YAACzkE,KAAQ,W,SAAqBykE,GAAY,MAAC,8CAAsB,OAAI,MAAG,WAC1/E,qBACG5mE,EAAAA,SAAkB,CAEtB,E,oCCAA,IACIC,MAAO,CACHS,QAASqC,QACT9B,MAAOsC,OACP2F,SAAU3F,QAEd+C,MAAK,SAAC6T,GACF,IAAM9Z,GAAQqG,EAAAA,EAAAA,MAAI,GACZ7D,GAAO6D,EAAAA,EAAAA,KAAI,IACX+yD,GAAsB/yD,EAAAA,EAAAA,MAAI,GAC1B+/D,GAAmB//D,EAAAA,EAAAA,KAAI,IACvBggE,GAAchgE,EAAAA,EAAAA,KAAI,IAClBigE,GAAWjgE,EAAAA,EAAAA,KAAI,IACfkgE,GAAWlgE,EAAAA,EAAAA,KAAI,IACfH,GAAUG,EAAAA,EAAAA,KAAIF,EAAAA,EAAAA,MAAaC,WAEjC9C,EAAAA,EAAAA,OACIwW,EAAElZ,OACF,SAACsR,GAAkC,YAC/B,GAAKA,EAOL,OANA1P,EAAK5B,MAAQsR,EAAE1P,KACf42D,EAAoBx4D,MAAQsR,EAAEknD,sBAAuB,EACrDgN,EAAiBxlE,OAAmC,QAA3B,EAAAsR,EAAEs0D,iCAAyB,aAA3B,EAA6BnM,eAAgB,GACtEgM,EAAYzlE,OAAmC,QAA3B,EAAAsR,EAAEs0D,iCAAyB,aAA3B,EAA6BjM,YAAa,GAC9D+L,EAAS1lE,OAAmC,QAA3B,EAAAsR,EAAEs0D,iCAAyB,aAA3B,EAA6BlM,aAAc,GAC5DiM,EAAS3lE,OAAmC,QAA3B,EAAAsR,EAAEs0D,iCAAyB,aAA3B,EAA6Bh8D,QAAS,IAChD,CACX,GACA,CAAEhB,WAAW,EAAMjG,MAAM,IAG7B,IAAM+F,GAAWpF,EAAAA,EAAAA,WAAS,iBAAO,CAC7BoY,KAAM9Z,EAAK5B,MACXk3D,oBAAqBsB,EAAoBx4D,MACzC6lE,0BAA2B,CACvBxO,MAAOsO,EAAS3lE,MAChB+4D,aAAcyM,EAAiBxlE,MAC/Bu3D,UAAWkO,EAAYzlE,MACvBo3D,WAAYsO,EAAS1lE,OAE5B,IAED,MAAO,CACHZ,MAAAA,EACAwC,KAAAA,EACA42D,oBAAAA,EACAgN,iBAAAA,EACAC,YAAAA,EACAC,SAAAA,EACAC,SAAAA,EACArgE,QAAAA,EACAoD,SAAAA,EAER,GCzDqU,M,uBCA9F,GAAe,KCOtP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCpBhC,IACI1J,MAAO,CACHgB,MAAO8B,QACPrC,QAASqC,QACTmG,SAAU3F,OACV20D,KAAM30D,QAEV6C,WAAY,CAAE2gE,4BAAAA,IACdzgE,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACD5zB,EAAO,WAAH,OAAS4zB,EAAK,SAAS,EAAK,EACtC,MAAO,CAAE5zB,KAAAA,EACb,GCbuU,MCOvU,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCfhC,IACIxM,WAAY,CAAE4gE,8BAAAA,GAA+BlN,uBAAAA,IAC7C75D,MAAO,CACHgB,MAAO8B,UCN2T,MCOtU,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B/B,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,gCAAgC,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,+BAA+B,KAAOpc,EAAIs4D,KAAK,UAAU,kBAAOt4D,EAAIsJ,UAAY,CAAC,GAAI,CAAH,GAAGyT,MAAM,EAAMw7C,qBAAqB,KAAQ51D,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAiD,IAAtC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASvI,EAAK,EAALA,MAAOwQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,sBAAsB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,8BAA+BK,WAAW,kCAAkC5B,MAAM,CAAC,KAAO,4BAA4B,OAAO,kBAAME,EAAIs4D,MAASr4D,GAAO,MAAQM,EAAM,MAAQuI,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQ,OAAOrc,EAAIm7D,aAAa9+C,EAAQtL,EAAM,KAAK,IAAI,MAAK,IAC73B,EACI3Q,GAAkB,GCCtB,IACIoG,WAAY,CAAE4gE,8BAAAA,GAA+BhM,oBAAAA,IAC7C/6D,MAAO,CACHgB,MAAO8B,QACPm1D,KAAM30D,OACN2F,SAAU3F,QAEd+C,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDu0B,EAAY,yCAAG,WAAO9+C,EAAatL,GAA0B,uFACzDA,IAAO,OACb61B,EAAK,UAAWvqB,GAAQ,2CAC3B,gBAHiB,wCAIlB,MAAO,CAAE8+C,aAAAA,EACb,GChB0U,MCO1U,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBsDr7D,GAAM,W,IAAC,O,EAAsB,QAAUE,G,OAAY,OAAYqxB,C,MAAc,CAAgB,kBAAkC,QAAUrxB,EAAI6xB,QAAS,QAAY7xB,cAAe,gBAAG,iBAAC,eAAC,qB,YAA2C8xB,EAAAA,Y,GAAqB,C,sBAA0DzV,SAAM,GAAC,gBAAC,E,wBAAoD,YAAC,gBAAC,E,gBAA+CA,SAAM,GAAC,YAAC,E,iBAAiD,SAAO,GAAC,YAAC,E,kBAAmDA,SAAM,iBAAE,EAAC1T,mBAAoB,YAACnG,EAAI,WAAS,CAACoG,G,YAA4F,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,0DAACoG,E,OAAc2M,G,KAA6BzV,Y,YAAc,G,IAAS,S,MAAI,a,MAAC,C,KAAyB,UAAoC,IAAI2C,MAAS,SAAC,GAACC,OAAW,EAAC,qBAAkB1C,IAAyC,WAAI,6BAAmB,YAAkB,oB,QAAoBmxD,e,GAAkD,SAAY,G,IAA2CrxD,EAAM,O,MAAC,UAAS,CAAE,MAAC,sCAAC6I,CAAAA,EAAAA,GAAAA,IAAY3I,EAAM,GAAE,wB,MAAK,CAAY4I,OAAG,I,YAAyBnG,EAAG,K,IAAiB3C,Y,YAAe,G,IAAG,IAAU,G,MAAC,GAAO,IAAM2lE,EAAAA,GAAAA,CAAuC,OAAG9iE,MAASxC,GAAwD,SAAQ,MAAK,wCAAgK,qDAAG,IAAI,UAAmB,gBAAkB,6H,QAAkC,e,GAAuB,SAAC,gBAAI,MAAK,GAAI,qBAAG,mBAE3qDC,IAEJ,MAASgB,I,QCGH,SAAUimE,GAAiCpL,GAC7C,OAAOA,EAAGvgD,eAAiB4rD,GAAAA,SAC/B,CAEA,QACIjnE,MAAO,CACH6nB,MAAO9Q,MACPtW,QAAS,CACLf,KAAMoD,QACN3C,SAAS,GAEbi0C,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,wBAGjBkG,MAAK,SAAC6T,GACF,IAAMsX,GAAW/qB,EAAAA,EAAAA,KAAI,QACfwqB,GAAaxqB,EAAAA,EAAAA,MAAI,GACjBgrB,GAAehrB,EAAAA,EAAAA,KAAI,IAEnBuqB,GAAgB1sB,EAAAA,EAAAA,WAAS,WAC3B,OAAK4V,EAAE2N,MACA3N,EAAE2N,MAAMlP,OAAOquD,IAAkCp4D,KAAI,SAACgtD,GAAwB,MAAM,CACvFn/C,GAAIm/C,EAAG5yD,GACP0T,KAAMk/C,EAAGh5D,KACTwiE,kBAAmBxJ,EAAGgL,0BAChBhL,EAAGgL,0BAA0BxmE,MACjB,oBAAZw7D,EAAGl8D,KACTwnE,QAAStL,EAAGgL,0BACNhL,EAAGgL,0BAA0BnM,cAAgB,kBACjC,oBAAZmB,EAAGl8D,KACH,WACA,kBACNynE,YAAavL,EAAGgL,0BACVhL,EAAGgL,0BAA0BjM,WAAa,kBAC9B,oBAAZiB,EAAGl8D,KACH,WACA,kBACNy8D,UAAWP,EACd,IAlBoB,EAmBzB,IAEA,MAAO,CAAEpqC,SAAAA,EAAUP,WAAAA,EAAYQ,aAAAA,EAAcT,cAAAA,EACjD,EACA1sB,SAAU,CACNrD,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,uCACd/P,MAAO,UACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,2CACd/P,MAAO,cACPswB,UAAU,GAEd,CACI5vB,KAAM,UACNV,MAAO,UACPswB,UAAU,GAGtB,GAEJ5wB,QAAS,CACL07D,mBAAkB,SAAClnD,GACf,IAAM8gD,EAA6C,CAC/CP,aAAcF,GAAAA,8BACdlqD,SAAU,KACV2P,eAAgB9F,EAAKuH,IAGzB,OADA+4C,KAAiCE,uBAAuBM,GACjDp0D,KAAKmR,QAAQxT,KAAK,GAAD,OAAIqC,KAAKwyC,YAAW,YAAIl/B,EAAKuH,IACzD,ICvF2T,M,sBCA9F,GAAe,KCQhP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCNhC,IAAevW,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,WACD,OAAOxG,KAAKmP,GAAG,2BACnB,EACA/Q,MAAO,CACHyV,cAAesB,OAEnB5Q,WAAY,CACRihE,sBAAAA,GACAC,6BAAAA,GACAC,iCAAAA,GACAxK,yBAAAA,GACAE,2BAAAA,GACAC,iCAAAA,IAEJ52D,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDre,GAAazhB,EAAAA,EAAAA,MAAI,GACjB2/D,GAAY3/D,EAAAA,EAAAA,MAAI,GAChB4/D,GAAgB5/D,EAAAA,EAAAA,MAAI,GACpB6/D,GAAsB7/D,EAAAA,EAAAA,MAAI,GAC1B8gE,GAAa9gE,EAAAA,EAAAA,MAAI,GACjB02D,GAAiB12D,EAAAA,EAAAA,KAAiC,MAElD0/D,GAAoB7hE,EAAAA,EAAAA,WAAS,WAC/B,OAAO4V,EAAEzE,cAAckD,OAAOquD,GAClC,IAEMrP,EAAyB,WAC3BpxB,EAAK,yBACT,EAEMixB,EAAgB,SAAC2D,GACnBgC,EAAen8D,MAAQm6D,EACvBkL,EAAcrlE,OAAQ,CAC1B,EACM68D,EAAwB,SAAC1C,GAC3BgC,EAAen8D,MAAQm6D,EACvBiL,EAAUplE,OAAQ,CACtB,EACM4wD,EAAqB,SAACuJ,GACxBgC,EAAen8D,MAAQm6D,EACvBoM,EAAWvmE,OAAQ,CACvB,EACMu8D,EAAsB,SAACpC,GACzBgC,EAAen8D,MAAQm6D,EACvBmL,EAAoBtlE,OAAQ,CAChC,EAEA,MAAO,CACHknB,WAAAA,EACAk+C,UAAAA,EACAC,cAAAA,EACAC,oBAAAA,EACAiB,WAAAA,EACApK,eAAAA,EACAgJ,kBAAAA,EACAxO,uBAAAA,EACAH,cAAAA,EACAqG,sBAAAA,EACAjM,mBAAAA,EACA2L,oBAAAA,EAER,EACAj5D,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACLkzC,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,uBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,4BAC1B,EACA2sD,iBAAgB,SAACxoD,GACb,IAAMyoD,EAA4C,CAC9ClI,aAAcF,GAAAA,kBACdlqD,SAAU,KACV2P,eAAgB,MAEpBw6C,KAAiCE,uBAAuBiI,GACxD,IAAMvsD,EAAM,uBAAH,OAA0B8D,EAAK8F,gBACxCpZ,KAAKmR,QAAQxT,KAAK6R,EACtB,KClGuS,M,uBCAxF,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2R,W,IAAgB7I,EAAG,K,EAAW,QAAW,GAASlG,EAAAA,MAAY,Y,SAAO5C,GAAAA,EAAM,mB,oBAAqB,U,MAAe,8B,QAAI,6E,YAA6B,EAAC+nE,GAAAA,CAAAA,C,uBAAgB,WAAC,MAAM,OAAS,CAAC/nE,YAAM,O,MAAC,CAAS,kBAAIE,UAAa,IAAyBoS,GAAM,CAAM,kBAAO,aAAqC,IAA4C,GAAQpS,EAAAA,EAAI8nE,CAAoB,OAACn/D,KAAe,KAA4B,eAAkB,kB,SAAC,M,iCAAyD,C,eAAoB,EAAH,SAAFhG,oB,MAAM,uB,cAAkC,GAAM,E,+BAAU,G,IAAwC,S,MAAI,GAAI,KAAK,CAAE,YAAa,EAAEF,GAAG,EAAiB,IAAC,YAAC,YAAQ,GAAiB,MAAOzC,EAAI63D,GAAmB,mBAAC,OAAO,UAA4K,GAAQ,UAASx7C,GAAAA,gBAAO,G,IAAqC,UAAC,iBAAE,GAAI,CAAmPvc,MAAM,YAAC,OAAI,kBAA6C,IAA8O6C,CAAE,EAAC,kG,GAAC,C,MAAgC3C,SAAIiyD,GAAwB,+BAAC,IAAqL,2KAAI,MAAK,CAAYxvD,GAAG,uBAAc,2BAAa,GAAEzC,GAAAA,EAAa,mJAACuC,GAAQ,CAAqBslE,MAAQ,SAAI,GAAC,8BAACnmE,IAA4B,kBAAmC,iGAAC5B,IAAO,YAAqD,KAAO,cAAC,C,MAAwB,CAA2F,iBAAC6I,SAAW,SAAS,GAACnG,EAAI,SAAS,CAACoG,E,WAAc9H,a,sCAAqB,C,MAAI,C,QAA6B,yC,MAAC,wB,SAA6B+mE,iF,YAAiB,O,IAAG,U,GAA4B/nE,SAAM,G,IAAC,EAAQ,U,EAAY,EAAO,K,EAAe,EAACgR,O,MAAO,iBAAiB,C,GAAC,CAAmB,eAAY,GAAG,aAAG,K,EAA2BuL,GAAAA,GAAOhK,EAAAA,EAAAA,EAAAA,C,MAAiB,CAAoC,kBAAC,cAAI5P,KAAG,EAAU3C,QAAM,EAAC,SAAO,EAAE,cAA4C,IAAG,kBAAgD,OAArC,mBAAqC,wBAAC,IAAiC,QAAC,MAAUE,CAA2B,UAAa,GAAK,GAAC4nE,UAAW,qBAACrlE,QAA4C,oC,MAACb,CAAuB,0BAAyC5B,GAAAA,CAAO,QAAUE,EAAIw9D,wBAAgB76D,MAAG,CAAC,QAAU3C,WAA2B,qBAACwB,EAAM,YAACH,EAA0BkB,WAAS,gBAAqC,EAAC,kC,MAACb,CAA0B,0BAA+C5B,GAAAA,CAAO,QAAUE,EAAIw9D,wBAAgB76D,MAAG,CAAC,QAAU3C,cAA2B,qBAACwB,EAAM,eAACH,EAAuCkB,WAAS,mBAAkD,EAAC,wC,MAACb,CAAuC,0BACpgH,IACGtB,QAAAA,EAAe,wB,sKCFyBqC,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAsB,oB,OAAC,OAAc3B,C,MAAQ,CAAsB,QAAQd,EAAIkoB,QAAM,QAAU,EAAC,QAAO,cAAkC,WAAUloB,OAAa,iBAAgBsxB,EAAAA,aAAW,qBAAG,YAAC,c,GAAwCtxB,CAAuB,sBAAC,YAAC,gB,EAAgE,wBAAC,YAAC,eAAgB,C,EAAoC,gBAAC,YAAC,WAAgB,C,EAAqC,iBAAC,YAAC,WAAiB,C,EAAuC,kBAAC,YAAC,aAAkB,C,EAAuC,+BAAE,cAAC2I,G,YAAsC,KAAU,E,IAAC,UAA0E,GAAC,WAACyJ,MAAM,6DAAK,EAAE5P,OAAG,GAAgBoG,C,IAAqB,e,GAAC,SAAc,G,IAAsB,EAAO2M,EAAAA,KAAI,MAAG,oCAAgB,IAC53B,UAGD,E,MCAM,SAAUwyD,GAA8B9L,GAC1C,MAAmB,WAAZA,EAAGl8D,IACd,CAEA,QAAewG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH6nB,MAAO9Q,MACPtW,QAASqC,QACTsxC,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,qBAIjBkG,MAAK,WACD,IAAMpF,GAAUwF,EAAAA,EAAAA,KAAI,CAChB,CAAE/E,KAAM,OAAQV,MAAO,OAAQswB,UAAU,GACzC,CAAE5vB,KAAM,UAAWV,MAAO,UAAWswB,UAAU,KAGnD,MAAO,CACHrwB,QAAAA,EACAuwB,SAAU,OACVP,YAAY,EACZQ,aAAc,GAEtB,IC9BkU,M,uBCA9F,GAAe,KCOnP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCRhC,IAAevrB,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRwhE,yBAAAA,GACAC,6BAAAA,GACA9K,yBAAAA,GACAE,2BAAAA,GACAC,iCAAAA,IAEJj9D,MAAO,CAAEyV,cAAesB,OACxB1Q,MAAK,SAACrG,EAAO,GAAQ,IAANumC,EAAI,EAAJA,KACLihC,GAAW/gE,EAAAA,EAAAA,MAAI,GACf4/D,GAAgB5/D,EAAAA,EAAAA,MAAI,GACpBuxD,GAA6BvxD,EAAAA,EAAAA,MAAI,GACjC8gE,GAAa9gE,EAAAA,EAAAA,MAAI,GACjBkxD,EAAyB,WAAH,OAASpxB,EAAK,yBAAyB,EAC7D42B,GAAiB12D,EAAAA,EAAAA,KAA+B,MAChDghE,GAAsBnjE,EAAAA,EAAAA,WAAS,WACjC,OAAQtE,EAAMyV,eAAkB,IAA6BkD,OAAO+uD,GACxE,IACMG,GAAsBv+C,EAAAA,GAAAA,IAAQ,6BAA4B,yCAAE,WAAkB5f,GAAa,uFACvF2H,EAAAA,EAAAA,KAAAA,KAAgB,8BAA+B,CACjD3R,KAAM,SACNkD,KAAM8G,EAASgT,OACjB,OACFi7C,IACA6P,EAASxmE,OAAQ,EAAM,2CAC1B,SAPgFuH,EAAG,GAAD,sCAAFA,CAAE,CAAnB,IAQ1DivD,EAAgB,SAAC2D,GACnBgC,EAAen8D,MAAQm6D,EACvBkL,EAAcrlE,OAAQ,CAC1B,EACM4wD,EAAqB,SAACuJ,GACxBgC,EAAen8D,MAAQm6D,EACvBoM,EAAWvmE,OAAQ,CACvB,EACMu8D,EAAsB,SAACpC,GACzBgC,EAAen8D,MAAQm6D,EACvBnD,EAA2Bh3D,OAAQ,CACvC,EACM0rB,EAAcU,KACpB,MAAO,CACHq6C,oBAAAA,EACAD,SAAAA,EACAK,oBAAAA,EACAxB,cAAAA,EACArO,2BAAAA,EACAuP,WAAAA,EACApK,eAAAA,EACAxF,uBAAAA,EACAH,cAAAA,EACA+F,oBAAAA,EACA3L,mBAAAA,EACAllC,YAAAA,EAER,ICpEwS,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBmH,W,IAAiC,OAA4C,EAAC,WAACpkB,EAAY3I,MAAM,Y,OAAM,EAAC,QAAe,gB,MAAI,C,MAAkB,EAAI,4B,QAAe2I,EAAW,GAAC3I,6B,YAA4B,O,yCAA4C0C,EAAAA,cAAY,C,YAAa,O,mBAAoB,YAAC,IAAEC,EAAKF,EAAG,G,MAAe,GAAC,U,YAAQ,OAAE,OAAIzC,MAAO,cAAgC,WAAI,MAAC,CAAa,UAAoB,GAAQyC,GAAG,wBAAmB,G,8BAAoE,G,IAAiD,U,MAACkG,CAAAA,EAAAA,mBAAoB,C,MAAK,CAAUC,MAAG,e,MAAW3I,iB,SAAa,iD,YAAkB,EAAD,IAAN6Q,C,IAAU,U,GAA0BnO,SAAG,G,IAAC,EAAO,EAAC,K,EAAiB,EAAY,Q,EAAE,UAAC,WAAC,MAAM,iBAAe,CAAS7C,GAAAA,CAAO,MAAQ,SAAW,GAAC,OAAOgR,GAAO,KAAiD,eAACnO,MAAG,CAAC,MAAQ,Y,KAAqBwlE,E,UAAiCp3D,GAAO,E,QAAC,GAAC,IAAI/Q,MAAO,SAAc,yCAAS,OAAI,GAAI,OAAW,oBAAM,IAA+B,MAAC,KAAuC,KAA8B,OAAI,wBAAC,qBAAO,mBAAM,EAAO,gCAAoG0C,EAA0B1C,OAAO,MAAmD,CAACA,EAAG,KAAI,WAAqByC,CAAE,EAAC,KAAK,SAACC,YAAY,aAAa,CAAC1C,EAAIG,GAAG,UAAW,EAAG,KAAK,CAAiD,YAAU,a,CAAMqC,EAAG,GAAC+S,iBAAKtS,EAAAA,KAAAA,CAAI,YAAW,a,CAAuGnD,EAAAA,GAAM,6B,YAASyV,a,GAAa,oBAAc,EAAIA,QAAK6yD,CAAAA,EAAAA,GAAAA,EAAe,qBAAmB,G,OAAC,Q,IAAsB,EAAO,M,CAAuB,QAAU,EAAC,mFAAiF,MAAC,CAAG,MAAC,UAAC,eAAQ,UAAS/rD,EAAM,gBAAC,qB,cAAYgsD,QAAgC,kCAAC,4FAA6BvoE,GAAAA,CAAO,MAAO,YAAG,gCAAG,M,GAA2B,OAAWizD,CAAAA,EAAAA,EAAAA,EAAAA,C,MAAwB,CAAC,SAAkDjzD,GAAAA,CAAO,MAAO,YAAG,8BAAG,I,GAA2B,IAAOE,CAAAA,EAAIm1D,GAAAA,WAAAA,GAAqB5/C,EAAAA,EAAAA,EAAK,C,MAAA,CAAC,SAAiDvV,GAAI6zD,CAA2CnxD,MAAY,SAAa,GAAM,OAAC,yBAAC,IAAiB1C,CAAAA,EAAIG,EAAAA,EAAG,mBAA2B,IAAI,I,IAAsD,IAApBwI,EAAAA,WAAgByH,OAAI,gB,YAAK,c,MAAa,C,QAAgB,M,GAAmCtQ,GAAAA,gCAAM,8B,YAAC,EAAQE,GAAG,CAACsoE,C,0BAA+C,G,IAAyC,U,MAAC3/D,CAAAA,EAAAA,mBAAoB,C,MAAK,CAAUC,MAAG,a,MAAW3I,kB,SAAa,yC,YAAkB,EAAD,IAAN6Q,C,IAAU,U,GAA0BnO,SAAG,G,IAAC,EAAO,EAAC,K,EAAiB,EAAY,Q,EAAE,UAAC,WAAC,MAAM,iBAAe,CAAS7C,GAAAA,CAAO,MAAQ,SAAW,GAAC,OAAOgR,GAAO,KAAiD,eAACnO,MAAG,CAAC,MAAQ,Y,KAAqB4lE,E,UAA0Dx3D,GAAO,E,QAAC,GAAC,IAAI/Q,MAAO,SAAc,6DAAS,OAAI,GAAI,OAAW,oBAAM,IAA8B,MAAC,KAAsC,KAA6B,OAAIyC,MAAG,iBAAsB3C,SAAM,YAAC,iBAAqBwoE,CAAW,EAA0B,+BAA2D,EAAC,sB,MAAC,C,eAAsCE,EAAAA,WAAe,wBAAE,uD,GAAQnnE,CAA4BkB,QAAS,SAAUynB,GAAMhqB,OAAIyoE,EAAAA,eAAmB,GAA8B,OAAI,MAAM,EAAC,gBACh9G,qBACGroE,EAAAA,gBAAoB,CAExB,E,+CCJ4D,GAAU,W,IAAaN,EAAM,K,EAAC,EAAO,MAAK2I,G,OAAM,cAAeC,C,MAAS,CAAsB,cAACC,SAAY3I,EAAIoQ,SAAK5N,QAAI,EAAS,S,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAUhR,EAAIS,OAAM,EAAO,EAACuQ,M,MAAM,GAASF,GAAAA,UAAM,MAAC,QAAU9Q,EAAIc,MAAQ,MAAO,E,OAAQd,E,QAAgBmU,EAAanU,QAAsB,MAAI,qDAAsBqB,IAAkBkB,MAAQ,G,MAAoB,CAAU,MAAC,QAACb,SAAU,SAAC,GAAO,SAAIe,EAAmB3C,WAAM,U,CAAiC,Q,MAAqB,CAAuB,OAAU,EAAC,mBAAG,qBAAC0B,MAAM,aAACH,SAAW4P,I,MAAwC,CAAe,MAAC,aAACvP,SAAU,SAAC,GAAY,cAAIe,EAAiB3C,WAAM,gBAAiC,Q,MAAqB,CAA8B,OAAU,EAAC,mBAAG,qBAAC0B,MAAM,oBAACH,SAAWqnE,I,MAA+C,CAAsB,MAAC,oBAAChnE,SAAU,SAAC,GAAmB,qBAAI,EAC/7B,mCAGD,E,QCyBA,IACArB,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,CACAN,SAAAA,EACAT,KAAAA,SAEA0I,MAAAA,CACAjI,QAAAA,cACAT,KAAAA,QAEA2I,SAAAA,CACAlI,QAAAA,6CACAT,KAAAA,SAGAc,KAAAA,WACA,OACAJ,OAAAA,EACAwQ,WAAAA,GACAy3D,kBAAAA,GAEA,EACA3kE,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,2BACA,yCACA,EACAgG,WAAAA,KC3DyQ,MCOrQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBmFnK,GAAM,W,IAAC,O,EAAwC,EAAO,MAAKmV,GAAY,EAAU,MAAG,Y,OAAC,OAAiB,C,MAAC,CAAgB,gCAAG,MAAC,YAAC,SAAQ,G,MAAwBjV,EAAIgT,MAAM,eAAGrK,GAAAA,CAAqBnG,MAAI,SAAc,GAAG,OAAC,Q,eAA8D,O,uCAAgC,iBAAmB,C,YAAe,O,mBAAkB,YAAC,IAAEG,EAAK3C,EAAIG,GAAa,mBAAG,OAAK,MAAS,UAAuB,GAAR4Q,CAAK,e,8BAA+D,G,IAAc,U,MAACpI,CAAAA,EAAAA,YAAoB,C,MAAK,CAAUC,MAAG,Q,SAAiB,Y,YAAiC,O,0BAAiCmI,G,IAAO,W,MAAC,kBAAG,GAAG,CAA2B,MAAC,YAAC,OAAQ,G,KAAsC,eAAE,GAAI,CAAWjR,MAAM,YAAC,OAAO,WAAE,IAAoDA,CAAAA,EAAK,IAAC,C,MAAC,CAAoB,KAAOgR,KAAyD,wCAACnO,MAAG,CAAC,MAAQ,Y,KAAuB,E,UAA0BkM,EAAK,+B,GAAkB,CAAC,kBAAC,mBAAM,IAAC,MAAS,WAAM,OAAC,UAAC,GAAS,IAA4C,QAAI,MAAK,CAAY,UAAqBtM,CAAAA,EAAS,eAAUynB,GAAG,aAAE,G,IAAiB,S,MAACtoB,CAAoB,gBAAG1B,SAAYkoB,SAAgB3S,GAAQ,EAAO9S,QAAG,CAAgBD,EAAM1C,WAAM,Y,EAAwB,KAAO,OAAK6oE,SAAU,EAAM,G,OAAC,OAAY,CAAE,IAAC,EAAChgE,MAAAA,CAAqBnG,MAAI,EAAQ,WAACoG,MAAG,cAAU,G,UAAY,I,YAAgB,EAAO,K,IAAG,S,GAACjG,W,MAAI,GAAO,IAAC,C,MAAiB,CAAwB,SAAG,GAAI,CAAmC,kBAAO,sBAAW,IAAmB,GAAE4S,EAAAA,EAAKlU,CAAM,qBAACkB,E,OAA6BgvB,IAAyB,S,MAAC7vB,CAAuB,cAAG,qBAAM,qBAAI,0BAA2Ba,IAAAA,G,WAAyCb,CAAmB,eAAI,qBAAC,UAAM,EAAO,uBAE7yDtB,EAEJ,OAASgB,M,QCGT,IAAemF,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLy0B,YAAazxB,OACbhC,MAAO+V,MACPsQ,MAAOrkB,OACPulE,WAAYvlE,OACZ4f,IAAK3f,OACLkf,IAAKlf,OACLmF,MAAOpF,OACPqF,SAAUrF,OACV4R,MAAOmC,MACPuxD,WAAYvxD,OAEd1Q,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACHiiC,GAAWlkE,EAAAA,EAAAA,WAAS,WAAK,MAC7B,OAAc,QAAP,EAAA4V,EAAElZ,aAAK,OAAP,EAAS8W,OAASoC,EAAElZ,MAAM2Y,KAAK,KAAO,EAC/C,IACMkO,GAAQphB,EAAAA,EAAAA,KAAsB,IAC9B+xC,GAAS/xC,EAAAA,EAAAA,MAAI,GACbgC,GAAUhC,EAAAA,EAAAA,MAAI,GACdkM,EAAO,WACP6lC,EAAOx3C,QACXw3C,EAAOx3C,OAAQ,EACjB,EACM0P,EAAQ,WACP8nC,EAAOx3C,QACZw3C,EAAOx3C,OAAQ,EACjB,EACMynE,EAAa,SAAC3tD,GAClB+M,EAAM7mB,MAAM+0B,OAAOjb,EAAG,GACtB+M,EAAM7mB,OAAQ,QAAI6mB,EAAM7mB,MAC1B,EACM0nE,EAAU,WACd7gD,EAAM7mB,MAAMzB,KAAK,CAAEyB,MAAO,IAC5B,EACML,EAAS,WACb4lC,EACE,QACA1e,EAAM7mB,MAAM4N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,IAElC,EACM2nE,GAAoBrkE,EAAAA,EAAAA,WAAS,WACjC,QAAI4V,EAAE0I,KAAOiF,EAAM7mB,MAAM8W,OAASoC,EAAE0I,QAChC1I,EAAEiI,KAAO0F,EAAM7mB,MAAM8W,OAASoC,EAAEiI,IAEtC,IASA,OARAze,EAAAA,EAAAA,QACE,kBAAMwW,EAAElZ,KAAK,IACb,SAACsR,GACMA,GAAMA,EAAEwF,OACR+P,EAAM7mB,MAAQsR,EAAE1D,KAAI,SAAC5N,GAAa,MAAM,CAAEA,MAAAA,EAAO,IADjC6mB,EAAM7mB,MAAQ,CAAC,CAAEA,MAAO,IAE/C,GACA,CAAE4I,WAAW,EAAMjG,MAAM,IAEpB,CACL6kE,SAAAA,EACAhwB,OAAAA,EACA/vC,QAAAA,EACAof,MAAAA,EACA8gD,kBAAAA,EACAD,QAAAA,EACAD,WAAAA,EACA9nE,OAAAA,EACAgS,KAAAA,EACAjC,MAAAA,EAEJ,ICzE8S,MCO5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCVhC,IAAexK,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,WACD,MAAO,QACX,EACAjC,WAAY,CACRyiE,iBAAAA,GACAp+C,mBAAAA,GACAq+C,eAAAA,IAEJroE,KAAI,WACA,MAAO,CACHgzD,WAAY,GACZsV,aAAc,CAAElmE,KAAM,GAAIkR,YAAa,IACvCm0D,WAAY,CAAEj/D,GAAI,GAAIpG,KAAM,GAAIkR,YAAa,IAC7Ci1D,iBAAiB,EACjBC,gBAAgB,EAChBZ,iBAAiB,EAEzB,EACA1nE,QAAS,CACLynE,eAAe7+C,EAAAA,GAAAA,IAAQ,iBAAe,uBAAE,oGACZjY,EAAAA,EAAAA,KAAAA,IAAe,0CAA0C7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAApGoB,KAAK4xD,WAAa,EAAH,sDAEnBsU,iBAAiBx+C,EAAAA,GAAAA,IAAQ,oBAAmB,yCAAE,WAAgB1pB,GAA2C,uFAC/FyR,EAAAA,EAAAA,KAAAA,KAAgB,yCAA0CzR,GAAK,OACrEgC,KAAKumE,gBAAgB,gDACxB,mDAH2C,IAI5CD,eAAe5+C,EAAAA,GAAAA,IACX,mBAAkB,yCAClB,WAAgBtgB,EAAYpJ,GAA2C,uFAC7DyR,EAAAA,EAAAA,KAAAA,IAAe,0CAAD,OAA2CrI,GAAMpJ,GAAK,OAC1EgC,KAAKumE,gBAAgB,gDACxB,qDAJiB,IAMtBzV,mBAAkB,SAACuW,GACfrnE,KAAKonE,gBAAiB,EACtBpnE,KAAKqmE,WAAagB,CACtB,EACAnU,qBAAoB,SAACmU,GACjBrnE,KAAKwmE,iBAAkB,EACvBxmE,KAAKqmE,WAAagB,CACtB,EACMjB,mBAAkB,SAACiB,EAAezjD,GAAe,6IAC7CnU,EAAAA,EAAAA,KAAAA,IAAe,0CAAD,OAA2C43D,EAAUjgE,GAAE,UAAUwc,GAAO,OAC5F,EAAK2iD,gBAAgB,0CAF8B,EAGvD,GAEJxmE,QAAO,WACHC,KAAKumE,eACT,ICzDwS,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2O,W,MAAW,K,IAAqB1oE,MAAM,G,SAAC,WAAW,2B,YAAG,O,MAAC6I,C,MAAwB,EAAC,wB,QAAe,8B,YAAe7I,EAAK,K,yCAAyDA,EAAAA,GAAAA,EAAM,C,kBAAqB,I,YAAiB,EAAQA,GAAAA,CAAK,C,IAA0BA,Y,YAAc,G,IAAE,OAAE,EAAQ,EAAC,MAAuE,wBAAG,mBAAO,MAAQ,CAAuB,kBAAC,UAAQ,KAAgD,yBAAC,OAAO,UAAoI,GAAQ,cAASuc,GAAM,IAAC,+C,MAAgC,iBAAE,GAAI,CAAyI,kBAAO,6BAAM,IAAkB,QAAU,0EAAC,IAA2B,kBAAO,4BAAW,IAAiC,mGAAC,EAAsB,UAAmC,CAAC1T,IAAAA,UAAqBnG,GAAG,WAAe,MAAC,iB,SAAmB,I,MAAkC1C,I,iBAAkB,C,MAAG,C,MAAC6I,EAAAA,U,QAAyB,WAAW,a,YAAoB,EAAH,K,4BAAoC,G,MAAE,EAAM,K,OAAG,OAAi3CksD,EAAAA,OAAAA,CAAAA,EAAAA,GAAAA,SAAj3C,Q,MAAGlyD,CAA4C,eAAe,YAAY,EAAK,KAAqB7C,IAAM,YAAC,YAAQ,GAAE,WAAMyV,MAAKs9C,CAAAA,EAAAA,EAAAA,EAAAA,EAAe,GAAI,CAAmB,OAAC,KAAQ,KAAkD,mCAAC,IAAM,MAAC,IAA4KlwD,CAAG,SAAD,EAAC,a,MAAC,C,MAAgC3C,KAA6B,mBAA+O,OAA/O,QAAE,GAAI,CAAuKF,MAAM,YAAC,OAAQ,qBAAE,IAA8C6C,CAAE,EAAC,6F,GAAC,C,MAAgC3C,SAAI+yD,GAAwB,8BAAC,IAAmLpwD,CAAE,EAAC,qG,MAAC,C,MAAgC3C,KAA+B,mBAA4Q,OAA5Q,QAAE,GAAI,CAAyL,kBAAS,OAAI,uBAAS,IAA8C,QAAS,wFAAI,IAAW+Q,MAAK,YAAI,OAAW,uBAAgB,EAACjR,I,CAA4C,OAAY+0D,CAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,aAAAA,GAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,GAAAA,eAAAA,IAAAA,IAAAA,IAAAA,G,UAAYlsD,M,IAAqBnG,GAAG,EAAC,cAAS,C,YAAI,O,0BAAuB,G,MAAEsG,EAAO,M,OAAEvI,EAAAA,gBAAM,C,MAAG,C,QAA6B,yB,MAAC,EAAO,Y,YAAgC,O,IAAC,U,GAAG,SAAI,G,IAAoDgc,EAAAA,EAAY,K,EAAM,S,EAAoB,EAAC,Q,EAAoB,EAAE,M,MAAc7a,CAAAA,EAAAA,cAAW,CAAc,GAAE,CAAC5B,MAAM,YAAC,OAAQG,GAAK,KAA8B,QAAa,aAAsQ,uBAAa,C,WAAUD,CAAAA,CAAW,kBAAG,QAAC,eAAC,mB,WAAmC6O,iBAAmB,OAAI,gBAAQ,MAAK,EAAI,wBAAW,IAAY8mB,QAAQq9B,SAAmB,GAAU,WAAa,SAAYhzD,KAA7c,qB,WAAUA,CAAAA,CAAW,kBAAG,QAAC,eAAC,mB,WAAmC6O,iBAAmB,OAAG,MAAI,EAAsB0N,MAAU,EAAGtZ,MAAK,EAAauZ,KAAO,EAAgBnb,OAAO,UAAuC,GAAE,CAACvB,QAAM,YAAC,IAAQG,KAAI,WAAC,KAAqT,IAAO,WAAoCuC,K,MAAoC,C,MAAC,EAAQC,QAAG,mB,SAAoC,SAAC,G,EAAC,OAAQzC,QAAI80D,qBAAe,E,aAA2C,gC,gBAAoE,C,YAAS,O,IAAK,U,GAACnsD,SAAW,G,IAAUnG,EAAI,EAAS,M,MAAG,CAAC,gCAA4C,C,MAAA,C,MAA3BsO,EAAM,gB,QAAS,QAAPhQ,GAAAA,mB,OAASgI,EAAO,W,SAAc,EAAC,gBAAc,C,SAAI,G,kBAAwC,O,IAAC,U,GAAG,SAAI,G,IAAwBhJ,EAAM,O,EAAQ,EAAC,O,EAAiB,U,EAAgBgR,EAAM,Q,MAAC,iBAAkB,C,GAAa,CAAkB,kBAAI,UAAC,KAAoE,eAAC,OAAIrO,MAAG,UAAU3C,KAAM,SAAC,KAAO,EAAE,eAAIE,QAAO,GAAoC,GAAK,CAAQ,mDAAI,IAAmB21B,CAAAA,EAAAA,EAAAA,EAAQq/B,CAAiC,OAAyBh1D,KAAI21B,KAAmD,CAAC,mCAAgC,IAAO,WAAoCnzB,K,MAAoC,C,MAAC,EAAQC,QAAG,uB,SAAyB,SAAC,G,EAAC,OAAS,QAAK0Z,yBAAsB,E,aAA0B,oC,gBAA+F,C,YAAK,O,IAACxT,U,YAAyB,G,IAAUC,EAAG,Q,MAAoC,GAAzBE,mBAAAA,C,MAASgI,C,QAAa,QAALvQ,GAAK,c,MAAW,EAAI,a,MAAkB,8B,SAAC,EAAQ,+B,QAAiB,G,YAAe,O,IAAG,U,GAAyCgc,SAAW,G,IAAEtZ,EAAK,U,EAAoB,EAAC,O,EAAoB,EAAE,M,MAAcvB,CAAAA,EAAAA,cAAW,CAAc,GAAE,CAAC5B,MAAM,YAAC,OAAQE,GAAiB,KAA8B,QAAO8Q,EAAM,sB,WAAU9Q,CAAAA,CAAW,kBAAG,QAAC,eAAC,mB,WAAmC6O,iBAAmB,OAAI,6BAAQ,MAAK,EAAI,wBAAW,IAAY8mB,QAAQw9B,SAAW,GAAU,WAAa,SAAYnzD,KAAgE,IAAO,WAA6B,K,MAAiE,CAAiE,2BAAG,SAAC,YAAC,OAAU,uBAAgB,E,EAAsB,mCAAGwB,EAAK,qBAAC,C,MAAM,CAA+Be,eAAS,oB,WAA4B,aAAiC,YAAC,oDAAqC,IAAI,QAAG,YACn0L,mBACGnC,G,sJC+LJ,IACAqI,MAAAA,SAAAA,GACA,gCACA,EACAjC,WAAAA,CACA4tD,YAAAA,GACAC,WAAAA,GACAC,cAAAA,GACAC,iBAAAA,GACAC,iBAAAA,GACAC,eAAAA,GACAC,4BAAAA,GACA7pC,mBAAAA,IAEAhqB,KAAAA,WACA,OACAozB,GAAAA,KACA2/B,MAAAA,GACAC,WAAAA,GACAc,sBAAAA,GACAC,aAAAA,KACAC,WAAAA,KACAC,gBAAAA,KACAC,kBAAAA,KACAp/B,QAAAA,CACAw9B,YAAAA,EACAH,oBAAAA,EACAgC,wBAAAA,EACA5B,iBAAAA,GAEAtmB,OAAAA,qCAEA,EACAnoC,SAAAA,CACAswD,UAAAA,WACA,gDACA,GAEAl0D,QAAAA,CACA6xD,mBAAAA,WACA,qBACA,kCACA,EACAsC,kBAAAA,WACA,0BACA,sCACA,EACAnC,mBAAAA,SAAAA,GACA,sBAAAE,QAAAA,EAAAA,GAAA/kC,YAAAA,EAAAA,aACA,sCACA,EACA+jC,mBAAAA,SAAAA,GACA,oBACA,0BACA,EACAa,iBAAAA,SAAAA,GACA,kBACA,kCACA,EACAqC,qBAAAA,SAAAA,GACA,yBACA,+BACA,EACAjC,oBAAAA,SAAAA,EAAAA,GAAA,6IACAxhD,EAAAA,EAAAA,KAAAA,IACAi8C,mDAAAA,OAAAA,EAAAA,SAAAA,EAAAA,aACA9+C,MAAAA,SAAAA,GAAA,wBACA,aACAkC,IAAA,0CALA,EAMA,EACAqkD,UAAAA,EAAAA,GAAAA,IAAAA,YAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,qGACA7tD,QAAAA,IAAAA,CACAmK,EAAAA,EAAAA,KAAAA,IAAAA,uCAAAA,MAAAA,SAAAA,GAAA,iBACAA,EAAAA,EAAAA,KAAAA,IAAAA,0CAAAA,MAAAA,SAAAA,GAAA,iBACAA,EAAAA,EAAAA,KAAAA,IAAAA,mDAAAA,MAAAA,SAAAA,GAAA,mBACA,gCAJAkiD,EAAAA,EAAAA,GAAAC,EAAAA,EAAAA,GAAAwB,EAAAA,EAAAA,GAMA,aACA,kBACA,gFAGArzD,QAAAA,WACA,eACA,GCrRkQ,M,uBCA/C,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBiN,GAAK,W,IAAuBlC,EAAM,K,EAAC,QAAW,G,OAAG,EAAM,KAAG,S,MAAC,CAAgC,KAAOE,KAA0B,CAACA,EAAG,MAAWA,CAAAA,EAAIupE,GAAAA,EAAAA,GAAAA,EAAep1D,GAAAA,4BAA8B4Y,EAAAA,GAAAA,GAAY+C,CAAAA,EAAAA,GAAAA,EAAAA,CAAwPhwB,MAAM,CAAC,MAAO,WAAK,CAAC2C,EAAG,aAAgBzC,CAAgmBF,MAAM,CAAC,YAA6G,QAAI,KAAO,EAACE,eAAcupE,MAA8RzpE,KAAM,wBAAU,wQAAE,MAAK,CAAkNA,KAAM,K,CAAW,QAAQ,GAAS,ugB,MAAC,CAAyC,wGAAK,OAAQE,EAAIwpE,KAAAA,EAAAA,eAAAA,KAAAA,kBAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,wBAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,eAAAA,KAAAA,uBAAAA,GAAAA,EAAAA,MAAAA,IAAAA,GAAAA,EAAAA,MAAAA,GAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,eAAAA,eAAAA,EAAAA,mBAAAA,EAAAA,GAAAA,EAAAA,CAAyB,OAAIxpE,KAAO,KAE1kEI,CAAAA,EAAAA,GAAAA,GAAe,CAAG,EAAE,kKAExB,MAASgB,C,wLCJIqoE,IAAW,QAOpB,WAAYC,IAAS,uMACjBznE,KAAK0nE,OAASD,EAAKC,OACnB1nE,KAAK2nE,SAAWF,EAAKE,SACrB3nE,KAAK4nE,gBAAkBH,EAAKG,gBAC5B5nE,KAAK6nE,mBAAqBJ,EAAKI,mBAC/B7nE,KAAK8nE,kBAAoBL,EAAKK,iBAClC,IAGSC,GAAoB,WAO7B,WAAY3+D,IAAW,iMACfA,IACApJ,KAAKgoE,cAAgB5+D,EAAO4+D,cAC5BhoE,KAAKioE,cAAgB7+D,EAAO6+D,cAC5BjoE,KAAKynE,KAAQr+D,EAAO8+D,YAAe,IAAIV,GAAYp+D,EAAO8+D,aAAe,KACzEloE,KAAKmoE,gBAAkB/+D,EAAO++D,gBAC9BnoE,KAAK4tB,cAAgBxkB,EAAOwkB,cAEpC,CAgDC,OAhDA,2BAED,WACI,OAAQ5tB,KAAKgoE,eACT,KAAK,EACD,MAAO,UACX,KAAK,EACL,KAAK,EACD,MAAO,UACX,QACI,MAAO,UAEnB,GAAC,gBAED,WACI,OAAQhoE,KAAKgoE,eACT,KAAK,EACD,MAAO,cACX,KAAK,EACL,KAAK,EACD,MAAO,QACX,KAAK,EACL,QACI,MAAO,UAEnB,GAAC,uBAED,WACI,IAAI91D,EAAc,GAClB,OAAQlS,KAAKgoE,eACT,KAAK,EACD91D,EAAc,mDAAH,OAAsDlS,KAAKioE,cAAa,UACnF,MACJ,KAAK,EACD/1D,EAAc,iCACd,MACJ,KAAK,EACDA,EAAc,qDACd,MACJ,KAAK,EACDA,EAAc,oEACd,MACJ,QACIA,EAAc,yFACd,MAGR,OAAOA,CACX,KAAC,EA/D4B,GChBwD,GAAU,W,IAAoDzR,EAAAA,KAAwB5C,EAAK,EAAC,SAAO,EAAC,kB,OAAG,0CAAE,YAAY,YAA0D4C,MAAAA,CAAyB5C,KAAM,MAAW,wDAAE,YAAY,aAA8EiD,MAAK,CAA6CjD,KAAM,M,CAAuC,UAAW,CAACuqE,EAAAA,GAAAA,EAAAA,GAAY,0C,MAAC,oBAAYC,OAAkB,mB,MAAC,CAAwC,mBAAa,iBAAC,MAAS,EAAC,aAAG,2BAAC3hE,eAAgByH,EAAI,qBAAC5N,OAAI,KAAUoG,QAAG,I,YAA4BnG,EAAG,KAAiD,cAAG,eAAM,IAAC,UACxuB,kDACGrC,Q,UCQJ,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHiqE,mBAAoBhnE,OACpBinE,qBAAsB,CAAExqE,KAAMuD,OAAQ9C,QAAS,MAC/CgqE,eAAgB,CAAEzqE,KAAMsD,OAAQ7C,QAAS,MACzCiqE,eAAgB,CAAE1qE,KAAMsD,OAAQ7C,QAAS,OAE7CkG,MAAK,SAACrG,GACF,IAAMgqE,GAAe1lE,EAAAA,EAAAA,WAAS,WAC1B,OAAItE,EAAMiqE,oBAAsB,IACrB1yC,GACAv3B,EAAMkqE,sBAAwB,IAC9B1yC,GAEAC,EAEf,IACM4yC,GAAiB/lE,EAAAA,EAAAA,WAAS,WAC5B,OAAItE,EAAMiqE,oBAAsB,IACrBvyC,GACA13B,EAAMkqE,sBAAwB,IAC9BvyC,GAEAC,EAEf,IACA,MAAO,CACHiH,gBAAiB,UACjBmrC,aAAAA,EACAK,eAAAA,EAER,ICzC4S,MCO5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBkL,GAAQvuD,W,IAA4Crc,EAAM,K,EAAC,QAAa,G,OAAG,kBAAE,MAAK,CAAS4C,MAAW,iDAAQ5C,aAAM,OAAC,QAAQ,QAAQ,qBAAmB,4B,OAAA,QAAE,MAAK,CAAgBA,cAAM,KAAgB,SAAC0B,YAAM,O,MAAM,CAAiBe,MAAQ,S,QAAqBooE,W,CAAejpE,EAAAA,GAAAA,EAAW,CAAW,OAAIe,UAAW,I,MAAQ,CAAW,QAAU,UAAI,SAAQ,YAAI,aAAIzC,EAAgCF,WAAM,c,CAAY,O,MAAc,CAAa,SAAIE,SAAO,GAAgCF,OAAM,IAAiB,0BAAE,MAAO,CAAkC,MAAU,GAAS0C,SAAW,GAAiB,OAAK,I,GAAiB,gBAAS,e,MAAM,CAAE,cAAK,K,EAAgH1C,GAAK,EAAC,sB,OAAC,OAAQ,C,IAAS,EAAU,iBAAQ,SAAE,MAAK,CAAS4C,OAAW,S,CAAkB,QAAQ,mDAAQ,mBAAE,MAAMvC,CAAiEL,MAAM,SAAC,QAAU,W,CAAmB,OAAS,CAA4B,YAAC,UAAC6C,MAAG,CAAC,MAAQ,W,CAAgF,qDAAC,OAAI3C,MAAO,GAA+D0C,MAAW,UAAQ5C,QAAM,2B,GAAkB,CAAkB,kBAAM,OAAC,EAAQ,oDAAC4C,I,CAA6B,KAAO,kBAAC,0BAAqkB,OAArkB,QAAQ,mBAAE,MAAMvC,CAAgEL,MAAM,SAAC,QAAU,W,CAAmB,OAAS,CAA4B,YAAC,UAAC6C,MAAG,CAAC,MAAQ,W,CAA+E,oDAAC,OAAI3C,MAAO,GAAyH,MAAU,UAAMwC,QAAIooE,EAAAA,MAAAA,GAAAA,gBAA0E,GAAG,CAAuB,MAAI,SAAQ,GAACloE,OAAY,qDAAW,IAAuC1C,CAAAA,EAAM,GAAC,+EACphE,eACGI,IAAAA,GAEKgB,CAAAA,EAAAA,GAAQhB,IAAAA,EAAAA,GAAAA,GAAe,mB,mPCkEhC,IACAS,KAAAA,WACA,OACA+V,SAAAA,KACA+zD,WAAAA,EAEA,EACAnkE,WAAAA,CAAAqkE,YAAAA,IACA7oE,QAAAA,WACA,yBACA,EACAjB,QAAAA,CACA+pE,oBAAAA,EAAAA,GAAAA,IAAAA,gBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACAp5D,EAAAA,EAAAA,KAAAA,IAAAA,iCAAAA,MAAAA,SAAAA,GAAA,8FAEAq5D,aAAAA,SAAAA,GAAA,mIACA,6CACAr5D,EAAAA,EAAAA,KAAAA,IACAzF,mDAAAA,OAAAA,IACA4C,MAAAA,SAAAA,GAAA,wBAFAm8D,EAAAA,EAAAA,KAGAl/D,OAAAA,SAAAA,EAAAA,YAAA,0CALA,EAMA,IC3FuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QC+DhC,IACAtF,WAAAA,CAAAykE,eAAAA,GAAAC,SAAAA,IACAziE,MAAAA,SAAAA,GACA,mCACA,EACA5H,KAAAA,WAAA,OACA0oE,eAAAA,CAAAA,EACA4B,mBAAAA,EAAAA,EAAAA,qBACA,EACAtmE,QAAAA,WACA,wBACA,EACAF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAqqE,mBAAAA,EAAAA,GAAAA,IAAAA,qBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,6FACA15D,EAAAA,EAAAA,KAAAA,IAAAA,wBAAAA,MAAAA,SAAAA,GAAA,wBAAA25D,EAAAA,EAAAA,KACA,+EAEA7B,0BAAAA,WAAA,mIACA,gDACA93D,EAAAA,EAAAA,KAAAA,IAAAA,2CAAAA,MAAAA,SAAAA,GAAA,wBAAA45D,EAAAA,EAAAA,KACAx/D,OAAAA,SAAAA,EAAAA,UAAA,0CAHA,EAIA,ICzG2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB8Q,W,MAAW,K,IAAoBpJ,MAAAA,GAAmB5C,EAAM,kB,SAAC,WAAQ,QAAW,mB,YAAC,O,MAAe,C,MAAI,+B,QAAC,EAAQ,6B,YAAgD,O,IAAC,gB,GAAE,W,MAAoB,GAAC,K,YAAQ,OAAE,OAAIE,MAAO,YAAoD,cAAa,IAAO,eAAe,GAAO,6BAAC,IAA4C,GAAQA,EAAAA,EAAIurE,CAAQ,MAAU,CAAM,UAAyD,MAAYvrE,SAAIsxB,EAAU,kCAAC,EAAqD,a,CAAK,Q,MAA0C,CAAoB,QAAC,UAAC,kB,MAA6CQ,EAAAA,QAAmB,WAAC,KAAC,iBAAgB,e,UAAqBD,EAAQ,SAAO,YAAC,aAAC,eAAgB,EAAC,mC,GAAqC,CAAC,sBAAkB,SAAgB,GAAC7xB,EAAIsxB,aAAWjV,CAAM,EAAE,wBAAmB,SAAgB,GAACrc,EAAIsxB,aAAWjV,CAAM,EAAE,4BAAC1T,EAAAA,SAAkB,CAAGnG,EAAcoG,iBAAa,YAAC,WAAe,CAAsD,EAAEwJ,kBAAM,YAAM,cAAC5P,EAAqBoG,mBAAG,SAAkB,KAAP2M,WAAAA,C,GAAmD,YAAE,OAAC/S,IAAG,UAAoBoG,GAAG,WAAkB,MAAP2M,CAAI,uD,EAAwI,UAAG,CAAC/S,IAAG,iBAAqBoG,GAAG,YAAkB,IAAP2M,EAAI,OAAI,MAAO,CAACvV,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoxD,MAAG,KAA0C,GAAG,CAAC5uD,IAAG,mBAAgBoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,CAAC9S,EAAG,OAAS,2G,wCAAsD,G,MAAI,EAAW,K,OAAgB3C,EAAAA,GAAM,qD,mCAAyD,G,IAAG,EAAK,EAAK,KAAC,MAAM,QAAU2C,CAAkBE,YAAG,OAAC,gB,GAAyB,SAAW6oE,GAAkB,WAAC,mBAAO,OAA8J,UAAyB/oE,GAAG,OAAa,CAAC,wBAACkG,IAAyB,MAAS,IAAI,gBAAmB,IAARoI,CAAS,MAAW,YAAyBjR,OAAM,iBAAC,IAAoE,qG,UAAsB0C,M,IAAcoG,GAAG,iB,YAAkC,EAAvB3I,GAAI,E,0BAAgB,G,MAAI,EAAa,M,OAAiC0C,EAAE,wBAAC,C,eAA0B,EAAOoO,MAAK,GAAE,a,aAAA,gB,YAASd,EAAI,GAACxN,CAAE,C,IAA+D8Z,U,YAAkB,G,IAAaC,EAAO,EAAC,K,EAAsB,U,EAAa9a,EAAW,M,MAAe,gBAAqD,EAAC,KAAtD,iBAAC5B,GAAAA,CAAO,MAAQS,SAAK,GAAC,OAAQuI,GAAQ,KAAgB,uBAA8M,EAAC,IAAI,CAAI,yBAAI,cAAkB,GAAC6sB,CAAgC,eAAe,GAAa,IAAQ,KAAE,qBAAsB,IAAmC,qCAA7W,6B,WAAU,CAAC31B,CAAgB,kBAAG,QAAI,eAASF,MAAM,YAAC,WAAQ,gBAA0B,MAAC,CAAG,MAAC,EAAC,MAAQ,E,KAAsB,GAAgC,IAAIE,QAAU,EAACA,gBAA6M,IAAe2I,MAAe,KAAoBC,K,MAAuB,C,MAAiC9I,EAAM,sB,SAAC,SAAY2rE,G,EAAY,OAAS,QAAKtvD,gBAAS,E,aAAkE,2B,gBAAuE,C,YAACxT,EAAW,GAAC3I,CAAAA,C,0BAA0B,G,MAAW8I,EAAO,M,OAAEgI,EAAAA,qBAAM,C,MAAEhQ,C,MAAkB,EAAI,Y,QAAkB,0B,MAAC,EAAO,GAACiQ,oC,SAAK,4C,QAAO,G,YAA+C,KAAW/Q,CAAAA,C,0BAAyC,G,IAAS,EAAO8Q,EAAAA,QAAM,EAAC,SAACnO,EAAG,U,MAAC,iBAAU,C,GAAiBoO,CAAkC,WAAK,0CAAQ,SAAK,cAAI,kBAAI,QAAkB,GAAC4kB,CAAgC,iBAAe,GAAa,IAAQ,KAAE,mBAAsB,KAA0C,IACl3H,WAGD,K,gJCJ4ClzB,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAe,C,MAA4B,CAAiD,MAAS,EAACE,GAAIc,4BAAQ,6CAAC6H,QAAY3I,EAAIoQ,S,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,EAAQ,EAACI,M,MAAO,GAAS,GAAC,UAAI,MAAC,OAAS,EAAa,SAAQE,EAAO,QAAC,oBAAiBhR,IAA6EF,MAAM,I,CAAC,SAAW,EAAE,mD,MAAC,CAA6B,YAA8D,yBAAC0B,YAAM,+C,MAA0Be,C,MAA6BmpE,EAAAA,aAAgB,SAAC,YAAChqE,EAAAA,aAAW,CAAc,EAAI,WAAG,mBAE7qBtB,EAEJ,E,MCHA,IACIC,MAAO,CAAC,UAAW,QAAS,WAAY,QAAS,gBACjDU,QAAS,CACL4qE,KAAI,WACAC,UAAUC,UAAUC,UAAU7pE,KAAKypE,aACvC,ICN4S,M,uBCAxF,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYjpE,GAAOK,WAAS,MAAU,KAAShD,EAAK,EAAC,S,OAAC,EAAM,IAAC,C,MAAS,CAAoB,cAAe,MAAS,YAAa,UAAYE,GAAU,QAAU,EAACC,QAAK,kBAAG,KAAC,Q,GAA0Boc,C,MAA+Brc,SAAY,GAAC,OAAD,mBAAC,UAAIA,IAE/QI,CAAAA,EAAAA,GAAAA,IAAe,EAAG,GAAE,iDAExB,E,MCwBA,IACAC,MAAAA,CAAAA,QAAAA,QAAAA,QACAQ,KAAAA,WACA,OAAAC,SAAAA,EACA,EACAC,QAAAA,CACAC,OAAAA,WAAA,mIAEA,OADA,iBACA,+BAEA0Q,EAAAA,EAAAA,KAAAA,KACA+f,eAAAA,CAAA1xB,KAAAA,gBAAAa,QAAAA,KAAAstB,YAAAA,KAAA69C,UAAAA,IACAl9D,MAAAA,SAAAA,GACA,aACA,WAJA3N,EAAAA,EAAAA,KAMA,UACA,2EAEAS,EAAAA,EAAAA,IAAAA,EAAAA,GAAAA,+BACA,gCAGA,OAHA,UAEA,aACA,4FAjBA,EAmBA,ICrD6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BP,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAOE,EAAIgsE,SAAW,gBAAH,OAAmBhsE,EAAIgsE,UAAa,KAAK,QAAU,MAAMrpE,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACpQ,EACI5f,GAAkB,GCoBtB,IACAoG,WAAAA,CAAA4kB,iBAAAA,GAAAA,GACA/qB,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA4gD,SAAAA,CAAAA,OAAAA,UAEAjrE,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,IC/B2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCZhC,IAAe4E,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,sBAClB,EACA5K,WAAY,CACRylE,mBAAAA,GACAC,qBAAAA,GACAC,mBAAAA,IAEJtrE,KAAI,WACA,MAAO,CACHgxB,SAAU,OACVP,YAAY,EACZQ,aAAc,GACdhxB,SAAS,EACT60B,QAAS,CACLy2C,eAAe,EACfC,eAAe,GAEnBd,QAAS,GACT34C,SAAU,GACV84C,aAAc,KACdD,YAAa,KAErB,EACA1qE,QAAS,CACLurE,aAAY,SAACzrE,GACToB,KAAKypE,aAAe7qE,EAAK2B,GAC7B,EACAgpE,UAAS,SAACe,GACNtqE,KAAKwpE,YAAcc,EACnBtqE,KAAK0zB,QAAQ02C,eAAgB,CACjC,EACAG,mBAAkB,WACdvqE,KAAK0zB,QAAQy2C,eAAgB,CACjC,EACMK,mBAAkB,wIACK,OAAzB,EAAKf,aAAe,KAAK,SACnB,EAAKgB,WAAU,0CAFD,EAGxB,EACMC,iBAAgB,wIAEM,OADxB9qE,EAAAA,EAAAA,IAAa,EAAKuP,GAAG,kCACrB,EAAKq6D,YAAc,KAAK,SAElB,EAAKiB,WAAU,0CAJH,EAKtB,EACMA,SAAQ,8IAIoC,OAH9C,EAAK5rE,SAAU,EAAK,SAGV4K,EAAW,EAAKqhB,YAAYrhB,SAAQ,SACrBkY,KAChB/U,MAAK,SAACG,GAAC,OAAKA,EAAEgK,QAAO,SAACgZ,GAAC,OAAKA,EAAEtmB,WAAaA,CAAQ,GAAC,IAAC,OAD1D,EAAK6/D,QAAU,EAAH,YAGS,OAHT,SAGZ,EAAKzqE,SAAU,EAAM,sEARf,EAUd,GAEJ6D,UAAU,QACNrD,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,uCACd/P,MAAO,YACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,mCACd/P,MAAO,cACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0CACd/P,MAAO,eACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,sCACd/P,MAAO,wBACPswB,UAAU,GAEd,CACItwB,MAAO,UACPswB,UAAU,GAGtB,IACGtB,EAAAA,GAAAA,IAAU5C,KAEX5oB,QAAO,wJACH,EAAK6nE,WAAU,0CADZ,EAEb,ICrG+S,M,uBCAxF,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,YCtBkN,GAAC,W,IAAC/jE,EAAAA,K,EAAwB,EAAC,S,OAAkB,EAAC,WAAU,2B,YAASlG,O,MAAYC,C,MAAwB,EAAC,mC,QAAC,EAAQ,sC,YAA2B,O,IAACC,gB,oBAA6B,OAAWiqE,C,YAAiC,OAAC,OAAInqE,MAAG,YAAU3C,UAAM,IAAU,IAAIE,MAAO,SAAgB,GAAsC,wCAAM,IAAc,OAAQ,CAAM,MAAC,CAAO,KAAC,KAAU,gBAAe,qCAACF,EAAO,a,CAA6B,OAAQE,CAAsC,MAAC,CAACwB,KAAM,M,CAA6Be,EAAAA,GAAAA,EAAS,C,MAAmB,CAAkC,SAAC,GAACb,UAAW,GAAiB,4CAAoB5B,MAAM,CAAC,MAAM,EAAC,gBAAG,qBAAM,EAAC,oBAAe,OAACA,EAAO,WAAW,sBAAkB,KAAO,KAAKsR,CAA8B,MAAC,CAAC5P,KAAM,M,CAA+Be,EAAAA,GAAAA,EAAS,C,MAAmB,CAAoC,SAAC,GAACb,UAAW,GAAmB,wCAAoB5B,MAAM,CAAC,MAAM,EAAC,kBAAG,qBAAM,EAAC,oBAAe,SAACA,EAAO,WAAW,wBAAkB,KAAO,KAAKsR,CAA0C,MAAC,CAAC5P,KAAM,M,CAA8Ce,EAAAA,GAAAA,EAAS,C,MAAmB,CAAmD,SAAC,GAACb,UAAW,GAAkC,oDAA4E5B,MAAM,CAAC,MAAM,EAAC,iCAAG,qBAAM,EAAC,oBAAe,wBAACA,EAAO,WAAW,uCAAkB,KAAQE,YAAO,sCAAiC,QAAC,MAAC,CAACwB,KAAM,M,CAAsCe,EAAAA,GAAAA,EAAS,C,MAAmB,CAA2C,SAAC,GAACb,UAAW,GAA0B,+CAA6B5B,MAAM,CAAC,MAAM,EAAC,yBAAG,qBAAM,EAAC,KAAOE,EAAIG,aAAG,cAAsB,EAAcL,EAAO,WAAW,+BAA2B,kBAAG,MAAK,CAA0B6I,KAAAA,M,CAAmCC,EAAE,MAAC,yBAAmB,Q,MAAA,C,WAAW,G,MAA4B,EAAC,iB,IAA4B,OAAS,EAAC5I,cAAa,C,YAAkB,EAAQA,GAAG,CAACoR,C,iBAA+F,SAAC,G,IAACzI,EAAAA,EAAY3I,M,MAAY,GAAC,qBAAS,C,MAAI,C,MAAW8I,EAAO,e,QAAQ,QAANgI,GAAAA,kB,MAAQhQ,EAAO,uC,SAAc,EAAC,2C,YAAmB,EAAQiQ,GAAAA,CAAAA,C,IAAK,U,GAAG,SAAI,G,IAAuCjR,EAAM,U,EAAQ,EAAK+sE,O,EAAsB,EAAC/jE,Q,MAAQ,iBAAiB,C,GAAC,CAAc,WAAK,QAAU,yBAAgB,C,MAACiI,CAA4B,uBAAC,QAAI,kBAAiB,wBAAI,sBAAO,KAA+DwgB,IAAuC,WAAkC,KAAsB5oB,MAAAA,CAAqBnG,MAAI,UAAS,aAACoG,SAAG,SAAmB,KAARmI,KAAK,UAALA,eAAK,E,aAAwC,0B,gBAAoC/Q,C,YAA+B,EAAQA,GAAG,CAACoR,C,iBAA2F,SAAC,G,IAACzI,EAAAA,EAAe,M,MAAS,GAAC,kBAAS,C,MAAI,C,MAAWG,EAAO,a,QAAM,6B,MAAEgI,EAAM,qC,SAAU,EAAD,yC,YAAiC,O,iBAAc,YAAC,IAAGrO,EAAG,EAAYA,QAAwB3C,EAAM,O,EAAQ,S,EAAyC,EAACgJ,Q,MAAQ,iBAAiB,C,GAAC,CAAc,WAAK,QAAU,sBAAgB,C,MAACiI,CAAqE,4CAAC,QAAI,kBAAiB,wBAAI,oEAAO,KAA+DwgB,IAAuC,WAAkC,KAC79G,OACGnxB,MAAAA,EAAAA,QAAoB,aAExB,SAAe,SAAiB,G,oFCJ5BgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAOE,EAAIqB,MAAQ,wBAAH,OAA2BrB,EAAIqB,MAAMyb,IAAO,KAAK,QAAU,MAAMna,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACzQ,EACI5f,GAAkB,GCsBtB,IACAoG,WAAAA,CAAA4kB,iBAAAA,GAAAA,GACA/qB,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,SAAAA,GACA,iBACA,kBACAJ,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,4CAEAH,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCAEA,ICxC2Q,M,sBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCwGhC,IACA8G,MAAAA,SAAAA,GACA,wCACA,EACAjC,WAAAA,CACAsmE,mBAAAA,GACAr7B,gBAAAA,GACAD,cAAAA,IAEA3wC,KAAAA,WACA,OACA+xB,SAAAA,KACAi6C,eAAAA,KACAp6B,aAAAA,KACAs6B,aAAAA,GACAp3C,QAAAA,CACAC,cAAAA,EACAo3C,cAAAA,GAGA,EACAhrE,QAAAA,WACA,mBACA,EACA2C,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA6rE,gBAAAA,SAAAA,GACA,oBACA,4BACA,EACAK,kBAAAA,SAAAA,GACA,sBACA,4BACA,EACAl6C,cAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,wGACArhB,EAAAA,EAAAA,KAAAA,IACAzF,6BACA4C,MAAAA,SAAAA,GAAA,2FAFA,qBAGA,0BACA,6BAGA,0CACA,mBACA,CACAxF,GAAAA,EACApG,KAAAA,QAAAA,EAAAA,KAAAA,SAAAA,GAAAA,OAAAA,aAAAA,UAAAA,IAAAA,EAAAA,EAAAA,cACAiqE,SAAAA,KAAAA,SAAAA,GAAAA,OAAAA,aAAAA,GAAAA,CACA,CACA7jE,GAAAA,EACApG,KAAAA,QAAAA,EAAAA,KAAAA,SAAAA,GAAAA,OAAAA,aAAAA,UAAAA,IAAAA,EAAAA,EAAAA,cACAiqE,SAAAA,KAAAA,SAAAA,GAAAA,OAAAA,aAAAA,GAAAA,CACA,CACA7jE,GAAAA,EACApG,KAAAA,QAAAA,EAAAA,KAAAA,SAAAA,GAAAA,OAAAA,aAAAA,UAAAA,IAAAA,EAAAA,EAAAA,gBAEA,KAEA,KAEA,iDAEA+wC,kBAAAA,SAAAA,GACA,kCACA,2CAEA,mBACA,EACAm5B,WAAAA,WACA,4BACA,ICtMoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB4G,W,IAAiC,O,EAA4B,QAAU,GAA0I,oB,OAACxkE,EAAAA,GAAAA,EAAmB,CAAC,kB,MAAK,CAAgBC,aAAG,oB,MAAkB,oB,QAAgC,2I,YAA4B,EAAO5I,GAAG,CAACotE,C,uBAAsB,W,MAAEzkE,CAAAA,EAAAA,wBAAoB,C,GAACnG,CAAgBoG,QAAG,SAAgB,UAAF,EAAD,qB,eAAwD,O,4BAAqB,G,IAAc,OAAC,MAAK,CAAC,EAAG,IAAC,EAAQ,GAAC,CAAC9I,YAAM,O,MAAC,CAAS,kBAAIE,UAAa,KAA2B,WAAM,MAAC,CAAM,KAAM6nE,KAAsC,CAACA,EAAAA,GAAAA,SAAY,uBAAuB,OAAI,iBAAC,qBAAO,YAAM,EAAO,yBAAgS,EAAC/nE,OAAM,MAAc,0NAAE,YAAS,CAAwE,aAAe,UAAM,MAAM,CAAuPA,QAAM,M,CAAW,EAAC,mE,OAAI,Q,IAAC,GAAiC,8NAAG,MAAM,CAAK,MAAO,GAAuCA,GAAK,CAAE,QAAY,EAAC,wBAAwC,I,KAAuG,2BAAE,YAAK,OAAY4C,MAAAA,CAAmBuK,aAAY,cAAC,wBAAoB,QAAQ,gGAAQnN,CAAAA,EAAK,KAAC,C,YAASE,O,YAA2B,CAAQ,YAAY,QAAS,MAAQ,Q,MAAe,CAAiB,oBAAG,YAAC,OAAC,aAAS,Q,OAAwBA,GAAwB,SAAE,gB,GAAQqB,CAA0BkB,OAAS,YAAgBvC,OAAIqtE,EAAAA,oBAAiB,GAA4B,OAAI5qE,MAAG,gBAAYwK,SAAW,SAAC,GAAC,gBAAY,CAAQ,EAACnN,WAAM,mBAA2B,OAAW,C,YAAW,CAAC,YAAQ,SAAY6C,MAAG,CAAC,MAAQ,EAAC,c,OAAwB3C,GAAwB,SAAE,kB,GAAQqB,CAA+BkB,OAAS,YAAgBvC,OAAIstE,EAAAA,oBAAsB,GAAiC,OAAI7qE,MAAG,qBAAkBwK,SAAW,SAAC,GAAC,qBAAQ,CAAM,EAAIxK,WAAW,wBAA+M,OAAa,CAAQ,YAAC,CAAC3C,MAAM,SAAc,uLAAE,YAAS,CAAuE,aAAe,UAAM,MAAM,CAA+N,QAAU,MAE/jGM,CAAAA,EAAAA,GAAAA,qBAAoB,0CAExB,OAASgB,EAAAA,KAAQhB,C,qOCJbgB,I,SAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAImc,MAAMC,GAAG,mBAAmBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAA0C,IAA/B3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASiI,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,iBAAkBK,WAAW,qBAAqB5B,MAAM,CAAC,MAAQG,EAAK,MAAQ,WAAO,EAAE,MAAQ6I,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAC9rB,GACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAoB9I,EAAM,Q,MAAC,sBAAuB,C,MAAC,CAAsB,SAAW,EAACw4D,SAAK,kBAAC3vD,MAAW,EAAC3I,M,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACttB,UAGD,E,SCJyN,W,IAAsB,OAACpI,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,YAAS,C,MAAI,C,MAAW8Q,c,SAAa,8F,QAAY9Q,EAAI0Q,S,YAAuC,EAASI,GAAAA,CAAAA,C,IAAO,U,GAAoB,SAAU9Q,G,IAAY,EAAQgR,EAAAA,OAAO,EAAC,oCAAI,KAAS,EAAC,SAAM,OAAC,EAAC3P,QAAWZ,EAAM,MAAC8B,QAAS,UAAgBvC,MAAS,IAAM0B,IAAkB,SAAE,MAAK,CAAW5B,MAAM,QAAC,SAAQ,SAAS,GAAC,EAAM,MAAC,CAAE,EAAI2C,WAAW,U,CAAS,OAAQ,CAAS,OAAIzC,MAAO,UAAuNF,KAAM,K,CAA2B,MAAQ,C,MAAkB,CAA2D,kB,CAAQuB,EAAAA,GAAOrB,aAAe,iM,MAACuC,C,MAA6BgrE,EAAAA,cAAc,MAAC,kBAAC7rE,SAAW,2CAAe,MAAI,CAAY5B,MAAM,aAAC,SAAQE,SAAiB,GAAC,aAAQ,CAAkB,EAACwB,WAAM,gBAAgCe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAuB,MAAC,gBAACb,MAAAA,mBAAkC,MAAI,CAAgB5B,MAAM,qBAAC,SAAO,SAAQ,GAAC,qBAAuB,CAAwB,EAAkB,mCAAQuB,EAAAA,GAAAA,EAAWmsE,C,MAAQjrE,C,KAA6BirE,SAAU,SAAC,8BAAC9rE,MAAAA,WAAsB,MAAI,CAAegB,MAAAA,EAAY,OAAS1C,SAAO,SAAqB,GAAsB0C,EAAAA,OAAY,CAAO5C,EAAO,WAAY,YAAmB,OAAc,C,YAAW,QAAqF,qCAAC0B,YAAM,O,MAAM,CAAqBe,aAAS,G,UAAoBkrE,GAAiB,KAAC,QAAC/rE,SAAW,2EAAkB,MAAI,CAC9yD,sBACGtB,SAAAA,SAAoB,GAExB,EAASgB,cAAQhB,C,2CCiDjB,IACAC,MAAAA,CAAAA,UAAAA,QAAAA,YACA2B,QAAAA,WAAA,6IACA2M,EAAAA,sBAAA,wEADA,EAEA,EACA9N,KAAAA,WACA,OACAJ,OAAAA,EACA8sE,WAAAA,MACAD,mBAAAA,MACAE,OAAAA,IACAC,eAAAA,IAAAA,MAAAA,cAAAA,UAAAA,EAAAA,IACA1lC,cAAAA,GAEA,EACApjC,SAAAA,CACAoF,SAAAA,WACA,cACA,CACA,mCACA,OACA2jE,mBAAAA,KAAAA,WACAJ,mBAAAA,KAAAA,mBACAE,OAAAA,KAAAA,OACAG,kBAAAA,EAAAA,cACAC,mBAAAA,EAAAA,WAAAA,EAEA,CAVA,QAWA,GAEA7pE,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GAMA,qCACA,6CACA,qBACA,wEACA6X,cACAlD,UAAAA,EAAAA,MAVA,sBACA,8BACA,gBACA,4DASA,EACA3O,WAAAA,EACAjG,MAAAA,KCrGsQ,MCQlQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCjBhC,IACI3D,MAAO,CAAC,QAAS,UAAW,WAAY,QACxCmG,WAAY,CAAEqnE,cAAAA,IACd9sE,QAAS,CACLiS,KAAI,WACA/Q,KAAKgE,MAAM,SAAS,EACxB,ICRyS,MCO7S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7E,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,sBAAsB,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACjO,EACI5f,GAAkB,GCoBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,IC3B2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCnBhC,IACI6E,WAAY,CAAEsnE,gBAAAA,GAAiBC,mBAAAA,IAC/B1tE,MAAO,CACHgB,MAAO8B,UCNqS,MCOhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClBsI,W,MAA2BrD,K,IAAO,MAAM,GAAG,oB,OAAE,EAAC6C,GAAAA,EAAO,C,YAAqC,OAAG,gBAAIF,GAAG,SAAY,GAA0B3C,IAAM,OAAC,MAAOE,CAAAA,EAAIqB,EAAAA,EAAAA,EAAAA,GAAAA,CAAM,OAAI,UAA4B,GAAOrB,CAAAA,EAAIiG,EAAAA,EAAM,MAAS,gBAAS,SAAG0C,CAAAA,EAAAA,GAAAA,EAAW,CAAC3I,EAAG,wBAAK,C,MAAK,CAAY4I,KAAG,S,GAAiB,CAA4K,oBAAI,2BAACpH,G,YAAuC,O,IAAmB,YAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,qGAAIe,K,MAAmC,CAAoB,mBAAG,SAAC,YAAC,aAAU,C,EAAoD,2BAAGkG,EAAAA,wBAAoB,C,MAAK,CAAYC,QAAG,S,GAAiB,CAAgL,oBAAI,2BAACpH,G,YAAuC,O,IAAmB,YAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,yGAAI,KAE3qCtB,MAAAA,CAEJ,MAASgB,EAAQhB,W,+ECJbgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,KAAOrB,EAAIs4D,KAAK,QAAUt4D,EAAImc,MAAMC,GAAG,kBAAkB,SAAW,CAAEsxD,oBAAoB,EAAMJ,oBAAoB,EAAMK,mBAAmB,IAAQhrE,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAA0C,IAA/B3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASiI,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,sBAAsB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,iBAAkBK,WAAW,qBAAqB5B,MAAM,CAAC,MAAQE,EAAIs4D,KAAK,MAAQ,WAAO,EAAE,MAAQxvD,EAAQ,KAAOgI,EAAO,QAAU,CAAC,CAAEk9D,GAAI,UAAWhf,KAAM,SAAU3tD,MAAOpB,EAAKutE,UAAW7qE,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIiG,MAAM,UAAWoW,EAAO,GAAC,KAAK,IAAI,MAAK,IAC72B,EACIjc,GAAkB,GCFlBgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAO37D,EAAIyR,IAAI,QAAU,MAAM9O,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACzO,EACI5f,GAAkB,GCetB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAmE,SAAAA,CACA8M,IAAAA,WACA,kBAGA,uBACA,6BACA,IACA,yDACA,IACA,8BACA,IACA,8BAVA,GAaA,GAEA1Q,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,kCACA,ICnDyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCnBhC,IACI6E,WAAY,CAAEsnE,gBAAAA,GAAiBG,iBAAAA,IAC/B5tE,MAAO,CACHgB,MAAO8B,QACPm1D,KAAM30D,SCPoS,MCO9S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYlB,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAuB9I,EAAM,Q,MAAC,yBAAuB,C,MAAgB,CAAoB,QAAQE,EAAM,MAAC,mBAA4B,QAAWA,QAAsC,MAAQ,EAAC,+BAAK,6CAAC2I,QAAW,G,YAA2B,O,IAAoC,U,GAAhBmI,SAAM,G,IAAEvQ,EAAK,EAALA,QAAS,EAAW,SAAeoC,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAwDQ,EAAAA,GAAAA,GAAK,0BAAY,C,WAAS,EAAe5B,KAAK,aAAkBK,QAAAA,eAA6B,qBAAC5B,WAAM,mB,MAAqB,CAAc,MAAQgJ,EAAAA,QAAQ,MAAOgI,EAAO,QAAG,KAAC,G,GAA4BC,C,QAAmB/Q,SAAU,GAAkB,IAAC,4CAAC,GAAI,KAAiB,eAAgB,IACz/B,UAGD,E,MCJIoB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAOE,EAAIyR,IAAI,QAAU,MAAM9O,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACvN,EACI5f,GAAkB,GCetB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGA4E,SAAAA,CACA8M,IAAAA,WACA,kBAGA,uBACA,6BACA,IACA,yDACA,IACA,8BACA,IACA,8BAVA,GAaA,GAEA1Q,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,IC5C2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCoBhC,IACA6E,WAAAA,CAAA0nE,iBAAAA,GAAAC,mBAAAA,IACA9tE,MAAAA,CACAgB,MAAAA,QACAm6D,QAAAA,SC9C2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICnBY4S,GDmBZ,GAAe,GAAiB,QEmBhC,IAAe,IAAA7nE,iBAAgB,CAC/BC,WAAAA,CAAA6nE,mBAAAA,GAAAC,mBAAAA,IACAjuE,MAAAA,CAAAgB,MAAAA,QACAqF,MAAAA,WACA,oBACA,gBACA,OAAA6nE,WAAAA,EAAA3G,WAAAA,EACA,IChDmQ,MCO/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCVhC,IAAerhE,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEgoE,mBAAAA,GAAoBC,WAAAA,IAClC/nE,MAAK,WACD,IAAMgoE,GAAgB5nE,EAAAA,EAAAA,KAAI,IACpB6nE,GAAe7nE,EAAAA,EAAAA,KAAI,IACnB8nE,GAAc9nE,EAAAA,EAAAA,KAChBsQ,MAAM,IACDosC,KAAK,MACLv0C,KAAI,SAACid,EAAG/Q,GAAC,OAAK9C,KAASa,KAAK,EAAIiC,EAAG,SAAS,IAC5ClM,KAAI,SAACqa,GAAC,MAAM,CAAEjoB,MAAOioB,EAAExQ,SAAU/W,KAAMunB,EAAE5Z,OAAO,WAAY,KAE/D49D,GAAqBxmE,EAAAA,EAAAA,KAAI,MACzBihC,GAAgBjhC,EAAAA,EAAAA,KAAI,IACpBumE,GAAgBvmE,EAAAA,EAAAA,KAAI8nE,EAAYvtE,MAAM,GAAGA,OACzCwmE,GAAW/gE,EAAAA,EAAAA,MAAI,GACfsmE,EAAmB,yCAAG,oGACI17D,EAAAA,EAAAA,KAAAA,IAAe,uBAAuB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAArF6tE,EAAcrtE,MAAQ,EAAH,gDACtB,kBAFwB,mCAGnBwtE,EAAkB,yCAAG,4FAEyB,OAD1Cv6C,EAAO+4C,EAAchsE,MAAMytE,cAC3Bz6C,EAAQg5C,EAAchsE,MAAM2pD,WAAa,EAAC,SACrBt5C,EAAAA,EAAAA,KAAAA,IAClB,uBAAD,OAAwB4iB,EAAI,YAAID,GAAS,CACzChT,OAAQ,CAAEisD,mBAAoBA,EAAmBjsE,SAEpDwN,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAJxB8tE,EAAattE,MAAQ,EAAH,gDAKrB,kBARuB,mCASlB0tE,EAAqB,yCAAG,oGACEpgE,EAAAA,sBAAqC,OAAjEo5B,EAAc1mC,MAAQ,EAAH,gDACtB,kBAF0B,mCAM3B,OAHA0tE,IACA3B,IACAyB,IACO,CACHH,cAAAA,EACAC,aAAAA,EACAC,YAAAA,EACAvB,cAAAA,EACAtlC,cAAAA,EACAulC,mBAAAA,EACAF,oBAAAA,EACAyB,mBAAAA,EACAhH,SAAAA,EAER,ICpDyS,MCOzS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,eClB4iB3qB,W,IAAe,EAAC,K,EAACx7C,EAAAA,MAAW,GAAa,oBAAC,OAAM2O,EAAIrQ,WAAY,GAAE,KAASgvE,CAAW,MAAOvsE,CAAwBD,MAAIwsE,S,CAA4ClvE,EAAAA,EAAAA,EAAM,C,MAAC,CAAiB,U,CAAiB4C,EAAAA,GAAAA,UAAY,KAAW,gT,MAAM,C,MAAE,EAAO,YAAE,qBAAID,EAAG,aAA2B3C,E,WAAekvE,gB,EAAsD,KAAOhvE,UAAIk9C,SAAgB/hC,EAAAA,G,OAAE,QAACxY,IAAG,M,CAAC,OAAiB0Z,C,MAAQ2yD,CAAkC,oBAAGrmE,CAAAA,EAAAA,GAAAA,EAAW,C,YAAc,Y,MAAY,C,KAAY,K,6BAA0C,C,MAAChG,C,MAAI,E,MAAyB,QAAO3C,OAAIivE,EAAAA,EAAAA,OAAAA,OAA0BD,EAAO,U,KAAS,mB,UAAU3tE,SAAe6tE,G,EAAU3sE,SAAS,U,eAAoDb,EAAAA,GAAW,E,IAAkB,S,GAAG,SAAC,GAAG,OAAH,WAAG,SAAI,YAAU,OAAI,IAAY,kBAAC,OAAW,4BAAQ,IAAC5B,GAAgB,OAAI2C,MAAG,EAAUzC,SAAiCF,SAAM,YAAC,EAAM,KAAG,eAAC,EAAuC,iC,qBAAwF,Y,OAAC,QAAuB,GAAuC,GAAC,K,MAAC,CAAU,UAA8D6C,CAAE,EAAC,+B,MAAC,C,KAA+B,G,SAA6B,EAACwsE,cAAuB,IAAvBA,GAAwB,IAAI1sE,MAAG,SAAiB,GAA2C,OAAP3C,EAAM,kBAAQ,EAAE,qBAAC,IAA6B6C,CAAE,EAAC,uC,MAAC,C,KAA+B,G,SAA6B,EAACysE,cAAgB,yBAAC,IAAI3sE,MAAG,SAAiB,GAAyB,OAAT,oBAAa,yBAAS,IAAgD,OAAW,qCAAU,OAAO,KAAS,GAAO,yBAAU,IAAO,eAA2B,GAAgBusE,OAAR,oBAAQA,EAAAA,cAAAA,EAAQ,IAA0B,OAAS,sBAACpmE,IAA8B,MAAhBE,M,IAAS7I,GAAI,Q,YAAYwC,C,SAAkB,a,QAAqB,C,YAAmD,K,+BAA+B,C,YAA0B,G,YAAsC,O,IAAG,U,GAAc3C,SAAM,G,IAAC,EAAO,UAAE,SAAC,MAAM,CAACK,EAAG,IAAM,CAA2B,OAAQ,MAAM,YAAO,SAAM,UAAMkvE,GAAgBL,EAAO,aAAMzsE,QAAS,gBAA+D,IAACb,MAAW,YAA6B,gCAAS,IAAiC,QAAC,OAAoB,KAAe,KAAS,GAAQ,kCAACgB,IAAwB,MAAC,GAAC,MAAO,CAAa,MAAS,EAAC1C,gBAAgB,MAAC,SAAWA,SAAIsvE,GAAa,gCAAI,EAAC,WAAQ,kCAAmD,U,IAAC,WAAE,MAAK,CAAUxvE,iBAAM,GAAC,eAAO,KAAK,CAACE,EAAG,IAAI,CAAmEF,YAAM,O,MAAC,CAAsC,kBAAC0B,QAAM,eAACH,SAAWkuE,EAAAA,c,GAA+CvvE,CAA4B,MAAC,YAAC0B,OAAAA,EAAW,uBAAsB,IAA+C5B,CAAAA,EAAK,IAAC,C,MAAC,C,KAA6B0vE,K,CAA+B,KAAM,SAAC,uDAAE,MAAC,CAAG,WAAC,wB,MAA6B,CAAiC,6BAAE,qBAAC7mE,EAAAA,qBAAoB,CAACnG,EAAcoG,WAAG,yB,QAAoC,CAAC,6B,cAAW,oC,SAAI,mB,KAA0B5I,I,UAA4D,SAAcG,GAA+E,2BAACiS,GAAe,YAAI,OAA6BtS,IAAM,UAAC,cAAsB,cAAC6I,MAAY3I,CAAa,KAAS,IAA+B,GAAhB8I,CAAS7I,MAAI,YAAI,EAAU,sBAAe,sBAAG,I,GAA2BD,EAAAA,EAAIuvE,CAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAuB,qBAAK,uC,SAAC,O,8BAAqC,C,YAAqB,c,YAAmE,O,IAAC5sE,U,YAAY,G,MAAwB3C,EAAIyvE,Q,EAA8B,O,MAAC,kBAAE,GAAI,CAAW3vE,MAAM,YAAC,EAAM,sBAAC,CAAE,KAA4C,eAAI,OAAO,kBAAM,UAAM4vE,GAAkB,eAACntE,QAAS,gBAA0C,IAACb,MAAW,YAAmB,oCAAS,IAAyB,GAAQ,IAAK,CAAC,OAAgB,KAAQ,KAAc,qCAACL,K,MAAsD,CAAkB,MAAC,oBAACK,SAAU,SAAC,GAAe,qBAAIe,EAA6C3C,WAAM,wBAAgB,eAAE,MAAMK,CAAsML,OAAM,EAAC,WAAS,GAAC,MAAK,QAAa,MAAK,CAAUA,MAAM,gBAAC,SAAO,YAAE,iBAAIE,EAAuEF,WAAM,kB,CAAyB,OAAU,GAACE,GAAAA,GAAI2vE,CAAAA,EAAAA,EAAAA,EAAAA,CAAS,MAAC,CAAG,MAAC,UAAyB,2KAAE,MAAMxvE,CAC79J,QACGC,GAAAA,c,yMCF2N,W,IAAiC,OAAC,aAAO,QAAY,Y,OAACsC,EAAAA,WAAY,UAAQ,YAAI,aAAeA,CAAAA,EAAAA,GAAAA,EAAW,CAAkB,MAAK,CAAU5C,MAAM,SAAU,IAAIE,MAAO,SAAeA,GAAoF,OAAU,QAAU,QAAC,EAACwC,I,CAAoB1C,EAAAA,GAAAA,EAAM,C,YAAQ,SAAG,QAAC,YAAM,kB,CAAiCA,EAAAA,EAAAA,EAAM,C,MAAC,CAA8B,KAAC,K,GAAsB0C,GAAI,eAAS,iE,OAAG,EAAC,WAAU,C,IAAC,G,QAAyB,C,YAAY,M,mCAA0C,C,aAAiCxC,IAAP,EAAW4vE,KAAAA,O,YAAmB,O,IAAG,UAAqC,GAAC,WAACx9D,MAAM,QAAO,MAAK,CAAY,QAAM,SAAYrS,EAAK,sBAA0BC,GAAIuxB,CAA6B,kBAAC7vB,OAAW,oBAAgB,IAGl7B,6BAAC,EAAQ,WAAM,MAAC,GAAgC5B,MAAM,CAAC,MAAM,EAAU,KAAM,qBAAC0B,EAAM,gBAACH,EAA4BkB,WAAS,qBAAsD,0EAE3B,OAF2B,Q,MAACb,CAAgC,SAA6B5B,CAAAA,EAAK,+BAAC,C,MAAC,CAE9P,aAAwCA,MAAM,CAAC,MAAM,EAAU,UAAM,qBAAC0B,EAAM,qBAACH,EAAuBkB,WAAS,0BAAiD,W,MAACb,CAA2B,kFAAce,CAAE,EAAC,gCAAQ,CAAC3C,MAAM,CAAC,KAAO,QAAQ2C,MAAM,CAAE3C,MAAM,OAAC,SAAO,YAAe,kBAAI,EAAC,WAAQ,qBAA0C,M,IAA4B,QAAC,OAAIE,KAAO,OAAsE,CAACyC,EAAG,KAAeC,MAAAA,CAA+BD,KAAG,gB,GAAiB,CAAS,kBAAgG,OAA5FzC,EAAO,kBAA+F,mBAAYwC,I,CAAoB1C,EAAAA,GAAM,0C,YAAQ,SAAG,QAAC,YAAM,kB,CAA8BA,EAAAA,EAAAA,EAAM,C,MAAC,CAAgC,KAAC,K,GAAsB0C,GAAI,UAAS,2D,OAAG,EAAC,WAAU,C,IAAC,G,QAAyB,C,YAAY,M,gCAAuC,C,aAAiCxC,IAAP,EAAW6vE,OAAAA,O,YAAgB,O,IAAG,U,GAAiD/vE,W,MAAO,GAAM,IAAG,C,MAAC,CAAmB,QAAG,SAAC,qB,GAA0B,CAA+B,kBAAC,wBAAI2C,I,CAA6D,MAAS,6B,MAAC,CAAwC,QAAG,SAAC,O,GAA0B,CAAiC,kBAAC,6BAAIA,IAAmD,GAAC,uCAAO,MAAK,CAAY,QAAM,SAAc,wBAA0BzC,GAAIuxB,CAA0B,kBAAC7vB,OAAW,wBAAa,IAA0B,qCAAC,EAAsE,WAAM,MAAC,GAA6B5B,MAAM,CAAC,MAAM,EAAO,KAAM,qBAAC0B,EAAM,gBAACH,EAAoBkB,WAAS,kBAA8C,W,MAACb,CAAwB,mDAA8E5B,CAAAA,EAAK,4BAAC,C,MAAC,CAAU,aAAqCA,MAAM,CAAC,MAAM,EAAO,KAAM,qBAAC0B,EAAM,gBAACH,EAAqBkB,WAAS,kBAA+C,mD,MAACb,CAAyB,WAAuBe,CAAE,EAAC,6BAAQ,CAAC3C,MAAM,CAAC,KAAO,QAAQ2C,MAAM,CAAE3C,MAAM,QAAC,SAAO,YAAe,mBAAI,EAAC,WAAQ,mBAA0C,KAAU,MAACgwE,E,IAAc,QAAC,OAAI9vE,KAAO,O,CAA8D,MAAQ,CAAG,MAAC,CAAC2I,KAAAA,gB,GAAuC,C,MAAc,YAAW,O,EAAJ,kBAAW,EAAI,c,OAAgG,GAAC,2C,MAACnH,C,OAAOH,I,YAAwD,EAAC0uE,GAAAA,CAAAA,C,4BAA+B,G,IAAkB,OAAE,EAAC,EAAY,MAAmB,yBAAG,OAAO,MAAW,uDAAqP,MAAK9vE,CAAY,MAAE,kBACxzF,qBACGG,EAAAA,gBAAoB,CAEfgB,E,0TCTmCqB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAYilB,C,MAAM,CAAkB,MAAQ1nB,EAAIgwE,MAAY,cAAkB,oBAAG,eAAC,I,GAA0B,CAAiC,kBAAE,yBAACrnE,G,YAAwC,O,IAAkB,Y,GAAC,SAAc,GAAqE,aAAG,kFAACnG,GAAWoG,C,IAAqB,O,GAAC,SAAc,GAAqE,aAAG,kFAACpG,GAAcoG,C,IAAc,UAA0B,GAAC,WAACwJ,MAAM,iBAAM,EAAa,WAChmB,UAGD,E,OTDA,SAAYg8D,GACVA,EAAAA,aAAAA,kBACAA,EAAAA,aAAAA,YACAA,EAAAA,aAAAA,YACAA,EAAAA,UAAAA,QACD,EALD,CAAYA,KAAAA,GAAiB,KAO7B,QAAe7nE,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAOgC,OAAQqkB,MAAOrkB,QAC/BqD,MAAK,WACH,IAAMspE,GAAclpE,EAAAA,EAAAA,KAAInD,OAAO8a,OAAO2vD,KACtC,MAAO,CAAE4B,YAAAA,EACX,IUf0T,M,uBCAxF,GAAe,KCO/O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICnBYC,GDmBZ,GAAe,GAAiB,QEtBYxtE,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAYilB,C,MAAM,CAAkB,MAAQ1nB,EAAIkwE,MAAe,cAAkB,uBAAG,eAAC,I,GAA0B,CAAiC,kBAAE,yBAACvnE,G,YAAwC,O,IAAkB,Y,GAAC,SAAc,GAAwE,aAAG,qFAACnG,GAAWoG,C,IAAqB,O,GAAC,SAAc,GAAwE,aAAG,qFAACpG,GAAcoG,C,IAAc,UAA0B,GAAC,WAACwJ,MAAM,iBAAM,EAAa,WACzmB,UAGD,E,ODDA,SAAY69D,GACVA,EAAAA,8BAAAA,6BACAA,EAAAA,4BAAAA,2BAEAA,EAAAA,iCAAAA,gCACAA,EAAAA,+BAAAA,8BAEAA,EAAAA,4BAAAA,2BACAA,EAAAA,0BAAAA,yBAEAA,EAAAA,4BAAAA,2BACAA,EAAAA,0BAAAA,wBACD,EAZD,CAAYA,KAAAA,GAAoB,KAchC,QAAe1pE,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEqnB,MAAOrkB,OAAQhC,MAAOgC,QAC/BqD,MAAK,WACH,IAAMwpE,GAAiBppE,EAAAA,EAAAA,KAAInD,OAAO8a,OAAOwxD,KACzC,MAAO,CAAEC,eAAAA,EACX,IEtB6T,M,uBCAxF,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYztE,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAQ,EAAI,MAACyzD,GAAsC,oB,OAAC,cAAwO,qBAAiB,C,MAAC,CAAkE,MAAQnwE,EAAIowE,MAAe,WAAe,6BAAE,6BAAC,MAAQ,EAAI,eAAoB,kBAAG,MAAC,uB,GAA0B,CAAiC,kBAAC,yBAAG,KAA3b,Q,MAAC,CAAkB,eAAc,GAAoD,MAAQ,EAAI,MAAoB,qEAAG,MAAC,uB,GAA0B,CAAiC,kBAAC,yBAAG,IAItV,E,MCJ4C3tE,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAYpB,C,MAAM,CAAoC,MAAQrB,EAAI0nB,MAAM,eAAmB/S,EAAAA,WAAY,cAAG,eAAC,e,GAA0B,CAAiC,kBAAE,yBAAChM,G,YAAwC,O,IAAkB,Y,GAAC,SAAc,GAA2D,aAAG,wEAACnG,GAAWoG,C,IAAqB,O,GAAC,SAAc,GAA2D,aAAG,wEAAG,MAIvhB,E,MCAMynE,GAAoB1sE,OAAO8a,OAAOjH,IAExC,IAAejR,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAOgC,OAAQqkB,MAAOrkB,OAAQsR,YAAaxR,QAAS+kB,MAAO9Q,OACpE1Q,MAAK,WACH,IAAM4pE,GAAaxpE,EAAAA,EAAAA,KAAIupE,IACvB,MAAO,CAAEC,WAAAA,EACX,ICXgT,M,uBCAxF,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QChBhC,IAAe/pE,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAOgC,OAAQtD,KAAMsD,QAC9BmD,WAAY,CAAE+pE,iBAAAA,IACd7pE,MAAK,SAAC6T,GACJ,IAAM41D,GAAcxrE,EAAAA,EAAAA,WAAS,WAC3B,OACE4V,EAAExa,OAASkwE,GAAqBO,4BAChCj2D,EAAExa,OAASkwE,GAAqBQ,wBAEpC,IACML,GAAiBtpE,EAAAA,EAAAA,KAAI,CACzB0Q,GAAAA,YACAA,GAAAA,UACAA,GAAAA,aACAA,GAAAA,UACAA,GAAAA,QACAA,GAAAA,YACAA,GAAAA,WACAA,GAAAA,KACAA,GAAAA,eACAA,GAAAA,eAEF,MAAO,CAAE24D,YAAAA,EAAaC,eAAAA,EACxB,IC7B4T,M,uBCAxF,GAAe,KCOjP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BhvE,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,iBAAiB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,MAAQrB,EAAIoR,GAAG,kDAAkD,cAAcpR,EAAIoR,GAAG,gDAAgD,MAAQpR,EAAIoR,GAAG,kDAAkD,SAAWpR,EAAIoR,GAAG,oDAAoD,MAAQ,CAACpR,EAAI07D,OAAOkL,YAAY,cAAc,CAAC5mE,EAAI07D,OAAOkL,YAAY,IAAM,GAAGjkE,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,IACxiB,EACIjc,GAAkB,GCEtB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAO+V,MAAOrX,KAAMsD,QAC7BmD,WAAY,CAAE0iE,eAAAA,MCN+S,M,uBCAxF,GAAe,KCOlP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYzmE,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAsB,oB,OAAC,OAAiB,C,MAAC,CAA6D,eAAYpB,GAAM,MAAQ,EAAI,GAACq6D,6BAAiB,wBAAE,cAAG,MAAC,uB,GAA0B,CAAiC,kBAAC,yBAAG,IAI9T,E,MCDA,IAAen1D,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEN,KAAMsD,OAAQhC,MAAOgC,UCJyR,M,uBCAxF,GAAe,KCO9O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYZ,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAsB,oB,OAAC,OAAiB,C,MAAC,CAA+D,eAAYpB,GAAM,MAAQ,EAAI,GAACq6D,8BAAiB,yBAAE,cAAG,MAAC,uB,GAA0B,CAAiC,kBAAC,yBAAG,IAIhU,E,MCDA,IAAen1D,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAOgC,OAAQtD,KAAMsD,UCJ4R,M,uBCAxF,GAAe,KCO/O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCGhC,IAAekD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEgB,MAAO8B,QAASsG,KAAM9F,QAC/B6C,WAAY,CACRkqE,2BAAAA,GACAC,8BAAAA,GACAC,6BAAAA,GACAC,8BAAAA,GACAC,0BAAAA,GACAC,2BAAAA,IAEJrqE,MAAK,SAAC6T,GACF,IAAM4T,GAAUrnB,EAAAA,EAAAA,KAA8B,IACxCkqE,GAAalqE,EAAAA,EAAAA,KAAiC,IAC9CipE,GAAkBjpE,EAAAA,EAAAA,MAAI,GACtBkpE,GAAclpE,EAAAA,EAAAA,KAAInD,OAAO8a,OAAO2vD,KAChC8B,GAAiBppE,EAAAA,EAAAA,KAAInD,OAAO8a,OAAOwxD,KACzC,GAAqBjpC,EAAAA,GAAAA,IAAYvZ,MAAzB/hB,EAAQ,EAARA,UAER3H,EAAAA,EAAAA,QACI,kBAAMwW,EAAE9Q,IAAI,IACZ,SAACkJ,GAA0C,oBACjCs+D,EAAgE,GAClD,QAApB,EAAAt+D,EAAEu+D,0BAAkB,OAApB,EAAsBh2D,SAAQ,SAAC8W,GAC3Bi/C,EAAWrxE,KAAK,CACZG,KAAMquE,GAAkB+C,OACxB38D,KAAMwd,EAAEm/C,OAAOv+D,WACfyB,MAAO,GACP+8D,SAAUp/C,EAAEo/C,UAEpB,IACkB,QAAlB,EAAAz+D,EAAE0+D,wBAAgB,OAAlB,EAAoBn2D,SAAQ,SAAC8W,GACzBi/C,EAAWrxE,KAAK,CACZG,KAAMquE,GAAkBkD,UACxB98D,KAAMwd,EAAE69B,UACRx7C,MAAO2d,EAAEu/C,YACTH,SAAUp/C,EAAEo/C,UAEpB,IACkB,QAAlB,EAAAz+D,EAAE6+D,wBAAgB,OAAlB,EAAoBt2D,SAAQ,SAAC8W,GACzBi/C,EAAWrxE,KAAK,CACZG,KAAMquE,GAAkBqD,UACxBj9D,KAAMwd,EAAEzb,OACRlC,MAAO,GACP+8D,SAAUp/C,EAAEo/C,UAEpB,IAC0B,QAA1B,EAAAz+D,EAAE++D,gCAAwB,OAA1B,EAA4Bx2D,SAAQ,SAAC8W,GACjCi/C,EAAWrxE,KAAK,CACZG,KAAMquE,GAAkBuD,UACxBn9D,KAAMwd,EAAE4/C,qBACRv9D,MAAO2d,EAAE69B,UACTuhB,SAAUp/C,EAAEo/C,UAEpB,IACAjjD,EAAQ9sB,MAAQ4vE,EAAW5wC,MAAK,SAACrO,EAAGC,GAAC,OAAKD,EAAEo/C,SAAWn/C,EAAEm/C,QAAQ,IACjE,IAAMS,EAA6C,GAC3B,QAAxB,EAAAl/D,EAAEm/D,8BAAsB,OAAxB,EAA0B52D,SAAQ,SAACpM,GAC/B+iE,EAAcjyE,KAAK,CACfG,KAAM+O,EAAEijE,UACF9B,GAAqB+B,uBACrB/B,GAAqBgC,yBAC3BC,UAAW,GACXttE,KAAMkK,EAAEqjE,wBAEhB,IACwB,QAAxB,EAAAx/D,EAAEy/D,8BAAsB,OAAxB,EAA0Bl3D,SAAQ,SAACpM,GAC/B+iE,EAAcjyE,KAAK,CACfG,KAAM+O,EAAEijE,UACF9B,GAAqBoC,uBACrBpC,GAAqBqC,yBAC3BJ,UAAW,GACXttE,KAAMkK,EAAEyjE,wBAEhB,IAC0B,QAA1B,EAAA5/D,EAAE6/D,gCAAwB,OAA1B,EAA4Bt3D,SAAQ,SAACpM,GACjC+iE,EAAcjyE,KAAK,CACfG,KAAM+O,EAAEijE,UACF9B,GAAqBQ,yBACrBR,GAAqBO,2BAC3B0B,UAAWpjE,EAAE2jE,mBACb7tE,KAAMkK,EAAE4jE,aAEhB,IAC6B,QAA7B,EAAA//D,EAAEggE,mCAA2B,OAA7B,EAA+Bz3D,SAAQ,SAACpM,GACpC+iE,EAAcjyE,KAAK,CACfG,KAAM+O,EAAEijE,UACF9B,GAAqB2C,4BACrB3C,GAAqB4C,8BAC3BX,UAAWpjE,EAAEgkE,iBACbluE,KAAMkK,EAAE4jE,aAEhB,IACA1B,EAAW3vE,MAAQwwE,EACnB9B,EAAgB1uE,MAAQsR,EAAEogE,uBAC9B,GACA,CAAE9oE,WAAW,EAAMjG,MAAM,IAG7B,IAAMgvE,EAAkB,WACpBhC,EAAW3vE,MAAMzB,KAAK,CAClBsyE,UAAW,GACXttE,KAAM,GACN7E,KAAMkwE,GAAqBO,4BAEnC,EAEMZ,EAAkB,SAACz0D,GACjBA,GAAK,IACL61D,EAAW3vE,MAAM+0B,OAAOjb,EAAG,GAC3B61D,EAAW3vE,OAAQ,QAAI2vE,EAAW3vE,OAE1C,EAEMyuE,EAAe,WACjB3hD,EAAQ9sB,MAAMzB,KAAK,CACf4U,KAAM,GACNH,MAAO,GACPtU,KAAMquE,GAAkBkD,WAEhC,EAEMzB,EAAe,SAAC10D,GACdA,GAAK,IACLgT,EAAQ9sB,MAAM+0B,OAAOjb,EAAG,GACxBgT,EAAQ9sB,OAAQ,QAAI8sB,EAAQ9sB,OAEpC,EAEM4xE,EAAoB,SAACz5D,GACvB,GAAIA,EAAQ,EAAG,CACX,IAAMsH,EAASqN,EAAQ9sB,MAAMmY,GACvB05D,EAAU/kD,EAAQ9sB,MAAMmY,EAAQ,GACtC2U,EAAQ9sB,MAAMmY,GAAS05D,EACvB/kD,EAAQ9sB,MAAMmY,EAAQ,GAAKsH,EAC3BqN,EAAQ9sB,OAAQ,QAAI8sB,EAAQ9sB,M,CAEpC,EAEM8xE,EAAmB,yCAAG,WAAO35D,GAAa,+EACxCA,EAAQ2U,EAAQ9sB,MAAM8W,OAAS,IACzB2I,EAASqN,EAAQ9sB,MAAMmY,GACvB05D,EAAU/kD,EAAQ9sB,MAAMmY,EAAQ,GACtC2U,EAAQ9sB,MAAMmY,GAAS05D,EACvB/kD,EAAQ9sB,MAAMmY,EAAQ,GAAKsH,EAC3BqN,EAAQ9sB,OAAQ,QAAI8sB,EAAQ9sB,QAC/B,2CACJ,gBARwB,sCAUnBpB,GAAO0E,EAAAA,EAAAA,WAA8C,WAAK,cACtD9D,EAAqC,CACvCwI,GAAU,QAAR,EAAEkR,EAAE9Q,YAAI,aAAN,EAAQJ,GACZ6lE,UAAgB,QAAN,EAAA30D,EAAE9Q,YAAI,aAAN,EAAQylE,YAAY,EAC9BkE,gBAAuB,QAAR,EAAE74D,EAAE9Q,YAAI,aAAN,EAAQ2pE,gBACzB5D,SAAgB,QAAR,EAAEj1D,EAAE9Q,YAAI,aAAN,EAAQ+lE,SAClB6D,UAAiB,QAAR,EAAE94D,EAAE9Q,YAAI,aAAN,EAAQ4pE,UACnB3nE,SAAUA,EAASrK,MACnB0xE,wBAAyBhD,EAAgB1uE,MACzCgwE,iBAAkB,GAClBK,yBAA0B,GAC1BF,iBAAkB,GAClBgB,yBAA0B,GAC1BG,4BAA6B,GAC7Bb,uBAAwB,GACxBZ,mBAAoB,GACpBkB,uBAAwB,IAgE5B,OA9DAjkD,EAAQ9sB,MAAM6Z,SAAQ,SAAC8W,EAAG7W,GAClB6W,EAAEjyB,OAASquE,GAAkBkD,UAC7BzwE,EAAKwwE,iBAAiBzxE,KAAK,CACvBiwD,UAAW79B,EAAExd,KACb+8D,YAAav/C,EAAE3d,MACf+8D,SAAUj2D,IAEP6W,EAAEjyB,OAASquE,GAAkBuD,UACpC9wE,EAAK6wE,yBAAyB9xE,KAAK,CAC/BgyE,qBAAsB5/C,EAAExd,KACxBq7C,UAAW79B,EAAE3d,MACb+8D,SAAUj2D,IAEP6W,EAAEjyB,OAASquE,GAAkBqD,UACpC5wE,EAAK2wE,iBAAiB5xE,KAAK,CACvB2W,OAAQyb,EAAExd,KACV48D,SAAUj2D,IAEP6W,EAAEjyB,OAASquE,GAAkB+C,QACpCtwE,EAAKqwE,mBAAmBtxE,KAAK,CACzBuxE,OAAQ7tE,OAAO0uB,EAAExd,MACjB48D,SAAUj2D,GAGtB,IACA61D,EAAW3vE,MAAM6Z,SAAQ,SAACpM,GAElBA,EAAE/O,OAASkwE,GAAqBO,4BAChC1hE,EAAE/O,OAASkwE,GAAqBQ,yBAEhC5vE,EAAK2xE,yBAAyB5yE,KAAK,CAC/BmyE,UAAWjjE,EAAE/O,OAASkwE,GAAqBQ,yBAC3CiC,YAAa5jE,EAAElK,KACf6tE,mBAAoB3jE,EAAEojE,YAG1BpjE,EAAE/O,OAASkwE,GAAqB4C,+BAChC/jE,EAAE/O,OAASkwE,GAAqB2C,4BAEhC/xE,EAAK8xE,4BAA4B/yE,KAAK,CAClCmyE,UAAWjjE,EAAE/O,OAASkwE,GAAqB2C,4BAC3CF,YAAa5jE,EAAElK,KACfkuE,iBAAkBhkE,EAAEojE,YAGxBpjE,EAAE/O,OAASkwE,GAAqBgC,0BAChCnjE,EAAE/O,OAASkwE,GAAqB+B,uBAEhCnxE,EAAKixE,uBAAuBlyE,KAAK,CAC7BmyE,UAAWjjE,EAAE/O,OAASkwE,GAAqB+B,uBAC3CG,uBAAwBrjE,EAAElK,OAG9BkK,EAAE/O,OAASkwE,GAAqBqC,0BAChCxjE,EAAE/O,OAASkwE,GAAqBoC,wBAEhCxxE,EAAKuxE,uBAAuBxyE,KAAK,CAC7BmyE,UAAWjjE,EAAE/O,OAASkwE,GAAqBoC,uBAC3CE,uBAAwBzjE,EAAElK,MAGtC,IACO/D,CACX,IAEA,MAAO,CACHstB,QAAAA,EACA6iD,WAAAA,EACAjB,gBAAAA,EACAC,YAAAA,EACAE,eAAAA,EACAjwE,KAAAA,EACA+yE,gBAAAA,EACApD,gBAAAA,EACAE,aAAAA,EACAD,aAAAA,EACAoD,kBAAAA,EACAE,oBAAAA,EAER,IC9QuT,M,uBCAxF,GAAe,KCO9O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBgFrzE,GAAM,W,IAAC,EAAM,K,EAAI,EAAO,MAAC,GAAc,oB,OAAC6I,EAAAA,GAAAA,EAAgByH,C,MAAqB,CAAYxH,KAAG,G,MAAkB,e,YAA6D,aAAiN,KAAjN,CAAK,IAAC,YAAmB5I,GAAI0Q,WAA0HhO,MAAW,GAAC,YAAkB,gCAAC5C,EAAO,OAAO,IAAa,U,CAA4B,KAAO,UAAKkvE,EAAQQ,KAAQ,Q,YAAY,mB,MAAI,CAAkB,kBAAG,qBAAC,OAAC,MAAQ,mB,UAAwBr+C,GAAkB,eAAC,I,GAA0B,C,MAAiH9e,SAAe,GAAG,mBAAC,E,MAAgCrS,SAAU,G,IAA2BwvE,EAAUnzD,KAAAA,QAAAA,QAAAA,EAAAA,GAAAA,EAAAA,QAAAA,QAAAA,GAAAA,EAAAA,IAAAA,CAAAA,IAAAA,aAAAA,OAAAA,KAAM,EAAG,kBAAC,kBAAM,OAAC,EAAU,MAAK,SAAI,QAAe,yBAAC,SAAYhb,IAC16B,KADmiB,uDAIpiB,EAASD,GAAAA,GAAQhB,EAAAA,GAAAA,UAAe,M,2BCAhC,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CAAEgB,MAAOsC,OAAQ20D,KAAMn1D,QAASsF,MAAOpF,QAC9CqD,MAAK,SAAC6T,GACJ,IAAMy0D,GAAUrqE,EAAAA,EAAAA,WAAS,kBAAM4V,EAAElZ,KAA4C,IAC7E,MAAO,CAAE2tE,QAAAA,EACX,ICTuT,MCOrT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCVhC,IAAezoE,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAE8sE,0BAAAA,GAA2BC,wBAAAA,IACzC7sE,MAAK,WACD,IAAMw2C,GAAcp2C,EAAAA,EAAAA,KAAI,MAClB0sE,GAAW1sE,EAAAA,EAAAA,KAAsC,IACjDuoE,GAAkBvoE,EAAAA,EAAAA,KAA+B,CAAC,GAClDwoE,GAAexoE,EAAAA,EAAAA,MAAI,GACnB6oE,GAAY7oE,EAAAA,EAAAA,MAAI,GAChByoE,GAAuBzoE,EAAAA,EAAAA,MAAI,GAC3B2sE,GAAuB3sE,EAAAA,EAAAA,MAAI,GAC3B4sE,GAAa5sE,EAAAA,EAAAA,KAA2C,MACxD6sE,GAAiB7sE,EAAAA,EAAAA,KAAI,YACrB4oE,GAAoB5oE,EAAAA,EAAAA,MAAI,GACxB8sE,GAAgB9sE,EAAAA,EAAAA,MAAI,GAC1B+c,KAAoBhV,MAAK,SAACG,GACtB,IACIwkE,EAASnyE,MAAQ2N,EACjB2gE,EAAUtuE,OAAQ,C,CACpB,MAAOuG,KACLjG,EAAAA,EAAAA,IAAW,2C,CAEnB,IACA,IAAMkyE,EAAY,yCAAG,oFAEU,OAFV,SAEblE,EAAUtuE,OAAQ,EAAK,SACAwiB,KAAmB,OAA1C2vD,EAASnyE,MAAQ,EAAH,KACduyE,EAAcvyE,OAAQ,EAAM,OAEJ,OAFI,SAE5BsuE,EAAUtuE,OAAQ,EAAM,uEAE/B,kBARiB,mCASZyyE,EAAwB,WAC1BvE,EAAqBluE,OAAQ,EAC7BsyE,EAAetyE,MAAQ,WACvBqyE,EAAWryE,MAAQ,CACfgI,IAAK,EAAIoJ,KAAKwP,KAAqB,IAAhBxP,KAAKC,UACxBw8D,UAAU,EACVM,SAAUmE,EAAetyE,MACzB+xE,gBAAiB,QACjBC,UAAWG,EAASnyE,MAAM8W,OAAS,EACnC46D,yBAAyB,EACzBrnE,SAAU,KACVinE,4BAA6B,CAAC,CAAEG,iBAAkB,GAAIf,WAAW,EAAOW,YAAa,KACrFrB,iBAAkB,CAAC,CAAExhB,UAAW,GAAI0hB,YAAa,GAAIH,SAAU,IAEvE,EACM3B,EAAwB,yCAAG,WAAOT,GAAuC,6EAE7C,OAF6C,SAEvEM,EAAajuE,OAAQ,EAAK,SACF2iB,IAAiB,kBAClCgrD,GAAO,IACVQ,SAAUmE,EAAetyE,SAC3B,OAHI0yE,EAAY,EAAH,KAIfP,EAASnyE,MAAQ,GAAH,gBAAOmyE,EAASnyE,OAAK,CAAE0yE,IAAW,mDAEhDH,EAAcvyE,OAAQ,EAAK,QAGA,OAHA,UAE3BkuE,EAAqBluE,OAAQ,EAC7BiuE,EAAajuE,OAAQ,EAAM,4EAElC,gBAd6B,sCAexB2yE,EAAoB,yCAAG,WAAOhF,GAAuC,uEAEzC,OAFyC,SAEnEM,EAAajuE,OAAQ,EAAK,SACpB0iB,GAAiBirD,EAAQ3lE,GAAI2lE,GAAQ,QAC3CntE,EAAAA,EAAAA,IAAa,gCAAgC,mDAE7C+xE,EAAcvyE,OAAQ,EAAK,QAEA,OAFA,UAE3BiuE,EAAajuE,OAAQ,EAAM,4EAElC,gBAVyB,sCAWpB4yE,EAAkB,yCAAG,WAAOz6D,GAAa,oFACvCA,EAAQ,GAAC,iBASgC,OAThC,SAEL81D,EAAajuE,OAAQ,EACfyf,EAAS0yD,EAASnyE,MAAMmY,GACxB05D,EAAUM,EAASnyE,MAAMmY,EAAQ,GACvCg6D,EAASnyE,MAAMmY,GAAS05D,EACxBA,EAAQG,UAAY75D,EACpBg6D,EAASnyE,MAAMmY,EAAQ,GAAKsH,EAC5BA,EAAOuyD,UAAY75D,EAAQ,EAC3Bg6D,EAASnyE,OAAQ,QAAImyE,EAASnyE,OAAO,UAC/B4iB,GAAmBuvD,EAASnyE,OAAM,6DAExCuyE,EAAcvyE,OAAQ,EAAK,QAEA,OAFA,UAE3BiuE,EAAajuE,OAAQ,EAAM,6EAGtC,gBAlBuB,sCAmBlB8tE,EAAoB,yCAAG,WAAO31D,GAAa,oFACzCA,EAAQg6D,EAASnyE,MAAM8W,OAAS,GAAC,iBASQ,OATR,SAE7Bm3D,EAAajuE,OAAQ,EACfyf,EAAS0yD,EAASnyE,MAAMmY,GACxB05D,EAAUM,EAASnyE,MAAMmY,EAAQ,GACvCg6D,EAASnyE,MAAMmY,GAAS05D,EACxBA,EAAQG,UAAY75D,EACpBg6D,EAASnyE,MAAMmY,EAAQ,GAAKsH,EAC5BA,EAAOuyD,UAAY75D,EAAQ,EAC3Bg6D,EAASnyE,OAAQ,QAAImyE,EAASnyE,OAAO,UAC/B4iB,GAAmBuvD,EAASnyE,OAAM,6DAExCuyE,EAAcvyE,OAAQ,EAAK,QAEA,OAFA,UAE3BiuE,EAAajuE,OAAQ,EAAM,6EAGtC,gBAlByB,sCAmBpB+tE,EAAa,yCAAG,WAAO51D,GAAa,sFAClCA,GAAS,GAAC,iBAI+B,GAJ/B,SAEN81D,EAAajuE,OAAQ,EAAK,EACLmyE,EAASnyE,MAAM+0B,OAAO5c,EAAO,GAAE,gBAA7C06D,EAAU,KACjBV,EAASnyE,OAAQ,QAAImyE,EAASnyE,QAC1B6yE,EAAY,CAAF,+BACJpwD,GAAiBowD,EAAW7qE,IAAG,QACrCxH,EAAAA,EAAAA,IAAa,gCAAgC,4DAGjD+xE,EAAcvyE,OAAQ,EAAK,QAEA,OAFA,UAE3BiuE,EAAajuE,OAAQ,EAAM,6EAGtC,gBAhBkB,sCAiBb4tE,EAAyB,yCAAG,WAAOD,EAAyCE,GAAiB,uEAE/D,OAF+D,SAE3FF,EAAQE,SAAWA,EAAS,SACtBnrD,GAAiBirD,EAAQ3lE,GAAI2lE,GAAQ,QAC3CntE,EAAAA,EAAAA,IAAa,WAAD,OAAYmtE,EAAQQ,SAAQ,eAAON,EAAW,SAAW,aAAc,mDAEnFF,EAAQE,UAAYA,GACpBvtE,EAAAA,EAAAA,IAAW,0CAA0C,yDAE5D,gBAT8B,wCAU/B,MAAO,CACHu7C,YAAAA,EACAs2B,SAAAA,EACAjE,qBAAAA,EACAE,yBAAAA,EACAqE,sBAAAA,EACAzE,gBAAAA,EACAsE,eAAAA,EACAM,mBAAAA,EACA9E,qBAAAA,EACAC,cAAAA,EACA4E,qBAAAA,EACAN,WAAAA,EACApE,aAAAA,EACAI,kBAAAA,EACAkE,cAAAA,EACAC,aAAAA,EACA5E,0BAAAA,EACAU,UAAAA,EACA8D,qBAAAA,EAER,ICtKyS,MCOzS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClByG,W,IAAoB,OAAuB,EAAC,WAAC9qE,EAAY3I,MAAM,Y,OAAM,EAAC,cAAe,gB,MAAI,C,aAAwBc,O,MAAmC4B,iB,YAA0B,EAAQ,K,uBAA8B,WAAC,MAAG1C,CAAG,EAAG,QAAM,EAAO,KAAC,CAAC0C,YAAY,OAAO5C,MAAM,CAAC,MAAQ,YAAY,oBAAK,OAAQ,O,YAAwBE,O,MAAqB,CAAC,mBAAiBF,GAAAA,CAAO,MAAQ,YAAE,0BAAIE,IAA2D,GAAC,KAAM,OAAO,WAA8EG,CAAE,EAAC,cAAoB,GAAE,0BAAS,GAACuC,EAA0B1C,OAAO,MAAmGF,CAAAA,EAAK,KAAC,4B,YAAW,aAAG,qCAAE,YAAS,aAAyF,MAAS,gBAAM,iCAA8F,OAA9F,gB,YAAKqb,cAAC,MAAM,CAAMzY,QAAW,M,CAA2D5C,EAAAA,GAAM,0E,OAAC,EAAM,KAAC,CAAE,IAAC,GAAC6C,CAAE,EAAC,M,YAAS,a,GAAiB,OAAWwxE,EAAAA,GAAAA,EAAAA,MAAiBC,KAAG,O,MAAA,CAAC,SAAmD1xE,GAAAA,CAA0BD,MAAG,SAAiB,GAAC3C,OAAM,qBAAC,I,CAAwC,MAAO,iBAAW,OAAS,Q,YAAW,aAAmF,qBAAC6C,MAAG,CAAC,MAAQ,S,cAA4B0xE,QAAmC,kCAAC,4FAAY,GAAI,CAAoB1rE,MAAY3I,SAAQ,GAAI,OAAC,EAAS,4BAAG,MAAqB,I,UAAsCF,EAAK,cAAC,C,YAAC,EAAQE,GAAG,CAACs0E,C,iBAAoE,SAAC,G,IAAC3rE,EAAAA,EAAY3I,M,MAAY,GAAC,0BAAS,C,MAAI,C,MAAW8I,EAAO,kB,QAAQ,QAANgI,GAAAA,6B,YAAqB,KAAJ7Q,CAAAA,C,IAAQ,U,GAA0B0C,SAAG,G,IAAC,EAAQ,U,EAAiB,EAAOoO,O,EAAO,UAAC,SAAC,MAAM,iBAAe,CAASjR,GAAAA,CAAO,MAAO,SAAQ,GAAC,OAAQ,GAAY,KAA8C,QAAUgB,EAAAA,EAAAA,EAAO,C,MAAC,CAAc,cAAG,MAAC,YAAC,UAAQ,G,UAAwBuR,GAAc,E,QAAWxD,E,KAAK,G,GAA+B,CAAC,kBAAI7O,EAAO,iBAAqB,IAAW,iBAAUF,OAAM,mBAAC,GAAS,IAAyC,GAAI,uCAAQ,MAAK,CAAI,UAAI,+BAAO,QAAM,IAAmC,MAAC,KAA2C,KAAkC,OAAI,MAAM,EAAC,oBACx0E,qBACGM,EAAAA,oBAAoB,CAExB,E,mDCQA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAE0iE,eAAAA,GAAgBtN,qBAAAA,IAC9Bl1D,MAAK,WACD,IAAM6tE,GAAeztE,EAAAA,EAAAA,KAA6B,IAC5C0tE,GAAsB1tE,EAAAA,EAAAA,MAAI,GAC1BwtE,GAAoBxtE,EAAAA,EAAAA,KAAoC,CAAC,GACzDhG,GAAUgG,EAAAA,EAAAA,MAAI,GACd2tE,EAAW,yCAAG,oFAES,OAFT,SAEZ3zE,EAAQO,OAAQ,EAAK,SACM6jB,KAAiB,OAA5CqvD,EAAalzE,MAAQ,EAAH,YAEI,OAFJ,SAElBP,EAAQO,OAAQ,EAAM,uEAE7B,kBAPgB,mCAQjBozE,IACA,IAAMC,EAAc,yCAAG,WAAO7zE,GAAsB,uEAEvB,GAFuB,SAE5CC,EAAQO,OAAQ,GACZizE,EAAkBjzE,MAAMgI,GAAI,CAAF,+BACpBic,GAAe,CACjBjc,GAAIirE,EAAkBjzE,MAAMgI,GAC5BpG,KAAMpC,EAAKkc,KACX8I,OAAQyuD,EAAkBjzE,MAAMwkB,QAAU,KAC5C,6CAEIT,GAAkB,CACpB/b,IAAK,EACLpG,KAAMpC,EAAKkc,KACX8I,OAAQ,KACV,OAGgB,OAHhB,SAGN/kB,EAAQO,OAAQ,EAAM,qCAEpBozE,IAAa,6DACtB,gBApBmB,sCAqBdJ,EAAuB,yCAAG,WAAOD,EAA2BvuD,GAAgB,uEAGvD,OAHuD,SAE1E/kB,EAAQO,OAAQ,EAChB+yE,EAAGvuD,OAASA,EAAO,SACbP,GAAe8uD,GAAG,OAEF,OAFE,SAExBtzE,EAAQO,OAAQ,EAAM,oCAEpBozE,IAAa,4DACtB,gBAT4B,wCAUvBE,EAAkB,WACpBL,EAAkBjzE,MAAQ,CAAC,EAC3BmzE,EAAoBnzE,OAAQ,CAChC,EACM8yE,EAAmB,SAAC9uD,GACtBivD,EAAkBjzE,MAAQgkB,EAC1BmvD,EAAoBnzE,OAAQ,CAChC,EACA,MAAO,CACHkzE,aAAAA,EACAE,YAAAA,EACAD,oBAAAA,EACAF,kBAAAA,EACAI,eAAAA,EACAC,gBAAAA,EACAR,iBAAAA,EACArzE,QAAAA,EACAuzE,wBAAAA,EAER,IC9E0S,MCO1S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClB8L,W,IAAgBzrE,EAAG,K,EAAW,QAAW,GAA2B,EAAC,kB,SAAC,WAAU,kBAASyT,C,oBAAgC,O,MAAE,8B,YAA0B,O,wCAAgC,2BAA0B,C,YAA0B,Y,OAAC,EAAO,a,eAAuC,O,mBAAW,YAAC,IAAGrc,EAAIG,EAAG,GAA6B,mBAAI,mBAAM,MAAC,CAAM,MAAM0nE,cAAsC,GAACA,CAAAA,EAAQ,IAAI,CAAC,OAACnmE,MAAW,KAAc,iCAAC,KAAa,OAAO,QAAc,SAAQ,qBAAC,EAAU1B,SAAW,CAAC,EAAsB,WAAY40E,cAA0BjsE,EAAqBnG,OAAG,M,GAAqC,KAAH,C,MAAI,C,QAAwC,U,QAAC,U,MAAc,W,WAACmG,M,YAAwC,O,+BAAyBlG,G,MAAmB3C,EAAM,K,SAAC,KAAwd,OAAjd,Q,MAAE,C,WAAQ2C,IAAwC,YAAQ,EAAI,KAAIA,IAAG,YAAU3C,GAAK,SAAC,GAAC,MAAQ,KAAE,mBAAO,OAAkB,UAA0B,GAAOE,CAAAA,EAAI60E,EAAAA,EAAAA,CAAAA,EAAat/D,GAAAA,gBAAK,OAAC,UAAG,CAAC9S,EAAG,MAAkK,OAAG,WAAmB,SAAkB,GAAP8S,CAAQ,MAAW,SAAM,GAAC7S,OAAW,EAAC,eAAkB1C,IAA8B,gGAACwC,GAAmBoG,C,IAAqB,W,GAAC,SAAc47B,G,IAAsB1kC,EAAM,O,MAAC,GAAO,MAAC,CAAO,6BAAG,CAACE,EAAIG,GAAG,e,QAAmD,e,GAAE,SAAS,GAAY,aAAI,MAAK,GAAI,eAAO,OAA6B,gBAA6B,+BAAI,OAAC,MAAU,QAAyC,kBAAE,IAACqB,MAAM,KAACH,EAAAA,sBAAqB,C,MAACkB,C,QAA6BkkE,EAAS,e,GAAM/kE,CAAsB,oBAAM,OAAK,eACh2D,GAGD,MAASN,C,+FCJLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,sBAAsB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAI80E,QAAQ,QAAU90E,EAAImc,MAAMC,GAAG,oBAAoBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAA0C,IAA/B3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAASiI,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,kBAAmBK,WAAW,sBAAsB5B,MAAM,CAAC,MAAQG,EAAK,MAAQ,WAAO,EAAE,MAAQ6I,EAAQ,KAAOgI,GAAQnO,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIyc,yBAAyBJ,EAAO,GAAC,KAAK,IAAI,MAAK,IAChuB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAoB9I,EAAM,Q,MAAC,sBAAuB,C,MAAC,CAAsB,SAAWg1E,EAAAA,SAAQ,kBAACnsE,KAAAA,EAAY3I,S,YAA0B,O,IAA0C,U,GAAzB8I,SAAO,G,IAAEvI,EAAK,EAALA,KAAOuQ,EAAM,EAANA,QAAU,EAAU,EAAC,MAAenO,EAAG,S,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAkD,QAASqO,EAAM,mBAAC,OAAkB,OAAQvQ,EAAM,QAAQwQ,EAAO,MAAC,YAAiB,eAAgB,IACxtB,UAGD,E,MCJ4D,GAAU,W,IAAajR,EAAM,K,EAAC,EAAO,MAAC,G,OAAU,cAAW,C,MAA8D,CAAsB,gBAAC6I,SAAY3I,8DAASwC,QAAI,EAAS,S,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAU,EAAK,OAAC,EAAQ,EAACF,M,MAAO,GAAS,GAAC9Q,UAAW,MAAC,OAAUA,KAAY,OAAQgR,EAAO,QAAC,4BAAI,MAAU,IAAQ3P,IAAoBkB,MAAQ,G,MAAoB,CAAY,MAAC,UAACb,SAAU,SAAC,GAAS,WAAIe,EAAmB3C,WAAM,Y,CAAgB,OAAc47D,C,MAAwC,CAAc,UAAQ,GAAO,6CAACl6D,SAAM,GAACH,MAAOrB,Q,MAAsC,CAAS,MAAC,OAAC0B,SAAU,SAAC,GAAM,QAAIe,EAAmB3C,WAAM,UAAmC,OAAQ,CAAK,MAAC,CAAC0B,MAAM,sBAACH,MAAOrB,O,MAAqC,CAAQ,MAAC,MAAC0B,SAAU,SAAC,GAAK,OAAIe,EAAiB3C,WAAM,SAAmB,QAAC0B,MAAM,CAACH,MAAOrB,W,MAAyC,CAAY,MAAC,UAAC0B,SAAU,SAAC,GAAS,WAAI,EACz+B,yBAGD,E,QCAA,IACIrB,MAAO,CAAES,QAASqC,QAASsG,KAAM9F,QACjC+C,MAAK,SAACrG,GAAK,YACDgJ,GAAKvC,EAAAA,EAAAA,MAAsB,QAAV,EAAAzG,EAAMoJ,YAAI,aAAV,EAAYJ,MAAO,GACpCpG,GAAO6D,EAAAA,EAAAA,MAAsB,QAAV,EAAAzG,EAAMoJ,YAAI,aAAV,EAAYxG,OAAQ,IACvC8xE,GAAcjuE,EAAAA,EAAAA,KAAY7D,EAAK5B,OAAS,IACxCoQ,GAAM3K,EAAAA,EAAAA,MAAsB,QAAV,EAAAzG,EAAMoJ,YAAI,aAAV,EAAYgI,MAAO,IACrC+yB,GAAU19B,EAAAA,EAAAA,MAAuB,QAAV,EAAAzG,EAAMoJ,YAAI,aAAV,EAAY+6B,WAAW,GAC9C17B,GAAUhC,EAAAA,EAAAA,MAAa,GAEvBkuE,GAAgBluE,EAAAA,EAAAA,KAAc,IAC9BmuE,EAAiB,SAAC5zE,GACpB,OAAO0zE,EAAY1zE,OAAS4B,EAAK5B,QAAU2zE,EAAc3zE,MAAM8K,SAAS9K,IAEtE,2BACN,GAEAimC,EAAAA,EAAAA,YAAS,uBAAC,oGACsBtiB,KAA0B,OAAtDgwD,EAAc3zE,MAAQ,EAAH,iDAGvB,IAAMpB,GAAO0E,EAAAA,EAAAA,WAAS,WAClB,MAAO,CACH0E,GAAIA,EAAGhI,MACP4B,KAAMA,EAAK5B,MACXoQ,IAAKA,EAAIpQ,MACTmjC,QAASA,EAAQnjC,MACjB6zE,WAAY,GAEpB,IAEA,MAAO,CACH7rE,GAAAA,EACApG,KAAAA,EACAwO,IAAAA,EACA+yB,QAAAA,EACA17B,QAAAA,EACA7I,KAAAA,EACA+0E,cAAAA,EACAC,eAAAA,EAER,EACAlxE,MAAO,CACH,UAAW,SAAU0b,EAAQC,GACzBzd,KAAKoH,GAAKoW,CACd,EACA,YAAa,SAAUA,EAAQC,GAC3Bzd,KAAKgB,KAAOwc,CAChB,EACA,WAAY,SAAUA,EAAQC,GAC1Bzd,KAAKwP,IAAMgO,CACf,EACA,eAAgB,SAAUA,EAAQC,GAC9Bzd,KAAKuiC,QAAU/kB,CACnB,IC1DwS,MCQ5S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCjBhC,IACIpf,MAAO,CAAEgB,MAAO8B,QAASrC,QAASqC,QAASmG,SAAUnG,QAAS2xE,QAASnxE,QACvE6C,WAAY,CAAE2uE,eAAgBA,IAC9Bp0E,QAAS,CACLiS,KAAI,WACA/Q,KAAKgE,MAAM,SAAS,EACxB,ICR2S,MCO/S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7E,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,gBAAgB,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC3N,EACI5f,GAAkB,GCoBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,oCACA,IC3B4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QClBhC,IACI6E,WAAY,CAAE4uE,kBAAAA,GAAmBC,oBAAAA,IACjCh1E,MAAO,CACHgB,MAAO,CACHtB,KAAMoD,QACN3C,SAAS,GAEbs0E,QAAS,CACL/0E,KAAM4D,OACNnD,QAAS,OAGjBO,QAAS,CACL0b,yBAAwB,SAACxc,IACrB4B,EAAAA,EAAAA,IAAaI,KAAKmP,GAAG,gDAAiD,CAAEkkE,YAAar1E,EAAKgD,QAC1FhB,KAAKgE,MAAM,UAAWhG,EAC1B,ICpB6S,M,uBCAxF,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BmB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,sBAAsB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,QAAUrB,EAAI80E,QAAQ,QAAU90E,EAAImc,MAAMC,GAAG,mBAAmBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,YAAY,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAmD,IAAxC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAAShI,EAAO,EAAPA,QAASiQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,sBAAsB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,iBAAkBK,WAAW,qBAAqB5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEoJ,GAAIrJ,EAAI80E,QAAQzrE,KAAK,MAAQ,WAAO,EAAE,MAAQP,EAAQ,KAAOgI,EAAO,QAAUhQ,GAAS6B,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIyc,yBAAyBxc,EAAK,GAAC,KAAK,IAAI,MAAK,IAC/wB,EACIG,GAAkB,GCFlBgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,yBAAmBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,MAAQrJ,EAAIqB,MAAM,QAAU,MAAMsB,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACnQ,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,kCACA,IC5B0Q,M,uBCA/C,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QClBhC,IACI6E,WAAY,CAAE4uE,kBAAAA,GAAmBG,kBAAAA,IACjCl1E,MAAO,CACHgB,MAAO,CACHtB,KAAMoD,QACN3C,SAAS,GAEbs0E,QAAS,CACL/0E,KAAM4D,OACNnD,QAAS,OAGjBO,QAAS,CACL0b,yBAAwB,SAACxc,IACrB4B,EAAAA,EAAAA,IAAaI,KAAKmP,GAAG,6CAA8C,CAAEkkE,YAAar1E,EAAKgD,QACvFhB,KAAKgE,MAAM,UAAWhG,GACtBgC,KAAKgE,MAAM,eACf,ICrB2S,M,uBCAxF,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCRhC,IAAeM,EAAAA,EAAAA,iBAAgB,CAC3B5B,SAAU,CACNrD,QAAO,WACH,MAAO,CACH,CACIS,KAAME,KAAKmP,GAAG,QACd/P,MAAO,OACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,sBACd/P,MAAO,MACPswB,UAAU,EACVvuB,MAAO,SAEX,CACIrB,KAAME,KAAKmP,GAAG,6BACd/P,MAAO,aACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,0BACd/P,MAAO,UACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,WACd/P,MAAO,UACPswB,UAAU,GAGtB,GAEJnrB,WAAY,CAAEgvE,oBAAAA,GAAqBC,kBAAAA,IACnC/uE,MAAK,WACD,IAAMkuE,GAAW9tE,EAAAA,EAAAA,KAAyB,IACpC2/D,GAAY3/D,EAAAA,EAAAA,MAAI,GAChB+gE,GAAW/gE,EAAAA,EAAAA,MAAI,GACf4uE,GAAgB5uE,EAAAA,EAAAA,KAAgC,CAAC,GACjDhG,GAAUgG,EAAAA,EAAAA,MAAI,GACd2tE,EAAW,yCAAG,oFAES,OAFT,SAEZ3zE,EAAQO,OAAQ,EAAK,SACE4jB,KAAa,OAApC2vD,EAASvzE,MAAQ,EAAH,YAEQ,OAFR,SAEdP,EAAQO,OAAQ,EAAM,uEAE7B,kBAPgB,mCAQjBozE,IACA,IAAMI,EAAY,yCAAG,WAAOxvD,GAAuB,uFACnBF,GAAWE,EAAKhc,IAAG,OAA/CqsE,EAAcr0E,MAAQ,EAAH,KACnBolE,EAAUplE,OAAQ,EAAK,2CAC1B,gBAHiB,sCAIlB,MAAO,CACHuzE,SAAAA,EACAH,YAAAA,EACAhO,UAAAA,EACAiP,cAAAA,EACAb,aAAAA,EACA/zE,QAAAA,EACA+mE,SAAAA,EAER,IC5E0S,M,uBCAxF,GAAe,KCQjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvBoN,cAAC,IAAGplE,EAAG,KAA4B3C,EAAK,EAAC,SAAC,EAAU,MAAK,Y,OAAC,OAAiB,CAAC,kB,YAAS,OAAkC,MAAC,CAAC6I,MAAW,EAAC3I,GAAIoQ,0BAAK5N,QAAI,mC,GAA6B,2BAAmB,C,MAAC1C,C,UAAO,E,MAAmC,W,MAAI,oC,YAA0B,EAAOE,GAAG,CAAC21E,C,sBAAoB,WAAC,MAAM,OAAS,CAAC71E,MAAM,CAAC,UAAO,sBAAI,GAAEE,CAA4C,kBAAO,4BAAO,IAAa,GAAEA,EAAAA,EAAI41E,CAAarzE,MAAS,CAAoBqzE,KAAAA,KAAiBl0E,CAAAA,EAAU,GAAC,kCAAa,EAAIe,OAAG,K,MAAyb,CAAsB,oBAAC3C,SAAM,YAAC,cAAU,CAAG,EAAIE,WAAO,iBAA+FwC,EAAG,KAAC2Y,CAAAA,EAAAA,qBAAAA,OAAAA,EAAAA,KAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,WAAAA,GAAAA,EAAAA,GAAAA,GAAAA,CAAAA,EAAAA,GAAAA,gDAAAA,GAAAA,EAAAA,GAAAA,EAAAA,CAAAA,EAAAA,QAAAA,CAAAA,EAAAA,KAAAA,CAAAA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,iBAAAA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,gBAAAA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,WAAAA,EAAAA,UAAAA,EAAAA,QAAAA,CAAAA,IAAAA,EAAAA,qBAAAA,OAAAA,EAAAA,KAAAA,CAAAA,EAAAA,KAAAA,CAAC,YAAU,CAAyJzY,aAAY,U,MAA2C,C,QAAS,M,CAAgB,EAAC,2E,OAAI,Q,IAAC,G,GAAyB,OAAWmzE,CAAAA,EAAAA,GAAQ,IAAGt/D,EAAO,2G,YAAA,cAAC,iBAAE,MAAK,CAAUzW,KAAM,GAAC,MAAO,OAAI,GAAEE,CAAuDF,MAAM,YAAC,OAAO,oBAAG,I,CAAK,MAAQ,C,MAAiB,CAA2B,UAAI,CAAC2C,EAAG,iBAAS,2BAAC3C,MAAM,CAAC,KAAO,IAAI,GAAEE,CAAqDF,MAAM,YAAC,OAAO,EAAE,gBAAC,IAAe6C,CAAE,EAAC,K,MAAC,C,KAAyB,KAA+B,6CAAE,MAAK,CAAU7C,KAAM,GAAC,MAAO,OAAI,GAAEE,CAAkE,MAAQ,SAAO,GAC/jE,4BACGI,I,8GCIJ,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEolB,yBAAAA,IACdllB,MAAK,WACD,IAAMkvE,GAAc9uE,EAAAA,EAAAA,KAA8B,IAC5CimB,EAAcU,KACpB,GAAuBuZ,EAAAA,GAAAA,IAAYja,GAA3B7J,EAAU,EAAVA,WAEF4yD,GAAuBnxE,EAAAA,EAAAA,WAAS,WAClC,OAAKue,EAAW7hB,MACTsC,OAAO8a,OAAOyE,EAAW7hB,OADF,EAElC,IACM00E,EAAS,yCAAG,WAAOC,GAAW,2EAC5BlqE,OAAOmqE,QAAQ,mCAAD,OAAoCD,IAAQ,CAAF,+BAClDhvD,GAAiBgvD,GAAI,uBACrBjpD,EAAYsB,aAAY,2CAErC,gBALc,sCAMTwnD,EAAQ,yCAAG,WAAOG,GAAW,2EAC3BlqE,OAAOmqE,QAAQ,kCAAD,OAAmCD,IAAQ,CAAF,+BACjD9uD,GAAe8uD,GAAI,uBACnBjpD,EAAYsB,aAAY,2CAErC,gBALa,sCAMRsnD,EAAiB,yCAAG,yGACJC,EAAYv0E,OAAK,wDAArB,OAAHmB,EAAG,iBACJskB,GAAgBtkB,EAAIsa,IAAG,gJAEV,OAAvB84D,EAAYv0E,MAAQ,GAAG,UACjB0rB,EAAYsB,aAAY,gEACjC,kBANsB,mCAOjB6nD,EAAM,yCAAG,WAAOF,GAAW,uFACvB/uD,GAAa+uD,GAAI,uBACjBjpD,EAAYsB,aAAY,2CACjC,gBAHW,sCAIZ,MAAO,CAAEunD,YAAAA,EAAa1yD,WAAAA,EAAY4yD,qBAAAA,EAAsBC,UAAAA,EAAWJ,kBAAAA,EAAmBE,SAAAA,EAAUK,OAAAA,EACpG,ICzC4S,M,uBCAxF,GAAe,KCQnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCvB4H,cAAC,IAAGzzE,EAAG,KAAgB3C,EAAK,EAAC,SAAQ,EAAC,kB,OAAW,wBAAE,MAAK,CAAYA,KAAM,O,CAAwC,iBAAiB,C,MAAC,CAAuB,oBAA0C,SAAC6C,MAAG,CAAC,MAAQ,+B,MAAyB3C,EAAIm2E,MAAa,uBAAE,qBAAC30E,QAAM,Y,GAA6Be,C,OAA6B6zE,SAAgBpsD,GAAI,sBAACtoB,GAA+B,MAAI,CAAgBgB,MAAAA,EAAY,gBAAc5C,SAAM,YAAC,kBAAqB,CAAC,EAAqB,WAAW,qBAA2B,OAAc,C,YAAc,c,MAAiB,CAAiC,kBAAC6I,MAAW,EAAC3I,SAASwC,WAAG,KAAkBoG,QAAG,U,eAAe,a,cAAe,G,gBAAmB,gB,YAAa,O,IAACD,iB,YAAyB,G,IAAYC,EAAG,O,MAAgB,GAALjG,GAAAA,EAAAA,C,MAAM,CAA6F,WAAe,YAAY,EAAI,GAAG,CAAC3C,CAA4B,gBAAG,eAAK,QAAe,GAAI,gBAA2B,iEAAhBsB,IAAa,UAAI,GAAO,OAAQ,GAAC,0B,QAAgC,gB,GAAE,SAAS,GAAsC,gBAAI,EAAK,EAAI,KAAM,MAAM,GAAG,KAAI,CAC5tC,OACGlB,QAAkB,EAAE,S,6ECIxB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,WACD,MAAO,OACX,EACAjC,WAAY,CAAC,EAEb3F,KAAI,WACA,MAAO,CACH+yD,MAAO,GACPtyD,QAAS,CACL,CACIS,KAAME,KAAKmP,GAAG,aACd/P,MAAO,YACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,aACd/P,MAAO,aAEX,CACIU,KAAME,KAAKmP,GAAG,eACd/P,MAAO,eAEX,CACIU,KAAME,KAAKmP,GAAG,YACd/P,MAAO,WACPswB,UAAU,GAEd,CACI5vB,KAAME,KAAKmP,GAAG,UACd/P,MAAO,kBAEX,CACIU,KAAM,GACNV,MAAO,sBAGfg1E,SAAU,GACVD,gBAAiB,KACjBt1E,SAAS,EACTw1E,cAAc,EAEtB,EACAv1E,QAAS,CACLo1E,aAAaxsD,EAAAA,GAAAA,IAAQ,eAAa,uBAAE,0FAEZ,OADpBvH,QAAQm2B,IAAIt2C,KAAKm0E,iBACjBn0E,KAAKnB,SAAU,EAAK,kBAGG4Q,EAAAA,EAAAA,KAAAA,IAAe,uBAAD,OAAwBzP,KAAKm0E,kBAAmBvnE,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAA9F01E,EAAO,EAAH,KACVt0E,KAAKo0E,SAAWE,EAAK,OAEA,OAFA,SAErBt0E,KAAKnB,SAAU,EAAM,0EAG7Bs0D,UAAUzrC,EAAAA,GAAAA,IAAQ,YAAU,uBAAE,0GACNjY,EAAAA,EAAAA,KAAAA,IAAe,yCAAyC7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAAzF+yD,EAAQ,EAAH,KAEX3xD,KAAK2xD,MAAQA,EAAM,kDAG3B5xD,QAAO,WACHC,KAAKmzD,UACT,ICrEuS,M,uBCAxF,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBgE,W,IAAM,O,EAAwB,QAAY,G,OAAI,OAAY,C,MAAM,CAAgB,SAAkB,qBAAiB/rB,GAA0B,cAAI5mC,YAAG,MAAsB3C,WAAM,GAAC,eAAcqc,GAAiD,WAAYq6D,EAAAA,SAAatjD,WAAO,SAAkB,yBAACvqB,MAAAA,CAAqBnG,QAAI,EAAS,gDAACoG,MAAG,eAA4C,Q,cAA7B,I,YAAiB,MAAPE,C,IAAShI,U,GAAW,SAAW,G,IAAShB,EAAM,O,EAAM,SAAS,YAAE,EAAK,EAAS,Q,MAAM,GAAC,K,MAAC,CAAS,eAAkHA,CAAAA,EAAK,IAAC,C,MAAC,CAAoB,KAAOgR,K,CAAsC,gBAAiB,0E,MAAC,CAAgB,kBAAG,KAAC,EAAC,UAAQ,GAASuL,E,QAAehK,E,KAAiB,UAA4C,IAAI5P,MAAG,SAAS,GAAQ,OAAP3C,EAAM,iBAAQ,+BAAE,IAA6E,QAAG,OAAO,UAEl9BM,CAAAA,EAAAA,GAAe,UAAK,kDAExB,Q,UCJ4D,GAAU,W,IAAaN,EAAM,K,EAAC,QAAUE,G,OAAY,cAAkB,C,MAA4C,CAAyI,kBAAwB,sDAAC2I,SAAY3I,EAAIoQ,UAAI,kGAAC5N,mBAAa,G,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAU,EAAK,OAAuB,EAAO,EAACA,M,MAAM,CAAM,EAAC,mB,UAAYhR,EAAI0L,UAAAA,EAAAA,MAAS,MAAC,EAAC,KAAQ,CAAQ,SAAU1L,EAAIc,UAAU,SAAI,QAAU,YAAQO,IAAkBkB,MAAQ,G,MAAoB,CAAU,MAAC,QAACb,SAAU,SAAC,GAAO,SAAIe,EAAwB3C,WAAM,U,CAAuB,OAAO,CAAa,OAAKE,QAAUmY,EAAAA,QAAqCrY,KAAM,gB,CAAqB,eAAkB22E,EAAAA,EAAAA,qBAAU,C,MAAC,CAAgC,gBAACj1E,cAAM,aAACH,MAAOrB,CAAG,EAAC0L,OAAS,a,MAA6B,CAAa,MAAC,WAAChK,SAAU,SAAC,GAAU,YAAG,EAAmB5B,WAAM,cAAkB,gBAAiB,CAA2B,OAAI2C,KAAG,UAAS3C,QAAM,mC,CAAqB,MAAM,C,MAA+B,CAAS,kBAAIE,KAAOA,UAAW02E,OAAAA,EAAAA,eAC/oC,UAGD,GAASt1E,GAAAA,EAAQhB,GAAAA,EAAAA,mBAAe,U,gCCJwJ,GAAC,W,IAAG,EAAC,K,EAAC,EAAO,MAAC,G,OAAiB,OAAW6F,CAAAA,EAAAA,GAAAA,EAAeoW,C,YAAO,YAAC,OAAIrc,MAAO,QAAiD,eAAC,GAAC,MAAQ,S,GAAqD,CAAC,kBAAM,OAAC,gBAAwB,EAAyL,I,CAA+B2C,EAAG,2BAAuH,OAAvH,Q,GAAC,C,MAAyB,SAAiB,GAAyB,kCAAC,I,CAA4C7C,EAAAA,GAAAA,EAAM,kI,OAAC,OAAe4L,C,IAAS,EAAiB,IAAI,MAAO,YAAsEgF,OAAG,EAAQ,MAAK,QAAI,WAA2B,IAAoB,SAAcimE,CAAAA,EAAAA,GAAAA,EAAAA,CAAc,OAAM,MAAC,WACt8B,oBAGQv1E,GAAAA,EAAM,MAAiB,gC,+GCJYqB,GAAOK,WAAS,MAAU,KAAe6F,EAAAA,EAAAA,MAAY3I,G,OAAY,EAAC,cAAW,C,YAAI,KAASK,CAAAA,C,IAAO,YAA4C,eAAI,MAAK,GAAK,4BAACmB,IAAOH,MAAOrB,G,MAAUuC,C,MAA6Bd,EAAI,KAAI,SAAC,YAACC,EAAAA,KAAW,CAAM,EAAIe,WAAG,S,CAA0B,oBAAoB2Z,C,MAAqB,CAAiD,QAAU,EAAI,MAAI,qBAAqC,6CAACzT,SAAY3I,EAAIoQ,GAAI,sC,YAAkB,O,IAA0C,U,GAAzBU,SAAM,G,IAAEhI,EAAO,OAAEvI,EAAK,EAALA,OAAS,EAAW,UAAeoC,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB3C,CAAgB,kBAAC,SAAIyC,KAAqDQ,EAAAA,GAAAA,GAAK,uBAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAAqB,CAAc,OAAQgJ,EAAAA,EAAAA,GAAO,MAAC,MAAOgI,EAAO,QAAG,KAAC,GAAuB,IAAI,sBAAO,QAEx2B1Q,EAEJ,E,MCJIgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,wCAAwC,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACnP,EACI5f,GAAkB,GCqBtB,IACAoG,WAAAA,CAAA2kB,eAAAA,GAAAA,GACA9qB,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iCACA,IC7ByQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCqBhC,IACAtB,MAAAA,CAAAA,YACAmG,WAAAA,CAAAgrC,cAAAA,GAAAolC,iBAAAA,IACA/1E,KAAAA,WACA,OACAY,MAAAA,EACAmN,WAAAA,GAEA,EACA7N,QAAAA,CACAiS,KAAAA,WACA,YACA,EACAjC,MAAAA,WACA,YACA,EACA8lE,SAAAA,SAAAA,GACAj1E,GAAAA,EAAAA,MAAAA,iBAAAA,yCACAqxB,KAAAA,qBACA,wBACA,YACA,IChE2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCahC,IACA5yB,MAAAA,CACAgB,MAAAA,OACA6xB,QAAAA,MACAujD,WAAAA,CACA12E,KAAAA,QACAS,SAAAA,GAEAyU,MAAAA,OAEAzO,WAAAA,CAAAswE,mBAAAA,IACA/1E,QAAAA,CACA41E,eAAAA,SAAAA,GACA,4DACA,qBAEA,yBACA,uBACA,ICrDyQ,M,uBCA/C,GAAe,KCQrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCoBhC,IACAnwE,WAAAA,CAAAuwE,iBAAAA,IACA12E,MAAAA,CACAS,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAiI,MAAAA,CACA1I,KAAAA,QAEA2I,SAAAA,CACA3I,KAAAA,QAEAmoB,MAAAA,CACAnoB,KAAAA,MACAS,QAAAA,WAAA,WAEAi2E,WAAAA,CACA12E,KAAAA,QACAS,SAAAA,IAGAK,KAAAA,WACA,OACAJ,OAAAA,EACAiL,SAAAA,KACAgrE,cAAAA,EAAAA,EAAAA,MAAAA,cAEA,GCvEyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC4BhC,IACAjuE,MAAAA,SAAAA,GACA,wCACA,EACAjC,WAAAA,CAAAwwE,iBAAAA,IACAh1E,QAAAA,WAAA,mIACA,GAAAi1E,EAAAA,aAAAA,QAAAA,0BACAA,EAAAA,CAAA,+BACA,mCACA3rE,aAAAA,WAAAA,yBAAA,uBAEA,0DANA,EAOA,EACA3G,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,GAAAA,KAEAtvB,QAAAA,CACAm2E,mBAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,mIACA,sCACA,uEACA,mDAHAA,IAIAC,wBAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,mIACAzlE,EAAAA,EAAAA,KAAAA,KAAAA,6BAAAA,CAAA0lE,iBAAAA,IAAA,2CACA,mDAFAD,IAGAE,aAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,6FACA,mDACA,oCACA,IADA,KACA,EAKA,IALA,KAKA,kBAFA,OAFA,4BACA,yCACA,4BAGA,OAAAC,EAAAA,KAAAA,aAAAA,QAAAA,GAAA,UACA,yDACA,uGCrF+P,M,sBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBgE,W,IAAM,O,EAAwB,QAAY,G,OAAI,OAAY,C,MAAM,CAAgB,SAAkB,qBAAiBjuC,GAA2B,WAAa,GAA2B,kBAAI5mC,WAAG,GAAsBkG,eAAgByH,GAAK5N,WAAa,6BAACoG,QAAG,WAA0C,oB,wBAAnB,C,YAAS,MAAPE,C,IAASvI,U,GAAS,SAAW,G,IAAST,EAAM,O,EAAM,SAAS,YAAE,EAAK,EAAQ,M,MAAO,GAAC,K,MAAC,CAAS,eAAiJyc,CAAAA,EAAAA,EAAAA,EAAW,C,MAAM,CAAcC,KAAO,K,CAAyC9a,EAAAA,GAAAA,WAAW,6GAAkB,WAAE,EAAC5B,KAAM,aAAC,QAAO,eAAa,MAAO,iBAAO,WAAQgJ,qBAAqB,MAAC,CAAG,OAAC,aAAC,MAAS,EAAkB,QAAI,QAAG,IAAO,2BAIn0B,Q,UCJ4CrG,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAe,CAAiC,MAAC,CAAC6I,MAAW,EAAC3I,GAAIoQ,mC,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,EAAO,Q,MACpO6mE,CAAAA,EAAAA,GAAAA,UAAsB,M,KACtBC,CACAC,aAAAA,EAAAA,KACH,mCAAC,oBAAe,uBAAqB,OAAQzmE,EAAO,QAAC,kBAAexP,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,U,CAAuB,OAAai5D,C,MAAmB,CAAc,SAAY,OAAE,YAAC,SAAW,GAAqC,aAACl6D,MAAM,uC,MAAkBe,C,MAA6BU,EAAI,KAAI,SAAC,YAACvB,EAAAA,KAAW,CAAM,EAAIe,WAAG,UAAuB,OAAai5D,C,MAAuC,CAAc,MAAQ17D,CAAAA,EAAIoR,OAAG,6BAAyC,YAAC5P,MAAM,+C,MAA0Be,C,MAA6Bm1E,EAAAA,aAAgB,SAAC,YAACh2E,EAAAA,aAAW,CAAc,EAAIe,WAAG,kBAA6B,uBAAoBmkE,CAAW,MAAC,CAACplE,MAAM,uB,MAAiCe,C,MAA6BglC,EAAAA,oBAAuB,SAAC,YAAC7lC,EAAAA,oBAAW,CAAqB,EAAI,WAAG,0BAEt0BtB,EAEJ,E,MCsCA,IACAoG,WAAAA,CAAA4hC,iBAAAA,IACAvnC,KAAAA,WACA,OACAJ,OAAAA,EACAwC,KAAAA,GACAskC,oBAAAA,GACAmwC,aAAAA,GAEA,GCvDyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5Bt2E,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,kCAAkC,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC7O,EACI5f,GAAkB,GCqBtB,IACAoG,WAAAA,CAAA2kB,eAAAA,GAAAA,GACA9qB,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iCACA,IC7B+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCoBhC,IACAd,KAAAA,WACA,QACA,EACA2F,WAAAA,CAAAmxE,iBAAAA,GAAAC,uBAAAA,IACAjzE,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA82E,cAAAA,SAAAA,GAAA,6HACA,gDACA,qEACA5kD,KAAAA,qBACA,+EAJA,EAKA,ICxDqQ,M,qBCA/C,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYxwB,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAY,C,MAAC,CAAwB,SAAgB,qBAAiB,GAAC,WAAa,GAAG,kBAAkB,WAAaE,GAA8B,kBAAIyC,WAAc,EAAG,SAAE,oBAEhQrC,CAAAA,EAAAA,cAAoB,EAExB,E,MCWA,IACAS,KAAAA,WACA,QACA,EACA2F,WAAAA,CAAA0kE,SAAAA,KCnBmQ,MCO/P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClB+N,W,IAAsB,OAAC1pE,EAAK,EAAC,S,OAACH,EAAK,WAAU,kB,MAACkB,C,MAAgC,EAACynB,GAAG,+BAAC,WAACtoB,SAAW,GAAK,qBAAiC,QAAU,C,MAAa4V,CAAMxX,mBAAM,c,mBAAU,I,MAA+C,CAAE,MAAKwT,EAAM7Q,IAAa3C,SAAM,YAAC,MAAQ,C,EAAY,mBAA2E,EAAI,GAAE,EAAE2C,MAAG,SAAa,GAAoB3C,OAAM,QAAC,MAAO,IAAK,OAAC6I,GAAAA,EAAW,GAAUnG,SAAI,EAAW,kC,CAAgC,OAAQxC,EAAI0Q,EAAAA,EAAG,CAAyC,OAAG,SAAClO,KAAI,K,CAAgC,2D,QAAA,GAARuO,EAAK,uB,MAAI,C,MAA6B,K,YAAqE,KAAW/Q,CAAAA,C,IAAuB,Y,GAAE,SAAK,G,MAAsgB,GAAC,4B,qBAA+C,SAAC,G,IAAG,EAAE,EAAO,EAAC,M,MAAiBqc,CAAAA,EAAAA,YAAOhK,C,MAAiB,CAA8B,+DAAC,iCAAiBvS,CAAAA,EAAK,KAAC,uW,MAAC,CAAS,SAAIE,MAAO,YAA4F,KAAC,U,GAA0B,CAAc,kBAAO,OAAN,mBAAS,yBAAqB,QAACqB,MAAWy2E,CAAqBv1E,KAAS,KAA4C,sFAACb,GAAAA,CAAgC,kBAAO,UAAqB,OAAa,GAACiH,IAAqBnG,MAAI,G,MAAe,C,MAA4B,EAAQxC,oBAAgD,qBAAG,uBAACwC,EAAcoG,WAAG,yB,EAAoB,cAAW,C,MAAa9I,C,MAAO,K,YAAuG,O,IAAG,Y,GAA4BA,SAAM,G,MAAC,kBAAkBi4E,KAAAA,KAAAA,G,qBAA4E,YAAC,IAAG,EAAI,Q,MAAkB,gB,MAAC,C,MAAgChnE,EAAAA,GAAO,uFAAK,CAAC,EAAE,uBAAE,QAAQ,YAAM,sBAAO,aAAM,cAAMinE,EAAkBz1E,aAAS,KAAyC,kBAACb,GAAAA,CAA6B,kBAAO,UAAsB,OAAwB,GAAuB,IAA8C,SAACiH,MAAAA,CAAqBnG,MAAI,mBAAgBoG,SAAG,SAAU,GAAC,mBAAmB,C,aAAc,sB,iBAA6C,C,aAAoC,a,aAAI,U,QAAC,EAAQ,iC,YAA2C,O,IAAC,gB,GAAE,W,MAAoB,GAAC,K,MAAC,CAA0C,QAAI5I,aAAc,oBAAQ,0BAAM,KAAC,UAAa,IAAmB,kBAAQ,EAAE,kBAAC,IAA4B,QAAqC,MAAC,CAAC,MAAcmc,EAAAA,QAAS,kBAA4E,iBAAmB,GAAG,EAAG,OAAC,M,GAA0B,KAAWlW,C,MAAsB,CAAE,QAACzE,MAAM,gB,CAA0Be,EAAAA,+BAAwB,C,MAAI,CAAiB,QAAC,kCAACb,sBAAW,4BAAc,uBAAiC5B,GAAAA,CAAO,eAAsB,GAAC,OAAOE,EAAIu1B,MAAAA,QAAY,EAAC,G,MAAyE,CAA6B,qBAAG,SAAC,YAAC,eAAYE,CAAqB,EAAuC,8BAAwD31B,GAAM,wB,MAAC,CAA0B,qBAAC0B,KAAM,eAACH,YAAW0rC,EAAAA,YAAexqC,YAAS,eAAa,Y,yBAAwB,G,GAAEb,CAA0B,6BAAG,iBAAa,uBAA0B,KAAQ1B,eAAiB,0B,MAAC,CAA6C,uB,MAAsF,CAAqB,sBAAiC,qBAAM,EAAEyC,cAAgB,CAAI,EAAE,WAAW,mBAAwB,EAAE,0BAC1qI,OACGrC,MAAAA,EAAe,cAEnB,gBAAiBA,EAAAA,YAAe,a,wMCJyD,I,SAAU,W,IAA8BsC,EAAAA,KAAsC5C,EAAK,EAAC,SAAQ,EAAC,kB,OAAE,sBAAE,YAAK,0BAAiBA,MAAM,CAAC,MAAM,KAAI6C,CAAE,EAAC,M,MAAC,C,IAA0B,IAAyB,GAAC,CAACnB,OAAM,YAACH,OAAOrB,EAAIi4E,aAAe11E,G,MAA+C,CAACb,MAAAA,EAAU,cAAgB,qBAAM,EAAC,cAAU,CAAC5B,EAAO,WAAQ,kBAAsC,SAAG,MAAI,CAAWA,MAAM,OAAC,MAAQ,iBAAa,QAAuC,QAAG,MAAK,CACxiB,oBACGM,MAAAA,EAAe,eAAK,gB,mBCExB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHgB,MAAOgC,QAEXxC,KAAI,iBACA,MAAO,CACHo3E,cAAyB,QAAZ,EAAEh2E,KAAKZ,aAAK,QAAI4pC,GAAc2Q,KAC3CrO,eAAgBtC,GAExB,EACAlqC,QAAS,CACLm3E,YAAW,WACPj2E,KAAKgE,MAAM,QAAShE,KAAKg2E,cAC7B,KCjB8S,MCOlT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,wBClB+P,GAAS,W,IAAoBz1E,EAAIojC,KAAa,EAAGnjC,EAAG,MAAQ,G,OAAE3C,EAAK,KAAC,C,MAAC,C,QAAU,EAAW,QAAE,qB,CAAoH4C,EAAAA,YAAY,iBAAmC,MAAM,CAAyDA,YAAY,GAA+B,MAAK,GAAOuK,QAAW,K,EAAuB,iCAAC,OAAO,EAACkrE,GAAAA,EAAgB,CAAgBr4E,IAAK,EAAC,I,CAAC,OAAI,CAAwD,OAAIE,KAAO,GAA2D0C,SAAY,KAA0J5C,CAAAA,EAAK,MAAC,iE,YAAW,qCAAI,6CAAC6I,YAAY3I,gC,CAASwC,EAAG,MAAC,C,YAAe,C,gBAAWG,Q,GAAiC7C,aAAM,iB,UAAU,0D,CAA+C,yDAAC,YAAQ,cAAO,CAAC2C,EAAG,OAAS,wFAAC3C,MAAM,CAAC,WAAQ,IAAI,YAAcs4E,EAAAA,GAAAA,CAAAA,CAAgC,IAAC,YAAC,YAAQ,GAAiB,MAAOp4E,EAAIq4E,GAA+B,mBAAC,OAAO,UAAgL,GAAQ,UAASh8D,GAAAA,gBAAO,G,IAA6C,UAAC,SAAE,MAAK,CAA0L,MAAI,KAAsB,GAAO,WAAS,QAAC,IAAqD,kBAAQ3L,OAAG,sBAAkB,EAA4B5Q,IAA2C,uGAAG,GAAC,CAAC,MAAUE,SAAIs4E,GAA0B,iCAAC92E,IAA4Ce,CAAAA,EAAAA,GAAAA,EAAS,OAAa,GAAE,wG,OAAI,EAACgvB,cAAgB,C,MAA2B,CAAC7vB,KAAAA,UAAqC,oDAAiC5B,CAAAA,EAAK,GAAC,6C,MAAC,CAAkC,iC,GAAK,CAAwC,qC,MAAa,CAA8ByC,MAAAA,EAAS,yB,SAAwB,SAAc,GAAuB,sCAACb,EAAmC,yCACj7E,4BACGtB,MAAAA,CAEJ,WAAiBA,EAAAA,kB,4LCJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAsC,O,IAAmB,U,GAAC,SAAW,G,IAA0B7I,EAAM,Q,MAAC,4BAAuB,C,MAAoB,CAAuB,QAAQE,EAAM,MAAC,uBAAgD,QAAWA,WAA0D,MAAQ,EAAC,mDAAK,iEAAC2I,QAAW,G,YAA2B,O,IAAsC,U,GAAlBmI,SAAM,G,IAAEhQ,EAAO,EAAPA,QAAW,EAAW,SAAe6B,EAAG,U,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA2DQ,EAAAA,GAAAA,GAAK,6BAAY,C,WAAS,EAAe5B,KAAK,aAAsBK,QAAAA,eAAiC,yBAAC5B,WAAM,uB,MAAkC,CAAgB,aAAUgB,EAAO,cAAC,MAAOgQ,EAAO,UAAG,KAAC,G,GAA4BC,C,QAAmB/Q,SAAIu4E,GAA2B,IAAC,gDAAC,GAAI,KAAiB,eAAM,MAI1+B,E,MCJIn3E,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAOE,EAAIw4E,aAAe,oBAAH,OAAuBx4E,EAAIw4E,cAAiB,KAAK,QAAU,MAAM71E,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAChR,EACI5f,GAAkB,GCqBtB,IACAoG,WAAAA,CAAA4kB,iBAAAA,GAAAA,GACA/qB,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACAotD,aAAAA,CAAAA,OAAAA,UAEAz3E,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,uCACA,IChC+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCiBhC,IACA6E,WAAAA,CAAAiyE,qBAAAA,GAAAC,uBAAAA,IACAr4E,MAAAA,CACAgB,MAAAA,QACAukC,WAAAA,QAEA7kC,QAAAA,CACAw3E,oBAAAA,SAAAA,IACA12E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,4CACA,uBACA,ICjD+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYY,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAsC,O,IAAmB,U,GAAC,SAAW,G,IAAwB7I,EAAM,Q,MAAC,0BAAuB,C,MAAkB,CAAuB,QAAQE,EAAM,MAAC,qBAA4C,QAAWA,WAAsD,uDAAC2I,SAAY3I,EAAIoQ,GAAI,gD,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAMM,EAAK,EAALA,QAAS,EAAQkC,EAAG,KAAeE,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAyDQ,EAAAA,GAAAA,GAAK,2BAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAAqB,CAAc,cAAmB8lC,CAAAA,EAAAA,GAAc,MAAQ98B,EAAQ,aAAUhI,EAAO,cAAC,MAAOgQ,EAAO,UAAG,KAAC,G,GAA4BC,C,QAAmB/Q,SAAI24E,GAAyB,IAAC,8CAAC,GAAI,KAAiB,eAAM,MAIv/B,E,MCJ4Cl2E,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAiB,C,MAAC,CAAwB,MAAS,EAACE,MAAY,oBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,O,IAAoB,U,GAAC,SAAc,G,IAAiB,EAAUpQ,EAAIS,O,MAAM,GAAQT,GAAI44E,UAAS,MAAC,QAAS9nE,EAAAA,MAAO,MAAS,EAAC9Q,UAAY,OAAO,E,QAAW,EAAC4lC,Q,KAAYizC,CAAmC,kBAAI,mCAAer3E,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,U,CAA2B,qBAAe,C,MAAiC,CAA2B,4CAACjB,MAAM,kB,MAA4Be,C,MAA6Bo/B,EAAAA,eAAkB,SAAC,YAACjgC,EAAAA,eAAW,CAAgB,EAAIe,WAAS,oBAAsBA,EAAG,OAAc3C,YAAM,Q,CAAC,OAAa,C,MAAC,CAA6D,SAAW,GAAiC,MAAQE,CAAAA,EAAI4lC,OAAAA,WAAU,yBAAC,wCAAqB,MAAO,EAAG,WAAC,kBAAW,GAAG,SAACpkC,SAAM,I,MAAwBe,C,MAA6BqjC,EAAAA,WAAc,SAAC,YAAClkC,EAAAA,WAAW,CAAY,EAAI,WAAO,iBAE1iCtB,IAAAA,EAEJ,E,MC0CA,IACAC,MAAAA,CAAAA,QAAAA,UAAAA,QAAAA,YACAQ,KAAAA,WACA,OACAJ,OAAAA,EACAmlC,WAAAA,GACAjE,eAAAA,KAEA,EACA59B,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,uBACA,2CACA,EACAgG,WAAAA,IAGAlJ,QAAAA,CACA63E,UAAAA,WACA,cACA,mBACA,wBACA,ICtEuQ,M,uBCA/C,GAAe,KCOnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYn2E,GAAOK,WAAS,MAAU,KAAmChD,EAAK,EAAC,S,OAAC,EAAM,oBAAiB,W,MAAiD,CAA8B,oBAAgB,gDAAC,MAAS,EAAC,kBAAK,eAAG,QAAC,MAAsB,IAAG,oB,oBAAkF,mCAAE,OAAIE,KAAO,KAE9WI,CAAAA,EAAAA,GAAAA,UAAoB,uDAExB,E,MCuBA,IACAoG,WAAAA,CAAA0kB,gBAAAA,IACA7qB,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACA7pB,MAAAA,CACAtB,KAAAA,QAEAy4E,aAAAA,CAAAA,OAAAA,UAEAz3E,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,uCACA,EACAm3E,gBAAAA,WACA,QAAA9K,GAAAA,UAAAhf,KAAAA,kBAAA3tD,MAAAA,KAAAA,MAAAA,gBACA,CAAA2sE,GAAAA,UAAAhf,KAAAA,QAAA3tD,MAAAA,KAAAA,MAAAA,MACA,IC3C6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCkBhC,IACAmF,WAAAA,CAAAuyE,mBAAAA,GAAAC,qBAAAA,IACA34E,MAAAA,CACAgB,MAAAA,QACAukC,WAAAA,QAEA7kC,QAAAA,CACA43E,kBAAAA,SAAAA,IACA92E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,wCACA,uBACA,IClD6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC4DhC,IACAxB,MAAAA,CAAAA,cAAAA,UAAAA,YAAAA,YAAAA,eAAAA,eACAQ,KAAAA,WACA,OACAo4E,mBAAAA,KACAC,iBAAAA,KACAvjD,QAAAA,CACAwjD,kBAAAA,EACAC,gBAAAA,GAGA,EACA5yE,WAAAA,CACA6yE,uBAAAA,GACAC,qBAAAA,IAEA30E,SAAAA,CACA40E,eAAAA,WACA,wBACA,yCACAlwE,GAAAA,EAAAA,GACAtH,KAAAA,EAAAA,KACAwoC,KAAAA,GAAAA,IAAAA,EAAAA,gBAAAA,QAAAA,OAAAA,eACAivC,oBAAAA,EAAAA,oBACApB,WAAAA,EAAAA,WACA98D,UAAAA,EAAAA,UACAic,YAAAA,EAAAA,YACA,IATA,EAUA,GAEAx2B,QAAAA,CACA04E,sBAAAA,SAAAA,GACA,0BACA,gCACA,EACApB,oBAAAA,SAAAA,GACA,wBACA,8BACA,EACAC,0BAAAA,SAAAA,GACA,yCACA,EACAoB,WAAAA,SAAAA,GACA,0BACA,IC9H4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCuJhC,eACA,wCAGA,0BACA,4BACA,gBACA,OACAC,EAAAA,OAAAA,EAAAA,EAEA,CAEA,2BACA,kCAEA,aACA,SAEA,oDACA,eACA,mBACA,oBACA,wBACA,oBACA,wBACA,eACA,mBACA,cACA,uDACA,wBACA,4BACA,qBACA,yBACA,QACA,wBAEA,EAGA,IACAnzE,WAAAA,CACA+qC,mBAAAA,GACAqoC,qBAAAA,GACAloC,gBAAAA,GACAqH,6BAAAA,GACA8gC,oBAAAA,IAEApxE,MAAAA,SAAAA,GACA,qCACA,EACA5H,KAAAA,WACA,WACA,OACAsuD,IAAAA,KACA54C,OAAAA,KAAAA,OAAAA,OAAAA,OACAif,cAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAioB,EAAAA,SAAAA,CAAAA,EAAAA,CACA7hC,YAAAA,GAAAA,KAAAA,UAEA6jB,aAAAA,KACAktB,cAAAA,KACA9zC,SAAAA,KACAgzC,eAAAA,CAAAA,EACAt2B,aAAAA,CAAA6F,OAAAA,GAAAyD,SAAAA,IACAoD,aAAAA,EACA4D,YAAAA,GACAkH,cAAAA,GAAAA,KACA+qC,qBAAAA,EACAgC,uBAAAA,EACA/B,oBAAAA,GACAC,kBAAAA,EACAtrB,SAAAA,EAEA,EACArqD,UAAAA,WACA,wBACA,EACA0B,MAAAA,CACAyxB,aAAAA,CACAvxB,QAAAA,SAAAA,GACA,IACA,uCACA,8BACA,yBACA,EACAgG,WAAAA,EACAjG,MAAAA,GAEAwmB,OAAAA,CACAvmB,QAAAA,SAAAA,GAAA,0IACA2L,EAAAA,CAAA,gDAQA,OAPA,yBACA2/C,EAAAA,GAAAA,GACA,iCACA,oBACA,qBACA,8BAEAC,EAAAA,EAAAA,OAAA,SACAb,KAAA,OAEA,OAFAG,EAAAA,EAAAA,KACAA,EAAAA,gBAAAA,EACA,iEACAD,GAAAA,GAAA,2CAbA,EAcA,EACA5kD,WAAAA,EACAjG,MAAAA,GAEA0oD,QAAAA,SAAAA,GAAA,mJACAiC,KAAA,OAKA,OALAG,EAAAA,EAAAA,KACAA,EAAAA,uBAAAA,EACA,SACA,oCACA,KACAA,EAAAA,uBAAA,SACAD,GAAAA,GAAA,0CAPA,EAQA,EACAt4C,OAAAA,CACAtS,QAAAA,SAAAA,EAAAA,GACA,GACA,uCACA,IAGAU,UAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CACA8qD,OAAAA,WACA,sBACA,oEACA3gB,mBAAAA,KAAAA,SACAygB,EAAAA,aACA,EACA3c,WAAAA,WAAA,WACA,yEACA,EACAmnC,oBAAAA,WACA,2BACA,sCACA,kCACA,sEACA,CAEA,EACAC,yBAAAA,WACA,gEACA,+BACA/qE,KAAAA,SAAAA,GACA,iCAEA,OADAs7B,EAAAA,SAAAA,EAAAA,EAAAA,EAAAA,GACA,CACA,IACAlK,MAAAA,SAAAA,EAAAA,GAAA,kCAEA,WACA,oBACA,mBACA,oBAEA,gEACA,CAEA,EACA45C,SAAAA,WACA,2BACA,qDACA,+CACA,2EACA,8CACA,0CACA,CACA,CACA,QACA,EACAlqB,kBAAAA,WACA,qDACA,EACAC,KAAAA,WACA,qFACA,GACA,CACAvnD,MAAAA,KAAAA,GAAAA,2CACAjG,IAAAA,oBACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,8BACAnd,KAAAA,YAEA,CACA7K,MAAAA,KAAAA,GAAAA,kCACAjG,IAAAA,WACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBACAnd,KAAAA,iBAEA,CACA7K,MAAAA,KAAAA,GAAAA,mCACAjG,IAAAA,YACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBACAnd,KAAAA,UAEA,CACA7K,MAAAA,KAAAA,GAAAA,uCACAjG,IAAAA,gBACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,0BACAnd,KAAAA,eAEA,CACA7K,MAAAA,KAAAA,GAAAA,uCACAjG,IAAAA,gBACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,0BACAnd,KAAAA,kBAEA,CACA7K,MAAAA,KAAAA,GAAAA,wCACAjG,IAAAA,iBACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,2BACAnd,KAAAA,cA2BA,GAxBA,0BACA08C,EAAAA,KAAAA,CACAvnD,MAAAA,KAAAA,YAAAA,QACAjG,IAAAA,KAAAA,YAAAA,QACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBAAAA,OAAAA,mBAAAA,KAAAA,YAAAA,UACAnd,KAAAA,SAGA,0BACA08C,EAAAA,KAAAA,CACAvnD,MAAAA,KAAAA,YAAAA,QACAjG,IAAAA,KAAAA,YAAAA,QACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBAAAA,OAAAA,mBAAAA,KAAAA,YAAAA,UACAnd,KAAAA,SAGA,0BACA08C,EAAAA,KAAAA,CACAvnD,MAAAA,KAAAA,YAAAA,QACAjG,IAAAA,KAAAA,YAAAA,QACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBAAAA,OAAAA,mBAAAA,KAAAA,YAAAA,UACAnd,KAAAA,SAGA,6BACA,4EACAo7B,EAAAA,SAAAA,SAAAA,GACAshB,EAAAA,KAAAA,CACAvnD,MAAAA,EAAAA,MACAjG,IAAAA,EAAAA,OACAiuB,GAAAA,GAAAA,OAAAA,EAAAA,qBAAAA,OAAAA,mBAAAA,EAAAA,SACAnd,KAAAA,QAEA,GACA,CAEA,QACA,IACA+c,EAAAA,GAAAA,IAAAA,MACAA,EAAAA,GAAAA,IAAAA,KAAAA,CAAAA,EAAAA,CACA6pD,eAAAA,WACA,6DACA,IAEAn5E,QAAAA,CACAkzC,mBAAAA,SAAAA,GACA,qFACA,4BAAAr4B,YAAAA,GAAAA,KAAAA,UACA,uDACA,IACA,iDACA,4FAEA,kFAEA,8CACA,EACAowB,WAAAA,SAAAA,GACA,6CACA,EACA5I,iBAAAA,SAAAA,GACA,4BACA,wBACA,EACA+2C,kBAAAA,WACA,6BACA,mBACA,mCACA,mBACA,mEACA,uBACArhE,OAAAA,EAAAA,cACAu/B,OAAAA,EACAz8B,YAAAA,IAGA,4BACA,kDACA,EACA0+B,iBAAAA,EAAAA,GAAAA,IAAAA,sBAAAA,WAAA,sJACA,GAAAj5B,EAAAA,GAAAA,GACAA,EAAAA,CAAA,gDAGA,OAFA,6EACAA,EAAAA,YAAAA,KAAAA,OAAAA,GAAAA,OAAAA,KAAAA,OAAAA,KAAAA,MACA,SACA9Z,QAAAA,IAAAA,CACAmK,EAAAA,EAAAA,KAAAA,IAEA,qCACAhS,QAAAA,EAAAA,YAAAA,IAAAA,OAAAA,mBAAAA,KAAAA,SAAAA,IACA,CAAA2hB,OAAAA,IAEAxS,MAAAA,SAAAA,GAAA,iBACA4S,GAAAA,EAAAA,EAAAA,aAAAA,EAAAA,kBACA/P,EAAAA,EAAAA,KAAAA,IACAzF,wCAAAA,CAAAoV,OAAAA,IACAc,OAAAA,SAAAA,GACA,kCAAAthB,KAAAA,CAAAA,GACA,OACA,IACAgO,MAAAA,SAAAA,GAAA,mBACA,OAKA,OALA,yBAhBAkkC,EAAAA,EAAAA,GAAAG,EAAAA,EAAAA,GAAAknC,EAAAA,EAAAA,GAiBA,mCACAjnC,EAAAA,GAAAA,EAAAA,EAAAA,aACAH,EAAAA,GAAAA,EAAAA,CACApU,WAAAA,GAAAA,UACA,UAEAltB,EAAAA,EAAAA,KAAAA,IACAzF,mBAAAA,CACAoV,OAAAA,CACAxI,SAAAA,EAAAA,SACAC,OAAAA,EAAAA,OACA+B,gBAAAA,EAAAA,gBACAF,gBAAAA,EAAAA,gBACAC,WAAAA,EAAAA,WACAa,YAAAA,EAAAA,eAGA5M,MAAAA,SAAAA,GAAA,yBAXAwrE,EAAAA,EAAAA,KAaAC,EAAAA,GACAD,EAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GACAlnC,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WACA9xB,EAAAA,aACA,cACA,2BACA,4BACA,wBACA,4CACA,2CACA,iBACA,IACA,qBACA,CACA,IAGAk5D,EAAAA,GAAAA,GAAAA,SAAAA,EAAAA,GACA,kBACA,yBACA,mBACA,gEACA,uBACAzhE,OAAAA,EACAu/B,OAAAA,EACAz8B,YAAAA,IAEA,+CACA,IACA,mBACAwf,OAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SAAAA,EAAAA,GAAAA,GAAAA,EAAAA,SACAyD,SAAAA,GAAAA,QAAAA,EAAAA,GAAAA,GAAAA,EAAAA,WAAAA,EAAAA,GAAAA,GAAAA,EAAAA,YAEA,oEACA,oDACA,2CACAxd,EACA,8BACA0xB,EACA,4BACA,iDACA,SAnFAuH,EAAAA,GAAA,wCAAAA,IAqFA7kB,qBAAAA,SAAAA,GAAA,yBAAA0J,EAAAA,EAAAA,QACA,iFACA,KACA,oEACA,+EACA,sCACA,wBACA,oBACA91B,EAAAA,mBAAAA,GAAAA,OAAAA,EAAAA,eAEA,+FACA,oBACA,MACA,+FAEA,ICtjB8P,M,uBCA/C,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBY5G,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAaE,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAA+Be,C,MAA6Bi4E,EAAAA,kBAAqB,SAAC,YAAC94E,EAAAA,kBAAW,CAAmB,EAAIe,WAAG,sB,CAAsB,gBAAYg4E,C,MAAgB,CAA0C,wBAAG,QAAC,+B,GAA0B,CAAiD,kBAAC,yCAAIh4E,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE/mBrC,IAAAA,EAEJ,E,MC2BA,IACAS,KAAAA,WACA,OACA25E,mBAAAA,EACAE,cAAAA,KACAD,gBAAAA,KAEA,EACA15E,QAAAA,CACA45E,eAAAA,SAAAA,GACA,IACA,0BACA,wBACA,2BAEA,qBACA,EACAC,oBAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,WAAA,4IAEAlpE,EAAAA,EAAAA,KAAAA,IAAAA,0BAAAA,OAAAA,IAAAA,MAAAA,SAAAA,GAAA,oDACA,iGAEA/P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,iFAEA,mDARAi5E,KAUA72E,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GACA,0CACA,4CACA,4CACA,2EACA,oBACA,4CACA,EACAgG,WAAAA,EACAjG,MAAAA,KCrE+P,M,uBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,2BCtBmO,W,IAAkB,OAAG,EAAI,EAAG,MAAC,GAAe,oB,OAAC,OAAY,CAAG,sBAAE,MAAK,CAASlE,QAAM,Y,CAAU,aAAO,CAAI,iBAAG,CAAC2C,EAAG,KAAe,CAACC,MAAAA,CAA0BD,MAAG,UAAoB3C,OAAM,KAAC,cAAS,OAAkB,WAAG,MAAKK,CAAyIL,aAAM,KAAmB,SAAC6C,MAAG,CAAC,O,KAAyB,OAAkC,UAAG,YAAU,aAAsCD,CAAAA,EAAAA,mBAAY,CAAiB,MAAK,CAA0B5C,KAAM,GAAC,MAAQE,aAAa,EAAG,GAACA,IAAM,EAAI,GAAE,EAAI,MAAO,EAAC,oGAACF,MAAM,CAAC,MAAQ,SAAY,IAAI2C,MAAG,SAAqB,GAAE3C,OAAM,kBAAC,KAAsF,QAAY,GAACE,EAAI+/B,MAAS86C,EAAAA,GAAAA,GAAS,C,YAAC,kB,CAA6C,2BAA0B76E,CAA+B,OAAI,MAAO,EAAI,UAAiBqB,GAAK,EAAK,MAAK,W,MAACkB,C,GAA6B4sD,IAAO,KAAC,OAAiB,0BAAE,MAAK,CAAiD,eAAiB,EAAC,qBAAC3sD,kBAAW,0BAAC1C,aAAM,qB,gBAAU0C,EAAAA,YAAAA,aAAG,sDAAkB1C,IAAK,GAAC,Q,MAAC,C,MAAyB,EAAG,I,SAAQ,SAAa,GAA2D,OAAE,EAAeA,WAAM,Q,CAAU,iCAAC,OAAM,EAAG,KAAKoS,CAAmE,IAAIzP,EAAG,IAAiD3C,MAAM,CAAC,GAAO,EAAI,MAA4B,SAAI,MAAM,CAC7rD,kBACGM,IAAAA,GAEJ,MAAiBA,gBAAAA,EAAAA,KAAe,qC,+NCJsG,cAAC,IAAGqC,EAAG,KAAU3C,EAAK,EAAC,S,OAAC,OAAQ,CAAE,OAAI2C,aAAG,KAAoQ,CAACzC,EAAG,KAAI,CAAqT0C,MAAAA,CAA2B1C,KAAO,M,CAA6G,OAAO,CAAG,OAAIyC,MAAG,K,CAAiB,OAAQ,yIAAE,0BAAG,CAACA,EAAG,iBAAkB,wBAAyBq4E,IAAAA,KAAgB,SAAQ,QAAS,kJAACh7E,YAAM,c,CAAC,KAAO,QAAC,oFAAO,OAAIE,KAAO,M,CAAuD,OAAQ,CAAS,OAAIA,MAAO,K,CAAuJ,OAAa,CAAC,mCAAY,OAAIA,MAAO,UAAgE,CAACA,EAAIG,GAAG,aAAiB,aAAS,KAAU,IAAK,CAAgCL,MAAM,CAAC,kBAA6B,CAACE,EAAIG,GAAGH,aAAc,MAAW,CAACA,EAAI+6E,GAAAA,cAAexrD,GAAAA,EAAAA,GAAAA,GAAuB,cAExhD,iCAExB,MAASnuB,C,4JAJ6jD,EAAC,+BAACsB,MAAAA,CAA2B1C,cAAO,eAA8R,CAACA,EAAIG,GAAG,WAAU,EAACH,GAAAA,GAAqB,CAC/6D,0BACGI,CAAAA,EAAAA,GAAAA,oBAAoB,I,sQCoExB,IACAC,MAAAA,CACAkvB,aAAAA,OACAyrD,eAAAA,OACAC,YAAAA,OACAJ,UAAAA,OACAE,WAAAA,QAEAp2E,SAAAA,CACAm2E,aAAAA,WACA,wBACA,oDADA,CAEA,EACAI,YAAAA,WACA,+BACA,ICrF0Q,MCOtQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4B,GAAU,W,IAAyBx4E,EAAAA,KAAmB5C,EAAK,EAAC,S,OAAC,aAAa,S,YAAS,OAAE,OAAI2C,SAAG,GAAoB3C,MAAM,K,CAAW,qBAAQ,CAAc,OAAIE,KAAO,GAA0H,MAAU,kBAAgB0C,EAAAA,GAAAA,kBAAkB,oF,OAAM,EAAC,M,IAAC,E,YAAsB,OAAE,OAAID,SAAW,GAAE3C,MAAM,KAAU,QAAE,MAAMK,CAAwDH,KAAUq6C,KAA6Fv6C,CAAAA,EAAM,uC,IAAC,QAAQ,UAAM,sD,YAAW,O,MAAI,CAAW,MAAM,OAA2D,SAAS,GAAM,SAAI2C,KAAG,qCAAS,yBAAC3C,OAAM,SAAU,QAAE,MAAMK,CACnxB,UAGD,GAASiB,GAAAA,iBAAQhB,EAAe,yE,QC8BhC,IACAC,MAAAA,CACAgB,MAAAA,SCpC6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB0H,W,IAAYuH,EAAG,K,EAAmB,QAAW,G,SAAyB,WAAW,GAAO,KAAKiX,C,kBAA4B,G,OAAE,I,YAA2B,O,IAAE,Y,YAAoD,G,MAAC,MAAQ,WAAE,W,MAAC,OAAU,MAAE,mBAAE,MAAM1f,CAAwB,UAAa,GAAE,eAAqB,8BAAM,MAAM04C,CAAgB,MAAC,GAAoBA,UAAU,KAAEn3C,CAAAA,EAAW,sBAAQ,WAAIe,IAAkC,S,MAAC,C,MAA6B04E,EAAAA,OAA0B,qBAAC,UAAI14E,EAAyO3C,WAAM,WAAqB,iBAAC6C,GAAG,CAAC,MAAS,SAAC,GAAiB,uBAA0B0Z,CAAO,IAAG7a,CAAAA,EAAK,KAAC,oK,MAAM,CAA2Be,QAAS,S,GAA4C,CAACb,QAAU,SAAC,GAAqB,yBAAI,GAE1jCtB,MAAAA,CAEJ,MAASgB,EAAQhB,oB,6FCJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAiB,C,MAAC,CAAkB,cAAG,YAAC,O,GAA0B,CAAiC,kBAAE,yBAAC6I,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAqB,U,GAAC,SAAW,G,IAAkC9I,EAAM,O,MAAC,GAAO,iCAAY,C,MAAC,CAAkD,gBAAC6I,QAAY3I,EAAIoQ,MAAI,+B,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAa,kBAAC,UAAIF,KAAuDQ,EAAAA,GAAAA,GAAK,yBAAY,C,WAAS,EAAe5B,KAAK,aAA6BK,QAAAA,eAAwC,gCAAC5B,WAAM,8B,MAAqB,C,MAAiB,U,QAAiB,EAAqBuB,GAAAA,UAAgC,yBAAC,MAAOyP,EAAM,oBAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,GAAyC,IAAI,wCAAiB,eAAgB,IACzhC,UAGD,E,MCJ4C2B,GAAOK,WAAS,MAAU,KAAahD,EAAK,EAAC,S,OAAC,cAAiB,C,MAAC,CAAwB,MAAS,EAACE,MAAY,oBAAC2I,QAAY3I,EAAIoQ,S,YAAsB,O,IAA2B,U,GAARY,SAAK,GAAI,MAAYN,EAAG,OAAgB,IAAU1Q,M,MAAU,GAAQgR,GAAAA,UAAK,MAAC,QAASF,EAAAA,MAAO,MAAS,EAAa,OAAO,E,QAAEsqE,EAAAA,QAAiD,MAAI,iDAAe55E,IAAOH,MAAOrB,G,MAAWuC,C,MAA6B9B,EAAK,MAAI,SAAC,YAACiB,EAAAA,MAAW,CAAO,EAAIe,WAAG,U,CAAuB,OAAO,C,MAAS,CAAqB,KAAO,SAA8D,kBAAW,GAAG,iEAACjB,SAAM,I,MAA+Be,C,MAA6B64E,EAAAA,kBAAqB,SAAC,YAAC15E,EAAAA,kBAAW,CAAmB,EAAI,WAAG,wBAErvBtB,EAEJ,E,MC0BA,IACAC,MAAAA,CACAgB,MAAAA,OACAP,QAAAA,CACAN,SAAAA,EACAT,KAAAA,SAEA0I,MAAAA,CACAjI,QAAAA,qBACAT,KAAAA,QAEA2I,SAAAA,CACAlI,QAAAA,4DACAT,KAAAA,SAGAc,KAAAA,WACA,OACAJ,OAAAA,EACA26E,kBAAAA,KAEA,EACAr3E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,2CACA,EACAgG,WAAAA,KC1DmR,M,uBCA/C,GAAe,KCO/O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B7I,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAM,kCAA4B37D,EAAIqB,OAAS,CAAC,GAAGia,WAAY,QAAU,MAAM3Y,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACzR,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAO,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,ICzC2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCUhC,IACAtB,MAAAA,CACAgB,MAAAA,QACA4U,QAAAA,QAEAzP,WAAAA,CAAA60E,2BAAAA,GAAAC,mBAAAA,IACAv6E,QAAAA,CACAw6E,2BAAAA,SAAAA,IACA15E,EAAAA,EAAAA,IAAAA,uCAAAA,OAAAA,EAAAA,oBACA,uBACA,0DAAAu5E,kBAAAA,OAAAA,EAAAA,qBACA,IC3CoR,MCOhR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCwBhC,IACA50E,WAAAA,CAAAg1E,4BAAAA,IACAn7E,MAAAA,CACAgB,MAAAA,QAEAR,KAAAA,WACA,OACAg4C,QAAAA,EACAsiC,qBAAAA,EAEA,GCpD0Q,M,uBCA/C,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCZhC,IAAe50E,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEi1E,qBAAAA,GAAsBC,kBAAAA,GAAmBC,kBAAAA,IACvDt7E,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAAS,CACLN,SAAS,EACTT,KAAMoD,UAGduD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,WAClB,MAAiDyoB,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBACzB,MAAO,CACHD,EAAkB,CAAE/qB,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,kCAAqC,KAC/FyrB,EAAsB,CAAEhrB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,mCAAsC,KAChG,CAAES,IAAK,OAAQ8Q,KAAM,OAAQvR,KAAM,iCACnC,CAAES,IAAK,cAAe8Q,KAAM,OAAQvR,KAAM,wCAC1C,CAAES,IAAK,cAAe8Q,KAAM,OAAQvR,KAAM,wCAC1CwrB,EAAkB,CAAE/qB,IAAK,MAAO8Q,KAAM,aAAcvR,KAAM,gCAAmC,MAC/FiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GACrB,IACMyoB,GAAWj5B,EAAAA,EAAAA,KAAI,CACjBm0E,YAAa,EACbD,eAAgB,EAChBH,UAAW,IAEf,MAAO,CAAE1rB,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EAAagT,SAAAA,EACrC,EACAh/B,QAAS,CACL66E,wBAAwBjyD,EAAAA,GAAAA,IAAQ,qBAAoB,yCAAE,WAAsCtgB,GAAE,uGAED,OADnFyP,EAAST,GAAON,MAAMqB,MAAM,SAC5BiI,EAAS,CAAEvI,OAAQA,EAAOpJ,SAAUkL,WAAY,CAACvR,GAAI2Q,OAAQxB,YAAa,SAAS,SAClE9G,EAAAA,EAAAA,KAAAA,IACd,gBAAiB,CAAE2P,OAAAA,IACvBc,OAAM,SAACva,GACJ,GAA4B,MAAxBA,EAAI1G,SAASmK,OAAgB,MAAO,CAAExK,KAAM,CAAC,GACjD,MAAM+G,CACV,IACCiH,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OANlBK,EAAW,EAAH,KAORozB,EAAOxb,EAAOpJ,OAAO,QACrB2kB,EAAQvb,EAAOpJ,OAAO,MACtBmsE,EAAexjE,GAAON,MAAM+pC,SAAS,EAAG,UAAU1oC,MAAM,SACxD0iE,EAAWD,EAAansE,OAAO,QAC/BqsE,EAAYF,EAAansE,OAAO,MACtCzN,KAAK89B,SAASk7C,aAAyC,QAA3B,EAAA/5E,EAAS86E,0BAAkB,OAAQ,QAAR,EAA3B,EAA8B1nD,UAAK,WAAR,EAA3B,EAAsCD,KAAU,EAC5EpyB,KAAK89B,SAASi7C,eACV/4E,KAAK89B,SAASk7C,aAA4C,QAAjC,EAAG/5E,EAAS+6E,6BAAqB,OAAQ,QAAR,EAA9B,EAAiC3nD,UAAK,WAAR,EAA9B,EAAyCD,KAAU,EACnFpyB,KAAK89B,SAAS86C,WAAuC,QAA3B,EAAA35E,EAAS86E,0BAAkB,OAAY,QAAZ,EAA3B,EAA8BF,UAAS,WAAZ,EAA3B,EAA0CC,KAAc,EAAE,iDACvF,SAnBoEH,EAAuB,GAAD,sCAAtBA,CAAsB,CAAvC,KAqBxD73E,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,GACL/H,KAAK25E,uBAAuB5xE,EAAIsR,UACpC,EACArR,WAAW,MCrEgR,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkEnK,GAAM,W,IAAC,EAAM,K,EAAI,EAAO,MAAC,G,OAAa,sBAAE,MAAK,CAAyBA,KAAM,GAAC,sBAA2B6C,CAAE,EAAC,yB,MAAC,CAA+C,uB,GAAsBH,CAAcoG,QAAG,oC,YAAyBnG,EAAG,K,IAAgB8Z,U,YAAkB,G,IAAOC,EAAAA,EAAQ,G,MAASnb,CAAAA,EAAOrB,EAAAA,EAAI6lC,EAAAA,GAAAA,C,WAAoF,EAAyE,YAACnjC,QAAW,SAAQ5C,MAAM,qEAAC,WAAQ,yE,YAAgC,O,MAAI,CAAU,kBAAG6C,IAAO,GAA+B,aAAI,WAAa,GAAK,CAACgzB,EAAAA,EAAAA,EAAQumD,CAAAA,EAAAA,GAAAA,UAAmB,GAAC35E,K,MAA0E,CAACb,MAAAA,EAAU,QAAC,mBAA4B,qBAAM,EAAEe,KAAG,+BAAuB,EAAC3C,EAAO,4CAAwD,4BAAgB,C,MAAC,CAA0D,0BAAG,UAAC,YAAC,aAAiE,mD,GAAsB0C,CAAcoG,0BAAa,oC,YAA4E,O,kCAAoC,qDAACjG,MAAG,CAAC,MAAQ,Y,UAA4B,IAA2B,IAAIF,MAAG,SAAS,GAAC3C,EAAM,6BAAC,IAAY,CAACE,EAAG,IAAI,CAAuC,OAAM,KAAC,KAAem8E,CAAAA,EAAAA,GAAO,SAAU,EAAC,uBAACz5E,EAA4BD,OAAG,OAA4B3C,EAAK,QAAC,S,YAAW,e,CAAC,O,YAAsB,OAAE,MAAC,CAAG,MAAC,GAAC,UAAQ,G,KAAiB,IAAsB,IAAIE,MAAO,SAAeoR,GACxkD,mBACGhR,I,gFCFwCqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAuB9I,EAAM,Q,MAAC,yBAAuB,C,MAAsB,CAAyD,QAAU,EAAI,MAAI,yBAA6C,qDAAC6I,SAAY3I,EAAIoQ,GAAI,8C,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAMM,EAAK,EAALA,QAAS,EAAQkC,EAAG,KAAeE,EAAG,Q,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAwDQ,EAAAA,GAAAA,GAAK,0BAAY,C,WAAS,EAAe5B,KAAK,aAAwBK,QAAAA,eAAmC,2BAAC5B,WAAM,yB,MAAoBub,C,OAAoC4C,EAAAA,EAAAA,IAAoBA,EAAAA,EAAAA,GAAc,UAAE3C,eAAeA,EAAAA,eAAW,gCAAC,UAAQ/a,EAAK,YAAiB,MAAOuQ,EAAO,MAAS,EAAS,OAAG,QAAC,G,GAA4BC,C,QAAmB/Q,SAAIo8E,GAAwC,IAAC,6DAAC,GAAI,KAAiB,eAAgB,IACtpC,UAGD,E,MCJ4C35E,GAAOK,WAAS,MAAU,KAAkChD,EAAK,EAAC,S,OAAC,EAAM,mBAAmB,W,MAAC,CAAkB,wBAAe,cAAG,QAAC,MAAsB,IAAG,oB,mBAAiF,mCAAE,OAAIE,KAAO,KAEjSI,CAAAA,EAAAA,GAAAA,UAAoB,sDAExB,E,kBCuBA,IACAi8E,OAAAA,CAAAA,GAAAA,GACA71E,WAAAA,CAAA2kB,eAAAA,GAAAA,GACA9qB,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA8qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA9pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,sCACA,ICvC4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCuBhC,IACA6E,WAAAA,CAAA81E,kBAAAA,GAAAC,oBAAAA,IACAl8E,MAAAA,CACAgB,MAAAA,QACAga,eAAAA,OACA4C,eAAAA,OACA3C,UAAAA,QAEAva,QAAAA,CACAq7E,iCAAAA,SAAAA,IACAv6E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,sCACA,uBACA,ICzD4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCqChC,IACAxB,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAqzE,oBAAAA,GAAA2C,oBAAAA,IACA37E,KAAAA,WACA,OACAglC,YAAAA,GACAvqB,UAAAA,KACAqa,QAAAA,CACAumD,oBAAAA,GAEArzD,KAAAA,EACAszD,SAAAA,EAEA,EACAp4E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,2BACA,sBACA,EACAgG,WAAAA,IAGAtF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA07E,gBAAAA,WACA,YACA,mBACA,EACAC,SAAAA,WACA,aACA,qBACA,EACAC,gBAAAA,EAAAA,GAAAA,IAAAA,iBAAAA,WAAA,4HAGA,OAFA9jE,EAAAA,GAAAA,MAAAA,KAAAA,GAAAA,UAAAA,SACAC,EAAAA,GAAAA,MAAAA,SACA8B,EAAAA,GAAAA,OAAAA,KAAAA,WAAA,SAEAlJ,EAAAA,EAAAA,KAAAA,IACAzF,mBAAAA,CACAoV,OAAAA,CAAAxI,SAAAA,EAAAC,OAAAA,EAAA8B,WAAAA,KAEA/L,MAAAA,SAAAA,GAAA,wBAJA,wEAKA,SAVA8tE,IAAA,wCAAAA,IAWAP,iCAAAA,WACA,uBACA,qBACA,IC7GoQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBY35E,GAAOK,WAAS,MAAU,KAA0BJ,EAAAA,EAAAA,MAAY,G,OAAY,EAAC,oB,YAAU,O,MAAO,CAAU,OAAO,OAAO,QAAe,YAAI1C,UAAWA,M,CAAoF,SAAUA,EAAIc,GAAAA,EAAO,GAAId,yCAA8B,qB,MAAC,CAAqB,UAAc,sCAAE,iBAAI,cAAG,OAEpXI,EAEJ,E,MCJoJ,GAAC,W,IAAG,EAAC,K,EAAC,EAAO,MAAC,G,OAAiBJ,EAAIiG,GAAAA,EAAM,C,YAAwCoW,O,MAAS,gCAAG,GAAI,CAAsBvc,MAAM,YAAC,QAAUE,SAAIc,EAAAA,EAAAA,IAAO,2BAAC,MAAO,IAAe6H,I,CAAmCC,EAAE,KAAW,C,MAAC,C,QAAgE,U,KAAC,e,YAAqE,O,IAAG,U,GAA4C9I,W,MAAO,GAAO,OAAS,aAA4E,QAAQ,YAAqU,+C,OAAM,EAAC,M,IAAC,GAG15B,SAAC6C,MAAG,CAAC,KAAO,M,CAAsD,0BAAC,MAAC,CAACnB,UAAM,iF,GAAiBe,C,MAA6BgvB,SAAiBvH,GAAK,+BAACtoB,GAAuB,MAAKe,CAAY3C,MAAM,MAAC,SAAO,YAAG,iBAAI2C,EAA6B3C,WAAM,cAAmB,UAAYuW,CAGhR,MAAC,CAAG,KAAC,M,GAA0B,yBAA0BrW,C,MAAU,CAAE,gBAACwB,UAAM,iF,GAAmBe,C,MAA6BgvB,SAAiB,GAAO,+BAAC7vB,GAAyB,MAAKe,CAAY3C,MAAM,QAAC,SAAO,YAAG,mBAAI2C,EAAYC,WAAY,gBAAc,KAAO,KAAE,C,MAAC,CAAgB,WAGlRC,CAAE,EAAC,K,YAAS,O,MAAiB,CAA4B,QAAC,cAAIF,UAAY,EAAI,UAAY,EAAG,QAAO,QAAI,mDAA2B3C,GAAK,CAAE,MAAO,YAAG,uBAAME,IAAmC,OAAQ,MAAW,sB,IAAC,OAAO,CAAE,Q,MAAC,CAAW,W,CAAK,aAAoP,OAA5O,MAASqc,C,MAAQ,CAAsB,kBAAC,QAAI5Z,MAAG,I,GAAiB,CAAS,kBAAIzC,OAAO,EAAM,WAAiFF,IAAiB,QAAE,MAAM4Q,CAA2B,UAAa,0EAAO,OACxiB,WAGQtP,CAAAA,EAAM,GAAEhB,YAAe,WAb+mB,iBAAW,MAAC,CAAG,KAAC,UAAC,QAAQ,yB,CAAuC,aAAqQ,OAArQ,OAAC,OAAIqC,MAAG,a,GAAiB,CAAS,kBAAIzC,OAAO,EAAM,WAA4H,IAAyB,GAAEyC,EAAAA,EAAG,C,MAAc,C,KAAQ,KAAM,GAAI,GAAC,kBAAuB,0CAAzZ,iB,MAAC,CAAkC,eAAK,QAAKg0E,8C,2BCApmBr1E,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,6BAA6BzC,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,OAAS,GAAG,MAAQ,CAAC,OAAO,MAAQE,EAAI48E,eAAe,MAAQ58E,EAAIoR,GAAG,uCAAuC,eAAe,KAAK,gBAAgBpR,EAAIuW,OAASvW,EAAIuW,OAAS,IAAM,KAAK,eAAe,GAAG,iBAAiB,IAAI5T,GAAG,CAAC,MAAQ3C,EAAI68E,0BAA0B,6BAA6B78E,EAAI+f,QAAO,GACja,EACI3f,GAAkB,GCwBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAurB,GAAAA,OAAAA,CAAAA,EAAAA,CACAvqB,MAAAA,OACAkV,OAAAA,OAEA/P,WAAAA,CAAAolB,yBAAAA,IACAjnB,SAAAA,CACAi4E,eAAAA,WACA,kBACA,CACA9/D,GAAAA,KAAAA,MACAC,KAAAA,KAAAA,MACAE,YAAAA,MACAC,SAAAA,GACAC,KAAAA,MACAC,YAAAA,GAPA,IASA,GAEArc,QAAAA,CACA87E,wBAAAA,SAAAA,GACA,KAEA,CACA,aACA,cACA55E,EAAAA,EAAAA,QAAAA,KAAAA,OAAAA,IAAAA,KAEA,qBACA,MAPA,wBAQA,ICzD6Q,M,uBCA/C,GAAe,KCOzO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC0EhC,IACAuD,WAAAA,CAAA6hC,mBAAAA,GAAAy0C,qBAAAA,IACAz8E,MAAAA,CACAS,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAa,MAAAA,CACAtB,KAAAA,OACAS,QAAAA,WAAA,OACAC,OAAAA,EACAI,KAAAA,GACA,GAEA41E,WAAAA,CACA12E,KAAAA,QACAS,SAAAA,IAGAO,QAAAA,CACAuwE,UAAAA,WACA,8BACA,sBAAAyL,IAAAA,GAAAC,MAAAA,GAAAC,QAAAA,CAAAA,kBACA,+BACA,EACAC,UAAAA,SAAAA,EAAAA,GACA,8BACA,sEACA,+BACA,IC7HgQ,M,sBCA/C,GAAe,KCO5N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCAhC,IACA78E,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAA22E,QAAAA,IACAt8E,KAAAA,WACA,OACAkJ,SAAAA,CAAAtJ,OAAAA,EAAAI,KAAAA,IAEA,EACAkD,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,gCACA,EACAgG,WAAAA,IAGAlJ,QAAAA,CACAq8E,gBAAAA,EAAAA,GAAAA,IAAAA,iBAAAA,WAAA,yHAIA,OAHA/7D,EAAAA,CACAvI,OAAAA,GAAAA,MAAAA,SACAD,SAAAA,GAAAA,MAAAA,KAAAA,GAAAA,QAAAA,UACA,SACAnH,EAAAA,EAAAA,KAAAA,IAAAA,0BAAAA,OAAAA,EAAAA,eAAAA,CAAA2P,OAAAA,IAAA,yBACArS,EAAAA,KAAAA,KAAAA,SAAAA,GAAA,OACA+tE,IAAAA,EAAAA,OACAC,MAAAA,EAAAA,SACAK,OAAAA,SACAJ,QAAAA,CAAAA,UACAK,UAAAA,EACA,OACA,OARA,0EASA,mDAdAF,KAgBAz4E,SAAAA,CACA44E,kBAAAA,WACA,yCACA,2CAAAxgE,KAAAA,GAAAA,OAAAA,EAAAA,IAAAA,OAAAA,KAAAA,OAAAA,EAAAA,MAAAA,QAAA,IADA,EAEA,IC5DmQ,M,uBCA/C,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBgEra,GAAAA,W,IAAmB5C,EAAM,K,EAAC,QAAS,G,OAAO,EAAM,WAAG,S,YAAQ,O,MAAU,CAAe,cAAIE,KAAO,GAAiGF,KAAM,UAAC,UAAUE,MAAiF,kGAAC2I,MAAAA,CAAqBnG,QAAI,EAAS,oDAACoG,MAAG,e,YAA0B,KAANkI,CAAAA,C,IAAQ7Q,U,GAAMa,SAAO,G,IAAEkQ,EAAK,EAALA,QAAS,EAAW,SAASlR,EAAM,O,EAAQ,EAAC,Q,EAAU,EAAU,M,MAAqB,OAAUgB,C,MAAQ,CAAc,MAAO,UAAG,eAAG,QAAC,EAAC,KAAO,E,KAAsB08E,IAAgC,IAAI/6E,MAAG,SAAS,GAAC3C,EAAM,wBAAC,IAAY,CAACE,EAAG,IAAI,CAA6B,OAAG,UAAe,eAAkB,kB,QAAqBF,O,YAAgB,G,IAAC,EAAO,EAAC,K,MAAQ,OAAUE,CAAgC,MAAC,CAAG,KAAC,GAAC,MAAQ,Q,QAAwBA,EAAIy9E,MAAAA,GAAAA,qBAAuB,IAAIh7E,MAAG,SAAS,GAAC3C,OAAM,qBAAC,IAAY,CAACE,EAAG,IAAI,CAAiC,OAAG,UACl/B,qCACGI,Q,UCFuFN,GAAM,W,IAAC,EAAKE,KAAU,EAAC,W,OAAM,EAAC,M,IAACqB,O,MAAoBkB,C,GAA6BuG,EAAAA,Q,MAAapH,CAAoB,gBAAIe,SAAG,SAAqB,GAA2BC,EAAAA,QAAY,CAAc1C,EAA6B0C,WAAY,YAA6CA,CAAAA,EAAAA,GAAAA,EAAY,4BAAY,YAAS,aAA2HA,CAAAA,EAAAA,GAAAA,aAAkB,QAAC5C,YAAM,a,CAAC,KAAO,eAAa8mE,EAAAA,KAAW,C,YAAC,a,CAAkB,iBAAa,4F,YAAS,OAAE,MAAC,CAACplE,MAAM,sBAACH,eAAWwuD,GAAWttD,SAAS,G,MAAoBstD,I,MAAenuD,CAAsB,kBAAI,SAAO,SAAS,GAAgBgB,EAAAA,UAAkB,CAAC5C,EAAO,WAASE,gBAAyC,UAAa,S,YAAS,OAAE,MAAC,CAACwB,MAAM,sBAACH,eAAWkwE,GAAahvE,SAAS,G,MAAoBgvE,I,MAAiB7vE,CAAwB,oBAAI,SAAO,SAAmB,GAAEgB,EAAAA,YAAkB,CAAC5C,EAAO,WAASE,kBAAyC,UAAa,S,YAAW,O,MAAC,CAA6B,SAAY,OAAM,YAAC,eAAa,GAAK,YAACwB,MAAM,GAACH,MAAOrB,EAAI09E,iBAAcn7E,YAAS,O,aAAoBm7E,M,MAAkBh8E,CAAyB,qBAAI,SAAO,SAAa,GAAgB,EAAQ,aAAW,CAAC,EAAkB,8BAA4D,GAAM,EAAC1B,KAAI29E,CAAAA,EAAM,mBAAC,OAAS,EAAI,OAAU,MAAM,EAAI,MAA0C,gBAAe,kB,QAAKxiE,EAAAA,QAAC,KAAM,EAAI,O,QAAuK5F,EAAAA,WAAO,KAAK,mCAAE,OAAO2S,EAAAA,KAASloB,CAA0C0C,IAAAA,GAA0B5C,CAAAA,EAAM,sJAAC,UAAa,IAAC,IAAGE,EAAIG,OAAqB,IAAdH,EAAIkS,MAAOd,O,OAAG,eAA8B,CACh1D,0BACGhR,MAAAA,CAEJ,QAAiBA,M,6ECqFjB,IACAC,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,IAGAK,KAAAA,WACA,OACAiI,SAAAA,EACA80E,iBAAAA,CACA,CAAAv0E,GAAAA,YAAApG,KAAAA,cACA,CAAAoG,GAAAA,YAAApG,KAAAA,eAEA4sD,UAAAA,KACA0hB,YAAAA,KACAmM,aAAAA,YACA5sE,OAAAA,GAAAA,SAEA,EACAnM,UAAAA,EAAAA,EAAAA,GAAAA,CACAg5E,OAAAA,WACA,6BACA,eAEA,MADA,wDACA,CACApnE,OAAAA,KAAAA,UACAwoC,SAAAA,KAAAA,YACAzqB,KAAAA,EAAAA,OACAD,MAAAA,EAAAA,QAAAA,EAEA,IACAhE,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAiQ,MAAAA,WACA,uBACA,EACAsB,gBAAAA,WACA,iCACA,IClIwQ,M,uBCA/C,GAAe,KCQpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCuBhC,IACAjS,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAq3E,gBAAAA,IACAh9E,KAAAA,WACA,OACAi9E,YAAAA,GAEA,EACA/5E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,qBACA,EACAgG,WAAAA,IAGAlJ,QAAAA,CACAq8E,gBAAAA,EAAAA,GAAAA,IAAAA,yBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACA1rE,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OACA,qFAEA4C,MAAAA,SAAAA,GAAA,wBAJA,yEAMA2uE,eAAAA,EAAAA,GAAAA,IAAAA,gBAAAA,WAAA,4IAEA9rE,EAAAA,EAAAA,KAAAA,KAAAA,+BAAAA,OACA,oFACAisE,GACA,OACA,uBACA97E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,8CAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,4CAAA,yDAEA,mDAXA67E,IAYAC,kBAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,WAAA,4IAEA/rE,EAAAA,EAAAA,KAAAA,UAAAA,+BAAAA,OACA,8IACA,OACA,uBACA7P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,8CAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,4CAAA,yDAEA,mDAVA87E,MCnFoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYh7E,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAmB,6BAAc,2BAAG,qCAAC6I,cAAgByH,I,YAA6C,KAAU,mB,IAAC,Y,GAA+B5O,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAAyC,wBAA4C,UAAe,KAAI,GAACuvB,mBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAEnzC3sC,EAEJ,E,MCJ4D,GAAU,W,IAAyBN,EAAM,K,EAAC,EAAM,MAAC,G,OAAE,qBAAE,MAAMK,CAAuD,KAAU,K,CAAwBuC,EAAAA,GAAAA,gBAAkB,0B,OAAM,EAAC,M,IAAC,EAAU,G,YAAc,O,MAAC,CAAW,YAAG,MAAC,GAAC,U,GAA4D,CAAC,0BAAM,OAAC,EAAS,aAAC5C,IAAgB,QAAG,MAAKK,CAA+D,KAAC,MAErbC,EAAAA,GAAAA,IAAe,EAAK,wCAExB,O,oBCDA4K,EAAAA,WAAAA,IAAQgzE,GAAAA,GAER,IAAMC,GAAY,CACdC,GAAI,CACA,sBAAuB,WACvB,qBAAsB,UACtB,uBAAwB,mCACxB,uBAAwB,mCACxB,mBAAoB,wBACpB,kBAAmB,+BACnB,wBAAyB,sBACzB,iBAAkB,wBAClB,iBAAkB,wBAClB,0BAA2B,iBAC3B,2BAA4B,uBAC5B,2BAA4B,qCAC5B,2BAA4B,sCAC5B,iCACI,uDACJ,mBAAoB,kDAItBC,GAAY,CACdD,GAAI,CACA,sCACI,4DAICE,GAAO,IAAIJ,GAAAA,EAAQ,CAC5BK,OAAQ,KACRC,uBAAuB,EACvBC,SAAU,CACNL,IAAI,0BACGD,GAAUC,IACVC,GAAUD,IAAE,IACfj7E,KAAM,OACN42D,oBAAqB,4BACrB,8BACI,wKACJvB,KAAM,OACNv4D,KAAM,OACNy+E,KAAM,OACNrqE,YAAa,cACbsqE,KAAM,OACNvwD,YAAa,cACbvc,OAAQ,SACR+sE,KAAM,OACNC,QAAS,UACT5tE,MAAO,QACPuX,OAAQ,SACRs2D,UAAW,YACX,iBAAkB,oBAClB,iBAAkB,iBAClB,kBAAmB,kBACnB,mBAAoB,mBACpB,mBAAoB,mBACpB,iBAAkB,iBAClB,YAAa,YACb,kBAAmB,gBACnB,aAAc,aACd,qBAAsB,qBACtB,sBAAuB,sBACvB,uBAAwB,uBACxB,2BAA4B,2BAC5B,wBAAyB,wBACzB,kBAAmB,kBACnB,qBAAsB,wBACtBxiB,OAAQ,SACRxwD,MAAO,QACPizE,cAAe,gBACfC,KAAM,OACN3wD,QAAS,UACT4wD,MAAO,QACP/X,SAAU,WACV,eAAgB,eAChB,mBAAoB,mBACpBgY,QAAS,UACT,2CACI,kDACJ,0CACI,wEACJ,qCAAsC,WACtC,8CAA+C,aAC/C,2CAA4C,kBAC5C,qCAAsC,WACtC,0CAA2C,gBAC3C,mCAAoC,SACpC,0CAA2C,oBAC3C,oCAAqC,UACrC,iCAAkC,SAEtCC,GAAI,CACAh8E,KAAM,KACNq1D,KAAM,MACNkmB,KAAM,KACNC,KAAM,KACN9sE,OAAQ,OACR2W,OAAQ,MACR,iBAAkB,KAClB,iBAAkB,UAClB,kBAAmB,WACnB,mBAAoB,OACpB,iBAAkB,YC/FxB,SAAU42D,GAA+BnqE,EAAyBsM,GACpE,IAAM89D,GAAc,UAAK99D,GA8BzB,OA7BAtM,EAAMmG,SAAQ,SAACgX,GACX,GAAIA,EAAEnyB,OAAS0V,GAAAA,QACX0pE,EAAYvkE,WAAajB,GAAyB0H,EAAOzG,WAAYsX,EAAE7oB,SACpE,GAAI6oB,EAAEnyB,OAAS0V,GAAAA,aAClB0pE,EAAYxkE,gBAAkBhB,GAAyB0H,EAAO1G,gBAAiBuX,EAAE7oB,SAC9E,GAAI6oB,EAAEnyB,OAAS0V,GAAAA,aAClB0pE,EAAYtkE,gBAAkBlB,GAAyB0H,EAAOxG,gBAAiBqX,EAAE7oB,SAC9E,GAAI6oB,EAAEnyB,OAAS0V,GAAAA,QAClB0pE,EAAYrkE,WAAanB,GAAyB0H,EAAOvG,WAAYoX,EAAE7oB,SACpE,GAAI6oB,EAAEnyB,OAAS0V,GAAAA,gBAA4B,CAC9C,IAAM2pE,EAAeltD,EAAE7oB,GAClByQ,MAAM,KACNilB,UACAnhB,MAAK,SAAC6K,GAAS,OAAKA,CAAC,IAC1B02D,EAAYroE,kBAAoB6C,GAAyB0H,EAAOvK,kBAAmB,IAAF,OAAMsoE,EAAY,K,MAChG,GAAIltD,EAAEnyB,OAAS0V,GAAAA,OAAmB,CACrC,MAAmCyc,EAAE7oB,GAAGyQ,MAAM,KAAI,gBAA3C4B,EAAY,KAAEH,EAAU,KAC/B4jE,EAAYzjE,aAAeA,EAC3ByjE,EAAYpkE,YAAcpB,GAAyB0H,EAAOtG,YAAaQ,E,MAChE2W,EAAEnyB,MAAQ0V,GAAAA,IACjB0pE,EAAYnjE,aAAerC,GAAyB0H,EAAOrF,aAAckW,EAAE7oB,IACpE6oB,EAAEnyB,MAAQ0V,GAAAA,UACjB0pE,EAAYnkE,eAAiBrB,GAAyB0H,EAAOrG,eAAgBkX,EAAEjvB,MACxEivB,EAAEnyB,MAAQ0V,GAAAA,cACjB0pE,EAAYzjE,aAAe/B,GAAyB0H,EAAO3F,aAAcwW,EAAEjvB,MACpEivB,EAAEnyB,MAAQ0V,GAAAA,aACjB0pE,EAAY1kE,YAAcd,GAAyB0H,EAAO5G,YAAayX,EAAE7oB,IAEjF,IACO81E,CACX,CAcA,QACI9+E,MAAO,CACHgB,MAAO+V,OAEXrW,QAAS,CACLs+E,WAAU,SAACrmE,GACP,IAAMsmE,EAAuBr9E,KAAKZ,MAAM2X,QAAO,SAACmC,GAAC,OAAKA,GAAKnC,CAAM,IACjE/W,KAAKgE,MAAM,QAASq5E,EACxB,IClE0S,MCO9S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCUhC,IAAe/4E,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJ7W,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBwB,SACrD,IAAM6mE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,MAAkBA,GAAAA,UAC5D00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CAAC4O,GAAiBwB,OAAQxB,GAAiBkB,WAE9F4oE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,4GAEyC,GAD7D/a,EAAcf,EAAElZ,MAAhBia,UACF5b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEia,UAAAA,KACxDlE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAC5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAAqBrhC,EAAQzF,EAAam3B,EAAerzC,EAAQkqC,UAAU,6CAC9H,qGArBY,mCAuBZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAiBA,OAfA6jE,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEia,eAAW7M,IACvEg8B,EAAYhU,UAAU/2B,EAC1B,KAEAqE,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,ICvHmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAkB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,mB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAAwC,mBAA4C,UAAe,KAAI,GAACuvB,kBAAY,0CAAI,gBAAG,mBAEviCnvB,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBwB,SACrD,IAAM6mE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,MAAkBA,GAAAA,MAC5D00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBwB,OACjBxB,GAAiBY,OAGfqpE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,kBAAgB,uBAAE,kHAKkC,GAJvD/a,EAAcf,EAAElZ,MAAhBia,UACF5b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEia,UAAAA,IACtDM,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACsC9Z,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1DoD,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OACzD4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGAvBc,mCAyBZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAiBA,OAfA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,oBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG3By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEia,eAAW7M,IACvEg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACLq+E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GAEZ,ICtHsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4P,GAAC,W,IAAG,EAAC,K,EAAC,WAAqC4wB,EAAAA,MAAO3wB,Y,OAAO,Q,MAAC,C,UAAsC2wB,EAAO3wB,OAAM,YAAC,WAAC,kB,MAAuC4wB,EAAAA,QAAe,gBAAC,GAAC,oB,WAAwCA,IAAe,cAAC,I,GAAoCjtC,CAAmB,4BAAE,UAAC2I,EAAqBnG,iBAAS,YAAG,EAAC,Q,oBAAyC,Y,EAAC,SAAS,C,qBAAsB,YAAC,EAAGC,SAAG,C,oBAA2C,SAAE,G,EAAC,SAAS,C,eAAckG,EAAW,GAAC3I,CAAAA,C,8BAA4C,GAAL2C,GAAAA,EAAAA,C,MAAM,C,KAA2B7C,G,MAAO,gB,SAAkC,Q,MAAG6C,C,WAAwB,G,OAAC,G,KAAS,I,YAAgD,OAAG,gBAAIF,GAAG,SAAY,GAAmB,WAAC,MAAQ,YAAS4Z,CAAQ,MAAOrc,CAAmB,aAAC,oBAA+K,WAAC,MAAQ,CAAiB,KAAW4/E,KAAiB,yCAAIn9E,MAA0K,GAAC,cAAM,IAAI,eAAY,GAAI,wBAAW8S,IAAoF,sGAAG,IAAI,eAAqB,GAAI,yBAAWA,IAA8F,2GAAE,EAAE/S,OAAG,GAAmBoG,C,IAAqB,Y,GAAC,SAAc,GAA4D,aAAG,+DAACpG,GAAoBoG,C,IAA8B,qB,GAAP2M,SAAI,GAAI,MAAW,EAAK,K,MAAM,GAAC,gE,QAA4B,kB,GAA+K,SAAU,G,IAAU/S,EAAK,O,MAACE,CAAAA,EAAAA,GAAW,IAAC,EAAM,8C,oCAA6B,G,IAAE,EAAS,EAAI1C,QAA4B,EAAIyC,EAAO,K,MAAwC,GAAS,KAAC,C,MAAc0vB,CAAEzvB,QAAW,EAAO,S,GAAQ,KAAU,uI,OAAC,OAAQ,CAAE,MAAE,YAAY,OAA8B,MAAO,CAAM,SAAS,MAAI,KAC13E,iDACGtC,IAAAA,GAAAA,EAAe,KAAK,+BAEfgB,OAAQhB,EAAAA,GAAAA,EAAAA,C,4ICEjB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAC,QAAS,WACjBqG,MAAK,WACD,IAAMoB,GAAUhB,EAAAA,EAAAA,KAAI,IACdxF,EAAU,CACZ,CAAC,aAAc,eACf,CAAC,OAAQ,QACT,CAAC,gBAAiB,eAClB,CAAC,YAAa,cACd,CAAC,aAAc,WACjB2N,KAAI,gCAAE5N,EAAK,KAAEU,EAAI,WAAO,CACtBA,KAAAA,EACAk6C,MAAO,OACPtqB,UAAU,EACVtwB,MAAAA,EACH,IACK2rC,GAASlmC,EAAAA,EAAAA,KAAI,cACbmmC,GAAWnmC,EAAAA,EAAAA,MAAI,GACf+4E,GAAuBl2D,EAAAA,GAAAA,IAAQ,oBAAmB,yCAAE,WAAqBrO,GAAiB,6FAChD5J,EAAAA,EAAAA,KAAAA,IACnC,qBAAD,OAAsB4J,IACzBzM,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFlBi/E,EAAU,OAGhBh4E,EAAQzG,MAAQy+E,EAAW7wE,KAAI,SAACjF,EAAKmR,GAAC,yBAAWnR,GAAG,IAAEmR,EAAAA,GAAC,IAAK,2CAC/D,SALwE4kE,EAAM,GAAD,sCAALA,CAAK,CAAtB,IAMlDH,EAAiB,WACnBjrC,GAAAA,WAAsB7sC,EAAQzG,MAAO,aACzC,EACM2+E,EAAgB,WAClB,IAAMC,EAAa,CACf,aACA,OACA,WACA,OACA,gBACA,UACA,YACA,eACA,aACA,cACA,OACA,YAEExhE,EAAS3W,EAAQzG,MAAM4N,KAAI,SAACkM,GAAC,OAC/B8kE,EAAWhxE,KAAI,SAAC8iB,GACZ,MAAU,aAANA,GAA0B,SAANA,EACbpuB,OAAOy7C,QAAQjkC,EAAE4W,IACnB9iB,KAAI,gCAAEkjB,EAAC,KAAExf,EAAC,qBAASwf,EAAC,YAAIxf,EAAC,IACzBqH,KAAK,KAEHmB,EAAE4W,EAEjB,GAAE,IAEN4iB,GAAAA,UAAqB,CAACsrC,GAAU,gBAAKxhE,IAAS,YAClD,EACA,MAAO,CAAE3W,QAAAA,EAAS+3E,qBAAAA,EAAsBv+E,QAAAA,EAASy/D,SAAU,GAAI/zB,OAAAA,EAAQC,SAAAA,EAAU2yC,eAAAA,EAAgBI,cAAAA,EACrG,EACAj8E,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAACi8E,GACCA,GACLj+E,KAAK49E,qBAAqBK,EAAI5kE,UAClC,EACArR,WAAW,MCrEmR,MCOtS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYxH,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAaE,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAoCe,C,MAA6B49E,EAAAA,uBAA0B,SAAC,YAACz+E,EAAAA,uBAAW,CAAwB,EAAIe,WAAG,2B,CAAsB,gBAAY29E,C,MAAqB,CAA+C,6BAAG,QAAC,oC,GAA0B,CAAsD,kBAAC,8CAAI39E,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE7oBrC,IAAAA,EAEJ,E,MC2BA,IACAS,KAAAA,WACA,OACAs/E,wBAAAA,EACAE,mBAAAA,KACAD,qBAAAA,KAEA,EACAr/E,QAAAA,CACA45E,eAAAA,SAAAA,GACA,IACA,+BACA,6BACA,gCAEA,qBACA,EACA2F,yBAAAA,EAAAA,GAAAA,IAAAA,uBAAAA,WAAA,4IAEA5uE,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OAAAA,IACA4C,MAAAA,SAAAA,GAAA,wBAFA,iCAGA,2GAEAlN,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,6CACA,iFAEA,mDAVA2+E,KAYAv8E,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GACA,sDACA,sDACA,+FAGA,yBACA,qDACA,EACAgG,WAAAA,EACAjG,MAAAA,KCxE+P,M,uBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBqP,cAAC,IAAG,EAAIvB,KAAY3C,EAAK,EAAC,SAAC,QAAa,Y,OAAE,QAAE,YAAY,UAAEA,MAAM,CAAC,QAAQ,YAAY,eAAE,KAAK,YAAgB4C,CAAAA,EAAAA,GAAAA,EAAY,CAAY,MAAK,CAAoB5C,MAAM,UAAC,OAAS,KAAC,cAAQ,OAAkBE,GAAIG,EAAG,KAAIH,CAA4IF,MAAM,CAAC,aAAYuB,KAAOsB,CAAE,EAAC,M,MAAC,C,GAAyB,IAAiC,YAAI,GAAC3C,GAAAA,GAAY,CAAsC0C,YAAY,aAAa,CAAC1C,EAAG,mBAAI,CAAoH0C,MAAAA,CAA+BD,KAAG,GAA+B3C,MAAM,kBAAkB,sIAAG,MAAI,CAA0BA,MAAM,S,GAAU,CAAW,kBAAM,OAAC,gBAAsB,EAACA,KAA+C,gBAAsBigC,GAAAA,EAASi7C,GAAAA,GAAc,C,YAAC,a,CAAoC,iCAAgCzrD,EAAAA,GAAAA,EAAY,sD,YAAC,kBAAyD,kCAAG,MAAK,CAAiB/tB,MAAM,YAAiBe,GAAAA,EAAS,gBAAUynB,C,MAAS,CAAQ,GAAC,IAACtoB,KAAAA,OAAmB,CAACe,EAAG,sBAAqB4N,CAA4B,MAAO5N,CAAYD,eAAW,uBAAC1C,kBAAM,0B,aAAU0C,EAAAA,SAAAA,UAAG,2CAAE,cAAc,EAAC,sC,IAAQ,GAAO,EAAC,M,MAAY,C,MAAS,EAAQ2sD,IAAuE,qBAAI1sD,EAAG,KAAU3C,E,WAAc,QAAI,GAAEE,GAAAA,GAAcmvD,EAAI77C,GAAI,EAAI,MAAKnT,SAAOH,GAAuC,OAAKyC,EAAG,MAAiD3C,IAAM,MAAC,MAAO,CAAW,KAAUE,MAAgB,CAAC,EAAEyC,GAAAA,EAAG,CAC12D,OACGrC,MAAAA,YAEJ,IAAe,G,oSCJ2I,W,IAAYwI,EAAG,K,EAAmB,QAAW,G,SAAyB,WAAW,GAAO,KAAKiX,C,kBAA4B,G,OAAE,I,YAA2B,O,IAAE,Y,YAAoD,G,MAAC,MAAQ,WAAE,W,MAAC,OAAU,MAAE,mBAAE,MAAM1f,CAAwB,UAAa,GAAE,eAAqB,8BAAM,MAAM04C,CAAgB,MAAC,GAAoBA,UAAU,KAAEn3C,CAAAA,EAAW,sBAAQ,WAAIe,IAAkC,S,MAAC,C,MAA6B04E,EAAAA,OAA0B,qBAAC,UAAI14E,EAAoN,WAAC,W,GAA0BzC,GAAAA,EAAI0mE,CAAAA,EAAAA,GAAAA,EAAgB,C,GAAI,CAAC,kBAAM,EAAC,qBAAuB,CAAyM5mE,IAAgC,4IAAC6C,GAAG,CAAC,MAAS,SAAC,GAAiB,iBAAiB,CAAgB,IAAGnB,CAAAA,EAAK,KAAC,8J,MAAM,CAAqBe,aAAS,S,GAAsC,CAACb,QAAU,SAAC,GAAe,yBAAIe,G,MAAkD,CAAyB,sBAAG,SAAC,YAAC,gBAAU,C,EAAkD,8BAAGjB,EAAK,uCAAC,C,MAAM,CAA2Be,aAAS,S,GAA4C,CAACb,QAAU,SAAC,GAAqB,yBAAI,GAEnkDtB,MAAAA,CAEJ,MAASgB,EAAQhB,oB,6FCJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAA2B9I,EAAM,Q,MAAC,GAAO,0BAAKygF,C,MAAwB,CAAmD,gCAAC53E,QAAY3I,EAAIoQ,MAAI,gC,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA4DQ,EAAAA,GAAAA,GAAK,8BAAY,C,WAAS,EAAe5B,KAAK,aAA8BK,QAAAA,eAAyC,iCAAC5B,WAAM,+B,MAA0B,C,MAAiB,e,QAAiB,EAAoBuB,GAAAA,UAAmB,wBAAC,MAAOyP,EAAM,OAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,G,GAA4BiQ,C,QAAmB/Q,SAAIy7D,GAA4B,IAAC,mDAAC,GAAI,KAAiB,eAAgB,IACzjC,UAGD,E,MCJIr6D,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAM,uCAAiC37D,EAAIqB,OAAS,CAAC,GAAG4c,gBAAiB,QAAU,MAAMtb,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACnS,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAO,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,wCACA,ICzCgR,M,uBCA/C,GAAe,KCO5O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCUhC,IACAtB,MAAAA,CACAgB,MAAAA,QACA8U,aAAAA,QAEA3P,WAAAA,CAAAo1D,qBAAAA,GAAA4kB,wBAAAA,IACAz/E,QAAAA,CACA06D,uBAAAA,SAAAA,IACA55D,EAAAA,EAAAA,IAAAA,2BAAAA,OAAAA,EAAAA,OACA,+DAAAw1B,iBAAAA,EAAAA,OACA,GAEA1yB,SAAAA,CACA47E,wBAAAA,WACA,yBACA,CAAAzjE,GAAAA,KAAAA,aAAAA,eAAAC,KAAAA,KAAAA,aAAAA,kBADA,EAEA,IChDmR,MCO/Q,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYta,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAiB,C,MAAC,CAAkB,cAAG,YAAC,O,GAA0B,CAAiC,kBAAE,yBAAC6I,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAqB,U,GAAC,SAAW,G,IAAkC9I,EAAM,O,MAAC,GAAO,iCAAiB,C,MAAC,CAAuD,qBAAC6I,QAAY3I,EAAIoQ,MAAI,oC,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAa,kBAAC,UAAIF,KAA4DQ,EAAAA,GAAAA,GAAK,8BAAY,C,WAAS,EAAe5B,KAAK,aAAkCK,QAAAA,eAA6C,qCAAC5B,WAAM,mC,MAA0B,C,MAAiB,e,QAAiB,EAAqBuB,GAAAA,UAAgC,yBAAC,MAAOyP,EAAM,oBAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,GAAyC,IAAI,wCAAiB,eAAgB,IACvjC,UAGD,E,MC4BA,IACAT,MAAAA,CACAgB,MAAAA,QACA8U,aAAAA,QAEA3P,WAAAA,CAAA60E,2BAAAA,GAAAmF,wBAAAA,IACAz/E,QAAAA,CACAw6E,2BAAAA,SAAAA,IACA15E,EAAAA,EAAAA,IAAAA,uCAAAA,OAAAA,EAAAA,oBACA,uBACA,+DAAAu5E,kBAAAA,EAAAA,oBACA,IC3CyR,MCOrR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCsChC,IACA50E,WAAAA,CAAAi6E,iCAAAA,GAAAC,2BAAAA,IACArgF,MAAAA,CACAgB,MAAAA,QAEAR,KAAAA,WACA,OACAg4C,QAAAA,EACA6tB,eAAAA,EACAyU,qBAAAA,EAEA,GCnE+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4B,GAAU,W,IAAyBz4E,EAAAA,KAAmB5C,EAAK,EAAC,S,OAAC,aAAa,S,YAAW,O,MAAM,CAAmB,YAAI2C,MAAG,GAA4B3C,IAAM,qB,CAAa,6BAAS,C,MAAC,CAAmC,UAAIE,KAAO,GAAmG0C,MAAW,EAAC,MAAM,qBAAQ,2BAAa,gE,YAAS,OAAE,OAAID,SAAW,GAAE3C,MAAM,KAAU,QAAE,MAAMK,CAAsHuC,KAAAA,K,CAA0B,wBAAa,+E,YAAS,OAAE,OAAID,SAAW,GAAE3C,MAAM,KAAU,QAAE,MAAMK,CAAmHuC,KAAAA,K,CAA0B,iBAAa,mF,YAAS,OAAE,OAAID,SAAW,GAAE3C,MAAM,KAAU,QAAE,MAAMK,CAAkKuC,KAAAA,K,CAA0B,iBAAa,4H,YAAW,O,MAAC,CAAe,SAAM,GAEplC,MAAQ,GAAO,aAAID,KAAG,6BAAS,2GAAC3C,OAAM,SAAU,QAAE,MAAMK,CAClE,UAGD,GAASiB,GAAAA,iBAAQhB,EAAe,8E,QCqChC,IACAC,MAAAA,CACAgB,MAAAA,SC7CkR,M,uBCA/C,GAAe,KCO9O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCZhC,IAAekF,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEm1E,kBAAAA,GAAmBgF,uBAAAA,GAAwBC,0BAAAA,IACzDvgF,MAAO,CACHgB,MAAOsC,OACP7C,QAAS,CACLN,SAAS,EACTT,KAAMoD,UAGduD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,WAClB,MAAiDyoB,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBACzB,MAAO,CACHD,EACM,CAAE/qB,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,uCACxC,KACNyrB,EACM,CAAEhrB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,wCACpC,KACN,CAAES,IAAK,cAAe8Q,KAAM,OAAQvR,KAAM,6CAC1CwrB,EACM,CAAE/qB,IAAK,SAAU8Q,KAAM,iBAAkBvR,KAAM,wCAC/C,KACN,CAAES,IAAK,cAAe8Q,KAAM,OAAQvR,KAAM,8CAC5CiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GACrB,IACMyoB,GAAWj5B,EAAAA,EAAAA,KAAI,CACjBm0E,YAAa,EACbD,eAAgB,EAChBH,UAAW,IAGf,MAAO,CAAE7qB,KAAAA,EAAMb,IAAAA,EAAKpvB,SAAAA,EAAUhT,YAAAA,EAClC,EACAhsB,QAAS,CACL8/E,6BAA6Bl3D,EAAAA,GAAAA,IAAQ,qBAAoB,yCAAE,WAA2CtgB,GAAE,uGAEN,OADxFyP,EAAST,GAAON,MAAMqB,MAAM,SAC5BiI,EAAS,CAAEvI,OAAQA,EAAOpJ,SAAUiL,gBAAiB,CAACtR,GAAI2Q,OAAQxB,YAAa,SAAS,SACvE9G,EAAAA,EAAAA,KAAAA,IACd,gBAAiB,CAAE2P,OAAAA,IACvBc,OAAM,SAACva,GACJ,GAA4B,MAAxBA,EAAI1G,SAASmK,OAAgB,MAAO,CAAExK,KAAM,CAAC,GACjD,MAAM+G,CACV,IACCiH,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OANlBK,EAAW,EAAH,KAORozB,EAAOxb,EAAOpJ,OAAO,QACrB2kB,EAAQvb,EAAOpJ,OAAO,MACtBmsE,EAAexjE,GAAON,MAAM+pC,SAAS,EAAG,UAAU1oC,MAAM,SACxD0iE,EAAWD,EAAansE,OAAO,QAC/BqsE,EAAYF,EAAansE,OAAO,MACtCzN,KAAK89B,SAASk7C,aAAyC,QAA3B,EAAA/5E,EAAS86E,0BAAkB,OAAQ,QAAR,EAA3B,EAA8B1nD,UAAK,WAAR,EAA3B,EAAsCD,KAAU,EAC5EpyB,KAAK89B,SAASi7C,eACV/4E,KAAK89B,SAASk7C,aAA4C,QAAjC,EAAG/5E,EAAS+6E,6BAAqB,OAAQ,QAAR,EAA9B,EAAiC3nD,UAAK,WAAR,EAA9B,EAAyCD,KAAU,EACnFpyB,KAAK89B,SAAS86C,WAAuC,QAA3B,EAAA35E,EAAS86E,0BAAkB,OAAY,QAAZ,EAA3B,EAA8BF,UAAS,WAAZ,EAA3B,EAA0CC,KAAc,EAAE,iDACvF,SAnByE8E,EAA4B,GAAD,sCAA3BA,CAA2B,CAA5C,KAqB7D98E,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,GACL/H,KAAK4+E,4BAA4B72E,EAAIiU,eACzC,EACAhU,WAAW,MC1EgR,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B7I,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,QAAUE,EAAImc,MAAMC,GAAG,0BAA0B,kBAAkB,CAAC,WAAY,aAAazZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAI8gF,wBAAwB,GAAGt/E,MAAM,CAACH,MAAOrB,EAAI+gF,cAAex+E,SAAS,SAAUynB,GAAMhqB,EAAI+gF,cAAc/2D,CAAG,EAAEtoB,WAAW,mBAAsD,aAAlC1B,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAmD,aAAlCvvB,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAgBvvB,EAAIiQ,MAAM,EAC3sB,EACI7P,GAAkB,GC4BtB,IACAoG,WAAAA,CAAAywC,wBAAAA,GAAAE,wBAAAA,GAAAD,8BAAAA,IACA72C,MAAAA,CAAAA,QAAAA,WACAQ,KAAAA,WACA,OACAo3C,YAAAA,GACA8oC,cAAAA,CAAAnlE,YAAAA,WAAAy8B,OAAAA,QAAAv/B,OAAAA,IAAAA,MAEA,EACA/U,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,6BACA,EACAgG,WAAAA,IAGAtF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA+/E,wBAAAA,EAAAA,GAAAA,IAAAA,yBAAAA,WAAA,6HACA,4DAMA,OALAz/D,EAAAA,CACA1G,gBAAAA,KAAAA,MAAAA,eACAqmE,QAAAA,QACA3oC,OAAAA,KAAAA,cAAAA,OACAv/B,OAAAA,KAAAA,cAAAA,OAAAA,eACA,SACApH,EAAAA,EAAAA,KAAAA,IACAzF,sBAAAA,OAAAA,KAAAA,cAAAA,aAAAA,CAAAoV,OAAAA,IACAxS,MAAAA,SAAAA,GAAA,wBAFA3N,EAAAA,EAAAA,KAGA,4EACA,SAZAs3C,IAAA,wCAAAsoC,MCpD+P,MCO3P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYr+E,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAwB,6BAAc,2BAAG,0CAAC6I,cAAgByH,I,YAA6C,KAAU,mB,IAAC,Y,GAA+B5O,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAA8C,wBAA4C,UAAe,KAAI,GAACuvB,wBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAE7zC3sC,EAEJ,E,MCwBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA7tC,gBAAAA,GACAkoC,qBAAAA,GACAroC,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJ7W,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAE7a,YAAalG,GAAiBoB,oBACtD,IAAMinE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,IAAeA,GAAAA,OAAkBA,GAAAA,YAC/F00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBoB,kBACjBpB,GAAiBkB,WAGf4oE,EAAY,yCAAG,oGACXnpD,EAAO,wBAAsB,uBAAE,4GAE4D,GADrFpY,EAAmB1D,EAAElZ,MAArB4c,eACFve,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEsZ,gBAAiB,CAACsD,MAC1E7G,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAC5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UACV,6CACJ,qGA1BY,mCA4BZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAiBA,OAfA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,0BAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG7By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEsZ,gBAAiB,KAC7E8vB,EAAYhU,UAAU/2B,EAC1B,IAEO,CACHq+E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,IC/HmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAuB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,wB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAA6C,mBAA4C,UAAe,KAAI,GAACuvB,uBAAY,0CAAI,gBAAG,mBAEjjCnvB,EAEJ,E,MC0BA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBkB,WACrD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,MAC9D00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBkB,SACjBlB,GAAiBQ,WAGfypE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,uBAAqB,uBAAE,kHAQ6B,GAPvDpY,EAAmB1D,EAAElZ,MAArB4c,eACFve,GAAO,kBACRq+E,EAAa18E,OAAK,IACrBsZ,gBAAiB,CAACsD,KAEdrC,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACsC9Z,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1DoD,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OACzD4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGA1Bc,mCA4BZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAiBA,OAfA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,yBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG3By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEsZ,gBAAiB,KAC7E8vB,EAAYhU,UAAU/2B,EAC1B,IAEO,CACLq+E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,IC9HsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBkEniC,GAAM,W,IAAC,EAAM,K,EAAI,EAAO,MAAC,G,OAAa,sBAAE,MAAK,CAAyBA,KAAM,GAAC,sBAAqC6C,CAAE,EAAC,yB,MAAC,CAA+C,iC,GAAsBH,CAAcoG,QAAG,oC,YAAyBnG,EAAG,K,IAAgB8Z,U,YAAkB,G,IAAOC,EAAAA,EAAQ,G,MAASnb,CAAAA,EAAOrB,EAAAA,EAAI6lC,EAAAA,GAAAA,C,WAAoF,EAAyE,YAACnjC,QAAW,SAAQ5C,MAAM,qEAAC,WAAQ,yE,YAAgC,O,MAAI,CAAU,kBAAG6C,IAAO,GAA+B,aAAI,WAAa,GAAK,CAACgzB,EAAAA,EAAAA,EAAQumD,CAAAA,EAAAA,GAAAA,UAAmB,GAAC35E,K,MAA0E,CAACb,MAAAA,EAAU,QAAC,mBAA4B,qBAAM,EAAEe,KAAG,+BAAuB,EAAC3C,EAAO,4CAAkE,4BAAgB,C,MAAC,CAA0D,0BAAG,eAAC,iBAAC,aAAiE,mD,GAAuE0C,CAAcoG,0BAAa,oC,YAA2B,oD,kCAAoC,QAACjG,MAAG,CAAC,MAAQ,Y,UAA4B,IAA2B,IAAIF,MAAG,SAAS,GAAC3C,EAAM,6BAAC,IAAY,CAACE,EAAG,IAAI,CAA8B,OAAM,KAAC,KAA8Bm8E,CAAAA,EAAAA,GAAO,SAAU,EAAC,gBAACz5E,EAA4BD,OAAG,GAASC,MAAW,MAAC,KAAO5C,EAAK,QAAC,S,YAAW,e,CAAC,O,YAAsB,OAAE,MAAC,CAAG,MAAC,GAAC,UAAQ,G,KAAiB,IAAsB,IAAIE,MAAO,SAAeoR,GAClmD,mBACGhR,I,gFCoDJ,IACAC,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAqzE,oBAAAA,GAAA2C,oBAAAA,IACA37E,KAAAA,WACA,OACAglC,YAAAA,GACAvqB,UAAAA,KACA2C,eAAAA,KACA0X,QAAAA,CACAumD,oBAAAA,GAEArzD,KAAAA,EACAszD,SAAAA,EAEA,EACAp4E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,qCACA,sBACA,EACAgG,WAAAA,IAGAtF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA07E,gBAAAA,WACA,YACA,mBACA,EACAC,SAAAA,WACA,aACA,qBACA,EACAC,gBAAAA,EAAAA,GAAAA,IAAAA,iBAAAA,WAAA,4HAGA,OAFA9jE,EAAAA,GAAAA,MAAAA,KAAAA,GAAAA,UAAAA,SACAC,EAAAA,GAAAA,MAAAA,SACA6B,EAAAA,GAAAA,OAAAA,KAAAA,gBAAA,SAEAjJ,EAAAA,EAAAA,KAAAA,IACAzF,mBAAAA,CACAoV,OAAAA,CAAAxI,SAAAA,EAAAC,OAAAA,EAAA6B,gBAAAA,KAEA9L,MAAAA,SAAAA,GAAA,wBAJA,wEAKA,SAVA8tE,IAAA,wCAAAA,IAWAP,iCAAAA,WACA,uBACA,qBACA,ICzGoQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBgE15E,GAAAA,W,IAAmB5C,EAAM,K,EAAC,QAAS,G,OAAO,EAAM,WAAG,S,YAAQ,O,MAAU,CAAe,cAAIE,KAAO,GAAsGF,KAAM,UAAC,UAAUE,MAAkG,uGAAC2I,MAAAA,CAAqBnG,QAAI,EAAS,qEAACoG,MAAG,e,YAA0B,KAANkI,CAAAA,C,IAAQ7Q,U,GAAMa,SAAO,G,IAAEkQ,EAAK,EAALA,QAAS,EAAW,SAASlR,EAAM,O,EAAQ,EAAC,Q,EAAU,EAAU,M,MAAqB,OAAUgB,C,MAAQ,CAAc,MAAO,UAAG,eAAG,QAAC,EAAC,KAAO,E,KAAsBmgF,IAAqC,IAAIx+E,MAAG,SAAS,GAAC3C,EAAM,6BAAC,IAAY,CAACE,EAAG,IAAI,CAA6B,OAAG,UAAe,eAAkB,kB,QAAqBF,O,YAAgB,G,IAAC,EAAO,EAAC,K,MAAQ,OAAUE,CAAqC,MAAC,CAAG,KAAC,GAAC,MAAQ,Q,QAAwBA,EAAIkhF,MAAAA,GAAAA,0BAA4B,IAAIz+E,MAAG,SAAS,GAAC3C,OAAM,0BAAC,IAAY,CAACE,EAAG,IAAI,CAAiC,OAAG,UACvhC,qCACGI,Q,UC4CJ,IACAC,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAq3E,gBAAAA,IACAh9E,KAAAA,WACA,OACAi9E,YAAAA,GAEA,EACA/5E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,wCACA,EACAgG,WAAAA,IAGAlJ,QAAAA,CACAogF,mCAAAA,EAAAA,GAAAA,IAAAA,qCAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACAzvE,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OACA,2CAEA4C,MAAAA,SAAAA,GAAA,wBAJA,yEAMAoyE,oBAAAA,EAAAA,GAAAA,IAAAA,qBAAAA,WAAA,4IAEAvvE,EAAAA,EAAAA,KAAAA,KAAAA,+BAAAA,OACA,0CACAisE,GACA,OACA,0CACA97E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mDAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iDAAA,yDAEA,mDAXAs/E,IAYAC,uBAAAA,EAAAA,GAAAA,IAAAA,wBAAAA,WAAA,4IAEAxvE,EAAAA,EAAAA,KAAAA,UAAAA,+BAAAA,OACA,oGACA,OACA,0CACA7P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mDAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iDAAA,yDAEA,mDAVAu/E,MCnFoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYz+E,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAA+Be,C,MAA6B6+E,EAAAA,kBAAqB,SAAC,YAAC1/E,EAAAA,kBAAW,CAAmB,EAAIe,WAAG,sB,CAAsB,gBAAY4+E,C,MAAgB,CAA0C,wBAAG,QAAC,+B,GAA0B,CAAiD,kBAAC,yCAAI5+E,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE5oBrC,IAAAA,EAEJ,E,MCEA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDw6C,GAAoBt6E,EAAAA,EAAAA,MAAI,GACxBw6E,GAAgBx6E,EAAAA,EAAAA,KAAmB,MACnCu6E,GAAkBv6E,EAAAA,EAAAA,KAAS,MAE3B6zE,EAAiB,SAAC9hC,GACfA,IACDuoC,EAAkB//E,OAAQ,EAC1BigF,EAAcjgF,MAAQ,KACtBggF,EAAgBhgF,MAAQ,MAE5BulC,EAAK,QAASiS,EAClB,EAEM0oC,GAAqB53D,EAAAA,GAAAA,IAAQ,kBAAiB,yCAAE,WAAgBtgB,GAAU,gGAE1CqI,EAAAA,EAAAA,KAAAA,IAAe,0BAAD,OAA2BrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAAhGwgF,EAAgBhgF,MAAQ,EAAH,KACrBY,KAAK62C,OAASuoC,EAAgBhgF,MAAM2pC,YAAY,oDAEhDrpC,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,kCACnBupE,GAAe,GAAO,yDAE7B,mDARmD,IAUpD,MAAO,CACHyG,kBAAAA,EACAE,cAAAA,EACAD,gBAAAA,EACA1G,eAAAA,EACA4G,mBAAAA,EAER,EACAx9E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACAxuB,KAAKq/E,gBAAkB7wD,EAAGpP,OAAOjG,YACrCnZ,KAAKq/E,cAAgB7wD,EAAGpP,OAAOjG,WAAa,KAC5CnZ,KAAKm/E,oBAAsBn/E,KAAKq/E,cAC5Br/E,KAAKo/E,iBAAmBp/E,KAAKo/E,gBAAgBjmE,YAAcnZ,KAAKq/E,eAC/Dr/E,KAAKq/E,eACVr/E,KAAKs/E,mBAAmBt/E,KAAKq/E,eACjC,EACAr3E,WAAW,EACXjG,MAAM,MClDsR,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4LlE,GAAM,W,IAAC,O,EAAkB,QAAS,GAAK,QAAgB,Y,OAAE,QAAG,YAAQ,UAAgB4C,MAAAA,CAA0BD,QAAG,Y,CAA2B,aAAS,C,KAAC,YAAiB,SAAG,MAAKtC,CAAyIL,MAAM,UAAC,OAAQE,KAAU,qBAAK,KAAO,MAAC,C,YAAwBA,a,CAA0B,sBAAC,OAAG,KAAO,GAA6B0C,MAAW,aAAsGlB,EAAK,GAAC,uH,MAAM,CAAWe,MAAQ,EAAC,O,GAA4B,CAACb,MAAAA,SAAW,GAAK,yBAAIe,KAAuED,EAAI2sD,MAAO,Y,YAAO,a,GAAC,GAAI,IAAK3sD,EAAAA,GAAAA,EAAAA,MAAAA,EAAAA,MAAAA,kBAAAA,OAAAA,OAAAA,EAAAA,GAAAA,EAAAA,C,MAAG,CAAE,MAAK,MAAU1C,SAAM,YAAC,MAAO,CAAE,EAAE,WAAY,QAAwHA,CAAAA,EAAK,MAAC,yB,OAAC,EAAO,KAAKuB,CAAM,MAAS,IAAY,OAAM,GAAK,QAExpCjB,CAAAA,EAAAA,EAAAA,EAAAA,CAEJ,MAASgB,C,+MCJiJ,W,IAAYwH,EAAG,K,EAAmB,QAAW,G,SAAyB,WAAW,GAAO,KAAKiX,C,kBAA4B,G,OAAE,I,YAA2B,O,IAAE,Y,YAAoD,G,MAAC,MAAQ,WAAE,W,MAAC,OAAU,MAAE,mBAAE,MAAM1f,CAAwB,UAAa,GAAE,eAAqB,8BAAM,MAAM04C,CAAgB,MAAC,GAAoBA,UAAU,KAAEn3C,CAAAA,EAAW,sBAAQ,WAAIe,IAAkC,S,MAAC,C,MAA6B04E,EAAAA,OAA0B,qBAAC,UAAI14E,EAAyO3C,WAAM,WAAqB,iBAAC6C,GAAG,CAAC,MAAS,SAAC,GAAiB,uBAA0B0Z,CAAO,IAAG7a,CAAAA,EAAK,KAAC,oK,MAAM,CAA2Be,QAAS,S,GAA4C,CAACb,QAAU,SAAC,GAAqB,yBAAI,GAE1jCtB,MAAAA,CAEJ,MAASgB,EAAQhB,oB,6FCJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAiB,C,MAAC,CAAkB,cAAG,YAAC,O,GAA0B,CAAiC,kBAAE,yBAAC6I,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAqB,U,GAAC,SAAW,G,IAAkC9I,EAAM,O,MAAC,GAAO,iCAAY,C,MAAC,CAAkD,gBAAC6I,QAAY3I,EAAIoQ,MAAI,+B,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAa,kBAAC,UAAIF,KAAuDQ,EAAAA,GAAAA,GAAK,yBAAY,C,WAAS,EAAe5B,KAAK,aAA6BK,QAAAA,eAAwC,gCAAC5B,WAAM,8B,MAAqB,C,MAAiB,U,QAAiB,EAAqBuB,GAAAA,UAAgC,yBAAC,MAAOyP,EAAM,oBAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,GAAyC,IAAI,wCAAiB,eAAgB,IACzhC,UAGD,E,MCJIM,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAM,kCAA4B37D,EAAIqB,OAAS,CAAC,GAAG+Z,YAAazY,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC1Q,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAO,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,ICxC2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCUhC,IACAtB,MAAAA,CACAgB,MAAAA,QACAsV,QAAAA,QAEAnQ,WAAAA,CAAA60E,2BAAAA,GAAAmG,mBAAAA,IACAzgF,QAAAA,CACAw6E,2BAAAA,SAAAA,IACA15E,EAAAA,EAAAA,IAAAA,uCAAAA,OAAAA,EAAAA,oBACA,uBACA,0DAAAu5E,kBAAAA,OAAAA,EAAAA,qBACA,IC3CoR,MCOhR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCwBhC,IACA50E,WAAAA,CAAAi7E,4BAAAA,IACAphF,MAAAA,CACAgB,MAAAA,QAEAR,KAAAA,WACA,OACAg4C,QAAAA,EACAsiC,qBAAAA,EAEA,GCpD0Q,M,uBCA/C,GAAe,KCOtO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCjBhC,IAAe50E,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEk7E,kBAAAA,IACdrhF,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,WAClB,MAAiDyoB,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBACzB,MAAO,CACHD,EAAkB,CAAE/qB,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,kCAAqC,KAC/FyrB,EAAsB,CAAEhrB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,mCAAsC,KAChGwrB,EAAiB,CAAE/qB,IAAK,SAAU8Q,KAAM,iBAAkBvR,KAAM,mCAAsC,MACxGiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GACrB,IAEA,MAAO,CAAE63C,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EACxB,ICzBmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYtqB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAmB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,oB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAA6B,uCAAG,yBAAC,GAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAAyC,wBAA4C,UAAe,KAAI,GAACuvB,mBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAE/zC3sC,EAEJ,E,MCwBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJlxC,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCwB,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJxQ,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBQ,WACrD,IAAM6nE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,aAAyBA,GAAAA,IAAgBA,GAAAA,UAAsBA,GAAAA,gBAC7H00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CAAC4O,GAAiBQ,SAAUR,GAAiBwB,SAChGsoE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,4GAEyC,GAD7Djb,EAAcb,EAAElZ,MAAhB+Z,UACF1b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAE+Z,UAAAA,KACxDhE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DwjB,EAAgBhhD,MAAQyuC,GAAyB4S,qBAAqBrhC,EAAQzF,EAAam3B,EAAerzC,EAAQkqC,UAClH3H,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAAM,6CACpE,qGArBY,mCAuBZ2c,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAgBA,OAfA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG7By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAE+Z,eAAW3M,IACvEg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACHq+E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,ICrHmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAkB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,mB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAAwC,mBAA4C,UAAe,KAAI,GAACuvB,kBAAY,0CAAI,gBAAG,mBAEviCnvB,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBQ,WACrD,IAAM6nE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC7C2O,GAAAA,QACAA,GAAAA,aACAA,GAAAA,MAEI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBQ,SACjBR,GAAiBwB,SAGfyoE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,kBAAgB,uBAAE,kHAKkC,GAJvDjb,EAAcb,EAAElZ,MAAhB+Z,UACF1b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAE+Z,UAAAA,IACtDQ,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACsC9Z,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1DoD,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OACzD4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGAvBc,mCAyBZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAiBA,OAfA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,oBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG3By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAE+Z,eAAW3M,IACvEg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACLq+E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,IC3HsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7gC,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,WAAW,CAACA,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,QAAUE,EAAImc,MAAMC,GAAG,0BAA0B,kBAAkB,CAAC,aAAazZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAI8gF,wBAAwB,GAAGt/E,MAAM,CAACH,MAAOrB,EAAI+gF,cAAex+E,SAAS,SAAUynB,GAAMhqB,EAAI+gF,cAAc/2D,CAAG,EAAEtoB,WAAW,mBAAmBe,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,iBAAiB,EAC3gB,EACInvB,GAAkB,GCOtB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEywC,wBAAAA,GAAyBC,8BAAAA,IACvC72C,MAAO,CACLgB,MAAOsC,OACP7C,QAASqC,SAEXuD,MAAK,SAACrG,GACJ,IAAM43C,GAAcnxC,EAAAA,EAAAA,KAAI,IAClBi6E,GAAgBj6E,EAAAA,EAAAA,KAAI,CACxB8U,YAAalG,GAAiBQ,SAC9BmiC,OAAQ,QACRv/B,OAAQ,IAAIsB,OAER0mE,GAAyBn3D,EAAAA,GAAAA,IAC7B,yBAAwB,yCACxB,iGACOtpB,EAAMgB,MAAO,CAAF,gDAQa,OAPvBggB,EAAS,CACbvG,WAAYza,EAAMgB,MAAMsgF,WACxBtpC,OAAQ0oC,EAAc1/E,MAAMg3C,OAC5Bv/B,OAAQioE,EAAc1/E,MAAMyX,OAAOgD,eAE/BF,EAAcmlE,EAAc1/E,MAAMua,YAEX,SACNwH,GAAUxH,EAAayF,GAAO,OAA/CngB,EAAW,EAAH,KACd+2C,EAAY52C,MAAQH,EAASy1B,SAAS,2CACvC,SAZcirD,IAAwB,sCAAxBA,CAAwB,CADf,IAgBpB70D,EAAcU,KAEpB,MAAO,CACLwqB,YAAAA,EACA8oC,cAAAA,EACAD,uBAAAA,EACA/zD,YAAAA,EAEJ,EACAhpB,MAAO,CACL1C,MAAO,CACL4C,QAAO,SAAC+F,GACDA,GACL/H,KAAK6+E,wBACP,EACA72E,WAAW,MCtDuR,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYxH,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAA8Be,C,MAA6Bs/E,EAAAA,iBAAoB,SAAC,YAACngF,EAAAA,iBAAW,CAAkB,EAAIe,WAAG,qB,CAAsB,gBAAYq/E,C,MAAe,CAAyC,uBAAG,QAAC,8B,GAA0B,CAAgD,kBAAC,wCAAIr/E,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAEtoBrC,IAAAA,EAEJ,E,MCEA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDi7C,GAAmB/6E,EAAAA,EAAAA,MAAI,GACvBi7E,GAAej7E,EAAAA,EAAAA,KAAmB,MAClCg7E,GAAiBh7E,EAAAA,EAAAA,KAAS,MAE1B6zE,EAAiB,SAAC9hC,GACfA,IACDgpC,EAAiBxgF,OAAQ,EACzB0gF,EAAa1gF,MAAQ,KACrBygF,EAAezgF,MAAQ,MAE3BulC,EAAK,QAASiS,EAClB,EAEMmpC,GAAoBr4D,EAAAA,GAAAA,IAAQ,iBAAgB,yCAAE,WAAgBtgB,GAAU,gGAEzCqI,EAAAA,EAAAA,KAAAA,IAAe,gBAAD,OAAiBrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAArFihF,EAAezgF,MAAQ,EAAH,KACpBY,KAAK62C,OAASgpC,EAAezgF,MAAM4B,KAAK,oDAExCtB,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,gCACnBupE,GAAe,GAAO,yDAE7B,mDARiD,IAUlD,MAAO,CACHkH,iBAAAA,EACAE,aAAAA,EACAD,eAAAA,EACAnH,eAAAA,EACAqH,kBAAAA,EAER,EACAj+E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACAxuB,KAAK8/E,eAAiBtxD,EAAGpP,OAAOqjD,WACpCziE,KAAK8/E,aAAetxD,EAAGpP,OAAOqjD,UAAY,KAC1CziE,KAAK4/E,mBAAqB5/E,KAAK8/E,aAC3B9/E,KAAK6/E,gBAAkB7/E,KAAK6/E,eAAepd,WAAaziE,KAAK8/E,cAC5D9/E,KAAK8/E,cACV9/E,KAAK+/E,kBAAkB//E,KAAK8/E,cAChC,EACA93E,WAAW,EACXjG,MAAM,MClDsR,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4LlE,GAAM,W,IAAC,O,EAAkB,QAAS,GAAK,QAAgB,Y,OAAE,QAAG,YAAQ,UAAgB4C,MAAAA,CAA0BD,QAAG,Y,CAA2B,aAAS,C,KAAC,YAAgB,SAAG,MAAKtC,CAAiFuC,MAAW,UAAe1C,OAAU,KAA6F0C,cAAY,OAA+C5C,GAAM,S,YAASE,aAAS,uBAAG,MAAI,CAAuBwB,KAAM,GAACH,MAAOrB,Y,EAAkCA,GAAImvD,IAAInlC,EAAG,iD,YAAC,a,CAACtoB,EAAAA,GAAAA,IAAW,iEAAK,8BAAG,CAACe,EAAG,wBAAyBzC,CAAwB,MAAOyC,CAAYD,MAAQA,EAAG,U,GAAY,EAAC2sD,KAAI3sD,EAAAA,GAAAA,EAAAA,C,MAAG,CAAE,MAAK,MAAU1C,SAAM,YAAC,MAAO,CAAE,EAAE,WAAY,QAAwHA,CAAAA,EAAK,MAAC,yB,OAAC,EAAO,KAAKuB,CAAM,MAAS,IAAY,OAAM,GAAK,QAEhmCjB,CAAAA,EAAAA,EAAAA,EAAAA,CAEJ,MAASgB,C,4MCJmD,GAAU,W,IAAyBsB,EAAAA,KAAmB5C,EAAK,EAAC,S,OAAC,aAAa,S,YAAS,OAAE,OAAI2C,SAAW,GAAE3C,MAAM,KAAU,QAAE,MAAMK,CACzL,UAGD,GAASiB,GAAAA,WAAQhB,EAAAA,GAAe,mD,QCMhC,IACAC,MAAAA,CACAgB,MAAAA,SCZ4Q,MCOxQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCbhC,IAAekF,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEy7E,oBAAAA,IACd5hF,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,iBAClB,CACI,CAAEnC,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,iCACxCgrB,EAAYO,iBAAiB,sBACvB,CAAE9qB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,kCACpC,MACRiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GAAC,IAEtB,MAAO,CAAE63C,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EACxB,ICxBmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYtqB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAkB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,mB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAsC3C,EAAK,kBAAC,C,YAASE,O,MAAoB,CAAwC,wBAA4C,UAAe,KAAI,GAACuvB,kBAAY,0CAAI,gBAAG,mBAEpjCnvB,EAEJ,E,MCqBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA7tC,gBAAAA,GACAH,mBAAAA,IAEJlxC,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBkB,WACrD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,aAAyBA,GAAAA,MACvF00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBkB,SACjBlB,GAAiBQ,SACjBR,GAAiBwB,SAGfsoE,EAAY,yCAAG,oGACXnpD,EAAO,kBAAgB,uBAAE,gHAKC,GALD,EACC9b,EAAElZ,MAAtB4B,EAAI,EAAJA,KAAM8T,EAAS,EAATA,UACRrX,GAAO,kBACNq+E,EAAa18E,OAAK,IACrBka,WAAYtY,EACZuY,cAAezE,KAEfK,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAC/DnU,WAAY1B,GAAiBO,UAE3B0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAC5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UACV,6CACJ,qGAhCY,mCAkCZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACfyJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAGhD,EAWA,OATA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,mBAC1CojE,GACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAER,ICxHmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAiB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,kB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAAuC,mBAA4C,UAAe,KAAI,GAACuvB,iBAAY,0CAAI,gBAAG,mBAEriCnvB,EAEJ,E,MCqBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACN0nD,GAAej3E,EAAAA,EAAAA,KAAuB,CAC1CqT,aAAc,MACdO,iBAAkB,KAClBlC,YAAavG,GAAAA,MACbuI,YAAa,GACboB,YAAalG,GAAiBkB,WAE1B2e,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC7C2O,GAAAA,QACAA,GAAAA,aACAA,GAAAA,MAEI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBkB,SACjBlB,GAAiBQ,SACjBR,GAAiBwB,SAGfyoE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,iBAAe,uBAAE,kHASmC,GATnC,EACA9b,EAAElZ,MAAtB4B,EAAI,EAAJA,KAAM8T,EAAS,EAATA,UACRrX,GAAO,kBACRq+E,EAAa18E,OAAK,IACrBka,WAAYtY,EACZuY,cAAezE,IAEX6E,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACoB9Z,QAAQ2H,IAAI,CACzC4T,GAAQlH,EAAayF,KACrB,gCAFK4qC,EAAc,OAGkBjC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EAChBt2B,EAAal0B,MAAQ,CACnB+5B,QAAQ,QAAI4X,EAAa5X,QACzByD,UAAU,QAAImU,EAAanU,WAE7BoD,EAAQ5gC,MAAQggB,EAAOvI,OACvB4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGAzBc,mCA2BZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAWA,OATA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,kBAC1CojE,GACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGpB,CACL+5E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,IC3HsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAuCe,C,MAA6B2/E,EAAAA,0BAA6B,SAAC,YAACxgF,EAAAA,0BAAW,CAA2B,EAAIe,WAAG,8B,CAAsB,gBAAY0/E,C,MAAwB,CAAgB,gCAAG,SAAC,G,GAA0B,CAAyD,kBAAC,iDAAI1/E,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE1pBrC,IAAAA,EAEJ,E,MCAA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDs7C,GAA4Bp7E,EAAAA,EAAAA,MAAI,GAChCs7E,GAAwBt7E,EAAAA,EAAAA,KAAmB,MAC3Cq7E,GAA0Br7E,EAAAA,EAAAA,KAA2B,MAErD6zE,EAAiB,SAAC9hC,GACfA,IACDqpC,EAA0B7gF,OAAQ,EAClC+gF,EAAsB/gF,MAAQ,KAC9B8gF,EAAwB9gF,MAAQ,MAEpCulC,EAAK,QAASiS,EAClB,EAEMwpC,EAA6B,SAAUh5E,GACzC,IAAMi5E,EAAsBj5E,EACvByQ,MAAM,KACNilB,UACAnhB,MAAK,SAAC6K,GAAS,OAAKA,CAAC,IAC1B05D,EAAwB9gF,MAAQ,CAAEihF,oBAAAA,GAClCrgF,KAAK62C,OAASwpC,CAClB,EAEA,MAAO,CACHJ,0BAAAA,EACAE,sBAAAA,EACAD,wBAAAA,EACAxH,eAAAA,EACA0H,2BAAAA,EAER,EACAt+E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACAxuB,KAAKmgF,wBAA0B3xD,EAAGpP,OAAOkhE,oBAC7CtgF,KAAKmgF,sBAAwB3xD,EAAGpP,OAAOkhE,mBAAqB,KAC5DtgF,KAAKigF,4BAA8BjgF,KAAKmgF,sBAEpCngF,KAAKkgF,yBACLlgF,KAAKkgF,wBAAwBI,oBAAsBtgF,KAAKmgF,uBAGvDngF,KAAKmgF,uBACVngF,KAAKogF,2BAA2BpgF,KAAKmgF,uBACzC,EACAn4E,WAAW,EACXjG,MAAM,MCnDsR,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkK,GAAK,W,IAAqBlE,EAAM,K,EAAC,EAAO,MAAC,GAAU,EAAS,MAAI,Y,OAAC,QAAkB,sBAAG,MAAK2C,CAAmBC,QAAY,YAAqC5C,CAAAA,EAAK,WAAC,C,KAAC,Y,CAAU,OAAQ,CAAiB,OAAIE,MAAO,UAAoFwB,OAAM,KAACH,cAAe,O,GAA6B,EAAC8tD,GAAAA,GAAO,C,YAAC,a,CAACztD,EAAAA,mBAAW,CAAK,OAAIe,KAAG,GAAiD,MAAU,qBAAqB3C,EAAAA,GAAM,qE,MAAC,CAAY,YAAE,SAAK,SAAS,GAACA,EAAK,IAAC,C,EAAU,mBAA8E,GAAG,MAAI,EAAY,GAAG,EAAC,eAAkB,GAAeA,OAAM,QAAC,MAAQE,IAAU,OAAqB,WACr3B,QACGI,MAAAA,CAEJ,KAAe,K,kMCDf,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,WACD,IAAMyoD,EAAc,KACda,EAAO,CACT,CAAExtD,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,2CAE5C,MAAO,CAAEotD,IAAAA,EAAKa,KAAAA,EAClB,ICfmS,M,sBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYvtD,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAmB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,oB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAAyC,wBAA4C,UAAe,KAAI,GAACuvB,mBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAElyC3sC,EAEJ,E,MCwBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJ7W,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAE7a,YAAalG,GAAiBkB,WACtD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC3C2O,GAAAA,QACAA,GAAAA,QACAA,GAAAA,aACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,YAEE00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBkB,SACjBlB,GAAiBQ,SACjBR,GAAiBwB,SAGfsoE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,4GAImB,GAHvCisD,EAAwB/nE,EAAElZ,MAA1BihF,oBACF5iF,GAAO,kBACNq+E,EAAa18E,OAAK,IACrBwV,gBAAiB,IAAF,OAAMyrE,EAAmB,QAExClrE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DwjB,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UAEZ3H,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAAM,6CACpE,qGA7BY,mCA+BZ2c,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAYA,OAVA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,ICrImS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAqCe,C,MAA6BigF,EAAAA,wBAA2B,SAAC,YAAC9gF,EAAAA,wBAAW,CAAyB,EAAIe,WAAG,4B,CAAsB,gBAAYggF,C,MAAsB,CAAgB,8BAAG,SAAC,G,GAA0B,CAAuD,kBAAC,+CAAIhgF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAEhpBrC,IAAAA,EAEJ,E,MCAA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACH47C,GAA0B17E,EAAAA,EAAAA,MAAI,GAC9B47E,GAAsB57E,EAAAA,EAAAA,KAAmB,MACzC27E,GAAwB37E,EAAAA,EAAAA,KAA8B,MAEtD6zE,EAAiB,SAAC9hC,GACjBA,IACH2pC,EAAwBnhF,OAAQ,EAChCqhF,EAAoBrhF,MAAQ,KAC5BohF,EAAsBphF,MAAQ,MAEhCulC,EAAK,QAASiS,EAChB,EAEM8pC,EAA2B,SAAUt5E,GACzCo5E,EAAsBphF,MAAQgI,EAC9BpH,KAAK62C,OAASzvC,CAChB,EAEA,MAAO,CACLm5E,wBAAAA,EACAE,oBAAAA,EACAD,sBAAAA,EACA9H,eAAAA,EACAgI,yBAAAA,EAEJ,EACA5+E,MAAO,CACLymB,OAAQ,CACNvmB,QAAO,SAACwsB,GACFxuB,KAAKygF,sBAAwBjyD,EAAGpP,OAAOuhE,kBAC3C3gF,KAAKygF,oBAAsBjyD,EAAGpP,OAAOuhE,iBAAmB,KACxD3gF,KAAKugF,0BAA4BvgF,KAAKygF,oBAEpCzgF,KAAKwgF,uBACLxgF,KAAKwgF,sBAAsBG,kBAAoB3gF,KAAKygF,qBAGjDzgF,KAAKygF,qBACVzgF,KAAK0gF,yBAAyB1gF,KAAKygF,qBACrC,EACAz4E,WAAW,EACXjG,MAAM,MC/C4R,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkK,GAAK,W,IAAqBlE,EAAM,K,EAAC,EAAO,MAAC,GAAU,EAAS,MAAI,Y,OAAC,QAAkB,sBAAG,MAAK2C,CAAmBC,QAAY,YAAqC5C,CAAAA,EAAK,WAAC,C,KAAC,Y,CAAU,OAAQ,CAAe,OAAIE,MAAO,UAAqDwB,OAAM,KAACH,cAAe,O,GAA6B,EAAC8tD,GAAAA,GAAO,C,YAAC,a,CAACztD,EAAAA,mBAAW,CAAK,OAAIe,KAAG,GAAiD,MAAU,mBAAqB3C,EAAAA,GAAM,0C,MAAC,CAAY,YAAE,SAAK,SAAS,GAACA,EAAK,IAAC,C,EAAU,mBAA8E,GAAG,MAAI,EAAY,GAAG,EAAC,eAAkB,GAAeA,OAAM,QAAC,MAAQE,IAAU,OAAqB,WACp1B,QACGI,MAAAA,CAEJ,KAAe,K,kMCDf,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACL4zB,GAAItwB,OACJtC,MAAOgC,OACPvC,QAASqC,SAEXuD,MAAK,WACH,IAAMyoD,EAAc,KACda,EAAO,CACX,CAAExtD,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,yCAE1C,MAAO,CAAEotD,IAAAA,EAAKa,KAAAA,EAChB,ICfqS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYvtD,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAyB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,0B,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAA+C,wBAA4C,UAAe,KAAI,GAACuvB,yBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAE9yC3sC,EAEJ,E,MCwBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJ7W,MAAO,CAAEgB,MAAOgC,OAAQvC,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAE7a,YAAalG,GAAiBkB,WACtD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC3C2O,GAAAA,QACAA,GAAAA,QACAA,GAAAA,aACAA,GAAAA,MAEE00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBkB,SACjBlB,GAAiBQ,SACjBR,GAAiBwB,SAGfsoE,EAAY,yCAAG,oGACXnpD,EAAO,yBAAuB,uBAAE,4GAIC,GAH7B7X,EAAoBjE,EAAElZ,MACtB3B,GAAO,kBACNq+E,EAAa18E,OAAK,IACrBqa,aAAc8C,KAEdpH,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DwjB,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UAEZ3H,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAAM,6CACpE,qGA7BY,mCA+BZ2c,EAAuB,SAAH,GAAsD,IAAhD0J,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KAAMohC,EAAc,EAAdA,eACvClF,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCACVhnE,MAAMC,QAAQ0mE,EAAa18E,MAAMua,cACzCX,EAAQ5Z,MAAMzB,KAAK,CACfyJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAGhD,EAiBA,OAfA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,2BAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG7By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEqa,kBAAcjN,IAC1Eg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACHq+E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,IC5ImS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAiCe,C,MAA6BsgF,EAAAA,oBAAuB,SAAC,YAACnhF,EAAAA,oBAAW,CAAqB,EAAIe,WAAG,wB,CAAsB,gBAAYqgF,C,MAAkB,CAAgB,0BAAG,SAAC,G,GAA0B,CAAmD,kBAAC,2CAAIrgF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE5nBrC,IAAAA,EAEJ,E,MCAA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDi8C,GAAsB/7E,EAAAA,EAAAA,MAAI,GAC1Bi8E,GAAkBj8E,EAAAA,EAAAA,KAAmB,MACrCg8E,GAAoBh8E,EAAAA,EAAAA,KAAqB,MAEzC6zE,EAAiB,SAAC9hC,GACfA,IACDgqC,EAAoBxhF,OAAQ,EAC5B0hF,EAAgB1hF,MAAQ,KACxByhF,EAAkBzhF,MAAQ,MAE9BulC,EAAK,QAASiS,EAClB,EAEMmqC,EAAuB,SAAU35E,GACnC,MAAsCA,EAAGyQ,MAAM,KAAmC,gBAA3E4B,EAAY,KAAEF,EAAa,KAClCsnE,EAAkBzhF,MAAQ,CAAEqa,aAAAA,EAAcF,cAAAA,GAC1CvZ,KAAK62C,OAASt9B,CAClB,EAEA,MAAO,CACHqnE,oBAAAA,EACAE,gBAAAA,EACAD,kBAAAA,EACAnI,eAAAA,EACAqI,qBAAAA,EAER,EACAj/E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACAxuB,KAAK8gF,kBAAoBtyD,EAAGpP,OAAO4hE,cACvChhF,KAAK8gF,gBAAkBtyD,EAAGpP,OAAO4hE,aAAe,KAChDhhF,KAAK4gF,sBAAwB5gF,KAAK8gF,gBAC9B9gF,KAAK6gF,mBAAqB7gF,KAAK6gF,kBAAkBG,cAAgBhhF,KAAK8gF,iBACrE9gF,KAAK8gF,iBACV9gF,KAAK+gF,qBAAqB/gF,KAAK8gF,iBACnC,EACA94E,WAAW,EACXjG,MAAM,MC5CsR,M,sBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4LlE,GAAM,W,IAAC,O,EAAkB,QAAS,GAAK,QAAgB,Y,OAAE,QAAG,YAAQ,UAAgB4C,MAAAA,CAA0BD,QAAG,Y,CAA2B,aAAS,C,KAAC,YAAmB,SAAG,MAAKtC,CAA0FuC,MAAW,UAAe1C,OAAU,KAAwEwB,cAAM,OAAiBe,GAAAA,EAAQ,MAAC,C,YAAuB,a,CAAI,EAAC,oB,MAACb,CAAgB,QAAIe,MAAG,eAAoED,EAAG,GAAC2sD,IAAO,4D,YAAO,a,GAAC,GAAI,IAAK3sD,EAAAA,GAAAA,EAAAA,MAAAA,EAAAA,MAAAA,aAAAA,OAAAA,OAAAA,EAAAA,GAAAA,EAAAA,C,MAAG,CAAE,MAAK,MAAU1C,SAAM,YAAC,MAAO,CAAE,EAAE,WAAY,QAAwHA,CAAAA,EAAK,MAAC,yB,OAAC,EAAO,KAAKuB,CAAM,MAAS,IAAY,OAAM,GAAK,QAEt+BjB,CAAAA,EAAAA,EAAAA,EAAAA,CAEJ,MAASgB,C,4MCAT,IAAemF,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,iBAClB,CACI,CAAEnC,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,oCACxCgrB,EAAYO,iBAAiB,sBACvB,CAAE9qB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,qCACpC,MACRiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GAAC,IAEtB,MAAO,CAAE63C,IAAAA,EAAKa,KAAAA,EAClB,ICtBmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYvtD,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAqB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,sB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAsC3C,EAAK,kBAAC,C,YAASE,O,MAAoB,CAA2C,wBAA4C,UAAe,KAAI,GAACuvB,qBAAY,0CAAI,gBAAG,mBAE1jCnvB,EAEJ,E,MCqBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA7tC,gBAAAA,GACAH,mBAAAA,IAEJlxC,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBgB,UACrD,IAAMqnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,aAAyBA,GAAAA,MACvF00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBgB,QACjBhB,GAAiBQ,SACjBR,GAAiBwB,SAGfsoE,EAAY,yCAAG,oGACXnpD,EAAO,qBAAmB,uBAAE,gHAEyD,GAFzD,EACU9b,EAAElZ,MAAlCma,EAAa,EAAbA,cAAeE,EAAY,EAAZA,aACjBhc,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEma,cAAAA,EAAeE,aAAAA,KACvEtE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAC/DnU,WAAY1B,GAAiBO,UAE3B0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAC5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UACV,6CACJ,qGA5BY,mCA8BZnU,EAAuB,SAAH,GAAsD,IAAhD0J,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KAAMohC,EAAc,EAAdA,eACvClF,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACfyJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAGhD,EAWA,OATA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,sBAC1CojE,GACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAER,ICpHmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAoB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,qB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAA0C,mBAA4C,UAAe,KAAI,GAACuvB,oBAAY,0CAAI,gBAAG,mBAE3iCnvB,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACN0nD,GAAej3E,EAAAA,EAAAA,KAAuB,CAC1CqT,aAAc,MACdO,iBAAkB,KAClBlC,YAAavG,GAAAA,MACbuI,YAAa,GACboB,YAAalG,GAAiBgB,UAE1B6e,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC7C2O,GAAAA,QACAA,GAAAA,aACAA,GAAAA,MAEI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBgB,QACjBhB,GAAiBQ,SACjBR,GAAiBwB,SAGfyoE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,oBAAkB,uBAAE,sHASgC,GAThC,EACS9b,EAAElZ,MAAlCma,EAAa,EAAbA,cAAeE,EAAY,EAAZA,aACjBhc,GAAO,kBACRq+E,EAAa18E,OAAK,IACrBma,cAAAA,EACAE,aAAAA,IAEIE,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACsC9Z,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1DoD,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OACzD4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGA3Bc,mCA6BZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAWA,OATA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CojE,GACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGpB,CACL+5E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,IC9HsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAA2Be,C,MAA6B2gF,EAAAA,cAAiB,SAAC,YAACxhF,EAAAA,cAAW,CAAe,EAAIe,WAAG,kB,CAAsB,gBAAY0gF,C,MAAY,CAAqC,oBAAG,QAAC,0B,GAA0B,CAA6C,kBAAC,qCAAI1gF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAEnnBrC,IAAAA,EAEJ,E,MCCA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDs8C,GAAgBp8E,EAAAA,EAAAA,MAAI,GACpBs8E,GAAYt8E,EAAAA,EAAAA,KAAmB,MAC/Bq8E,GAAcr8E,EAAAA,EAAAA,KAA+B,MAE7C6zE,EAAiB,SAAC9hC,GACfA,IACDqqC,EAAc7hF,OAAQ,EACtB+hF,EAAU/hF,MAAQ,KAClB8hF,EAAY9hF,MAAQ,MAExBulC,EAAK,QAASiS,EAClB,EAEMwqC,EAAc,yCAAG,WAAOh6E,GAAU,uFACVqI,EAAAA,EAAAA,KAAAA,IAAe,6BAAD,OAA8BrI,IAAMwF,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAA/FsiF,EAAY9hF,MAAQ,EAAH,gDACpB,gBAFmB,sCAIpB,MAAO,CACH6hF,cAAAA,EACAE,UAAAA,EACAD,YAAAA,EACAxI,eAAAA,EACA0I,eAAAA,EAER,EACAt/E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GAEJ,GAAKA,EAAGpP,OAAOiiE,MAAf,CAIA,IAAMC,GAAuB9yD,EAAGpP,OAAOiiE,OAAS,IAAIxpE,MAAM,KACpD0pE,EAAmC,IAAtBD,EAAWprE,OAAesY,EAAGpP,OAAO+tC,OAAUm0B,EAAW,IAAM9yD,EAAGpP,OAAO+tC,OACtFq0B,EAAqC,IAAtBF,EAAWprE,OAAesY,EAAGpP,OAAOiiE,MAAQC,EAAW33C,MAAM,GAAG5xB,KAAK,KACpF0pE,EAAwB,GAAH,OAAMF,EAAU,YAAIC,GAC3CxhF,KAAKmhF,YAAcM,IACvBzhF,KAAKmhF,UAAYM,GAAyB,KAC1CzhF,KAAKihF,gBAAkBjhF,KAAKmhF,UACxBnhF,KAAKkhF,aAAelhF,KAAKkhF,YAAY1nE,cAAgBxZ,KAAKmhF,WACzDnhF,KAAKmhF,WACVnhF,KAAKohF,eAAephF,KAAKmhF,W,MAZrBnhF,KAAKmhF,UAAY,IAazB,EACAn5E,WAAW,EACXjG,MAAM,MCpDsR,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkK,GAAK,W,IAAqBlE,EAAM,K,EAAC,EAAO,MAAC,GAAU,EAAS,MAAI,Y,OAAC,QAAkB,sBAAG,MAAK2C,CAAmBC,QAAY,YAAqC5C,CAAAA,EAAK,WAAC,C,KAAC,Y,CAAU,OAAQ,CAAQ,OAAIE,MAAO,UAA8GF,OAAM,KAAC,cAAYuB,OAAS,GAAC,S,YAAS,a,GAAiB,mBAAiB,C,MAAgB,CAAC,QAAG,MAAS,YAAyBA,EAAAA,GAAOrB,IAAImvD,EAAI,+F,MAAC5sD,C,MAAgC,EAACynB,O,GAAKtoB,CAAgB,kBAAM,OAAC,QAAgB,QAAS1B,EAAwB,KAA+BF,EAAK,MAAC,W,MAAC,C,MAC7wBkvD,EAAMG,I,SACD,SAAa3X,GACtB,OAAC,EAAE,WAAK,Q,GAAiB,MAAO,yB,OAAE,QAAE,IAAK,EAAIx3C,IAAmE,MAAM,CAAkDF,GAAM,CAAC,KAAQE,EAAIqB,IAAM,MAAUrB,EAAIc,OAAAA,SAC1N,QACGV,MAAAA,CAEJ,KAAe,K,kMCP0IuI,GAAAA,W,IAAqBnG,EAAI,K,EAAc,EAAC,SAAmB,EAAQxC,MAAO,Y,SAAqB,MAAQyC,CAAE,EAAC,KAAQzC,C,kBAAgC,G,OAAE,I,YAA2B,O,IAAE,Y,YAAoD,G,MAAC,MAAQ,WAAE,W,MAAC,OAAU,MAAE,mBAAE,MAAMG,CAAwB,UAAa,GAAE,eAAqB,8BAAM,MAAM04C,CAAgB,MAAC,GAAoBA,UAAU,KAAEn3C,CAAAA,EAAW,sBAAQ,WAAIe,IAAkC,S,MAAC,C,MAA6B04E,EAAAA,OAA0B,qBAAC,UAAI14E,EAAsO,WAAC,WAAkC,iBAAE,GAAI,CAAqN,MAAC,YAAC,uBAAYkhF,CAAiB,IAA2P7jF,CAAAA,EAAK,KAAC,yIAAwD,Q,GAAC,CAAiC,4BAAG0B,CAAAA,EAAK,KAAC,+HAAnG,Q,GAAC,CAAwB,gC,CAAK,OAAU,OAAS6a,CAAAA,EAAM,GAAC,mHAA2C,kD,MAAM,CAA2B9Z,YAAS,S,GAA4C,CAACb,QAAU,SAAC,GAAqB,yBAAI,GAE3mDtB,MAAAA,CAEJ,MAASgB,EAAQhB,oB,6FCJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAiB,C,MAAC,CAAkB,cAAG,YAAC,O,GAA0B,CAAiC,kBAAE,yBAAC6I,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAqB,U,GAAC,SAAW,G,IAAkC9I,EAAM,O,MAAC,GAAO,iCAAgB,C,MAAC,CAAsD,oBAAC6I,QAAY3I,EAAIoQ,MAAI,mC,YAAkB,O,IAA4C,U,GAAxBU,SAAM,G,IAAEhQ,EAAO,EAAPA,QAASb,EAAI,EAAJA,OAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAa,kBAAC,UAAIF,KAA6DQ,EAAAA,GAAAA,GAAK,+BAAY,C,WAAS,EAAe5B,KAAK,aAAiCK,QAAAA,eAA4C,oCAAC5B,WAAM,kC,MAAyB,C,MAAiB,c,QAAiB,EAAqBuB,GAAAA,UAAgC,yBAAC,MAAOyP,EAAM,oBAAkB,KAAO,EAAS,MAAS,WAAChQ,EAAQ,QAAG,QAAC,GAAyC,IAAI,wCAAiB,eAAgB,IACnjC,UAGD,E,MCJIM,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,oBAAoBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,MAAQE,EAAI27D,QAAQ,KAAM,qCAA+B37D,EAAIqB,OAAS,CAAC,GAAGoa,cAAe9Y,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,oBAAoBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC/Q,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA6qB,GAAAA,OAAAA,CAAAA,EAAAA,CACAjrB,KAAAA,CACAF,KAAAA,QAEAsB,MAAAA,CACAtB,KAAAA,QAEA47D,QAAAA,CACA57D,KAAAA,MACAS,QAAAA,WAAA,aAGAO,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+BACA,ICxC+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCUhC,IACAtB,MAAAA,CACAgB,MAAAA,QACAuiF,YAAAA,QAEAp9E,WAAAA,CAAA60E,2BAAAA,GAAAwI,uBAAAA,IACA9iF,QAAAA,CACAw6E,2BAAAA,SAAAA,IACA15E,EAAAA,EAAAA,IAAAA,uCAAAA,OAAAA,EAAAA,oBACA,uBACA,8DAAAu5E,kBAAAA,OAAAA,EAAAA,qBACA,IC3CwR,MCOpR,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCiDhC,IAAe,IAAA70E,iBAAgB,CAC/BC,WAAAA,CAAAs9E,gCAAAA,IACAzjF,MAAAA,CACAgB,MAAAA,QAEAqF,MAAAA,SAAAA,GACA,oBACA,gBACA,OACA,eAAAwc,EAAAA,EAAAA,WACA,6BACA,qBACA,qDAAA3M,EAAAA,EAAAA,GACA,yCACA,IACA,4IACAgE,EAAAA,MAAAA,CAAA,gDACA,OADA,EACAA,EAAAA,MAAAA,YAAAA,MAAAA,KAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,GAAA,SACAuM,GAAAA,GAAA,uBACAiG,EAAAA,aAAA,2CACA,kBALA,mCAMA,4IACAxS,EAAAA,MAAAA,CAAA,gDACA,GADA,EACAA,EAAAA,MAAAA,YAAAA,MAAAA,KAAAA,GAAAA,EAAAA,GAAAA,GAAAA,EAAAA,GAAAA,EAAAA,EAAAA,IACAzO,OAAAA,QAAAA,mCAAAA,OAAAA,EAAAA,iBAAAA,CAAA,+BACAkb,GAAAA,GAAA,uBACA+F,EAAAA,aAAA,2CAEA,kBAPA,mCAQA,OAAA7J,WAAAA,EAAA21B,OAAAA,EAAAkrC,YAAAA,EAAA5I,oBAAAA,EAAA6I,sBAAAA,EAAAL,kBAAAA,EACA,ICjG8Q,M,uBCA/C,GAAe,KCO1O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCjBhC,IAAep9E,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEy9E,sBAAAA,IACd5jF,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,WAClB,MAAiDyoB,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBACzB,MAAO,CACHD,EAAkB,CAAE/qB,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,8BAAiC,KAC3FwrB,EAAkB,CAAE/qB,IAAK,SAAU8Q,KAAM,iBAAkBvR,KAAM,+BAAkC,KACnGyrB,EAAsB,CAAEhrB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,+BAAkC,MAC9FiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GACrB,IACA,MAAO,CAAE63C,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EACxB,EACApoB,SAAU,CACNu/E,QAAO,mBACH,OAA+B,QAAxB,EAAW,QAAX,EAACjiF,KAAKZ,aAAK,aAAV,EAAYoa,mBAAW,QAAI,OAAOjJ,QAAQ,WAAW,aACjE,KC5B+R,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBY/P,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAsB,QAACkG,MAAW,e,YAAsD,KAAU,qB,IAAC,Y,GAA+BnH,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAoBe,OAAG,GAAgCC,MAAW,MAAC,IAAO5C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAe,6BAA0BqY,EAAM,yBAAK,iCAACxP,cAAgByH,EAAI,kB,YAAoB,KAAU,E,IAAC,Y,GAA+B5O,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAc,EAAEF,OAAM,K,MAA0Be,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD74E,EAAAA,eAAW0rC,EAAc,wB,MAACxqC,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAAqC,wBAA4C,UAAe,KAAI,GAACuvB,eAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAEh+C3sC,EAEJ,E,MCuBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJnT,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwN,GAAG,aACe,QAAtB,EAAAA,EAAI+lC,MAAMx7B,oBAAY,OAAtB,EAAwBlC,MAAM,KAAKoB,SAAQ,SAACipE,GACxC,EAAKlpE,QAAQrb,KAAK,CAAEG,KAAM0V,GAAAA,IAAgBxS,KAAMkhF,EAAK96E,GAAI86E,GAC7D,GACJ,EACAl6E,WAAW,EACXjG,MAAM,IAGd3D,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBoB,oBACrD,IAAMinE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,QAAoBA,GAAAA,aAAyBA,GAAAA,OAAmBA,GAAAA,UAAsBA,GAAAA,gBAChI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CAAC4O,GAAiBQ,SAAUR,GAAiBwB,SAEhGsoE,EAAY,yCAAG,oGACXnpD,EAAO,eAAa,uBAAE,4GAE+C,GAD/D5a,EAAgBlB,EAAElZ,MAAlBoa,YACF/b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEoa,YAAAA,KACxDrE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAC5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAAqBrhC,EAAQzF,EAAam3B,EAAerzC,EAAQkqC,UAAU,6CAC9H,qGArBY,mCAuBZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCACVhnE,MAAMC,QAAQ0mE,EAAa18E,MAAMua,cACzCX,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAiBA,OAfA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,iBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG7By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEoa,iBAAahN,IACzEg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACHq+E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EACAxI,QAAAA,EAER,ICjImS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAsB,QAACkG,MAAW,e,YAAsD,KAAU,qB,IAAC,Y,GAA+BnH,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAoBe,OAAG,GAAgCC,MAAW,MAAC,IAAO5C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAc,6BAA0BqY,EAAM,yBAAK,gCAACxP,cAAgByH,EAAI,kB,YAAoB,KAAU,E,IAAC,Y,GAA+B5O,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAc,EAAEF,OAAM,K,MAA0Be,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAAoC,mBAA4C,UAAe,KAAI,GAACuvB,cAAY,0CAAI,gBAAG,mBAEvwCnvB,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEApnD,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwN,GAAG,aACe,QAAtB,EAAAA,EAAI+lC,MAAMx7B,oBAAY,OAAtB,EAAwBlC,MAAM,KAAKoB,SAAQ,SAACipE,GACxC,EAAKlpE,QAAQrb,KAAK,CAAEG,KAAM0V,GAAAA,IAAgBxS,KAAMkhF,EAAK96E,GAAI86E,GAC7D,GACJ,EACAl6E,WAAW,EACXjG,MAAM,IAGhB3D,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBkB,WACrD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC7C2O,GAAAA,QACAA,GAAAA,eAEI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBQ,SACjBR,GAAiBwB,SAGfyoE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,cAAY,uBAAE,kHAIsC,GAHvD5a,EAAgBlB,EAAElZ,MAAlBoa,YACF/b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEoa,YAAAA,IACxD4F,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gDACgD,OAArDzF,EAAclc,EAAQkc,YAA+B,SACVrU,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1D6gD,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAChDhqB,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OAAO,6CAChE,qGAvBc,mCAyBZ2c,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAiBA,OAfA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,gBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG3By7E,EAAAA,EAAAA,cAAY,WACV,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEoa,iBAAahN,IACzEg8B,EAAYhU,UAAU/2B,EACxB,IAEO,CACLq+E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,ICrIsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7gC,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,WAAW,CAAEzC,EAAIib,QAAQ9C,OAAS,EAAG1V,EAAG,gCAAgC,CAAC3C,MAAM,CAAC,QAAUE,EAAIib,QAAQ,gBAAgBjb,EAAIyb,eAAezb,EAAIiQ,KAAKxN,EAAG,mCAAmC,CAAC3C,MAAM,CAAC,QAAUE,EAAIib,QAAQ,QAAUjb,EAAImc,MAAMC,GAAG,wBAAwB,kBAAkB,CAAC,WAAY,aAAazZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIokF,sBAAsB,GAAG5iF,MAAM,CAACH,MAAOrB,EAAI+gF,cAAex+E,SAAS,SAAUynB,GAAMhqB,EAAI+gF,cAAc/2D,CAAG,EAAEtoB,WAAW,mBAAsD,aAAlC1B,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAmD,aAAlCvvB,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAgBvvB,EAAIiQ,MAAM,EACh4B,EACI7P,GAAkB,G,GCFiI,W,IAAgB,O,EAAoB,EAAM,MAAC,GAAgB,EAAG,kB,OAAC,aAAc,SAAE,mBAAE,MAAK,CAASN,OAAM,OAAC,iBAAQ,GAAQ,eAAI2C,KAAG,GAASC,YAAY,KAAmaA,CAAAA,EAAAA,GAAAA,EAAW,CAAU,MAAK,CAAS5C,MAAM,WAAgF,SAAE,YAAa,QAAEA,CAAAA,EAAK,GAAC,oW,YAAQ,UAAE,QAAE,MAAMK,CAC72B,uFAGD,GAASiB,EAAAA,EAAM,C,qFCEf,IAAemF,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH4a,QAAS,CACLlb,KAAM4D,OACNijE,UAAU,GAEdnrD,YAAa,CACT1b,KAAM4D,OACNijE,UAAU,IAGlBlgE,MAAK,SAACrG,GACF,IAAMgkF,GAAa1/E,EAAAA,EAAAA,WAAS,WACxB,OAAOtE,EAAM4a,QAAQhM,KAAI,SAACsG,GAAoB,OAAKA,EAAKlM,GAAGyQ,MAAM,KAAK,EAAE,IAAEE,KAAK,KACnF,IAEA,MAAO,CACHqqE,WAAAA,EACA13D,aAAc/lB,EAAAA,EAAAA,MAAaklD,cAC3Bp/B,iBAAkB9lB,EAAAA,EAAAA,iBAAwB,sBAAwBA,EAAAA,EAAAA,MAAaklD,cAEvF,IC3B2T,MCO3T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCNhC,IAAevlD,EAAAA,EAAAA,iBAAgB,CAC3B5B,SAAU,CACN8Q,WAAU,WACN,OAAOA,EACX,GAEJjP,WAAY,CAAE89E,8BAAAA,GAA+BrtC,wBAAAA,GAAyBE,wBAAAA,GAAyBD,8BAAAA,IAC/F72C,MAAO,CACHgB,MAAOsC,OACP7C,QAASqC,SAEbuD,MAAK,SAACrG,GACF,IAAM4a,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCmxC,GAAcnxC,EAAAA,EAAAA,KAAI,IAClBi6E,GAAgBj6E,EAAAA,EAAAA,KAAI,CAAE8U,YAAa,WAAYy8B,OAAQ,QAASv/B,OAAQ,IAAIsB,OAC5EqB,GAAc3U,EAAAA,EAAAA,OACds9E,GAAuBz6D,EAAAA,GAAAA,IAAQ,uBAAsB,yCAAE,+FACpDtpB,EAAMgB,MAAO,CAAF,gDAOf,OANDoa,EAAYpa,MAAQhB,EAAMgB,MACpBggB,EAAS,CACX5F,YAAaA,EAAYpa,MAAMoa,YAC/BulE,QAAS,QACT3oC,OAAQ0oC,EAAc1/E,MAAMg3C,OAC5Bv/B,OAAQioE,EAAc1/E,MAAMyX,OAAOgD,eACtC,SACsBpK,EAAAA,EAAAA,KAAAA,IACd,sBAAD,OAAuBqvE,EAAc1/E,MAAMua,aAAe,CAAEyF,OAAAA,IAC/DxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFlBK,EAAW,EAAH,KAGd+2C,EAAY52C,MAAQH,EAASy1B,SAAS,2CACzC,SAb2E4tD,IAAsB,sCAAtBA,CAAsB,CAAvC,IAcrDx3D,EAAcU,KAEpB,MAAO,CAAEwqB,YAAAA,EAAa8oC,cAAAA,EAAe9lE,QAAAA,EAASmpE,qBAAAA,EAAsB3oE,YAAAA,EAAasR,YAAAA,EACrF,EACAhpB,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwN,GAAG,aACe,QAAtB,EAAAA,EAAI+lC,MAAMx7B,oBAAY,OAAtB,EAAwBlC,MAAM,KAAKoB,SAAQ,SAACipE,GACxC,EAAKlpE,QAAQrb,KAAK,CAAEG,KAAM0V,GAAAA,IAAgBxS,KAAMkhF,EAAK96E,GAAI86E,GAC7D,GACJ,EACAl6E,WAAW,EACXjG,MAAM,GAEV3C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,GACL/H,KAAKmiF,sBACT,EACAn6E,WAAW,MC7DiR,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYxH,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAaE,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAoCe,C,MAA6BiiF,EAAAA,uBAA0B,SAAC,YAAC9iF,EAAAA,uBAAW,CAAwB,EAAIe,WAAG,2B,CAAsB,gBAAYgiF,C,MAAqB,CAA8C,6BAAG,QAAC,mC,GAA0B,CAAsD,kBAAC,8CAAIhiF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE5oBrC,IAAAA,EAEJ,E,MC2BA,IACAS,KAAAA,WACA,OACA2jF,wBAAAA,EACAE,mBAAAA,KACAD,qBAAAA,KAEA,EACA1jF,QAAAA,CACA45E,eAAAA,SAAAA,GACA,IACA,+BACA,6BACA,gCAEA,qBACA,EACAgK,wBAAAA,EAAAA,GAAAA,IAAAA,sBAAAA,WAAA,4IAEAjzE,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,OAAAA,IAAAA,MAAAA,SAAAA,GAAA,yDACA,+FAEA/P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,4CACA,iFAEA,mDARAgjF,KAUA5gF,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GACA,oDACA,sDACA,sDACA,mFACA,yBACA,qDACA,EACAgG,WAAAA,EACAjG,MAAAA,KCrE+P,M,uBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBqN,W,IAAc,OAAkB,aAAU,EAAC,MAAQ,Y,OAAM,EAAC,M,YAAC,UAAe,OAAIvB,QAAU,EAAC,U,CAAQ,aAAQ,C,KAAC,YAAW,SAAE,MAAK,CAAgBC,MAAW,UAAeD,OAAG,KAA4B3C,cAAM,OAAW,KAAO,KAAKuB,CAAmC,OAAIrB,aAAWA,KAAmG,CAACA,EAAG,KAAI,CAA4DD,MAAMC,CAAsC,GAAK,IAAmBF,KAAM,O,CAAU,QAAO,CAAI,yBAAG,CAAC2C,EAAG,2BAAsB,CAAC3C,MAAM,CAAC,QAAwC,cAAkBE,EAAI+/B,MAAQ,aAAe,MAAqC,WAAgB//B,GAAG,EAAC+sB,MAAW,EAACwC,MAAAA,KAAY,yB,YAAC,aAA4D,4DAAG,KAAK,EAAG,MAAI,QAAS,cAAC/tB,QAAM,W,MAAM,CAAWe,GAAAA,I,KAA6B4sD,O,CAASztD,EAAAA,sBAAW,CAAK,OAAIe,eAAG,EAAgB,SAASzC,YAAwB,kBAAkB,0BAACwC,aAAW,qBAAC1C,gBAAM,2B,cAAU0C,EAAAA,MAAAA,EAAAA,MAAAA,kBAAAA,SAAM,IAAI,KAAQ,KAAC,C,MAAM,C,MAAE,EAAO,IAAE,qBAAIxC,EAAIG,IAAM,CAAgE,EAAwDL,WAAM,Q,CAAmB,QAAcgB,EAAAA,GAAAA,EAAAA,MAAAA,SAAAA,GAAO,eAAI,IAAI2B,EAAG,IACt8C,OACGrC,GAAAA,EAAAA,M,2NCMJ,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAIA,EAAI/xB,MACG+xB,EAAI/xB,MAAM0b,KAEVqW,EAAIhiB,GAAG,iCAEtB,EACA5K,WAAY,CAAEm1E,kBAAAA,IACdt7E,MAAO,CACHgB,MAAOsC,OACP7C,QAAS,CACLN,SAAS,EACTT,KAAMoD,UAGduD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,WAClB,MAAiDyoB,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBACzB,MAAO,CACHD,EACM,CAAE/qB,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,uCACxC,KACNyrB,EACM,CAAEhrB,IAAK,SAAU8Q,KAAM,MAAOvR,KAAM,wCACpC,KACNwrB,EACM,CAAE/qB,IAAK,SAAU8Q,KAAM,iBAAkBvR,KAAM,wCAC/C,KACN,CAAES,IAAK,cAAe8Q,KAAM,OAAQvR,KAAM,6CAC1C,CAAES,IAAK,cAAe8Q,KAAM,QAASvR,KAAM,6CAC3CwrB,EACM,CAAE/qB,IAAK,SAAU8Q,KAAM,eAAgBvR,KAAM,wCAC7C,MACRiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GACrB,IACMovD,GAAgB5/D,EAAAA,EAAAA,MAAI,GACpBi5B,GAAWj5B,EAAAA,EAAAA,KAAI,CACjBm0E,YAAa,EACbD,eAAgB,EAChBH,UAAW,IAEf,MAAO,CAAE1rB,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EAAa25C,cAAAA,EAAe3mC,SAAAA,EACpD,EACAh/B,QAAS,CACL6jF,wBAAwBj7D,EAAAA,GAAAA,IAAQ,yBAAwB,yCAAE,WAAsCtgB,GAAE,2FAEA,OADxFyP,EAAST,GAAON,MAAMqB,MAAM,SAC5BiI,EAAS,CAAEvI,OAAQA,EAAOpJ,SAAUmL,gBAAiB,CAACxR,GAAI2Q,OAAQxB,YAAa,SAAS,SACvE9G,EAAAA,EAAAA,KAAAA,IACd,gBAAiB,CAAE2P,OAAAA,IACvBc,OAAM,SAACva,GACJ,GAA4B,MAAxBA,EAAI1G,SAASmK,OAAgB,MAAO,CAAExK,KAAM,CAAC,GACjD,MAAM+G,CACV,IACCiH,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OANlBK,EAAW,EAAH,KAORozB,EAAOxb,EAAOpJ,OAAO,QACrB2kB,EAAQvb,EAAOpJ,OAAO,MACtBmsE,EAAexjE,GAAON,MAAM+pC,SAAS,EAAG,UAAU1oC,MAAM,SACxD0iE,EAAWD,EAAansE,OAAO,QAC/BqsE,EAAYF,EAAansE,OAAO,MACtCzN,KAAK89B,SAASk7C,aAAe/5E,EAAS86E,mBAAmB1nD,IAAS,CAAC,GAAGD,IAAU,EAChFpyB,KAAK89B,SAASi7C,eACV/4E,KAAK89B,SAASk7C,aAAe/5E,EAAS+6E,sBAAsB3nD,IAAS,CAAC,GAAGD,IAAU,EACvFpyB,KAAK89B,SAAS86C,WAAa35E,EAAS86E,mBAAmBF,IAAa,CAAC,GAAGC,IAAc,EAAE,iDAC3F,SAnBwE6I,EAAuB,GAAD,sCAAtBA,CAAsB,CAAvC,KAqB5D7gF,MAAO,CACH1C,MAAO,CACH4C,QAAO,SAAC+F,GACCA,GACL/H,KAAK2iF,uBAAuB56E,EAAIX,GACpC,EACAY,WAAW,MClFgR,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtByP,W,IAAMrB,EAAG,K,EAAW,QAAW,G,SAAa9I,MAAM,C,YAAC,Q,gCAAkB,C,MAAa,C,QAAO,QAAW,GAAG,oB,MAAe,EAAC,Q,YAAqB,KAAW,CAAC,EAAE,kD,aAAwE,WAAC,MAAM,QAAS,CAACA,MAAM,CAAC,KAAO,GAAE,sBAA4G,gBAACsS,MAAM,CAAU,MAAC,YAAI,UAAe,GAAI,0BAAkB,4CAAC,GAAO,IAAI,CAAUtS,MAAM,CAAC,UAA0B,gG,SAAsB0C,G,KAAkB,C,+BAA0BC,G,MAAmB3C,EAAM,K,SAAC,KAAO,C,MAAE,C,WAAQ2C,GAAuC,WAAe,YAAa,EAAGzC,GAAI+sB,CAAAA,CAAoEjtB,IAAM,YAAC,GAAI,YAAmF,WAAM,MAAC,SAAmB,GAAG,CAAiJ,OAAC,KAAQ,KAAiD,mCAAC,IAAM,MAAC,IAAqJ,oEAAI,MAAK,CAAW,0BAAc,kEAA0B,QAAS,2FAAI,IAAWiR,MAAK,YAAI,OAAW,kBAAqB,EAACjR,I,CAA8C,OAAYo2D,CAAAA,EAAAA,EAAAA,EAAY,iF,UAAwC,K,gBAA6C,C,YAACvtD,EAAW,GAAC3I,CAAAA,C,0BAA0B,G,MAAW8I,EAAO,M,OAAEvI,EAAAA,qBAAK,C,MAAEuQ,C,QAAe,QAAPhQ,GAAAA,gB,MAAkB,EAAI,a,MAAkB,6B,SAAC,EAAQiQ,GAAAA,4B,YAAY,MAAU,C,IAAyCjR,U,YAAO,G,IAA6D,EAAQE,EAAIk2D,Q,EAAa,EAAQptD,M,EAAe,EAACvI,O,EAAauQ,EAAM,Q,MAAC,iBAAUhQ,CAAO,GAAC,CAAG,MAAC,K,EAA4BiQ,GAAAA,GAAQlC,EAAM,mCAAD,C,MAAA,C,eAAqD,yDAAC,QAAI,eAAQ,QAAK,GAAI,IAAI,oBAAO,qBAAY8mD,OAAAA,EAAe,wCAAU,GAAoBA,KAA+C,IAAO,WAEpzEv1D,K,iHCFwCqC,GAAOK,WAAS,MAAU,KAAgBhD,EAAK,EAAC,S,OAAC,OAAcgB,C,MAAQ,CAAsB,QAAQd,EAAIqxB,QAAc,QAAU,EAAC,QAAK,sBAAkC,WAAUrxB,KAAa,iBAAgBsxB,EAAAA,aAAW,qBAAG,YAAC,c,GAAwCtxB,CAAuB,sBAAC,YAAC,gB,EAAgE,wBAAC,YAAC,eAAgB,C,EAAoC,gBAAC,YAAC,WAAgB,C,EAAqC,iBAAC,YAAC,WAAiB,C,EAAuC,kBAAC,YAAC,aAAkB,C,EAAuC,+BAAE,cAAC2I,G,YAAkC,KAAU,E,IAAC,MAAsB,GAAC,WAACyJ,MAAM,aAAK,EAAE5P,OAAG,GAAgBoG,C,IAAqB,e,GAAC,SAAc,G,IAAsB,EAAO2M,EAAAA,KAAI,MAAG,oCAAgB,IAC7yB,UAGD,E,MC2BA,IACAlV,MAAAA,CACAS,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEA0nB,MAAAA,OAEArnB,KAAAA,WACA,OACAgxB,SAAAA,OACAP,YAAAA,EACAQ,aAAAA,GAEA,EACAntB,SAAAA,CACA0sB,cAAAA,WACA,kBACA,qDACAlW,EAAAA,OAAAA,CAAAA,EAAAA,CACA2B,GAAAA,EAAAA,GACAC,KAAAA,EAAAA,KACA8nE,SAAAA,EAAAA,OAAAA,GACAC,WAAAA,EAAAA,OAAAA,MAAA,IANA,EAQA,EACAxjF,QAAAA,WACA,OACA,CACAS,KAAAA,KAAAA,GAAAA,wCACAV,MAAAA,aACAswB,UAAAA,GAEA,CACA5vB,KAAAA,KAAAA,GAAAA,kDACAV,MAAAA,OACAswB,UAAAA,GAEA,CACA5vB,KAAAA,UACAV,MAAAA,UACAswB,UAAAA,GAGA,IC3EgR,M,sBCA/C,GAAe,KCO5O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCgEhC,IACAnrB,WAAAA,CAAAu+E,wBAAAA,GAAAC,6BAAAA,GAAAnzE,iBAAAA,IACAxR,MAAAA,CAAAA,QAAAA,WACAQ,KAAAA,WACA,OACAokF,OAAAA,GACAtvB,gBAAAA,EACAO,aAAAA,KACA76C,eAAAA,KAEA,EACAtX,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,yBACA,4BACA,EACAgG,WAAAA,EACAjG,MAAAA,IAGAW,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACAmkF,kBAAAA,EAAAA,GAAAA,IAAAA,mBAAAA,WAAA,mIACAxzE,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,OAAAA,EAAAA,YAAAA,MAAAA,SAAAA,GAAA,2FACA,SAFAwzE,EAAAA,GAAA,wCAAAA,IAGAzvB,gBAAAA,SAAAA,GACA,oBACA,sBACA,ICtH+P,M,uBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkE31D,GAAM,W,IAAC,EAAM,K,EAAI,EAAO,MAAC,G,OAAa,sBAAE,MAAK,CAAyBA,KAAM,GAAC,sBAAqC6C,CAAE,EAAC,yB,MAAC,CAA+C,iC,GAAsBH,CAAcoG,QAAG,oC,YAAyBnG,EAAG,K,IAAgB8Z,U,YAAkB,G,IAAOC,EAAAA,EAAQ,G,MAASnb,CAAAA,EAAOrB,EAAAA,EAAI6lC,EAAAA,GAAAA,C,WAAoF,EAAyE,YAACnjC,QAAW,SAAQ5C,MAAM,qEAAC,WAAQ,yE,YAAgC,O,MAAI,CAAU,kBAAG6C,IAAO,GAA+B,aAAI,WAAa,GAAK,CAACgzB,EAAAA,EAAAA,EAAQumD,CAAAA,EAAAA,GAAAA,UAAmB,GAAC35E,K,MAA0E,CAACb,MAAAA,EAAU,QAAC,mBAA4B,qBAAM,EAAEe,KAAG,+BAAuB,EAAC3C,EAAO,4CAAkE,4BAAgB,C,MAAC,CAA0D,0BAAG,eAAC,iBAAC,aAAiE,mD,GAAuE0C,CAAcoG,0BAAa,oC,YAA2B,oD,kCAAoC,QAACjG,MAAG,CAAC,MAAQ,Y,UAA4B,IAA2B,IAAIF,MAAG,SAAS,GAAC3C,EAAM,6BAAC,IAAY,CAACE,EAAG,IAAI,CAA8B,OAAM,KAAC,KAA8Bm8E,CAAAA,EAAAA,GAAO,SAAU,EAAC,gBAACz5E,EAA4BD,OAAG,GAASC,MAAW,MAAC,KAAO5C,EAAK,QAAC,S,YAAW,e,CAAC,O,YAAsB,OAAE,MAAC,CAAG,MAAC,GAAC,UAAQ,G,KAAiB,IAAsB,IAAIE,MAAO,SAAeoR,GAClmD,mBACGhR,I,gFCoDJ,IACAC,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAqzE,oBAAAA,GAAA2C,oBAAAA,IACA37E,KAAAA,WACA,OACAglC,YAAAA,GACAvqB,UAAAA,KACAD,eAAAA,KACAsa,QAAAA,CACAumD,oBAAAA,GAEArzD,KAAAA,EACAszD,SAAAA,EAEA,EACAp4E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,IACA,yBACA,sBACA,EACAgG,WAAAA,IAGAtF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA07E,gBAAAA,WACA,YACA,mBACA,EACAC,SAAAA,WACA,aACA,qBACA,EACAC,gBAAAA,EAAAA,GAAAA,IAAAA,iBAAAA,WAAA,4HAGA,OAFA9jE,EAAAA,GAAAA,MAAAA,KAAAA,GAAAA,UAAAA,SACAC,EAAAA,GAAAA,MAAAA,SACA+B,EAAAA,GAAAA,OAAAA,KAAAA,gBAAA,SAEAnJ,EAAAA,EAAAA,KAAAA,IACAzF,mBAAAA,CACAoV,OAAAA,CAAAxI,SAAAA,EAAAC,OAAAA,EAAA+B,gBAAAA,KAEAhM,MAAAA,SAAAA,GAAA,wBAJA,wEAKA,SAVA8tE,IAAA,wCAAAA,IAWAP,iCAAAA,WACA,uBACA,qBACA,ICzGoQ,MCOhQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBY35E,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAmB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,oB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,KAAO1B,qBAAgB,C,MAAC,CAA2C,oBAAG,YAAC,4BAAiC,IAAKA,MAAIk6E,EAAAA,wBAAkD,iBAAYntC,EAAAA,uBAAAA,CAAa,MAAC,CAACvrC,MAAM,iB,MAA2Be,C,MAA6BwqC,EAAAA,cAAiB,SAAC,YAACrrC,EAAAA,cAAW,CAAe,EAAG,WAAUe,mBAAyC3C,EAAM,0B,YAASE,O,MAAoB,CAAyC,wBAA4C,UAAe,KAAI,GAACuvB,mBAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAE3wC3sC,EAEJ,E,MCwBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA3F,qBAAAA,GACAloC,gBAAAA,GACAH,mBAAAA,IAEJ5sC,SAAU,CACNu1E,eAAc,WACV,OAAOj4E,KAAKwoC,YAAY7b,OAAOlvB,QAAQkc,aAAelG,GAAiBwB,MAC3E,GAEJ7W,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBU,gBACrD,IAAM2nE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC3C2O,GAAAA,aACAA,GAAAA,QACAA,GAAAA,QACAA,GAAAA,IACAA,GAAAA,OACAA,GAAAA,YAEE00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBoB,kBACjBpB,GAAiBU,cACjBV,GAAiBQ,WAGfspE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,4GAE8C,GADlEhb,EAAmBd,EAAElZ,MAArBga,eACF3b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEga,eAAAA,KACxDjE,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACwC9Z,QAAQ2H,IAAI,CAC3DkS,GAASxF,EAAayF,GACtBI,GAAYJ,EAAQ3hB,EAAQya,aAAcza,EAAQgb,oBACpD,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAE5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAG5DoD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAE5DupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAAqBrhC,EAAQzF,EAAam3B,EAAerzC,EAAQkqC,UAAU,6CAC9H,qGAxBY,mCA0BZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCACVhnE,MAAMC,QAAQ0mE,EAAa18E,MAAMua,cACzCX,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAiBA,OAfA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG7By7E,EAAAA,EAAAA,cAAY,WACR,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEga,oBAAgB5M,IAC5Eg8B,EAAYhU,UAAU/2B,EAC1B,IAEO,CACHq+E,aAAAA,EACAxoD,aAAAA,EACA0M,QAAAA,EACAogB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EACAtC,YAAAA,EAER,ICrImS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5BrpC,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,WAAW,CAACA,EAAG,mCAAmC,CAACC,YAAY,OAAO5C,MAAM,CAAC,QAAUE,EAAImc,MAAMC,GAAG,0BAA0B,kBAAkB,CAAC,WAAY,aAAazZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAI8gF,wBAAwB,GAAGt/E,MAAM,CAACH,MAAOrB,EAAI+gF,cAAex+E,SAAS,SAAUynB,GAAMhqB,EAAI+gF,cAAc/2D,CAAG,EAAEtoB,WAAW,mBAAsD,aAAlC1B,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAmD,aAAlCvvB,EAAI+gF,cAAcnlE,YAA4BnZ,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,MAAQE,EAAIi4C,YAAY,SAAWj4C,EAAI+sB,YAAYwC,gBAAgBvvB,EAAIiQ,MAAM,EAC9tB,EACI7P,GAAkB,GC4BtB,IACAoG,WAAAA,CAAAywC,wBAAAA,GAAAE,wBAAAA,GAAAD,8BAAAA,IACA72C,MAAAA,CAAAA,QAAAA,WACAQ,KAAAA,WACA,OACAo3C,YAAAA,GACA8oC,cAAAA,CAAAnlE,YAAAA,WAAAy8B,OAAAA,QAAAv/B,OAAAA,IAAAA,MAEA,EACA/U,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,6BACA,EACAgG,WAAAA,IAGAtF,UAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAEAtvB,QAAAA,CACA+/E,wBAAAA,EAAAA,GAAAA,IAAAA,yBAAAA,WAAA,6HACA,4DAMA,OALAz/D,EAAAA,CACAxG,gBAAAA,KAAAA,MAAAA,eACAmmE,QAAAA,QACA3oC,OAAAA,KAAAA,cAAAA,OACAv/B,OAAAA,KAAAA,cAAAA,OAAAA,eACA,SACApH,EAAAA,EAAAA,KAAAA,IACAzF,sBAAAA,OAAAA,KAAAA,cAAAA,aAAAA,CAAAoV,OAAAA,IACAxS,MAAAA,SAAAA,GAAA,wBAFA3N,EAAAA,EAAAA,KAGA,4EACA,SAZAs3C,IAAA,wCAAAsoC,MCpD+P,MCO3P,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBgEp+E,GAAAA,W,IAAmB5C,EAAM,K,EAAC,QAAS,G,OAAO,EAAM,WAAG,S,YAAQ,O,MAAU,CAAe,cAAIE,KAAO,GAAmFF,KAAM,UAAC,UAAUE,MAAkG,oFAAC2I,MAAAA,CAAqBnG,QAAI,EAAS,qEAACoG,MAAG,e,YAA0B,KAANkI,CAAAA,C,IAAQ7Q,U,GAAMa,SAAO,G,IAAEkQ,EAAK,EAALA,QAAS,EAAW,SAASlR,EAAM,O,EAAQ,EAAC,Q,EAAU,EAAU,M,MAAqB,OAAUgB,C,MAAQ,CAAc,MAAO,UAAG,eAAG,QAAC,EAAC,KAAO,E,KAAsBqkF,IAA4C,IAAI1iF,MAAG,SAAS,GAAC3C,EAAM,oCAAC,IAAY,CAACE,EAAG,IAAI,CAA6B,OAAG,UAAe,eAAkB,kB,QAAqBF,O,YAAgB,G,IAAC,EAAO,EAAC,K,MAAQ,OAAUE,CAA4C,MAAC,CAAG,KAAC,GAAC,MAAQ,Q,QAAwBA,EAAIolF,MAAAA,GAAAA,iCAAmC,IAAI3iF,MAAG,SAAS,GAAC3C,OAAM,iCAAC,IAAY,CAACE,EAAG,IAAI,CAAiC,OAAG,UACzhC,qCACGI,Q,UC4CJ,IACAC,MAAAA,CAAAA,QAAAA,WACAmG,WAAAA,CAAAq3E,gBAAAA,IACAh9E,KAAAA,WACA,OACAi9E,YAAAA,GAEA,EACA/5E,MAAAA,CACA1C,MAAAA,CACA4C,QAAAA,SAAAA,GACA,GACA,iCACA,EACAgG,WAAAA,IAGAlJ,QAAAA,CACAskF,4BAAAA,EAAAA,GAAAA,IAAAA,8BAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,uFACA3zE,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OACA,2CAEA4C,MAAAA,SAAAA,GAAA,wBAJA,yEAMAs2E,2BAAAA,EAAAA,GAAAA,IAAAA,4BAAAA,WAAA,4IAEAzzE,EAAAA,EAAAA,KAAAA,KAAAA,+BAAAA,OACA,0CACAisE,GACA,OACA,mCACA97E,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gCAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,8BAAA,yDAEA,mDAXAwjF,IAYAC,8BAAAA,EAAAA,GAAAA,IAAAA,+BAAAA,WAAA,4IAEA1zE,EAAAA,EAAAA,KAAAA,UAAAA,+BAAAA,OACA,oGACA,OACA,mCACA7P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gCAAA,oDAEAF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,8BAAA,yDAEA,mDAVAyjF,MCnFoQ,M,uBCA/C,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBY3iF,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAkB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,mB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAAyB,sBAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAkC3C,EAAK,cAAC,C,YAASE,O,MAAe,CAAwC,mBAA4C,UAAe,KAAI,GAACuvB,kBAAY,0CAAI,gBAAG,mBAEviCnvB,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CACVuyC,6BAAAA,GACAwmC,iBAAAA,GACArwB,YAAAA,GACA/D,eAAAA,IAEF9qD,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACJ,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBkB,WACrD,IAAMmnE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B44E,GAAa54E,EAAAA,EAAAA,KAAyC,MACtDmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC7C2O,GAAAA,aACAA,GAAAA,QACAA,GAAAA,QACAA,GAAAA,MAEI00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACvD4O,GAAiBkB,SACjBlB,GAAiBU,cACjBV,GAAiBQ,WAGfypE,EAAsC,KACpCH,EAAY,yCAAG,oGACbnpD,EAAO,kBAAgB,uBAAE,kHAKkC,GAJvDhb,EAAmBd,EAAElZ,MAArBga,eACF3b,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEga,eAAAA,IACtDO,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACsC9Z,QAAQ2H,IAAI,CAC3D4T,GAAQlH,EAAayF,GACrB0B,GAAgB1B,EAAQ3hB,EAAQya,gBAChC,gCAHK8xC,EAAc,KAAEC,EAAgB,OAIAlC,GACrCiC,GACD,gBAFMjZ,EAAY,KAAE6Y,EAAc,KAGnC8zB,EAAgB9zB,EACVM,EAAkBvsB,GAAoCssB,GAC5D32B,EAAal0B,MAAQ,CACnB+5B,OAAQ,GAAF,gBAAM4X,EAAa5X,SAAM,QAAK+wB,EAAgB/wB,SACpDyD,SAAU,GAAF,gBAAMmU,EAAanU,WAAQ,QAAKstB,EAAgBttB,YAE1DoD,EAAQ5gC,OAAwB,OAAhB6qD,QAAgB,IAAhBA,OAAgB,EAAhBA,EAAkB7pC,eAAgBhB,EAAOvI,OACzD4mE,EAAWr+E,MAAQqhD,GAAqBrhC,EAAQ4qC,GAAgB,6CAChE,qGAvBc,mCAyBZx2B,EAAuB,SAAH,GAA6C,IAAvCjc,EAAK,EAALA,MAAO2lB,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACxCohC,EAAiBs7C,EAAcnmE,GACjC2lB,EACF4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GACzDujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC7DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACjByJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAG1C,EAiBA,OAfA7X,EAAAA,EAAAA,QACE,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACOkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,oBAC1CquB,EAAYhU,UAAUsnD,EAAa18E,OACnCm+E,IACF,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,KAG3By7E,EAAAA,EAAAA,cAAY,WACV,IAAM//E,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAEga,oBAAgB5M,IAC5Eg8B,EAAYhU,UAAU/2B,EACxB,IAEO,CACLq+E,aAAAA,EACAxoD,aAAAA,EACAmqD,WAAAA,EACAzkE,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAEJ,IC7HsS,MCOpS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClBYx/B,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAaE,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAwBe,C,MAA6B+iF,EAAAA,WAAc,SAAC,YAAC5jF,EAAAA,WAAW,CAAY,EAAIe,WAAG,e,CAAsB,gBAAY8iF,C,MAAe,CAAwC,uBAAG,QAAC,6B,GAA0B,CAAgD,kBAAC,wCAAI9iF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAEtlBrC,IAAAA,EAEJ,E,MC2BA,IACAS,KAAAA,WACA,OACAykF,YAAAA,EACAE,kBAAAA,KACAD,eAAAA,KAEA,EACAxkF,QAAAA,CACA45E,eAAAA,SAAAA,GACA,IACA,mBACA,4BACA,0BAEA,qBACA,EACA8K,wBAAAA,EAAAA,GAAAA,IAAAA,gBAAAA,WAAA,sJAEA/zE,EAAAA,EAAAA,KAAAA,IAAAA,qBAAAA,MAAAA,SAAAA,GAAA,wBAAAsnC,EAAAA,EAAAA,KACAoB,EAAAA,EAAAA,MAAAA,SAAAA,GAAA,8BACA,4BACA,0JAEAz4C,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,2CACA,iFAEA,mDAVA8jF,KAYA1hF,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,GACA,kDACA,oDACA,yCACA,iFACA,wBACA,oDACA,EACAgG,WAAAA,EACAjG,MAAAA,KCvE+P,M,sBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBqP,cAAC,IAAG,EAAIvB,KAAY3C,EAAK,EAAC,SAAC,QAAa,Y,OAAE,QAAE,YAAY,UAAEA,MAAM,CAAC,QAAQ,YAAY,eAAE,KAAK,YAAgB4C,CAAAA,EAAAA,GAAAA,EAAY,CAAY,MAAK,CAAoB5C,MAAM,UAAC,OAAS,KAAC,cAAQ,OAAiBE,GAAIG,EAAG,KAAIH,CAA8F0C,MAAAA,CAA+BD,aAAY,KAAoB3C,CAAAA,EAAK,KAAC,C,MAAC,CAAc,OAAU,YAAmCA,CAAAA,EAAK,MAAC,C,YAAQ,a,CAAK,qBAAS,C,MAAC,CAAmC,QAAIE,MAAO,iBAA2HF,EAAK,GAAC,uE,YAAW,kB,CAAI,OAAQ,CAAE,mBAAE,MAAK,CAAUA,SAAM,GAAC,MAAO,KAAK,CAACE,EAAG,2BAAsB,CAAyG0C,MAAAA,CAAmB5C,KAAM,KAAC,QAAc,MAAQ,6BAAM2C,EAAG,mBAAS,uEAAC3C,YAAM,O,MAAC,CAAS,YAAIE,MAAO,K,CAAgIqB,EAAAA,EAAAA,EAAU,C,MAAMkB,C,KAA6B4sD,K,CAASztD,EAAAA,GAAAA,WAAW,2FAAK,mBAAE,MAAK,CAAiD,SAAU,GAASc,MAAQA,K,GAAW,IAAK2sD,C,MAAO,CAAE,KAAK,K,GAAkB,oBAAmB,yF,MAAC,C,MAAS,EAAQA,IAAuE,qBAAI1sD,EAAG,KAAU3C,E,WAAc,QAAI,GAAEE,GAAAA,GAAcmvD,EAAI77C,GAAI,EAAI,MAAKnT,SAAOH,GAAuC,OAAKyC,EAAG,MAAiD3C,IAAM,MAAC,MAAO,CAAW,KAAUE,MAAgB,CAAC,EAAEyC,GAAAA,EAAG,CACx0D,OACGrC,MAAAA,YAEJ,IAAe,G,iSCAf,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH4zB,GAAItwB,OACJtC,MAAOsC,OACP7C,QAAS,CACLN,SAAS,EACTT,KAAMoD,UAGduD,MAAK,WACD,IAAMyoD,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,iBAClB,CACI,CAAEnC,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,uCAC1CiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GAAC,IAEtB,MAAO,CAAE63C,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EACxB,ICtBmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYtqB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAY,6BAAc,2BAAG,8BAAC6I,cAAgByH,I,YAA6C,KAAU,mB,IAAC,Y,GAA+B5O,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAsC3C,EAAK,kBAAC,C,YAASE,O,MAAoB,CAAkC,wBAA4C,UAAe,KAAI,GAACuvB,YAAa,eAAe,EAAI,aAACwd,YAAa,+BAAI,cAAG,oBAE3lC3sC,EAEJ,E,MCsBA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA7tC,gBAAAA,GACAH,mBAAAA,IAEJlxC,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,IAAMwyB,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MACxC,GAAyB5U,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNoU,EAAclU,KACpBkU,EAAYhU,UAAU,CAAC7a,YAAalG,GAAiBQ,SAAU0zB,SAAUjyB,GAAAA,WACzE,IAAMomE,GAAej3E,EAAAA,EAAAA,KAAuB2jC,EAAY/qC,SAClD61B,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAAC2O,GAAAA,MAAkBA,GAAAA,UAC5D00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CAAC4O,GAAiBwB,OAAQxB,GAAiBkB,WAE9F4oE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,oGAE6C,GADjEpa,EAAkB1B,EAAElZ,MAApB4a,cACFvc,GAAO,kBAA2Bq+E,EAAa18E,OAAK,IAAE4a,cAAAA,KACxD7E,MAAMC,QAAQ3X,EAAQkc,aAAc,CAAF,qBAAQ,IAAI+hB,MAAM,sCAAqC,OAG9B,GAFzD/hB,EAAclc,EAAQkc,YACxByF,EAASsoB,GAA2BjqC,GACxC2hB,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,iEACiBD,GAASxF,EAAayF,GAAO,QAAnD0xB,EAAgB,EAAH,KACbC,EAAe1U,GAA+ByU,EAAe,CAC/DnU,WAAY1B,GAAiBO,UAEjClI,EAAal0B,MAAQ,CACjB+5B,QAAQ,QAAI4X,EAAa5X,QACzByD,UAAU,QAAImU,EAAanU,WAE/BoD,EAAQ5gC,MAAQ0xC,EAAc9Q,SAAW5gB,EAAOvI,OAChDupC,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACArzC,EAAQkqC,UACV,6CACJ,qGAxBY,mCA0BZnU,EAAuB,SAAH,GAAsD,IAAhD4O,EAAc,EAAdA,eAAgBlF,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KACjDk8B,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACfyJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAGhD,EAWA,OATA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,aAC1CojE,GACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR2wB,cAAAA,EAER,IC9GmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClByD,GAAU,W,IAAYjtC,EAAM,K,EAAC,EAAO,MAAK,GAAC,oB,OAAwB,OAAa,C,MAAG,CAAkB,SAAgB,qBAAiB,GAAC,WAAaE,GAA8B,kBAAIyC,WAAc,GAAE3C,eAAM,GAAC,WAAQ,WAAiB,oB,CAAgD,cAAcgB,CAAO,OAAK,MAAK4kF,kBAA+B5lF,SAAM,oCAAC,QAAO,YAAK,CAACE,EAAIG,gB,OAAG,QAAuSuC,MAAAA,CAAmB5C,KAAM,K,CAAgB,KAAO,qKAAC,yHAAE,YAAC,OAAC6C,MAAG,CAAC,MAAQ,O,MAAwB3C,IAAiB,IAAIA,MAAO,SAAgB,GAAS0C,OAAW,EAAC,YAAO5C,I,CAAsB,KAAO,aAAC,OAAE,YAAC,OAAC6C,MAAG,CAAC,MAAQ,O,MAAwB3C,IAAoB,IAAIA,MAAO,SAAgB,GACngC,wBACGI,I,qDCCE8J,GAAStD,EAAAA,EAAAA,MAETwD,GAAW,IAAIu7E,GAAAA,GAAY,CAC7Br5E,OAAQpC,GAAO07E,aACfzmB,SAAUj1D,GAAO27E,eACjBC,oBAAqB,CACjBC,SAAU77E,GAAO87E,eACjBC,aAAcn6E,OAAOo6E,SAASlvB,UAIhCmvB,GAAU,yCAAG,+FAA2B,GAAlBC,EAAkB,EAAlBA,oBACpBt6E,OAAOo6E,SAAS7sB,OAAOltD,SAAS,WAAYL,OAAOo6E,SAAS7sB,OAAOltD,SAAS,UAAS,gCAC1D/B,GAASi8E,yBAAwB,gBAApDC,EAAQ,EAARA,SACRF,GAA2B,OAARE,QAAQ,IAARA,OAAQ,EAARA,EAAUC,WAAYz6E,OAAOo6E,SAASM,UAAU,uBAG5Dp8E,GAASs7E,kBAAiB,mDAC3Be,GAAkB,CAAC,GAAE,4CAElC,gBATe,sCAWVA,GAAiB,yCAAG,WAAO/mF,GAAY,uFACnC0K,GAASq8E,mBAAkB,QAAEH,SAAU,CAAEC,SAAUz6E,OAAOo6E,SAASM,WAAe9mF,IAAU,2CACrG,gBAFsB,sCAIjBgnF,GAAgB,yCAAG,6GAEJt8E,GAASs8E,mBAAkB,2EAExCt8E,GAASq8E,kBAAkB,CAAC,GAAG,wDAEtC,kBANqB,mCAQhBf,GAAe,yCAAG,oGACPt7E,GAASs7E,kBAAiB,mFAC1C,kBAFoB,mCAIfiB,GAAkB,yCAAG,oGACjBv8E,GAASw8E,OAAO,CAAEC,aAAc,CAAEN,SAAUz6E,OAAOo6E,SAASlvB,UAAU,2CAC/E,kBAFuB,mCAIlB8vB,GAAU,WACZ,OAAO18E,GAAS08E,SACpB,EAEA,IACI18E,SAAAA,GACA+7E,WAAAA,GACAT,gBAAAA,GACAgB,iBAAAA,GACAI,QAAAA,GACAL,kBAAAA,GACAE,mBAAAA,I,oCCrDEz8E,GAAStD,EAAAA,EAAAA,MAETmgF,GAAS,CAAC,aAEVC,GAAe,CAAED,OAAAA,IAEjBE,GAAa,CACfC,KAAM,CACF/nB,SAAUj1D,GAAOi9E,cACjBC,UAAWl9E,GAAOm9E,eAClBC,YAAax7E,OAAOo6E,SAASlvB,QAEjCuwB,MAAO,CACHC,cAAe,eACfC,wBAAwB,GAE5BC,OAAQ,CACJC,cAAe,CACXC,eAAgB,SAAC/6D,EAAO1a,EAAS01E,GAC7B,IAAIA,EAGJ,OAAQh7D,GACJ,KAAKi7D,GAAAA,EAAAA,MAED,YADA1lE,QAAQhX,MAAM+G,GAElB,KAAK21E,GAAAA,EAAAA,KAED,YADA1lE,QAAQ2lE,KAAK51E,GAEjB,KAAK21E,GAAAA,EAAAA,QAED,YADA1lE,QAAQ4lE,MAAM71E,GAElB,KAAK21E,GAAAA,EAAAA,QAED,YADA1lE,QAAQkU,KAAKnkB,GAGzB,KAKN/H,GAAW,IAAI69E,GAAAA,GAAwBhB,IAEvCd,GAAU,yCAAG,2FAA2B,OAAlBC,EAAkB,EAAlBA,mBAAkB,SACpCh8E,GAAS+7E,aAAY,uBAErB/7E,GAAS89E,wBAAuB,uBAChCzB,GAAkB,CAAC,GAAE,OAE3BL,EAAmB,MAAK,2CAC3B,gBAPe,sCASVK,GAAiB,yCAAG,WAAO/mF,GAAY,6EACnC+0B,EAAWrqB,GAAS+9E,iBACF,IAApB1zD,EAAStc,OACT/N,GAASg+E,eAAc,kBAAKpB,IAAiBtnF,IAE7C0K,GAASi+E,iBAAiB5zD,EAAS,IACtC,2CACJ,gBAPsB,sCASjBiyD,GAAgB,yCAAG,mHAEMt8E,GAASk+E,mBAAmBtB,IAAa,OAAlD,OAAR9lF,EAAW,EAAH,uBACPA,EAASqnF,SAAO,mCAEnB,gBAAiBC,GAAAA,IACjBp+E,GAASg+E,cAAcpB,IAC1B,yDAER,kBATqB,mCAWhBtB,GAAe,yCAAG,6GACkB,MAA/Bt7E,GAASq+E,oBAA0B,2CAC7C,kBAFoB,mCAIf9B,GAAkB,yCAAG,0FACoB,GAArCnrB,EAAUpxD,GAASq+E,oBACrBjtB,EAAS,CAAF,+BACDpxD,GAASs+E,eAAe,CAAEltB,QAAAA,EAASmtB,sBAAuB78E,OAAOo6E,SAASlvB,SAAS,6BAEzF50C,QAAQkU,KAAK,4CAA4C,2CAEhE,kBAPuB,mCASlBwwD,GAAO,yCAAG,0FAC+B,GAArCtrB,EAAUpxD,GAASq+E,oBACrBjtB,EAAS,CAAF,wCACA,CACHv4D,KAAMu4D,EAAQv4D,KACd2I,MAAO4vD,EAAQotB,WAClB,2CAER,kBARY,mCAUb,IACIx+E,SAAAA,GACA+7E,WAAAA,GACAT,gBAAAA,GACAgB,iBAAAA,GACAI,QAAAA,GACAL,kBAAAA,GACAE,mBAAAA,IClGEkC,GAA4B,SAAAr2D,GAAC,OAAI1mB,OAAOg9E,QAAQC,aAAa,CAAC,EAAG18E,SAAS5D,MAAOqD,OAAOo6E,SAASM,SAAS,EAE1GwC,GACFpiF,EAAAA,EAAAA,iBAAwB,yBAA2BqiF,GAAaC,GAgBhE9+E,GAAiD,KAExC++E,GAAc,WAAH,OAAS/+E,EAAQ,EAE5Bg/E,GAAU,SAAH,GAEf,QADGhD,mBAAAA,OAAkB,IAAG,EAAAyC,GAAyB,EAElD,OAAIz+E,KAEJA,GAAW,IAAIY,EAAAA,WAAI,CACfnK,KAAI,WACA,MAAO,CACHC,SAAS,EACT4kF,iBAAiB,EACjB/5E,KAAM,CAAC,EACPq9E,OAAQ,KACR59E,MAAO,KAEf,EACArK,QAAS,CACL2lF,iBAAkB,kBAAMsC,GAAOtC,kBAAkB,EACjDD,kBAAmB,SAAC/mF,GAAY,OAAKspF,GAAOvC,kBAAkB/mF,EAAQ,EACtEinF,mBAAoB,kBAAMqC,GAAOrC,oBAAoB,GAGnD3kF,QAAO,wIAEgB,OAFhB,SAEL,EAAKgnF,OAASA,GAAO,SACfA,GAAO7C,WAAW,CAAEC,mBAAAA,IAAqB,yDAE/C,EAAKh7E,MAAQ,EAAH,GAAS,iCAEU49E,GAAOtD,kBAAiB,QAAjC,OAApB,EAAKA,gBAAkB,EAAH,eACFsD,GAAOlC,UAAS,QACb,OADrB,EAAKn7E,KAAO,EAAH,KACT,EAAK7K,SAAU,EAAM,yEAThB,EAWb,IAGGsJ,GACX,EAEai/E,GAAa,CACtBC,QAAO,SAACC,EAAK7pF,GACT6pF,EAAIC,UAAUC,MAAQL,GAAQ1pF,EAClC,GClEJ,IAAe6G,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAM,iBAAO,CACT6kF,iBAAiB,EACjB5kF,SAAS,EACT6rB,aAAc/lB,EAAAA,EAAAA,MAAaklD,cAC9B,EACD/qD,QAAS,CACC2oF,WAAU,mIACc,OAApBxC,EAAOiC,KAAa,SACpBjC,EAAKT,kBAAkB,CACzBp/D,SAAU,KACZ,0CAJU,EAKhB,EACMsiE,cAAa,mIACW,OAApBzC,EAAOiC,KAAa,SACpBjC,EAAKT,kBAAkB,CACzBp/D,SAAU,GACVuiE,YAAa,WACf,0CALa,EAMnB,GAEJ7lF,MAAO,CACHymB,OAAQ,CACJvgB,WAAW,EACXjG,MAAM,EACAC,QAAO,SAAC2L,GAAK,6HAEkD,GADjE,EAAK81E,gBAAkBv6E,GAAAA,EAAAA,gBACvBG,aAAaE,QAAQ,wBAAyBoE,EAAM4nC,MAAMvsC,QAEtD,EAAKy6E,gBAAiB,CAAF,+BACd,EAAKtyE,QAAQxT,KAAK,WAAU,6BAElCuL,GAAAA,EAAAA,SAAsB,KAAK,0CAPhB,EASnB,MCvCwR,MCOhS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,uCClBuK,W,IAAe,OAAG,EAAI,W,OAAazI,EAAAA,MAAY,iBAAa,CAAClB,MAAM,CAACH,MAAOrB,EAAI6pF,GAAAA,+BAAY,CAACtnF,iBAAS,qBAAmC,KAAC,kBAAyB,QAAE,YAAK,cAA6F,MAAOE,CAAeD,MAAI2Y,EAAAA,YAAE,SAAK,SAAiB,GAACrb,EAAK,YAAC,C,aAA6C,gB,CAAuB,0EAAC,OAAM,EAAG,WAAYsR,CAA8D,IAAG3O,GAAsD3C,CAAAA,EAAM,MAAC,OAAgC,WAAgBE,YAAI8V,EAAa,EAAC,KAAS,EAAI,EAAS,MAAU9V,cAA2G,oE,IAAG,GAAC,iC,MAAC,C,aAAmD8pF,EAAAA,aAA0B,8BAAE,kBAACnhF,QAAY3I,EAAIoQ,QAAK5N,QAAI,EAAS,gF,GAAyB,C,qBAAY,SAAc,G,OAAM,EAAC,qB,eAAkB,MAAU,C,IAAsC1C,U,YAAiB,G,IAAU,EAAQ,U,MAAY,kBAAC6C,MAAG,CAAC,MAAQ,MAA2D,iCAAC,OAAI3C,UAAO,EAA4BF,MAAM,a,GAAmE,CAAqD,MAAQ,YAAY,sCAAG,I,GAA2B,mBAAWiqF,EAAAA,EAAAA,EAAqB,C,MAAA,CAAC,sDAAI/pF,QAAO,QAAc,oDAAU,GAAC,CAAM,MAAMgqF,SAAkB,GAAS,OAAC,uBAAoBA,IAAuBtoF,CAAAA,EAAU,GAAC,cAAmB,KAClqD,OACGtB,MAAAA,EAAAA,kBAEJ,SAAe,SAAiB,G,gFCuDhC,IACA42D,OAAAA,KACAC,cAAAA,CACA5tD,GAAAA,KACAksD,iBAAAA,KACA2B,kBAAAA,GAAAA,MAAAA,QAAAA,SAAAA,SAAAA,GAAAA,UAAAA,UAEA+yB,cAAAA,GACAC,eAAAA,GACAC,qBAAAA,GAEA,IACA1hF,MAAAA,SAAAA,GACA,4CAAAosB,iBAAAA,WACA,EACAh0B,KAAAA,WACA,OACAwa,eAAAA,KACAvF,cAAAA,GACApK,SAAAA,KACAwnB,QAAAA,GACArd,aAAAA,KACAu0E,SAAAA,EACAJ,kBAAAA,CACA3gF,GAAAA,KACApG,KAAAA,KACAonF,OAAAA,CAAAA,EACAC,SAAAA,KACAr1E,MAAAA,GACA4kD,qBAAAA,EACA0wB,uBAAAA,GAEAV,YAAAA,EAEA,EACAllF,UAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,GACA0rB,EAAAA,GAAAA,IAAAA,KAAAA,CAAAA,EAAAA,CACAwE,iBAAAA,WACA,qDACA,EACA21D,cAAAA,WACA,yBACA,OACA,qBACA,OACA,aACA,OACA,eACA,QACA,SAEA,IAEAxoF,QAAAA,WACA,mBACA,wBACA,EACA+B,MAAAA,CACAymB,OAAAA,CACAvmB,QAAAA,SAAAA,EAAAA,GAAA,WACA,uEACA,qDACA,wBAQA,GAPA,6BACA,8CACA,kCAEA,sBACA,gGAEA,eACA,6EACA,IACA,+BACAoF,GAAAA,EAAAA,SACApG,KAAAA,EAAAA,YAGA,CACA,mBACA,IACA,kDACA,gBAEA,EACAe,MAAAA,EACAiG,WAAAA,IAGAlJ,QAAAA,CACA0pF,uBAAAA,EAAAA,GAAAA,IAAAA,2BAAAA,WAAA,qIACA/4E,EAAAA,EAAAA,KAAAA,IACAzF,+BAAAA,OAAAA,EAAAA,YAAAA,OAAAA,IACA4C,MAAAA,SAAAA,GACA,uBACA,kBACAoG,EAAAA,kBAAAA,GAAAA,IAAAA,EAAAA,oBAEA,SAYA,OAXA,2BACAA,EAAAA,cAAAA,SAAAA,SAAAA,GACAy1E,EAAAA,KAAAA,CACArhF,GAAAA,EAAAA,GACAksD,iBAAAA,EAAAA,iBACA2B,kBAAAA,GAAAA,IAAAA,EAAAA,oBAEA,IACAjiD,EAAAA,cAAAA,GAEAjG,EAAAA,KAAAA,MAAAA,EACA,MACA,WApBA,8EAqBA,qDAtBAy7E,IAuBAE,mBAAAA,EAAAA,GAAAA,IAAAA,wBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,kGACAj5E,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,MAAAA,SAAAA,GAAA,kDACA,sBACA,gGACA,iDAEAo4E,mBAAAA,SAAAA,GAAA,WACA,sBACA,sBACA,+FAEA,EACAzS,aAAAA,EAAAA,GAAAA,IAAAA,kBAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,oGACA3lE,EAAAA,EAAAA,KAAAA,IAAAA,0CAAAA,MAAAA,SAAAA,GAAA,4CACA,gBACAk5E,EAAAA,KAAAA,QAAAA,MAAAA,SAAAA,GAAA,wCACA,IACA,+BAAAvhF,GAAAA,EAAAA,SAAApG,KAAAA,EAAAA,cAEA,iDAEA8mF,qBAAAA,EAAAA,GAAAA,IAAAA,8BAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,KAAAA,MAAAA,SAAAA,IAAA,6EAIA,GAJA,SAEA,mDACA,kDAGA,0DACAr4E,EAAAA,EAAAA,KAAAA,IAAAA,+BAAAA,OACA,kEACA,wBACA,QACA7P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,qCAAA,wCAEA6P,EAAAA,EAAAA,KAAAA,KAAAA,+BAAAA,OACA,uEACA,wBACA,SACA7P,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCAAA,QAGA4P,EAAAA,KAAA,KACA,4DACAmkD,GAAAA,OAAAA,GAAAA,EAAAA,KAGAA,GAAAA,cAAAA,GAAAA,EAAAA,KAGAA,GAAAA,0BAAAA,GAAAA,EAAAA,KAGAA,GAAAA,YAAAA,GAAAA,EAAAA,KAGAA,GAAAA,wBAAAA,GAAAA,EAAAA,KAGAA,GAAAA,eAAAA,GAAAA,EAAAA,KAGAA,GAAAA,2BAAAA,GAAAA,GAAA,cAjBA,OAAAnkD,EAAAA,qBAAAA,OAAAA,KAAAA,4BAAAA,UAAA,6BAGA,OAAAA,EAAAA,kBAAA,6BAGA,OAAAA,EAAAA,mBAAAA,OAAAA,KAAAA,4BAAAA,eAAAA,WAAA,6BAGA,OAAAA,EAAAA,mBAAA,6BAGA,OAAAA,EAAAA,oBAAAA,OAAAA,KAAAA,4BAAAA,eAAAA,WAAA,6BAGA,OAAAA,EAAAA,mBAAA,6BAGA,OAAAA,EAAAA,oBAAAA,OAAAA,KAAAA,4BAAAA,eAAAA,WAAA,6BAGAA,EAAAA,WAAA,QAEA,2EAEA9P,EAAAA,EAAAA,IAAAA,gEAAA,6DCjP8P,M,sBCA/C,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4B,GAAU,W,IAAgB7B,EAAM,K,EAAC,EAAO,MAAKsR,G,OAA0C,iBAAiB,C,MAAyC,CAAsB,kDAACzI,QAAY3I,EAAIoQ,GAAG,yCAAE5N,QAAI,EAAS,S,YAAuBxC,EAAI0Q,GAAG,E,IAAgB,U,GAAmD,WAAE,4BAAC0B,QAAM,oCAAoB3P,EAAe3C,OAAM,IAAC,MAAO,I,CAA+C,OAAW,C,MAAe,CAAuB,QAAY,aAAK,uBAAC,QAAY,cAAO,SAAQ,UAAmB,kBAAG,YAAC,OAAC,MAAQ,oB,GAAiE,CAAC,kBAAM,OAAC,QAAa,yBAACA,KAA6D,QAAC0B,MAAM,CAACH,MAAOrB,EAAIqB,GAAK,wC,MAAoD,CAA8C,MAAC,8BAACK,SAAU,SAAC,GAA6B,yCAAIe,EAAe3C,WAAM,iCAA6B,OAAW,C,MAAS,CAAuB,QAAY,MAAC,OAAU,GAAC,QAAY,QAAa,SAAQ,UAAW,wBAAG,YAAC,aAAC,MAAQ,Y,UAA4F,SAAEuc,G,OAAM,gDAAE,QAAG,+CAChqC,MAGD,E,QCyCA,IACAhc,MAAAA,CACAgB,MAAAA,OACAga,eAAAA,OACAvF,cAAAA,GACAD,aAAAA,OACAqd,QAAAA,MACApyB,QAAAA,QACAspF,QAAAA,SAEAzlF,SAAAA,CACAkmF,iBAAAA,WACA,qCACA,qBADA,IAEA,EACAC,wBAAAA,WACA,mBACA,IC9DqQ,M,uBCA/C,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYroF,GAAOK,WAAS,MAAU,KAAgBhD,EAAK,EAAC,S,OAAC,iBAAe,C,MAAiC,CAAoD,MAAS,EAACE,GAAIc,iCAAQ,gDAAC6H,QAAY3I,EAAIoQ,S,YAAsB,KAAU,E,IAAC,U,GAA+B,WAA0B,MAAG,sBAAC,yBAAa,EAAc3N,OAAG,IAAgB3C,MAAM,I,CAAC,OAAYuB,C,MAAW,CAAqD,mBAAG,MAAC,4C,GAA0B,C,MAA8C,SAAEgb,GAAM,OAAG,yDAAK,MAE/hBjc,EAEJ,E,MCwBA,IACAC,MAAAA,CACAgB,MAAAA,OACAwU,aAAAA,OACAk1E,eAAAA,MACA73D,QAAAA,MACApyB,QAAAA,SAEAD,KAAAA,WACA,OAAAmqF,QAAAA,KACA,GCtC+P,M,uBCA/C,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2O,W,MAA+B,K,EAA+E,EAAE,S,OAAC,kB,MAAM,CAAO,MAAM,EAAI,qCAAIvoF,QAAW,EAAEA,GAAG,oCAAe3C,QAAM,W,YAAmB,OAAE,cAAI2C,GAAG,WAAqB3C,MAAM,sBAAC,UAAcgB,EAAAA,qBAAO,sCAAsB,EAAC6H,OAAAA,IAAqBnG,MAAI,I,CAAUoG,EAAE,KAAC,QAAU,C,MAAC,C,MAAoD,G,KAAE,K,GAAY,KAAK,C,MAAcpH,C,QAAY,EAAExB,Q,KAA+BuC,e,YAAyE,O,iBAAuC,WAAC,MAAM,GAAG,WAAS,iBAACzC,MAAM,CAAC,KAAO,MAAM,CAAC2C,EAAG,KAAO,CAACwK,MAAAA,CAAa,cAAc,oBAAiB,qBAAIjN,EAAM,KAAKkS,EAAGlS,MAAO,wBAAkFF,EAAO,WAAO,gCAAQE,GAAIirF,EAAAA,GAAAA,EAAQ9yE,CAA6BrY,MAAM,CAAC,KAAQ,MAAK6I,CAAAA,EAAAA,OAAY3I,C,YAAa,CAAY4I,cAAG,oB,GAAiB,KAAQnG,GAAG,EAAK,GAACzC,uDAA+B,mB,MAACF,C,KAAO,M,CAAqB,I,EAAN0B,OAAM,e,cAA+Be,I,YAAmD,O,mBAA+B,YAAC,IAAG,EAAI,wCAAI,MAAK,CAAqB,SAAc,IAAsFlB,MAAW6pF,CAAmB3oF,MAAS,oBAAoB2oF,SAAAA,SAAqB,GAAC,qBAACxpF,EAA8B,mCAA0B,GAAC,IAAU,mBAAG,CAACe,EAAG,UAAW,oEAAC3C,MAAM,CAAC,MAAO,EAACE,kBAAW,kBAAiB,GAAC,oBAAkB,CAAC,EAAwD,WAAW,wBAA0B,GAAC,Q,MAAC,C,KAAyB,M,QAA6E,C,MAAS,C,MAAI,2BAAE,mBAACwB,MAAM,8CAACH,UAAWA,EAAM4T,mB,GAAuCjV,CAAwC,MAAC,YAAC0B,OAAAA,EAAW,8CAAoB,4CAAS,OAAQ01D,MAA2D,GAAqB51D,MAAM,CAACH,MAAOrB,EAAImrF,MAAAA,MAAY,OAAC5oF,SAAS,SAAUynB,GAAMhqB,EAAImrF,KAAAA,EAAAA,MAAYnhE,MAAG,aAAEtoB,WAAW,yBAAkB,IAAGe,GAAG,mBAAQ,gBAAC3C,MAAM,CAAC,KAAO,MAAM,CAAC2C,EAAG,KAAU,CAAE3C,MAAM,CAAC,MAAO,EAACE,YAAY,kBAAuB,GAAC,cAAY,CAAa,EAAiB,WAAW,kBAAoB,GAAC,Q,MAAC,C,KAAyB,M,GAA0D,KAAG,C,MAAA,CAAE,gBAACwB,aAAM,WAACH,YAAWipF,aAAU/nF,MAAQ,S,UAAqB+nF,EAAStgE,a,GAAKtoB,CAAqB,kBAAM,OAAK,EAAC1B,MAAQ,SAAI,QAAY,OAAQ,gBAAM,SAAC,IAAW,GAAqBwB,MAAM,CAACH,MAAOrB,EAAImqF,SAAqB5nF,SAAS,SAAUynB,GAAMhqB,EAAImqF,SAAAA,CAAuB,EAAEzoF,WAAW,eAA0B,IAAGe,GAAG,EAAO,KAAC,gBAAC3C,MAAM,CAAC,KAAO,MAAM,CAAC2C,EAAG,MAAgB3C,MAAM,CAAC,QAAU,oBAA0B,SAAO,SAAQ,GAAC,sBAAe,CAA0C,EAAG,WAAC,0B,GAA0B,OAAWmG,C,MAEp9FgP,C,KAA6BsgD,M,GAA0B,KACzD,C,MAAA,CAAE,gCAAC/zD,KAAM,SAACH,MAAOrB,EAAIqB,GAAK,2C,GAAgErB,CAAgE,MAAC,YAAC0B,OAAAA,EAAW,8CAA4C,4CAAQe,iBAAW,MAAkB,GAA2B3C,MAAM,CAAC,MAAO,EAACE,MAAO,qCAA0C,SAAU,SAAG,GAAC,OAAU,EAAI,+CAAC,EAAe,WAAW,iDAChUwB,GAAM,Q,MAAM,CAAmDe,KAAQ,M,CAAkF,EAAC,oB,MAACb,CAAwD,qDAAI,SAAQ1B,GAA0D,SAAU,EAASwC,KAAI2Y,QAAE,UAAY,EAAC,yF,MAAQ,CAAU,oDAAG,SAAI,SAAQ,GAACrb,EAAK,KAAC,kD,EAAW,6DAAuBA,IAAK,GAAC,gD,OAAC,OAAW,C,IAAyB,G,CAAgB,OAAQE,CAAgD,MAAC,CAAG,KAAC,O,EAA0B,KAAOA,C,MAE1mBiV,C,KAA6BsgD,M,GAA0B,KACzD,C,MAAA,CAAE,gCAAC/zD,KAAM,SAACH,MAAO8vE,EAAM,GAAC5b,2C,GAA2Cv1D,CAAyC,MAAC,YAAC0B,OAAAA,EAAW,8CAAyB,4CAAQe,iBAAW,MAAkB,GAA2B3C,MAAM,CAAC,MAAO,EAAKsR,iBAA6C,SAAU,SAAG,GAAC,OAAU,EAAI,qBAAC,EAAe,WAAW,8BAAmD,WAAC5P,MAAM,CAACH,KAAO8vE,M,GAAmDnxE,mBAAiB,C,MAA0B,CAAC0B,MAAAA,EAAW,6CAA0B,YAAI,SAAO,EAAS5B,KAAM,QAAC,UAAO,sBAAG,uBAAgB4C,MAAAA,CAAmB5C,MAAM,oBAAC,SAAS,YAAC,OAAQ,wBAAQ,EAAG,WAAC,+B,GAA0B,OAAWsrF,C,MAAuB,CAAC,WAAiD3oF,CAAE,EAAC,IAAO,CAAc3C,YAAM,OAAC,MAAM,CAAI,QAAM,MAAQ,SAAS,IAAoB,MAAS,YAAC,OAAU,mBAAC,IAAuC,CAAC,kC,IAAC,OAAQ,S,MAAiB,CAAyB,WAAI,CAAC2C,EAAG,KAAU3C,MAAM,CAAC,MAAO,YAAE,QAAIE,MAAO,GAA+F,iCAAa,IAAS,MAAM,YAC/nC,uBACGI,I,0JCJEi3D,GAA+BzwD,EAAAA,EAAAA,iBAAwB,uBAI7D,IACIvG,MAAO,CACHgB,MAAOsC,OACPkS,aAAclS,OACd7C,QAAS,CACLf,KAAMoD,QACN3C,SAAS,IAGjBK,KAAI,WACA,MAAO,CACHqqF,mBAAmB,EACnBf,qBAAqB,EACrBkB,UAAWhzE,GAAON,MAAMuB,QAAQ,SAASwoC,SAAS,EAAG,UAAUhpC,SAC/DwyE,gBAAiBjzE,GAAON,MAAMuB,QAAQ,SAASwoC,SAAS,EAAG,UAAUhmC,cACrEyvE,UAAWlzE,GAAON,MAAMuB,QAAQ,SAASJ,IAAI,EAAG,UAAUJ,SAC1DqyE,aAAa,EACbb,SAAU,KACVkB,QAAS,GAEjB,EACAxpF,QAAO,WACHC,KAAKwpF,YACT,EACA1qF,QAAS,CACL2qF,aAAY,WACR,GAAKzpF,KAAKZ,OAAUY,KAAKZ,MAAM4T,MAAMg1E,cAArC,CACA,IAAMhoD,EACFhgC,KAAKZ,MAAM4T,MAAMg1E,cAAc9xE,OAAS,EAClC,IAAIiC,KACA3H,KAAK+P,IAAG,MAAR/P,MAAI,QACGxQ,KAAKZ,MAAM4T,MAAMg1E,cAAch7E,KAAI,SAAC08E,GACnC,OAAO,IAAIvxE,KAAKuxE,EAAGz0B,kBACvB,OAGRj1D,KAAKspF,UACftpF,KAAKZ,MAAM4T,MAAMg1E,cAAcrqF,KAAK,CAChCyJ,IAAK,EACLksD,iBAAkBtzD,KAAKZ,MAAM4T,MAAMgiD,cAAc1B,iBACjD2B,kBACIj1D,KAAKZ,MAAM4T,MAAMg1E,cAAc9xE,OAAS,EAClCE,GAAO4pB,GAAS/oB,IAAI,EAAG,UAAUJ,SACjC7W,KAAKspF,YAEnBtpF,KAAKgE,MAAM,QAAShE,KAAKZ,MAnBiC,CAoB9D,EACA+pF,aAAY,SAACja,EAAQ33D,GACZvX,KAAKZ,OAAUY,KAAKZ,MAAM4T,MAAMg1E,gBACrChoF,KAAKZ,MAAM4T,MAAMg1E,cAAgBhoF,KAAKZ,MAAM4T,MAAMg1E,cAAcjxE,QAAO,SAACkT,EAAG/Q,GAAC,OAAKA,IAAM3B,CAAK,IAC5FvX,KAAKgE,MAAM,QAAShE,KAAKZ,OAC7B,EACAoqF,YAAY9hE,EAAAA,GAAAA,IAAQ,wBAAsB,uBAAE,oGACnBjY,EAAAA,EAAAA,KAAAA,IAAe,gBAAgB7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAAvEoB,KAAKupF,QAAU,EAAH,uDAGpBznF,MAAO,CACH1C,MAAO,CACH4C,QAAO,WACH,GAAKhC,KAAKZ,OAAUY,KAAKZ,MAAMgpF,OAAOhhF,GAE/B,CACH,IAAM4L,EAAQhT,KAAKZ,MAAM4T,MACzBhT,KAAKkoF,oBACDloF,KAAKkoF,qBAAgD,OAAxBl1E,EAAMgiD,eAA0BhiD,EAAMgiD,cAAc5tD,GACrFpH,KAAKipF,kBAAoBjpF,KAAKipF,mBAAqC,MAAhBj2E,EAAM+hD,OACpD/0D,KAAKZ,MAAM4T,MAAMgiD,gBAAeh1D,KAAKZ,MAAM4T,MAAMgiD,cAAgB,CAAC,GACnEh1D,KAAKkoF,qBAA+C,OAAxBl1E,EAAMgiD,gBAA2BhiD,EAAMgiD,cAAc5tD,KACjF4L,EAAMgiD,cAAc5tD,IAAM,GAE9BpH,KAAKqoF,SAAWroF,KAAKZ,MAAMipF,SAC3BroF,KAAKkpF,cAAgBlpF,KAAKZ,MAAMipF,Q,MAXhCroF,KAAKkoF,qBAAsB,CAanC,EACAlgF,WAAW,EACXjG,MAAM,GAEVmmF,oBAAmB,SAACngF,GAChB/H,KAAKZ,MAAM4T,MAAMk1E,oBAAsBngF,CAC3C,EACAkhF,kBAAiB,SAAClhF,IACTA,GAAO/H,KAAKZ,MAAM4T,QAAOhT,KAAKZ,MAAM4T,MAAM+hD,OAAS,KAC5D,GAEJryD,UAAU,QACNsmF,OAAM,WACF,IAAMA,EAAS,CAAC,CAAE5hF,GAAI,KAAMpG,KAAM,cAMlC,OALIhB,KAAK4T,cAAgB5T,KAAK4T,aAAa+1E,eACvC3pF,KAAK4T,aAAa+1E,cAAc1wE,SAAQ,SAAC87C,GACrCi0B,EAAOrrF,KAAK,CAAEyJ,GAAI2tD,EAAQ/zD,KAAM+zD,GACpC,IAEGi0B,CACX,EACA7zB,iBAAgB,WACZ,OAAOC,IAAgCp1D,KAAK8qB,YAAYO,iBAAiB,sBAC7E,IACG+C,EAAAA,GAAAA,IAAU5C,MC1GyR,M,uBCAxF,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5BrsB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,eAAe,CAAC3C,MAAM,CAAC,MAAQE,EAAIoR,GAAG,+BAA+B,QAAUpR,EAAIoR,GAAG,iCAAiC,QAAUpR,EAAIc,SAAS6H,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,UAAU,KAAK,CAAC,QAAU1Q,EAAIsW,KAAK7V,QAAQ,EAAE2R,OAAM,IAAO,MAAK,IAAO,CAAC3P,EAAG,WAAW,CAAC3C,MAAM,CAAC,QAAUE,EAAImc,MAAMC,GAAG,gBAAgB5a,MAAM,CAACH,MAAOrB,EAAIsW,KAAM/T,SAAS,SAAUynB,GAAMhqB,EAAIsW,KAAK0T,CAAG,EAAEtoB,WAAW,WAAW,EAC7e,EACItB,GAAkB,GCsBtB,IACAC,MAAAA,CACAgB,MAAAA,OACAwU,aAAAA,OACAk1E,eAAAA,MACA73D,QAAAA,MACApyB,QAAAA,SAEA0F,WAAAA,CAAA22E,QAAAA,IACAt8E,KAAAA,WACA,OACAyV,KAAAA,CAAA7V,OAAAA,EAAAI,KAAAA,IAEA,EACAmB,QAAAA,WACA,gEACA,mBACA,OAAA+6E,IAAAA,EAAAA,GAAAC,MAAAA,EAAAA,GAAAC,QAAAA,CAAAA,gBACA,GACA,EACA56E,UAAAA,WACA,SACA,oCACA,2CACAwpF,EAAAA,KAAAA,EACA,IACA,sDAAA52E,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,KAAAA,MAAAA,OAAAA,CAAAA,EAAAA,CAAAi1E,eAAAA,MACA,GCnD6P,M,uBCA/C,GAAe,KCOzN,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB2F,GAAK,W,IAAkCxnF,EAAAA,KAAsB,EAAK,EAAI1C,MAAM,G,OAAoG,EAAC,M,YAAW,2BAAG,6BAAE,YAAK,WAAeF,CAAAA,EAAK,GAAC,qF,MAAK,CAAY,cACtW,kBACGM,MAAAA,CAEJ,GAASgB,c,mFCJmM,GAAe,KCCvN,GAAS,CAAC,EAKV,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCrBYqB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkB,oB,OAAC,OAAY,C,MAAO,CAAgB,YAAY,OAA4B,WAAazC,GAA+B,sCAAG,WAAC,8BAA2B,GAAC,CAACwB,MAAM,kB,MAAkCe,C,MAA6BupF,EAAAA,qBAAwB,SAAC,YAACpqF,EAAAA,qBAAW,CAAsB,EAAIe,WAAG,yB,CAAsB,gBAAYspF,C,MAAmB,CAA4C,2BAAG,QAAC,iC,GAA0B,CAAoD,kBAAC,4CAAItpF,I,CAAsB,gBAAQ,C,GAAiB,CAAgC,kBAAC,2BAAI,MAE7pBrC,IAAAA,EAEJ,E,MCCA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAI,WACA,MAAO,CACHirF,sBAAsB,EACtBE,iBAAkB,KAClBD,mBAAoB,KAE5B,EACAhrF,QAAS,CACL45E,eAAc,SAAC9hC,GACNA,IACD52C,KAAK6pF,sBAAuB,EAC5B7pF,KAAK+pF,iBAAmB,KACxB/pF,KAAK8pF,mBAAqB,MAE9B9pF,KAAKgE,MAAM,QAAS4yC,EACxB,EACAozC,sBAAsBtiE,EAAAA,GAAAA,IAAQ,oBAAmB,yCAAE,WAAgBtgB,GAAS,gGAEpCsa,GAActa,GAAG,OAAjDpH,KAAK8pF,mBAAqB,EAAH,KACvB9pF,KAAK62C,OAAS72C,KAAK8pF,mBAAmB9oF,KAAK,oDAE3CtB,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,wCACnBnP,KAAK04E,gBAAe,GAAO,yDAElC,mDARgD,KAUrD52E,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACAxuB,KAAK+pF,mBAAqBv7D,EAAGpP,OAAO6qE,eACxCjqF,KAAK+pF,iBAAmBv7D,EAAGpP,OAAO6qE,cAAgB,KAClDjqF,KAAK6pF,uBAAyB7pF,KAAK+pF,iBAC/B/pF,KAAK8pF,oBAAsB9pF,KAAK8pF,mBAAmBjvE,KAAO7a,KAAK+pF,kBAC9D/pF,KAAK+pF,kBACV/pF,KAAKgqF,qBAAqBhqF,KAAK+pF,kBACnC,EACA/hF,WAAW,EACXjG,MAAM,MC3CsR,M,uBCAxF,GAAe,KCO3N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4LlE,GAAM,W,IAAC,O,EAAkB,QAAS,GAAK,QAAgB,Y,OAAE,QAAG,YAAQ,UAAgB4C,MAAAA,CAA0B1C,QAAU,EAACA,UAA2G,CAACA,EAAG,WAAQA,CAAsFwB,KAAK,Y,CAAEH,EAAAA,GAAAA,EAAe,C,MAACkB,C,MAAgC,UAAI,OAAC,KAACb,cAAW,OAASe,GAAG,QAAgB,CAAiC,YAAU,a,CAASD,EAAG,GAAC2sD,IAAO,2D,YAAO,a,GAAC,GAAI,IAAK3sD,EAAAA,GAAAA,EAAAA,WAAAA,EAAAA,WAAAA,kBAAAA,OAAAA,OAAAA,EAAAA,GAAAA,EAAAA,C,MAAG,CAAE,MAAK,MAAU1C,SAAM,YAAC,MAAO,CAAE,EAAE,WAAY,QAAwHA,CAAAA,EAAK,MAAC,yB,OAAC,EAAO,KAAKuB,CAAM,MAAS,IAAY,OAAM,GAAK,QAEr7BjB,CAAAA,EAAAA,EAAAA,EAAAA,CAEJ,MAASgB,C,4MCAT,IAAemF,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAIA,EAAI/xB,MACG+xB,EAAI/xB,MAAM0b,KAEVqW,EAAIhiB,GAAG,+BAEtB,EACA/Q,MAAO,CACHgB,MAAOsC,OACP7C,QAAS,CACLN,SAAS,EACTT,KAAMoD,UAGduD,MAAK,SAAC6T,GACF,IAAM40C,EAAc,KACdpiC,EAAcU,KACduiC,GAAOrrD,EAAAA,EAAAA,WAAS,iBAClB,CACI,CAAEnC,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,sCAC1CiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GAAC,IAEhBovD,GAAgB5/D,EAAAA,EAAAA,MAAI,GACpBoV,GAAavX,EAAAA,EAAAA,WAAS,WACxB,OAAO4V,EAAElZ,KACb,IACA,MAAO,CAAE8tD,IAAAA,EAAKa,KAAAA,EAAMjjC,YAAAA,EAAa25C,cAAAA,EAAexqD,WAAAA,EACpD,IChCmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYzZ,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAkC,oB,OAAC,EAAM,WAAG,S,MAAC,CAAqB,QAAIA,MAAG,gBAAmD3C,CAAAA,EAAK,+BAAC,C,YAAC,O,MAAkD,CAA0D,yBAAsB,uBAAmB,wDAAC6I,QAAY3I,EAAIoQ,KAAKpQ,GAAIib,oB,YAAoC,KAAU,mB,IAAC,Y,GAA+BzZ,W,MAAOH,CAAAA,EAAOrB,mBAAY,C,MAACuC,C,MAA6B0Y,EAAAA,QAAW,SAAC,YAACvZ,EAAAA,QAAW,CAAS,EAAI,wBAAa,EAAkBF,OAAM,GAACH,MAAOrB,MAAI+9E,G,MAAcx7E,C,MAA6Bw7E,EAAAA,aAAgB,SAAC,YAACr8E,EAAAA,aAAW,CAAc,EAAI,WAAO,mBAA6B,0BAAsB,C,MAAC,CAAwB,aAAc1B,QAA6B,oBAAG,YAAC,4BAAiC,IAAIyC,MAAG,0BAAsC3C,EAAK,kBAAC,C,YAASE,O,MAAoB,CAAyC,wBAA4C,UAAe,KAAI,GAACuvB,mBAAY,0CAAI,gBAAG,mBAEtjCnvB,EAEJ,E,MC6BA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACRuyC,6BAAAA,GACAwmC,iBAAAA,GACA7tC,gBAAAA,GACAH,mBAAAA,IAEJlxC,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCuD,MAAK,SAAC6T,GACF,OAAyBysB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACN0nD,GAAej3E,EAAAA,EAAAA,KAAuB,CACxCqT,aAAc,KACdO,iBAAkB,KAClBlC,YAAavG,GAAAA,QACbuI,YAAa,GACboB,YAAalG,GAAiBoB,oBAE5Bye,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7Bu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCyhC,GAAuBzhC,EAAAA,EAAAA,KAAkB,CAC3C2O,GAAAA,aACAA,GAAAA,QACAA,GAAAA,QACAA,GAAAA,MAEE00B,GAA2BrjC,EAAAA,EAAAA,KAAwB,CACrD4O,GAAiBoB,kBACjBpB,GAAiBU,cACjBV,GAAiBQ,WAGfspE,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,0GA+C3B,GA9CKqoD,EAAOnkE,EAAElZ,MACXggB,EAASsoB,GAA2Bo0C,EAAa18E,OACjDq9E,EAAK7jE,gBAAgB1C,SACrBkJ,EAAOxG,gBAAkBlB,GACrB0H,EAAOxG,gBACP6jE,EAAK7jE,gBAAgB5L,KAAI,SAAC+iB,GAAC,OAAKA,EAAE3oB,EAAE,MAGxCq1E,EAAKnhE,mBAAmBpF,SACxBkJ,EAAO3F,aAAe/B,GAAyB0H,EAAO3F,aAAcgjE,EAAKnhE,qBAEzEmhE,EAAK1nE,YAAYmB,SACjBkJ,EAAOrG,eAAiBrB,GAAyB0H,EAAOrG,eAAgB0jE,EAAK1nE,cAE7E0nE,EAAK5nE,kBAAkBqB,SACvBkJ,EAAOvK,kBAAoB6C,GACvB0H,EAAOvK,kBACP4nE,EAAK5nE,kBAAkB7H,KAAI,SAACsL,GAAC,iBAASA,EAAC,UAG3CmkE,EAAKhoE,QAAQyB,SACbkJ,EAAOtG,YAAcpB,GAAyB0H,EAAOtG,YAAa2jE,EAAKhoE,UAEvEgoE,EAAK/jE,kBACL0G,EAAO1G,gBAAkBhB,GACrB0H,EAAO1G,gBACP+jE,EAAK/jE,gBAAgB1L,KAAI,SAACujB,GAAC,OAAKA,EAAEnpB,EAAE,MAGxCq1E,EAAKrhE,gBACLgE,EAAOvG,WAAanB,GAChB0H,EAAOvG,WACP4jE,EAAKrhE,cAAcpO,KAAI,SAACsL,GAAC,OAAKA,EAAElR,EAAE,MAGtCq1E,EAAKphE,gBACL+D,EAAOzG,WAAajB,GAChB0H,EAAOzG,WACP8jE,EAAKphE,cAAcrO,KAAI,SAACujB,GAAC,OAAKA,EAAEnpB,EAAE,MAGtCq1E,EAAK1iE,eACLqF,EAAO5F,YAAc9B,GAAyB0H,EAAO5F,YAAaijE,EAAK1iE,eAEvE0iE,EAAKloE,SAGLY,MAAMC,QAAQ0mE,EAAa18E,MAAMua,aAAc,CAAF,sBAAQ,IAAI+hB,MAAM,sCAAqC,QAEzC,GADzD/hB,EAAcmiE,EAAa18E,MAAMua,YACvCyF,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,mEACwC9Z,QAAQ2H,IAAI,CAC3DqS,IAAS,kBAAKF,GAAM,IAAEzF,YAAAA,EAAa4F,OAAQ,CAAExP,GAAgBwwC,YAC7D/gC,GAAYJ,EAAQ08D,EAAa18E,MAAM8Y,aAAc4jE,EAAa18E,MAAMqZ,oBAC1E,iCAHKq4B,EAAa,KAAEG,EAAmB,KAInCF,EAAe1U,GAA+ByU,EAAe,CAAEnU,WAAY1B,GAAiBO,UAC5F0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DwjB,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACAgrC,EAAa18E,MAAMuoC,UAEvB3H,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAAM,6CACpE,qGAtEY,mCAwEZ2c,EAAuB,SAAH,GAAsD,IAAhD0J,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KAAMohC,EAAc,EAAdA,eACvClF,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCACVhnE,MAAMC,QAAQ0mE,EAAa18E,MAAMua,cACzCX,EAAQ5Z,MAAMzB,KAAK,CAAEyJ,GAAIg7B,EAAgBphC,KAAAA,EAAMlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAE3F,EAWA,OATA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,oBAC1CojE,GACJ,GACA,CAAEv1E,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAstB,qBAAAA,EACA4B,yBAAAA,EACAq1C,aAAAA,EACA/pD,qBAAAA,EACAlG,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR6lB,QAAAA,EAER,IC3KmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClByD,GAAU,W,IAA8BniC,EAAM,K,EAAC,EAAO,MAAKsR,GAAgC,EAAC,kB,OAAwB,aAAa,kB,MAAC,CAAqB,kCAAKpR,KAAI+sB,wBAAwDjtB,SAAM,GAAC,mBAAmB,K,CAAU,cAAa,sC,MAAC,CAAe,MAAQ,YAAI,IAAO,GAAI,SAAU,GAAC,UAAK,GAAwB,UAAI2C,MAAG,GAAkEC,MAAW,GAAQ5C,GAAM,2BAAW,kDAAE,YAAK,OAAgBA,MAAM,CAAC,MAAQE,KAAwE,mBAAE,MAAK,CAAiBF,MAAM,4BAAC,QAAQE,EAAImsF,GAAAA,4BAAcxjF,CAAAA,EAAAA,gBAAqB3I,C,MAAqD,CAAO4I,MAAG,gB,YAA2BnG,EAAG,kBAAc,gC,IAAC3C,O,YAAeyV,G,IAAK,S,MAAI,kB,MAAC,CAAyB,SAAI,IAAO,QAAO,EAAI,eAE14BnV,GAEJ,MAAe,MAAEA,M,kBCJ2BqC,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAgDC,EAAY,kBAAW,OAAM,EAAG,KAAY1C,CAAAA,EAAIoR,QAAG,iBAAoD1O,YAAY,aAAa,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,oCAAoC,OAAO,EAAG,KAAK,CAAE1O,YAAY,aAAa,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,qCAAqC,OAAO,EAAG,KAAK,CAAE1O,YAAY,aAAa,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,sCAAsC,OAAO3O,EAAG,KAAK,CAACC,YAAY,aAAa,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,sCAAsC,OAAK,EAAI,KAAC,CAAC1O,YAAY,aAAa,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,iCAAiC,OAAQ,EAAE,KAAM8W,CAAqE,YAAU,a,CAAM1lB,EAAG,GAAC+S,IAAKlM,EAAAA,GAAAA,EAAAA,GAAAA,iCAAAA,WAAAA,EAAAA,MAAAA,OAAAA,EAAAA,EAAAA,QAAAA,EAAAA,GAAAA,EAAAA,OAAAA,IAAAA,SAAAA,GAAE,OAAM,OAAQ,CAAgBvJ,IAAK,EAAC,I,CAAC,OAAI,kBAA6B,OAAIE,GAAM,mBAAmB,OAAM,EAAI,M,CAAiPwC,EAAG,GAACgwB,EAAAA,GAAAA,EAAAA,UAAAA,GAAAA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,GAAAA,wBAAAA,CAAAA,EAAAA,iBAAAA,EAAAA,KAAAA,CAAAA,EAAAA,GAAAA,EAAAA,GAAAA,EAAAA,GAAAA,uBAAAA,OAAAA,EAAAA,aAAAA,eAAAA,EAAAA,KAAAA,EAAAA,IAAAA,EAAAA,aAAAA,IAAAA,MAAAA,MAAAA,SAAAA,GAAC,OAAM,EAAG,OAAKxyB,CAAqF,IAAIuV,GAAmL,GAAOA,GAAAA,IAAAA,EAAAA,GAAAA,EAAAA,WAAAA,SAAAA,EAAAA,EAAAA,GAAAA,qBAAAA,OAAAA,EAAAA,YAAAA,OAAI,IAAG,GAAI,EAAC,wJAAG,KAAM,KAA2BtI,I,IAAa,aAAa,iBAAQ,YAAC,CAACnN,aAAM,UAAc,OAAIE,QAAU,MAEllDI,CAAAA,EAAAA,GAAAA,IAAe,EAAG,GAAE,+DAExB,E,MCDA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH6nB,MAAO,CACHnoB,KAAMqX,MACN5W,QAAS,MAEbM,QAAS,CACLf,KAAMoD,QACN3C,SAAS,MCXyR,M,uBCAxF,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2G,W,IAAYoI,EAAG,K,EAAgB,EAALjG,MAAE,G,OAAI,OAAW,C,MAAgB7C,C,WAAa,G,OAAG,I,YAA+C,OAAG,gBAAI2C,GAAG,SAAY,GAAgB3C,IAAM,OAAC,MAAI,aAA+D,OAAO,UAAyL,gCAA8BuB,GAAkC,MAAuMvB,CAAAA,EAAK,KAAC,S,MAAC,CAAmB,gE,CAAK,OAAU,OAASuc,CAAAA,EAAM,GAAC,sF,MAAC,CAAmC,iEAAG1T,CAAAA,EAAAA,GAAAA,EAAmB,CAAC,6H,MAAK,CAAUC,OAAG,S,GAAiB,CAA2M,oBAAI,2BAACpH,G,YAAuC,O,IAAmB,UAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,gIAAI,KAErwCtB,MAAAA,CAEJ,MAASgB,EAAQhB,W,+ECJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAsB9I,EAAM,Q,MAAC,GAAO,qBAAQ,C,MAA4B,CAAiD,MAAQ,iC,SAAYssF,EAAAA,GAAOnpF,+BAAK,MAAC,CAAC,OAAUjD,OAAImc,MAA4BxT,QAAY3I,EAAIoQ,MAAI,sB,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEvQ,EAAK,EAALA,QAAOO,EAAO,SAAEb,EAAI,EAAJA,MAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAuDQ,EAAAA,GAAAA,GAAK,yBAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAAoB,CAAc,MAAQS,EAAAA,OAAM,OAAkB,MAAQuI,EAAQ,UAAG,MAAC,G,GAA4BiI,C,QAAmB/Q,SAAIqsF,GAA8B,IAAC,qDAAC,GAAI,KAAiB,eAAgB,IACjiC,UAGD,E,MCJIjrF,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,6BAAuBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC3P,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,ICjC2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCwBhC,IACA6E,WAAAA,CAAAqL,iBAAAA,GAAAy6E,mBAAAA,IACAjsF,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEA4rF,OAAAA,CACArsF,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACAsrF,yBAAAA,SAAAA,IACAxqF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+CAAAA,CAAA0qF,WAAAA,EAAAA,QACA,uBACA,IC9D2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCiChC,IACA/lF,WAAAA,CACAgmF,mBAAAA,IAEA3rF,KAAAA,WACA,OACA4rF,WAAAA,EACA7kB,YAAAA,EACA2G,YAAAA,EAEA,EACAluE,MAAAA,CACAgB,MAAAA,SCnEmQ,M,uBCA/C,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCZhC,IAAekF,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAI,WACA,MAAO,CAAE6rF,iBAAiB,EAAOP,aAAc,GAAI5jE,YAAY,EACnE,EACA/hB,WAAY,CAAEmmF,aAAAA,GAAcC,WAAAA,IAC5B5qF,QAAO,WACHC,KAAKynB,aACT,EACA/kB,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACL2oB,aAAaC,EAAAA,GAAAA,IAAQ,iBAAgB,yCAAE,6GAELnG,KAAiB,OAA3CvhB,KAAKkqF,aAAe,EAAH,wDAEjBxqF,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,+BAA+B,wDAEzD,SANqD0Y,IAAc,sCAAdA,CAAc,CAA/B,OCtBkQ,M,uBCAxF,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBkT,W,IAAc,EAAK,KAAiB,aAAO,EAAQ,MAAC,Y,OAAM,EAAC,6B,MAAC,CAAS,iCAAI9pB,WAAO,SAAmB,EAAI,OAAIA,KAAOA,QAAoI,gCAAoC,QAAG,MAAKiQ,CAAkEvN,MAAW,cAAQ5C,KAAM,K,CAAe,MAAI,CAA0D,OAAI2C,SAAW,GAAE3C,GAAM,oBAAU,QAAE,MAAMK,CAA8GuC,KAAAA,KAAkF5C,CAAAA,EAAK,GAAC,4H,MAAC,CAAgB,cAAU,GAAC,MAAO,aAAM2C,EAAG,KAAO,EAAC,kDAAC3C,YAAM,O,MAAC,CAAgB,YAAI2C,GAAG,wBAAQ,kCAAqB,CAACA,EAAG,KAAU3C,MAAM,CAAC,KAAO,KAAkB,+FAAE,YAAS,QAAuG4C,CAAAA,EAAAA,gBAAY,2BAAS,MAAK,CAAY5C,MAAM,QAAC,SAAkB,U,CAAsB0C,EAAG,KAAC,C,MAAe,C,MAAc,W,QAAuD,C,YAAE,Q,OAAS,C,MAAG,CAAmD,QAAG,MAAM,U,CAAyBnB,EAAAA,GAAOrB,WAAI6sF,EAAU,oF,YAAU,U,GAAgB7sF,GAAAA,EAAI6sF,C,MAAc,CAACnrF,YAAW,OAAa,YAAa,EAAEe,GAAG,EAA6B3C,IAAM,YAAC,YAAO,GAAE,WAAIE,MAAO,GAAM,IAAIA,EAAIG,GAAG,aAAoB,CAAiL,MAAC,CAAC,KAAQ,KAAwC,MAAY,UAAM,+BAAC,IAAkB,oBAACqB,MAAM,CAACH,MAAOrB,EAAI8sF,UAAuBvqF,SAAS,SAAUynB,GAAMhqB,EAAI8sF,UAAAA,CAAyB,EAAEprF,WAAW,cAA2B,GAAG,KAAKe,CAAAA,EAAG,SAAgB,IAAK,CAAS3C,MAAM,CAAC,KAAO,KAAI6C,CAAE,EAAC,8K,MAAC,C,MAA6BkqF,eAAiB,qBAAC,mBAAIpqF,aAAY,M,MAAQ,CAAS,8BAAIzC,SAAO,SAAoBG,GAA4CL,EAAM,uBAAC,EAAsC,uCAAK,OAAQ,QAASuc,CAAAA,EAAM,IAAC,C,MAAC,CAAuC,SAAG,GAAI,CAAWvc,MAAM,YAAC,EAAM,WAAC,CAAE,IAA8IA,CAAAA,EAAK,IAAC,C,MAAC,CAAuB,KAAOE,KAA4E,wDAAG,MAAI,CAAkBF,UAAM,yB,GAAwB,CAAwB,eAAkBssF,GAAyC,qCAAI,I,CAAsB,MAAQ,C,MAAG,CAAU,KAAO,KAAS,CAACpsF,EAAIG,GAAG,6DAA8E,UAAO8+B,CAAqBx8B,UAArBw8B,EAAO,QAAiB,uBAAkB,CAACv8B,MAAAA,CAAmB5C,WAAM,UAAC,KAAO,EAAI,aAAiB,YAAc6gD,EAAI,OAAI,qBAAqB,WAAiE,mBAAoBpxB,C,MAAa,CAA8D,qBAAsB,oBAAG,YAAI,EAAc,wCAAoBzvB,EAAM,M,MAAC,CAAgC,MAAS,GAAmC,QAAgE,c,CAA+F,qFAAoB,yCAAE,mBAAG,MAAK2C,CAAoB,MAAC,kBAAC,QAAQzC,EAAIi0C,KAAAA,GAAAA,sBAAkB,wDAAI,gBAAG,eAC5sH,0DACG7zC,oBAAoB,M,4VCuBxB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEkrC,gBAAAA,GAAiBH,mBAAAA,GAAoB4Z,eAAAA,GAAgB+D,YAAAA,IACnExoD,MAAK,WACD,IAAMqmB,EAAcU,KACpB,GAAyBuZ,EAAAA,GAAAA,IAAYja,GAA7BwC,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OAENzQ,GAAW9e,EAAAA,EAAAA,OACXslF,GAAStlF,EAAAA,EAAAA,KAA+B,MACxCu7C,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DimF,GAAsBjmF,EAAAA,EAAAA,KAAyC,MAE/DynE,GAAaznE,EAAAA,EAAAA,MAAI,GACjByuB,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7BkmF,GAAYlmF,EAAAA,EAAAA,MAAI,GAChBm4B,GAAUn4B,EAAAA,EAAAA,KAAI,SAEd+lF,GAAY/lF,EAAAA,EAAAA,MAAI,GAChBmmF,GAAiBnmF,EAAAA,EAAAA,KAAmB,MACpCgmF,GAAwBhmF,EAAAA,EAAAA,KAAmB,MAC3CytE,GAAeztE,EAAAA,EAAAA,KAA+B,IAEpDoe,KAAkBrW,MAAK,SAACgO,GAAC,OAAM03D,EAAalzE,MAAQwb,CAAC,IAErD,IAAMqwE,EAA0B,yCAAG,uFAC1BtnE,EAASvkB,MAAO,CAAF,mDACdyrF,EAAsBzrF,MAAO,CAAF,gDACR,OAAxBwrF,EAAUxrF,OAAQ,EAAM,SAClBskB,GAAmBC,EAASvkB,MAAO,GAAIyrF,EAAsBzrF,OAAM,2CAC5E,kBAL+B,mCAO1B8rF,EAAe,yCAAG,oGACd92D,EAAO,sBAAoB,uBAAE,8GACH,GAAtB32B,EAAU0sF,EAAO/qF,MAClB3B,EAAS,CAAF,gDAY2F,OAXvGu/B,EAAQ59B,MAAQ+qF,EAAO/qF,MAAM49B,SAAW,QAElC5d,EAASxF,GAAkCnc,GAC3C0tF,EAAa1tF,EAAQ0tF,WAAa,CAAC,UACnCt6C,GAAc,kBACbzxB,GAAM,IACTzF,YAAalc,EAAQkc,cAEzBqmB,EAAQ5gC,MAAQggB,EAAOvI,OACvBm0E,EAAe5rF,MAAQ,KACjBmgB,EACgB,UAAlByd,EAAQ59B,MAAoB,CAAC2Q,GAAgBwwC,SAAW,CAACxwC,GAAgBq7E,KAAMr7E,GAAgB+3C,KAAI,UACjFxiD,QAAQ2H,IAC1Bk+E,EAAUn+E,KAAI,SAACuY,GAAE,OAAKjG,IAAS,kBAAKuxB,GAAW,IAAElJ,SAAUpiB,EAAIhG,OAAAA,IAAS,KAC3E,QAFKm5B,EAAU,EAAH,KAGTj7C,EAAQkc,YAAY9B,MAAM,KAAK3B,OAAS,GAAKi1E,EAAUj1E,OAAS,GAC1D0mB,EAAW8b,EAAQ1rC,KAAI,SAACD,EAAGmM,IACxBnM,EAAEs+E,YAAc,IAAML,EAAe5rF,OAAS,KAC/C4rF,EAAe5rF,MAAQ2N,EAAEs+E,YAE7B,IAAM1jD,EAAWwjD,EAAUjyE,GACrBsjB,EAA2B,WAAbmL,EAAwB,eAAiB,iBACvDlL,EAAakL,EAAStoB,cAC5B,GAAsB,UAAlB2d,EAAQ59B,MACR,OAAOi9B,GAA+BtvB,EAAG,CACrCyvB,YAAAA,EACAC,WAAAA,EACAE,WAAY1B,GAAiBO,UAGjC,MAAYisB,GAAwC16C,GAAE,gBAA/CyZ,EAAC,KACR,OAAOA,CAEf,IACA8M,EAAal0B,MAAQ,CACjB+5B,OAAQyD,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE8R,MAAM,IAAE7Y,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,IACrE4M,SAAUA,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAEuV,QAAQ,IAAEtc,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,KAE7E+6D,EAAU3rF,OAAQ,IAElBk0B,EAAal0B,MAAQ,CAAE+5B,OAAQ,GAAIyD,SAAU,IAC7CmuD,EAAU3rF,OAAQ,GAEA,UAAlB49B,EAAQ59B,OACFksF,EAAmB7tF,EAAQkc,YAAY9B,MAAM,KAC7C8B,EACF2xE,EAAiBp1E,OAAS,EACnBo1E,EACAA,EAAiB,GACtBzlF,EAAU6yC,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC5B,IAAMyuB,EAAWwjD,EAAUjyE,GAC3B,OAAO20B,GAAyB4S,qBAAqBrhC,EAAQzF,EAAa5M,EAAG46B,EACjF,IACAyY,EAAgBhhD,MAAQyG,EAAQ,GAChCu6C,EAAgBhhD,MAAMyG,QAAUA,EAAQmH,KAAI,SAACD,GAAC,OAAKA,EAAElH,OAAO,IAAEya,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,MAEvFnqB,EAAU6yC,EAAQ1rC,KAAI,SAACD,GACzB,OAAO49C,GAA8BvrC,EAAQrS,EACjD,IACA+9E,EAAoB1rF,MAAQyG,EAAQ,GACpCilF,EAAoB1rF,MAAMyG,QAAUA,EAC/BmH,KAAI,SAACD,GAAC,OAAKA,EAAElH,OAAO,IACpBya,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,KACvC,6CACH,2CACL,kBArEoB,mCAsEfu7D,EAAU,yCAAG,oGACTn3D,EAAO,iBAAe,uBAAE,oGACL3kB,EAAAA,EAAAA,KAAAA,IAAe,qBAAD,OAAsBkU,EAASvkB,QAASwN,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAA9FurF,EAAO/qF,MAAQ,EAAH,iDACd,uBACI8rF,IAAiB,2CAC1B,kBALe,mCAOhB,MAAO,CACHvnE,SAAAA,EACAwmE,OAAAA,EACA/pC,gBAAAA,EACA9yB,aAAAA,EACAg/C,WAAAA,EACA4e,gBAAAA,EACAK,WAAAA,EACA7sC,KAAM,CAAEvkC,GAAAA,EAAIia,OAAAA,GACZd,aAAAA,EACAy3D,UAAAA,EACAjgE,YAAAA,EACAkS,QAAAA,EACA8tD,oBAAAA,EACAE,eAAAA,EACAH,sBAAAA,EACAvY,aAAAA,EACAsY,UAAAA,EACAK,2BAAAA,EACAjrD,QAAAA,EAER,EAEAl+B,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACCA,IACLxuB,KAAK2jB,SAAW6K,EAAGpP,OAAOhY,GAC1BpH,KAAKurF,aACT,EACAvjF,WAAW,EACXjG,MAAM,IAGdyE,MAAK,SAAC2qB,GACF,OAAOA,EAAIg5D,OAASh5D,EAAIg5D,OAAOnpF,KAAO,QAC1C,EACAlC,QAAS,CACL0sF,oBAAmB,SAACC,GAChBzrF,KAAKmR,QAAQxT,KAAK,YAAD,OAAaqC,KAAKmqF,OAAOxwE,YAAW,YAAI8xE,EAAKC,OAAM,UACxE,EACA15C,mBAAkB,SAAC4E,GACXA,IACJ52C,KAAKmR,QAAQxT,KAAK,mBAAD,OAAoBqC,KAAKmqF,OAASnqF,KAAKmqF,OAAO/iF,GAAK,KACpEpH,KAAK62C,OAAS72C,KAAKmqF,OAASnqF,KAAKmqF,OAAOnpF,KAAO,SACnD,KCnLsS,M,uBCAxF,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4ByZ,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,EAAC,kB,OAAgB,EAAM,WAAC,kBAAK,OAAI2C,MAAG,gBAAe3C,KAAM,SAAW,QAAE,MAAK,CAAOmN,MAAW,K,CAAqB,QAAS,CAAM,aAAIxK,YAAG,OAAckG,OAAW,S,CAAwBC,EAAE,aAAC,C,YAAe,KAAJ3I,CAAAA,C,IAAM6Q,U,GAAQhI,SAAO,G,IAAEhI,EAAO,OAAI,EAAW,SAAmCyb,EAAU,EAAE,Q,EAAM,U,MAAaC,CAAAA,EAAO,MAAC,qBAAc,C,WAAQ,EAAkB9a,KAAAA,aAA+B,uBAAC5B,MAAM,iBAAC,WAAQG,qB,MAAsB,CAAgB,MAAO6Q,EAAO,MAAS,WAAChQ,EAAQ,QAAG,KAAC,EAAC,QAAU,G,GAA4D,CAAC,oBAAI,yCACzrB,QAGD,MAASM,E,uBCJ4a,W,MAAgB,K,EAAA,WAAQ,EAAC,MAAK,Y,OAAM,EAAC,a,MAAM,CAAemB,MAAQ,EAAC,kC,SAAoBuG,EAAQkhB,GAAG,0CAAC,UAACtoB,mBAAW,GAAW,YAAK,KAAc,EAAC5B,IAAM,UAAC,YAAQ,GAAE,eAAO,EAAQ,QAACA,MAAM,sBAAC,KAAQ,OAAE,SAAO,QAAQ,UAAM,QAAC,UAAC,MAAO,IAAQ2C,IAAmB3C,MAAM,G,MAAC,CAAe,MAAO,EAAEE,QAAuB,SAAQA,SAAO,GAA0C,UAAcA,CAAuD,EAACwB,WAAM,Y,CAAwBe,EAAAA,GAAAA,EAAS,C,MAAmB,CAAe,MAAC,KAAwB,SAAG,MAAKE,CAAY3C,MAAM,K,CAAa,OAAK,CAAG,OAAI2C,KAAG,O,CAAmB,OAAS,C,MAAoB,CAAsB,aAACjB,MAAM,sBAACH,MAAOrB,EAAIwY,GAAAA,0CAAajW,YAAS,sD,MAAoC,CAACb,MAAAA,EAAU,WAAc,qBAAM,EAAEe,WAAW,CAAC3C,EAAO,WAAW,iBAAS,WAAE,MAAK,CAAqB0B,KAAM,KAACH,GAAK,M,GAA6CrB,GAAAA,EAAIma,C,MAAiB,CAACzY,MAAAA,CAAU,QAAC,WAAc,qBAAoB5B,MAAM,CAAC,MAAM,EAAC,YAAK,SAAK,YAAG,eAAKE,EAAqDF,WAAM,kBAAY,WAAC0B,MAAM,CAACH,KAAOrB,KAAWuC,GAAAA,M,CAAsC,EAAC,qB,MAACb,CAAkB,qBAAG,SAAU,SAAe,GAAC5B,EAAM,cAAC,EAAY,WAAK,mBAAO2C,GAAG,OAAU,CAAE3C,MAAM,CAAC,KAAO,KAAuB,S,CAAmB8tF,UAAXvsF,EAAAA,aAA6B,sB,MAACkB,C,MAA6BqrF,I,MAAuBlsF,CAA8B,cAAI,SAASksF,SAAiB,GAAc9tF,EAAM,OAAC,EAAY,WAAK,WAAO2C,EAAG,SAAW,QAAC3C,MAAM,CAAC,KAAO,KAAW,S,CAAqC,OAAQ,CAAwB,MAAC,CAAC0B,MAAM,uB,MAA0Be,C,MAA6BsrF,EAAAA,kBAAgB,SAAC,YAACnsF,EAAAA,kBAAW,CAAc,EAAI,WAAO,wBAAgB,KAAO,kBAAI,Q,MAAK,CAAI,UAAIe,GAAG,M,CAAqC,OAAW,C,MAA2C,CAAkE,QAAW,MAAK,mBAACjB,aAAM,KAACH,MAAOrB,0B,MAAgD,CAAmB,MAAC,eAAC0B,SAAU,SAAC,GAAgB,gBAAI,EAAgB5B,WAAM,mBAAa,GAAK,QAAG,OAAI2C,KAAG,KAAYC,GAAAA,M,CAAgC,+BAAgB,C,MAAC,CAAqB,kDAAID,YAAazC,EAAIG,GAAG,6CAA4E,UAAU,G,MAAgC,C,MAAE,iB,SAAyB,SAAW,GAAC,iBAAckJ,CAAE,EAAE7H,WAAM,qB,GAA6Be,EAAAA,GAAAA,EAAS,C,MAAgBvC,C,KAAwB,K,GAAC0B,MAA8B,CAAC,cAAE,YAAU,OAAS5B,YAAM,CAAC,OAAO,QAAK,aAAK,WAAM,CAAC2C,EAAG,SAAU,GAAC,sEAACC,OAAAA,EAAAA,GAAAA,EAAkB,CAACuK,IAAAA,EAAY,GAAC,OAAgB,kBAAM,MAAS,EAAK,KAA2E,MAAU,MAAsBnN,MAAM,CAAC,wBAAkB,SAAQ0C,SAAG,GAAC,kBAAQA,CAAI,EAAChB,WAAM,oB,UAAuD,EAACssF,GAAAA,EAAAA,C,MAAkB,C,KAACpsF,KAA0B,SAAK,CAACe,EAAG,YAAekG,YAAY3I,O,YAAa,CAAY4I,OAAG,U,GAAiB,SAAW,MAAO,qBAAQ,2C,OAAClG,EAAAA,GAAAA,EAAY,C,IAAO5C,E,MAAO,C,eAAmB,GAAC,MAAO2C,EAAiD,SAAKjB,MAAM,CAACH,MAAOrB,EAAI+tF,cAAaxrF,SAAS,SAAUynB,GAAMhqB,EAAI+tF,cAAe,CAAC,EAACrsF,WAAW,kB,IAAiC5B,EAAK,cAAC,C,YAAS,OAAU,gBAAC6I,GAAAA,SAAgByH,GAAK5N,IAAI,IAAS,GAAG,MAAC,OAAU,MAAC,YAAW,OAAeG,MAAG,CAAC,MAAQ,c,GAAwC,wC,WAAgC7C,C,MAAO,c,SAAoB,SAAO,G,EAAS,a,aAAK,gB,eAAwDE,C,aAA0B,W,YAAuB,O,iBAAU,WAAC,MAAM,CAACG,EAAG,cAAaA,CAAiB,IAAM,MAAC,YAAM,gBAAO,KAAqC,EAAQ,MAAU,OAAC,MAAQ,CAAoB,kBAAO,eAAuBoC,GAAQ,CAAqByrF,MAAS,SAAI,GAAEtsF,OAAD,mBAAY,qBAAW,IAAoC,QAAC,MAAO,CAAU,UAAU,MAAU,SAAC,kBAACgB,EAAmBuK,OAAAA,M,CAA8B,+BAAa,CAAQ,OAAIxK,MAAG,WAAiDC,MAAW,qB,MAAoB,CAAeH,MAAAA,EAAS,U,SAAoB08B,SAAW,GAAC,aAACv9B,EAAoB,2BAAqC,IAAOe,IAAG,KAAS,EAAC,M,MAAK6mB,CAAK5mB,KAAAA,KAAmB5C,GAAK,M,GAAe,WAAUmD,C,YAAI,OAAC,YAAE,CAAG,OAAM,QAAcP,aAAY,W,CAAc,YAAc,EAAG,uB,YAAS,O,MAAc,CAAiB,gBAAClB,SAAM,YAACH,EAAK,QAAM+rF,CAAW7qF,E,WAA6B6qF,Y,EAAe1rF,GAAAA,EAAU,UAAC,YAAW,eAAIe,IAAG,KAAc3C,YAAM,OAAC,OAAkB,MAAQ,KAAmB,MAAQ,S,IAAmBuB,GAAAA,EAAOrB,GAAAA,EAAIotF,C,YAAoB,O,MAAmB,CAAc,eAAC,GAAC1rF,MAAAA,cAAsB,gBAAsB5B,MAAM,CAAC,MAAM,EAAC,UAAK,SAAK,YAAG,aAAI2C,EAAeC,WAAY,eAAoB,OAAS,C,MAAQ,CAAqB,kBAAID,MAAG,mBAAqGC,MAAW,Y,MAAe,CAAkB,MAAM,EAAC,UAAE,qBAAM,EAAC,UAAS,CAAC5C,EAAO,WAAQ,gBAAaE,KAAO,OAAS,CAAkJF,MAAM,CAAC,KAAO,KAAsD,S,CAAQuB,EAAAA,WAAW4sF,C,YAAyB,O,YAAoBA,CAAkB,OAAC,QAACvsF,aAAW,WAAoB,GAAG,SAAI,oBAAyB,EAAO,YAAC,qCAAgN,EAAQ,MAAK,CAACe,EAAG,cAA0B,QAAmB,CAA+djB,MAAM,CAACH,MAAOrB,EAAIkuF,GAAAA,+C,MAA+C,CAAsB,MAAC,iBAACxsF,SAAU,SAAC,GAAmB,kBAAIe,EAAgB3C,WAAM,qBAAoB,kBAAC6I,MAAAA,CAAqBnG,MAAI,YAAUoG,UAAG,kB,UAAyC,SAAQ,G,qBAAqBslF,C,OAA6B,GAAC,oYAA7hC,QAACpuF,YAAM,O,MAAC,CAAoB,gBAA+B,U,CAAK,MAAQ,C,MAAoB,CAAyB,kBAAI,CAACE,EAAIG,GAAG,aAAa,EAAG,GAAEsC,+DAA6D,IAA60B,8B,MAAC,CAAC2P,MAAM,oBAAM,qBAAM,EAAC,kBAAoB,CAACtS,EAAO,WAAO,sBAAO,CAAC2C,EAAG,aAAuB3C,MAAM,CAAC,MAAQE,YAA+E,YAAC,OAACwB,IAAM,UAACH,GAAAA,WAAuBkB,MAAQ,CAAC,gBAAUynB,CAAMhqB,GAAImuF,CAAe,kBAACzsF,EAAW,oBAAY,KAA2B,EAAU,aAA2B5B,CAAAA,EAAK,KAAC,S,MAAC,CAAiE,YAAgC0B,CAAAA,EAAK,sBAAC,C,MAAM,CAA2Be,MAAQ,EAAC,6C,UAAoB6rF,EAAAA,gB,MAAyB1sF,CAAgC,mBAAI,SAAO,SAAQ,GAAC5B,EAAM,YAAC,EAAU,4BAA2BA,GAAM,Q,MAAC,CAA+D,WAAgC0B,CAAAA,EAAK,mBAAC,C,MAAM,CAAyBe,MAAQ,EAAC,qD,UAAoB8rF,EAAAA,gB,MAAuB3sF,CAA8B,4BAAI,SAAO,SAAQ,GAAC5B,EAAM,qBAAC,EAAW,qCAAwBA,GAAM,Q,MAAM,CAAI,W,CAAQuB,EAAAA,mBAAqB,C,MAACkB,C,MAA6B+rF,EAAAA,GAAS,gDAAI,UAAC,kBAAuB,OAAI7rF,MAAG,oBAAW3C,SAAM,YAAC,oBAAe,CAAoC,EAAe,WAAW,wBAAuB2C,GAAG,OAAU,CAAC3C,MAAM,CAAC,KAAO,O,CAA6D,OAAe,CAAe,OAAI2C,IAAG,I,MAAkB,CAAqD,MAAO,EAAC,UAAS,SAAU,SAAMwrF,GAAc,aAAI,EAAgDnuF,WAAM,cAAY,SAAE,MAAK,CAAYA,MAAM,yCAAC,MAAQE,OAAyD,UAAYuuF,EAAAA,kBAAyB,OAAQ,CAAE,MAAC,CAAC/sF,MAAM,0CAACH,MAAOrB,QAAwBuC,UAAS,oBAA0C,EAAC,M,MAACb,CAA+B,iDAAI,MAAO,SAA+C5B,UAAM,qBAAY,qCAAE,MAAK,CAAgBA,KAAM,O,CAAgE,OAAW,CAAmB,MAAC,CAAC0B,MAAM,uDAACH,MAAOrB,EAAIwuF,WAAuBjsF,SAAS,G,MAAoBisF,I,MAA2B9sF,CAAkC,2BAAI,SAAQuO,SAAgB,GAACnQ,EAAM,oBAAC,EAAU,oCAAmB4C,GAAAA,EAAW,KAAO,WAAN,EAAM,kBAAC5C,MAAM,CAAC,KAAO,O,CAA2C,OAAO,C,MAAM,CAAI,MAAQ,qDAAC,UAAY,EAAG,gB,MAAwB,CAA+B,8BAAC6I,SAAW,SAAS,GAACnG,EAAI,sBAAa,CAACoG,E,WAAoB,4BAAgI,kBAAC,MAAG,CAACpH,KAAM,M,CAAuBe,EAAAA,GAAAA,EAAS,C,YAAoBksF,O,MAAc,CAAC/sF,MAAAA,OAAsB,mCAAI,IAAM,EAAU5B,IAAM,GAAC,KAAO,EAAG,gBAAI2C,cAAG,SAAmB3C,UAAM,kBAAgB,YAAC,OAAC0B,IAAM,cAACH,GAAAA,SAAWqtF,GAAUnsF,IAAAA,EAAS,QAAgBvC,MAAI0uF,CAAAA,EAAQ,GAAC1kE,IAAG,uFAAuB,OAAI,MAAM,EAAG,UACl4S,qBACG5pB,EAAAA,UAAoB,CAExB,E,iNCJ4CqC,GAAOK,WAAS,MAAU,KAAYhD,EAAK,EAAC,S,OAAC,OAAYuB,C,MAAM,CAAuB,QAAY,MAAO,QAAY,WAAM,YAAY+P,OAA4B,aAAc,KAAiB,MAAOpR,EAAI4nB,GAAI,yBAAC,eAAe,cAAC,KAAQ,EAAC5nB,KAAW,YAAG,OAAC,U,GAA0B,CAAiC,kBAAC,yBAAG,IAIrW,E,MC6BA,IACAK,MAAAA,CACAgB,MAAAA,OACAsT,YAAAA,CACA5U,KAAAA,QACAS,SAAAA,GAEAonB,KAAAA,QACA/S,KAAAA,QACAG,OAAAA,QACAkT,MAAAA,CACAnoB,KAAAA,MACAS,QAAAA,WAAA,mEAGAmE,SAAAA,CACAgqF,WAAAA,WAAA,WACA,0CACAtlF,GAAAA,EACApG,KAAAA,EAAAA,GAAAA,uBAAAA,OAAAA,EAAAA,WACA,GACA,GAEApC,KAAAA,WACA,OACAwZ,MAAAA,GACAwuB,sBAAAA,EACA+lD,YAAAA,GAEA,GC9DwQ,M,uBCA/C,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYnsF,GAAOK,WAAS,MAAU,KAA2BhD,EAAK,EAAC,S,OAAC,aAAiB,S,MAAC,CAAmB,MAAQE,EAAIkoB,MAAM,iBAAmB,QAAY,MAAS,YAAWloB,OAAa,qBAAG,SAAC,Y,GAA0B,CAAiC,kBAAC,yBAAI,MAE/RI,EAEJ,E,MCYA,IACA,CAAA6C,KAAAA,sBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,uBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,mBAAA5B,MAAAA,KACA,CAAA4B,KAAAA,iBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,uBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,sBAAA5B,MAAAA,KACA,CAAA4B,KAAAA,2BAAA5B,MAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,oBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,sBAAA5B,MAAAA,GACA,CAAA4B,KAAAA,yBAAA5B,MAAAA,KACA,CAAA4B,KAAAA,yBAAA5B,MAAAA,IACA,CAAA4B,KAAAA,wBAAA5B,MAAAA,IACA,CAAA4B,KAAAA,4BAAA5B,MAAAA,IACA,CAAA4B,KAAAA,sBAAA5B,OAAAA,IACA,CAAA4B,KAAAA,uBAAA5B,OAAAA,IACA,CAAA4B,KAAAA,uBAAA5B,OAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,OAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,OAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,OAAAA,GACA,CAAA4B,KAAAA,wBAAA5B,OAAAA,GACA,CAAA4B,KAAAA,yCAAA5B,OAAAA,GACA,CAAA4B,KAAAA,2BAAA5B,OAAAA,KACA,CAAA4B,KAAAA,0BAAA5B,OAAAA,GACA,CAAA4B,KAAAA,uBAAA5B,OAAAA,IAEA,IACAhB,MAAAA,CACAgB,MAAAA,OACAiI,SAAAA,SAEAzI,KAAAA,WACA,OAAAqnB,MAAAA,GACA,GCpDuQ,MCOnQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClBwF,W,IAAiD,O,EAAkB,W,OAA8B,OAAc,C,MAAC,CAAuB,cAA+B,eAAkB,iCAAC,QAAW,MAAG,eAAU,aAAC,UAAWloB,GAAa,uBAAG,eAAC,cAAC,gBAAQ,G,SAA2B,GAAuB,MAAC,GAAC,qB,GAA4D,CAAC,eAAsB,GAAiBA,OAAImV,EAAAA,MAAWkH,QAAM,IAAE,iCAAC1T,EAAAA,WAAoB,CAACnG,EAAcoG,sBAAa,YAAC,aAAaimF,C,eAA6E,EAAO7uF,GAAG,CAAC8uF,C,iBAAyB,WAAC,MAAM,gBAAkB,EAAErsF,YAAazC,EAAIG,GAAAA,EAAW,CAA4VL,GAAAA,CAAO,MAAQ,YAAS,+BAAIE,IAAgI,GAAC,8IAAM,OAAG,kBAEnwCI,CAAAA,EAAAA,GAAe,cAAK,+EAFsuC,yHAI9vC,E,qBCyBa2uF,GAAa,uJACpBC,GAAY,2BACZC,GAAa,WACbC,GAAiB,cACjBC,GAAiB,cACjBC,GAAmB,yBAQzB,IACI9F,QAAO,SAACt+E,GACJA,EAAIw+E,UAAU9tB,OAAS,CACnBkL,SAAQ,SAACz0D,GACL,OAAO,SAACQ,GAAU,QAAOA,GAAKR,GAAWisE,GAAAA,EAAO,sBAAsB,CAC1E,EACAiR,WAAU,SAACC,EAAan9E,GACpB,OAAO,SAACQ,GAAU,OAAM28E,OAAc38E,GAAKR,GAAWisE,GAAAA,EAAO,sBAAsB,CACvF,EACAmR,eAAc,SAACC,EAAar9E,GACxB,OAAOnH,EAAIw+E,UAAU9tB,OAAO+zB,UAAUD,EAAKr9E,IAAYnH,EAAIw+E,UAAU9tB,OAAOg0B,UAAUF,EAAKr9E,EAC/F,EACAs9E,UAAS,SAACD,EAAar9E,GACnB,OAAO,SAACQ,GAAqB,OAAMA,GAAK,IAAIwF,QAAUq3E,GAAOr9E,GAAWisE,GAAAA,EAAO,uBAAwB,CAAEoR,IAAAA,GAAM,CACnH,EACAE,UAAS,SAACF,EAAar9E,GACnB,OAAO,SAACQ,GAAqB,OAAMA,GAAK,IAAIwF,QAAUq3E,GAAOr9E,GAAWisE,GAAAA,EAAO,uBAAwB,CAAEoR,IAAAA,GAAM,CACnH,EACA5jF,MAAK,SAACuG,GACF,OAAO,SAACQ,GAAU,OAAMA,GAAKo8E,GAAWnqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,mBAAmB,CAC5F,EACA5kD,KAAI,SAACrnB,GACD,OAAO,SAACQ,GAAU,OAAMA,GAAKq8E,GAAUpqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,kBAAkB,CAC1F,EACAuR,WAAU,SAACH,EAAar9E,GACpB,OAAO,SAACQ,GAAU,OAAMA,IAAMA,GAAK,GAAK68E,GAAO,GAAKr9E,GAAWisE,GAAAA,EAAO,wBAAwB,CAClG,EACA57D,IAAG,SAACgtE,EAAar9E,GACb,OAAO,SAACQ,GAAU,OAAMA,GAAK,IAAM68E,GAAOr9E,GAAWisE,GAAAA,EAAO,iBAAkB,CAAEoR,IAAAA,GAAM,CAC1F,EACAvsE,IAAG,SAACusE,EAAar9E,GACb,OAAO,SAACQ,GAAU,OAAMA,GAAK,IAAM68E,GAAOr9E,GAAWisE,GAAAA,EAAO,iBAAkB,CAAEoR,IAAAA,GAAM,CAC1F,EACAI,OAAM,SAAChnF,EAASuJ,GACZ,OAAO,kBAAOvJ,KAAQuJ,GAAWisE,GAAAA,EAAO,qBAAqB,CACjE,EACAyR,QAAO,SAACC,EAAsB39E,GAC1B,OAAO,SAACQ,GAAO,OAAKm9E,IAAoBn9E,GAAKR,GAAWisE,GAAAA,EAAO,0BAA0B,CAC7F,EACA2R,cAAa,SAAC59E,GACV,OAAO,SAACQ,GAAU,OAAMA,GAAKs8E,GAAWrqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,2BAA2B,CACpG,EACA4R,kBAAiB,SAAC79E,GACd,OAAO,SAACQ,GAAU,OAAMA,GAAKw8E,GAAevqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,2BAA2B,CACxG,EACA6R,kBAAiB,SAAC99E,GACd,OAAO,SAACQ,GAAU,OAAMA,GAAKu8E,GAAetqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,2BAA2B,CACxG,EACA8R,yBAAwB,SAAC/9E,GACrB,OAAO,SAACQ,GAAU,OAAMA,GAAKy8E,GAAiBxqF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,iCAAiC,CAChH,EACAx5E,KAAI,SAACurF,EAAch+E,GACf,OAAO,SAACQ,GAAS,OAAMA,GAAKw9E,EAAMvrF,KAAK+N,IAAMR,GAAWisE,GAAAA,EAAO,mBAAmB,CACtF,EAOAgS,eAAc,SAACC,GACX,IAAMl+E,EAAUk+E,EAAUl+E,SAAWisE,GAAAA,EAAO,sBAExCkS,GAAU,EAEdC,YAAW,WACPF,EAAUlvF,YAAY8T,MAAMrV,MAAK,kBAAM0wF,GAAWn+E,CAAO,GAC7D,GAAG,GAEH,IAAIq+E,GAAU,EACd,OAAO,SAAC79E,GACJ,OAAI69E,IAGJA,GAAU,GACV,uBAAC,oGACmBH,EAAUI,OAAO99E,GAAE,OAAnC29E,EAAU,EAAH,KACPD,EAAUlvF,YAAYuvF,WACtBF,GAAU,EAAM,0CAHpB,KAHW,CASf,CACJ,EAER,GC3HJ,IACInwF,MAAO,CAAEgB,MAAO+V,MAAOzC,YAAaxR,QAASmG,SAAUnG,QAASukB,MAAOrkB,QACvExC,KAAI,WACA,MAAO,CAAEqnB,OAAO,QAAKjmB,KAAKZ,OAAS,IAAM8T,WAAY,KACzD,EACApU,QAAS,CACL8tF,aAAY,SAAC15E,GACT,OAAO45E,GAAWnqF,KAAKuQ,EAC3B,EACA25E,SAAQ,SAAC35E,GACLlT,KAAKimB,MAAMtoB,KAAKuV,GAChBlT,KAAKgE,MAAM,QAAS,GAAF,gBAAMhE,KAAKZ,OAAK,CAAE8T,KACpClT,KAAKkT,WAAa,IACtB,IChB4S,M,qBCAxF,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCRhC,IAAe5O,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEmqF,gBAAAA,GAAiBC,eAAAA,GAAgBC,mBAAAA,IAC/CxwF,MAAO,CACHS,QAASqC,QACT9B,MAAOsC,QAEX+C,MAAK,SAACrG,GACF,IAAM0sB,EAAcU,KACpB,EAAiDL,GAAgBL,GAAzDQ,EAAe,EAAfA,gBAAiBC,EAAmB,EAAnBA,oBAEnBG,GAAQmjE,EAAAA,EAAAA,UAAS,CACnBC,oBAAoB,EACpBnrE,SAAU,KACV2mE,WAAY,KACZzjF,SAAS,EACTqR,aAAc,MACdK,YAAa,GACbH,MAAO,GACP22E,eAAgB,GAChB5C,oBAAqB,IAAIh0E,KACzBi0E,kBAAmBh2E,KAASa,IAAI,EAAG,SAASJ,SAC5Cm1E,gBAAgB,EAChBE,WAAY,CAAChjF,GAAAA,EAAAA,WACbmjF,UAAW,OACXG,UAAW,EACXC,SAAU,EACVF,sBAAuB,EACvByC,mBAAoB,CAAC,UACrB1C,WAAY,CAAC,SAAU,SAAU,UAAW,YAAa,WAAY,SAAU,YAC/E/1E,YAAavG,GAAAA,MACb27E,mBAAmB,EACnBsD,MAAO,GACPrD,aAAc,KACdK,mBAAmB,EACnBJ,cAAe,GACfV,UAAW,CAAC,UACZnuD,QAAS,QACTJ,SAAU,CACNtR,EAAkB,CAAEtqB,KAAM,QAASoG,GAAI,SAAY,KACnDmkB,EAAsB,CAAEvqB,KAAM,qBAAsBoG,GAAI,sBAAyB,MACnF2P,QAAO,SAAAhK,GAAC,OAAIA,CAAC,IACfmiF,uBAAwB,GACxBC,gBAAiB,GACjBC,yBAA0B,CACtB,CAAEpuF,KAAM,eAAgBoG,GAAIqM,GAAiBM,gBAC7C,CAAE/S,KAAM,oBAAqBoG,GAAIqM,GAAiBU,eAClD,CAAEnT,KAAM,mBAAoBoG,GAAIqM,GAAiBoB,mBACjD,CAAE7T,KAAM,eAAgBoG,GAAIqM,GAAiBkB,UAC7C,CAAE3T,KAAM,UAAWoG,GAAIqM,GAAiBQ,UACxC,CAAEjT,KAAM,QAASoG,GAAIqM,GAAiBwB,QACtC,CAAEjU,KAAM,YAAaoG,GAAIqM,GAAiBsB,aAC1C,CAAE/T,KAAM,SAAUoG,GAAIqM,GAAiBgB,UAE3Cs3E,UAAW,KACXD,aAAa,IAGjBrqE,KAAiB7U,MAAK,SAAC8D,GAAC,OAAMgb,EAAMujE,MAAQv+E,CAAC,KAE7C5O,EAAAA,EAAAA,QACI,iBAAM,CAACgpB,EAAYgC,QAAShC,EAAYkC,QAASlC,EAAYmC,QAAQ,IACrE,YAAgC,oBAA9BH,EAAO,KAAEE,EAAO,KAAEC,EAAO,KACnBvB,EAAMwjE,uBAAuBh5E,SACjCwV,EAAMwjE,uBAAyB,CAACpiE,EAASE,EAASC,GAASlW,QAAO,SAAC1B,GAAC,OAAKA,CAAC,IAC9E,GACA,CAAErN,WAAW,KAGjBlG,EAAAA,EAAAA,QACI,kBAAM1D,EAAMgB,KAAK,IACjB,SAAC2I,GACG,GAAKA,EAAL,CACA2jB,EAAM/H,SAAW5b,EAAIX,GACrBskB,EAAM4+D,WAAaviF,EAAI/G,KACvB0qB,EAAMxT,aAAenQ,EAAImQ,aAEzB,IAAMA,EAAe,IAAI5B,GAAQoV,EAAMxT,cACjCtB,EAAW7O,EAAI6O,SAAW,IAAIuB,KAAKpQ,EAAI6O,UAAY,KACnDC,EAAS9O,EAAI8O,OAAS,IAAIsB,KAAKpQ,EAAI8O,QAAU,KACnD6U,EAAMtT,MAAQF,EAAaG,sBAAsBzB,EAAUC,GAE3D6U,EAAMnT,YAAcxQ,EAAIwQ,aAAe,GACvCmT,EAAMqjE,gBAAkBhnF,EAAIiR,SAAW,IAAIhM,KAAI,SAACD,GAAC,MAAM,CACnD8N,GAAI9N,EAAE3F,GACN0T,KAAM/N,EAAE/L,KACRka,KAAMnO,EAAEjP,KACX,IACD4tB,EAAMy/D,UAAYpjF,EAAIojF,WAAa,CAAC,UAEpCz/D,EAAMnV,YAAcxO,EAAIwO,YACxBmV,EAAMigE,oBAAsB5jF,EAAIyQ,YAChCkT,EAAMkgE,aAAe7jF,EAAIyQ,aAAe,KACxC,IAAM8yE,EAAmBvjF,EAAI4R,YAAY9B,MAAM,KAC/C6T,EAAMyjE,gBAAkB7D,EAAiBv0E,QAAO,SAACwZ,GAAC,OAAMA,EAAEuX,WAAW,QAAQ,IAC7Epc,EAAMmgE,cAAgBP,EACjBv0E,QAAO,SAACwZ,GAAC,OAAKA,EAAEuX,WAAW,QAAQ,IACnC96B,KAAI,SAACujB,GAAC,OAAKA,EAAE5Z,UAAU,QAAQT,OAAO,IAE3C,IAAMm5E,EAAU,GAAH,gBAAO3jE,EAAMwjE,yBAAsB,QAAKxjE,EAAMmgE,gBAC3DngE,EAAMwjE,uBAAyBG,EAAQt4E,QAAO,SAAC3X,EAAOmY,GAAK,OAAK83E,EAAQ53E,QAAQrY,KAAWmY,CAAK,IAChGmU,EAAMsR,QAAUj1B,EAAIi1B,SAAW,QAE3Bj1B,EAAIunF,WACJ5jE,EAAMsgE,gBAAiB,EACvBtgE,EAAM2gE,UAAYtkF,EAAIunF,SAASjD,UAC/B3gE,EAAMwgE,WAAankF,EAAIunF,SAASpD,WAChCxgE,EAAMygE,oBAAsB/1E,GAAOrO,EAAIunF,SAAS9jB,eAAe30D,SAC/D6U,EAAM0gE,kBAAoBh2E,GAAOrO,EAAIunF,SAASC,aAAa14E,SAC3D6U,EAAM8gE,UAAYzkF,EAAIunF,SAASE,cAC/B9jE,EAAM6gE,sBAAwBxkF,EAAIunF,SAASG,aAC3C/jE,EAAM+gE,SAAW,EACjB/gE,EAAMsjE,mBAAqBjnF,EAAIunF,SAAShD,WAxC5B,CA0CpB,GACA,CAAEtkF,WAAW,EAAMjG,MAAM,KAG7BD,EAAAA,EAAAA,QACI,kBAAM4pB,EAAMxT,YAAY,IACxB,SAAC3X,GACG,GAAY,WAARA,EAAJ,CACA,IAAM2X,EAAe,IAAI5B,GAAQ/V,GACjCmrB,EAAMtT,MAAQF,EAAaG,sBAAsB,KAAM,KAF3B,CAGhC,GACA,CAAErQ,WAAW,IAGjB,IAAMhK,GAAO0E,EAAAA,EAAAA,WAAS,WAClB,IAAMiX,GAAe+R,EAAMyjE,iBAAmB,IACzCr3E,QAAQ4T,EAAMmgE,eAAiB,IAAI7+E,KAAI,SAACqI,GAAC,qBAAaA,EAAC,KACvD0C,KAAK,KACJjQ,EAAwC,CAC1C9G,KAAM0qB,EAAM4+D,WACZpyE,aAAcwT,EAAMxT,aACpBK,YAAamT,EAAMnT,YACnB3B,SAAU8U,EAAMtT,MAAM,IAAM,KAC5BvB,OAAQ6U,EAAMtT,MAAM,IAAM,IAAID,KAC9BwB,YAAAA,EACAX,SAAU0S,EAAMqjE,gBAAkB,IAAI/hF,KAAI,SAACmY,GAAC,MAAM,CAC9C/d,GAAI+d,EAAEtK,GACN7Z,KAAMmkB,EAAErK,KACRhd,KAAMqnB,EAAEjK,KACX,IACDo0E,SAAU,KACV92E,YAAakT,EAAMigE,kBAAoBjgE,EAAMkgE,aAAe,KAC5Dr1E,YAAamV,EAAMnV,YACnB40E,UAAWz/D,EAAMy/D,WAAa,CAAC,UAC/BnuD,QAAStR,EAAMsR,SAiBnB,OAfItR,EAAMsgE,iBACNlkF,EAASwnF,SAAW,CAChBjD,UAAW3gE,EAAM2gE,UACjBH,WAAYxgE,EAAMwgE,WAClB1gB,cAAe9/C,EAAMygE,oBAAoBtyE,cACzC01E,YAAa7jE,EAAM0gE,kBAAkBvyE,cACrC21E,cAAe9jE,EAAM8gE,UACrBiD,aAAc/jE,EAAM6gE,sBACpBmD,eAAgBhkE,EAAM+gE,SACtBH,WAAY5gE,EAAMsjE,mBAClBW,QAAS,KACTC,YAAa,KACbC,WAAY,OAGb/nF,CACX,IAEMgoF,EAAS,SAAC17E,GACPsX,EAAMwjE,uBAAuBhlF,SAASkK,EAAIyG,KAAK6Q,EAAMwjE,uBAAuBvxF,KAAKyW,EAAIyG,IAC1F6Q,EAAMogE,aAAc,CACxB,EAEA,OAAO,mBAAKiE,EAAAA,EAAAA,QAAOrkE,IAAM,IAAE1tB,KAAAA,EAAM8sB,YAAAA,EAAaglE,OAAAA,GAClD,IC3LwS,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B3wF,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,oBAAoB,QAAU,MAAM6C,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAAY,CAAChgB,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIoR,GAAG,iCAAiC,MACtS,EACIhR,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,GAAAA,EAAAA,OACAU,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,iCACA,IC7ByQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCjBhC,IAAe4E,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEyrF,WAAAA,GAAYC,iBAAAA,IAC1BnxF,QAAS,CACP0b,yBAAwB,SAACJ,GACvBpa,KAAKmR,QAAQxT,KAAK,mBAAD,OAAoByc,EAAOhT,IAC9C,KCV0S,MCO1S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4BqT,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,oB,OAAmD,EAAM,WAAC,kBAAM,OAAI2C,MAAG,QAAa,OAAC,iCAAC3C,KAAM,UAAW,QAAE,MAAK,CAAOmN,MAAW,K,CAAqB,SAAqB,aAAIxK,YAAG,OAAc3C,eAAM,SAAoB,iBAAC6I,MAAAA,CAAqBnG,MAAI,U,YAA4B,KAAJvC,CAAAA,C,IAAM6Q,U,GAAQhI,SAAO,G,IAAEhI,EAAO,OAAI,EAAW,SAAkCyb,EAAU,EAAE,Q,EAAM,U,MAAaC,CAAAA,EAAO,MAAC,oBAAc,C,WAAQ,EAAkB9a,KAAAA,aAA+B,uBAAC5B,MAAM,iBAAC,WAAO,qB,MAA+B,CAAC,OAAQ,QAAC,OAAO,UAAC,KAAQgJ,OAAO,KAAe,MAAS,WAAChI,EAAQ,QAAG,KAAC,EAAC,QAAU,G,GAA4D,CAAC,oBAAI,yCACtxB,QAGD,MAASM,E,QCJLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,6BAAuBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,MAAQrJ,EAAIqB,MAAM,QAAU,MAAMsB,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACvQ,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAgrB,GAAAA,OAEAtqB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,gCACA,IC/BwQ,M,uBCA/C,GAAe,KCOpO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCdhC,IAAe4E,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEyrF,WAAAA,GAAYE,gBAAAA,IAC1BzrF,MAAK,WACH,IAAM0lF,GAAStlF,EAAAA,EAAAA,KAA+B,MAC9C,MAAO,CAAEslF,OAAAA,EACX,EACAroF,MAAO,CACLymB,OAAQ,CACAvmB,QAAO,SAAC2L,GAAY,6IACJ6T,GAAe7T,EAAMyR,OAAOhY,IAAG,OAAnD,EAAK+iF,OAAS,EAAH,+CADa,EAE1B,EACAniF,WAAW,EACXjG,MAAM,IAGVjD,QAAS,CACP0b,yBAAwB,SAACJ,GACvBpa,KAAKmR,QAAQxT,KAAK,mBAAD,OAAoByc,EAAOhT,IAC9C,KC1BwS,MCOxS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB4BqT,GAAO1c,WAAsB,MAAU,KAA8BF,EAAK,EAAC,SAAQ,oB,OAAoD,EAAM,WAAC,kBAAc,OAAI2C,MAAG,SAAc,wCAAC3C,KAAM,kBAAW,QAAE,MAAK,CAAOmN,MAAW,K,CAAqB,QAAS,CAAM,aAAIxK,YAAG,OAAc3C,OAAM,SAAoB,iBAAC6I,MAAAA,CAAqBnG,MAAI,U,YAA4B,KAAJvC,CAAAA,C,IAAM6Q,U,GAAQhI,SAAO,G,IAAEhI,EAAO,OAAI,EAAW,SAAqCyb,EAAU,EAAE,Q,EAAM,U,MAAaC,CAAAA,EAAO,MAAC,uBAAc,C,WAAQ,EAAkB9a,KAAAA,aAA+B,uBAAC5B,MAAM,iBAAC,WAAQG,qB,MAAsB,CAAgB,MAAO6Q,EAAO,MAAS,WAAChQ,EAAQ,QAAG,KAAC,EAAC,QAAU,G,GAA4D,CAAC,oBAAI,yCAClwB,QAGD,MAASM,E,QCIT,IAAemF,EAAAA,EAAAA,iBAAgB,CAC7BC,WAAY,CAAEyrF,WAAAA,GAAYC,iBAAAA,IAC1BxrF,MAAK,WACH,IAAM0lF,GAAStlF,EAAAA,EAAAA,KAA+B,MAC9C,MAAO,CAAEslF,OAAAA,EACX,EACAroF,MAAO,CACLymB,OAAQ,CACAvmB,QAAO,SAAC2L,GAAY,6IACJ6T,GAAe7T,EAAMyR,OAAOhY,IAAG,OAAnD,EAAK+iF,OAAS,EAAH,+CADa,EAE1B,EACAniF,WAAW,EACXjG,MAAM,IAGVjD,QAAS,CACP0b,yBAAwB,SAACJ,GACvBpa,KAAKmR,QAAQxT,KAAK,mBAAD,OAAoByc,EAAOhT,IAC9C,KC1ByS,MCOzS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClByD,GAAU,W,IAA8BvJ,EAAM,K,EAAC,EAAO,MAAKsR,GAA8B,EAAC,kB,OAAa,aAAa,kB,MAAC,CAAqB,gCAAI3O,KAAG,aAAkC3C,SAAM,GAAC,mBAAe,MAA8D,0BAAC6I,MAAAA,CAAqBnG,MAAI,0BAAgBoG,QAAG,KAAU,yB,YAAwF,O,wCAAoD,wEAAC,GAAC,CAACD,QAAY3I,SAAQ,GAACwC,OAAI,eAAUoG,G,YAA4BnG,EAAG,K,IAAgB3C,U,YAAe,G,IAAW,OAAC,MAAK,CAAC,EAAG,IAAC,EAAQ,GAAEE,CAAuC,OAAQ,MAAO,cAAuB,GAAK,CAACuoB,EAAAA,EAAAA,EAAW,oCAAChmB,IAAyBvC,MAAIuoB,EAAAA,W,MAAe,CAAC7mB,MAAAA,EAAU,WAAa,qBAAI1B,EAAIiQ,WAAK,CAAC,EAAM,WAAC,gBAAa,OAAoBnQ,EAAO,OAAO,MAAkD,uBAAC6C,MAAG,CAAC,MAAS,EAAC3C,YAAgB,8B,GAAuEwC,CAAWoG,QAAG,e,YAA2BnG,EAAG,kBAAiB,gC,IAAC3C,O,YAAeyV,G,IAAK,S,MAAI,qB,MAAC,CAAyB,SAAI,IAAO,QAAO,EAAI,eAExqCnV,GAEJ,MAAe,MAAEA,M,iCCJqT,W,IAAsB,OAAmB,EAAC,WAAI,oB,OAAC,aAAc,S,MAAoB,CAAmB,QAAC,UAAC,gB,WAA2C0xB,KAAmB,oBAAC,IAAC,mB,iBAAyD,EAACzV,aAAM,eAAC,iCAAC,UAAa,Q,gBAA+B,GAAS,GAAC,CAAC1T,cAAgByH,SAAI,GAAC5N,EAAI,YAAS,CAACoG,E,sBAAiC5I,SAAc,GAAyC,gBAACoS,EAAW,wBAAC,YAAC5P,EAAG,aAAY,CAACoG,E,aAAkB,YAAI,YAAW,C,eAA0D,O,IAAG,UAAqC,cAAG,kEAACpG,EAA6BoG,OAAG,G,KAAmB,YAA6D,eAAG,aAACpG,MAAG,iBAAe,CAAI,OAAW+S,GAAI,UAAJA,EAAI,gCAAuFzV,CAAAA,EAAK,GAAC,wB,6CAAgD,G,IAAS,SAAC,MAAM,GAACE,QAAS,sCAAG,CAACwC,IAAG,eAAwBoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,MAA2B9G,IAAzB8G,EAAK68E,gBAA+B3vF,EAAG,MAAO,EAAEzC,GAAAA,EAAiB,CAAS0C,MAAAA,CAA2B1C,cAAiB,GAAiE,QAAG,QAAI,oBAA2CuV,GAAI,O,QAAsH,uBAAwF,eAAG,aAAC/S,MAAG,MAAmB,IAAnB,kBAAmB,4BAAI,0BAAkB,CAAP+S,EAAI,QAAJA,EAAI,cAAJA,CAAI,yC,QAA6G,4B,GAAmBzV,SAAM,G,IAAC,EAAO,EAAK,K,MAAa,MAAY,IAAZ,uBAAY,4BAAE,0BAAI,GAAI,0EAAG,CAAC0C,IAAG,mBAA2BoG,GAAG,YAAkB,IAAP2M,EAAI,EAAJA,KAAQ,MAAO,MAAO88E,IAAL98E,EAAK88E,YAAuB5jF,EAAAA,GAAAA,EAAa,CAAC,KAAO,OAAQ,EAAC,KAAM,CAAqH3O,YAAM,c,CAAC,OAAawyF,C,MAAqB,CAA+B,MAAQ,cAAE,mBAAiF,GAAE,GAAE9vF,CAAwBoG,IAAG,0B,GAAkB,SAAH,GAAI,MAAS2M,EAAKg9E,K,MAA+B7vF,MAAY,IAAZA,EAAW,mBAAC,uHAA0B,MAAK,CAAU5C,MAAM,uBAAC,QAAQ,kBAAO,YAA8D4C,EAAAA,GAAAA,IAAY,2D,+BAAmE,YAAC,IAAG1C,EAAO,EAAM,K,MAA6C0C,CAAY,GAAZA,EAAW,aAAC,QAA4B,YAAa,2BAAE5C,CAAAA,EAAK,IAAC,C,MAAC,CAAiB,gBAAqC4C,CAAAA,EAAAA,GAAAA,WAAY,6BAAc,YAAY,6BAAsB,QAAG,OAAI,kBAAqC,CAAP6S,EAAI,2CAAI,YAAW,6BAAU5M,CAAAA,EAAAA,EAAAA,EAAW,C,MAAc,CAAYC,MAAG,Y,GAAiB,cAAW,GAAQ5I,EAAI6f,GAAAA,EAAG,C,YAAO,e,QAAC,GAAO,gB,0BAAkD,SAAQ,GAAK,IAAGpd,EAAG,EAAS,K,MAAsB,S,YAAS,O,IAAiB,YAAoC,eAAC,WAAM,MAAC,SAAmB,GAAG,CAAgI,OAAC,KAAQ,KAAuD,mCAAC,IAAM,MAAC,IAA6I,iBAAI,GAAK,CAAW,eAAsB,GAAO,+BAAC,IAAuC,oFAAC,IAAsC,MAAU,SAAS4Z,GAAQ,OAAWpW,EAAM,sBAAkB,MAAS,wFAAC5E,IAAgCkB,MAAQ,K,EAAiBvC,sBAAuB,C,MAAK,CAAC0B,WAAW,qBAAwB,GAAG,CAA2B5B,aAAM,qBAAC,iBAAiB0yF,GAAkB,2BAAG,G,MAA4C,C,MAA2B,EAAOxyF,oBAA4B,qBAAE,uBAACwB,EAAOH,WAAWoxF,yB,EAA+CzyF,yBAAyBgqB,C,MAAI,CAACtoB,WAAW,qBAAyB,GAAG,CACtpI,sCACGtB,QAAAA,SAAoB,GAExB,OAAe,EAAEA,MAAAA,UAAe,E,sICJYqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAA,SAAH,GAAI,MAAiC9I,EAAM,Q,MAAC,GAAO,qBAAQ,C,MAAgC,CAAqD,MAAQ,qC,SAAM,wCAAuB,MAAC,CAAC,KAA4C,QAAnC,EAAc,oBAAqB,qBAA6D,yCAAC6I,eAAgByH,EAAI,0C,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEvQ,EAAK,EAALA,QAAOO,EAAO,SAAEb,EAAI,EAAJA,MAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAA2DQ,EAAAA,GAAAA,GAAK,6BAAY,C,WAAS,EAAe5B,KAAK,aAAwBK,QAAAA,eAAmC,2BAAC5B,WAAM,yB,MAAwB,CAAc,MAAQS,EAAAA,WAAM,OAAkB,MAAQuI,EAAQ,UAAG,MAAC,G,GAA4BiI,C,QAAmB/Q,SAAIqsF,GAA8B,IAAC,qDAAC,GAAI,KAAiB,eAAgB,IAC9nC,UAGD,E,MCJIjrF,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,4BAAsBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC1P,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,uCACA,ICjC+Q,M,sBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCyBhC,IACA6E,WAAAA,CAAAqL,iBAAAA,GAAA6gF,uBAAAA,IACAryF,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEA0b,WAAAA,CACAnc,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACAsrF,yBAAAA,SAAAA,IACAxqF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mDAAAA,CAAAse,eAAAA,EAAAA,QACA,wBACA,4BACA,IChE+Q,M,uBCA/C,GAAe,KCO3O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB5B/e,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,yBAAyB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,WAAarB,EAAIkc,WAAW,QAAUlc,EAAImc,MAAMC,GAAG,uBAAuBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,UAAU,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAmD,IAAxC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAAShI,EAAO,EAAPA,QAASiQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,wBAAwB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,qBAAsBK,WAAW,yBAAyB5B,MAAM,CAAC,OAAO,kBAAMG,GAAI,IAAEoJ,GAAIrJ,EAAIkc,WAAW7S,KAAK,MAAQ,WAAO,EAAE,MAAQP,EAAQ,KAAOgI,EAAO,QAAUhQ,GAAS6B,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIyc,yBAAyBxc,EAAK,GAAC,KAAK,IAAI,MAAK,IACvyB,EACIG,GAAkB,GCFlBgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,4BAAsBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,MAAQrJ,EAAIqB,MAAM,QAAU,MAAMsB,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,kBAAkBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACtQ,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACAgrB,GAAAA,OAEAtqB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,oCACA,IC/B4Q,M,sBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCchC,IACA6E,WAAAA,CAAAyZ,qBAAAA,GAAA0yE,oBAAAA,IACAtyF,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEA0b,WAAAA,CACAnc,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACA0b,yBAAAA,SAAAA,IACA5a,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+CAAAA,CAAAse,eAAAA,EAAAA,QACA,wBACA,0BACA,ICrD4Q,M,uBCA/C,GAAe,KCOxO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCdhC,IAAe5Z,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEosF,oBAAAA,GAAqBC,uBAAAA,IACnChyF,KAAI,WACA,MAAO,CACHiyF,YAAa,EACbC,UAAW,EACXjhE,aAAc,GACdkhE,gBAAiB,CAAC,EAE1B,EACA3yF,MAAO,CACH6nB,MAAO,CACHnoB,KAAMqX,MACN5W,QAAS,MAEbM,QAASqC,QACTsxC,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,iBAGjBkG,MAAK,SAAC6T,GACF,IAAMi4E,GAAoB1rF,EAAAA,EAAAA,KAAqC,MAEzDgB,GAAUnD,EAAAA,EAAAA,WAAS,WACrB,OAAK4V,EAAE2N,MACA3N,EAAE2N,MAAMjZ,KAAI,SAACgjB,GAA2B,iBAAWA,EAAC,IADtC,EAEzB,IAEMghE,GAAsBnsF,EAAAA,EAAAA,MAAI,GAC1BosF,EAAsB,SAACh3E,GACzB+2E,EAAoB5xF,OAAQ,EAC5BmxF,EAAkBnxF,MAAQ6a,CAC9B,EAEMu2E,GAAuB3rF,EAAAA,EAAAA,MAAI,GAC3BqsF,EAAwB,SAACj3E,GAC3Bu2E,EAAqBpxF,OAAQ,EAC7BmxF,EAAkBnxF,MAAQ6a,CAC9B,EAEA,MAAO,CACHpU,QAAAA,EACAqrF,sBAAAA,EACAV,qBAAAA,EACAD,kBAAAA,EACAS,oBAAAA,EACAC,oBAAAA,EAER,EACAvuF,SAAU,CACNrD,QAAO,WACH,MAAO,CACH,CAAES,KAAME,KAAKmP,GAAG,yBAA0B/P,MAAO,QACjD,CAAEU,KAAME,KAAKmP,GAAG,4BAA6B/P,MAAO,qBACpD,CAAEU,KAAM,GAAIV,MAAO,UAAW+B,MAAO,KAAMuuB,UAAU,GACrD,CAAE5vB,KAAME,KAAKmP,GAAG,4BAA6B/P,MAAO,cAAe+B,MAAO,OAC1E,CAAErB,KAAME,KAAKmP,GAAG,8BAA+B/P,MAAO,kBAAmB46C,MAAO,SAChF,CAAEl6C,KAAME,KAAKmP,GAAG,iCAAkC/P,MAAO,uBAAwB46C,MAAO,SACxF,CAAEl6C,KAAME,KAAKmP,GAAG,+BAAgC/P,MAAO,qBAAsB46C,MAAO,UACpF,CAAEl6C,KAAME,KAAKmP,GAAG,4BAA6B/P,MAAO,eAAgB46C,MAAO,UAC3E,CAAEl6C,KAAME,KAAKmP,GAAG,4BAA6B/P,MAAO,UAAW46C,MAAO,SAAU74C,MAAO,OAE/F,GAEJW,MAAO,CACH+uF,YAAW,SAACloD,GACR3oC,KAAKmxF,4BAA4BxoD,EAAU3oC,KAAK6vB,aACpD,EACAA,aAAY,SAACuhE,GACTpxF,KAAKmxF,4BAA4BnxF,KAAK6wF,YAAaO,EACvD,EACAvyF,QAAS,CACLkD,MAAM,EACNiG,WAAW,EACXhG,QAAO,SAAC+F,GAAG,WACFA,IACD/H,KAAK+wF,gBAAkB,CAAC,EACxB/wF,KAAK6F,QAAQoT,SAAQ,SAAC3F,EAAMiE,GACxB,EAAKw5E,gBAAgBz9E,EAAKlM,IAAMmQ,CACpC,IACAvX,KAAKmxF,4BAA4BnxF,KAAK6wF,YAAa7wF,KAAK6vB,cAEhE,IAGR/wB,QAAS,CACLuyF,mBAAkB,WACdrxF,KAAKgxF,qBAAsB,EAC3BhxF,KAAKuwF,kBAAoB,IAC7B,EACAe,qBAAoB,WAChBtxF,KAAKwwF,sBAAuB,EAC5BxwF,KAAKuwF,kBAAoB,IAC7B,EACAY,4BAA2B,SAACN,EAAahhE,GACrC,IAAM0hE,GAAYV,EAAc,GAAKhhE,EAC/B2hE,EAASD,EAAW1hE,EACpB4hE,EAAqBzxF,KAAK6F,QAAQ8jC,MAAM4nD,EAAUC,GACnDxxF,KAAKnB,SACNmB,KAAK0xF,iBAAiBD,EAE9B,EACMC,iBAAgB,SAACC,GAAY,qIAIe,GAJf,SAErBC,EAAWD,EACZ56E,QAAO,SAACzD,GAAI,OAAMA,EAAK68E,eAAe,IACtCnjF,KAAI,SAACsG,GAAI,OAAKoO,GAAcpO,EAAKlM,GAAG,IAElB,GAAnBwqF,EAAS17E,OAAW,iEACK5Q,QAAQ2H,IAAI2kF,GAAS,OAA5CC,EAAiB,EAAH,KAEpBA,EAAe54E,SAAQ,SAAC64E,GACpB,GAAIA,EAAgB,CAChB,IAAMC,EAAY,EAAKhB,gBAAgBe,EAAe1qF,SACpCoF,IAAdulF,IACA,EAAKziE,KAAK,EAAKzpB,QAAQksF,GAAY,eAAgBD,EAAexkE,cAClE,EAAKgC,KAAK,EAAKzpB,QAAQksF,GAAY,cAAeD,EAAeE,aACjE,EAAK1iE,KAAK,EAAKzpB,QAAQksF,GAAY,kBAAmBD,EAAe3B,iBACrE,EAAK7gE,KACD,EAAKzpB,QAAQksF,GACb,uBACAD,EAAezB,sBAEnB,EAAK/gE,KAAK,EAAKzpB,QAAQksF,GAAY,qBAAsBD,EAAe1B,oBACxE,EAAK9gE,KACD,EAAKzpB,QAAQksF,GACb,0BACAD,EAAeG,yBAEnB,EAAK3iE,KAAK,EAAKzpB,QAAQksF,GAAY,eAAgBD,EAAexB,c,CAG9E,IAAG,sDAEH5wF,EAAAA,EAAAA,IAAW,EAAKyP,GAAG,kCAAkC,yDAhC1B,EAkCnC,KCjJ0S,M,uBCAxF,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtB2G,W,IAAYxI,EAAG,K,EAAgB,EAALjG,MAAE,G,OAAI,OAAW,C,MAAgB7C,C,WAAa,G,OAAG,I,YAA+C,OAAG,gBAAI2C,GAAG,SAAY,GAA2B3C,IAAM,OAAC,SAAY,IAAKuB,EAAAA,GAAAA,CAAM,OAAI,UAA4B,GAAOrB,CAAAA,EAAIiG,EAAAA,EAAM,MAAS,gBAAS,SAAG0C,CAAAA,EAAAA,GAAAA,EAAW,CAAC3I,EAAG,yBAAK,C,MAAK,CAAU4I,WAAG,S,GAAiB,CAA+M,oBAAI,2BAACpH,G,YAAuC,O,IAAmB,UAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,oIAAI,KAEvwBtB,MAAAA,CAEJ,MAASgB,EAAQhB,W,+ECiCjB,IACAoG,WAAAA,CACAqsF,uBAAAA,IAEAhyF,KAAAA,WACA,OACA+mE,YAAAA,EAEA,EACAvnE,MAAAA,CACAgB,MAAAA,SC/CuQ,M,sBCA/C,GAAe,KCOnO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCXhC,IAAekF,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAI,WACA,MAAO,CAAE6rF,iBAAiB,EAAO7iE,YAAa,GAAItB,YAAY,EAAOqB,oBAAoB,EAC7F,EACApjB,WAAY,CAAE2tF,iBAAAA,GAAkBC,eAAAA,GAAgBhsE,qBAAAA,IAChDpmB,QAAO,WACHC,KAAKynB,aACT,EACA/kB,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAS,CACL2oB,aAAaC,EAAAA,GAAAA,IAAQ,qBAAoB,yCAAE,oFAEJ,OAFI,SAEnC1nB,KAAK2nB,oBAAqB,EAAK,SACNlG,KAAgB,OAAzCzhB,KAAK4nB,YAAc,EAAH,KAChB5nB,KAAK2nB,oBAAqB,EAAM,oDAEhCjoB,EAAAA,EAAAA,IAAWM,KAAKmP,GAAG,6BAA6B,yDAEvD,SARyD0Y,IAAc,sCAAdA,CAAc,CAA/B,IASzCuqE,kBAAiB,SAACx7C,GACVA,IACJ52C,KAAKmR,QAAQxT,KAAK,gBAClBqC,KAAK62C,OAAS72C,KAAKmP,GAAG,qBAC1B,KCpCqS,M,uBCAxF,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtB4S,GAAK,W,IAAStR,EAAM,K,EAAC,QAAW,GAAQ,oB,OAAc,+BAAE,MAAK,CAAUA,MAAM,yBAAC,eAAO,uDAAME,KAAO,gBAAmK,Q,MAAmB,CAAiB,oBAAG,KAAO,KAA6C,CAACyC,EAAG,KAAkC3C,MAAM,CAAC,SAAW,G,GAAiCsyC,iB,CAAoC,MAAU,CAAG,MAAC,CAACzpC,KAAAA,K,CAAmCC,EAAG,mBAAU,yG,MAAC,CAA8I,cAAC,GAACwJ,MAAM,aAAO5P,EAAI,SAAU,Q,YAAI,Q,GAAW,eAAiB,GAAC,e,MAAC2uD,C,MAAiF,+BAAkB,C,cAAO,kB,SAAkF,I,YAAqFhxD,EAAG,GAAG,CAACH,C,IAAqGi1B,U,GAA6CZ,WAAyB,MAAI,GAAK,GAAG,IAAC,+GAAEjiB,OAAM,GAAM,CAAI3P,IAAG,WAAe3C,GAAK,WAAE,MAAQE,CAAAA,EAAIoR,OAAG,CAA0B8jB,MAAAA,EAAa,4BAAMA,EAAAA,gBAAAA,eAAgB,sBAAC,MAAU,CAAuB,uEAACvsB,QAAkB,EAAE,6DAAkB,SAAU,uFAAC,WAAc,EAAI,4BAAwH,yBAAO,SAAM,EAAIlG,OAAG,OAAsB,gBAAe,C,MAAsB,CAAc,mCAACkG,cAAkB,EAAE,gBAAeC,SAAG,qB,YAAmGlG,EAAW,GAAC,E,IAA2B,U,GAAc5C,W,MAAO,GAAO,GAAC,4G,SAAWE,O,EAA6I,cAAa,C,MAAEF,C,MAAO,EAAO,GAAC,sB,SAAS,I,YAAyG4C,EAAW,GAAC,E,IAA6B,U,GAAc5C,W,MAAO,GAAO,oBAAC,+CAAS,uCAAG,CAACE,EAAG,IAAI,CAAyB0C,MAAAA,CAA4BD,MAAS,UAA2B,GAAC,sFAAM,yCAAK,OAAU,CAAI,OAAW,MAAaspF,YAAkH,CAAC/rF,EAAIG,GAAG,WAAU,GAAKiR,EAAG,oBAA+C26E,GAA/C,qBAA2C/rF,aAAI+rF,EAAkB,OAAQA,CAAiDrpF,YAAY,6BAA6B,CAAC1C,EAAG,IAAO,CAA2I0C,MAAAA,CAA0C1C,MAAO,YAA4F,CAACA,EAAIG,GAAG,WAAU,GAAKiR,EAAG,QAA0C,2BAAM,GAAC,wBAAM,EAAI,OAAM,GAAW1O,CAAsB5C,IAAM,WAAC,cAAqB,4EAAO,YAAW,2BAAM,mIAAgB,yCAA2B,qIAAC,YAAQ,6BAAU,GAAS,OAAI,wDAAC,YAAgB,eAAE,6DAAI,EAAuB4C,OAAAA,QAAuIA,GAAAA,EAAAA,GAAAA,EAAY,CAAY,YAAY,UAAuGlB,MAAM,CAACH,QAAWizF,EAAAA,U,GAAsCt0F,WAAIs0F,C,KAAgB,Y,CAAC5yF,EAAAA,GAAAA,EAAW,CAAa,OAAG1B,MAAW,UAAqB,OAAU,KAASwC,cAAW,O,GAAQ,EAAK2sD,GAAAA,GAAI3sD,C,YAAG,aAAE,GAAI,GAAC,IAAQ,EAAC,yE,YAAO,a,GAAC,OAAO,uF,MAAE,CAAE,MAAMrC,EAAGH,YAAmE,SAAM,SAAgB,GAAiCF,EAAM,aAAC,EAA+B,WAAUE,gBAAe,EAAG,GAACyC,EAAG,eAAgB,GACrtI,eACGrC,IAAAA,EAAAA,IAEJ,MAASgB,C,0PCIT,IAAemF,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAI,WACA,MAAO,CACHyzF,YAAa,WACbliD,cAAe/5B,GAAON,MAAMrI,OAAO,QACnCwlB,cAAe7c,GAAON,MAAMmB,KAAK,EAAG,UAAUxJ,OAAO,QACrDwiC,iBAAkB,EAE1B,EACAvtC,SAAU,CACNowB,4BAA2B,WACvB,OAAK9yB,KAAK8pF,qBACD,GAAK,IAAO,IAAM9pF,KAAK8pF,mBAAmBqG,gBAAmBnwF,KAAK8pF,mBAAmBuG,uBAAuB3sD,QAAQ,GADxF,CAEzC,EACAxQ,kBAAiB,WACb,IAAMk2D,EAAYhzE,GAAON,MAAMmB,KAAK,EAAG,UACjCw5B,EAAe,GAAH,OAAM24C,EAAU37E,OAAO,QAAO,cAAM27E,EAAUkJ,eAC1DC,EAAenmF,EACjBpM,KAAKiwC,iBACLjwC,KAAKstB,cAET,OAAOttB,KAAKiwC,iBAAmB,EACzBjwC,KAAKmP,GAAG,qCAAsC,CAAEssB,QAAS82D,IACzD9hD,CACV,GAEJhsC,MAAK,WACD,IAAMspD,GAAOrrD,EAAAA,EAAAA,WAAS,iBAClB,CACI,CAAEnC,IAAK,WAAY8Q,KAAM,WAAYvR,KAAM,uBAC3C,CAAES,IAAK,QAAS8Q,KAAM,WAAYvR,KAAM,qBAC1CiX,QAAO,SAAC1B,GAAC,OAAKA,CAAC,GAAC,IAGtB,GAAyB0vB,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACN61D,GAAeplF,EAAAA,EAAAA,OACfilF,GAAqBjlF,EAAAA,EAAAA,KAA8B,MAEnD2tF,EAAc,yCAAG,oGACbp+D,EAAO,qBAAmB,uBAAE,oGACG1S,GAAcuoE,EAAa7qF,OAAM,OAAlE0qF,EAAmB1qF,MAAQ,EAAH,iDAC1B,2CACL,kBAJmB,mCAMpB,MAAO,CACH2uD,KAAAA,EACAk8B,aAAAA,EACAH,mBAAAA,EACAx8D,aAAAA,EACAklE,eAAAA,EACA9zC,KAAM,CAAEvkC,GAAAA,EAAIia,OAAAA,GAEpB,EACAt1B,QAAS,CAAC,EAGVgD,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACCA,IACLxuB,KAAKiqF,aAAez7D,EAAGpP,OAAOhY,GAC9BpH,KAAKwyF,iBACLxyF,KAAKnB,SAAU,EACnB,EACAmJ,WAAW,EACXjG,MAAM,MC1E0R,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBYvB,GAAOK,W,IAAS4Z,EAAM,KAAuB,EAAOja,EAAG,SAAiDC,EAAY,MAAM,Y,OAAM,EAAC,sC,YAAS1C,O,MAA2C,CAAuB,MAAS,EAACA,GAAImc,oCAAkC,aAAa,U,QAC1Rnc,EAAI8xC,MAAAA,GAAAA,yB,QACH,EAAK,GAAC/kB,mCAAYwC,CAC7B,6CAAC,wC,CAAoC,uBAAsB,C,MAAC,CAAwB,aAAcvvB,QAA6B,oBAAG,YAAC,4BAAiC,IAAI,MAAO,2BAAwCF,GAAM,kB,YAASE,Y,MAAsC,CAA8C,0CAAIyC,QAAG,KAAc,gC,CAAS,iBAAkB,C,MAAsB,CAAoB,UAAc,KAAC,qBAAW,gBAAG,eAAC,Y,GAA4B,CAAwB,oBAAC,sBAAI,MAExfrC,IAAAA,IAAAA,EAEJ,E,MCPmHN,GAAM,W,IAAC,O,EAAsB,EAAO,MAAKgI,GAAQ,EAAU,MAAK,Y,OAAC,Q,MAAwB,CAAqD,QAAU9H,EAAIc,QAAQ,gBAAC6H,WAAY3I,KAASwC,oBAAa,IAACoG,eAAG,EAAU,kC,QAAS5I,EAAIG,S,YAA6D,OAAK,IAAC,UAACqC,GAAG,WAAe,MAAC,UAAkB,0C,SAAC,G,oBAAwF,YAAC,IAAGxC,EAAO,EAAG,KAA8L,kCAAG,OAAI,aAAc,0CAAsB,CAAPuV,EAAI,OAAJA,EAAI,iK,QAAkD,cAAqE,eAAG,aAAC/S,MAAG,QAAY,CAAI,0BAAkB,CAAP+S,EAAI,QAAJA,EAAI,cAAJA,CAAI,6B,uBAAgG,YAAC,IAAG9S,EAAG,EAAS,K,MAAM,GAAC,e,MAAC,CAAS,sEAA4E,QAAG,OAAI,UAAsC,CAAP8S,EAAI,6D,oCAA2F,G,IAAsD,S,MAAoE,qBAAyB,CAAgC,OAAI,8FAAG,4DAAI,kBAAc,sC,QAAqE,cAAgF,eAAG,aAAC/S,MAAG,SAAuB,0BAAkB,CAAP+S,EAAI,QAAJA,EAAI,cAAJA,CAAI,sC,QAAgG,mB,GAAczV,SAAM,G,IAAC,EAAO,EAAC,K,MAAO,iCAAE,YAAS,0BAAiH4C,CAAAA,EAAAA,EAAAA,EAAW,CAA4B,MAAK,CAAU5C,MAAM,UAAkB,iGAAE,YAAS,4BAA+E4C,CAAAA,EAAAA,EAAAA,EAAW,CAAc,MAAK,CAAiD,kBAAwD,mBAAe,sDAAI,0BAAkB,CAAP6S,EAAAA,QAAI,CAAJA,EAAI,+B,KAAqCzV,YAAM,gC,sBAAc,SAAC,G,IAAG,EAAC,O,MAAC,wBAAmBuc,C,MAAQ,CAAmC,UAAG1T,GAAAA,CAAqBnG,QAAI,SAAS,GAAG,OAAC,kBAAgB,E,eAAkC,O,iBAAU,YAAC,IAAEG,EAAKF,EAAG,GAAiC,mBAAI,MAAK,CAAY,UAAyBF,GAAS,aAAUynB,aAAK,G,IAAmC,S,MAACtoB,CAA4B,mBAAI,6CAAO,EAAc,gCAItoF,G,wBCJ4Ce,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAsB9I,EAAM,Q,MAAC,GAAO,qBAAQ,C,MAA4B,CAAiD,MAAQ,iC,SAAY40F,EAAAA,GAAOzxF,+BAAK,MAAC,CAAC,OAAUjD,OAAImc,MAA4BxT,QAAY3I,EAAIoQ,MAAI,sB,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEvQ,EAAK,EAALA,QAAOO,EAAO,SAAEb,EAAI,EAAJA,MAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAqDQ,EAAAA,GAAAA,GAAK,uBAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAAoB,CAAc,MAAQS,EAAAA,OAAM,OAAkB,MAAQuI,EAAQ,UAAG,MAAC,G,GAA4BiI,C,QAAmB/Q,SAAIqsF,GAA8B,IAAC,qDAAC,GAAI,KAAiB,eAAgB,IAC/hC,UAGD,E,MCJIjrF,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,wBAAkBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACtP,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,ICjC2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCwBhC,IACA6E,WAAAA,CAAAqL,iBAAAA,GAAA8iF,mBAAAA,IACAt0F,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEAk0F,OAAAA,CACA30F,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACAsrF,yBAAAA,SAAAA,IACAxqF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+CAAAA,CAAAoB,KAAAA,EAAAA,QACA,uBACA,IC9D2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCdhC,IAAesD,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEykE,eAAAA,GAAgB2pB,mBAAAA,IAC9Bv0F,MAAO,CACH6nB,MAAO9Q,MACPtW,QAASqC,QACTsxC,YAAa,CACT10C,KAAMsD,OACN7C,QAAS,aAGjBkG,MAAK,SAAC6T,GACF,IAAMzS,GAAUnD,EAAAA,EAAAA,WAAS,WACrB,OAAK4V,EAAE2N,MACA3N,EAAE2N,MAAMjZ,KAAI,SAACgjB,GAAgB,yBAAWA,GAAC,IAAE21C,YAAY,GAAK,IAD9C,EAEzB,IACA,MAAO,CAAE9/D,QAAAA,EACb,EACAnD,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BnsB,QAAO,WACH,MAAO,CACH,CAAES,KAAME,KAAKmP,GAAG,qBAAsB/P,MAAO,QAC7C,CAAEU,KAAME,KAAKmP,GAAG,qBAAsB/P,MAAO,OAAQ+B,MAAO,OAC5D,CAAErB,KAAME,KAAKmP,GAAG,yBAA0B/P,MAAO,WAAY46C,MAAO,SAAU74C,MAAO,OACrF,CAAErB,KAAME,KAAKmP,GAAG,uBAAwB/P,MAAO,SAAU46C,MAAO,SAChE,CAAEl6C,KAAME,KAAKmP,GAAG,uBAAwB/P,MAAO,SAAU46C,MAAO,SAChE,CAAEl6C,KAAME,KAAKmP,GAAG,4BAA6B/P,MAAO,cAAe46C,MAAO,SAC1E,CAAEl6C,KAAME,KAAKmP,GAAG,wBAAyB/P,MAAO,UAAW46C,MAAO,SAAU74C,MAAO,OAE3F,MCrCsS,M,uBCAxF,GAAe,KCOjO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCShC,IAAemD,EAAAA,EAAAA,iBAAgB,CAC3B1F,KAAI,WACA,MAAO,CAAE6rF,iBAAiB,EAAO7iE,YAAa,GAAItB,YAAY,EAAOqB,oBAAoB,EAC7F,EACApjB,WAAY,CAAE+qC,mBAAAA,GAAoBsjD,aAAAA,IAClCx0F,MAAO,CAAEgB,MAAOsC,OAAQ7C,QAASqC,SACjCwB,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BgnB,YAAW,WACP,MAAO,gBAAP,OAAuBxyC,KAAKZ,MAAMgI,GACtC,IAEJ3C,MAAK,SAAC6T,GACF,IAAMu6E,GAAUhuF,EAAAA,EAAAA,KAAqB,IAC/BiuF,EAAW,yCAAG,oGACV1+D,EAAO,kBAAgB,uBAAE,0FACc,OAAnCqoD,EAAOnkE,EAAElZ,MAA0B,SACnBJ,GAAyBy9E,EAAKr1E,IAAG,OAAvDyrF,EAAQzzF,MAAQ,EAAH,iDACf,qGAJW,mCAMjB,GAAyB2lC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACR,EAAuB0G,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACN0nD,GAAej3E,EAAAA,EAAAA,KAAuB,CACxCqT,aAAc,MACdO,iBAAkB,KAClBlC,YAAavG,GAAAA,QACbuI,YAAa,KAEX+a,GAAezuB,EAAAA,EAAAA,KAAI,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC3CwjB,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DmU,GAAUnU,EAAAA,EAAAA,KAAsB,IAChCgrC,EAAsB,CAAEzwC,MAAO,GAC/B4gC,GAAUn7B,EAAAA,EAAAA,KAAmB,MAC7B04E,EAAY,yCAAG,oGACXnpD,EAAO,mBAAiB,uBAAE,0GAImC,GAHzDqoD,EAAOnkE,EAAElZ,MACXggB,EAASsoB,GAA2Bo0C,EAAa18E,OAC/Cua,EAAcmiE,EAAa18E,MAAMua,YACvCyF,EAAS69D,GAA+BjkE,EAAQ5Z,MAAOggB,GAClDA,EAAQ,CAAF,gEACwC9Z,QAAQ2H,IAAI,CAC3DqS,IAAS,kBACFF,GAAM,IACT5G,YAAaikE,EAAKr1E,GAClBuS,YAAamiE,EAAa18E,MAAMua,YAChC4F,OAAQ,CAACxP,GAAgBwwC,YAE7B/gC,IAAY,kBACHJ,GAAM,IAAE5G,YAAaikE,EAAKr1E,KAC/B00E,EAAa18E,MAAM8Y,aACnB4jE,EAAa18E,MAAMqZ,oBAEzB,gCAZKq4B,EAAa,KAAEG,EAAmB,KAanCF,EAAe1U,GAA+ByU,EAAe,CAC/DnU,WAAY1B,GAAiBO,UAE3B0uB,EAAkBvsB,GAAoCsT,GAC5D3d,EAAal0B,MAAQ,CACjB+5B,OAAQ,GAAF,gBAAM+wB,EAAgB/wB,SAAM,QAAK4X,EAAa5X,SACpDyD,SAAU,GAAF,gBAAMstB,EAAgBttB,WAAQ,QAAKmU,EAAanU,YAE5DwjB,EAAgBhhD,MAAQyuC,GAAyB4S,qBAC7CrhC,EACAzF,EACAm3B,EACAgrC,EAAa18E,MAAMuoC,UAEvBkI,EAAoBzwC,MAAQ0xC,EAAciiD,eAAiB,EAC3D/yD,EAAQ5gC,OAA2B,OAAnB6xC,QAAmB,IAAnBA,OAAmB,EAAnBA,EAAqB7wB,eAAgBhB,EAAOvI,OAAO,6CACrE,qGApCY,mCAsCZ2c,EAAuB,SAAH,GAAsD,IAAhD0J,EAAO,EAAPA,QAASl8B,EAAI,EAAJA,KAAMohC,EAAc,EAAdA,eACvClF,EACA4+C,EAAa18E,MAAMmZ,YAAcujE,EAAa18E,MAAMmZ,YAAc,GAC3DujE,EAAa18E,MAAMua,cAAgBlG,GAAiBwB,QAC3DvV,EAAAA,EAAAA,IAAWy8E,GAAAA,EAAO,wCAElBnjE,EAAQ5Z,MAAMzB,KAAK,CACfyJ,GAAIg7B,EACJphC,KAAAA,EACAlD,KAAMoX,GAAW4mE,EAAa18E,MAAMua,cAGhD,EAYA,OAVA7X,EAAAA,EAAAA,QACI,iBAAM,CAACwW,EAAElZ,MAAO08E,EAAa18E,MAAO4Z,EAAQ5Z,MAAM,IAClD,WACSkZ,EAAElZ,OAAU08E,EAAa18E,QAAS+a,EAAG,qBAC1CojE,IACAuV,IACJ,GACA,CAAE9qF,WAAW,EAAMjG,MAAM,IAGtB,CACH+5E,aAAAA,EACAxoD,aAAAA,EACA8sB,gBAAAA,EACApnC,QAAAA,EACAukE,aAAAA,EACA/pD,qBAAAA,EACAqc,oBAAAA,EACAviB,aAAAA,EACAoxB,KAAM,CAAEvkC,GAAAA,GACR04E,QAAAA,EACAC,YAAAA,EACA9yD,QAAAA,EAER,IC5IsS,M,uBCAxF,GAAe,KCO7N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtByD,GAAU,W,IAA8BniC,EAAM,K,EAAC,EAAO,MAAKm1F,GAAgB,EAAC,kB,OAAa,+BAAG,MAAI,CAAoGn1F,MAAM,YAAC,KAAO,iBAA0CE,EAAG,KAAQA,CAAG,EAAG,eAAamY,CAAAA,EAAM,YAAO4/B,iBAAoB,WAAU,gBAAc,CAACj4C,MAAM,CAAC,MAAQE,EAAIoR,GAAG,iCAAqC,CAACpR,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAI+3C,QAAAA,OAAY5/B,EAAO,YAAW,eAAc,iBAACrY,MAAM,CAAC,MAAQE,EAAIoR,GAAG,qCAAwC,CAACpR,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAIk1F,YAAAA,QAAoB,OAAMzyF,EAAG,cAAS,CAAC3C,MAAM,CAAC,MAAQ,EAAE,2CAA8D,kDAAE,MAAMK,CAA+FL,MAAM,GAAC,MAAe,IAAPE,EAAIoR,oBAAG,UAAmC,YAAI,CAACpR,EAAIG,GAAG,IAAIH,EAAIkS,GAA2B,IAAxBlS,EAAIm1F,oBAAyB1yF,OAAG,WAAS,4BAAC3C,MAAM,CAAC,MAAQ,EAAE,0CAA2D,iDAAE,MAAMK,CAAiJuC,MAAW,GAAQ5C,MAAM,6C,CAAoC,SAAUE,EAAM,GAAkB,IAAjB,qBAAiB,2FAAC,YAAC,OAAC2I,MAAAA,CAAsEnG,MAAI,yBAAgBoG,QAAG,KAAU,oB,YAAqC,oD,wCAAwF,yBAAC,GAAC,CAACD,QAAY3I,SAAQ,GAACwC,EAAI,YAAS,0CAACoG,G,YAA4BnG,EAAG,K,IAAgB3C,U,YAAe,G,IAAW,OAAC,MAAK,CAAC,EAAG,IAAC,EAAQ,GAAEE,CAAuC,OAAQ,MAAO,cAAuB,GAAK,CAACuoB,EAAAA,EAAAA,EAAW,oCAAChmB,IAAyBvC,MAAIuoB,EAAAA,W,MAAe,CAAC7mB,MAAAA,EAAU,WAAa,qBAAI,cAAC,EAAM,WAAC,gBAA4C5B,EAAO,UAAwC,MAAQE,MAAI80F,I,CAAQ,iBAAe,CAAU,MAAC,CAAG,QAAC,4BAAC,MAAS,EAAC,Q,eAAqBC,YAAyD,IAAI,QAAQ9kF,SAAQ,GAAgBvN,EAAAA,YAAY,EAAW,wCAAC5C,MAAmD,KAAS,KAAKsR,EAAG,gBAA8B,YAAC,YAACzI,MAAAA,CAAsEnG,MAAI,kCAAgBoG,QAAG,KAAU,gC,YAA8C,oD,wCAAwD,kCAAC,GAAC,CAACD,QAAY3I,SAAQ,GAACwC,OAAI,mBAAUoG,G,YAA4BnG,EAAG,K,IAAgB3C,U,YAAe,G,IAAW,OAAC,MAAK,CAAC,EAAG,IAAC,EAAQ,GAAEE,CAAuC,OAAQ,MAAO,cAAuB,GAAK,CAACo1F,EAAAA,EAAAA,EAAAA,CAAAA,EAAgB,iCAAC7yF,IAAyBvC,MAAIo1F,EAAAA,W,MAAoB,CAAC1zF,MAAAA,EAAU,gBAAkB,qBAAI,mBAAC,EAAM,WAAC,qBAAgD5B,EAAO,UAA4C,MAAQE,MAAI+3C,I,CAAY,qBAAe,CAAU,MAAC,CAAG,QAAC,gCAAC,MAAS,EAAC,Y,eAA4Bs9C,YAAkB,IAAI,QAAQ5yF,SAAiB,GAAC3C,OAAM,mBAAC,MAA6B,IAAC,oB,MAAC,CAA6B,2BAC7/F,IACGM,MAAAA,EAAe,sB,UCFfgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,kBAAkB,CAAC3C,MAAM,CAAC,MAAQE,EAAIqB,MAAM,OAASrB,EAAI00F,OAAO,QAAU10F,EAAImc,MAAMC,GAAG,mBAAmBzZ,GAAG,CAAC,MAAQ,SAAS0Z,GAAQ,OAAOrc,EAAIiG,MAAM,QAASoW,EAAO,GAAG1T,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,YAAYoG,GAAG,SAAS0T,GAAU,MAAO,CAACtc,EAAI0Q,GAAG,UAAU,KAAK,KAAK4L,GAAU,GAAG,CAAC9Z,IAAI,UAAUoG,GAAG,YAAmD,IAAxC3I,EAAI,EAAJA,KAAM6Q,EAAM,EAANA,OAAQhI,EAAO,EAAPA,QAAShI,EAAO,EAAPA,QAASiQ,EAAK,EAALA,MAAS,MAAO,CAACtO,EAAG,qBAAqB,CAAC8Z,WAAW,CAAC,CAACtZ,KAAK,aAAauZ,QAAQ,eAAenb,MAAO,iBAAkBK,WAAW,qBAAqB5B,MAAM,CAAC,MAAQG,EAAK,MAAQ,WAAO,EAAE,MAAQ6I,EAAQ,KAAOgI,EAAO,QAAUhQ,GAAS6B,GAAG,CAAC,QAAU,SAAS0Z,GAAQtL,IAAQlC,MAAK,kBAAM7O,EAAIyc,yBAAyBJ,EAAO,GAAC,KAAK,IAAI,MAAK,IAC7uB,EACIjc,GAAkB,GCFsBqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA+C,eAAG,qCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAiB9I,EAAM,Q,MAAC,GAAO,gBAAW,C,MAAC,CAAsB,eAAC6I,QAAY3I,EAAIoQ,S,YAAsB,KAASvH,CAAAA,C,IAAgB,U,GAA0BlG,SAAG,G,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAsE,sEAAiB,eAAgB,IAC/nB,UAGD,E,MCJ4Dia,GAAO1c,WAAsB,MAAU,KAAaF,EAAK,EAAC,SAAQ,EAACE,MAAIyI,Y,OAAuC,cAAeC,C,MAA6C,CAAsB,2CAACC,SAAY3I,EAAIoQ,UAAI,+BAAC5N,QAAI,EAAS,S,YAAesO,EAAM,K,IAAEE,U,GAAS,SAAc,G,IAAiB,EAAU,EAAK,OAAC,EAAQ,EAACF,M,MAAO,GAAS,GAAC9Q,UAAW,MAAC,OAAUA,KAAY,OAAQgR,EAAO,QAAC,4BAAI,MAAU,IAAQ3P,IAAoBkB,MAAQ,G,MAAoB,CAAY,MAAC,UAACb,SAAU,SAAC,GAAS,WAAIe,EAAmB3C,WAAM,YAAgB,SAAC0B,MAAM,CAACH,MAAOrB,Q,MAAsC,CAAS,MAAC,OAAC0B,SAAU,SAAC,GAAM,QAAIe,EAAe3C,WAAM,UAAqB,OAAW,C,MAAQ,CAAkB,MAAQ,UAAS,mBAAC0B,aAAM,KAACH,MAAOrB,U,MAAwC,CAAW,MAAC,SAAC0B,SAAU,SAAC,GAAQ,UAAIe,EAAuB3C,WAAM,YAAsB,sBAAC0B,MAAM,CAACH,MAAOrB,c,MAAiD,CAAoB,MAAC,kBAAC0B,SAAU,SAAC,GAAiB,mBAAIe,EAAmB3C,WAAM,qBAAiB,OAAQ,CAAQ,MAAC,CAAC0B,KAAM,SAACH,MAAOrB,U,MAAwC,CAAW,MAAC,SAAC0B,SAAU,SAAC,GAAQ,UAAIe,EAAmB3C,WAAM,YAAiB,OAAQ,C,MAAc,CAAa,cAAC0B,MAAM,cAACH,OAAU,K,MAAmD,CAAyB,MAAC,uBAACK,SAAU,SAAC,GAAsB,wBAAIe,EAAe3C,WAAM,0BAAyB,OAAW,C,MAAQ,CAAkB,MAAQ,cAAc,mBAAC0B,aAAM,KAACH,MAAOrB,e,MAA8C,CAAiB,MAAC,eAAC0B,SAAU,SAAC,GAAc,gBAAI,EACrkD,8BAGD,E,QCAA,IAAe6E,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEoI,MAAOpF,OAAQqF,SAAUrF,OAAQvC,QAASqC,SACnDuD,MAAK,WACD,IAAMoC,GAAUhC,EAAAA,EAAAA,MAAI,GACd7D,GAAO6D,EAAAA,EAAAA,KAAI,IACXuxC,GAASvxC,EAAAA,EAAAA,KAAI4Q,GAAa49E,SAC1BC,GAAUzuF,EAAAA,EAAAA,KAAI,CAChB,CAAEuC,GAAIqO,GAAa89E,OAAQzzF,KAAM,UACjC,CAAEsH,GAAIqO,GAAa49E,QAASvzF,KAAM,WAClC,CAAEsH,GAAIqO,GAAa+9E,UAAW1zF,KAAM,aACpC,CAAEsH,GAAIqO,GAAag+E,OAAQ3zF,KAAM,YAE/B4zF,GAAkB7uF,EAAAA,EAAAA,KAAI,IAAIsT,MAC1Bqf,GAAS3yB,EAAAA,EAAAA,KAAI,GACb8uF,GAAuB9uF,EAAAA,EAAAA,KAAI,GAC3BolF,GAAeplF,EAAAA,EAAAA,KAAI,IACnB+iB,GAAc/iB,EAAAA,EAAAA,KAAyB,IAC7C4c,KAAiB7U,MAAK,SAAC8D,GAAC,OAAMkX,EAAYxoB,MAAQsR,CAAC,IACnD,IAAM1S,GAAO0E,EAAAA,EAAAA,WAAS,iBAAO,CACzB1B,KAAMA,EAAK5B,MACXg3C,OAAQA,EAAOh3C,MACfs0F,gBAAiBA,EAAgBt0F,MACjCo4B,OAAQA,EAAOp4B,MACfu0F,qBAAsBA,EAAqBv0F,MAC3C6qF,aAAcA,EAAa7qF,MAC9B,IACD,MAAO,CACHyH,QAAAA,EACAuvC,OAAAA,EACAs9C,gBAAAA,EACAl8D,OAAAA,EACAm8D,qBAAAA,EACA1J,aAAAA,EACAriE,YAAAA,EACA0rE,QAAAA,EACAtyF,KAAAA,EACAhD,KAAAA,EAER,IC1C2S,M,uBCAxF,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCHhC,IACAI,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEAk0F,OAAAA,CACA30F,KAAAA,OACAS,QAAAA,MAEAM,QAAAA,CACAf,KAAAA,QACAS,SAAAA,IAGAgG,WAAAA,CAAAqvF,cAAAA,KClCwQ,MCOpQ,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5Bz0F,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,mBAAmBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAO,eAAe,MAAQE,EAAIqB,MAAM,QAAU,MAAMsB,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,mBAAmBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YAC5O,EACI5f,GAAkB,GCsBtB,IACAC,OAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA8qB,GAAAA,EAAAA,OAEApqB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,IC/B2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCehC,IACA6E,WAAAA,CAAAsvF,gBAAAA,GAAAC,mBAAAA,IACA11F,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEAk0F,OAAAA,CACA30F,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACA0b,yBAAAA,SAAAA,IACA5a,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+CAAAA,CAAAoB,KAAAA,EAAAA,QACA,wBACA,6BACA,ICtD2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBsDnD,GAAM,W,IAAC,O,EAAsB,EAAO,MAAKooB,G,OAAM,OAAe,C,MAAC,CAAwB,UAAc,QAA0C,MAAS,EAACloB,MAAY,gBAAC2I,oBAAoB,IAACnG,eAAa,uCAACoG,QAAG,W,YAAgF,OAACwJ,IAAK,UAAM,GAAC,WAAC5P,MAAG,MAAY,iDAACoG,E,OAAc2M,G,KAA0B7S,Y,GAAqB,SAAY,G,IAAiC5C,EAAM,O,MAAC,CAAI,SAAiD,sBAAG,CAAa,WAAZ2C,EAAG,KAAS,iBAAC3C,MAAM,CAAC,GAAM,GAAC,0DAAK,CAACE,EAAG,IAAI,CAA0GF,MAAM,CAAC,KAAI,KAA8D,CAAC2C,EAAG,eAAS,+EAAC3C,MAAM,CAAC,GAAM,GAAC,oEAAK,CAACE,EAAG,IAAI,CAA+GF,MAAM,CAAC,KAAI,KAAoD,CAAC2C,EAAG,oBAAS,+EAAC3C,MAAM,CAAC,GAAM,GAAC,0DAAK,CAACE,EAAG,IAAI,CAAiHF,MAAM,CAAC,KAAI,KAAsF,CAAC2C,EAAG,sBAAS,+EAAC3C,MAAM,CAAC,GAAM,GAAC,kGAAK,CAACE,EAAG,IAAI,CAAqI,OAAG,UAAwB,gBAAkB,4G,QAA+BF,gB,YAAO,G,IAA6C,S,MAAiD,qBAAyB,C,MAA0C,CAAyD,0CAAI,yGAAG,wD,QAA4D4C,a,GAAyB,SAAY,GAAyD,aAAG,eAAI,0BAAkB,aAAkB,cAAlB,CAAkB,4B,QAAqBA,c,GAAyB,SAAY,GAAsE,aAAG,eAAI,0BAAuB,aAAkB,cAAlB,CAAkB,uC,QAAuDA,mB,GAAqC,SAAK,G,IAAU5C,EAAM,O,MAAC,GAAQ,8BAAO,sCAAG,CAACE,EAAG,IAAI,CAAwM0C,MAAAA,CAAyCD,MAAG,U,CAAiB,KAAO,WAAC,yJAAS,wCAAG,CAACzC,EAAG,IAAI,CAA2M0C,MAAAA,CAA2B1C,MAAO,YAAkJ,CAAI,EAAC,GAAI,uKAAG,0BACr3F,8HACGI,IAEJ,MAASgB,I,QCoFT,IACAoF,WAAAA,CAAAykE,eAAAA,IACA5qE,MAAAA,CACA6nB,MAAAA,MACApnB,QAAAA,CACAf,KAAAA,QACAS,SAAAA,GAEAi0C,YAAAA,CACA10C,KAAAA,OACAS,QAAAA,aAGAmE,SAAAA,CACArD,QAAAA,WACA,OACA,CACAS,KAAAA,KAAAA,GAAAA,QACAV,MAAAA,OACA+B,MAAAA,OAEA,CAAArB,KAAAA,KAAAA,GAAAA,6BAAAV,MAAAA,WAAA46C,MAAAA,SAAA74C,MAAAA,OACA,CAAArB,KAAAA,KAAAA,GAAAA,0BAAAV,MAAAA,QAAA46C,MAAAA,SACA,CAAAl6C,KAAAA,KAAAA,GAAAA,2BAAAV,MAAAA,SAAA46C,MAAAA,SACA,CAAAl6C,KAAAA,KAAAA,GAAAA,gCAAAV,MAAAA,cAAA46C,MAAAA,SAEA,IClHyQ,M,uBCA/C,GAAe,KCOrO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkFn8C,GAAM,W,IAAC,O,EAAkB,QAAY,GAAM,oB,OAAI,iB,MAAC,C,MAAgCE,EAAIiG,MAAsB,mBAAG0C,GAAAA,CAAqBnG,MAAI,SAAW,GAAG,OAAC,QAASwzF,QAAAA,E,GAA0E,YAAE,OAACxzF,IAAI,YAAUoG,GAAG,YAAmB,MAARmI,CAAAA,EAAK,0B,8BAA4F,G,IAA2C,IAAU/Q,M,MAAY,gBAAC2I,MAAAA,CAAqBnG,MAAI,KAAS,gCAACoG,SAAG,wC,QAAWkI,EAAM,S,YAAgB,O,IAAI,U,GAA0BnO,SAAG,G,IAAC,EAAQ,S,EAAiB,EAAOoO,M,EAAO,U,MAAC,kBAAG,GAAG,CAAyBjR,MAAM,YAAC,OAAO,GAAS,KAAmC,QAAYE,EAAG,IAAM,C,MAAmE,CAAkB,KAAO8Q,SAAO,kBAAG,UAAC,GAAC,UAAQ,SAASuL,IAAO,2C,QAAQhK,E,KAAiB,GAAkC,IAAI5P,MAAG,SAAS,GAAQ,OAAP3C,EAAM,iBAAQ,eAAE,IAA2C,QAAI,MAAK,CAAY,UAAmByC,CAAAA,EAAS,eAAUynB,GAAG,YAAE,G,IAAe,S,MAACtoB,CAAkB,cAAIe,SAAG,YAA8B3C,EAAM,OAAC,EAAiB,WAAW,U,CAAgE,+BAAqB,C,MAAmD,CAAsD,UAASE,EAAuB,aAACwB,MAAM,kDAACH,YAAW40F,EAAAA,GAAAA,mDAAc1zF,MAAQ,CAAC,yBAAe,iB,MAAK0zF,CAAAA,EAAAA,OAAajsE,a,MAAKtoB,CAAyB,qBAAIe,SAAG,SAAe,GAAC3C,EAAM,cAAC,EAAgB,6BAAsF,OAAa47D,C,MAAmB,CAAc,cAACl6D,kBAAM,GAACH,MAAOrB,EAAIo7E,GAAAA,kDAAmB74E,MAAQ,CAAC,qB,SAAoB64E,I,MAAuB15E,CAA8B,0BAAI,SAAI,iCAAQ,EAAQ,mCAEj1DtB,GAEJ,I,kBCGA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEgB,MAAO8B,SAChBuD,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDqvD,GAAenvF,EAAAA,EAAAA,KAAmC,MAClDs0E,GAAoBt0E,EAAAA,EAAAA,KAAmB,MACvCrG,GAAQqG,EAAAA,EAAAA,MAAI,GACZhG,GAAUgG,EAAAA,EAAAA,MAAI,GACdovF,EAAQ,yCAAG,WAAOC,EAAqBC,GAA4B,yFAE5DH,EAAa50F,MAAO,CAAF,mDAClB+5E,EAAkB/5E,MAAO,CAAF,gDAExBoQ,EAAqB,KAAI,KACrBwkF,EAAa50F,MAAM8b,KAAI,cACtB1H,GAAAA,QAAkB,SAGlBA,GAAAA,QAAkB,UAGlBA,GAAAA,aAAuB,UAGvBA,GAAAA,IAAc,mBARyC,OAAxDhE,EAAM,0BAAH,OAA6BwkF,EAAa50F,MAAMyb,IAAK,6BAGA,OAAxDrL,EAAM,0BAAH,OAA6BwkF,EAAa50F,MAAMyb,IAAK,6BAGK,OAA7DrL,EAAM,+BAAH,OAAkCwkF,EAAa50F,MAAMyb,IAAK,6BAGF,OAA3DrL,EAAM,6BAAH,OAAgCwkF,EAAa50F,MAAMyb,IAAK,+DAK9C,OAArBhc,EAAQO,OAAQ,EAAK,UACfqQ,EAAAA,EAAAA,KAAAA,MAAiBD,EAAK,CACxB,CAAEu8D,GAAI,UAAWhf,KAAM,oBAAqB3tD,MAAO+5E,EAAkB/5E,SACvE,QAGc,OAFhBQ,EAAAA,EAAAA,IAAa,gDAAD,OAAiDo0F,EAAa50F,MAAM0b,OAChFo5E,IACAvvD,EAAK,WAAW,UACVwvD,IAAS,8DAEfz0F,EAAAA,EAAAA,IAAW,4DAA4D,QAEjD,OAFiD,UAEvEb,EAAQO,OAAQ,EAAM,6EAE7B,gBAnCa,wCAoCd,MAAO,CAAEZ,MAAAA,EAAOK,QAAAA,EAASm1F,aAAAA,EAAc7a,kBAAAA,EAAmB8a,SAAAA,EAC9D,ICnDyT,M,uBCAxF,GAAe,KCOhP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCXhC,IAAe3vF,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEquF,aAAAA,GAAcwB,mBAAAA,GAAoBC,iBAAAA,GAAkBC,4BAAAA,IAClE9tF,MAAK,SAAC2qB,GACF,OAAOA,EAAIrG,YAAYO,iBAAiB,WAClC8F,EAAIhiB,GAAG,sBACPgiB,EAAIhiB,GAAG,mBACjB,EACAzM,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BwnE,UAAS,WACL,OAAOhzF,KAAK8qB,YAAYO,iBAAiB,WACvCrrB,KAAKmP,GAAG,sBACRnP,KAAKmP,GAAG,mBACd,IAEJpP,QAAO,WACHC,KAAK8yF,YAAY9yF,KAAK8qB,YAAYO,iBAAiB,YACnDrrB,KAAKozF,iBACT,EACA3uF,MAAK,WACD,MAAuBuvB,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNv1B,GAAUgG,EAAAA,EAAAA,MAAI,GACdyhB,GAAazhB,EAAAA,EAAAA,MAAI,GACjBsuF,GAAkBtuF,EAAAA,EAAAA,MAAI,GACtBguF,GAAUhuF,EAAAA,EAAAA,KAAqB,IAC/BixC,GAAcjxC,EAAAA,EAAAA,KAA6B,IAC3CiuF,EAAW,yCAAG,WAAO/mE,GAAa,2EACf,IAAlBA,EAAuB,iEACpBqI,EAAO,kBAAgB,uBAAE,oGACLp1B,KAAmB,OAAzC6zF,EAAQzzF,MAAQ,EAAH,iDACf,2CACL,gBALgB,sCAMXg0F,EAAe,yCAAG,oGACdh/D,EAAO,sBAAoB,uBAAE,oGACLp1B,KAAuB,OAAjD82C,EAAY12C,MAAQ,EAAH,iDACnB,2CACL,kBAJoB,mCAKf6zF,GAAsBvwF,EAAAA,EAAAA,WAAS,WACjC,OACImwF,EAAQzzF,MAAM2X,QAAO,SAACoZ,GAAC,OAAKA,EAAEokE,qBAAuB,GAAG,IAAEr+E,OAC1D4/B,EAAY12C,MAAM2X,QAAO,SAACoZ,GAAC,OAAKA,EAAEokE,qBAAuB,GAAG,IAAEr+E,MAEtE,IACMg9E,GAAqBxwF,EAAAA,EAAAA,WAAS,WAChC,OACImwF,EAAQzzF,MAAM2X,QAAO,SAACoZ,GAAC,OAAKA,EAAEqkE,mBAAqB,GAAG,IAAEt+E,OACxD4/B,EAAY12C,MAAM2X,QAAO,SAACoZ,GAAC,OAAKA,EAAEqkE,mBAAqB,GAAG,IAAEt+E,MAEpE,IACA,MAAO,CACH28E,QAAAA,EACA/8C,YAAAA,EACAg9C,YAAAA,EACAM,gBAAAA,EACA10C,KAAM,CAAEvkC,GAAAA,GACR84E,oBAAAA,EACAC,mBAAAA,EACAr0F,QAAAA,EACAynB,WAAAA,EACA6sE,gBAAAA,EAER,EACAr0F,QAAS,CACLszF,kBAAiB,SAACx7C,GACVA,IACJ52C,KAAKmR,QAAQxT,KAAK,YAClBqC,KAAK62C,OAAS72C,KAAK8qB,YAAYO,iBAAiB,WAC9CrrB,KAAKmP,GAAG,sBACRnP,KAAKmP,GAAG,oBACd,KChFiS,M,sBCAxF,GAAe,KCO5N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBkR,cAAC,IAAG3O,EAAG,KAAS3C,EAAK,EAAC,SAAC,EAAU,MAAG,Y,OAAC,EAAK,6BAAU,OAAI2C,MAAG,EAAS,0BAAC3C,WAAM,+BAAU,sBAAkKA,EAAK,KAAC,C,MAAC,CAAmB,MAAQ,cAAS,UAAqFA,CAAAA,EAAK,IAAC,C,MAAC,CAAc,YAAI2C,GAAG,aAAsiB,CAACA,EAAG,KAAuB3C,MAAM,CAAC,KAAO,K,CAAe,KAAO,gBAAY42F,EAAAA,GAAAA,IAAAA,EAAkB,yF,MAAC,CAAc,iBAAIj0F,MAAG,aAA8H,QAAS,4CAAK,OAAIA,OAAG,QAAsZ,CAACA,EAAG,cAAsB,0ZAAC3C,YAAM,0C,CAAC,OAAU,C,MAAC,CAAW,KAAO,IAA8B,MAAQE,GAAqD,kCAAIyC,MAAG,S,CAA8I,WAAS,+FAAK,OAAIA,OAAG,QAAgO,CAACzC,EAAG,MAAWA,CAAAA,EAAI00F,GAAAA,mBAAyB,EAAE,OAAO,qBAAoB,oOAAChyF,YAAY,0CAA0C,CAACD,EAAG,MAAuB3C,MAAM,CAAC,KAAQ,IAAK,MAAO,GAAI,MAAQ,EAAE,yBAAC,MAAQE,EAAI00F,OAAO8B,mBAAmB,oBAAoE,uHAAE,MAAK,CAAsS12F,OAAM,QAAyB,gIAAG,MAAI,EAAK,OAAI,qBAAe,wBAAC4C,CAAAA,EAAAA,GAAAA,EAAY,KAAK,4CAAC5C,YAAM,0C,CAAC,OAAmB62F,C,MAAmB,CAAsB,W,KACnoGjiD,IACJ,SAAE,mCAAC/rC,MAAW,EAAC3I,OAAQ,6C,CAAe4I,EAAE,SAAC,GAAU,iO,MAAC,C,KAA0D9I,EAAM,iB,QAAU,Q,YAAQK,M,MAA4EL,C,MAAO,EAAO,OAAC,cAAS,G,QAAC,EAAO,Q,eAAE,CAAC,oBAAoB,CAAC,GAAE2C,IAAG,K,YAAkG,OAAC2P,IAAK,UAAM,GAAC,WAAC5P,MAAG,UAAc,aAAmE,gBAAG,OAAI,gBAAkB,UAAmB,GAAQxC,GAAG,aAAYkS,EAAGlS,OAAO,CAA6D,6BAAG,0DAAhN,gBAAI,OAAWuV,KAAI,KAAgD,sDAA8I/S,EAAkBoG,OAAG,G,KAAmB,cAA4F,eAAG,aAACpG,MAAG,YAAuB,kBAACoG,G,KAAsB,c,GAAqB9I,SAAM,G,IAAC,EAAO,EAAK82F,K,MAA2B,4E,GAA4F,CAAE,IAAC,cAACp0F,GAAG,YAA0B,IAAC,SAAkB,MAAP+S,CAAI,yE,2CAA0E,G,IAAmB,EAAO,EAAC,K,MAAE,SAAG,MAAKpV,CAAgE,mCAAqB,CAAC,EAAG,GAAG,IAAI,EAAG,GAAG,EAAG,cAAH,CAAG,8CACrtC,GACGC,CAEJ,IAASgB,uB,6NCNLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCOtBorB,GAAAA,GAAAA,SAAeyR,GAAAA,GAEf,IAAMI,GAA4B,MAOrBw5D,GAAwC,SAACC,GAClD,IAAMj4D,EAAqE,GACrEzD,EAAmB,GACnB27D,EAA+D,CAC7Dl2F,KAAM,GACN6mB,MAAO,gBACPwX,gBAAiB,OACjB7C,YAAa,QACbG,YAAa,EACblE,YAAY,EACZ0+D,gBAAiB,IAEnBC,EAAgE,CAC9Dl3F,KAAM,OACNc,KAAM,GACN6mB,MAAO,eACPwX,gBAAiB,SACjB7C,YAAa,SACbG,YAAa,EACblE,YAAY,GAUpB,QAPa,OAAZw+D,QAAY,IAAZA,OAAY,EAAZA,EAAcH,eAAgB,IAAIz7E,SAAQ,SAAC0H,GACpCwY,EAAOx7B,KAAKgjB,EAAEy1B,QACd0+C,EAAcl2F,KAAKjB,KAAK,CAAC6oB,EAAG7F,EAAEy1B,OAAQ1Y,EAAG/c,EAAEs0E,eAC3CD,EAAcp2F,KAAKjB,KAAK,CAAC6oB,EAAG7F,EAAEy1B,OAAQ1Y,EAAG/c,EAAEu0E,YACnD,IACAt4D,EAASj/B,KAAKq3F,GACdp4D,EAASj/B,KAAKm3F,GACP,CACH37D,OAAAA,EACAyD,SAAAA,EAER,EAaA,YAAgBqE,EAA8BxjC,EAAmByjC,GAC7D,IAAQ5T,EAAiB7vB,EAAjB6vB,aACFxsB,EAAQugC,iBAAiBJ,GACzBK,EAAgBxgC,EAAMygC,iBAAiBC,IACvCC,EAAe3gC,EAAMygC,iBAAiBC,IACtC9yB,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFu6B,OAAQ,GACRyD,SAAU,IAEdn/B,QAAS,CACL28B,YAAa,kBACbnB,QAAS,CAGLoJ,WAAY,CAERvJ,YAAaoI,GAEjB16B,MAAO,CACH0xB,SAAS,GAEbgB,OAAQ,CACJhB,SAAS,EACTiB,OAAQ,CACJ16B,MAAOgjC,IAGfwB,QAAS,CACLC,UAAW,CACPzd,MAAK,SAACnS,GACF,MAAO,CAACA,EAAK0pB,QAAQvX,MACzB,EACA0d,WAAU,SAAC7vB,GACP,IAAM0pB,EAAU1pB,EAAK0pB,QACfoG,EAAmCpG,EAAQp+B,KAC3CykC,EAAqCD,EAAO9vB,EAAKgwB,WACvD,MAAO,CAAC,GAAD,OACAl3B,EAAei3B,EAAW3F,EAAGpQ,IAExC,GAEJkV,KAAM,SAEVmB,WAAY,CACRC,YAAa,KAGrBC,YAAa,CACTC,WAAW,EACXtB,KAAM,WAEVuB,QAAO,SAAClgC,EAAO,GAAS,oBAAR+X,EAAO,KACfooB,EAAY,UAChB,GAAIpoB,EAAS,CACT,IAAMohB,EAAUtuB,EAAM9P,KAAKg+B,SAAShhB,EAAQie,cACxCmD,GAAWA,EAAQK,QAAUjC,KAC7B4I,EAAY,U,CAGnBngC,EAAMogC,OAAOplB,OAAuB/d,MAAMy4B,OAASyK,CACxD,EACAE,YAAY,EACZC,qBAAqB,EACrBC,OAAQ,CACJ5d,EAAG,CACC1oB,KAAM,WACNumC,SAAS,EACTC,MAAO,CACH7lC,MAAOgjC,GAEX8C,KAAM,CACF9lC,MAAO,oBAEX+lC,KAAM,KAEV9G,EAAG,CACC5/B,KAAM,SACNwmC,MAAO,CACH7lC,MAAOgjC,EACPnhC,SAAQ,SAAClB,GACL,OAAOgN,EAAehN,EAAOkuB,EACjC,GAEJiX,KAAM,CACF9lC,MAAO6iC,GAEXtgB,IAAK,EACLwjB,KAAM,IACNh+B,MAAO,CACH1G,KAAM,WAAF,OAAawtB,EAAY,KAC7B7uB,MAAOgjC,EACPvJ,SAAS,GAEboF,MAAO,IACPpF,SAAS,KAIrBe,QAAS,CAACP,MAEd,OAAOhqB,CACV,EC9JC,IAAepK,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLQ,KAAM8C,QAER+C,MAAK,SAAC6T,GACJ,IAAMssB,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAC5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAClB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM0B,MAAMQ,OAAS,QAC5BujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBAE3BiiB,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY,QAE/BL,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC6tB,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQymF,GAAyBtwD,EAAOzlC,MAAO,CACnDkuB,aAAcA,EAAaluB,OAE7B85B,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QA1BiB,CA2BzB,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACRL,GACF,KACAljC,EAAAA,EAAAA,QACE,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEpB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EACzB,EACAljC,MAAO,CACL,sBAAuB,CACrBE,QAAO,WACLhC,KAAKglC,aACP,MC/D4S,MCOhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCThC,IAAe1gC,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAE6wF,mBAAAA,IACd5uF,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,sBAAuB,CAAEkmF,WAAYr1F,KAAKyyF,OAASzyF,KAAKyyF,OAAOzxF,KAAO,OACxF,EACAyD,MAAK,WACD,IAAM6wF,GAAWzwF,EAAAA,EAAAA,OACjB,EAAuBmvB,KAAf7Z,EAAE,EAAFA,GAAIia,EAAM,EAANA,OACNq+D,GAAS5tF,EAAAA,EAAAA,OACTo+C,GAAgBp+C,EAAAA,EAAAA,KAAS,CAAEs0B,OAAQ,GAAIyD,SAAU,KACjD24D,EAAU,yCAAG,oGACTnhE,EAAO,iBAAe,uBAAE,oGACLp1B,GAAcs2F,EAASl2F,OAAM,OAAlDqzF,EAAOrzF,MAAQ,EAAH,KACZ6jD,EAAc7jD,MAAQw1F,GAAsCnC,EAAOrzF,OAAO,4CAC5E,qGAJU,mCAKhB,MAAO,CACHk2F,SAAAA,EACA7C,OAAAA,EACA8C,WAAAA,EACA72C,KAAM,CAAEvkC,GAAAA,EAAIia,OAAAA,GACZ6uB,cAAAA,EAER,EACAnkD,QAAS,CACL61F,SAAQ,SAACa,GACL,OAAIA,EAAW,EAAU,QACJ,GAAZA,EAAsB,SACnB,KAChB,GAEJ1zF,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAACwsB,GACCA,IACLxuB,KAAKs1F,SAAW9mE,EAAGpP,OAAOhY,GAC1BpH,KAAKu1F,aACT,EACAvtF,WAAW,EACXjG,MAAM,IAGdW,SAAU,CACNrD,QAAO,WACH,IAAMA,EAAU,CACZ,CAAES,KAAME,KAAKmP,GAAG,8BAA+B/P,MAAO,SAAUswB,UAAU,GAC1E,CAAE5vB,KAAME,KAAKmP,GAAG,8BAA+B/P,MAAO,SAAUswB,UAAU,GAC1E,CAAE5vB,KAAME,KAAKmP,GAAG,8BAA+B/P,MAAO,SAAUswB,UAAU,GAC1E,CAAE5vB,KAAME,KAAKmP,GAAG,sCAAuC/P,MAAO,kBAAmBswB,UAAU,GAC3F,CAAE5vB,KAAME,KAAKmP,GAAG,0CAA2C/P,MAAO,kBAAmBswB,UAAU,IAEnG,OAAOrwB,CACX,KC5DuS,M,uBCAxF,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBsM,cAAC,IAAGmB,EAAG,KAAqB3C,EAAK,EAAC,SAAC,EAAUE,MAAImc,Y,OAAoB,EAAM,KAAC,kBAAoB,OAAI1Z,OAAS,GAACwK,MAAW,EAAC,2BAAC,kBAAmC,eAAsB,YAAkBvK,EAAAA,GAAAA,EAAkB,CAAC5C,MAAM,CAAC,QAAO,EAAM,oBAAC,KAAO,uBAAK,CAACE,EAAG,MAAI,CAA2IF,YAAM,CAAC,aAAW43F,sBAAY,yB,CAAK,OAAM,C,YAAU13F,O,MAAe,aAAI,KAAO,KAAyCF,CAAAA,EAAK,GAAC,0I,MAAC,CAAU,OAAW,aAAO,GAAI,CAAsB4C,IAAAA,SAAkB,GAAC5C,OAAM,QAAC,MAAqE,WAAG,YAAI,mBAAe4C,MAAAA,CAA+BD,KAAG,GAAc3C,UAAM,O,CAA4B,OAAc,C,YAAW,O,MAAC,CAAqG,SAAY,qCAAG,oBAAK,QAAU,C,YAAqBuc,kB,GAA6F,KAAUs7E,C,MAAoEt7E,C,SAAkC,EAACu7E,YAAkB,eAAE,SAACp2F,MAAM,uFAACH,UAAWw2F,I,GAAsC73F,CAAmB,QAAC,YAAC0B,OAAAA,EAAW,+DAAa,2CAAb,MAAmB,EAAK,iBAAoC,qBAAC,GAAiBiB,MAAG,CAAC,MAAO,EAAC,Y,SAAqBm1F,SAAsB,kBAAC,EAAI93F,WAAO,kBAAmE,KAAO,MAAG,Q,MAAC,CAAU,eAA2E,GAAC,CAAG,MAAC,YAAC,mBAAc+3F,CAAW,IAAwCj4F,CAAAA,EAAK,GAAC,uD,MAAC,CAA+C,MAAQ,GAAY,KAAO,GAAS,gCAAG,WAAC,0B,GAA0B,CAA6B,yBAAKE,EAAIG,KAAG,EAAO,MAAQ,EAAG,IAAIsC,CAAmB3C,MAAM,CAAC,SAAWg4F,EAAAA,cAAe,cAAC,MAAQ93F,YAAU,eAAoC2C,GAAG,CAAC,MAAQ,SAAS0Z,GAAQrc,OAAI83F,EAAAA,kBAAuB,I,GAAiB,cAAQE,IAAW37E,IAAAA,GAAOuxB,EAAAA,eAAO,C,MAAA,CAAC,KAAQ,EAAC,gB,MAAwB5tC,EAAIi4F,MAAU,gCAAI,GAAG,CACvxE,kBACG73F,EAAAA,iBAAoB,CAExB,E,wGCJgM,cAAC,IAAGJ,EAAM,KAAmCF,EAAK,EAAC,SAAO,EAAC,kB,OAAG,uCAAC6C,GAAG,CAAC,MAAQ,SAAS0Z,GAAQrc,EAAIyB,MAAK,CAAI,IAAI,CAACgB,EAAG,yBAAS,OAACC,MAAAA,CAAqB5C,KAAM,IAAmB,IAAIE,MAAO,SAAgB,GAAmBF,EAAM,OAAC,I,CAAkC,O,YAAgB,S,MAAwC,CAA4C,mB,CAAQuB,EAAAA,GAAOrB,iBAAS,W,MAACuC,C,YAAkCynB,MAAG,WAAC,GAACtoB,WAAW,GAAM,sCAAIe,WAAaA,EAAG,oBAAoB,QAAoB3C,MAAM,CAAC,QAASE,KAAY,kBAAgB,GAAE,QAAIyC,EAAkBC,WAAY,SAA4PA,CAAAA,EAAAA,GAAAA,EAAW,CAAC,OAAM,CAACC,YAAG,O,MAAC,C,OAAgC3C,EAAI+Q,QAAO,oBAAK/Q,EAAG,MAAWA,CAAgEF,YAAM,kB,CAAC,UAAmB,oCAAX,MAAW,kJ,YAAQ,OAAQ,GAAC,CAAG,MAAC,YAAC,OAAQ,S,IAAiC,oD,OAAA,OAAE,MAAMK,CAClvC,kBACGC,KAAAA,U,wGCMJ,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEwQ,WAAYxN,OAAQ+pC,SAAU/pC,OAAQtB,KAAMoB,QAASwqC,MAAOxqC,SACrEuD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDnlC,GAAOqF,EAAAA,EAAAA,MAAa,GACpBhG,GAAUgG,EAAAA,EAAAA,MAAa,GACvBoxF,GAASC,EAAAA,GAAAA,MACTprE,EAAcU,KACd+W,GAAU19B,EAAAA,EAAAA,KAAaimB,EAAYO,iBAAiBd,GAAAA,0BAEpDkhB,EAAE,yCAAG,0FACc,OAArB5sC,EAAQO,OAAQ,EAAK,SACEqQ,EAAAA,EAAAA,KAAAA,KACd,WAAqC,CAAC07B,SAAU7yB,EAAE6yB,SAAUv8B,WAAY0J,EAAE1J,aAC9EhC,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFlBK,EAAW,EAAH,KAKVO,EAAKJ,QAEAkZ,EAAEozB,OAAOuqD,EAAOt4F,KAAK,+BAAD,OAAgCsB,EAAS0sC,SAClEhH,EAAK,UAAW1lC,IACnB,2CACJ,kBAZO,mCAcR,MAAO,CACHsjC,QAAAA,EACA/iC,KAAAA,EACAX,QAAAA,EACA4sC,GAAAA,EACA3gB,YAAAA,EACAhc,MAAO,WAAOtP,EAAKJ,OAAQ,EAAOP,EAAQO,OAAQ,CAAM,EAEhE,ICvCuS,MCOvS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QChBnB+2F,GAAmB,SAACC,GAC7B,OAAO/oF,IAAM,IAAI8K,MAAQlB,KAAK,EAAG,OAAO+3B,QAAQ3hC,IAAM+oF,GAAc7oF,QACxE,ECJgJ,GAASxP,W,IAAuC,EAAOyC,K,EAAqB,EAAE,SAAO,oB,OAAC,SAAc,KAAE0P,C,YAAwB,a,EAAM,KAAQ,6B,OAAI,QAAE,IAAK,EAAsDrS,MAAM,CAAC,eAAS,SAAC,QAAO,EAAiB,YAAcA,CAAAA,EAAK,KAAC,kB,MAAM,CAAiB,KAAM,GAAS,yB,CAAmE,QAAO,CAAc,OAAK,IAAI,cAAYA,IAAM,SAAC,aAAS,uBAAC,MAAQ,uBAAkB,yBAAiBmN,EAAAA,GAAAA,EAAY,C,MAAC,CAAyB,QAACnN,MAAM,qB,CAAiB,MAAO,CAAE,aAAIE,UAAO,c,MAA0D,CAAkB,cAAqC,U,CAAK,KAAM,iBAAAqc,IAAM,6B,MAAA,CAAmB,4CAAU,GAAE,CAC31B,gBACGjc,OAAAA,EAAe,IAAK,EAExB,M,uBCJoL,GAAQ,W,IAAiHN,EAAM,K,EAAC,EAAO,MAAC,GAAE,oBAAC,OAAMuQ,EAAIrQ,aAAgB,EAAE,MAAiB,CAAI,YAAU,CAAewC,cAAK,a,GAAK,KAAO,EAAC,kCAAgB,gE,MAAC,C,MAAwB,KAAG,EAAEC,GAAG,gBAAkB,SAAK,EAActC,G,OAA0Dm4F,EAAQ,KAAC,C,IAAC,EAA4B,IAAK,MAAI,YAAkCx4F,OAAM,QAAC,IAAe,CAACE,EAAG,KAAc,CAAC,EAAE,IAAG,2CAAG,SAAOyC,CAAoCwK,UAAY,aAA0B,eAACqrF,MAAQ,CAAE,UAAYt4F,KAA4C,sBACh0B,6BACGI,YAAAA,CAEJ,cAAiBA,Y,kECAjB,I,UAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE8R,QAASxO,OAAqC40F,SAAUl1F,QACjEqD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACD4xD,GAAe7zF,EAAAA,EAAAA,WAAS,WAC1B,GAAI4V,EAAEpI,QAAQsmF,OAAQ,OAAO,KAC7B,IAAM/qF,EAAU,iBAAiBgrF,KAAKn+E,EAAEpI,QAAQA,SAEhD,IAAKzE,IAAYA,EAAQ,GAAI,OAAO,KAEpC,IAAMirF,EAAatwF,KAAKwe,MAAMnZ,EAAQ,IAAsBuB,KAAI,SAAAwZ,GAAC,OAAI/Y,EAAO+Y,EAAE,IAC9E,OAAOkwE,CACX,IAEMC,EAAM,SAACC,GACTjyD,EAAK,MAAOiyD,EAChB,EAEMnpF,EAAS,SAACyC,GACZ,MAAuB,kBAAZA,EAA6BA,EAEjCA,EACF2mF,WAAW,IAAK,SAChBA,WAAW,IAAK,QAChBA,WAAW,IAAK,QAChBA,WAAW,IAAK,UAChBA,WAAW,IAAK,UAChBtmF,QAAQ,iBAAkB,8BAC1BA,QAAQ,YAAa,+BAE9B,EAEA,MAAO,CAAEgmF,aAAAA,EAAcI,IAAAA,EAAKlpF,OAAAA,EAChC,KCpCgT,MCQhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCb1BqpF,GAAc,GAEpB,IAAexyF,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE24F,KAAMr1F,QACf6C,WAAY,CAACyyF,mBAAAA,IACbvyF,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACD/T,GAAcluB,EAAAA,EAAAA,WAAiB,WACjC,IAAMiH,GAASstF,EAAAA,EAAAA,sBAA6B9mF,MAAMq3E,MAAM99E,KAAKC,MAC7D,IAAKA,EAAO,MAAO,8CACnB,IAAMutF,EAAMC,GAAIxtF,EAAM0V,eACtB,MAAO,6BAAP,OAAoC63E,EAAG,cAAMJ,GACjD,IAEMH,EAAM,SAACC,GACTjyD,EAAK,MAAOiyD,EAChB,EAEA,MAAO,CAAEhmE,YAAAA,EAAa+lE,IAAAA,EAC1B,ICxB8S,MCO9S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB6S,cAAC,IAAGn2F,EAAG,KAAkCC,EAAAA,EAAAA,MAAY,GAAa,oB,OAAC,OAAa5B,C,MAAQ,CAAkB,kBAAI2B,WAAG,GAAeC,WAAY,GAAoB1C,WAAa,2BAA8C,WAAU,WAAc,mB,MAAU,C,MAAC,EAAQ,K,SAAiB,SAAuB,WAAC,EAAE,WAAK,S,CAAgMF,EAAAA,GAAAA,EAAM,S,YAAS,O,MAAG,CAAY,iBAAE,cAAiB,MAAwMA,EAAAA,GAAAA,GAAM,C,YAAS,kB,CAAE,2CAAC,OAAM,EAAG,KAAU,CAA6F,IAAGE,EAA+EF,GAAK,CAAE,MAAO,SAAS,GAAC,OAAUE,EAAIoR,OAAG,EAAyB,IAAkD1O,CAAAA,EAAAA,GAAAA,EAAkB,oFAAG,YAAC,OAAC,MAAO,CAAkB,MAAO1C,GAAY,eAAKA,CAAAA,EAAM,GAAC,gBAAwB,GAACyC,wBAAzB,CAAkD,EAAC,qFAAC3C,YAAM,OAAC,MAAO,CAAa,MAAO,KAAY,CAAC,6F,IAAC,KAAQ,cAAe,EAAC,wBAC9kD,OAD8kD,iB,MAAC,CAAkB,eAAC,2CAClmD,mBACGM,YAAAA,OAEJ,I,2MCCA,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEg5F,MAAOjiF,MAA6C3V,KAAM0B,QAASrC,QAASqC,SACrFuD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KAED0yD,EAAS,WACX1yD,EAAK,SACT,EAEM71B,EAAQ,WACV61B,EAAK,QACT,EAEM2yD,EAAS,SAACP,GACZpyD,EAAK,SAAUoyD,GACfpyD,EAAK,QACT,EAEA,MAAO,CACHwxD,iBAAAA,GACArnF,MAAAA,EACAwoF,OAAAA,EACAD,OAAAA,EAER,IC5ByS,M,uBCAxF,GAAe,KCOhO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCRhC,IAAe/yF,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,uBAClB,EACA5K,WAAY,CAACgzF,iBAAAA,GAAkBC,YAAAA,GAAaC,UAAAA,IACtC70F,QAAO,8IACH+oC,EAAS,EAAKpjB,OAAOgtB,MAAM5J,OACjC,EAAK+rD,SAAS/rD,GAAQ,0CAFb,EAGb,EACA/sC,KAAI,WACA,MAAO,CACH+K,MAAQ3J,KAAawnF,MAAM99E,KAAKC,MAChCksF,iBAAiB,EACjBuB,MAAO,GACP3B,YAAa,KACbG,YAAa,GAErB,EACAlzF,SAAU,CACNi1F,YAAW,WACP,OAAwB,MAApB33F,KAAKy1F,aACFU,GAAiBn2F,KAAKy1F,YAAYW,aAC7C,GAEJt3F,QAAS,CACL63F,IAAG,SAACC,GACA52F,KAAK41F,YAAcgB,EACnB52F,KAAK21F,kBACT,EAEAG,YAAW,SAACiB,GACR/2F,KAAK03F,SAASX,EAAKprD,OACvB,EAEA+rD,UAAUhwE,EAAAA,GAAAA,IAAQ,WAAU,yCAAE,WAAwBikB,GAAqB,6EACF,OAA7C,MAApB3rC,KAAKy1F,aAAwB9pD,IAAQ3rC,KAAK61F,iBAAkB,GAAK,SAC9CpmF,EAAAA,EAAAA,KAAAA,IAAe,aAAa7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAChD,GADhBK,EAAW,EAAH,KACde,KAAKo3F,MAAQn4F,GAET0sC,EAAQ,CAAF,+BACA3rC,KAAK+1F,WAAWpqD,GAAO,gDAEpC,SAR4C+rD,EAAS,GAAD,sCAARA,CAAQ,CAAzB,IAU5B3B,YAAYruE,EAAAA,GAAAA,IAAQ,UAAS,yCAAE,WAA0BikB,GAAe,6EAEvC,OAD7B3rC,KAAKmR,QAAQZ,QAAQ,CAAEglC,MAAO,CAAC5J,OAAQA,KACvC3rC,KAAK61F,iBAAkB,EAAM,SACNpmF,EAAAA,EAAAA,KAAAA,IACf,mBAAyCk8B,IAC5C/+B,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFlBK,EAAW,EAAH,KAGde,KAAKy1F,YAAcx2F,EACnBe,KAAK41F,YAAc,GACnB51F,KAAK43F,aAAa,gDACrB,SAT6C7B,EAAW,GAAD,sCAAVA,CAAU,CAA3B,IAW7BJ,kBAAkBjuE,EAAAA,GAAAA,IAAQ,iBAAgB,yCAAE,gGAQtB,OAPZikB,EAAyB,QAAnB,EAAG3rC,KAAKy1F,mBAAW,aAAhB,EAAkB9pD,OAC3Bz7B,EAAUlQ,KAAK41F,YAErB51F,KAAKy1F,YAAYnZ,SAAS3+E,KAAK,CAAC64F,QAAQ,EAAMtmF,QAASA,IACvDlQ,KAAKy1F,aAAc,UAAIz1F,KAAKy1F,aAE5Bz1F,KAAK41F,YAAc,GACnB51F,KAAK43F,aAAa,SAEKnoF,EAAAA,EAAAA,KAAAA,KACd,mBAAoCk8B,EAAM,YAAY,CACvDA,OAAQA,EACRirD,SAAU1mF,IAEbtD,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAClBshB,OAAM,iBAAO,CAACyrB,OAAQ,GAAIz7B,QAAS,wCAAwC,IAAE,OAN5EjR,EAAW,EAAH,KAQde,KAAKy1F,YAAYnZ,SAAS3+E,KAAKsB,EAASiR,SACxClQ,KAAKy1F,aAAc,UAAIz1F,KAAKy1F,aAC5Bz1F,KAAK43F,aAAa,iDACrB,SArB0DC,IAAc,sCAAdA,CAAc,CAA/B,IAuB1CD,WAAU,WACN53F,KAAKonC,SAAS0wD,KAAK,OACvB,KC9FkS,M,sBCAxF,GAAe,KCQ7N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,cCvBqV,W,IAAa,O,EAAsB,EAAM,MAAC,GAAG,oBAAC,OAAM,EAAG,WAAC,iBAA4B,CAAkCj6F,MAAM,CAAC,MAAQ,6BAAY,kBAAgC,QAAE,YAAS,cAAkDA,MAAM,CAAC,MAAO,EAAC,GAAY,SAAO,YAAG,MAAIE,EAAuEF,WAAM,OAAW,kBAAE,MAAK,CAAkCA,MAAM,YAAC,SAAQ,OAA8B,WAAuG6I,CAAAA,EAAAA,GAAAA,yBAAoB,gB,MAAK,CAAUC,MAAG,Y,SAAqB,EAAC,GAAO,E,KAAE9I,M,MAAwB,aAAO,gB,MAAE,C,MAAO,Y,KAAiCA,M,GAAiB,sC,MAAG,C,KAAkDA,M,QAA2B,GAAY,eAAE,C,aAA6C,8B,QAAI,6F,YAA6B,EAAG,GAAI,E,iBAAC,WAAC,MAAM,CAACK,EAAG,KAAc,OAAM,GAAC,YAAM,UAAsEsC,CAAAA,EAAG,mBAAQ,OAAI,MAAO,CAAM,MAAC,KAAa,CAAI,EAAC,GAAG,8BAAC,MAAK,CAAG,kBAAO,UAAS,GAAM,SACz5C,IAD+5Cu3F,EAAAA,gBAAyBC,QAE76C,IAAc,MAAY,YAAC,EAAS,IAAK,IAA2D,mB,SAA0B,M,CAAgD,EAAC,2C,OAACtxF,EAAAA,GAAAA,EAAY3I,C,IAAY,E,MAAgB,C,KAAa,K,GAAEF,I,GAAS,M,QAAoD,C,QAA+C,gBAAe,iDAAmC,G,gBAAe,G,QAAC6I,G,OAAwB,Q,CAAqB,W,EAAaqxF,EAAAA,0BAAgC,C,mBAA8B,G,SAAS,+B,eAAwG,EAAC,K,IAAK,Y,GAAa,SAAC,GAAqC,WAAI,EAAS,QAAIv3F,MAAG,sBAAmB,WAAM,MAAC,CAAO,KAAO,8BAAyB,YAAS,OAAe,8BAAyB,cAAiB,KAAC,QAAW,mBAAC,IAAQ,MAAiB,GAAOzC,WAA8B,4CAAE,OAAaA,MAAQ,YAAc,MAAU,kFAAC,EAA4DF,OAAM,IAAC,MAAO,IAAU,6B,IAAkG,WAACsS,EAAAA,mBAAM,CAAI,MAAG,CAAa,KAAO,0CAAK,OAAQ,EAAG,GAAE3P,kBAAG,OAAoB,cAAC3C,KAAM,QAAW,IAAM,MAAC,SAAa,GAAC6I,OAAY3I,EAAIoQ,mBAAI,EAAC5N,G,YAAuC,KAAO,E,IAAE1C,M,GAAO,WAAS,MAAC,sCAAG,MAAC,CAAC,MAAQ,YAA2B,wF,EAAE,OAAM,IAAUA,MAAK,M,IAAE,E,QAAS,mB,MAAG,C,KAAwEA,M,gBAAsC,C,YAAI,O,IAAC6C,U,oBAA6B3C,CAAAA,EAAIk6F,EAAAA,EAAM,C,MAAA,CAAC,SAAyB,IAAM,MAAC,YAAM,MAAQz3F,IAA+B,CAAM,EAAC,KAAG,OAAO,UAAyC,GAAQ,mBAAiB,kCAAC,MAAU,CAA0H,kBAAO,UAAa,IAA6F,GAAC,CAAW,kBAAO,MAAsR,IAAgB,mBAAIA,EAAuP3C,OAAM,QAAgB,WAAE,MAAK,CAAgRA,KAAM,MAAe,2BAAE,MAAK,CAA6T,MAAC,kBAAC,QAAUE,6HAA4BwB,CAAAA,EAAK,KAAC,gE,MAAM,CAA+Be,GAAAA,c,CAAwD,EAAC,0L,MAACb,CAAoC,gBAA2CiB,CAAE,EAAC,8J,MAAC,CAAqC,gB,CAAQtB,EAAAA,GAAAA,EAAW84F,CAAAA,EAAAA,EAAAA,EAAAA,CAAAA,EAAAA,GAA2B,wK,MAAC53F,C,GAA6B43F,Y,CAAgCz4F,EAAAA,GAAAA,EAAW,yOAA4B,IAAIe,QAAG,0B,MAAyC,CAAqC,gCAACjB,SAAM,YAACH,EAAK,wBAAM88D,CAA2B57D,E,WAA6B47D,6BAA+Bz8D,EAAAA,mCAAW,CAA2B,IAAIe,QAAG,0B,MAA4C,CAAqC,mCAACjB,SAAM,YAACH,EAAK,2BAA+B,CAACkB,E,WAA6B87D,gCAA8B38D,EAAAA,oCAAW,CAA0B,IAAIe,QAAG,0B,MAAyC,CAAqC,kCAACjB,SAAM,YAACH,EAAK,0BAA6B,CAACkB,E,WAA6B+7D,+BAA4B58D,EAAAA,uCAAW,CAAwB,IAAIe,QAAG,0B,MAAoC,CAAqC,iCAACjB,SAAM,YAACH,EAAK,yBAA2B,CAACkB,E,WAA6BsgE,8BAA0BnhE,EAAAA,oCAAW,CAAsB,IAAIe,QAAG,0B,MAA2C,CAAqC,+BAACjB,SAAM,YAACH,EAAK,uBAAM+4F,CAA0B73F,E,WAA6B63F,4BAA8B14F,EAAAA,+BAAW,CAA0B,IAAIe,QAAG,0B,MAAoC,CAAqC,6BAACjB,SAAM,YAACH,EAAK,qBAAMg5F,CAAyB93F,E,WAA6B83F,0BAA6B34F,EAAAA,sCAAW,CAAyB,IAAI,QAAG,0BAEl3JtB,MAAAA,CAEJ,MAASgB,EAAQhB,yB,gTCYjB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC7BkC,MAAK,SAAC2qB,GACJ,OAAOA,EAAIhiB,GAAG,uBAChB,EACA5K,WAAY,CACVo2D,eAAAA,GACAuI,0BAAAA,GACAm1B,iCAAAA,GACAt9B,yCAAAA,GACAgF,8BAAAA,GACAC,gCAAAA,GACAE,8BAAAA,GACAoE,gCAAAA,GACAhJ,wBAAAA,GACAwG,0BAAAA,GACAw2B,UAAAA,IAEF7zF,MAAK,WACH,IAAMszF,GAAkBlzF,EAAAA,EAAAA,KAAI,IAEtB0zF,EAAqB,yCAAG,4GACA9oF,EAAAA,EAAAA,KAAAA,IACrB,+BACJ7C,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,OAFhBiV,EAAgB,EAAH,KAGbmoD,EAAoBnoD,EACvB7G,KAAI,SAAC+iB,GAAC,OAAKA,EAAEjyB,IAAI,IACjBiZ,QAAO,SAAC3X,EAAOmY,EAAOC,GAAI,OAAKA,EAAKC,QAAQrY,KAAWmY,CAAK,IAC/DwgF,EAAgB34F,MAAQ48D,EAAkB,2CAC3C,kBAR0B,mCAUrBjG,EAAyB,WAC7BwiC,GACF,EAEAA,IAEA,IAAMC,GAA0B3zF,EAAAA,EAAAA,MAAI,GAC9BqzF,GAA6BrzF,EAAAA,EAAAA,MAAI,GACjCq3D,GAA4Br3D,EAAAA,EAAAA,MAAI,GAChCu3D,GAA2Bv3D,EAAAA,EAAAA,MAAI,GAC/Bw3D,GAAyBx3D,EAAAA,EAAAA,MAAI,GAC7B+7D,GAAuB/7D,EAAAA,EAAAA,MAAI,GAC3BszF,GAA2BtzF,EAAAA,EAAAA,MAAI,GAC/BuzF,GAA0BvzF,EAAAA,EAAAA,MAAI,GAE9B62D,EAA+B,SACnCn7D,GAEIA,IAAQ+U,GAAAA,mBACVkjF,EAAwBp5F,OAAQ,EACvBmB,IAAQ+U,GAAAA,cACjB4iF,EAA2B94F,OAAQ,EAEvC,EAEMq5F,EAAqB,SAAC36F,GAC1B,OAAQA,GACN,KAAK4V,GAAAA,MACHwoD,EAA0B98D,OAAQ,EAClC,MACF,KAAKsU,GAAAA,QACH0oD,EAAyBh9D,OAAQ,EACjC,MACF,KAAKsU,GAAAA,MACH2oD,EAAuBj9D,OAAQ,EAC/B,MACF,KAAKsU,GAAAA,OACHwkF,EAA2B94F,OAAQ,EACnC,MACF,KAAKsU,GAAAA,OACHktD,EAAqBxhE,OAAQ,EAC7B,MACF,KAAKsU,GAAAA,QACHykF,EAAyB/4F,OAAQ,EACjC,MACF,KAAKsU,GAAAA,OACH0kF,EAAwBh5F,OAAQ,EAChC,MAEN,EAEM48D,GAAoBn3D,EAAAA,EAAAA,KAAI,CAC5B6O,GAAAA,MACAA,GAAAA,OACAA,GAAAA,OACAA,GAAAA,QACAA,GAAAA,SAOF,OAJI/O,EAAAA,EAAAA,iBAAwB4lB,GAAAA,eAC1ByxC,EAAkB58D,MAAMzB,KAAK+V,GAAAA,OAGxB,CACLukF,IAAIpzF,EAAAA,EAAAA,KAAI,GACRm3D,kBAAAA,EACA+7B,gBAAAA,EACAG,2BAAAA,EACAM,wBAAAA,EACAt8B,0BAAAA,EACAE,yBAAAA,EACAC,uBAAAA,EACAuE,qBAAAA,EACAu3B,yBAAAA,EACAC,wBAAAA,EACAriC,uBAAAA,EACA0iC,mBAAAA,EACA/8B,6BAAAA,EAEJ,IC/HkS,M,uBCAlF,GAAe,KCO7N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBiG79D,GAAM,W,IAAC,O,EAA0C,EAAM,MAAC,GAAa,QAAgB,Y,OAAE,+BAAG,MAAI,CAAoDA,MAAM,gCAAC,KAAO,aAAkB,gBAAW,MAAmB2C,EAAG,KAAS,oCAAC3C,MAAM,CAAC,MAAO,iBAAG,SAAQ,kBAAU,CAACE,EAAG,IAAI,CAA2EF,MAAM,CAAC,KAAO,GAAmB,gBAA6B,CAAC2C,EAAG,cAAS,yDAAC3C,MAAM,CAAC,MAAO,kBAAG,SAAQ,kBAAY,CAACE,EAAG,IAAI,CAA4EF,MAAM,CAAC,KAAO,GAAkB,kBAAcmN,CAAAA,EAAAA,GAAAA,aAAY,wD,MAAC,CAAe,0BAAiBnN,CAAAA,EAAK,MAAC,C,YAAQ,CAAE,gBAA6F4C,CAAAA,EAAAA,EAAAA,EAAW,CAAQ5C,MAAM,CAAC,KAAO,KAAwC,iFAAC6I,YAAY3I,O,MAAa,CAAgB4I,MAAG,e,aAAsB,Y,YAAkC,O,wCAAoC,CAAI,EAAC,KAAe,mBAAE,MAAK,CAAU9I,MAAM,YAAC,UAAO,GAAE,qBAAgD,QAACsS,MAAM,CAAM,UAAuD1P,CAAAA,EAAW,GAAC,kCAAc1C,EAAiC0C,OAAAA,MAAyDA,CAAAA,EAAAA,GAAAA,EAAY,4BAAY,YAAS,aAAuBA,CAAAA,EAAAA,GAAAA,iBAAY,QAAY,YAAS,aAAuBA,CAAAA,EAAAA,GAAAA,eAAY,QAAc,YAAS,aAAuBA,CAAAA,EAAAA,GAAAA,cAAY,QAAc,YAAS,aAAmGA,CAAAA,EAAAA,GAAAA,cAAY,EAAa,MAAC5C,YAAM,e,CAAC,mBAAU,QAAG,2BAAG,CAACE,EAAIG,GAAG,2CAA8C,EAAGH,QAAQA,CAAI26F,EAAAA,SAAU,OAAoG,OAA3FplF,EAAI,KAAG,SAAC,YAAU,c,MAAU4F,CAAE,QAAU,M,GAA0B,GAAI,wCAAqB,+B,OAAE,QAAE,IAAK,GAA+LzY,CAAAA,EAAAA,KAAW,GAAC,eAAc,MAAMvC,CAA8DuC,GAAAA,aAAY,eAAuCA,CAAAA,EAAAA,GAAAA,IAAY,oJAAc,YAAawP,eAA0DpS,CAAAA,EAAK,GAAC,mD,YAASyV,eAAK,qBAAC5S,YAAG,e,CAAC,OAAU3C,GAAG,EAAC46F,uBAAAA,EAAAA,KAAAA,CAAAA,EAAAA,cAAAA,CAAY,OAAI,MAAK,GACz1E,IACGx6F,QAAe,EAAG,iB,oCCFqH,W,IAAYwI,EAAG,K,EAAgB,EAALjG,MAAE,G,OAAI,OAAW,C,MAAgB7C,C,WAAa,G,OAAG,I,YAA+C,OAAG,gBAAI2C,GAAG,SAAY,GAAgB3C,IAAM,OAAC,MAAI,YAAcE,CAAmB,OAAO,UAAoN,GAASA,CAAAA,EAAIqB,EAAAA,EAAAA,CAAAA,EAAAA,GAAAA,gBAAAA,GAAM,M,CAAK,OAAS,CAAC,gBAASgb,C,MAAQ,CAAmC,6CAAG1T,CAAAA,EAAAA,GAAAA,EAAe,CAACyH,EAAG,KAAC,yH,MAAK,CAAUxH,OAAG,S,GAAiB,CAA2M,oBAAI,2BAACpH,G,YAAuC,O,IAAmB,UAAe,GAAC,YAACE,IAAAA,EAAU,EAAC,GAAY,gIAAI,KAEp/BtB,MAAAA,CAEJ,MAASgB,EAAQhB,W,+ECJ2BqC,GAAOK,WAAS,MAAU,KAAehD,EAAK,EAAC,S,OAAC,gBAAYuB,CAAK,MAAC,CAAG,MAAC,S,GAA0B,CAAiC,kBAAE,yBAACsH,G,YAAwC,KAAS2T,CAAAA,C,IAAU,YAA6C,eAAG,mCAAC9Z,GAAcoG,C,IAAsB,U,GAAC,SAAW,G,IAAsB9I,EAAM,Q,MAAC,GAAO,qBAAQ,C,MAA4B,CAAiD,MAAQ,iC,SAAY+6F,EAAAA,GAAOC,+BAAW,MAAC,CAAC,OAAU96F,OAAImc,YAA4BxT,QAAY3I,EAAIoQ,MAAI,sB,YAAkB,O,IAAmD,U,GAA/BU,SAAM,G,IAAEvQ,EAAK,EAALA,QAAOO,EAAO,SAAEb,EAAI,EAAJA,MAAQ,EAAW,UAAe0C,EAAG,O,MAAC,GAAO,cAAC,C,GAAiB,CAAc,kBAAC,UAAIF,KAAuDQ,EAAAA,GAAAA,GAAK,yBAAY,C,WAAS,EAAe5B,KAAK,aAAoBK,QAAAA,eAA+B,uBAAC5B,WAAM,qB,MAAoB,CAAc,MAAQS,EAAAA,OAAM,OAAkB,MAAQuI,EAAQ,UAAG,MAAC,G,GAA4BiI,C,QAAmB/Q,SAAIqsF,GAA8B,IAAC,qDAAC,GAAI,KAAiB,eAAgB,IACviC,UAGD,E,MCJIjrF,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAG,OAAOA,EAAG,qBAAqBzC,EAAI6f,GAAG7f,EAAI8f,GAAG,CAAChgB,MAAM,CAAC,KAAM,yBAAmBE,EAAIqB,OAAS,CAAC,GAAGgI,IAAK,QAAU,MAAM1G,GAAG,CAAC,QAAU3C,EAAIkC,UAAU,qBAAqBlC,EAAI+f,QAAO,GAAO/f,EAAIggB,YACvP,EACI5f,GAAkB,GCqBtB,IACAC,OAAAA,EAAAA,EAAAA,IAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EACA+qB,GAAAA,EAAAA,OAAAA,CAAAA,EAAAA,CACA/pB,MAAAA,CACAtB,KAAAA,UAGAgB,QAAAA,CACAmB,QAAAA,YACAP,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,mCACA,ICjC2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCuBhC,IACA6E,WAAAA,CAAAqL,iBAAAA,GAAAkpF,mBAAAA,IACA16F,MAAAA,CACAgB,MAAAA,CACAtB,KAAAA,QACAS,SAAAA,GAEAq6F,OAAAA,CACA96F,KAAAA,OACAS,QAAAA,OAGAO,QAAAA,CACAsrF,yBAAAA,SAAAA,IACAxqF,EAAAA,EAAAA,IAAAA,KAAAA,GAAAA,+CAAAA,CAAAi5F,WAAAA,EAAAA,QACA,uBACA,IC7D2Q,M,uBCA/C,GAAe,KCOvO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QC2BhC,IACAt0F,WAAAA,CACAw0F,mBAAAA,IAEAn6F,KAAAA,WACA,OACA+mE,YAAAA,EAEA,EACAvnE,MAAAA,CACAgB,MAAAA,SC3DmQ,M,uBCA/C,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCMhC,IAAekF,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,0BAClB,EACA5K,WAAY,CAAEy0F,WAAAA,IACdt2F,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB/mB,MAAK,WACD,MAAeuvB,KAAP7Z,EAAE,EAAFA,GACF8+E,GAAgBp0F,EAAAA,EAAAA,KAAI,GACpBq0F,GAAer0F,EAAAA,EAAAA,KAAI,GACnBs0F,GAAiBt0F,EAAAA,EAAAA,KAAI,GACrBu0F,GAAoBv0F,EAAAA,EAAAA,KAAI,GACxB6zF,GAAW7zF,EAAAA,EAAAA,KAAqB,IAChC8zF,EAAY,yCAAG,gHACuCrzF,QAAQ2H,IAAI,CAChEwV,KACAC,KACAG,OACF,gCAJKw2E,EAAY,KAAa,KAAEC,EAAW,KAK7CZ,EAASt5F,MAAQi6F,EAAarsF,KAAI,SAACsL,GAAC,YAAM,CACtClR,GAAIkR,EAAElR,GACNmyF,SAAUjhF,EAAEihF,SACZV,WAAYvgF,EAAEtX,KACd2nD,UAAWrwC,EAAEqwC,UAAUljC,MACvB6pE,UAAoB,QAAV,EAAAh3E,EAAEg3E,gBAAQ,aAAV,EAAYp9E,cAAe,UACrCsnF,QAASlhF,EAAEkhF,QACXC,mBAAoBnhF,EAAEmhF,mBACzB,IACDR,EAAc75F,MAAQk6F,EAAYI,cAClCP,EAAe/5F,MAAQk6F,EAAYK,cACnCT,EAAa95F,MAAQk6F,EAAYM,aACjCR,EAAkBh6F,MAAQk6F,EAAYO,iBAAiB,4CAE1D,kBApBiB,mCAsBlB,OADAlB,IACO,CACHM,cAAAA,EACAC,aAAAA,EACAC,eAAAA,EACAT,SAAAA,EACAU,kBAAAA,EACAT,aAAAA,EACAj6C,KAAM,CAAEvkC,GAAAA,GAEhB,IC1EmS,M,uBCAxF,GAAe,KCO1N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBmK,W,IAAY,O,EAAmB,QAAU,GAAY,QAAe,Y,OAAmB,+BAAG,MAAI,CAAoDtc,MAAM,uCAAC,KAAO,WAAgB,gBAAU,GAA8D,sBAAKE,eAAgB,uBAAuC,OAAS,oC,MAAC,CAAc,qBAAIA,SAAO,4CAA6C,OAAQ,EAAC,e,CAAiB,gBAAT,cAAS,O,MAAC,CAAiB,QAAIA,MAAO,S,CAAiG,KAAM,UAAG,iC,MAAC,CAAe,QAAIA,MAAO,Y,CAAyF,KAAO,aAAY,2D,MAAC,CAAoD,QAAIyC,MAAG,U,CAAiB,KAAM,WAAC,8DAAE,OAAIzC,MAAO,YAAqEF,SAAM,mD,CAAoB,MAAU,CAAwB,OAAI2C,KAAG,K,CAAiB,KAAM,SAAC,qDAAE,OAAIzC,MAAO,WAA2JF,SAAM,wBAAU,QAAE,MAAK,CAA4B4C,KAAAA,KAAgIA,CAAAA,EAAAA,GAAAA,cAAY,KAAiB,+GAAC5C,MAAM,CAAC,KAAO,KAAK,CAAC2C,EAAG,SAAkB,KAAI,CAAMC,YAAY,0BAA0B,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAI+7F,iBAAAA,UAA4B,GAAEt5F,EAAG,kBAAK,QAACC,YAAY,kBAAyB,MAAMvC,CAA6EuC,KAAAA,KAAwHA,CAAAA,EAAAA,GAAAA,GAAY,SAAyB,YAAY,0BAAqHA,CAAAA,EAAAA,GAAAA,IAAY,8BAAiB,eAAC5C,YAAM,0B,CAAC,KAAM,IAAC,+DAAE,sCAAG,CAAC2C,EAAG,YAAiB,EAAEA,mBAAQ,qCAACC,YAAY,0BAA0B,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAI+7F,mBAAAA,EAAsB,oBAAgB,mDAACr5F,YAAY,kBAAyB,MAAMvC,CAAgFuC,KAAAA,KAA2HA,CAAAA,EAAAA,GAAAA,GAAY,SAAyB,YAAY,0BAA0HA,CAAAA,EAAAA,GAAAA,IAAY,8BAAiB,eAAC5C,YAAM,0B,CAAC,KAAM,IAAC,kEAAE,sCAAG,CAAC2C,EAAG,YAAiB,EAAEA,mBAAQ,wCAACC,YAAY,0BAA0B,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAI+7F,mBAAAA,EAAsB,uBAAgB,qDAACr5F,YAAY,kBAAyB,MAAMvC,CAAkFuC,KAAAA,KAA6HA,CAAAA,EAAAA,GAAAA,GAAY,SAAyB,YAAY,0BAA+HA,CAAAA,EAAAA,GAAAA,IAAY,8BAAiB,eAAC5C,YAAM,0B,CAAC,KAAM,IAAC,oEAAE,sCAAG,CAAC2C,EAAG,YAAiB,EAAEA,mBAAQ,0CAACC,YAAY,0BAA0B,CAAC1C,EAAIG,GAAG,IAAIH,EAAIkS,GAAGlS,EAAI+7F,mBAAAA,EAAsB,yBAAgB,wDAACr5F,YAAY,kBAAyB,MAAMvC,CAAqFuC,KAAAA,KAAgIA,CAAAA,EAAAA,GAAAA,GAAY,SAAyB,YAAY,0BAAwGA,CAAAA,EAAAA,GAAAA,IAAY,EAAM,2CAAC5C,YAAM,0B,CAAC,KAAO,IAAC,0BAAgB,6C,YAAC,0BAAuB,iFAAE,YAAK,0BAAgD4C,CAAAA,EAAAA,GAAAA,IAAY,8FAAY,YAAS,OAA0BA,MAAAA,CAA4B1C,MAAO,iBAA2B0C,aAAY,aAA4CA,CAAAA,EAAAA,GAAAA,EAAY,4BAAY,YAAS,aAAqBA,CAAAA,EAAAA,GAAAA,iBAAY,QAAc,YAAS,eAA4EA,CAAAA,EAAAA,GAAAA,kBAAyB,QAAC5C,YAAM,a,CAAC,mBAAU,QAAG,yBAAG,CAACE,EAAIG,GAAG,oBAAqF,YAAU,e,CAAMqC,EAAG,GAAC2Y,kBAAAA,EAAAA,QAAAA,CAAAA,EAAAA,cAAAA,OAA4Q,OAA5QA,EAAAA,KAAAA,CAAAA,EAAAA,KAAAA,CAAC,YAAW,c,MAA4CzY,CAA0B,QAAS1C,MAAoK,GAAI,GAAC,gCAAQ,oC,OAAI,Q,IAAC,G,GAAyB,KAAOA,CAAAA,EAAIg8F,GAAAA,EAAAA,GAAAA,EAAazmF,eAAckQ,EAAQ,KAAC,C,YAAA,eAAC,wHAAE,YAAa,eAAyD,CAAC,EAAG,IAAI,CAAoB/iB,GAAAA,CAAmB5C,MAAM,YAAC,OAAQ,eAAY,gBAAC,IAAwB2C,CAAE,EAAC,UAAgB,cAAcA,EAAG,GAAI,eAAU,Q,KAACC,MAAAA,GAAY,kBAAY,YAAS,OAAgCA,MAAAA,CAA0B1C,MAAO,aAA8E0C,aAAY,U,CAAqB,OAAU,4BAAG,yBAAG,CAAC1C,EAAIG,GAAG,+BAAyLuC,YAAY,aAAO5C,CAAAA,EAAK,GAAC,sDAA0G,sGAA1G,gB,YAAS,c,MAAW,CAAmB,cAAuD4C,CAAAA,EAAAA,GAAAA,8CAAY,qBAAY,YAAS,OAA2BA,MAAAA,CAA0B1C,MAAO,WAA0D0C,aAAY,S,CAAqB,OAAU,4BAAG,yBAAG,CAAC1C,EAAIG,GAAG,0BAClrL,yBACGC,CAAAA,EAAAA,GAAAA,aAAoB,qB,2FAAA,gBAExB,YAAiBA,c,sFCyBjB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,mBAClB,EACAzM,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB1sB,QAAQ,CACJk7F,mBAAkB,SAAC9nF,GACf,OAAmB,MAAfA,EAA4BA,EAAY2F,MAAM,QAAQ,GAC9C,EAChB,EACAoiF,mBAAkB,SAAC/nF,GACf,OAAmB,MAAfA,EAA4BA,EAAY2F,MAAM,QAAQ,GAC9C,EAChB,EACAqiF,mBAAkB,SAAChoF,GACf,OAAmB,MAAfA,EAA4BA,EAAY2F,MAAM,QAAQ,GAC9C,EAChB,GAEJpT,MAAK,WACD,MAAeuvB,KAAP7Z,EAAE,EAAFA,GAEF0+E,IADUh0F,EAAAA,EAAAA,MAAI,IACDA,EAAAA,EAAAA,KAAI,KACjBs1F,GAAct1F,EAAAA,EAAAA,KAAI,IAClBi1F,GAAwBj1F,EAAAA,EAAAA,KAAI,IAC5Bu1F,GAAoBv1F,EAAAA,EAAAA,KAAI,IACxBw1F,GAAkBx1F,EAAAA,EAAAA,KAAI,IACtBy1F,GAAuBz1F,EAAAA,EAAAA,KAAI,IAC3B01F,GAAyB11F,EAAAA,EAAAA,KAAI,IAC7B21F,GAA4B31F,EAAAA,EAAAA,KAAI,IAChC8jD,GAAY9jD,EAAAA,EAAAA,KAAI,IAChByqF,GAAWzqF,EAAAA,EAAAA,KAAI,IACf41F,GAAsB51F,EAAAA,EAAAA,KAAI,IAC1B61F,GAAgB71F,EAAAA,EAAAA,KAAqB,IACrCif,GAAcjf,EAAAA,EAAAA,OACdguE,GAAUhuE,EAAAA,EAAAA,OACV8zF,EAAY,yCAAG,WAAOvxF,GAAU,6GACM9B,QAAQ2H,IAAI,CAAC0V,GAAUvb,GAAKwb,GAAkBxb,KAAK,gCAApFuzF,EAAU,KAAEC,EAAW,KAC9B/B,EAAWz5F,MAAQu7F,EAAW35F,KAC9Bm5F,EAAY/6F,MAAQu7F,EAAWpB,SAC/BoB,EAAWzoF,YACX4nF,EAAsB16F,OAA6B,QAArB,EAAAu7F,EAAW1gF,kBAAU,aAArB,EAAuB4gF,oBAAqB,mBAC1ET,EAAkBh7F,MAAqC,QAAhC,EAAGu7F,EAAWG,0BAAkB,aAA7B,EAA+B5oF,YACzDooF,EAAqBl7F,MAAmC,QAA9B,EAAGu7F,EAAWI,wBAAgB,aAA3B,EAA6B7oF,YAC1DqoF,EAAuBn7F,MAAqC,QAAhC,EAAGu7F,EAAWK,0BAAkB,aAA7B,EAA+B9oF,YAC9DsoF,EAA0Bp7F,MAAwC,QAAnC,EAAGu7F,EAAWM,6BAAqB,aAAhC,EAAkC/oF,YACpEmoF,EAAgBj7F,MAAQu7F,EAAWN,gBACnC1xC,EAAUvpD,MAAQu7F,EAAWhyC,UAAUljC,MACvC6pE,EAASlwF,MAAQu7F,EAAWrL,SAASjD,UACrCoO,EAAoBr7F,MAAQu7F,EAAWrL,SAASp9E,YAChDwoF,EAAct7F,MAAQw7F,EAAY5tF,KAAI,SAACD,GAAC,MAAM,CAC1C3F,GAAI2F,EAAE3F,GACNyxF,WAAYA,EAAWz5F,MACvBokB,SAAUpc,EACVuhD,UAAW57C,EAAEmuF,eACb5L,SAAUviF,EAAE0tF,oBACZU,MAAOpuF,EAAEquF,YACT5B,QAASzsF,EAAEsuF,MACX9B,SAAUY,EAAY/6F,MACzB,IAEGu7F,EAAW72E,cACXA,EAAY1kB,MAAQ,CAChBgI,GAAIuzF,EAAW72E,YAAY1c,GAC3BpG,KAAM25F,EAAW72E,YAAY9iB,KAC7B4iB,OAAQ+2E,EAAW72E,YAAYF,SAInC+2E,EAAW9nB,UACXA,EAAQzzE,MAAQ,CACZgI,GAAIuzF,EAAW9nB,QAAQzrE,GACvBpG,KAAM25F,EAAW9nB,QAAQ7xE,KACzBwO,IAAKmrF,EAAW9nB,QAAQrjE,MAE/B,4CACJ,gBAxCiB,sCAyCZuqF,EAAY,yCAAG,WAAO3yF,EAAYoc,GAAgB,iGACtBD,GAAmBC,EAAUpc,GAAG,gBAAtDk0F,EAAW,EAAXA,YACFxuD,EAAO1iC,SAAS6tB,cAAc,KACpC6U,EAAKzuC,KAAOi9F,EACZxuD,EAAKmG,aAAa,WAAY,GAAF,OAAK4lD,EAAWz5F,MAAK,cACjDgL,SAASgZ,KAAKqV,YAAYqU,GAC1BA,EAAK5N,QACL90B,SAASgZ,KAAK8vB,YAAYpG,GAAM,4CACnC,gBARiB,wCASlB,MAAO,CACH+rD,WAAAA,EACAsB,YAAAA,EACAL,sBAAAA,EACAO,gBAAAA,EACAD,kBAAAA,EACAE,qBAAAA,EACAC,uBAAAA,EACAC,0BAAAA,EACA7xC,UAAAA,EACA2mC,SAAAA,EACAoL,cAAAA,EACA52E,YAAAA,EACA+uD,QAAAA,EACA8lB,aAAAA,EACAoB,aAAAA,EACAU,oBAAAA,EACA/7C,KAAM,CAAEvkC,GAAAA,GAEhB,EACArY,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAAC+F,GACCA,GACAA,EAAIqX,OAAOhY,IAChBpH,KAAK24F,aAAat3F,OAAO0G,EAAIqX,OAAOhY,IACxC,EACAY,WAAW,EACXjG,MAAM,MCjJ0R,M,uBCAxF,GAAe,KCO/N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,QCtBiGlE,GAAM,W,IAAC,O,EAAqD,EAAM,MAAC,GAAW,QAAgB,Y,OAAG,aAAS,iBAAkB2lB,C,MAAW,CAA+B,6CAAIhjB,KAAG,WAAoD3C,gBAAM,GAAC,UAAQ,gCAA0B,mCAAiBA,EAAK,KAAC,oC,MAAC,CAAS,mCAAmHA,CAAAA,EAAK,IAAC,C,MAAC,CAAkB,UAAqDA,CAAAA,EAAK,GAAC,+F,MAAC,CAAU,MAAQ,aAAS,CAAmBE,gBAAlBA,EAAIG,YAA6B,EAAK,KAAwBL,MAAM,CAAC,KAAO,GAAG,MAAQ,SAAY,CAACE,EAAIG,GAAG,UAA6B,YAAjB,EAAEH,YAA2B,EAAI,IAAC,CAAUF,MAAM,CAAC,KAAO,GAAG,MAAQ,YAAU,CAACE,EAAIG,GAAG,aAA8B,UAAnBH,EAAM,YAAqBA,EAAIo8F,EAAAA,EAAAA,CAAwCt8F,MAAM,CAAC,KAAO,GAAgB,gBAAwC,MAAO09F,WAAW,8DAAC,MAAO,CAAM,MAASvrE,kBAAqCnyB,CAAAA,EAAK,GAAC,oC,OAAC,EAAO,W,YAAW,SAAa,KAAU,UAAC,GAAE,IAAI,aAAiB,eAAe,CAAgB4C,MAAAA,CAA0B1C,MAAO,UAA0B0C,aAAY,aAAmDA,CAAAA,EAAAA,GAAAA,EAAY,4BAAY,YAAS,aAAqEA,CAAAA,EAAAA,GAAAA,iBAAyB,QAAC5C,YAAM,a,CAAC,0BAAU,QAAG,yBAAG,CAACE,EAAIG,GAAG,2BAA8B,CAAC,EAACH,QAASA,OAAkN,OAA1MA,EAAI26C,KAAO,GAAE,MAAiB,YAAU,c,MAAUx/B,CAAE,QAAU,M,GAAoH,mCAAwB,8B,OAAC,OAAU,C,IAAsB,GAAC,mGAAE,GAAI,CAAmE,MAAQ,SAAO,GACxzD,2BACG/a,I,oFCSJ,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BkC,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,mBAClB,EACAzM,UAAU,WACH0rB,EAAAA,GAAAA,IAAU5C,KAEjB/mB,MAAK,WACD,MAAeuvB,KAAP7Z,EAAE,EAAFA,GACFqJ,GAAW3e,EAAAA,EAAAA,KAAI,GACf4e,GAAW5e,EAAAA,EAAAA,KAAI,GACfg0F,GAAah0F,EAAAA,EAAAA,KAAI,IACjBs1F,GAAct1F,EAAAA,EAAAA,KAAI,IAClB22F,GAAgB32F,EAAAA,EAAAA,KAAI,IAAIsT,MACxBwwC,GAAY9jD,EAAAA,EAAAA,KAAI,IAChB42F,GAAa52F,EAAAA,EAAAA,KAAI,GACjB6zC,GAAU7zC,EAAAA,EAAAA,KAAmB,IAC7B8zF,EAAY,yCAAG,WAAOvxF,EAAYs0F,GAAW,2GACPp2F,QAAQ2H,IAAI,CAAC0V,GAAUvb,GAAKwb,GAAkBxb,KAAK,OAc9B,GAd8B,yBAApFuzF,EAAU,KAAEC,EAAW,KAC9Bp3E,EAASpkB,MAAQgI,EACjBqc,EAASrkB,MAAQs8F,EACjB7C,EAAWz5F,MAAQu7F,EAAW35F,KAC9Bm5F,EAAY/6F,MAAQu7F,EAAWpB,SAC/B5wC,EAAUvpD,MAAQu7F,EAAWhyC,UAAUljC,MACjC3G,EAAS87E,EAAYj/E,MAAK,SAAC5O,GAAC,OAAKA,EAAE3F,KAAOs0F,CAAG,IAC/C58E,IACA08E,EAAcp8F,MAAQ0f,EAAOu8E,MAC7B3iD,EAAQt5C,MAAQsC,OAAOy7C,QAAQr+B,EAAO68E,aAAa3uF,KAAI,gCAAE5F,EAAE,KAAEm0F,EAAW,WAAO,CAC3En0F,GAAI/F,OAAO+F,GACXm0F,YAAAA,EACH,KAEC33E,EAAS+2E,EAAWrL,SAASsM,gBAAgB/jF,MAAM,MACrD8iF,EAAW72E,YAAa,CAAF,iCACJR,GAAeq3E,EAAW72E,YAAY1c,IAAG,QAArD2xC,EAAM,EAAH,KACH8iD,EAAY,IAAIz0E,IAAI,GAAD,gBAAKxD,IAAM,QAAKm1B,EAAIn1B,UAC7C63E,EAAWr8F,MAAQy8F,EAAU/zE,KAAK,wBAElC2zE,EAAWr8F,MAAQwkB,EAAO1N,OAAO,4CAExC,gBAvBiB,wCAwBZ6jF,EAAY,yCAAG,WAAOxiF,GAAa,iGACPgM,GAAmBC,EAASpkB,MAAOqkB,EAASrkB,OAAM,gBAAxEk8F,EAAW,EAAXA,YACFxuD,EAAO1iC,SAAS6tB,cAAc,KACpC6U,EAAKzuC,KAAOi9F,EACZxuD,EAAKmG,aAAa,WAAY,GAAF,OAAK4lD,EAAWz5F,MAAK,gBAAQmY,EAAK,SAC9DnN,SAASgZ,KAAKqV,YAAYqU,GAC1BA,EAAK5N,QACL90B,SAASgZ,KAAK8vB,YAAYpG,GAAM,4CACnC,gBARiB,sCASlB,MAAO,CACH+rD,WAAAA,EACAsB,YAAAA,EACA32E,SAAAA,EACAg4E,cAAAA,EACA7yC,UAAAA,EACA8yC,WAAAA,EACA/iD,QAAAA,EACAigD,aAAAA,EACAoB,aAAAA,EACAr7C,KAAM,CAAEvkC,GAAAA,GAEhB,EACArY,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAAC+F,GACCA,GACAA,EAAIqX,OAAOhY,IAChBpH,KAAK24F,aAAat3F,OAAO0G,EAAIqX,OAAOhY,IAAK/F,OAAO0G,EAAIqX,OAAOs8E,KAC/D,EACA1zF,WAAW,EACXjG,MAAM,MClF6R,M,uBCAxF,GAAe,KCOlO,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCtBwO,W,IAAkC,OAAG,EAAI,WAAwC,oB,OAAC,aAAQ,kBAAgB,OAAIvB,MAAG,EAAS,oDAACjB,KAAM,MAACH,gBAAW08F,GAAWx7F,UAAS,Y,eAA6B,uBAAMb,EAAAA,GAAAA,EAAW,mBAAW,OAAK,MAAKiuE,mB,CAA0D,OAAQ,CAAO,OAAI3vE,MAAO,YAAyHF,SAAM,YAAC,YAAQ,CAAO,EAAIE,WAAO,c,CAAqF,EAAI,+BAA2I,OAA3I,QAAyB,OAAIA,MAAO,U,CAAgG,KAAM,qDAAC,mCAAiH,OAAjH,QAAG,OAAIyC,MAAG,UAAmC3C,CAAAA,EAAK,GAAC,6E,MAAC,CAAsB,8BAAiC0B,CAAAA,EAAK,GAAC,sE,MAAM,CAAkBe,KAAQ,M,CAAmC,EAAC,M,YAAW,OAAa,OAAI,MAAO,cAASG,MAAW,GAAC,OAAM,a,MAAQ,CAAU,mBAAID,SAAG,SAAW,GAAC3C,EAAM,YAAC,EAAmB,WAAW,iBAA8C,WAAC0B,YAAM,O,MAAM,CAAmBe,KAAQ,M,CAAoC,EAAC,M,MAACb,CAAwB,iBAAI,MAAO,EAAI,aAAqBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAAoB,WAAW,kBAA4C,uBAAC0B,YAAM,O,MAAM,CAAiBe,KAAQ,M,CAAkC,EAAC,M,MAACb,CAAsB,kBAAI,MAAO,aAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,kBAAID,SAAG,SAAW,GAAC3C,EAAM,WAAC,EAAwB,WAAQ,gBAA6B,WAAC0B,YAAM,O,MAAM,CAAoBe,KAAQ,M,CAAqC,EAAC,M,MAACb,CAAyB,oBAAI,MAAO,cAASgB,UAAY,I,MAAc,CAAU,qBAAID,SAAG,SAAW,GAAC3C,EAAM,cAAC,EAAyB,WAAW,mBAA+C,WAAC0B,YAAM,O,MAAM,CAAoBe,KAAQ,M,CAAqC,EAAC,M,MAACb,CAAyB,uBAAI,MAAO,EAAI,cAAqBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,qBAAID,SAAG,SAAW,GAAC3C,EAAM,cAAC,EAAmB,WAAW,mBAA4C,uBAAC0B,YAAM,O,MAAM,CAAgBe,KAAQ,M,CAAiC,EAAC,M,MAACb,CAAqB,iBAAI,MAAO,EAAK,WAA4CgB,MAAW,GAAC,oBAA2FA,MAAAA,CAAmB5C,MAAM,WAAC,SAAO,YAAG,YAAI2C,EAAmB3C,WAAM,eAA2B,IAAM,GAAS,gBAAR,WAAQ,c,YAAUE,QAAuB,wEAACwB,YAAM,O,MAAM,CAA8Be,KAAQ,M,CAA+C,EAAC,M,MAACb,CAAmC,wBAAI,KAAO,SAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,+BAAID,SAAG,SAAe,GAAC3C,EAAM,wBAAC,EAA+B,WAAO,6BAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,6BAAI,KAAO,SAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,8BAAID,SAAG,SAAe,GAAC3C,EAAM,uBAAC,EAAwC,WAAO,4BAAiF,WAAC0B,YAAM,O,MAAM,CAAuBe,KAAQ,M,CAAwC,EAAC,M,MAACb,CAA4B,sCAAI,KAAO,SAAyBgB,MAAW,GAAC,OAAM,+C,MAAQ,CAAU,wBAAID,SAAG,SAAW,GAAC3C,EAAM,iBAAC,EAA0B,WAAQ,sBAA0B0B,IAAM,mB,YAAYgX,O,MAAajW,C,KAA6BiW,M,CAAiB9W,EAAAA,GAAAA,EAAW,CAAa,OAAI,MAAO,gBAASgB,MAAW,0B,MAAe,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAA2B,WAAW,kBAAuD,WAAC0B,YAAM,O,MAAM,CAAwBe,KAAQ,M,CAAyC,EAAC,M,MAACb,CAA6B,yBAAI,MAAO,wBAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,yBAAID,SAAG,SAAe,GAAC3C,EAAM,kBAAC,EAAgC,WAAO,uBAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,4BAAI,KAAO,SAA4DgB,MAAW,GAAC,oBAAmFA,MAAAA,CAAmB5C,MAAM,wBAAC,SAAO,YAAG,yBAAI2C,EAAmB3C,WAAM,4BAA2B,IAAM,IAAC,GAAQ,8C,YAAUE,QAAuB,gEAACwB,YAAM,O,MAAM,CAA8Be,KAAQ,M,CAA+C,EAAC,M,MAACb,CAAmC,wBAAI,KAAO,SAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,+BAAID,SAAG,SAAe,GAAC3C,EAAM,wBAAC,EAA+B,WAAO,6BAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,6BAAI,KAAO,SAAyBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,8BAAID,SAAG,SAAW,GAAC3C,EAAM,uBAAC,EAA0B,WAAQ,4BAA0B0B,IAAM,mB,YAAYgX,O,MAAajW,C,KAA6BiW,M,CAAiB9W,EAAAA,GAAAA,EAAW,CAAa,OAAI,MAAO,gBAASgB,MAAW,0B,MAAe,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAA2B,WAAW,kBAAuD,WAAC0B,YAAM,O,MAAM,CAAwBe,KAAQ,M,CAAyC,EAAC,M,MAACb,CAA6B,yBAAI,MAAO,wBAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,yBAAID,SAAG,SAAe,GAAC3C,EAAM,kBAAC,EAAgC,WAAO,uBAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,4BAAI,KAAO,SAA0DgB,MAAW,GAAC,oBAAwFA,MAAAA,CAAmB5C,MAAM,wBAAC,SAAO,YAAG,yBAAI2C,EAAmB3C,WAAM,4BAA8B,IAAM,IAAC,GAAQ,4C,YAAUE,QAAuB,qEAACwB,YAAM,O,MAAM,CAA2Be,KAAQ,M,CAA4C,EAAC,M,MAACb,CAAgC,2BAAI,KAAO,SAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,4BAAID,SAAG,SAAW,GAAC3C,EAAM,qBAAC,EAA0B,WAAW,0BAA8C,WAAC0B,YAAM,O,MAAM,CAAmBe,KAAQ,M,CAAoC,EAAC,M,MAACb,CAAwB,wBAAI,MAAO,EAAI,aAAqBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAA0B,WAAW,kBAAoC,uBAAC0B,YAAM,O,MAAM,CAAmBe,KAAQ,M,CAAoC,EAAC,M,MAACb,CAAwB,sBAAI,SAAO,GAASgB,MAAW,0B,MAAe,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAA2B,WAAW,kBAAuD,WAAC0B,YAAM,O,MAAM,CAAwBe,KAAQ,M,CAAyC,EAAC,M,MAACb,CAA6B,yBAAI,MAAO,wBAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,yBAAID,SAAG,SAAe,GAAC3C,EAAM,kBAAC,EAAgC,WAAO,uBAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,4BAAI,KAAO,SAA4DgB,MAAW,GAAC,oBAAmFA,MAAAA,CAAmB5C,MAAM,wBAAC,SAAO,YAAG,yBAAI2C,EAAmB3C,WAAM,4BAA8B,IAAM,IAAC,GAAQ,8C,YAAUE,QAAuB,gEAACwB,YAAM,O,MAAM,CAA2Be,KAAQ,M,CAA4C,EAAC,M,MAACb,CAAgC,2BAAI,KAAO,SAAyBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,4BAAID,SAAG,SAAW,GAAC3C,EAAM,qBAAC,EAA0B,WAAW,0BAAoC,uBAAC0B,YAAM,O,MAAM,CAAmBe,KAAQ,M,CAAoC,EAAC,M,MAACb,CAAwB,sBAAI,SAAO,GAASgB,MAAW,0B,MAAe,CAAU,oBAAID,SAAG,SAAW,GAAC3C,EAAM,aAAC,EAA2B,WAAW,kBAAuD,WAAC0B,YAAM,O,MAAM,CAAwBe,KAAQ,M,CAAyC,EAAC,M,MAACb,CAA6B,yBAAI,MAAO,wBAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,yBAAID,SAAG,SAAe,GAAC3C,EAAM,kBAAC,EAAgC,WAAO,uBAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,4BAAI,KAAO,SAA+DgB,MAAW,GAAC,oBAA0FA,MAAAA,CAAmB5C,MAAM,wBAAC,SAAO,YAAG,yBAAI2C,EAAmB3C,WAAM,4BAAgC,IAAM,IAAC,GAAQ,iD,YAAUE,QAAuB,uEAACwB,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,6BAAI,KAAO,SAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,8BAAID,SAAG,SAAe,GAAC3C,EAAM,uBAAC,EAA+B,WAAO,4BAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,6BAAI,KAAO,SAAyBgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,8BAAID,SAAG,SAAW,GAAC3C,EAAM,uBAAC,EAA2B,WAAW,4BAAuD,uBAAC0B,YAAM,O,MAAM,CAAwBe,KAAQ,M,CAAyC,EAAC,M,MAACb,CAA6B,yBAAI,MAAO,wBAASgB,MAAW,GAAC,OAAM,a,MAAQ,CAAU,yBAAID,SAAG,SAAe,GAAC3C,EAAM,kBAAC,EAAgC,WAAO,uBAAyC,WAAC0B,YAAM,O,MAAM,CAA6Be,KAAQ,M,CAA8C,EAAC,M,MAACb,CAAkC,4BAAI,KAAO,SAA0BgB,MAAW,GAAC,oBAA0B5C,MAAM,CAAC,MAAM,EAAC,sBAAG,qBAAM,EAAC,sBAAW,CAACA,EAAO,WAAQ,4BAA2C,QAASE,GAAI07D,EAAM,KAACkL,EAAQ,KAAE,CAAC,YAAC,aAACplE,CAAAA,EAAK,KAAC,C,MAAM,CAAgBe,KAAQ,M,CAAiC,EAAC,M,MAACb,CAAqB,2BAAI,MAAS6vF,EAAAA,UAAwCzxF,MAAM,uBAAW,OAAI2C,MAAG,WAAgB3C,SAAM,YAAC,WAAQ,CAA8B,EAAgB,WAASE,eAAwBwB,GAAM,mC,MAAM,CAAuBe,KAAQ,M,CAAwC,EAAC,M,MAACb,CAA4B,oCAAI,KAAI1B,SAAsDF,MAAM,uBAAW,OAAI2C,MAAG,kBAAgB3C,SAAM,YAAC,kBAAYk+F,CAAiB,EAAgB,WAASh+F,sBAAwBwB,GAAM,0C,MAAM,CAAmBe,KAAQ,M,CAAoC,EAAC,M,MAACb,CAAwB,yBAAI,KAAI1B,SAAqCF,MAAM,uBAAW,OAAI2C,MAAG,cAAYC,SAAW,SAAO,GAAC5C,EAAM,aAAC,EAAyB,WAAQ,kBAA8B,8BAAC0B,MAAM,CAACH,KAAOrB,M,GAA0CA,GAAAA,EAAI+lB,C,YAAgB,O,MAACrkB,CAAwB,qBAAI,MAAO,eAAyB5B,UAAM,IAAW,OAAI2C,MAAG,cAAYC,SAAW,SAAO,GAAC5C,EAAM,aAAC,EAAqB,WAAQ,kBAAyB,uBAAC0B,MAAM,CAACH,KAAOrB,M,GAAsCA,GAAAA,EAAI80E,C,YAAY,O,MAACpzE,CAAoB,iBAAI,MAAO,UAAagB,UAAY,IAA0BA,MAAAA,CAAmB5C,MAAM,UAAC,SAAO,YAAG,WAAI2C,EAAY3C,WAAM,cAAY,SAAY,MAAE,YAAC,aAAC6C,CAAE,EAAC,M,YAAS,O,MAAiB,CAAiB,WAAI,CAACF,EAAG,KAAwEC,MAAAA,CAAmB5C,MAAM,GAAC,UAAO,IAAK,GAAI,CAAUA,MAAM,YAAC,OAAQ,QAAY,I,CAAyE,MAAQ,CAAE,sD,YAAY,OAAG,MAAC,CAAG,KAAC,M,GAA0BE,EAAAA,EAAIi+F,C,MAAqB,C,MAAiB,kDAAC,uBAAIx7F,MAAG,GAC31X,cAGD,I,sLCkBA,IAAe8D,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEqkE,YAAAA,IACdpiE,MAAK,SAAC2qB,GACF,OAAOA,EAAIhiB,GAAG,kBAClB,EACAzM,UAAU,mBACH0rB,EAAAA,GAAAA,IAAU5C,KAAe,IAC5BuwE,iBAAgB,WACZ,MAAsB,gBAAlB/7F,KAAKsvF,SAAmC,GACnB,WAAlBtvF,KAAKsvF,SAAwB,wCAA0C,2BAClF,EACA2M,oBAAmB,WACf,OAAKj8F,KAAKk8F,iBACuB,QAA1Bl8F,KAAKk8F,iBAA6B,iBAA6C,SAA1Bl8F,KAAKk8F,iBAA8B,kBAAoB,mBADhF,EAEvC,IAEJp9F,QAAS,CACL09E,KAAI,WACAx8E,KAAKmR,QAAQxT,KAAK,YACtB,GAEJ8G,MAAK,WACD,MAAeuvB,KAAP7Z,EAAE,EAAFA,GACF2hF,GAAYj3F,EAAAA,EAAAA,MAAI,GAEhBs3F,GAASt3F,EAAAA,EAAAA,KAAI,GAEbg0F,GAAah0F,EAAAA,EAAAA,KAAI,IACjBs1F,GAAct1F,EAAAA,EAAAA,KAAI,YAClBu3F,GAAev3F,EAAAA,EAAAA,KAAiB,CAClC,CAAEzF,MAAO,WAAYU,KAAM,YAC3B,CAAEV,MAAO,UAAWU,KAAM,WAC1B,CAAEV,MAAO,cAAeU,KAAM,mBAE5B6oD,GAAY9jD,EAAAA,EAAAA,KAAI,IAChBoc,GAAapc,EAAAA,EAAAA,KAAiB,IAC9Bw3F,GAAWx3F,EAAAA,EAAAA,KAAI,IACfy3F,GAAaz3F,EAAAA,EAAAA,KAAiB,CAChC,CAAEzF,MAAO,eAAgBU,KAAM,oCAC/B,CAAEV,MAAO,aAAcU,KAAM,4BAC7B,CAAEV,MAAO,WAAYU,KAAM,iCAC3B,CAAEV,MAAO,aAAcU,KAAM,4BAC7B,CAAEV,MAAO,gBAAiBU,KAAM,qCAE9By8F,GAAc13F,EAAAA,EAAAA,KAAI,WAClB23F,GAAe33F,EAAAA,EAAAA,KAAiB,CAClC,CAAEzF,MAAO,UAAWU,KAAM,YAC1B,CAAEV,MAAO,kBAAmBU,KAAM,sBAClC,CAAEV,MAAO,SAAUU,KAAM,aAEvByW,GAAc1R,EAAAA,EAAAA,KAAI,OAClB43F,GAAgB53F,EAAAA,EAAAA,KAAiB,CACnC,CAAEzF,MAAO,MAAOU,KAAM,OACtB,CAAEV,MAAO,OAAQU,KAAM,QACvB,CAAEV,MAAO,QAASU,KAAM,WAEtB48F,GAAwB73F,EAAAA,EAAAA,KAAI,GAC5Bq3F,GAAmBr3F,EAAAA,EAAAA,KAAI,OACvB83F,GAAwB93F,EAAAA,EAAAA,KAAiB,CAC3C,CAAEzF,MAAO,MAAOU,KAAM,UACtB,CAAEV,MAAO,OAAQU,KAAM,WACvB,CAAEV,MAAO,QAASU,KAAM,cAEtB88F,GAAe/3F,EAAAA,EAAAA,KAAI,iBACnBg4F,GAAgBh4F,EAAAA,EAAAA,KAAiB,CACnC,CAAEzF,MAAO,YAAaU,KAAM,cAC5B,CAAEV,MAAO,gBAAiBU,KAAM,gBAChC,CAAEV,MAAO,WAAYU,KAAM,eAEzBg9F,GAAyBj4F,EAAAA,EAAAA,KAAI,IAC7Bk4F,GAAwBl4F,EAAAA,EAAAA,KAAI,KAC5Bm4F,GAAkBn4F,EAAAA,EAAAA,KAAI,IACtBo4F,GAAsBp4F,EAAAA,EAAAA,KAAI,KAC1Bq4F,GAAwBr4F,EAAAA,EAAAA,KAAI,KAC5Bs4F,GAAwBt4F,EAAAA,EAAAA,KAAI,GAC5Bu4F,GAAkBv4F,EAAAA,EAAAA,KAAI,GACtBw4F,GAAcx4F,EAAAA,EAAAA,KAAI,GAClByqF,GAAWzqF,EAAAA,EAAAA,KAAI,eACfy4F,GAAYz4F,EAAAA,EAAAA,KAAiB,CAC/B,CAAEzF,MAAO,cAAeU,KAAM,uCAC9B,CAAEV,MAAO,SAAUU,KAAM,UACzB,CAAEV,MAAO,UAAWU,KAAM,aAExBgkB,GAAcjf,EAAAA,EAAAA,KAAI,MAClBytE,GAAeztE,EAAAA,EAAAA,KAAiB,IAChC04F,GAAkB14F,EAAAA,EAAAA,KAAI,IAEtBguE,GAAUhuE,EAAAA,EAAAA,KAAI,MACd8tE,GAAW9tE,EAAAA,EAAAA,KAAiB,IAE5BolF,GAAeplF,EAAAA,EAAAA,KAAI,MACnB+iB,GAAc/iB,EAAAA,EAAAA,KAAiB,IAE/B6oE,GAAY7oE,EAAAA,EAAAA,MAAI,GAChB8zF,EAAY,yCAAG,oGAEU,OAFV,SAEbjrB,EAAUtuE,OAAQ,EAAK,SACakG,QAAQ2H,IAAI,CAAC6V,KAAkBG,KAAmBxB,KAAkBuB,OAAe,gCAAhHunC,EAAI,KAAEizC,EAAG,KAAEC,EAAG,KAAEC,EAAG,KAC1Bz8E,EAAW7hB,MAAQmrD,EAAKv9C,KAAI,SAACqa,GAAC,MAAM,CAChCjoB,MAAOioB,EAAEjgB,GAAGuJ,WACZ7Q,KAAMunB,EAAE5B,MACX,IACD6sD,EAAalzE,MAAQo+F,EAAIxwF,KAAI,SAAC4N,GAAC,MAAM,CACjCxb,MAAOwb,EAAExT,GAAGuJ,WACZ7Q,KAAM8a,EAAE5Z,KACX,IACD4mB,EAAYxoB,MAAQq+F,EAAIzwF,KAAI,SAACuY,GAAE,MAAM,CACjCnmB,MAAOmmB,EAAGne,GACVtH,KAAMylB,EAAGvkB,KACZ,IACD2xE,EAASvzE,MAAQs+F,EAAI1wF,KAAI,SAAC2wF,GAAE,MAAM,CAC9Bv+F,MAAOu+F,EAAGv2F,GAAGuJ,WACb7Q,KAAM69F,EAAG38F,KACZ,IAAG,QAEoB,OAFpB,UAEJ0sE,EAAUtuE,OAAQ,EAAM,2EAE/B,kBAvBiB,mCAwBlBu5F,IACA,IAAMtrB,GAAexoE,EAAAA,EAAAA,MAAI,GACnBm3F,EAAa,yCAAG,wGAwHb,GAxHa,SAEd3uB,EAAajuE,OAAQ,EAMC,gBAAlBi9F,EAASj9F,QACT27F,EAAmB,KACnBE,EAAwB,KACxBH,EAAqB,KACrBE,EAAqB,KACrB4C,EAAuB,CACnBC,cAAe3B,EAAiB98F,MAChC0+F,sBAAuBpB,EAAsBt9F,MAC7CmX,YAAaA,EAAYnX,MACzB49F,gBAAiBA,EAAgB59F,MACjC29F,sBAAuBA,EAAsB39F,MAC7C09F,uBAAwBA,EAAuB19F,MAC/C8S,YAAa,KACb0qF,aAAcA,EAAax9F,QAIb,cAAlBi9F,EAASj9F,QACT27F,EAAmB,KACnBE,EAAwB,KACxBD,EAAqB,KACrBF,EAAqB,CACjB+C,cAAe3B,EAAiB98F,MAChC0+F,sBAAuBpB,EAAsBt9F,MAC7CmX,YAAaA,EAAYnX,MACzBk2B,YAAa,KACbynE,sBAAuBA,EAAsB39F,MAC7C09F,uBAAwBA,EAAuB19F,MAC/C8S,YAAa,KACb0qF,aAAcA,EAAax9F,QAIb,YAAlBi9F,EAASj9F,QACT07F,EAAqB,KACrBG,EAAwB,KACxBD,EAAqB,KACrBD,EAAmB,CACfwB,YAAaA,EAAYn9F,MACzBy+F,cAAe3B,EAAiB98F,MAChC0+F,sBAAuBpB,EAAsBt9F,MAC7CmX,YAAaA,EAAYnX,MACzB69F,oBAAqBA,EAAoB79F,MACzC8S,YAAa,KACb0qF,aAAcA,EAAax9F,QAIb,cAAlBi9F,EAASj9F,QACT07F,EAAqB,KACrBG,EAAwB,KACxBF,EAAmB,KACnBC,EAAqB,CACjB6C,cAAe3B,EAAiB98F,MAChC0+F,sBAAuBpB,EAAsBt9F,MAC7C69F,oBAAqBA,EAAoB79F,MACzC8S,YAAa,KACb0qF,aAAcA,EAAax9F,QAIb,iBAAlBi9F,EAASj9F,QACT07F,EAAqB,KACrBC,EAAmB,KACnBC,EAAqB,KACrBC,EAAwB,CACpB4C,cAAe3B,EAAiB98F,MAChC0+F,sBAAuBpB,EAAsBt9F,MAC7C89F,sBAAuBA,EAAsB99F,MAC7C+9F,sBAAuBA,EAAsB/9F,MAC7C8S,YAAa,KACb0qF,aAAcA,EAAax9F,QAI7B2+F,EAAgB,CAClBC,YAAa,IAAI7lF,KACjBwwC,UAAW,CAAEvhD,GAAI/F,OAAOsnD,EAAUvpD,OAAQqmB,MAAO,GAAInR,OAAQ,GAAIiD,MAAO,GACxEnQ,GAAI+0F,EAAO/8F,MAAQ,EAAI+8F,EAAO/8F,MAAQ,EACtC4B,KAAM63F,EAAWz5F,MACjBm6F,SAAUY,EAAY/6F,MACtBi7F,gBAAiB,KACjBnoF,YAAa,KACbsnF,QAAS,KACTC,mBAAoB,EACpBwE,YAAa,IAAI9lF,KACjBykF,aAAc,KACd9B,mBAAoBA,EACpBC,iBAAkBA,EAClBE,sBAAuBA,EACvB2C,qBAAsBA,EACtB5C,mBAAoBA,EACpB1L,SAAU,CACNloF,GAAI,EACJ8K,YAAa,GACb0pF,gBAAiB2B,EAAgBn+F,MAAM2Y,KAAK,KAC5Cs0E,UAAWiD,EAASlwF,MACpB8+F,kBAAmBd,EAAgBh+F,MACnC++F,cAAe,IAAIhmF,KACnB6e,IAAKqmE,EAAYj+F,OAErB0kB,YAAa,CACT1c,GAAI0c,EAAY1kB,MAChB4B,KAAM,GACN4iB,OAAQ,IAEZ3J,WAAY,CACR7S,GAAsB,QAApB,EAAE6iF,EAAa7qF,aAAK,SAAK,GAE/ByzE,QAAS,CACLzrE,GAAiB,QAAf,EAAEyrE,EAAQzzE,aAAK,SAAK,MAI1B+8F,EAAO/8F,MAAQ,GAAC,kCACHojB,GAAUu7E,GAAc,kEAExBz7E,GAAay7E,GAAc,iDAEjB,OAFiB,UAE5C1wB,EAAajuE,OAAQ,EAAM,2EAElC,kBAjIkB,mCAmIbg/F,EAAqB,yCAAG,WAAOh3F,GAAU,yGACH9B,QAAQ2H,IAAI,CAAC0V,GAAUvb,GAAKwb,GAAkBxb,KAAK,gCAApFuzF,EAAU,KAAa,KAE9B9B,EAAWz5F,MAAQu7F,EAAW35F,KAC9Bm5F,EAAY/6F,MAAQu7F,EAAWpB,SAC/BtP,EAAa7qF,MAA6B,QAAxB,EAAGu7F,EAAW1gF,kBAAU,aAArB,EAAuB7S,GAC5CuhD,EAAUvpD,MAA4B,QAAvB,EAAGu7F,EAAWhyC,iBAAS,aAApB,EAAsBvhD,GAAGuJ,WAC3C2+E,EAASlwF,MAAQu7F,EAAWrL,SAASjD,UACrC+Q,EAAgBh+F,MAAQu7F,EAAWrL,SAAS4O,kBAC5Cb,EAAYj+F,MAAQu7F,EAAWrL,SAASt4D,IACxClT,EAAY1kB,MAA8B,QAAzB,EAAGu7F,EAAW72E,mBAAW,aAAtB,EAAwB1c,GAAGuJ,WAC/CkiE,EAAQzzE,MAA0B,QAArB,EAAGu7F,EAAW9nB,eAAO,aAAlB,EAAoBzrE,GAAGuJ,WAEnCgqF,EAAWI,kBACXsB,EAASj9F,MAAQ,WACjBw9F,EAAax9F,MAAQu7F,EAAWI,iBAAiB6B,aACjDK,EAAoB79F,MAAQu7F,EAAWI,iBAAiBkC,oBACxDV,EAAYn9F,MAAQu7F,EAAWI,iBAAiBwB,YAChDhmF,EAAYnX,MAAQu7F,EAAWI,iBAAiBxkF,YAChD2lF,EAAiB98F,MAAQu7F,EAAWI,iBAAiB8C,cACrDnB,EAAsBt9F,MAAQu7F,EAAWI,iBAAiB+C,uBAErDnD,EAAWK,oBAChBqB,EAASj9F,MAAQ,aACjBw9F,EAAax9F,MAAQu7F,EAAWK,mBAAmB4B,aACnDK,EAAoB79F,MAAQu7F,EAAWK,mBAAmBiC,oBAC1Df,EAAiB98F,MAAQu7F,EAAWK,mBAAmB6C,cACvDnB,EAAsBt9F,MAAQu7F,EAAWK,mBAAmB8C,uBAEvDnD,EAAWM,uBAChBoB,EAASj9F,MAAQ,gBACjBw9F,EAAax9F,MAAQu7F,EAAWM,sBAAsB2B,aACtDM,EAAsB99F,MAAQu7F,EAAWM,sBAAsBiC,sBAC/DC,EAAsB/9F,MAAQu7F,EAAWM,sBAAsBkC,sBAC/DjB,EAAiB98F,MAAQu7F,EAAWM,sBAAsB4C,cAC1DnB,EAAsBt9F,MAAQu7F,EAAWM,sBAAsB6C,uBAE1DnD,EAAWG,oBAChBuB,EAASj9F,MAAQ,aACjBw9F,EAAax9F,MAAQu7F,EAAWG,mBAAmB8B,aACnDE,EAAuB19F,MAAQu7F,EAAWG,mBAAmBgC,uBAC7DC,EAAsB39F,MAAQu7F,EAAWG,mBAAmBiC,sBAC5DxmF,EAAYnX,MAAQu7F,EAAWG,mBAAmBvkF,YAClD2lF,EAAiB98F,MAAQu7F,EAAWG,mBAAmB+C,cACvDnB,EAAsBt9F,MAAQu7F,EAAWG,mBAAmBgD,uBAEvDnD,EAAWiD,uBAChBvB,EAASj9F,MAAQ,eACjBw9F,EAAax9F,MAAQu7F,EAAWiD,qBAAqBhB,aACrDI,EAAgB59F,MAAQu7F,EAAWiD,qBAAqBZ,gBACxDF,EAAuB19F,MAAQu7F,EAAWiD,qBAAqBd,uBAC/DC,EAAsB39F,MAAQu7F,EAAWiD,qBAAqBb,sBAC9DxmF,EAAYnX,MAAQu7F,EAAWiD,qBAAqBrnF,YACpD2lF,EAAiB98F,MAAQu7F,EAAWiD,qBAAqBC,cACzDnB,EAAsBt9F,MAAQu7F,EAAWiD,qBAAqBE,uBACjE,4CACJ,gBAxD0B,sCA0D3B,MAAO,CACHhC,UAAAA,EACAjD,WAAAA,EACAsB,YAAAA,EACAiC,aAAAA,EACAzzC,UAAAA,EACA1nC,WAAAA,EACAo7E,SAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,aAAAA,EACAY,gBAAAA,EACAC,YAAAA,EACA/N,SAAAA,EACAgO,UAAAA,EACA/mF,YAAAA,EACAkmF,cAAAA,EACAC,sBAAAA,EACAR,iBAAAA,EACAS,sBAAAA,EACAC,aAAAA,EACAC,cAAAA,EACAC,uBAAAA,EACAC,sBAAAA,EACAC,gBAAAA,EACAC,oBAAAA,EACAC,sBAAAA,EACAC,sBAAAA,EACAr5E,YAAAA,EACAwuD,aAAAA,EACAO,QAAAA,EACAF,SAAAA,EACA4qB,gBAAAA,EACAlwB,aAAAA,EACA8uB,OAAAA,EACAH,cAAAA,EACAoC,sBAAAA,EACA1wB,UAAAA,EACAuc,aAAAA,EACAriE,YAAAA,EACA82B,KAAM,CAAEvkC,GAAAA,GAEhB,EACArY,MAAO,CACHymB,OAAQ,CACJvmB,QAAO,SAAC+F,GACCA,GACAA,EAAIqX,OAAOhY,KAEhBpH,KAAKm8F,OAAS96F,OAAO0G,EAAIqX,OAAOhY,IAChCpH,KAAKo+F,sBAAsBp+F,KAAKm8F,QACpC,EACAn0F,WAAW,EACXjG,MAAM,MChYyR,M,uBCAxF,GAAe,KCO9N,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,ICkBYs8F,GAgBAC,GDlCZ,GAAe,GAAiB,QEtBwT,GAAC,W,IAAC53F,EAAAA,K,EAAwB,EAAC,SAAmB,oB,OAAW,aAAW,GAAQ,e,MAACjG,C,MAAwB,oB,KAAE,e,OAAuC,GAAC1C,eAAIwgG,C,aAAyD,oB,QAAI,oD,aAAQ,a,YAA+C,O,IAAC,gB,GAAE,W,MAAoB,GAAC,K,YAAQ,OAAE,OAAIxgG,MAAO,YAAoC,QAAM,QAAC,uBAAM,iCAAuD0C,GAAAA,CAAgC,MAAS,SAAU,GAACA,EAAY,qBAAoB,IAAyDvC,CAAE,EAAC,IAAS,CAAkFuC,MAAY,CAAoB,UAAc,uCAAI1C,EAAgG,OAAS,MAAqB,GAAEyC,GAAAA,EAAY,WAAc,iB,YAAO,a,GAAC,GAAI,kB,YAA2B,aAAE,GAAEzC,GAAIG,iBAAmB,EAAG,KAAK,C,YAA8E,a,GAAUqC,GAAI,iBAAW,6CAA8D,OAA9D,gB,YAAI,c,MAAgB,C,QAAQ,M,+CAAkC,+B,SAAE,M,IAAE,EAAI,M,CAAyC,yBAAC,MAAG,CAAaC,GAAG,iBAAa,OAAa,EAAC,M,CAAK,KAAO,EAAC,eAAe,GAAC,oD,YAAQzC,EAAIygG,GAAAA,CAAAA,CAAwB,gBAAC,eAAM,IAAC,OAAsJ,mBAAC,MAAQ,CAAiB,KAAWC,KAA2B,mCAAIj+F,IAA4J,MAAK,IAAuBjB,CAAAA,EAAM,cAACH,GAAAA,CAA+BkB,MAAS,YAAgBvC,OAAI2gG,EAAAA,mBAAsB,EAAC,IAAgC,oFAAIl+F,GAAG,CAAa3C,MAAM,YAAC,OAAQ,uBAAkB,EAAC,IAA+E,6F,KAAC6I,MAAAA,IAAY3I,GAAM,EAAE,e,MAAK,CAAU4I,MAAG,qB,SAAmBnG,SAAW,G,EAAG,mBAAC,C,aAA8Bk+F,uB,eAA2B,C,MAAG,C,MAAkD,mB,SAAE,iC,QAAmC,wB,YAAkE,O,kCAAyD,QAAC,IAAI3gG,MAAO,SAAY,GAAC,uBAAM,IAAe,+BAACqB,MAAWu/F,CAAmBr+F,QAAS,uBAAoBq+F,UAAAA,EAAiB,mBAAI,wBAAEl/F,GAAAA,CAA8B,kBAAO,SAAe,oBAAO,IAA0B,kBAACF,EAAOH,OAAOrB,K,MAAkD,CAAqB,MAAC,oBAAC0B,SAAU,SAAC,GAAkB,qBAAIe,EAAiB3C,WAAM,sBAAiC,SAAC0B,MAAM,CAACH,MAAOrB,kB,MAAkD,CAAqB,MAAC,mBAAC0B,SAAU,SAAC,GAAkB,oBAAI,EAAmC5B,WAAM,sBAA0B,Q,MAAsC,CAAgC,+B,MAAK,C,MAA2B,EAAOE,iBAAmB,qBAAE,oBAACwB,EAAOH,WAAWw/F,uB,IAAkDA,GAAAA,EAAAA,uBAAuB,C,MAAC,CAACn/F,WAAW,YAAqB,kCAAI,YAAG,mBAEj3GtB,GAAAA,CAEJ,QAAiBA,SAAe,G,wKDoChC,SAAYkgG,GACRA,EAAAA,eAAAA,cAEAA,EAAAA,eAAAA,cACAA,EAAAA,aAAAA,YACAA,EAAAA,SAAAA,QACAA,EAAAA,UAAAA,SACAA,EAAAA,mBAAAA,kBACAA,EAAAA,YAAAA,WACAA,EAAAA,mBAAAA,kBAEAA,EAAAA,QAAAA,OAEAA,EAAAA,SAAAA,OACH,EAdD,CAAYA,KAAAA,GAAW,KAgBvB,SAAYC,GACRA,EAAAA,cAAAA,aACAA,EAAAA,kBAAAA,gBACH,CAHD,CAAYA,KAAAA,GAAU,KA2Df,IAAMO,GAAW,SAACvmF,GACrB,IAAQtX,EAA8BsX,EAA9BtX,KAAM6pC,EAAwBvyB,EAAxBuyB,OAAQ34B,EAAgBoG,EAAhBpG,YACtB,MAAO,CACH9K,GAAIyjC,EAAS,GAAH,OAAMA,EAAM,aAAIi0D,EAAAA,GAAAA,OAASA,EAAAA,GAAAA,KACnC99F,KAAMA,EACNkR,YAAaA,EACb6sF,SAAU,CAAC,EAEnB,EAEaC,GAAc,SAAyB1mF,EAA2BisB,GAO3E,OANA7iC,OAAO2M,KAAKiK,GAAGW,SAAQ,SAACiX,QACP1jB,IAAT8L,EAAE4X,KACFqU,EAAKrU,GAAK5X,EAAE4X,GAEpB,IAEOqU,CACX,EAEa06D,GAAiB,SAACC,EAAkB36D,GAC7C,IAAM46D,EAAa56D,EAAKw6D,SAASG,EAAO93F,IACxC,GAAI+3F,EAAY,MAAM,IAAIzjE,MAAM,gCAEhC,OADA6I,EAAKw6D,SAASG,EAAO93F,IAAM83F,EACpB36D,CACX,EAEa66D,GAAmB,SAC5Bh4F,EACAkR,EACAisB,GAEA,IAAM3oB,EAAU2oB,EAAKw6D,SAAS33F,GAS9B,OARIwU,GACAla,OAAO2M,KAAKiK,GAAGW,SAAQ,SAACiX,QACP1jB,IAAT8L,EAAE4X,KACFtU,EAAQsU,GAAK5X,EAAE4X,GAEvB,IAGGqU,CACX,EAEa86D,GAAoB,SAACj4F,EAAYm9B,GAE1C,cADOA,EAAKw6D,SAAS33F,GACdm9B,CACX,EAEa+6D,GAAsB,SAC/Br+E,EACAsjB,GAEA,GAAe,OAAVtjB,QAAU,IAAVA,GAAAA,EAAY/K,OAqBjB,OApBA+K,EAAWhI,SAAQ,SAACoO,GAChB,IAAMzL,EAAU2oB,EAAKw6D,SAAS13E,EAAEjgB,IAC5BwU,QACYpP,IAAR6a,EAAEyI,IACFlU,EAAQkU,EAAIzI,EAAEyI,QAENtjB,IAAR6a,EAAEk4E,IACF3jF,EAAQ2jF,EAAIl4E,EAAEk4E,QAEN/yF,IAAR6a,EAAEb,IACF5K,EAAQ4K,EAAIa,EAAEb,QAENha,IAAR6a,EAAEqW,IACF9hB,EAAQ8hB,EAAIrW,EAAEqW,IAGlBvd,QAAQhX,MAAM,YAEtB,IAEOo7B,CACX,EEvLai7D,IAAe/zE,EAAAA,GAAAA,IAAY,QAAQ,WAC5C,IAAMg0E,GAAgB56F,EAAAA,EAAAA,KAAI,MAEpB66F,GAAU76F,EAAAA,EAAAA,KAAqB,MAC/B86F,GAA0B96F,EAAAA,EAAAA,KAAyC,CAAC,GACpE+6F,GAAsB/6F,EAAAA,EAAAA,KAA0C,CAAC,GAEjEg7F,EAAI,yCAAG,WAAOt/F,GAAY,uEACO,OAA/BA,IAAKk/F,EAAcrgG,MAAQmB,GAAI,SAC7Bu/F,IAAsB,2CAC/B,gBAHS,sCAKJC,EAAO,yCAAG,WAAOx/F,EAAa0jB,GAAa,uFACvBgnC,GAAAA,UAAiC1qD,EAAK,CACxD0rD,OAAQ,kBAAMhoC,CAAG,EACjB+nC,SAAU,WACN,IAEN,OALF0zC,EAAQtgG,MAAQ,EAAH,gDAMhB,gBAPY,wCASP4gG,EAAiB,yCAAG,WAAO54F,EAAYkR,GAAoE,mFAChF,OADgF,EAC3EA,GAAK,CAAC,EAAhC3R,EAAE,EAAFA,GAAI3F,EAAI,EAAJA,KAAMkR,EAAW,EAAXA,YAAW,SAChB+4C,GAAAA,UAAiC7jD,EAAI,CAC9C6kD,OAAQ,kBAAMg0C,GAAW,CAAEj/F,KAAMA,GAAQ,eAAgBkR,YAAaA,GAAe,8BAA+B,EACpH85C,SAAUrlD,IACZ,mFACL,gBANsB,wCAQjBm5F,EAAoB,yCAAG,WAAOxnF,GAAmE,uFAC7E0nF,EAAkBP,EAAcrgG,MAAOkZ,GAAE,OAAlD,OAAbonF,EAAQtgG,MAAQ,EAAH,uBACNsgG,EAAQtgG,OAAK,2CACvB,gBAHyB,sCAKpB8gG,EAAc,yCAAG,WACnBl/F,EACAlD,EACAmK,EACAk4F,GAA6B,uFAkC5B,OAhCK/4F,GAAK03F,EAAAA,GAAAA,KACHhvE,EAAeqwE,EAAfrwE,EAAGyvE,EAAYY,EAAZZ,EAAG/4E,EAAS25E,EAAT35E,EAAGkX,EAAMyiE,EAANziE,EACX9hB,EAAU,SAAC2oB,GACb,GAAIzmC,IAASmiG,GAAAA,KAAoB,CAC7B,GAAI,UAAWh4F,EACX,OAAOg4F,GAAiB,CAAE74F,GAAAA,EAAI0oB,EAAAA,EAAGyvE,EAAAA,EAAG/4E,EAAAA,EAAGkX,EAAAA,EAAG5/B,KAAAA,EAAMmK,OAAAA,EAAQjH,KAAAA,GAAQujC,GAEhE,MAAM,IAAI7I,MAAM,4C,CAEjB,GAAI59B,IAASmiG,GAAAA,MAAqB,CACrC,GAAI,QAASh4F,EACT,OAAOg4F,GAAiB,CAAE74F,GAAAA,EAAI0oB,EAAAA,EAAGyvE,EAAAA,EAAG/4E,EAAAA,EAAGkX,EAAAA,EAAG5/B,KAAAA,EAAMmK,OAAAA,EAAQjH,KAAAA,GAAQujC,GAEhE,MAAM,IAAI7I,MAAM,6C,CAEjB,GAAI59B,IAASmiG,GAAAA,OAAsB,CACtC,IAAMG,EAAcn4F,EACpB,OAAOg4F,GAAiB,CAAE74F,GAAAA,EAAI0oB,EAAAA,EAAGyvE,EAAAA,EAAG/4E,EAAAA,EAAGkX,EAAAA,EAAG5/B,KAAAA,EAAMmK,OAAQm4F,EAAap/F,KAAAA,GAAQujC,E,CAC1E,GAAIzmC,IAASmiG,GAAAA,gBAA+B,CAC/C,IAAMI,EAAuBp4F,EAC7B,OAAOg4F,GAAiB,CAAE74F,GAAAA,EAAI0oB,EAAAA,EAAGyvE,EAAAA,EAAG/4E,EAAAA,EAAGkX,EAAAA,EAAG5/B,KAAAA,EAAMmK,OAAQo4F,EAAsBr/F,KAAAA,GAAQujC,E,CAEtF,IAAM+7D,EAAqBr4F,EAC3B,GAAI,UAAWA,EACX,MAAM,IAAIyzB,MAAM,yDACb,GAAI,aAAczzB,EACrB,MAAM,IAAIyzB,MAAM,0DAGhB,OAAOukE,GAAiB,CAAE74F,GAAAA,EAAI0oB,EAAAA,EAAGyvE,EAAAA,EAAG/4E,EAAAA,EAAGkX,EAAAA,EAAG5/B,KAAAA,EAAMmK,OAAQq4F,EAAoBt/F,KAAAA,GAAQujC,EAGhG,EAAC,SACKu7D,EAAqB,CAAEn5F,GAAIiV,IAAU,2CAC9C,gBAxCmB,4CA0Cd2kF,EAAc,yCAAG,WAAOn5F,EAAYpG,GAAY,uFACrCg/F,EAAkB54F,EAAI,CAAET,GAAI,SAAC49B,GAAI,OAAK07D,GAAc,CAAEj/F,KAAAA,GAAQujC,EAAK,EAAEvjC,KAAAA,IAAO,mFAC5F,gBAFmB,wCAIdw/F,EAAiB,yCAAG,WACtBp5F,EACApG,EACAlD,EACAmK,GAAwG,6EAwEvG,OAtEKtB,EAAK,SAAC49B,GACR,GAAIzmC,IAASmiG,GAAAA,KAAoB,CAC7B,GAAI,UAAWh4F,EACX,OAAOg4F,GACH74F,EACA,CACIpG,KAAAA,EACAlD,KAAAA,EACAmK,OAAAA,GAEJs8B,GAGJ,MAAM,IAAI7I,MAAM,4C,CAEjB,GAAI59B,IAASmiG,GAAAA,MAAqB,CACrC,GAAI,aAAch4F,EACd,OAAOg4F,GACH74F,EACA,CACIpG,KAAAA,EACAlD,KAAAA,EACAmK,OAAAA,GAEJs8B,GAGJ,MAAM,IAAI7I,MAAM,6C,CAEjB,GAAI59B,IAASmiG,GAAAA,OAAsB,CACtC,IAAMG,EAAcn4F,EACpB,OAAOg4F,GACH74F,EACA,CACIpG,KAAAA,EACAlD,KAAAA,EACAmK,OAAQm4F,GAEZ77D,E,CAED,GAAIzmC,IAASmiG,GAAAA,gBAA+B,CAC/C,IAAMI,EAAuBp4F,EAC7B,OAAOg4F,GACH74F,EACA,CACIpG,KAAAA,EACAlD,KAAAA,EACAmK,OAAQo4F,GAEZ97D,E,CAGJ,GAAI,UAAWt8B,EACX,MAAM,IAAIyzB,MAAM,yDACb,GAAI,aAAczzB,EACrB,MAAM,IAAIyzB,MAAM,0DAGhB,IAAM+kE,EAAex4F,EACrB,OAAOg4F,GACH74F,EACA,CACIpG,KAAAA,EACAlD,KAAAA,EACAmK,OAAQw4F,GAEZl8D,EAIhB,EAAC,SACYu7D,EAAqB,CAAEn5F,GAAAA,EAAI3F,KAAAA,IAAO,mFAClD,gBA9EsB,4CAgFjBq+F,EAAiB,yCAAG,WAAOqB,GAAc,6EACW,OAAhD/5F,EAAK,SAAC49B,GAAI,OAAK07D,GAAoBS,EAAQn8D,EAAK,WACzCu7D,EAAqB,CAAEn5F,GAAAA,IAAK,mFAC5C,gBAHsB,sCAKjBg6F,EAAkB,yCAAG,8FAWoD,OAVrEC,EAAiF,CAAC,EACxFl/F,OAAOy7C,QAAQwiD,EAAwBvgG,OAAO6Z,SAAQ,YAAY,oBAAV7R,EAAE,KAAEsJ,EAAC,KACzDkwF,EAAWx5F,GAAM,CAAEA,GAAAA,EAAIof,EAAG9V,EAAE8V,EAAGkX,EAAGhtB,EAAEgtB,EACxC,IACAh8B,OAAOy7C,QAAQyiD,EAAoBxgG,OAAO6Z,SAAQ,YAAY,oBAAV7R,EAAE,KAAEmpB,EAAC,KAC/CxoB,EAAM64F,EAAWx5F,IAAO,CAAEA,GAAAA,GAChCW,EAAIw3F,EAAIhvE,EAAEgvE,EACVx3F,EAAI+nB,EAAIS,EAAET,EACV8wE,EAAWx5F,GAAMW,CACrB,IACMpB,EAAK,SAAC49B,GAAI,OAAK07D,GAAsBv+F,OAAO8a,OAAOokF,GAAar8D,EAAK,WACtDu7D,EAAqB,CAAEn5F,GAAAA,IAAK,OAElB,OAFzBmY,EAAS,EAAH,KACZ6gF,EAAwBvgG,MAAQ,CAAC,EACjCwgG,EAAoBxgG,MAAQ,CAAC,EAAE,kBACxB0f,GAAM,4CAChB,kBAhBuB,mCAkBxB,MAAO,CACH2gF,cAAAA,EACAC,QAAAA,EACAC,wBAAAA,EACAC,oBAAAA,EACAe,mBAAAA,EACAd,KAAAA,EACAK,eAAAA,EACAM,kBAAAA,EACAnB,kBAAAA,EACAS,qBAAAA,EACAE,kBAAAA,EACAD,QAAAA,EACAQ,eAAAA,EAER,ICtMA,IAAej8F,EAAAA,EAAAA,iBAAgB,CAC3BG,MAAK,WACD,IAAMo8F,EAAYrB,KACZsB,GAAaj8F,EAAAA,EAAAA,KAA6B,IAC1C65F,GAAqB75F,EAAAA,EAAAA,MAAI,GACzB85F,GAAoB95F,EAAAA,EAAAA,MAAI,GACxB05F,GAAuB15F,EAAAA,EAAAA,MAAI,GAC3Bk8F,GAAmBl8F,EAAAA,EAAAA,KAAI,IACvBm8F,GAAmBn8F,EAAAA,EAAAA,KAAI,IACvBo8F,GAAmBp8F,EAAAA,EAAAA,KAAkC,MAErDq8F,EAAa,yCAAG,oGACOn9E,KAAsB,OAA/C+8E,EAAW1hG,MAAQ,EAAH,gDACnB,kBAFkB,mCAGnB8hG,IAEA,IAAMC,EAAkB,yCAAG,kGAKuB,GALvB,SAGnB5C,EAAqBn/F,OAAQ,EACvB4B,EAAO+/F,EAAiB3hG,MACxB8S,EAAc8uF,EAAiB5hG,OACjC6hG,EAAiB7hG,MAAO,CAAF,gCACHyhG,EAAUN,eAAeU,EAAiB7hG,MAAMgI,GAAIpG,GAAK,OAAlE,OAAJujC,EAAO,EAAH,eACJhgB,GACF08E,EAAiB7hG,MAAMgI,GACvB,CAAEpG,KAAAA,EAAMkR,YAAAA,GACRqyB,GACH,QACD08D,EAAiB7hG,MAAM4B,KAAOA,EAC9BigG,EAAiB7hG,MAAM8S,YAAcA,EAAY,wBAEJ,OAAvC+R,EAAMg8E,GAAW,CAAEj/F,KAAAA,EAAMkR,YAAAA,IAAc,UACxB8R,GACjB,CACI9R,YAAa8uF,EAAiB5hG,MAC9B4B,KAAM+/F,EAAiB3hG,OAE3B6kB,GACH,QANW,OAANnF,EAAS,EAAH,eAON+hF,EAAUd,QAAQjhF,EAAO1X,GAAI6c,GAAI,QACvC68E,EAAW1hG,MAAQ,GAAH,gBAAO0hG,EAAW1hG,OAAK,CAAE0f,IAAQ,QAErDmiF,EAAiB7hG,MAAQ,KACzBs/F,EAAmBt/F,OAAQ,EAAM,QAEE,OAFF,UAEjCm/F,EAAqBn/F,OAAQ,EAAM,2EAE1C,kBAhCuB,mCAkClBo/F,EAAqB,SAAC4C,GACxB1C,EAAmBt/F,OAAQ,EAC3B6hG,EAAiB7hG,MAAQgiG,CAC7B,GAEAt/F,EAAAA,EAAAA,OAAMm/F,GAAkB,SAAC55E,GACrB05E,EAAiB3hG,OAAS,OAADioB,QAAC,IAADA,OAAC,EAADA,EAAGrmB,OAAQ,KACpCggG,EAAiB5hG,OAAS,OAADioB,QAAC,IAADA,OAAC,EAADA,EAAGnV,cAAe,IAC/C,IAEA,IAAM0sF,GAAsB/5F,EAAAA,EAAAA,MAAI,GAC1B45F,EAAuB,SAAC2C,GAC1BxC,EAAoBx/F,OAAQ,EAC5B6hG,EAAiB7hG,MAAQgiG,CAC7B,EAEMC,EAAgB,WAClBJ,EAAiB7hG,MAAQ,KACzB8hG,GACJ,EAEA,MAAO,CACHJ,WAAAA,EACAvC,qBAAAA,EACAI,kBAAAA,EACAD,mBAAAA,EACAuC,iBAAAA,EACAD,iBAAAA,EACAD,iBAAAA,EACAI,mBAAAA,EACA3C,mBAAAA,EACAI,oBAAAA,EACAH,qBAAAA,EACAyC,cAAAA,EACAG,cAAAA,EAER,IC7FmS,MCOnS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClByD,GAAU,W,IAA8BxjG,EAAM,K,EAAC,EAAO,MAAKm1F,GAAgB,EAAC,kB,OAAY,aAAU,iBAAe,C,MAAC,CAAc,kBAAqB,iBAAIxyF,UAAU,gBAAE3C,SAAM,GAAC,mBAAmB,K,CAAU,O,MAAc,CAAe,MAAQ,YAAI,IAAO,GAAI,SAAQ,GAAG,aAAG,OAAC,GAAC,MAAQ,G,MAAwBE,IAAkB,IAAIyC,MAAG,SAAiB,GAAiCC,OAAW,EAAC,aAAO5C,IAAqC,6CAAC6C,YAAG,O,MAAC,CAAgC,OAAU,EAAC3C,OAAIujG,OAAAA,IAAiB,GAAG,CAAyBzjG,OAAM,qBAAC,SAASE,EAAIwjG,kBAAe76F,EAAAA,uBAAoB,C,MAAK,CAAUC,OAAG,iB,YAAmB66F,EAAU,K,IAAEC,U,GAAc,SAAW,G,IAAwB5jG,EAAM,S,EAAS,aAAW,EAAC,a,MAAI,gB,MAAC,C,MAAgCE,aAA+C,IAAIA,MAAO,SAAc,6BAAI,IAAa,GAAK,GAAC2jG,cAAWphG,K,MAA2C,CAACb,MAAAA,EAAU,UAAY,qBAAM,EAAC,WACr/B,EACGtB,WAAAA,gB,UCFqF,GAAU,W,IAAyBN,EAAM,K,EAAC,QAAY,GAAQ,EAAU,MAAC,Y,OAAC,QAAY,CAAC,EAAE,e,MAAC,CAAoB,SAAc,OAAM,YAAoB,aAAa,GAAM,kBAAwB,gBAAc,EAAI,iBAA0B,cAAG,oBAAC,EAAC,WAAe,I,sBAAmC,GAAC,IAAGE,gBAAkB,SAAgB,GAAC,EAAOyC,OAAG,CAAaD,I,EAAmB,GAAG,EAAC+S,QAAM,Y,OAAI,EAACA,YAAM,C,IAAI,EAACA,G,MAAWA,CAAO,EAAIA,EAAKlM,EAAG,MAAG,EAAC,IAAC,IAAQrJ,EAAgB,IAAOA,I,GAA2C,CAA2B,oBAAIyC,KAAG,cAAc3C,OAAM,gBAAC,QAASyV,EAAKrL,gB,CAAwB,eAAYnK,CAAI,MAAC,CAAG,OAAC,SAAC,OAAW,K,KAAiB,EAAWwjG,M,GAAsB,C,SAAoC,SAAkB,GAAC,0BAAE,EAAC56F,OAAW,SAAS,GAACnG,OAAI,eAAS,EAACoG,G,YAAuD,O,iBAAU,W,MAAK,gB,MAAC,C,KAAyB,IAA8B,IAAInG,MAAG,SAAiB,GAA0B3C,OAAM,iBAAC,IAAW6C,CAAE,EAAC,+B,MAAC,C,KAAyB,IAAgC,IAAIF,MAAG,SAAiB,GAAiB,0BAAM,IAAwB,6BAAK,EAC5qC,WACGrC,MAAAA,MAEKgB,E,yCCJLA,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,MAAqB,gBAAbh2B,EAAID,KAAwB0C,EAAG,wBAAwB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,cAAbpS,EAAID,KAAsB0C,EAAG,sBAAsB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,UAAbpS,EAAID,KAAkB0C,EAAG,kBAAkB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,aAAbpS,EAAID,KAAqB0C,EAAG,qBAAqB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,SAAbpS,EAAID,KAAiB0C,EAAG,oBAAoB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,UAAbpS,EAAID,KAAkB0C,EAAG,kBAAkB,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,WAAbpS,EAAID,KAAmB0C,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAsB,oBAAbpS,EAAID,KAA4B0C,EAAG,4BAA4B,CAAC3C,MAAM,CAAC,KAAOE,EAAIiD,KAAK,OAASjD,EAAIkK,OAAO,eAAelK,EAAI4jG,aAAaj7F,YAAY3I,EAAIoQ,GAAG,CAAC,CAAC5N,IAAI,UAAUoG,GAAG,WAAW,MAAO,CAAC5I,EAAI0Q,GAAG,WAAW,EAAE0B,OAAM,IAAO,MAAK,KAAQ3P,EAAG,MAAM,CAACzC,EAAIG,GAAG,uBAAuBH,EAAIkS,GAAGlS,EAAID,QACr8D,EACIK,GAAkB,G,GCF+H,W,IAAgB,OAA4B,aAAO,QAAc,Y,OAAqBsC,EAAAA,GAAAA,EAAY,CAAQ,YAAa,WAAE5C,MAAM,CAAC,KAAO,GAAE,cAAIE,QAAO,mB,CAAmG,QAAQ,kB,YAAC,SAAgB,QAAE,MAAM0Q,CAA8FlP,KAAM,K,CAAgCe,EAAAA,GAAAA,aAAS,KAAUynB,IAAK,4CAAyF,OAAzF,Q,MAAI,CAAuB,IAAC,GAACtoB,cAAW,KAAuB1B,CAAAA,EAAIqQ,GAAIrQ,YAAI6jG,IAAwB,GAAC,gDAAC,MAAOphG,CAAYD,MAAK,qBAAC1C,SAAM,YAAC,qBAAYwX,CAAC,EAAE,WAAY,uBAAkD5U,EAAAA,GAAAA,EAAW,cAAc,YAACuK,OAAAA,EAAAA,GAAAA,EAAY,CAAC,MAAoB,MAAO,CAAO,gBAAwDnN,CAAAA,EAAM,qB,IAAC,KAAOE,KAAIu1B,EAAAA,GAAAA,GAAY,C,YAAC,c,YAA8B,CAA2C,kBAA2B,MAAQ,SAAS5yB,CAAG,UAAD,EAAC,iC,MAAC,CAAwC,KAAO,EAAI,aAAqB,0BAAI,YAAK,eAAiB,YAAC7C,qBAAM,EAAC,OAAU,Q,GAAqC,CAA8B,iBAAkB01B,EAAAA,iBAAyB,MAAQ,EAAC,yBAAW,qB,MAAC,CAAgC,qBAAK,KAAK/yB,EAAG,aAAOC,YAAY,cAAqBD,YAAG,EAAc,yBAAC3C,OAAM,QAAY,GAAC,CAAC6I,MAAW,EAAC3I,0BAA2B,GAAC,SAASg2F,C,YAA2Bh2F,oB,CAAgD,iBAAC,MAAE,CAACwC,MAAI,K,YAA6B,MAALuO,C,IAAS,Y,GAAwBjR,SAAM,G,MAAC,GAAO,GAACE,YAAO,a,QAA0E,U,GAA4BF,SAAM,G,IAAC,IAAa,M,MAAyB,eAAiB,C,MAAC,CAAoB,QAAa,GAAC,gCAAI,sCAAuB6C,CAAE,EAAC,wB,MAAC,C,YAAqC,EAAE,iCAAC,gBAAK,aAAI,KAAQ,GAAC,cAAK,CAAM,GAAC,CAAM,MAAMq1E,SAAiB,GAAS,OAAC,GAAoBA,OAAsBt2E,GAA6B,IAAM,MAAK,GAC7hE,OACGtB,MAAAA,EAAAA,iBAEJ,SAAe,SAAiB,G,8FCoBhC,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDqD,WAAY,CAAE+qC,mBAAAA,GAAoB4Z,eAAAA,GAAgB0uB,oBAAAA,IAClDh5E,KAAI,WACA,MAAO,CACHk3E,oBAAqB,GACrBC,kBAAkB,EAE1B,EACAtxE,MAAK,SAACrG,EAAOsH,GACT,IAAM8iC,EAAclU,KAEdf,GAAe1uB,EAAAA,EAAAA,MAAI,UAClB2jC,EAAY/qC,UAGbokG,GAAqBh9F,EAAAA,EAAAA,KAAY,GACjC+8F,GAAe/8F,EAAAA,EAAAA,KAAc,IAC7Bm4B,GAAUn4B,EAAAA,EAAAA,KAAI,SACdsmF,GAAYtmF,EAAAA,EAAAA,KAAI,CAAC,SAAU,YAAa,aACxCi9F,GAAqBj9F,EAAAA,EAAAA,MAAI,GAEzB2uB,EAAuB,WACzB,EAGEF,GAAezuB,EAAAA,EAAAA,KAAI,CACrBs0B,OAAQ,GACRyD,SAAU,KAERoD,GAAUn7B,EAAAA,EAAAA,UAAmB2H,GAE7Bu1F,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9B++B,GAAc/+B,EAAAA,EAAAA,KAAS,IACvBuzE,GAAqBvzE,EAAAA,EAAAA,OACrBm9F,GAAiBn9F,EAAAA,EAAAA,MAAI,GAErBo9F,EAAS,yCAAG,WACdC,EACAC,GAAsF,uGAElFH,EAAe5iG,MAAO,CAAF,gDACgF,GAAlGgjG,EAAcC,KAAK,CAAC9uE,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,MAAO0iG,EAAmB1iG,QAC7F2iG,EAAS3iG,QAAUgjG,EAAW,iDAK+B,GAJjEL,EAAS3iG,MAAQgjG,EAAY,SAGzBJ,EAAe5iG,OAAQ,EACjBggB,EAASsoB,GAA2BnU,EAAan0B,OAClDggB,EAAQ,CAAF,kDAI4F,OAHjGkjF,GAAc,kBAAKljF,GAAM,IAAEzF,YAAa4Z,EAAan0B,MAAMua,cAE3D4F,EACgB,UAAlByd,EAAQ59B,MAAoB,CAAC2Q,GAAgBwwC,SAAW,CAACxwC,GAAgBq7E,KAAMr7E,GAAgB+3C,KAAI,UAEjFxiD,QAAQ2H,IAC1Bk+E,EAAU/rF,MAAM4N,KAAI,SAACuY,GAAE,OAAKjG,IAAS,kBAAKgjF,GAAW,IAAE36D,SAAUpiB,EAAIhG,OAAAA,IAAS,KACjF,QAqCQ,GAvCHm5B,EAAU,EAAH,KAIT6pD,EAAc,GACdt/C,EAAgB,GAEpBjjB,EAAQ5gC,MAAQggB,EAAOvI,OAED,UAAlBmmB,EAAQ59B,OACFw9B,EAAW8b,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC7B,IAAMyuB,EAAWwjD,EAAU/rF,MAAM8Z,GAC3BsjB,EAA2B,WAAbmL,EAAwB,SAAW,WACjDlL,EAAakL,EAAStoB,cAC5B,OAAOgd,GAA+BtvB,EAAG,CACrCyvB,YAAAA,EACAC,WAAAA,EACAE,WAAY1B,GAAiBO,SAErC,IACA+mE,EAAc3lE,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE8R,MAAM,IAAE7Y,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,IAC3EizB,EAAgBrmB,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAEuV,QAAQ,IAAEtc,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,MAEzE4M,EAAW8b,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC7B,IAAMyuB,EAAWwjD,EAAU/rF,MAAM8Z,GAC3BsjB,EAA2B,WAAbmL,EAAwB,SAAW,WACjDlL,EAAakL,EAAStoB,cAC5B,OAAOooC,GAAwC16C,EAAG,CAC9CyvB,YAAAA,EACAC,WAAAA,GAER,IACA8lE,EAAc3lE,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE,GAAG8R,MAAM,IAAE7Y,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,IAC9EizB,EAAgBrmB,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE,GAAGuV,QAAQ,IAAEtc,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,KAGtFsD,EAAal0B,MAAQ,CACjB+5B,OAAQopE,EACR3lE,SAAUqmB,IAGV6+C,EAAmB1iG,MAAO,CAAF,iCACSqQ,EAAAA,EAAAA,KAAAA,IACxB,mBAAoB,CACrB2P,OAAQ,CACJxI,SAAUwI,EAAOxI,SACjBC,OAAQuI,EAAOvI,OACf+B,gBAAiBwG,EAAOxG,gBACxBF,gBAAiB0G,EAAO1G,gBACxBC,WAAYyG,EAAOzG,WACnBa,YAAa4F,EAAO5F,eAG3B5M,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QASvB,OApBDw5E,EAAmBh5E,MAAQ,EAAH,KAalBojG,EAAOjjE,GACT64C,EAAmBh5E,MACnB6jD,EACA1vB,EAAan0B,MAAMmX,aACnB,SAACwoB,EAAMC,GACHmjE,EAAsB/pB,EAAmBh5E,MAAO2/B,EAAMC,EAC1D,IACH,UAEiCvvB,EAAAA,EAAAA,KAAAA,IACzB,wCAAyC,CAAE2P,OAAAA,IAC/Cc,OAAM,SAACva,GACJ,GAA4B,MAAxBA,EAAI1G,SAASmK,OAAgB,MAAO,CAAExK,KAAM,CAAC,GACjD,MAAM+G,CACV,IACCiH,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QANlBu5E,EAAsB,EAAH,KAQnBsqB,EAASzkE,GAA2Bm6C,GAAqB,SAACp5C,EAAMC,GAClE,IAAMnoB,EAAS,IAAIsB,KAAK6mB,GAClB0jE,EAAiBlyF,KAAKwP,MAAMgf,EAAOD,GAAQ,OAC3CqX,EAAS,GAAH,OAAMssD,EAAc,KAC1B/oF,EAAiD,aAAnC4Z,EAAan0B,MAAMua,YAA6B,WAAa,WAC3EoN,EAAe,IAAIC,gBAAgB,CACrCnQ,OAAQA,EAAOgD,cACfu8B,OAAAA,EACAz8B,YAAAA,IAEJuoF,EAASn7E,EACb,IAEA6c,EAAYxkC,MAAQ,GAAH,gBAAOojG,IAAI,QAAKC,IAAQ,wBAEzCrqB,EAAmBh5E,MAAQ,GAC3BwkC,EAAYxkC,MAAQ,GAAG,QAGE,OAHF,UAG3B4iG,EAAe5iG,OAAQ,EAAM,2EAEpC,gBA/Gc,yCAiHf0C,EAAAA,EAAAA,QACI,kBAAM1D,EAAM6J,MAAM,IAClB,SAAC06F,GACG,GAAKA,EAAL,CACA,IAAMxY,EAASwY,EACff,EAAaxiG,OAAS+qF,EAAOxwE,aAAe,IAAI9B,MAAM,KAAKd,QAAO,SAACgZ,GAAC,OAAKA,CAAC,IAC1E,IAAM3Q,EAASpH,GAAoCmyE,GAC7CxwE,EAAcioF,EAAaxiG,MAAMyiG,EAAmBziG,OAC1Dm0B,EAAan0B,OAAQ,kBAAKggB,GAAM,IAAEzF,YAAAA,IAClCqjB,EAAQ59B,MAAQ+qF,EAAOntD,SAAW,QAClCmuD,EAAU/rF,MAAQ+qF,EAAOgB,WAAa,CAAC,UACvC2W,EAAmB1iG,MAAQ+qF,EAAO2X,qBAAsB,CARxC,CASpB,GACA,CAAE95F,WAAW,EAAMjG,MAAM,KAG7BD,EAAAA,EAAAA,QACI,kBAAM+/F,EAAmBziG,KAAK,IAC9B,SAACsR,GACG,IAAMiJ,EAAcioF,EAAaxiG,MAAMsR,GACnC6iB,EAAan0B,MAAMua,cAAgBA,IACnC4Z,EAAan0B,OAAQ,kBAAKm0B,EAAan0B,OAAK,IAAEua,YAAAA,IAEtD,GACA,CAAE3R,WAAW,IAEjB,IAAM46F,GAAelgG,EAAAA,EAAAA,WAAS,WAC1B,MAAO,CAAC6wB,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,MACzD,IAEA,MAAO,CACHm0B,aAAAA,EACAC,qBAAAA,EACAoQ,YAAAA,EACAtQ,aAAAA,EACA2uE,UAAAA,EACAD,eAAAA,EACAH,mBAAAA,EACAD,aAAAA,EACAG,SAAAA,EACAa,aAAAA,EACA5lE,QAAAA,EACAo7C,mBAAAA,EACAp4C,QAAAA,EAER,EACAlhC,QAAS,CACLojG,SAAQ,SAACn7E,GACL/mB,KAAKmR,QAAQxT,KAAK,WAAD,OAAYopB,EAAapW,YAC9C,EACAwwB,iBAAgB,SAACt9B,GACb,IAAMgT,EAAS,IAAIsB,KAAKtU,EAAMm7B,MAC9BnoB,EAAOwoB,SAAS,EAAG,EAAG,EAAG,GAEzB,IAAMqjE,EAAiBlyF,KAAKwP,MAAMnc,EAAMm7B,KAAOn7B,EAAMk7B,MAAQ,OACvDqX,EAAS,GAAH,OAAMssD,EAAc,KAC1B/oF,EAAsD,aAAxC3Z,KAAKuzB,aAAan0B,MAAMua,YAA6B,WAAa,WAChFoN,EAAe,IAAIC,gBAAgB,CACrCnQ,OAAQA,EAAOgD,cACfu8B,OAAAA,EACAz8B,YAAAA,IAEJ3Z,KAAKkiG,SAASn7E,EAClB,EACAo7E,sBAAqB,SAACv+D,EAA2B7E,EAAcC,GAC3D,IAAMnoB,EAAS,IAAIsB,KAAK6mB,GAAMvB,UACxB7mB,EAAW,IAAIuB,KAAK4mB,GAAMtB,UAChCz9B,KAAK81E,oBAAsBlyC,EAAY7sB,QAAO,SAACyP,GAC3C,IAAM8hB,EAAO,IAAInwB,KAAKqO,EAAEkZ,gBAAgBjC,UACxC,OAAO6K,GAAQ1xB,GAAY0xB,GAAQzxB,CACvC,IACA7W,KAAK+1E,kBAAmB,CAC5B,GAEJj0E,MAAO,CACH8gG,aAAc,CACV5gG,QAAO,WACHhC,KAAKiiG,UAAUjiG,KAAKkiG,SAAUliG,KAAKmiG,sBACvC,EACAn6F,WAAW,IAGnBtF,SAAU,CACNiuC,WAAU,sBACN,OAAO3wC,KAAKgB,MAAQ4mC,GAA4B5nC,KAAKuzB,cAAc,kBAAe,EAAKpkB,GAAE,MAAP,EAAI,UAAc,GACxG,EACA4oE,yBAAwB,WACpB,GAAI/3E,KAAK81E,qBAAuB91E,KAAK81E,oBAAoB5/D,OAAS,EAAG,CACjE,IAAMkC,EAAQpY,KAAK81E,oBACd9oE,KAAI,SAACwZ,GACF,IAAM8hB,EAAO,IAAInwB,KAAKqO,EAAEkZ,gBAExB,OADA4I,EAAKjJ,SAAS,EAAG,EAAG,EAAG,GAChBiJ,CACX,IACClK,MAAK,SAACrO,EAAGC,GAAC,OAAKD,EAAE0N,UAAYzN,EAAEyN,SAAS,IAEvC3W,EAAQ1Q,GAAOgC,EAAM,IACrBmP,EAAMnR,GAAOgC,EAAMA,EAAMlC,OAAS,IACxC,OAAI4Q,EAAM+7E,OAAOt7E,GACNT,EAAMrZ,OAAO,WAEjB,GAAP,OAAUqZ,EAAMrZ,OAAO,WAAU,cAAM8Z,EAAI9Z,OAAO,W,CAG1D,KCtR2T,M,uBCA9F,GAAe,KCQhP,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCvBqH,W,IAAe,OAAE,EAAK,WAAmChN,EAAY,kBAAO,OAAM,OAAS,CAAC5C,YAAM,W,MAAC,CAAS,QAAIE,OAAO,S,CAAmG,QAAQ,kB,YAAC,SAAgB,QAAE,MAAM0Q,CAA8FlP,KAAM,K,CAAgCe,EAAAA,GAAAA,aAAS,KAAUynB,IAAK,4CAAyF,OAAzF,Q,MAAI,CAAuB,IAAC,GAACtoB,cAAW,KAAuB1B,CAAAA,EAAIqQ,GAAIrQ,YAAI6jG,IAAwB,GAAC,gDAAC,MAAOphG,CAAYD,MAAK,qBAAC1C,SAAM,YAAC,qBAAYwX,CAAC,EAAE,WAAY,uBAAkD5U,EAAAA,GAAAA,EAAW,cAAc,YAACuK,OAAAA,EAAAA,GAAAA,EAAY,CAAC,MAAmB,OAAKjN,YAAW,IAAgD,UAAc,EAACiiC,GAAAA,GAAO,M,IAAC,KAAOjiC,KAAIu1B,EAAAA,GAAAA,GAAY,C,YAAC,c,YAA8B,CAA2C,SAAS,WAAQ5yB,CAAG,UAAD,EAAC,kC,MAAC,CAAgC,qBAAI,KAAK,eAAmB7C,YAAM,cAAC,YAAc,EAACmiC,aAAO,YAAC,OAAOjiC,Q,GAA+C,CAA2C,MAAQ,EAAC,yBAAW,sB,MAAC,CAAgC,qBAAK,KAAM,EAAC,aAChwC,0BACGI,YAAe,EAAK,yBAExB,OAAe,Q,oDCJXgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCmBtB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHmY,YAAanV,OACbxC,KAAM8C,OACNkiC,YAAazuB,MACb7T,OAAQF,OACR4+B,QAAS5+B,QAEbqD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAC5C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aACF0X,EAAc,WAChB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB6tB,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBACV,SAAbqB,EAAEhX,QACFujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,eACzB6tB,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,sBAEpC4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG5C43B,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY7sB,EAAEhX,QAAU,QAE3CwjC,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAE9B,IAAMsP,EAAQ02B,GAAoBP,EAAOzlC,MAAO,CAC5CkuB,aAAcA,EAAaluB,MAC3BmX,YAAa+B,EAAE/B,YACf2nB,QAAO,SAACr6B,GACJ8gC,EAAK,QAAS9gC,EAClB,EACAu9B,qBAAqB,EACrBtjC,KAAM,OACNkiC,QAAS1nB,EAAE0nB,SAEf9G,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMjR,QAAQw7B,QAAQ0K,WAAWC,YAActrB,EAAEsrB,aAAe,GAChEl1B,EAAMsrB,QAxCiB,CAyC3B,EAcA,OAbAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,KAE7BD,EAAAA,EAAAA,QACI,kBAAMwW,EAAEsrB,WAAW,IACnB,kBAAMoB,GAAa,GACnB,CAAEh9B,WAAW,EAAOjG,MAAM,IAEvB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAC3B,EACAljC,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MClGyS,MCOjT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB5B7lC,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCgBtB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACHmY,YAAanV,OACbxC,KAAM8C,OACNJ,OAAQF,OACR4+B,QAAS5+B,OACT4mD,QAAS9mD,SAEbuD,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACDC,GAAO//B,EAAAA,EAAAA,KAAoB,MAC3BggC,GAAShgC,EAAAA,EAAAA,KAAuB,MAChCq0B,GAASr0B,EAAAA,EAAAA,KAAoB,MAC7BigC,GAAkBjgC,EAAAA,EAAAA,KAAoB,MAEtCmgC,EAAc,WAChB,GAAK1sB,EAAE1Z,MACFgmC,EAAKxlC,MAAV,CACAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBL,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,mBAEzB6tB,EAAgB1lC,MAAQgL,SAAS6tB,cAAc,OAC/C6M,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,0BAEpC4tB,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBACV,SAAbqB,EAAEhX,QACFujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,eACzB6tB,EAAgB1lC,MAAM8lC,UAAUjuB,IAAI,sBAEpC4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG5C43B,EAAO95B,MAAQgL,SAAS6tB,cAAc,OACtCiB,EAAO95B,MAAMgI,GAAMoJ,KAAKmyB,MAAsB,IAAhBnyB,KAAKC,UAAoBE,WACvDuoB,EAAO95B,MAAM6lC,UAAW,GACxB/L,EAAO95B,MAAM8lC,UAAUjuB,IAAI,gBAC3BiiB,EAAO95B,MAAM0B,MAAMqkC,UAAY7sB,EAAEhX,QAAU,QAG3CwjC,EAAgB1lC,MAAMq5B,YAAYoM,EAAOzlC,OACzCwlC,EAAKxlC,MAAMq5B,YAAYqM,EAAgB1lC,OACvCwlC,EAAKxlC,MAAMq5B,YAAYS,EAAO95B,OAC9B,IAAMsP,EAAQw5C,GAAuBrjB,EAAOzlC,MAAO,CAC/CmX,YAAa+B,EAAE/B,YACf2nB,QAAO,SAACr6B,GACJ8gC,EAAK,QAAS9gC,EAClB,EACA/F,KAAM,OACNkiC,QAAS1nB,EAAE0nB,QACXgoB,QAAS1vC,EAAE0vC,UAAW,GAE1B9uB,EAAO95B,MAAMgI,IACbsH,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QAtCiB,CAuC3B,EASA,OARAqL,EAAAA,EAAAA,YAAU,WACNL,GACJ,KACAljC,EAAAA,EAAAA,QACI,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAEtB,CAAE6iC,KAAAA,EAAMC,OAAAA,EAAQG,YAAAA,EAC3B,EACAljC,MAAO,CACH,sBAAuB,CACnBE,QAAO,WACHhC,KAAKglC,aACT,MCxFqS,MCO7S,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCIhC,IAAe1gC,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDqD,WAAY,CAAEu+F,oBAAAA,GAAqBC,gBAAAA,IACnCt+F,MAAK,SAACrG,GACF,IAAMoqC,EAAclU,KAEdf,GAAe1uB,EAAAA,EAAAA,MAAI,UAClB2jC,EAAY/qC,UAGbokG,GAAqBh9F,EAAAA,EAAAA,KAAY,GACjC+8F,GAAe/8F,EAAAA,EAAAA,KAAc,IAC7Bm4B,GAAUn4B,EAAAA,EAAAA,KAAI,SACdsmF,GAAYtmF,EAAAA,EAAAA,KAAI,CAAC,SAAU,YAAa,aACxCi9F,GAAqBj9F,EAAAA,EAAAA,MAAI,IAE/B/C,EAAAA,EAAAA,QACI,kBAAM1D,EAAM6J,MAAM,IAClB,SAAC06F,GACG,GAAKA,EAAL,CACA,IAAMxY,EAASwY,EACff,EAAaxiG,OAAS+qF,EAAOxwE,aAAe,IAAI9B,MAAM,KACtD,IAAMuH,EAASpH,GAAoCmyE,GAC7CxwE,EAAcioF,EAAaxiG,MAAMyiG,EAAmBziG,OAC1Dm0B,EAAan0B,OAAQ,kBAAKggB,GAAM,IAAEzF,YAAAA,IAClCqjB,EAAQ59B,MAAQ+qF,EAAOntD,SAAW,QAClCmuD,EAAU/rF,MAAQ+qF,EAAOgB,WAAa,CAAC,UACvC2W,EAAmB1iG,MAAQ+qF,EAAO2X,qBAAsB,CARxC,CASpB,GACA,CAAE95F,WAAW,EAAMjG,MAAM,KAG7BD,EAAAA,EAAAA,QACI,kBAAM+/F,EAAmBziG,KAAK,IAC9B,SAACsR,GACG,IAAMiJ,EAAcioF,EAAaxiG,MAAMsR,GACnC6iB,EAAan0B,MAAMua,cAAgBA,IACnC4Z,EAAan0B,OAAQ,kBAAKm0B,EAAan0B,OAAK,IAAEua,YAAAA,IAEtD,GACA,CAAE3R,WAAW,IAGjB,IAAMwrB,EAAuB,WACzB,EAGEF,GAAezuB,EAAAA,EAAAA,KAAI,CACrBs0B,OAAQ,GACRyD,SAAU,KAERoD,GAAUn7B,EAAAA,EAAAA,KAAmB,MAE7Bk9F,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9B++B,GAAc/+B,EAAAA,EAAAA,KAAI,IAClBm9F,GAAiBn9F,EAAAA,EAAAA,MAAI,GACrBo9F,EAAS,yCAAG,WAAOC,GAAiD,6FAClEF,EAAe5iG,MAAO,CAAF,gDACgF,GAAlGgjG,EAAcC,KAAK,CAAC9uE,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,MAAO0iG,EAAmB1iG,QAC7F2iG,EAAS3iG,QAAUgjG,EAAW,iDAK+B,GAJjEL,EAAS3iG,MAAQgjG,EAAY,SAGzBJ,EAAe5iG,OAAQ,EACjBggB,EAASsoB,GAA2BnU,EAAan0B,OAClDggB,EAAQ,CAAF,kDAI4F,OAFvG4gB,EAAQ5gC,MAAQggB,EAAOvI,OACjB0I,EACgB,UAAlByd,EAAQ59B,MAAoB,CAAC2Q,GAAgBwwC,SAAW,CAACxwC,GAAgBq7E,KAAMr7E,GAAgB+3C,KAAI,UAEjFxiD,QAAQ2H,IAC1Bk+E,EAAU/rF,MAAM4N,KAAI,SAACuY,GAAE,OACnBjG,IAAS,kBAAKF,GAAM,IAAEuoB,SAAUpiB,EAAI5L,YAAa4Z,EAAan0B,MAAMua,YAAa4F,OAAAA,IAAS,KAEjG,QA4BA,GAhCKm5B,EAAU,EAAH,KAMS,UAAlB1b,EAAQ59B,OACFw9B,EAAW8b,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC7B,IAAMyuB,EAAWwjD,EAAU/rF,MAAM8Z,GAC3BsjB,EAA2B,WAAbmL,EAAwB,eAAiB,iBACvDlL,EAAakL,EAAStoB,cAC5B,OAAOgd,GAA+BtvB,EAAG,CACrCyvB,YAAAA,EACAC,WAAAA,EACAE,WAAY1B,GAAiBO,SAErC,IACAlI,EAAal0B,MAAQ,CACjB+5B,OAAQyD,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE8R,MAAM,IAAE7Y,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,IACrE4M,SAAUA,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAEuV,QAAQ,IAAEtc,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,OAGvE4M,EAAW8b,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC7B,IAAMyuB,EAAWwjD,EAAU/rF,MAAM8Z,GAC3BsjB,EAA2B,WAAbmL,EAAwB,eAAiB,iBACvDlL,EAAakL,EAAStoB,cAC5B,OAAOooC,GAAwC16C,EAAG,CAAEyvB,YAAAA,EAAaC,WAAAA,GACrE,IACAnJ,EAAal0B,MAAQ,CACjB+5B,OAAQyD,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE,GAAG8R,MAAM,IAAE7Y,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,IACxE4M,SAAUA,EAAS5vB,KAAI,SAACqa,GAAC,OAAKA,EAAE,GAAGuV,QAAQ,IAAEtc,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,OAIhF8xE,EAAmB1iG,MAAO,CAAF,iCACUqQ,EAAAA,EAAAA,KAAAA,IACzB,wCAAyC,CAAE2P,OAAAA,IAC/Cc,OAAM,SAACva,GACJ,GAA4B,MAAxBA,EAAI1G,SAASmK,OAAgB,MAAO,CAAExK,KAAM,CAAC,GACjD,MAAM+G,CACV,IACCiH,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QANlBu5E,EAAsB,EAAH,KAQzBv0C,EAAYxkC,MAAQ4+B,GAA2Bm6C,GAAqB,SAACp5C,EAAMC,GACvE,IAAMnoB,EAAS,IAAIsB,KAAK6mB,GAClB0jE,EAAiBlyF,KAAKwP,MAAMgf,EAAOD,GAAQ,OAC3CqX,EAAS,GAAH,OAAMssD,EAAc,KAC1B/oF,EAAiD,aAAnC4Z,EAAan0B,MAAMua,YAA6B,WAAa,WAC3EoN,EAAe,IAAIC,gBAAgB,CACrCnQ,OAAQA,EAAOgD,cACfu8B,OAAAA,EACAz8B,YAAAA,IAEJuoF,EAASn7E,EACb,IAAG,wBAEH6c,EAAYxkC,MAAQ,GAAG,QAGE,OAHF,UAG3B4iG,EAAe5iG,OAAQ,EAAM,2EAEpC,gBA5Ec,sCA6ETwjG,GAAelgG,EAAAA,EAAAA,WAAS,WAC1B,MAAO,CAAC6wB,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,MACzD,IAEA,MAAO,CACHm0B,aAAAA,EACAC,qBAAAA,EACAoQ,YAAAA,EACAtQ,aAAAA,EACA2uE,UAAAA,EACAD,eAAAA,EACAH,mBAAAA,EACAD,aAAAA,EACAG,SAAAA,EACA/kE,QAAAA,EACA4lE,aAAAA,EACA5iE,QAAAA,EAER,EACAlhC,QAAS,CACLojG,SAAQ,SAACn7E,GACL/mB,KAAKmR,QAAQxT,KAAK,WAAD,OAAYopB,EAAapW,YAC9C,GAEJ7O,MAAO,CACH8gG,aAAc,CACV5gG,QAAO,WACHhC,KAAKiiG,UAAUjiG,KAAKkiG,SACxB,EACAl6F,WAAW,IAGnBtF,SAAU,CACNiuC,WAAU,sBACN,OAAO3wC,KAAKgB,MAAQ4mC,GAA4B5nC,KAAKuzB,cAAc,kBAAe,EAAKpkB,GAAE,MAAP,EAAI,UAAc,GACxG,KC9LyT,MCQ7T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCnBoGtR,GAAM,W,IAAC,EAAM,K,EAAI,QAAS,GAAO,EAAUE,MAAIikG,Y,OAAc,QAAE,YAAK,WAAmCvhG,MAAAA,CAAsBD,KAAG,GAAU3C,OAAM,OAAC,QAAO,mBAAK,CAACE,EAAG,MAAI,CAAS,EAAG,MAAKG,CAAE,EAAC,KAAIH,CAAoEF,YAAM,S,CAAC,MAAQ,C,MAAC,CAAgB,UAAyD4C,CAAAA,EAAAA,GAAAA,aAAY,EAAa,mDAAyH,OAAzH,QAACuK,MAAAA,CAAa,OAAmB,mBAAkFzL,CAAAA,EAAK,GAAC,4B,YAAYurC,c,YAAwB,C,SAAoBA,W,CAAmBrrC,EAAAA,cAAW,mDAAe,OAAG,MAAO,EAAI1B,cAA+C0C,SAAW,SAAO,GAAC5C,EAAM,eAAC,EAA4B,8BAAgE,OAAoBitC,UAApB,EAAe,QAAkB,qB,YAAY,OAAK,OAAG,MAAI,kBAAerqC,eAAY,EAAM,YAAC5C,gBAAM,eAAC,cAAYitF,EAAAA,cAAoB,kBAAgE,gBAAgB/sF,C,YAA6B,OAAK,OAAI,MAAO,sBACtoC,6BACGI,gBAAkB,EAAE,aAExB,cAAiBA,EAAAA,c,iCCmBjB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDqD,WAAY,CAAEkrC,gBAAAA,GAAiBwd,YAAAA,GAAa0qB,qBAAAA,IAC5ClzE,MAAK,SAACrG,EAAO,GAAM,EAAJumC,KAAM,IACX6D,EAAclU,KACpB,GAAyByQ,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aAEFiG,GAAe1uB,EAAAA,EAAAA,MAAI,UAClB2jC,EAAY/qC,UAGbqtC,GAAgBjmC,EAAAA,EAAAA,KAAImkC,GAAc2Q,MAClCyG,GAAkBv7C,EAAAA,EAAAA,KAA6C,MAC/DimF,GAAsBjmF,EAAAA,EAAAA,KAAyC,MAC/Dm4B,GAAUn4B,EAAAA,EAAAA,KAAI,SACdsmF,GAAYtmF,EAAAA,EAAAA,KAAI,CAAC,SAAU,YAAa,cAE9C/C,EAAAA,EAAAA,QACI,kBAAM1D,EAAM6J,MAAM,IAClB,SAAC06F,GACG,GAAKA,EAAL,CACA,IAAMvjF,EAASpH,GAAoC2qF,GACnDpvE,EAAan0B,MAAQggB,EACrB4d,EAAQ59B,MAAQujG,EAAI3lE,SAAW,QAC/BmuD,EAAU/rF,MAASujG,EAAIxX,WAAa,CAAC,SAJrB,CAKpB,GACA,CAAEnjF,WAAW,EAAMjG,MAAM,IAG7B,IAAMyxB,EAAuB,WACzB,EAGE7Z,GAAcjX,EAAAA,EAAAA,WAAS,WACzB,OAAK6wB,EAAan0B,MACd+V,MAAMC,QAAQme,EAAan0B,MAAMua,aAC1B4Z,EAAan0B,MAAMua,YAAY5B,KAAK,KACxCwb,EAAan0B,MAAMua,aAAe,GAHT,EAIpC,IAEMooF,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9Bm9F,GAAiBn9F,EAAAA,EAAAA,MAAI,GACrBo9F,EAAS,yCAAG,wGACVD,EAAe5iG,MAAO,CAAF,gDACwD,GAA1EgjG,EAAcC,KAAK,CAAE9uE,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,QACpE2iG,EAAS3iG,QAAUgjG,EAAW,iDAK+B,GAJjEL,EAAS3iG,MAAQgjG,EAAY,SAGzBJ,EAAe5iG,OAAQ,EACjBggB,EAASsoB,GAA2BnU,EAAan0B,OAClDggB,EAAQ,CAAF,kDAEuC,OAA5CzF,EAAc4Z,EAAan0B,MAAMua,YAAW,UAC5BrU,QAAQ2H,IAAIk+E,EAAU/rF,MAAM4N,KAAI,SAAA26B,GAAQ,OAAIroB,IAAS,kBAAKF,GAAM,IAAEuoB,SAAAA,EAAUhuB,YAAAA,IAAc,KAAE,QAA5G++B,EAAU,EAAH,KAES,UAAlB1b,EAAQ59B,OACFyG,EAAU6yC,EAAQ1rC,KAAI,SAACD,EAAGmM,GAC5B,IAAMyuB,EAAWwjD,EAAUjyE,GAC3B,OAAO20B,GAAyB4S,qBAAqBrhC,EAAQzF,EAAa5M,EAAG46B,EACjF,IACAyY,EAAgBhhD,MAAQyG,EAAQ,GAChCu6C,EAAgBhhD,MAAMyG,QAAUA,EAAQmH,KAAI,SAACD,GAAC,OAAKA,EAAElH,OAAO,IAAEya,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,MAEvFnqB,EAAU6yC,EAAQ1rC,KAAI,SAAAD,GACxB,OAAO49C,GAA8BvrC,EAAQrS,EACjD,IACA+9E,EAAoB1rF,MAAQyG,EAAQ,GACpCilF,EAAoB1rF,MAAMyG,QAAUA,EAAQmH,KAAI,SAAAD,GAAC,OAAIA,EAAElH,OAAO,IAAEya,QAAO,SAACyP,EAAGC,GAAC,yBAASD,IAAC,QAAKC,GAAC,GAAG,KAClG,QAG4B,OAH5B,UAGDgyE,EAAe5iG,OAAQ,EAAM,2EAEpC,kBAhCc,mCAkCTwjG,GAAelgG,EAAAA,EAAAA,WAAS,WAC1B,MAAO,CAAE6wB,EAAan0B,MAAO49B,EAAQ59B,MAAO+rF,EAAU/rF,MAC1D,IAEA,MAAO,CACHm0B,aAAAA,EACAC,qBAAAA,EACAyuE,UAAAA,EACAD,eAAAA,EACA5hD,gBAAAA,EACA0qC,oBAAAA,EACAx9D,aAAAA,EACAwd,cAAAA,EACA9N,QAAAA,EACA4lE,aAAAA,EACAjpF,YAAAA,EAER,EACA7a,QAAS,CACLojG,SAAQ,SAACn7E,GACL/mB,KAAKmR,QAAQxT,KAAK,WAAD,OAAYopB,EAAapW,YAC9C,GAEJ7O,MAAO,CACH8gG,aAAc,CACV5gG,QAAO,WACHhC,KAAKiiG,UAAUjiG,KAAKkiG,SACxB,EACAl6F,WAAW,IAGnBtF,SAAU,CACNiuC,WAAU,sBACN,OAAO3wC,KAAKgB,MAAQ4mC,GAA4B5nC,KAAKuzB,cAAc,kBAAe,EAAKpkB,GAAE,MAAP,EAAI,UAAc,GACxG,KCrIqT,MCQzT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,GCnBqH,W,IAAgB,OAA4B,aAAO,QAAc,Y,OAAqB1O,EAAAA,GAAAA,EAAY,CAAQ,YAAa,WAAE5C,MAAM,CAAC,KAAO,GAAE,cAAIE,QAAO,mB,CAAqG,QAAQ,kB,YAAC,SAAgB,QAAE,MAAM0Q,CAA8FlP,KAAM,K,CAAgCe,EAAAA,GAAAA,eAAS,KAAUynB,IAAK,4CAAyF,OAAzF,Q,MAAI,CAAuB,IAAC,GAACtoB,cAAW,KAAuB1B,CAAAA,EAAIqQ,GAAIrQ,YAAI6jG,IAAwB,GAAC,gDAAC,MAAOphG,CAAYD,MAAK,qBAAC1C,SAAM,YAAC,qBAAYwX,CAAC,EAAE,WAAY,uBAAkD5U,EAAAA,GAAAA,EAAW,cAAc,YAACuK,OAAAA,EAAAA,GAAAA,EAAY,CAAC,MAAoB,MAAO,CAAO,gBAA6BnN,CAAAA,EAAM,qB,IAAC,KAAOE,KAAIilG,EAAAA,GAAAA,GAAY,C,YAAU,cAAM,YAAC,CAAG,SAAC,SAAC,MAAQjlG,SAA4B,GAAG,qBAAU,CAAC0C,MAAAA,CAAiCD,KAAG,eAAe3C,OAAM,QAAY,GAAC,CAAC6I,MAAW,EAAC3I,yBAAyB4I,GAAG,S,YAAoC5I,oB,CAAgD,iBAAC,MAAE,CAACwC,MAAI,K,YAA6B,MAALuO,C,IAAS,Y,GAAwBjR,SAAM,G,MAAC,GAAO,GAACE,YAAO,a,QAA0E,U,GAA4BF,SAAM,G,IAAC,IAAa,M,MAAyB,eAAiB,C,MAAC,CAAoB,QAAa,GAAC,gCAAI,sCAAuB6C,CAAE,EAAC,wB,MAAC,C,YAAqC,EAAE,iCAAC,gBAAK,aAAI,KAAQ,GAAC,cAAK,CAAM,GAAC,CAAM,MAAMq1E,SAAiB,GAAS,OAAC,GAAoBA,OAAsBt2E,GAA6B,IAAM,MAAK,GACvqD,OACGtB,MAAAA,EAAAA,iBAEJ,SAAe,SAAiB,G,sECJ5BgB,GAAS,WAAkB,IAAIpB,EAAIiC,KAAKQ,EAAGzC,EAAI8C,MAAML,GAAUzC,EAAI8C,MAAMkzB,YAAY,OAAOvzB,EAAG,MAAM,CAACqE,IAAI,QAC9G,EACI1G,GAAkB,GCqChB,SAAU8kG,GACZ3mE,GACqD,MAArDK,EAAAA,UAAAA,OAAAA,QAAAA,IAAAA,UAAAA,GAAAA,UAAAA,GAA8C,QAE9C,IAAKL,GAAqC,QAAtB,EAACA,EAAY5b,iBAAS,QAArB,EAAuBxK,OACxC,MAAO,CAAEijB,OAAQ,GAAIyD,SAAU,IAGnC,IAAMvB,EAAU,CACZC,MAAO,SAAC3a,GAA4B,OAAKA,EAAEnK,KAAK,EAChDglB,QAAS,SAAC7a,GAA4B,OAAKA,EAAEstB,YAAY,EACzDxS,QAAS,kBAAM,CAAC,GAClBkB,GAEIxD,EAAmB,GACnBv6B,EAAiB,GACjBq+B,EAA4B,GAalC,OAXAX,EAAY5b,UAAUzH,SAAQ,SAAC0H,EAAGzH,GAC9B,IAAMuM,EAAQ9E,EAAE3f,MAAQ,YACxBm4B,EAAOx7B,KAAK8nB,GACZ7mB,EAAKjB,KAAK09B,EAAQ1a,IAClBsc,EAAgBt/B,KACZgjB,EAAEuc,QACI,UAAU,cACH1G,GAAkBtd,EAAIsd,GAAkBtgB,QAAO,KAEpE,IAEO,CACHijB,OAAAA,EACAyD,SAAU,CACN,CACIh+B,KAAAA,EACAq+B,gBAAAA,EACA7C,YAAa,QACbG,YAAa,IAI7B,CAEA,gBAAgB0G,EAA8BxjC,GAC1C,IAAQ6vB,EAAiB7vB,EAAjB6vB,aACFxsB,EAAQugC,iBAAiBJ,GACzBQ,EAAe3gC,EAAMygC,iBACvBC,IAEE9yB,EAAQ,IAAI6a,GAAAA,GAAM0X,EAAW,CAC/BnjC,KAAM,MACNc,KAAM,CACFg+B,SAAU,IAEdn/B,QAAS,CACLw7B,QAAS,CACPC,OAAQ,CACNC,OAAQ,CACN16B,MAAOgjC,IAGXwB,QAAS,CACPC,UAAW,CACPzd,MAAK,SAAC/f,GACJ,IAAMtG,EAAQsG,EAAQw9F,OAChBz9E,EAAQ/f,EAAQ+f,OAAS,GAC/B,MAAO,GAAP,OAAUA,EAAK,aAAKrZ,EAAehN,EAAOkuB,GAC5C,GAEJ61E,UAAW1hE,EACX2hE,WAAY3hE,OAKxB,OAAO/yB,CACV,EC3GC,IAAepK,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACLQ,KAAM8C,OACNJ,OAAQF,QAEViiG,MAAO,CAAC,SACR5+F,MAAK,SAAC6T,EAAG,GAAQ,IAANqsB,EAAI,EAAJA,KACHC,GAAO//B,EAAAA,EAAAA,KAA2B,MAClCggC,GAAShgC,EAAAA,EAAAA,KAA8B,MAC7C,GAAyBkgC,EAAAA,GAAAA,IAAYvZ,MAA7B8B,EAAY,EAAZA,aAEF0X,EAAc,WAClB,GAAK1sB,EAAE1Z,MAASgmC,EAAKxlC,MAArB,CAEAwlC,EAAKxlC,MAAM6lC,UAAY,GACvBJ,EAAOzlC,MAAQgL,SAAS6tB,cAAc,UACtC4M,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,gBAEV,SAAbqB,EAAEhX,QACJujC,EAAOzlC,MAAM8lC,UAAUjuB,IAAI,qBAC3B2tB,EAAKxlC,MAAM8lC,UAAUjuB,IAAI,gBAEzB4tB,EAAOzlC,MAAM0B,MAAMQ,OAASgX,EAAEhX,QAAU,QAG1CsjC,EAAKxlC,MAAMq5B,YAAYoM,EAAOzlC,OAE9B,IAAMsP,EAAQ40F,GAAoBz+D,EAAOzlC,MAAO,CAC9CkuB,aAAcA,EAAaluB,MAC3B8+B,QAAO,SAACr6B,GACN8gC,EAAK,QAAS9gC,EAChB,IAGF6K,EAAM9P,KAAO0Z,EAAE1Z,KACf8P,EAAMsrB,QAvB4B,CAwBpC,EAUA,OARAqL,EAAAA,EAAAA,YAAU,kBAAML,GAAa,KAE7BljC,EAAAA,EAAAA,QACE,kBAAMwW,EAAE1Z,IAAI,IACZ,kBAAMomC,GAAa,GACnB,CAAEh9B,WAAW,EAAMjG,MAAM,IAGpB,CAAE6iC,KAAAA,EAAMC,OAAAA,EACjB,ICtDgT,MCOhT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCS9B,IAAevgC,EAAAA,EAAAA,iBAAgB,CAC7BlG,MAAO,CACL6J,OAAQvG,OACRV,KAAMI,OACNugG,YAAazgG,SAEfqD,WAAY,CACVg/F,mBAAAA,GACA3rB,oBAAAA,IAEFh5E,KAAI,WACF,MAAO,CACLk3E,oBAAqB,GACrBC,kBAAkB,EAEtB,EACAtxE,MAAK,SAACrG,GACJ,IAAMoqC,EAAclU,KAEdf,GAAe1uB,EAAAA,EAAAA,MAAI,UAAK2jC,EAAY/qC,UACpCmkG,GAAe/8F,EAAAA,EAAAA,KAAc,IAC7Bg9F,GAAqBh9F,EAAAA,EAAAA,KAAY,GACjCm+F,GAAen+F,EAAAA,EAAAA,KAA6B,MAC5CsmF,GAAYtmF,EAAAA,EAAAA,KAAI,CAAC,WACjBm4B,GAAUn4B,EAAAA,EAAAA,KAAI,SACdi9F,GAAqBj9F,EAAAA,EAAAA,MAAI,GACzBm9F,GAAiBn9F,EAAAA,EAAAA,MAAI,GACrBk9F,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9BuzE,GAAqBvzE,EAAAA,EAAAA,KAAkB,IACvC++B,GAAc/+B,EAAAA,EAAAA,KAAW,IACzBm7B,GAAUn7B,EAAAA,EAAAA,KAAmB,MAE7B2uB,EAAuB,SAAC3vB,GAE5Bsc,QAAQm2B,IAAI,oBAAqBzyC,EACnC,EAEMo+F,EAAS,yCAAG,oGACZD,EAAe5iG,MAAO,CAAF,gDACiE,GAAnFokG,EAAcnB,KAAK,CAAC9uE,EAAan0B,MAAO+rF,EAAU/rF,MAAO0iG,EAAmB1iG,QAC9E2iG,EAAS3iG,QAAUokG,EAAW,iDAM6B,GAJ/DzB,EAAS3iG,MAAQokG,EACjBxB,EAAe5iG,OAAQ,EAAK,SAGpBggB,EAASsoB,GAA2BnU,EAAan0B,OAClDggB,EAAQ,CAAF,kDAKwB,OAH7BkjF,GAAc,kBACfljF,GAAM,IACTzF,YAAa4Z,EAAan0B,MAAMua,YAChC4F,OAAQ,CAACxP,GAAgBwwC,WAAQ,UAGZjhC,GAASgjF,GAAY,QAEO,GAF7CrjG,EAAW,EAAH,KACd+jG,EAAa5jG,MAAQ6jG,GAAyBhkG,EAAUg8B,GAAiBO,SACzEwE,EAAQ5gC,OAAgB,OAARH,QAAQ,IAARA,OAAQ,EAARA,EAAU+gC,UAAW5gB,EAAOvI,QAExCirF,EAAmB1iG,MAAO,CAAF,iCACOqQ,EAAAA,EAAAA,KAAAA,IAC1B,mBAAoB,CAAE2P,OAAAA,IAC1BxS,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QAFtBw5E,EAAmBh5E,MAAQ,EAAH,6BAOxBg5E,EAAmBh5E,MAAQ,GAC3BwkC,EAAYxkC,MAAQ,GAAG,QAGI,OAHJ,UAGzB4iG,EAAe5iG,OAAQ,EAAM,2EAEhC,kBApCc,oCAuCf0C,EAAAA,EAAAA,QACE,kBAAM1D,EAAM6J,MAAM,IAClB,SAAC06F,GACC,GAAKA,EAAL,CACA,IAAMxY,EAASwY,EACff,EAAaxiG,OAAS+qF,EAAOxwE,aAAe,IAAI9B,MAAM,KAAKd,OAAO7V,SAClE,IAAMke,EAASpH,GAAoCmyE,GAC7CxwE,EAAcioF,EAAaxiG,MAAMyiG,EAAmBziG,OAC1Dm0B,EAAan0B,OAAQ,kBAAKggB,GAAM,IAAEzF,YAAAA,IAClCwxE,EAAU/rF,MAAQ+qF,EAAOgB,WAAa,CAAC,UACvC2W,EAAmB1iG,MAAQ+qF,EAAO2X,qBAAsB,CAPxC,CAQlB,GACA,CAAE95F,WAAW,EAAMjG,MAAM,KAI3BD,EAAAA,EAAAA,QACE,kBAAM+/F,EAAmBziG,KAAK,IAC9B,SAACsR,GACC,IAAMiJ,EAAcioF,EAAaxiG,MAAMsR,GACnC6iB,EAAan0B,MAAMua,cAAgBA,IACrC4Z,EAAan0B,OAAQ,kBAAKm0B,EAAan0B,OAAK,IAAEua,YAAAA,IAElD,IAGF,IAAMipF,GAAelgG,EAAAA,EAAAA,WAAS,iBAAM,CAAC6wB,EAAan0B,MAAO+rF,EAAU/rF,MAAM,IAEzE,MAAO,CACLm0B,aAAAA,EACAC,qBAAAA,EACAwvE,aAAAA,EACAp/D,YAAAA,EACAo+D,eAAAA,EACAH,mBAAAA,EACAD,aAAAA,EACA5kE,QAAAA,EACAmuD,UAAAA,EACA4W,SAAAA,EACAa,aAAAA,EACA5iE,QAAAA,EACAo4C,mBAAAA,EACA6pB,UAAAA,EAEJ,EACAnjG,QAAS,CACPojG,SAAQ,SAACn7E,GACP/mB,KAAKmR,QAAQxT,KAAK,WAAD,OAAYopB,EAAapW,YAC5C,EACAwxF,sBAAqB,SAACv+D,EAA2B7E,EAAcC,GAC7D,IAAMxQ,EAAK,IAAIrW,KAAK6mB,GAAMvB,UACpBsE,EAAO,IAAI5pB,KAAK4mB,GAAMtB,UAC5Bz9B,KAAK81E,oBAAsBlyC,EAAY7sB,QAAO,SAACyP,GAC7C,IAAM8hB,EAAO,IAAInwB,KAAKqO,EAAEkZ,gBAAgBjC,UACxC,OAAO6K,GAAQvG,GAAQuG,GAAQ9Z,CACjC,IACAxuB,KAAK+1E,kBAAmB,CAC1B,GAEFj0E,MAAO,CACL8gG,aAAc,CACZ5gG,QAAO,WACLhC,KAAKiiG,UAAUjiG,KAAKkiG,SAAUliG,KAAKmiG,sBACrC,EACAn6F,WAAW,IAGftF,SAAU,CACRiuC,WAAU,sBACR,OAAO3wC,KAAKgB,MAAQ4mC,GAA4B5nC,KAAKuzB,cAAc,kBAAe,EAAKpkB,GAAE,MAAP,EAAI,UAAc,GACtG,EACA4oE,yBAAwB,iBACtB,IAA4B,QAAxB,EAAA/3E,KAAK81E,2BAAmB,aAAxB,EAA0B5/D,QAAS,EAAG,CACxC,IAAMkC,EAAQpY,KAAK81E,oBAChB9oE,KAAI,SAACwZ,GACJ,IAAM8hB,EAAO,IAAInwB,KAAKqO,EAAEkZ,gBAExB,OADA4I,EAAKjJ,SAAS,EAAG,EAAG,EAAG,GAChBiJ,CACT,IACClK,MAAK,SAACrO,EAAGC,GAAC,OAAKD,EAAE0N,UAAYzN,EAAEyN,SAAS,IACrC3W,EAAQ1Q,GAAOgC,EAAM,IACrBmP,EAAMnR,GAAOgC,EAAMA,EAAMlC,OAAS,IACxC,OAAO4Q,EAAM+7E,OAAOt7E,GAAOT,EAAMrZ,OAAO,WAAa,GAAH,OAAMqZ,EAAMrZ,OAAO,WAAU,cAAM8Z,EAAI9Z,OAAO,W,CAGpG,KC5L0T,M,uBCA9F,GAAe,KCQ7O,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAMoB,oBAAX,IAAuB,GAAO,IAEzC,OAAe,GAAiB,Q,GCvBiH,W,IAAI,O,EAAgB,EAAO,MAAKg2F,GAAiD,EAAC,kB,OAAE,QAAE,YAAK,WAAgBv0C,MAAMnxD,CAA+DyC,KAAQ,GAAWC,OAAW,OAAWD,MAAG,EAAS,iCAAC3C,MAAM,KAAU,UAAE,MAAMK,EAAG,YAAgB,OAAM,EAAI,SAAO,MAAO,aAAe,YAA4EL,CAAAA,EAAK,MAAC,S,YAAS,S,CAAC,OAAgB,OAAIE,KAAO,KAA8J,CAACA,EAAIG,GAAG,mBAAeulG,EAAAA,GAASh9F,IAAAA,EAAS,GAAC,EAAM,SAAO,OAAQg9F,EAAAA,MAAY1lG,eAAa2lG,MAAUljG,KAAG,cAIlzBrC,EAAe,KAJizB,QAACsC,MAAAA,CAAgC1C,IAAO,GACx3B,mBAGD,GAASoB,GAAAA,YAAQhB,IAAe,4C,4PCDhC,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDuD,MAAK,SAAC6T,GACF,IAAMmrF,GAAW/gG,EAAAA,EAAAA,WAAS,WACtB,OAAO4V,EAAErQ,MACb,IACA,MAAO,CAAEw7F,SAAAA,EACb,ICV2T,MCO3T,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QClB6EhjG,GAAAA,W,IAAuB5C,EAAM,K,EAAC,EAAM,MAAG,GAAC,EAAS,kB,OAAM,QAAE,YAAK,WAAmC4C,MAAAA,CAAsB1C,KAAO,GAAqEF,OAAM,S,CAAU,QAAc,kBAAE,qBAAG,CAACE,EAAI0Q,GAAG,MAAU,GAAE,EAAE,WAAY,SAAK,cAAyF,OAA3E,QAAChO,MAAAA,CAA0BuK,IAAAA,GAAa,cAAW,KAAW,CAACxK,EAAG,eAAS,gBAACC,YAAY,cAAiB5C,YAAM,CAAC,SAAU8lG,WAAiB,CAAC,EAAE,SAAE,CACvhB,6BACGxlG,MAAAA,CAEJ,IAASgB,EAAQhB,UAAAA,U,UCAjB,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDqD,WAAY,CAAC,EACbE,MAAK,SAACrG,GACF,IAAMulG,GAAYjhG,EAAAA,EAAAA,WAAS,WACvB,OAAOtE,EAAM6J,MACjB,IACA,MAAO,CAAE07F,UAAAA,EACb,EACA7kG,QAAS,CAAC,EAEVgD,MAAO,CAAC,EAERY,SAAU,CACNkhG,UAAS,WACL,OAAO5jG,KAAKgB,IAChB,KCpBqT,MCQzT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,GCnBiH,W,IAAI,O,EAAgB,QAAUjD,GAAa,oBAAC,OAAM,QAAmC0C,YAAY,WAAQ,MAAK,CAAU5C,KAAM,GAAC,OAAO,OAAE,sBAAqHA,CAAAA,EAAK,MAAC,kB,YAAS,S,CAAC,OAAgB,OAAIE,KAAO,KAAwEiN,CAAAA,EAAAA,GAAAA,eAAY,6DAAuF,OAAvF,Q,MAAC,CAAmB,OAAKjN,cAAa,K,CAAiC,iBAAgB,gBAAE,0BAAG,YAAOkK,CAA2FpK,SAAM,W,CAA0B,YAAS,QAAM,MAAC,CAAG,cAAC,MAA6B,6DAAyP,aAANA,EAAM,gD,MAAC,CAAwB,QAAWE,YAA6B,WAAe,yBAAS,4BAA0F,aAANF,EAAM,gD,MAAC,CAAwB,QAAWE,YAA6B,WAAe,yBAAS,4BAA0F,kBAANF,EAAM,qD,MAAC,CAAwB,QAAWE,YAA6B,WAAe,yBAAS,4BACn9C,yEACGI,MAAAA,CAEJ,MAAe,EAAEA,Y,uEAJ2wB,mBAAG,MAAM8J,CAAiEpK,KAAM,gBAAC,OAAQE,Q,GAAwD,CAAwB,6B,cCoBr8B,IAAeuG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CACH4C,KAAMI,OACNugG,YAAazgG,QACb+G,OAAQ,CACJnK,KAAM4D,OACNijE,UAAU,IAGlBpgE,WAAY,CACR8wC,cAAAA,GACAL,wBAAAA,GACAE,wBAAAA,GACAC,6BAAAA,GACAC,6BAAAA,IAEJ3wC,MAAK,SAACrG,GACF,IAAMsvE,GAAY7oE,EAAAA,EAAAA,MAAI,GAChBsxC,GAAgBtxC,EAAAA,EAAAA,KAAkD,CAAEs0B,OAAQ,GAAIyD,SAAU,KAC1FoZ,GAAcnxC,EAAAA,EAAAA,KAAI,IAClBimB,EAAcU,KAEdu2E,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9Bg/F,EAAW,yCAAG,iGACXzlG,EAAM6J,OAAQ,CAAF,oDACbylE,EAAUtuE,MAAO,CAAF,gDAE+C,GAD5D0kG,EAAe1lG,EAAM6J,OACrBm6F,EAAcC,KAAK,CAACjkG,EAAM6J,OAAO0R,YAAamqF,IAChD/B,EAAS3iG,QAAUgjG,EAAW,iDAEX,OADvBL,EAAS3iG,MAAQgjG,EACjB10B,EAAUtuE,OAAQ,EAAK,oBAEE+hB,GAAU/iB,EAAM6J,OAAO0R,YAAa,CACrDy8B,OAAQ0tD,EAAa5rF,aACrBrB,OAAQitF,EAAajtF,SAAU,IAAIsB,MAAO0B,gBAC5C,QAHIiF,EAAS,EAAH,UAIJ1gB,EAAM6J,OAAO0R,YAAW,cACvBlG,GAAiBkB,SAAQ,UAGzBlB,GAAiBQ,SAAQ,UAGzBR,GAAiBU,cAAa,UAG9BV,GAAiBI,cAAa,oBARmD,OAAlFsiC,EAAc/2C,MAAQo1C,GAAsC11B,GAAsB,6BAGA,OAAlFq3B,EAAc/2C,MAAQq1C,GAAsC31B,GAAsB,6BAGK,OAAvFq3B,EAAc/2C,MAAQs1C,GAA2C51B,GAAsB,6BAGA,OAAvFq3B,EAAc/2C,MAAQu1C,GAA2C71B,GAAsB,6BAG/Fk3B,EAAY52C,MAAQ0f,EAAO4V,UAAY,GAAG,QAElB,OAFkB,UAE1Cg5C,EAAUtuE,OAAQ,EAAM,4EAE/B,kBA/BgB,oCAiCjB0C,EAAAA,EAAAA,QAAM,kBAAM1D,EAAM6J,MAAM,GAAE47F,EAAa,CAAE77F,WAAW,EAAMjG,MAAM,IAEhE,IAAM4uC,GAAajuC,EAAAA,EAAAA,WAAS,oCAAkBtE,EAAM6J,OAAOiQ,aAAY,IAEjEy+B,EAAmB,SAAC9yC,GACtBsc,QAAQm2B,IAAI,gBAAiBzyC,EACjC,EAEA,MAAO,CACH6pE,UAAAA,EACAv3B,cAAAA,EACAxF,WAAAA,EACAgG,iBAAAA,EACAX,YAAAA,EACAlrB,YAAAA,EAER,IC5FmU,MCQnU,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,Q,GCnBiH,W,IAAI,O,EAAgB,QAAU/sB,GAAa,oBAAC,OAAM,QAAmC0C,YAAY,WAAQ,MAAK,CAAU5C,KAAM,GAAC,OAAO,OAAE,sBAAuGA,CAAAA,EAAK,MAAC,kB,YAAS,S,CAAC,OAAgB,OAAIE,KAAO,KAAwEiN,CAAAA,EAAAA,GAAAA,aAAY,qDAA8QkO,EAAAA,KAA9Q,Q,MAAC,CAAmB,OAAI1Y,cAAG,K,CAA+OD,EAAG,GAAC2Y,YAAAA,IAAAA,GAAAA,EAAAA,GAAAA,GAAAA,CAAC,YAAW,cAAqJ,YAAU,CACv7B,oBAGD,GAAS/Z,GAAAA,EAAQhB,CAAAA,EAAAA,QAAe,+K,sLCChC,IAAemG,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAE6J,OAAQvG,OAAQV,KAAMI,OAAQugG,YAAazgG,SACpDuD,MAAK,SAACrG,GACF,IAAM88C,GAAkBr2C,EAAAA,EAAAA,KAEtB,IAEI6oE,GAAY7oE,EAAAA,EAAAA,MAAI,GAChBk9F,GAAWl9F,EAAAA,EAAAA,KAAmB,MAC9Bk3C,EAAmB,yCAAG,WAAO10B,GAA6B,yFACxDqmD,EAAUtuE,MAAO,CAAF,gDACwC,GAArDgjG,EAAcC,KAAK,CAAEh7E,EAAE08E,WAAY18E,EAAEhK,gBACvC0kF,EAAS3iG,QAAUgjG,EAAW,iDAcP,OAb3BL,EAAS3iG,MAAQgjG,EAEX7sD,EAAQ,IAAIvuB,gBAEF,QAAhB,EAAIK,EAAE08E,kBAAU,OAAZ,EAAc7tF,QACdmR,EAAE08E,WAAW9qF,SAAQ,SAACpM,GAAC,OAAK0oC,EAAMjxB,OAAO,aAAczX,EAAE,IAG1C,QAAnB,EAAIwa,EAAEhK,qBAAa,OAAf,EAAiBnH,QACjBmR,EAAEhK,cAAcpE,SAAQ,SAACX,GAAC,OAAKi9B,EAAMjxB,OAAO,gBAAiBhM,EAAE,IAClE,SAGGo1D,EAAUtuE,OAAQ,EAAK,UAEcqQ,EAAAA,EAAAA,KAAAA,IAC5B,wBAAD,OAAyB8lC,EAAM5kC,aAClC/D,MAAK,SAACG,GAAC,OAAKA,EAAEnO,IAAI,IAAC,QAFlBq9C,EAAyB,EAAH,KAI5Bf,EAAgB97C,MAAQ68C,EAAuBf,gBAC1C9c,MAAK,SAACrO,EAAGC,GAAC,OAAKA,EAAE0oB,QAAQxiC,OAAS6Z,EAAE2oB,QAAQxiC,MAAM,IAClDlJ,KAAI,SAACD,GAAM,MAAM,CACd3F,GAAI2F,EAAE3F,GACNpG,KAAM+L,EAAE/L,KACRu4C,SAAUxsC,EAAEwsC,SACZ6hD,YAAaruF,EAAE2rC,QAAQxiC,OACvB8tF,QAASj3F,EAAEosC,sBACd,IAAG,QAEgB,OAFhB,UAERu0B,EAAUtuE,OAAQ,EAAM,2EAE/B,gBAnCwB,sCA8CzB,OATA0C,EAAAA,EAAAA,QACI,kBAAM1D,EAAM6J,MAAM,IAClB,SAAC06F,GACQA,GACL5mD,EAAoB4mD,EACxB,GACA,CAAE36F,WAAW,EAAMjG,MAAM,IAGtB,CAAEm5C,gBAAAA,EAAiBwyB,UAAAA,EAC9B,EACAhrE,SAAU,CACNiuC,WAAU,WACN,OAAO3wC,KAAKgB,MAAQ,iBACxB,KCjE+T,MCQnU,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,WACA,MAIF,GAAe,GAAiB,QCThC,IAAesD,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CACR0/F,sBAAAA,GACAC,oBAAAA,GACAC,gBAAAA,GACAC,mBAAAA,GACAC,kBAAAA,GACAC,gBAAAA,GACAC,0BAAAA,GACAC,0BAAAA,IAEJpmG,MAAO,CAAE4C,KAAMI,OAAQtD,KAAMsD,OAAQ6G,OAAQvG,OAAQigG,YAAazgG,WCrBkP,MCOpT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCRhC,IAAeoD,EAAAA,EAAAA,iBAAgB,CAC3BlG,MAAO,CAAEqmG,OAAQrjG,QACjBmD,WAAY,CACRmgG,WAAYC,KAAAA,WACZC,SAAUD,KAAAA,SACVE,WAAYA,IAEhBpgG,MAAK,SAACwlB,EAAG,GAAQ,IAAN0a,EAAI,EAAJA,KACDk8D,EAAYrB,KAClB,GAAkEz6D,EAAAA,GAAAA,IAAY87D,GAAtEnB,EAAO,EAAPA,QAASC,EAAuB,EAAvBA,wBAAyBC,EAAmB,EAAnBA,oBACpCn9F,GAASoC,EAAAA,EAAAA,KAAuB,KAEtC/C,EAAAA,EAAAA,QACI,kBAAM49F,EAAQtgG,KAAK,IACnB,SAACioB,GACG,GAAM,OAADA,QAAC,IAADA,GAAAA,EAAG03E,SAAR,CACA,IAAMA,EAAWr9F,OAAOy7C,QAAQ91B,EAAE03E,UAC7BA,EAAS7oF,OAGVzT,EAAOrD,MAAQ2/F,EAAS/xF,KAAI,YAAW,oBAATkjB,EAAC,KAAExf,EAAC,KACxByvF,EAAMR,EAAwBvgG,MAAM8wB,IAAM,CAAE1J,EAAG9V,EAAE8V,EAAGkX,EAAGhtB,EAAEgtB,GACzDonE,EAAOlF,EAAoBxgG,MAAM8wB,IAAM,CAAEqvE,EAAG7uF,EAAE6uF,EAAGzvE,EAAGpf,EAAEof,GAC5D,OAAO,0BACAqwE,GACA2E,GAAI,IACP19F,GAAIsJ,EAAEtJ,GACN8R,EAAGxI,EAAEtJ,GACLpG,KAAM0P,EAAE1P,KACRlD,KAAM4S,EAAE5S,KACRmK,OAAQyI,EAAEzI,QAElB,IAdAxF,EAAOrD,MAAQ,EAHK,CAmB5B,GACA,CAAE4I,WAAW,IAEjB,IAAM+8F,EAAc,SAAC7rF,EAAW8rF,EAAcC,GAC1CtF,EAAwBvgG,MAAM8Z,GAAK,CAAEsN,EAAGw+E,EAAMtnE,EAAGunE,EACrD,EACMC,EAAgB,SAAChsF,EAAW8rF,EAAcC,GAC5CrF,EAAoBxgG,MAAM8Z,GAAK,CAAEqmF,EAAG0F,EAAMn1E,EAAGk1E,EACjD,EACMG,EAAoB,SAAC7xF,GACvBqxB,EAAK,SAAUrxB,EACnB,EAEM8xF,EAAsB,SAAC9xF,GACzBqxB,EAAK,WAAYrxB,EACrB,EACA,MAAO,CACH7Q,OAAAA,EACAsiG,YAAAA,EACAG,cAAAA,EACAxF,QAAAA,EACAC,wBAAAA,EACAC,oBAAAA,EACA0B,eAAgB8D,EAChBC,aAAcF,EAEtB,ICtEkS,MCOlS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,Q,GClBiN,W,IAAC,OAAE,EAAK,QAAS,GAAO,oB,OAAC,OAAS,CAAG,OAAI3kG,MAAG,QAAeC,MAAW,KAAUD,OAAG,IAAeC,WAAY,I,GAA0B,CAAU,kBAAM,OAAC,EAAQ,gBAACA,IAAwCuK,CAAAA,EAAAA,GAAAA,EAAW,C,MAAE,CAAuB,a,CAAQ,QAAO,CAAG,oBAAG,CAACxK,EAAG,KAAW,CAAE3C,YAAM,mB,MAAC,CAAU,MAAQ,KAAgB,CAAC2C,EAAG,MAAU3C,YAAM,e,CAAC,OAAO,CAAE,aAAIE,WAAO,WAA+E,MAAK,CAAgBF,KAAM,M,CAAa,OAAS,C,MAAC,CAAgB,QAAC0B,MAAM,gB,CAAwBe,EAAAA,EAAAA,EAAS,C,MAAmB,CAAe,KAAC,KAAwB,+DAAG,YAAI,QAAYzC,CAAAA,EAAK,KAAC,C,MAAC,CAAY,OAAS,GAAC,KAAO,GAAQ,MAAQE,S,MAA2C,CAAkB,mBAACwB,SAAM,YAACH,EAAK,WAAMkmG,CAAWhlG,E,WAA6BglG,gBAAe7lG,EAAAA,GAAAA,EAAW,CAAW,OAAK1B,OAAIunG,GAA0CznG,KAAM,GAAC,MAAQ,OAAI,MAAO,EAAE,oBAAC,YAAQ,OAAW,mB,MAAa,CAAsByC,MAAAA,EAAS,U,SAAoBilG,SAAkB,GAAC,aAAC9lG,EAA2B,0BAA2B,SAAN5B,EAAK,UAAC,S,MAAC,CAAY,OAAS,GAAC,KAAO,GAAa,kB,MAAa,CAAsByC,MAAAA,EAAS,e,SAAoBklG,SAAkB,GAAC,kBAAC/lG,EAA2B,+BAAqD5B,EAAK,KAAC,C,MAAC,CAAY,OAAS,GAAC,KAAO,GAAO,mB,MAAa,CAAiByC,MAAAA,EAAS,e,SAAoBmlG,SAAa,GAAC,kBAAChmG,EAAsB,gCAAwD,UAAN5B,EAAM,mB,MAAC,CAAY,OAAS,GAAC,KAAO,GAAe,MAAQE,OAAsBwB,MAAM,CAACH,MAAOrB,EAAI2nG,UAAiBplG,SAAS,SAAUynB,GAAMhqB,EAAI2nG,UAAAA,CAAmB,EAAEjmG,WAAW,gBAAmC,WAAZ,EAAC,UAAW,SAAC5B,MAAM,CAAC,OAAS,GAAG,KAAO,GAAG,MAAQ,cAAc,MAAQE,EAAI0+F,kBAAel9F,MAAM,CAACH,MAAOrB,EAAIwY,gBAAajW,SAAS,SAAUynB,GAAMhqB,EAAIwY,gBAAe,GAAE9W,WAAW,qBAAiBe,EAAG,MAAmB3C,MAAM,CAAC,OAAS,GAAK,KAAO,GAAK,oBAAC0B,MAAM,iB,MAA0Be,C,MAA6B4X,EAAAA,YAAgB,SAAC,YAACzY,EAAAA,YAAW,CAAc,EAAIe,WAAG,iBAAyB,oBAAa,C,MAAC,CAAY,UAACjB,MAAM,G,MAAoBe,C,MAA6BuW,EAAAA,aAAU,SAAC,YAACpX,EAAAA,aAAW,CAAQ,EAAIe,WAAG,kBAAmB,mBAAW,C,MAAC,CAAU,QAAQ,EAAc,MAAO,GAAwBjB,MAAM,CAACH,MAAOrB,EAAI4nG,OAAkBrlG,SAAS,SAAUynB,GAAMhqB,EAAI4nG,OAAAA,CAAoB,EAAElmG,WAAW,YAAsB,EAAE1B,GAAAA,EAAIunG,CAAiDznG,MAAM,CAAC,OAAS,GAAG,KAAO,GAAG,MAAQ,cAAkB,QAAW,mBAAsC,MAAC,CAAC0B,MAAM,mBAACH,SAAU,SAACwmG,GAAwBtlG,EAAAA,iBAAS,C,EAA8C,WAAC,uBAAoC,yCAAG,MAAI,CAAYzC,OAAM,GAAC,KAAQ,GAAI,MAAO,kBAAG,SAAQ,GAAa,QAAW,yBAAkC,MAAC,CAAC0B,MAAM,yBAACH,SAAU,SAACymG,GAAoBvlG,EAAAA,uBAAsB,C,EAA6B,WAAC,4BAAgC,QAAG,MAAK,CAAUzC,OAAM,GAAC,QAAe,mBAAI2C,SAAW,GAACC,MAAW,EAAC,qB,MAAc,CAAU,2BAAID,SAAG,SAAW,GAAC3C,EAAM,oBAAC,EAAY,WAAS,yBAAmB,QAAW,C,MAAmB,CAAmB,aAAa,KAAM0B,CAAAA,EAAK,KAAC,C,YAAYy9B,O,MAAS18B,C,KAA6B08B,M,CAAav9B,EAAAA,GAAAA,EAAW,CAAS,OAAI,OAAO,GAASgB,KAAAA,GAAmB5C,MAAM,UAAC,MAAO,oBAAG,mBAAI2C,aAAa,M,MAAS,CAAY,MAAM,EAAG,QAAC,SAAQ,SAAW,GAAC,UAAYslG,CAAmB,EAAmB,WAAY,cAAOvmG,GAAM,Q,YAAYwmG,O,MAAmBzlG,C,KAA6BylG,M,CAAuBtmG,EAAAA,GAAAA,EAAW,CAAmB,OAAI,OAAO,GAASgB,KAAAA,GAAmB5C,MAAM,YAAC,MAAO,qBAAG,mBAAI2C,aAAa,M,MAAS,CAAY,MAAM,EAAG,kBAAC,SAAQ,SAAa,GAAC,oBAAyB,CAAe,EAAwC,WAAW,wBAAgBjB,GAAM,Q,YAAYgX,O,MAAajW,C,KAA6BiW,M,CAAiB9W,EAAAA,GAAAA,EAAW,CAAa,OAAI,OAAO,GAASgB,KAAAA,GAAmB5C,MAAM,cAAC,SAAO,yBAAG,kCAAI2C,MAAG,iB,MAA0B,CAAc,MAAM,EAAC,YAAK,SAAQzC,SAAIioG,GAAiB,eAACzmG,EAAOH,WAAW8Y,kB,GAA0C,EAACA,GAAAA,EAAAA,C,YAAiB,O,MAACzY,CAAyB,WAAoD5B,CAAAA,EAAK,kBAAC,C,MAAC,CAAW,UAAI2C,MAAG,EAAkB3C,MAAM,oB,MAAc,CAAc,MAAM,EAAC,aAAK,qBAAC0B,EAAM,cAACH,EAAkBkB,WAAS,mBAA8B,qC,MAACb,CAAkB,YAAoC5B,CAAAA,EAAK,iBAAC,C,MAAC,CAAoB,OAAQ,EAAI,QAAS,EAAC,S,MAAqC,CAAkB,cAAC0B,SAAM,YAACH,EAAK,MAAM6mG,CAAkB3lG,E,WAA6B2lG,YAAsBxmG,GAAAA,EAAU,MAAC,WAAkB,OAAK1B,MAAIkoG,EAAAA,QAAqEpoG,OAAM,GAAC,KAAO,GAA0B,YAAW,OAAK,aAAW,KAAC,MAAO,WAAI0B,MAAM,CAACH,MAAOrB,EAAIgxF,iBAAgBzuF,SAAS,SAAUynB,GAAMhqB,EAAIgxF,iBAAehnE,CAAG,EAAEtoB,WAAW,sBAA0C,kBAAvB,EAAI,iBAAoB,8BAAC5B,MAAM,CAAC,MAAQ,EAAG,qBAAC,UAAS,EAAC,OAAU,GAAI,KAAO,I,MAA+C,CAAmB,uBAAkB,qBAAC0B,EAAM,gBAACH,EAA4BkB,WAAS,oBAAwC,e,MAACb,CAA4B,UAAIe,KAAG,GAAY3C,SAAM,GAAC,MAAQ,SAAI,MAAO,EAAE,yBAAC,YAAW,OAAG,aAAQ,MAAyC,MAAC,CAAC0B,MAAM,kBAACH,SAAU,SAAe,GAACkB,EAAAA,gBAAS,C,EAAqC,WAAC,qBAA2B,QAAG,MAAI,CAAczC,OAAM,GAAC,KAAO,GAAuB,YAAC0B,MAAM,OAACH,MAAOrB,EAAI+jG,wB,MAAgD,CAAuB,MAAC,gBAACriG,SAAU,SAAC,GAAoB,iBAAK,EAAoBuL,WAAY,mBAAiB,QAACnN,MAAM,CAAC,MAAO,uBAAK,MAAK,CAAcA,MAAM,qBAAC,SAAOE,SAAa,GAAC,qBAAmB,CAAC,EAAiC,WAAWyjG,0BAAgB,IAAI,GAAG,EAAG,KAAIhhG,CAAqBwK,YAAY,CAAC,eAA8B,MAAMyD,CAAmB,KAAS1Q,MAAoD,gBAAiBunG,CAAW,MAAK,CAChjM,iBACGnnG,gBAAkB,EAEtB,OAAe,EAAEA,oB,iNCgBX+nG,GAAkB,gBAClBC,GAAgB,YAEtB,IAAe7hG,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEsgG,WAAAA,GAAYnW,gBAAAA,GAAiB5kE,eAAAA,GAAgBH,yBAAAA,IAC3DvrB,MAAO,CAAEgB,MAAO8B,QAAS+G,OAAQvG,QACjC+C,MAAK,SAACrG,GACF,IAAM0sB,EAAcU,KACdg2E,GAAa38F,EAAAA,EAAAA,KAAI,IACjB0gG,GAAiB1gG,EAAAA,EAAAA,KAAI,IACrB2gG,GAAiB3gG,EAAAA,EAAAA,KAAI,IACrB4gG,GAAY5gG,EAAAA,EAAAA,KAAI,IAChBgC,GAAUhC,EAAAA,EAAAA,MAAI,GACdygG,GAAYzgG,EAAAA,EAAAA,KAAIw5F,GAAY+H,aAC5BV,GAAkB7gG,EAAAA,EAAAA,KAAuB,SACzCwhG,GAAmBxhG,EAAAA,EAAAA,KAAI,CACzB,CAAEzF,MAAO,QAASU,KAAM,SACxB,CAAEV,MAAO,QAASU,KAAM,WAEtBwmG,GAAsBzhG,EAAAA,EAAAA,KAAI,CAC5B,CAAEuC,GAAIi3F,GAAY+H,YAAaplG,KAAM,gBACrC,CAAEoG,GAAIi3F,GAAYkI,UAAWvlG,KAAM,cACnC,CAAEoG,GAAIi3F,GAAYt7C,MAAO/hD,KAAM,SAC/B,CAAEoG,GAAIi3F,GAAYmI,SAAUxlG,KAAM,aAClC,CAAEoG,GAAIi3F,GAAYoI,KAAMzlG,KAAM,eAC9B,CAAEoG,GAAIi3F,GAAYqI,MAAO1lG,KAAM,YAC/B,CAAEoG,GAAIi3F,GAAYsI,OAAQ3lG,KAAM,UAChC,CAAEoG,GAAIi3F,GAAYnjD,gBAAiBl6C,KAAM,qBAEvCkX,GAAerT,EAAAA,EAAAA,KAAI,OACnB0T,GAAc1T,EAAAA,EAAAA,KAAI,IAClBuT,GAAQvT,EAAAA,EAAAA,KAAY,IACpBoqF,GAAQpqF,EAAAA,EAAAA,KAAyB,IACjCkqF,GAAiBlqF,EAAAA,EAAAA,KAA8B,IAC/C0R,GAAc1R,EAAAA,EAAAA,KAAiBmL,GAAAA,OAC/BysF,GAAgB53F,EAAAA,EAAAA,KAAmB,CAACmL,GAAAA,MAAmBA,GAAAA,UACvDi2F,GAAmBphG,EAAAA,EAAAA,KAAmB,MACtCsqF,GAAkBtqF,EAAAA,EAAAA,KAAc,IAChCgnF,GAAgBhnF,EAAAA,EAAAA,KAAc,IAC9B8mF,GAAoB9mF,EAAAA,EAAAA,MAAI,GACxBi9F,GAAqBj9F,EAAAA,EAAAA,MAAI,GACzBuqF,GAA2BvqF,EAAAA,EAAAA,KAAI,CACjC,CAAE7D,KAAM,eAAgBoG,GAAIqM,GAAiBM,gBAC7C,CAAE/S,KAAM,oBAAqBoG,GAAIqM,GAAiBU,eAClD,CAAEnT,KAAM,mBAAoBoG,GAAIqM,GAAiBoB,mBACjD,CAAE7T,KAAM,eAAgBoG,GAAIqM,GAAiBkB,UAC7C,CAAE3T,KAAM,UAAWoG,GAAIqM,GAAiBQ,UACxC,CAAEjT,KAAM,QAASoG,GAAIqM,GAAiBwB,QACtC,CAAEjU,KAAM,SAAUoG,GAAIqM,GAAiBgB,WAErCy6E,GAAyBrqF,EAAAA,EAAAA,KAAc,IACvCm4B,GAAUn4B,EAAAA,EAAAA,KAA2B,SACrC+hG,GAAoB/hG,EAAAA,EAAAA,KAAI,CAAC,QAAS,cAClCkhG,GAAoBlhG,EAAAA,EAAAA,KAAI,UACxBihG,GAAqBjhG,EAAAA,EAAAA,KAAI,CAC3B,CAAE7D,KAAM,cAAeoG,GAAI,UAC3B,CAAEpG,KAAM,mBAAoBoG,GAAI,YAChC,CAAEpG,KAAM,iCAAkCoG,GAAI,qBAE5Cu+F,GAAmB9gG,EAAAA,EAAAA,KAA2D4O,GAAiBkB,UAC/FkyF,GAAoBhiG,EAAAA,EAAAA,KAAI,CAC1B,CAAEzF,MAAOqU,GAAiBkB,SAAU7U,KAAM,YAC1C,CAAEV,MAAOqU,GAAiBQ,SAAUnU,KAAM,YAC1C,CAAEV,MAAOqU,GAAiBU,cAAerU,KAAM,iBAC/C,CAAEV,MAAOqU,GAAiBI,cAAe/T,KAAM,uBAE7CgnG,GAAuBjiG,EAAAA,EAAAA,KAAI,CAC7B2O,GAAAA,WACAA,GAAAA,cACAA,GAAAA,gBACAA,GAAAA,UACAA,GAAAA,OACAA,GAAAA,QACAA,GAAAA,aACAA,GAAAA,IACAA,GAAAA,aACAA,GAAAA,UAEEqD,GAAShS,EAAAA,EAAAA,KAAI,IAAIsT,MAEjBytF,GAAyB/gG,EAAAA,EAAAA,KAAc,CAAC0O,GAAAA,MAAyBA,GAAAA,SACjEwzF,GAA0BliG,EAAAA,EAAAA,KAAI,CAChC,CAAEzF,MAAOmU,GAAAA,MAAyBzT,KAAM,SACxC,CAAEV,MAAOmU,GAAAA,OAA0BzT,KAAM,YAGvCknG,GAAsBniG,EAAAA,EAAAA,KAAI,CAC5B,QACA,MACA,UACA,OACA,WACA,WACA,QACA,UACA,cACA,MACA,UACA,QAEEghG,GAAqBhhG,EAAAA,EAAAA,KAAImiG,EAAoB5nG,OAEnDqiB,KAAiB7U,MAAK,SAAC8D,GAAC,OAAMu+E,EAAM7vF,MAAQsR,CAAC,KAE7C5O,EAAAA,EAAAA,OAAMwjG,GAAW,SAACjwF,EAAE4xF,GACXA,GACD5xF,IAAMgpF,GAAYmI,WAClBjwF,EAAYnX,MAAQ4Q,GAAAA,QAE5B,IAEA,IAAMgJ,GAAUtW,EAAAA,EAAAA,WAAS,WACrB,MAAO,CACH,CAAE0E,GAAI++F,GAAenlG,KAAM,oBAC3B,CAAEoG,GAAI8+F,GAAiBllG,KAAM,kBAAiB,gBAC3CiuF,EAAM7vF,MAAM4N,KAAI,SAAC0D,GAAC,MAAM,CAAEtJ,GAAIsJ,EAAEtJ,GAAIpG,KAAM,iBAAF,OAAmB0P,EAAE1P,MAAQ,KAEhF,IAEMglG,GAAmBtjG,EAAAA,EAAAA,WAAS,WAC9B,OAAI4iG,EAAUlmG,QAAUi/F,GAAYsI,OACzB,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,MAEjD,CAAC,MAAO,MAAO,MAAO,YAAa,YAAa,KAAM,MAAO,SACxE,KAEA7kG,EAAAA,EAAAA,QACI,kBAAMmkG,EAAiB7mG,KAAK,IAC5B,SAAC6wB,GACG07D,EAAkBvsF,MAAQ6wB,IAAMk2E,IAAiBl2E,IAAMi2E,EAC3D,GACA,CAAEl+F,WAAW,IAGjB,IAAMk/F,GAAsBxkG,EAAAA,EAAAA,WAE1B,WAAK,MACH,GAAI4iG,EAAUlmG,QAAUi/F,GAAYoI,KAAM,CACtC,IAAMU,EAA8B,CAChCzD,SAAU8B,EAAepmG,MACzBoH,MAAOg7F,EAAWpiG,MAClBqH,SAAU8+F,EAAenmG,MACzBX,MAAO,UAEX,OAAO0oG,C,CAGX,GAAI7B,EAAUlmG,QAAUi/F,GAAYqI,MAAO,CACvC,IAAMU,EAAgC,CAClC53F,IAAKi2F,EAAUrmG,MACfioG,SAAU7F,EAAWpiG,OAEzB,OAAOgoG,C,CAGX,GAAI9B,EAAUlmG,QAAUi/F,GAAYsI,OAAQ,CACxC,IAAMvG,EAAiC,CACnCvpF,OACIA,EAAOzX,MAAMkoG,kBAAmB,IAAInvF,MAAOmvF,eAAiB,KAAOzwF,EAAOzX,MAAMya,cACpF3B,aAAcA,EAAa9Y,MAC3Bua,YAAagsF,EAAiBvmG,MAC9BmoG,WAAY7B,EAAgBtmG,OAEhC,OAAOghG,C,CAGX,GAAIkF,EAAUlmG,QAAUi/F,GAAYnjD,gBAAiB,CACjD,IAAMmlD,EAAmD,CACrD0D,WACI8B,EAAmBzmG,MAAM8W,SAAW8wF,EAAoB5nG,MAAM8W,QAC1B,IAApC2vF,EAAmBzmG,MAAM8W,OACnB,KACA2vF,EAAmBzmG,MAC7Bie,cACIuoF,EAAuBxmG,MAAM8W,SAAW6wF,EAAwB3nG,MAAM8W,QAC9B,IAAxC0vF,EAAuBxmG,MAAM8W,OACvB,KACA0vF,EAAuBxmG,MACjCooG,gBAAiB,KACjBnpD,WAAY,KACZopD,kBAAmB,MAEvB,OAAOpH,C,CAGX,IAAM1mF,GAAew1E,EAAgB/vF,OAAS,IACzC0Y,QAAQ+zE,EAAczsF,OAAS,IAAI4N,KAAI,SAACqI,GAAC,qBAAaA,EAAC,KACvD0C,KAAK,KACJiB,EAAU+1E,EAAe3vF,OAAS,GAClC0I,EAAkC,CACpCoQ,aAAcA,EAAa9Y,MAC3BmZ,YAAaA,EAAYnZ,MACzBua,YAAAA,EACAX,QACIitF,EAAiB7mG,QAAU8mG,GACrBltF,EAAQhM,KAAI,SAACmY,GAAC,MAAM,CAChB/d,GAAI+d,EAAEtK,GACN7Z,KAAMmkB,EAAErK,KACRhd,KAAMqnB,EAAEjK,KACX,IACD,GACV1C,YAAamzE,EAAkBvsF,MAAQ6mG,EAAiB7mG,MAAQ,KAChEwX,UAAwB,QAAd,EAAAwB,EAAMhZ,MAAM,UAAE,aAAd,EAAgBya,gBAAiB,KAC3ChD,QAASuB,EAAMhZ,MAAM,IAAM,IAAI+Y,MAAQ0B,cACvCtD,YAAaA,EAAYnX,MACzB+rF,UACgC,oBAA5B4a,EAAkB3mG,MAA8B,CAAC,SAAU,YAAc,CAAC2mG,EAAkB3mG,OAChG49B,QAASA,EAAQ59B,MACjB0iG,mBAAoBA,EAAmB1iG,OAE3C,OAAO0I,CACX,IA0GA,OAxGAhG,EAAAA,EAAAA,QACI,iBAAM,CAACgpB,EAAYgC,QAAShC,EAAYkC,QAASlC,EAAYmC,QAAQ,IACrE,YAAgC,oBAA9BH,EAAO,KAAEE,EAAO,KAAEC,EAAO,KACnBiiE,EAAuB9vF,MAAM8W,SACjCg5E,EAAuB9vF,MAAQ,CAAC0tB,EAASE,EAASC,GAASlW,QAAO,SAAC1B,GAAC,OAAKA,CAAC,IAC9E,GACA,CAAErN,WAAW,KAGjBlG,EAAAA,EAAAA,QACI,kBAAM1D,EAAM6J,MAAM,IAClB,SAACa,GACG,IAAKA,EAwBD,OAtBA04F,EAAWpiG,MAAQ,GACnBmmG,EAAenmG,MAAQ,GACvBomG,EAAepmG,MAAQ,GAEvBqmG,EAAUrmG,MAAQ,GAElB8Y,EAAa9Y,MAAQ,MACrBgZ,EAAMhZ,MAAQ,GACdmZ,EAAYnZ,MAAQ,GACpB2vF,EAAe3vF,MAAQ,GACvB2mG,EAAkB3mG,MAAQ,SAC1BmX,EAAYnX,MAAQ4Q,GAAAA,MACpB27E,EAAkBvsF,OAAQ,EAC1B6mG,EAAiB7mG,MAAQ,KACzB+vF,EAAgB/vF,MAAQ,GACxBysF,EAAczsF,MAAQ,GACtB8vF,EAAuB9vF,MAAQ,GAC/B49B,EAAQ59B,MAAQ,QAChBumG,EAAiBvmG,MAAQqU,GAAiBkB,cAE1C2wF,EAAUlmG,MAAQi/F,GAAY+H,aAKlC,IAAMlH,EAASp2F,EACf,GAAIo2F,EAAOphG,OAASugG,GAAYoI,KAC5BjF,EAAWpiG,MAAQ8/F,EAAOl+F,KAC1BukG,EAAenmG,MAAQ8/F,EAAOj3F,OAAOxB,UAAY,KACjD++F,EAAepmG,MAAQ8/F,EAAOj3F,OAAOy7F,UAAY,UAC9C,GAAIxE,EAAOphG,OAASugG,GAAYqI,MACnClF,EAAWpiG,MAAQ8/F,EAAOl+F,KAC1BykG,EAAUrmG,MAAQ8/F,EAAOj3F,OAAOuH,KAAO,UACpC,GAAI0vF,EAAOphG,OAASugG,GAAYsI,OACnCzuF,EAAa9Y,MAAQ8/F,EAAOj3F,OAAOiQ,aACnCrB,EAAOzX,MAAQ8/F,EAAOj3F,OAAO4O,OAAS,IAAIsB,KAAK+mF,EAAOj3F,OAAO4O,QAAU,IAAIsB,KAC3EwtF,EAAiBvmG,MAAQ8/F,EAAOj3F,OAAO0R,aAAelG,GAAiBkB,SACvE+wF,EAAgBtmG,MAAQ8/F,EAAOj3F,OAAOs/F,YAAc,aACjD,GAAIrI,EAAOphG,OAASugG,GAAYnjD,gBACnC2qD,EAAmBzmG,MAAQ8/F,EAAOj3F,OAAO87F,YAAciD,EAAoB5nG,MAC3EwmG,EAAuBxmG,MACnB8/F,EAAOj3F,OAAOoV,eAAiB0pF,EAAwB3nG,MAAM4N,KAAI,SAACkM,GAAC,OAAKA,EAAE9Z,KAAK,QAChF,CACHoiG,EAAWpiG,MAAQ8/F,EAAOl+F,KAC1BkX,EAAa9Y,MAAQ8/F,EAAOj3F,OAAOiQ,aAEnC,IAAMD,EAAU,IAAI3B,GAAQ4B,EAAa9Y,OACnCwX,EAAWsoF,EAAOj3F,OAAO2O,SAAW,IAAIuB,KAAK+mF,EAAOj3F,OAAO2O,UAAY,KACvEC,EAASqoF,EAAOj3F,OAAO4O,OAAS,IAAIsB,KAAK+mF,EAAOj3F,OAAO4O,QAAU,KACvEuB,EAAMhZ,MAAQ6Y,EAAQI,sBAAsBzB,EAAUC,GAEtD0B,EAAYnZ,MAAQ8/F,EAAOj3F,OAAOsQ,aAAe,GACjDw2E,EAAe3vF,OAAS8/F,EAAOj3F,OAAO+Q,SAAW,IAAIhM,KAAI,SAACD,EAAGmM,GAAC,MAAM,CAChE2B,GAAI9N,EAAE3F,GACN0T,KAAM/N,EAAE/L,KACRka,KAAMnO,EAAEjP,KACRkd,YAAajO,EAAE/L,KACfma,YAAajC,EACb+B,SAAU,KACb,IACD8qF,EAAkB3mG,MACd8/F,EAAOj3F,OAAOkjF,UAAUj1E,OAAS,EAAI,kBAAoBgpF,EAAOj3F,OAAOkjF,UAAU,IAAM,SAE3F50E,EAAYnX,MAAQ8/F,EAAOphG,OAASugG,GAAYmI,SAAWx2F,GAAAA,QAAsBkvF,EAAOj3F,OAAOsO,YAC/Fo1E,EAAkBvsF,QAAU8/F,EAAOj3F,OAAOuQ,YACtCmzE,EAAkBvsF,MAClB6mG,EAAiB7mG,MAAQ8/F,EAAOj3F,OAAOuQ,aAAe,KAC/Cu2E,EAAe3vF,MAAM8W,OAC5B+vF,EAAiB7mG,MAAQ8mG,GAEzBD,EAAiB7mG,MAAQ+mG,GAG7B,IAAM7a,EAAmB4T,EAAOj3F,OAAO0R,YAAY9B,MAAM,KACzDs3E,EAAgB/vF,MAAQksF,EAAiBv0E,QAAO,SAACwZ,GAAC,OAAMA,EAAEuX,WAAW,QAAQ,IAC7E+jD,EAAczsF,MAAQksF,EACjBv0E,QAAO,SAACwZ,GAAC,OAAKA,EAAEuX,WAAW,QAAQ,IACnC96B,KAAI,SAACujB,GAAC,OAAKA,EAAE5Z,UAAU,QAAQT,OAAO,IAE3C,IAAMm5E,EAAU,GAAH,gBAAOH,EAAuB9vF,QAAK,QAAKysF,EAAczsF,QACnE8vF,EAAuB9vF,MAAQiwF,EAAQt4E,QAAO,SAAC3X,EAAOmY,GAAK,OAAK83E,EAAQ53E,QAAQrY,KAAWmY,CAAK,IAChGylB,EAAQ59B,MAAS8/F,EAAOj3F,OAAO+0B,SAAW,QAC1C8kE,EAAmB1iG,MAAQ8/F,EAAOj3F,OAAO65F,qBAAsB,C,CAGnEwD,EAAUlmG,MAAQ8/F,EAAOphG,IAC7B,GACA,CAAEkK,WAAW,IAGV,CACHw5F,WAAAA,EACA+D,eAAAA,EACAE,UAAAA,EACAD,eAAAA,EACA3+F,QAAAA,EACAqR,aAAAA,EACAK,YAAAA,EACAH,MAAAA,EACA22E,eAAAA,EACAx4E,YAAAA,EACAkmF,cAAAA,EACAwJ,iBAAAA,EACA9W,gBAAAA,EACAtD,cAAAA,EACAuD,yBAAAA,EACAF,uBAAAA,EACAlyD,QAAAA,EACAsoE,UAAAA,EACA3Z,kBAAAA,EACA2a,oBAAAA,EACAP,kBAAAA,EACAmB,oBAAAA,EACApB,mBAAAA,EACAc,kBAAAA,EACA5tF,QAAAA,EACAi2E,MAAAA,EACA6X,qBAAAA,EACAnB,iBAAAA,EACAkB,kBAAAA,EACAhwF,OAAAA,EACA6uF,gBAAAA,EACAW,iBAAAA,EACAT,uBAAAA,EACAmB,wBAAAA,EACAlB,mBAAAA,EACAmB,oBAAAA,EACAhB,iBAAAA,EACAlE,mBAAAA,EAER,ICzXkT,MCOlT,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QCThC,IAAex9F,EAAAA,EAAAA,iBAAgB,CAC3BC,WAAY,CAAEmjG,KAAAA,GAAMC,qBAAAA,IACpBljG,MAAK,WACD,IAAMo8F,EAAYrB,KAClB,GAAmCz6D,EAAAA,GAAAA,IAAY87D,GAAvCnB,EAAO,EAAPA,QAASD,EAAa,EAAbA,cACXzM,GAAYtwF,EAAAA,EAAAA,WAAS,WAAK,MAC5B,OAAc,OAAPg9F,QAAO,IAAPA,GAAc,QAAP,EAAPA,EAAStgG,aAAK,WAAP,EAAP,EAAgB4B,OAAQ,KACnC,IACMsgG,EAAc,yCAAG,WAAO/B,GAAW,uFAC/BsB,EAAUxB,kBAAkBE,EAAEn4F,IAAG,2CAC1C,gBAFmB,sCAGdwgG,EAAe,yCAAG,WACpB5mG,EACAygG,EACA10F,GAA8C,0EAEzCA,EAAG,CAAF,gDACkB,OAAxB20F,EAAUtiG,OAAQ,EAAM,SAClByhG,EAAUX,eAAel/F,EAAMygG,EAAY10F,EAAG,CAAEyZ,EAAG,EAAGkX,EAAG,EAAG6hE,EAAG,GAAIzvE,EAAG,KAAK,2CACpF,gBARoB,0CASf+3E,EAAkB,yCAAG,WACvB7mG,EACAygG,EACA10F,GAA8C,0EAEzCA,EAAG,CAAF,gDACkB,OAAxB20F,EAAUtiG,OAAQ,EAAM,SAClByhG,EAAUL,kBAAkBe,EAAcniG,MAAMgI,GAAIpG,EAAMygG,EAAY10F,GAAE,OAC9Ew0F,EAAcniG,MAAQ,KAAK,2CAE9B,gBAVuB,0CAWlB0oG,EAAU,yCAAG,WACf9mG,EACAygG,EACA10F,GAA8C,iFAE1Cw0F,EAAcniG,MAAO,CAAF,+BACbyoG,EAAmB7mG,EAAMygG,EAAY10F,GAAE,6CAEvC66F,EAAgB5mG,EAAMygG,EAAY10F,GAAE,WAG1C2yF,EAAQtgG,MAAO,CAAF,gBACY,OAAnB6kB,EAAMy7E,EAAQtgG,MAAK,UACnBmlB,GAAmBk7E,EAAcrgG,MAAO,CAAE4B,KAAMijB,EAAIjjB,KAAMkR,YAAa+R,EAAI/R,aAAe+R,GAAI,4CAE3G,gBAfe,0CAgBV8jF,EAAO,yCAAG,0GACMlH,EAAUF,qBAAoB,OAAvC,OAAH18E,EAAM,EAAH,cACHM,GAAmBk7E,EAAcrgG,MAAO,CAAE4B,KAAMijB,EAAIjjB,KAAMkR,YAAa+R,EAAI/R,aAAe+R,GAAI,2CACvG,kBAHY,mCAIPs9E,GAAgB18F,EAAAA,EAAAA,KAAqB,MACrC68F,GAAY78F,EAAAA,EAAAA,MAAI,GAChBmjG,EAAqB,SAACzI,GACxBmC,EAAUtiG,OAAQ,EAClBmiG,EAAcniG,MAAQmgG,CAC1B,EACMM,EAAI,yCAAG,WAAOz4F,GAAS,6FACPqd,GAAsBrd,GAAG,OAAlC,OAAH6c,EAAM,EAAH,cACH48E,EAAUd,QAAQ34F,EAAI6c,GAAI,uBAC1B48E,EAAUhB,KAAKz4F,GAAG,2CAC3B,gBAJS,sCAKJ6gG,EAAc,WAChBvG,EAAUtiG,OAAQ,EAClBmiG,EAAcniG,MAAQ,IAC1B,EACA,MAAO,CACHygG,KAAAA,EACA+H,gBAAAA,EACAG,QAAAA,EACArG,UAAAA,EACAsG,mBAAAA,EACA1G,eAAAA,EACAwG,WAAAA,EACAvG,cAAAA,EACAvO,UAAAA,EACAiV,YAAAA,EAER,EACAnmG,MAAO,CACHymB,OAAQ,CACEvmB,QAAO,SAACkmG,EAAUC,GAAQ,iIACxBA,GAA8B,oBAAlBA,EAASnnG,KAA0B,gCACzC,EAAK+mG,UAAS,uBAElB,EAAKlI,KAAKqI,EAAS9oF,OAAOhY,IAAG,0CAJP,EAKhC,EACAY,WAAW,EACXjG,MAAM,IAGRe,cAAa,wJACT,EAAKilG,UAAS,0CADL,EAEnB,ICtGuS,MCOvS,IAAY,OACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIF,GAAe,GAAiB,QChBnBK,GAAY,SAAC55E,EAAIuT,EAAMsmE,GAChC,IAAMpjB,EAAOiC,KAEPvgF,EAAK,WAEP,GAAIs+E,EAAKxB,gBACL,OAAO4kB,IAIXpjB,EAAKT,kBAAkB,CAAEH,SAAU,CAAEC,SAAU91D,EAAG85E,WACtD,EAGA,IAAKrjB,EAAKpmF,QACN,OAAO8H,IAIXs+E,EAAKsjB,OAAO,WAAW,SAAA1pG,GACnB,IAAgB,IAAZA,EACA,OAAO8H,GAEf,GACJ,ECSM6hG,GAAU,WAAH,OACT,8BAEC,EA4ECC,GAAe,WAAH,OACd,8BAEC,EACCC,GAAoB,WAAH,OACnB,8BAA2E,EACzEC,GAAuB,WAAH,OACtB,8BAEC,EACCC,GAAuB,WAAH,OACtB,8BAEC,EAECC,GAAc,WAAH,OACb,8BAAoE,EAClEC,GAAgB,WAAH,OACf,8BAAsE,EACpEC,GAAiB,WAAH,OAChB,8BAAuE,EACrEC,GAAsB,WAAH,OACrB,8BAEC,EA2CLjgG,EAAAA,WAAAA,IAAQkgG,GAAAA,IAED,IAAMC,GAAiB,CAC1BC,MAAO,CACHn1B,QAAS,UACT2Q,OAAQ,SACRvqC,SAAU,WACVgvD,OAAQ,SACRhI,KAAM,OACNuF,OAAQ,SACR0C,OAAQ,SACRtyD,aAAc,eACduyD,wBAAyB,0BACzBC,gBAAiB,kBACjBC,eAAgB,iBAChBC,qBAAsB,uBACtBvuD,gBAAiB,kBACjBwuD,YAAa,cACbC,eAAgB,iBAChB7tC,iBAAkB,oBAClB8tC,eAAgB,iBAChBC,cAAe,gBACfh2F,cAAe,gBACf89C,MAAO,QACP1gC,QAAS,UACT/E,QAAS,UACT49E,QAAS,UACTC,UAAW,YACXC,cAAe,gBACfC,aAAc,gBACdC,QAAS,UACTC,kBAAmB,qBACnBC,iBAAkB,sBAIpBC,GAA2B,CAC7B,CACIt9C,KAAM,GACN7tD,UAAWorG,IAEf,CACIv9C,KAAM,aACN7tD,UAAWqrG,GACXt/B,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CACIz9C,KAAM,QACN7tD,UAAWurG,IAEf,CAAE19C,KAAM,cAAe7tD,UAAWwrG,IAClC,CAAE39C,KAAM,OAAQ7tD,UAAWyrG,IAC3B,CAAE59C,KAAM,cAAe7tD,UAAW0rG,IAClC,CAAE79C,KAAM,MAAO7tD,UAAW2rG,IAC1B,CAAE99C,KAAM,SAAU7tD,UAAW4rG,OAKnCC,GAAgC,CAClC,CAAEh+C,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,kBACN7tD,UAAW8rG,GACX//B,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAW+rG,IAC5B,CAAEl+C,KAAM,SAAU7tD,UAAWgsG,IAC7B,CAAEn+C,KAAM,SAAU7tD,UAAWisG,IAC7B,CAAEp+C,KAAM,cAAe7tD,UAAWksG,IAClC,CAAEr+C,KAAM,cAAe7tD,UAAWmsG,OAKxCC,GAAiC,CACnC,CACIv+C,KAAM,GACN7tD,UAAWorG,IAEf,CACIv9C,KAAM,mBACN7tD,UAAWqsG,GACXtgC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWssG,OAKlCC,GAAgC,CAClC,CACI1+C,KAAM,GACN7tD,UAAWwsG,GACXzgC,SAAU,CACN,CACIle,KAAM,kBACN7tD,UAAWysG,GACX1gC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAW0sG,IAC5B,CAAE7+C,KAAM,SAAU7tD,UAAW2sG,IAC7B,CAAE9+C,KAAM,SAAU7tD,UAAW4sG,IAC7B,CACI/+C,KAAM,cACN7tD,UAAW6sG,IAEf,CACIh/C,KAAM,cACN7tD,UAAW8sG,IAEf,CAAEj/C,KAAM,SAAU7tD,UAAW+sG,SAO3CC,GAA0B,CAC5B,CACIn/C,KAAM,GACN7tD,UAAWupG,GACXx9B,SAAU,CACN,CACIle,KAAM,YACN7tD,UAAWwpG,GACXz9B,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,YACtB,CAAEz9C,KAAM,WAAY7tD,UAAWypG,IAC/B,CAAE57C,KAAM,WAAY7tD,UAAW0pG,SAO7CuD,GAA2B,CAC7B,CAAEp/C,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,aACN7tD,UAAWktG,GACXnhC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWmtG,IAC5B,CAAEt/C,KAAM,SAAU7tD,UAAWotG,IAC7B,CAAEv/C,KAAM,SAAU7tD,UAAWqtG,OAKnCC,GAA+B,CACjC,CAAEz/C,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,iBACN7tD,UAAWutG,GACXxhC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWwtG,OAKlCC,GAA8B,CAChC,CAAE5/C,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,gBACN7tD,UAAW0tG,GACX3hC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAW2tG,OAKlCC,GAA0B,CAC5B,CAAE//C,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,YACN7tD,UAAW6tG,GACX9hC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAW8tG,IAC5B,CAAEjgD,KAAM,SAAU7tD,UAAW+tG,OAKnCC,GAA6B,CAC/B,CAAEngD,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,eACN7tD,UAAWiuG,GACXliC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWkuG,IAC5B,CAAErgD,KAAM,SAAU7tD,UAAWmuG,OAKnCC,GAAmC,CACrC,CAAEvgD,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,qBACN7tD,UAAWquG,GACXtiC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWsuG,OAKlCC,GAAuB,CACzB,CAAE1gD,KAAM,GAAI7tD,UAAWorG,IACvB,CACIv9C,KAAM,aACN7tD,UAAWwuG,GACXziC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,SACtB,CAAEz9C,KAAM,QAAS7tD,UAAWyuG,IAC5B,CAAE5gD,KAAM,SAAU7tD,UAAW0uG,IAC7B,CAAE7gD,KAAM,SAAU7tD,UAAW2uG,OAKnCC,GAA8B,CAChC,CAAE/gD,KAAM,GAAIy9C,SAAU,gBACtB,CACIz9C,KAAM,eACN7tD,UAAW6uG,GACXtiB,KAAM,CAAEuiB,KAAM,IAElB,CACIjhD,KAAM,eACN7tD,UAAW+uG,GACXxiB,KAAM,CAAEuiB,KAAM,IAElB,CAAEjhD,KAAM,OAAQ7tD,UAAWgvG,GAAsBziB,KAAM,CAAEuiB,KAAM,IAC/D,CAAEjhD,KAAM,SAAU7tD,UAAWivG,GAAwB1iB,KAAM,CAAEuiB,KAAM,KAGjEI,GAA+B,CACjC,CACIrhD,KAAM,WACN7tD,UAAWmvG,GACXpjC,SAAUo/B,IAEd,CACIt9C,KAAM,gBACN7tD,UAAWovG,GACXrjC,SAAU8/B,IAEd,CACIh+C,KAAM,gBACN7tD,UAAWwsG,GACXzgC,SAAUwgC,IAEd,CACI1+C,KAAM,iBACN7tD,UAAWqvG,GACXtjC,SAAUqgC,IAEd,CACIv+C,KAAM,WACN7tD,UAAWsvG,GACXvjC,SAAUkhC,IAEd,CACIp/C,KAAM,UACN7tD,UAAWuvG,GACXxjC,SAAU6hC,IAEd,CACI//C,KAAM,cACN7tD,UAAWwvG,GACXzjC,SAAUiiC,IAEd,CACIngD,KAAM,kBACN7tD,UAAWyvG,GACX1jC,SAAUwiC,IAEd,CACI1gD,KAAM,oBACN7tD,UAAW0vG,GACX3jC,SAAUqiC,IAEd,CACIvgD,KAAM,cACN7tD,UAAW2vG,GACX5jC,SAAU0hC,IAEd,CACI5/C,KAAM,cACN7tD,UAAW4vG,GACX7jC,SAAUuhC,KAIZuC,GAAmB,CACrB,CACIhiD,KAAM,GACNy9C,SAAU7lG,EAAAA,EAAAA,iBAAwB,iBAC5B,UACA,sBAEV,CACIooD,KAAM,WACNy9C,SAAU7lG,EAAAA,EAAAA,iBAAwB,iBAC5B,UACA,sBAEV,CAAEooD,KAAM,eAAgB7tD,UAAW8vG,IACnC,CACIjiD,KAAM,mBACN/rD,KAAM,kBACN9B,UAAW+vG,IAEf,CACIliD,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAM/H,KAC3BliG,UAAWgwG,GACXjkC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,qBACN/rD,KAAM,YACN9B,UAAWiwG,GACXlkC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,oBACN/rD,KAAM,mBACN9B,UAAWkwG,GACXnkC,SAAU,CACN,CACIle,KAAM,GACNsiD,YAAa,WAAF,8BAAE,WAAO7gF,EAAIuT,EAAMsmE,GAAI,+FACA37C,KAAoB,OAA5C4iD,EAAkB,EAAH,KAEjBC,GAAyB,OAAfD,QAAe,IAAfA,OAAe,EAAfA,EAAiB5hD,0BACZ,OAAf4hD,QAAe,IAAfA,OAAe,EAAfA,EAAiB7hD,kBACjB,WAEY,sBAAZ8hD,GACY,mBAAZA,IAEAA,EAAU,YAEdlH,EAAK,CAAEt7C,KAAM,sBAAF,OAAwBwiD,KAAa,2CACnD,0DAbY,KAchB,OACEnB,GAA4B,CAC/B,CACIrhD,KAAM,IACNy9C,SAAU,eAItB,CACIz9C,KAAM,gBACN/rD,KAAM,eACN9B,UAAWswG,GACXvkC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,SACN/rD,KAAMkoG,GAAeC,MAAMxC,OAC3BznG,UAAWuwG,GACXxkC,SAAU,CACN,CAAEle,KAAM,IAAK7tD,UAAWorG,KAAa,OAClC8D,KAGX,CACIrhD,KAAM,UACN7tD,UAAWwwG,GACXzkC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,sBACN7tD,UAAWywG,IAEf,CACI5iD,KAAM,WACN7tD,UAAW0wG,IAEf,CACI7iD,KAAM,eACN7tD,UAAW2wG,IAEf,CACI9iD,KAAM,oBACN7tD,UAAW4wG,IAEf,CACI/iD,KAAM,wBACN7tD,UAAW6wG,IAEf,CACIhjD,KAAM,eACN7tD,UAAW4wG,IAEf,CACI/iD,KAAM,aACN7tD,UAAW8wG,GACX/kC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,eACN/rD,KAAMkoG,GAAeC,MAAMpyD,aAC3B73C,UAAW+wG,GACXhlC,SAAU,CACN,CACIle,KAAM,GACN7tD,UAAW4vG,GACX7jC,SAAU,GAAF,OAAMuhC,OAI1B,CACIz/C,KAAM,iBACN/rD,KAAM,gBACN9B,UAAWgxG,IAEf,CACInjD,KAAM,wBACN7tD,UAAWixG,IAEf,CACIpjD,KAAM,0BACN7tD,UAAWkxG,IAEf,CACIrjD,KAAM,2BACN7tD,UAAWmxG,IAEf,CACItjD,KAAM,qBACN/rD,KAAM,eACN9B,UAAWoxG,GACXrlC,SAAU,CACN,CAAEle,KAAM,GAAI7tD,UAAWorG,KAAa,OACjC8D,KAGX,CACIrhD,KAAM,eACNy9C,SAAU,mBAEd,CACIz9C,KAAM,iBACN/rD,KAAM,iBACN9B,UAAWqxG,IAEf,CACIxjD,KAAM,kBACN/rD,KAAMkoG,GAAeC,MAAMG,wBAC3BpqG,UAAWsxG,IAEf,CACIzjD,KAAM,mBACN/rD,KAAMkoG,GAAeC,MAAMI,gBAC3BrqG,UAAWuxG,IAEf,CACI1jD,KAAM,uBACN/rD,KAAMkoG,GAAeC,MAAMK,eAC3BtqG,UAAWwxG,IAEf,CACI3jD,KAAM,wCACN/rD,KAAMkoG,GAAeC,MAAMM,qBAC3BvqG,UAAWyxG,GACX1lC,SAAU6iC,IAEd,CACI/gD,KAAM,kBACN/rD,KAAMkoG,GAAeC,MAAMjuD,gBAC3Bh8C,UAAW0xG,IAEf,CACI7jD,KAAM,cACN/rD,KAAMkoG,GAAeC,MAAMO,YAC3BxqG,UAAW2xG,GACX5lC,SAAU,GAAF,OACDmjC,KAGX,CACIrhD,KAAM,iBACN/rD,KAAMkoG,GAAeC,MAAMQ,eAC3BzqG,UAAW4xG,GACX7lC,SAAU,GAAF,OACDmjC,KAGX,CACIrhD,KAAM,kBACN/rD,KAAM,iBACN9B,UAAW6xG,IAEf,CACIhkD,KAAM,qBACN/rD,KAAM,WACN9B,UAAW8xG,GACXvlB,KAAM,CAAEwlB,UAAU,IAEtB,CACIlkD,KAAM,qCACN/rD,KAAMkoG,GAAeC,MAAMrtC,iBAC3B58D,UAAWyxG,GACX1lC,SAAU6iC,IAEd,CACI/gD,KAAM,oBACN/rD,KAAM,gBACN9B,UAAW2pG,GACX59B,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,WACtB,CAAEz9C,KAAM,UAAW7tD,UAAW4pG,IAC9B,CAAE/7C,KAAM,WAAY7tD,UAAW8pG,IAC/B,CAAEj8C,KAAM,WAAY7tD,UAAW6pG,MAGvC,CACIh8C,KAAM,cACN/rD,KAAM,cACN9B,UAAWgyG,IAEf,CACInkD,KAAM,kBACN/rD,KAAM,aACN9B,UAAWiyG,GACXlmC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,YACtB,CAAEz9C,KAAM,WAAY7tD,UAAWkyG,IAC/B,CAAErkD,KAAM,QAAS7tD,UAAW2tG,MAGpC,CACI9/C,KAAM,WACN/rD,KAAMkoG,GAAeC,MAAM/uD,SAC3Bl7C,UAAWmyG,GACXpmC,SAAU,CACN,CAAEle,KAAM,GAAIy9C,SAAU,WACtB,CACIz9C,KAAM,SACN7tD,UAAW2lD,GACXomB,SAAUwgC,IAEd,CACI1+C,KAAM,QACN7tD,UAAW0lD,GACXqmB,SAAUwgC,IAEd,CACI1+C,KAAM,SACN7tD,UAAWoyG,GACXrmC,SAAUwgC,IAEd,CACI1+C,KAAM,SACN7tD,UAAWqyG,GACXtmC,SAAUwgC,IAEd,CACI1+C,KAAM,UACN7tD,UAAWsyG,GACXvmC,SAAUwgC,IAEd,CACI1+C,KAAM,YACN7tD,UAAWuyG,GACXxmC,SAAUwgC,IAEd,CACI1+C,KAAM,SACN7tD,UAAWwyG,IAEf,CACI3kD,KAAM,QACN/rD,KAAMkoG,GAAeC,MAAMx3C,MAC3BzyD,UAAWw1D,IAEf,CACI3H,KAAM,SACN/rD,KAAMkoG,GAAeC,MAAME,OAC3BnqG,UAAWyyG,IAEf,CACI5kD,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMS,eAC3B1qG,UAAW0yG,IAEf,CACI7kD,KAAM,gBACN/rD,KAAMkoG,GAAeC,MAAMa,cAC3B9qG,UAAW2yG,IAEf,CACI9kD,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMl4E,QAC3B/xB,UAAW4yG,IAEf,CACI/kD,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMj9E,QAC3BhtB,UAAWspG,GACXv9B,SAAUihC,IAEd,CACIn/C,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMW,QAC3B5qG,UAAW6yG,IAEf,CACIhlD,KAAM,cACN/rD,KAAM,cACN9B,UAAW8yG,IAEf,CACIjlD,KAAM,eACN/rD,KAAM,eACN9B,UAAW+yG,IAEf,CACIllD,KAAM,WACN/rD,KAAM,WACN9B,UAAWgzG,IAEf,CACInlD,KAAM,aACN/rD,KAAM,aACN9B,UAAWizG,IAEf,CACIplD,KAAM,QACN/rD,KAAM,QACN9B,UAAWkzG,MAIvB,CACIrlD,KAAM,YACNy9C,SAAU,WAEd,CACIz9C,KAAM,WACNy9C,SAAU,qBAEd,CACIz9C,KAAM,UACN/rD,KAAM,UACN9B,UAAWmzG,GACXpnC,SAAU,CACN,CACIle,KAAM,GACNsiD,YAAa,WAAF,8BAAE,WAAO7gF,EAAIuT,EAAMsmE,GAAI,+FACA37C,KAAoB,OAA5C4iD,EAAkB,EAAH,KACfC,GAAyB,OAAfD,QAAe,IAAfA,OAAe,EAAfA,EAAiB5hD,0BACd,OAAf4hD,QAAe,IAAfA,OAAe,EAAfA,EAAiB7hD,kBACjB,WACJ46C,EAAK,CAAEt7C,KAAM,YAAF,OAAcwiD,KAAa,2CACzC,0DANY,KAOhB,OACEnB,GAA4B,CAC/B,CACIrhD,KAAM,mBACN7tD,UAAWorG,IAEf,CACIv9C,KAAM,IACNy9C,SAAU,eAItB,CACIz9C,KAAM,MACN/rD,KAAM,WACN9B,UAAWozG,GACX7mB,KAAM,CAAE8mB,eAAe,KAIzBtc,GAAS,IAAIgT,GAAAA,GAAU,CACzBzmE,KAAM,UACNgwE,KAAMC,IACNC,OAAQ,CACJ,CACI3lD,KAAM,SACN/rD,KAAM,QACNyqF,KAAM,CAAE8mB,eAAe,EAAMI,gBAAgB,GACvCtD,YAAW,SAAC7gF,EAAIuT,EAAMsmE,GAAI,wHACF,OAApBpjB,EAAOiC,KAAa,SACpBjC,EAAKT,kBAAkB,CACzBp/D,SAAW,KACb,0CAJ0B,EAKhC,GAEJ,CACI2nC,KAAM,YACNy9C,SAAU,SACV/e,KAAM,CAAE8mB,eAAe,EAAMI,gBAAgB,IAEjD,CACI5lD,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMxkB,OAC3B8G,KAAM,CAAE8mB,eAAe,EAAMI,gBAAgB,GACvCtD,YAAW,SAAC7gF,EAAIuT,EAAMsmE,GAAI,wHAEqB,OAD3CpjB,EAAOiC,KACbvnF,GAAAA,EAAAA,MAAe,2BAA2B,GAAO,SAC3CslF,EAAKP,qBAAoB,OAC/B2jB,EAAK,KAAK,0CAJkB,EAKhC,GAEJ,CACIt7C,KAAM,UACN/rD,KAAMkoG,GAAeC,MAAMC,OAC3BlqG,UAAW0zG,GACXnnB,KAAM,CAAE8mB,eAAe,IAE3B,CACIxlD,KAAM,sBACN/rD,KAAMkoG,GAAeC,MAAMgB,kBAC3BjrG,UAAW2zG,GACXpnB,KAAM,CAAE8mB,eAAe,GACjBlD,YAAW,SAAC7gF,EAAIuT,EAAMsmE,GAAI,kHACvB1jG,EAAAA,EAAAA,uBAGD0jG,IAFAA,EAAK,KAGR,0CAL2B,EAMhC,GAEJ,CACIt7C,KAAM,kBACN7tD,UAAW4zG,GACXrnB,KAAM,CAAE8mB,eAAe,EAAMI,gBAAgB,IAEjD,CACI5lD,KAAM,qBACN/rD,KAAMkoG,GAAeC,MAAMiB,iBAC3BlrG,UAAW6zG,IAEf,CACIhmD,KAAM,IACN7tD,UAAW8zG,GACX/nC,SAAU8jC,IAEd,CACIhiD,KAAM,iBACN7tD,UAAW8zG,GACX/nC,SAAU8jC,IAEd,CACIhiD,KAAM,IACNy9C,SAAU,WAKtB,SAASyI,GAAaC,GAClB,MAAO,uEAAuEvwG,KAAKuwG,EACvF,CAEAjd,GAAOkd,WAAU,yCAAC,WAAO3kF,EAAIuT,EAAMsmE,GAAI,iFAKnC,GAJI75E,EAAG4kF,QAAQhsD,MAAK,SAACr6C,GAAC,MAAgB,SAAXA,EAAEggD,IAAe,KAKxCv+B,EAAGpP,OAAO4tC,aAAc,CAAF,oBAElBimD,GAAazkF,EAAGpP,OAAO4tC,cAAe,CAAF,eACpC9jD,GAAAA,EAAAA,SAAsBslB,EAAGpP,OAAO4tC,aAAa,sBAEnC,OAAVq7C,EAAK,KAAK,sDAIa,KAApB,QAAP,EAAA75E,EAAGi9D,YAAI,aAAP,EAAS8mB,iBAA0BrpG,GAAAA,EAAAA,UAClCslB,EAAG85E,SAASp+F,SAAShB,GAAAA,EAAAA,UAAoB,iBAEI,OAA9Cm/F,EAAK,IAAD,OAAKn/F,GAAAA,EAAAA,UAAmB,OAAGslB,EAAG85E,WAAY,8BAM7Cp/F,GAAAA,EAAAA,WAAkD,KAApB,QAAP,EAAAslB,EAAGi9D,YAAI,aAAP,EAAS8mB,eAAsB,iBACvC,OAAhBlK,EAAK,WAAW,+BAIY,KAArB,QAAP,EAAA75E,EAAGi9D,YAAI,aAAP,EAASknB,gBAAuB,iBACN,OAA1BvK,GAAU55E,EAAIuT,EAAMsmE,GAAM,2BAIvB,OAAPA,IAAO,+DAEV,uDApCgB,IAqCjB,ICl+BIjjD,GDk+BJ,M,YCh+BA,SAASiuD,KACLjuD,IAAgB05C,EAAAA,GAAAA,IACpB,CAEA,IACIwU,GADEC,GAAiB5uG,EAAAA,EAAAA,MAAa6uG,iBAGpC,GAAID,GAAgB,CAChB,IAAME,GAA8C,CAChDC,mBAAoBH,GACpBI,sBAAsB,EACtBC,uBAAuB,EACvBC,yBAAyB,EACzBC,iCAAkC,CAAC,yBAA0B,wBAAyB,uBAAwB,8BAE5GC,GAAuB,SAAAC,GACzBA,EAASp1G,KAAKq1G,uBAAyB7uD,EAC3C,EACAkuD,GAAc,IAAIY,GAAAA,EAAoB,CAAEjsG,OAAQwrG,KAChDH,GAAYa,kBACZb,GAAYc,wBAAwBL,G,CAGxC9d,GAAAA,YAAkB,SAACznE,EAAIuT,EAAMsmE,GACzBgL,KACAhL,GACJ,IAEA,I,aC/BEgM,EAAAA,GAAAA,GAAS,GAAD,OAAI5B,IAAoB,qBAAqB,CACnD6B,MAAK,WACHn0F,QAAQm2B,IACN,qGAGJ,EACAi+D,WAAU,WACRp0F,QAAQm2B,IAAI,sCACd,EACAk+D,OAAM,WACJr0F,QAAQm2B,IAAI,2CACd,EACAm+D,YAAW,WACTt0F,QAAQm2B,IAAI,8BACd,EACAo+D,QAAO,WACLv0F,QAAQm2B,IAAI,4CACd,EACAq+D,QAAO,WACLx0F,QAAQm2B,IAAI,gEACd,EACAntC,MAAK,SAACA,GACJgX,QAAQhX,MAAM,4CAA6CA,EAC7D,I,kGCHJJ,EAAAA,WAAAA,OAAAA,eAA2B,EAE3BA,EAAAA,WAAAA,IAAQq+E,GAAY,CAClBjD,mBAAoB,WAAF,8BAAE,WAAOywB,GAAW,uFAC9B3e,GAAAA,KAAY2e,GAA4B/qG,OAAOo6E,SAASM,UAAS,2CACxE,sDAFmB,KAItBx7E,EAAAA,WAAAA,IAAQ8rG,GAAAA,IACR9rG,EAAAA,WAAAA,IAAQ+rG,MACR/rG,EAAAA,WAAAA,IAAQgsG,GAAAA,IACRhsG,EAAAA,WAAAA,IAAQisG,IACRjsG,EAAAA,WAAAA,IAAQksG,GAAAA,EAAc,CAAEhf,OAAAA,GAAQvxC,OAAQ,KAAF,OAAO//C,EAAAA,EAAAA,MAAauwG,YAC1DnsG,EAAAA,WAAAA,IAAQosG,MACRpsG,EAAAA,WAAAA,IAAQqsG,GAAAA,IACR,IAAMC,IAAQC,EAAAA,GAAAA,MACdD,GAAMxsG,IAAI0sG,GAAAA,GAEV,IAAIxsG,EAAAA,WAAI,CACNktF,OAAAA,GACAuf,QAAAA,EACAr5B,KAAAA,GACAh9E,OAAQ,SAAA2wB,GAAC,OAAIA,EAAE2lF,EAAI,EACnB/2D,KAAM,IAAIo2D,MACVO,MAAAA,KACCK,OAAO,O,mIC7CV3sG,EAAAA,WAAAA,IAAQ+rG,KAER,IAAMa,EAAc,QACdC,EAAa,OACnB7sG,EAAAA,WAAAA,UAAc,aAAc,CACxBihB,KAAI,SAACC,EAAGC,EAASC,GACb,IAAMhiB,EAAWgiB,EAAMzkB,QAAQ0kB,gBAC/BD,EAAME,MAAMC,IAAIqrF,GAAa,kBAAMxtG,EAAS2e,MAAMoD,EAAQ9qB,MAAM,IAChE+qB,EAAME,MAAMC,IAAIsrF,GAAY,kBAAMztG,EAASof,IAAI2C,EAAQ9qB,MAAM,GACjE,EACA46B,OAAM,SAAC/P,EAAGC,EAASC,GAAU,MACnBhiB,EAAWgiB,EAAMzkB,QAAQ0kB,gBACjB,QAAd,EAAID,EAAMvrB,YAAI,OAAV,EAAYR,QACZ+rB,EAAMvrB,KAAKR,MAAM,WAAa+J,EAASgS,GAAG+P,EAAQ9qB,OAE1D,IA2BgB,IAAI01G,I,0KC/CjB,IAAMe,SAAW,SAAXA,SAAY/1G,MACrB,IAAMxC,OAAS,CAAC,EAChB,OAAOw4G,KAAKh2G,KAChB,C,GCFIi2G,yBAA2B,CAAC,EAGhC,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,QAAqBzpG,IAAjB0pG,EACH,OAAOA,EAAa34G,QAGrB,IAAID,EAASy4G,yBAAyBE,GAAY,CAGjD14G,QAAS,CAAC,GAOX,OAHA44G,oBAAoBF,GAAUG,KAAK94G,EAAOC,QAASD,EAAQA,EAAOC,QAASy4G,qBAGpE14G,EAAOC,OACf,CAGAy4G,oBAAoBp7F,EAAIu7F,oB,WCzBxBH,oBAAoBK,KAAO,CAAC,C,eCA5B,IAAIC,EAAW,GACfN,oBAAoBO,EAAI,SAASz3F,EAAQ03F,EAAU7vG,EAAI8vG,GACtD,IAAGD,EAAH,CAMA,IAAIE,EAAeC,IACnB,IAASz9F,EAAI,EAAGA,EAAIo9F,EAASpgG,OAAQgD,IAAK,CACrCs9F,EAAWF,EAASp9F,GAAG,GACvBvS,EAAK2vG,EAASp9F,GAAG,GACjBu9F,EAAWH,EAASp9F,GAAG,GAE3B,IAJA,IAGI09F,GAAY,EACPC,EAAI,EAAGA,EAAIL,EAAStgG,OAAQ2gG,MACpB,EAAXJ,GAAsBC,GAAgBD,IAAa/0G,OAAO2M,KAAK2nG,oBAAoBO,GAAGO,OAAM,SAASv2G,GAAO,OAAOy1G,oBAAoBO,EAAEh2G,GAAKi2G,EAASK,GAAK,IAChKL,EAASriF,OAAO0iF,IAAK,IAErBD,GAAY,EACTH,EAAWC,IAAcA,EAAeD,IAG7C,GAAGG,EAAW,CACbN,EAASniF,OAAOjb,IAAK,GACrB,IAAInM,EAAIpG,SACE6F,IAANO,IAAiB+R,EAAS/R,EAC/B,CACD,CACA,OAAO+R,CArBP,CAJC23F,EAAWA,GAAY,EACvB,IAAI,IAAIv9F,EAAIo9F,EAASpgG,OAAQgD,EAAI,GAAKo9F,EAASp9F,EAAI,GAAG,GAAKu9F,EAAUv9F,IAAKo9F,EAASp9F,GAAKo9F,EAASp9F,EAAI,GACrGo9F,EAASp9F,GAAK,CAACs9F,EAAU7vG,EAAI8vG,EAwB/B,C,eC5BAT,oBAAoB5lF,EAAI,SAAS9yB,GAChC,IAAI+vF,EAAS/vF,GAAUA,EAAOy5G,WAC7B,WAAa,OAAOz5G,EAAO,UAAY,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADA04G,oBAAoB3uF,EAAEgmE,EAAQ,CAAEt9D,EAAGs9D,IAC5BA,CACR,C,eCNA2oB,oBAAoB3uF,EAAI,SAAS9pB,EAAS+8C,GACzC,IAAI,IAAI/5C,KAAO+5C,EACX07D,oBAAoB/O,EAAE3sD,EAAY/5C,KAASy1G,oBAAoB/O,EAAE1pG,EAASgD,IAC5EmB,OAAOs1G,eAAez5G,EAASgD,EAAK,CAAE02G,YAAY,EAAMjtG,IAAKswC,EAAW/5C,IAG3E,C,eCPAy1G,oBAAoB/lF,EAAI,CAAC,EAGzB+lF,oBAAoB7wF,EAAI,SAAS+xF,GAChC,OAAO5xG,QAAQ2H,IAAIvL,OAAO2M,KAAK2nG,oBAAoB/lF,GAAG3P,QAAO,SAASsxE,EAAUrxF,GAE/E,OADAy1G,oBAAoB/lF,EAAE1vB,GAAK22G,EAAStlB,GAC7BA,CACR,GAAG,IACJ,C,eCPAokB,oBAAoBz6E,EAAI,SAAS27E,GAEhC,MAAO,OAAqB,MAAZA,EAAkB,UAAYA,GAAW,WAAa,CAAC,GAAK,WAAW,IAAM,YAAYA,GAAW,KACrH,C,eCHAlB,oBAAoBmB,SAAW,SAASD,GAGxC,C,eCJAlB,oBAAoBr1F,EAAI,WACvB,GAA0B,kBAAfy2F,WAAyB,OAAOA,WAC3C,IACC,OAAOp3G,MAAQ,IAAI4B,SAAS,cAAb,EAGhB,CAFE,MAAOujB,GACR,GAAsB,kBAAXtb,OAAqB,OAAOA,MACxC,CACA,CAPuB,E,eCAxBmsG,oBAAoB/O,EAAI,SAASjhD,EAAKqxD,GAAQ,OAAO31G,OAAO6lF,UAAU+vB,eAAelB,KAAKpwD,EAAKqxD,EAAO,C,eCAtG,IAAIE,EAAa,CAAC,EACdC,EAAoB,aAExBxB,oBAAoB7lF,EAAI,SAAS3gB,EAAKioG,EAAMl3G,EAAK22G,GAChD,GAAGK,EAAW/nG,GAAQ+nG,EAAW/nG,GAAK7R,KAAK85G,OAA3C,CACA,IAAI7vG,EAAQ8vG,EACZ,QAAWlrG,IAARjM,EAEF,IADA,IAAIgpF,EAAUn/E,SAASutG,qBAAqB,UACpCz+F,EAAI,EAAGA,EAAIqwE,EAAQrzE,OAAQgD,IAAK,CACvC,IAAIqX,EAAIg5D,EAAQrwE,GAChB,GAAGqX,EAAEqnF,aAAa,QAAUpoG,GAAO+gB,EAAEqnF,aAAa,iBAAmBJ,EAAoBj3G,EAAK,CAAEqH,EAAS2oB,EAAG,KAAO,CACpH,CAEG3oB,IACH8vG,GAAa,EACb9vG,EAASwC,SAAS6tB,cAAc,UAEhCrwB,EAAOiwG,QAAU,QACjBjwG,EAAOtI,QAAU,IACb02G,oBAAoB8B,IACvBlwG,EAAOqrC,aAAa,QAAS+iE,oBAAoB8B,IAElDlwG,EAAOqrC,aAAa,eAAgBukE,EAAoBj3G,GACxDqH,EAAOmwG,IAAMvoG,GAEd+nG,EAAW/nG,GAAO,CAACioG,GACnB,IAAIO,EAAmB,SAASC,EAAMp0G,GAErC+D,EAAOmX,QAAUnX,EAAO+W,OAAS,KACjCu5F,aAAa54G,GACb,IAAI64G,EAAUZ,EAAW/nG,GAIzB,UAHO+nG,EAAW/nG,GAClB5H,EAAOwwG,YAAcxwG,EAAOwwG,WAAWllE,YAAYtrC,GACnDuwG,GAAWA,EAAQl/F,SAAQ,SAAStS,GAAM,OAAOA,EAAG9C,EAAQ,IACzDo0G,EAAM,OAAOA,EAAKp0G,EACtB,EACIvE,EAAUgvF,WAAW0pB,EAAiBhuF,KAAK,UAAMxd,EAAW,CAAE1O,KAAM,UAAW+gB,OAAQjX,IAAW,MACtGA,EAAOmX,QAAUi5F,EAAiBhuF,KAAK,KAAMpiB,EAAOmX,SACpDnX,EAAO+W,OAASq5F,EAAiBhuF,KAAK,KAAMpiB,EAAO+W,QACnD+4F,GAActtG,SAASiuG,KAAK5/E,YAAY7wB,EAnCkB,CAoC3D,C,eCvCAouG,oBAAoBjpG,EAAI,SAASxP,GACX,qBAAX+6G,QAA0BA,OAAOC,aAC1C72G,OAAOs1G,eAAez5G,EAAS+6G,OAAOC,YAAa,CAAEn5G,MAAO,WAE7DsC,OAAOs1G,eAAez5G,EAAS,aAAc,CAAE6B,OAAO,GACvD,C,eCNA42G,oBAAoB19F,EAAI,G,eCKxB,IAAIkgG,EAAkB,CACrB,IAAK,GAGNxC,oBAAoB/lF,EAAE4mF,EAAI,SAASK,EAAStlB,GAE1C,IAAI6mB,EAAqBzC,oBAAoB/O,EAAEuR,EAAiBtB,GAAWsB,EAAgBtB,QAAW1qG,EACtG,GAA0B,IAAvBisG,EAGF,GAAGA,EACF7mB,EAASj0F,KAAK86G,EAAmB,QAC3B,CAGL,IAAIC,EAAU,IAAIpzG,SAAQ,SAASC,EAASC,GAAUizG,EAAqBD,EAAgBtB,GAAW,CAAC3xG,EAASC,EAAS,IACzHosF,EAASj0F,KAAK86G,EAAmB,GAAKC,GAGtC,IAAIlpG,EAAMwmG,oBAAoB19F,EAAI09F,oBAAoBz6E,EAAE27E,GAEpD/tG,EAAQ,IAAIuyB,MACZi9E,EAAe,SAAS90G,GAC3B,GAAGmyG,oBAAoB/O,EAAEuR,EAAiBtB,KACzCuB,EAAqBD,EAAgBtB,GACX,IAAvBuB,IAA0BD,EAAgBtB,QAAW1qG,GACrDisG,GAAoB,CACtB,IAAIG,EAAY/0G,IAAyB,SAAfA,EAAM/F,KAAkB,UAAY+F,EAAM/F,MAChE+6G,EAAUh1G,GAASA,EAAMgb,QAAUhb,EAAMgb,OAAOk5F,IACpD5uG,EAAM+G,QAAU,iBAAmBgnG,EAAU,cAAgB0B,EAAY,KAAOC,EAAU,IAC1F1vG,EAAMnI,KAAO,iBACbmI,EAAMrL,KAAO86G,EACbzvG,EAAMP,QAAUiwG,EAChBJ,EAAmB,GAAGtvG,EACvB,CAEF,EACA6sG,oBAAoB7lF,EAAE3gB,EAAKmpG,EAAc,SAAWzB,EAASA,EAE/D,CAEH,EAUAlB,oBAAoBO,EAAEM,EAAI,SAASK,GAAW,OAAoC,IAA7BsB,EAAgBtB,EAAgB,EAGrF,IAAI4B,EAAuB,SAASC,EAA4Bn6G,GAC/D,IAKIq3G,EAAUiB,EALVV,EAAW53G,EAAK,GAChBo6G,EAAcp6G,EAAK,GACnBq6G,EAAUr6G,EAAK,GAGIsa,EAAI,EAC3B,GAAGs9F,EAASpvD,MAAK,SAAShgD,GAAM,OAA+B,IAAxBoxG,EAAgBpxG,EAAW,IAAI,CACrE,IAAI6uG,KAAY+C,EACZhD,oBAAoB/O,EAAE+R,EAAa/C,KACrCD,oBAAoBp7F,EAAEq7F,GAAY+C,EAAY/C,IAGhD,GAAGgD,EAAS,IAAIn6F,EAASm6F,EAAQjD,oBAClC,CAEA,IADG+C,GAA4BA,EAA2Bn6G,GACrDsa,EAAIs9F,EAAStgG,OAAQgD,IACzBg+F,EAAUV,EAASt9F,GAChB88F,oBAAoB/O,EAAEuR,EAAiBtB,IAAYsB,EAAgBtB,IACrEsB,EAAgBtB,GAAS,KAE1BsB,EAAgBtB,GAAW,EAE5B,OAAOlB,oBAAoBO,EAAEz3F,EAC9B,EAEIo6F,EAAqB1hG,KAAK,yBAA2BA,KAAK,0BAA4B,GAC1F0hG,EAAmBjgG,QAAQ6/F,EAAqB9uF,KAAK,KAAM,IAC3DkvF,EAAmBv7G,KAAOm7G,EAAqB9uF,KAAK,KAAMkvF,EAAmBv7G,KAAKqsB,KAAKkvF,G,ICpFvF,IAAIC,oBAAsBnD,oBAAoBO,OAAE/pG,EAAW,CAAC,MAAM,WAAa,OAAOwpG,oBAAoB,KAAO,IACjHmD,oBAAsBnD,oBAAoBO,EAAE4C,oB","sources":["webpack://cloudctrl/./src/components/Account.ApiManagement/DeleteApiKeyButton.vue?c515","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyButton.vue?36d4","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue?78d4","webpack://cloudctrl/./src/components/Account.SelfService/CreateTenantCard.vue?d623","webpack://cloudctrl/./src/components/Account.SelfService/PostCreateTenantButton.vue?549c","webpack://cloudctrl/./src/components/Common/DeleteEntityCard.vue?b861","webpack://cloudctrl/./src/components/Common/DeleteEntityDialog.vue?1d5e","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue?ac87","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue?0697","webpack://cloudctrl/./src/components/Common/UpdateEntitySpendLimitCard.vue?dc41","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue?4577","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationButton.vue?0b38","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationDialog.vue?c6a7","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationCard.vue?b06a","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationsTimeline.vue?8dc9","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationButton.vue?28b4","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationDialog.vue?4c9a","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationButton.vue?e82f","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationDialog.vue?4190","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue?82a8","webpack://cloudctrl/./src/components/Domain.Budgets/CreateBudgetDialog.vue?223b","webpack://cloudctrl/./src/components/Domain.Budgets/CreateButtonButton.vue?42fc","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetButton.vue?49f3","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetDialog.vue?6437","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue?50f5","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue?e00e","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue?83d0","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue?af6b","webpack://cloudctrl/./src/components/Domain.Currencies/CurrencyComboBox.vue?939e","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewMenu.vue?e65e","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue?24dc","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewButton.vue?f93a","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewDialog.vue?1a3b","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewButton.vue?f6b2","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewDialog.vue?77df","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewButton.vue?a0d7","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewDialog.vue?7e73","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue?3b3f","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateButton.vue?2389","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateButton.vue?733f","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateDialog.vue?d81c","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateButton.vue?6f69","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue?e8c0","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue?e07f","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyButton.vue?5f56","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyDialog.vue?e4b1","webpack://cloudctrl/./src/components/Domain.Policies/PolicyMenu.vue?5e38","webpack://cloudctrl/./src/components/Domain.Products/PatchProductButton.vue?4eb7","webpack://cloudctrl/./src/components/Domain.Products/ProductManageMenu.vue?e3ae","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue?0ba1","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue?ef5d","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue?4b3c","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue?84f0","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportButton.vue?af3e","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportDialog.vue?d2c3","webpack://cloudctrl/./src/components/Domain.Reports/PostReportButton.vue?ea5a","webpack://cloudctrl/./src/components/Domain.Reports/PutReportButton.vue?bfe1","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue?6d89","webpack://cloudctrl/./src/components/Domain.Reports/ReportMenu.vue?d851","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue?c0ae","webpack://cloudctrl/./src/components/Domain.Services/PatchServiceButton.vue?400f","webpack://cloudctrl/./src/components/Domain.Services/ServiceManageMenu.vue?6a3c","webpack://cloudctrl/./src/components/Domain.Services/ServiceMetadataChips.vue?8516","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue?d9b8","webpack://cloudctrl/./src/components/Domain.SpendLimits/SpendLimitsTable.vue?b1de","webpack://cloudctrl/./src/components/Domain.Subscriptions/PatchSubscriptionButton.vue?da32","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionManageMenu.vue?957a","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue?f8cd","webpack://cloudctrl/./src/components/Domain.Tags/PatchTagKeyValueButton.vue?a478","webpack://cloudctrl/./src/components/Domain.Tags/TagForm.vue?2260","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyAutocomplete.vue?67c4","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyValueManageMenu.vue?bdb0","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue?5c3b","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue?a82b","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue?252d","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue?9aa6","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue?8679","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue?cf84","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue?eb59","webpack://cloudctrl/./src/components/Domain.Tags/TagValueAutocomplete.vue?8445","webpack://cloudctrl/./src/components/Domain.Tenants/ChooseTenantCard.vue?c004","webpack://cloudctrl/./src/components/Domain.Tenants/CreateTenantDialog.vue?e7a8","webpack://cloudctrl/./src/components/Domain.Tenants/DeleteTenantButton.vue?6a17","webpack://cloudctrl/./src/components/Domain.Tenants/PostTenantButton.vue?6644","webpack://cloudctrl/./src/components/Domain.Tenants/PutTenantButton.vue?c6fc","webpack://cloudctrl/./src/components/Domain.Tenants/SetTenantCard.vue?3b38","webpack://cloudctrl/./src/components/Domain.Tenants/TenantRadioGroup.vue?c7e9","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue?497a","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeSelect.vue?c0cd","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue?510d","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue?f7a8","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue?6059","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue?4a76","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonsTable.vue?2d63","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue?e094","webpack://cloudctrl/./src/components/Domain.VirtualTags/VirtualTagTable.vue?541d","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookButton.vue?554b","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue?a09b","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookButton.vue?a64b","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue?754a","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue?58ec","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue?de66","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue?235f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue?305a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue?23bd","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue?1713","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue?4fb5","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue?8425","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue?9055","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue?e477","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue?029c","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue?701a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue?5500","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue?4aab","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue?2823","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue?f9bc","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue?4243","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CredentialStatusIcon.vue?d4bf","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue?062a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue?9ab9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue?b786","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue?0722","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue?1e68","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue?de81","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue?747a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue?d46e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue?beaf","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue?b6d5","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PostCloudAccountButton.vue?7a3e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PutCredentialButton.vue?f4c7","webpack://cloudctrl/./src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue?d089","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue?723b","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue?4328","webpack://cloudctrl/./src/components/Settings.Users/SetUserCard.vue?416a","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupPermissionsCard.vue?1bbb","webpack://cloudctrl/./src/components/View.CustomersManage/AddCustomerButton.vue?37c4","webpack://cloudctrl/./src/components/View.Nav/NavMenuList.vue?9656","webpack://cloudctrl/./src/components/View.Nav/NavTenantMenuList.vue?0aef","webpack://cloudctrl/./src/components/View.Nav/NavUserMenuList.vue?06a0","webpack://cloudctrl/./src/components/View.Recommendations/PutRecommendationSettingsButton.vue?b81d","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationNotAvailableCard.vue?1796","webpack://cloudctrl/./src/components/View.Recommendations/SetRecommendationSettingsCard.vue?0a3d","webpack://cloudctrl/./src/views/Auth/Choose.vue?7dad","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue?1af0","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue?9d85","webpack://cloudctrl/./src/views/Budgets/Budgets.vue?05b6","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue?9749","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue?e609","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue?c83d","webpack://cloudctrl/./src/views/CopyCloudAccount/ChooseTenant.vue?337e","webpack://cloudctrl/./src/views/CopyCloudAccount/Finish.vue?1402","webpack://cloudctrl/./src/views/CopyCloudAccount/Index.vue?7c0d","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue?dfaa","webpack://cloudctrl/./src/views/CopyCloudAccount/Tags.vue?d009","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue?aa00","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue?c570","webpack://cloudctrl/./src/views/CustomViews/Overview.vue?632a","webpack://cloudctrl/./src/views/CustomersManage/CreateCustomerDialog.vue?1a55","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage.vue?772f","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue?1a98","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Users.vue?9cb2","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue?e6a7","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Copies.vue?4814","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Dialog.vue?ba28","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue?1c79","webpack://cloudctrl/./src/views/Dialog.CloudAccount/VirtualTags.vue?4fce","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue?9cfb","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue?af02","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue?cb13","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue?4fb2","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue?5ffa","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue?3c2e","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue?9c7e","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue?f723","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue?3323","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue?169e","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue?0660","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue?2723","webpack://cloudctrl/./src/views/Dialog.Reservation/Dialog.vue?dd79","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue?7f86","webpack://cloudctrl/./src/views/Dialog.Service/Dialog.vue?c4ef","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue?1357","webpack://cloudctrl/./src/views/Dialog.Service/RecordTags.vue?bda1","webpack://cloudctrl/./src/views/Dialog.Service/VirtualTags.vue?32aa","webpack://cloudctrl/./src/views/Dialog.Subscription/Dialog.vue?5588","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue?e4ce","webpack://cloudctrl/./src/views/Dialog.Subscription/VirtualTags.vue?dcf4","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue?9d5b","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue?4aef","webpack://cloudctrl/./src/views/FinanceDashboard.vue?3459","webpack://cloudctrl/./src/views/GettingStarted.vue?8016","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue?b6b9","webpack://cloudctrl/./src/views/KubernetesDashboard.vue?6088","webpack://cloudctrl/./src/views/MainView.vue?8a21","webpack://cloudctrl/./src/views/NotFound.vue?f77b","webpack://cloudctrl/./src/views/Recommendations.vue?e553","webpack://cloudctrl/./src/views/Reports/CustomReport.vue?5928","webpack://cloudctrl/./src/views/Reports/CustomReports.vue?0826","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue?9b3a","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue?4bf2","webpack://cloudctrl/./src/views/Reports/TagOverview.vue?c9f7","webpack://cloudctrl/./src/views/ReservationsDashboard.vue?2d60","webpack://cloudctrl/./src/views/ResourceExplorer/Index.vue?e877","webpack://cloudctrl/./src/views/SelfService/CreateTenant.vue?1b99","webpack://cloudctrl/./src/views/Settings/AlibabaView.vue?3ad4","webpack://cloudctrl/./src/views/Settings/AmazonView.vue?e3f6","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue?2731","webpack://cloudctrl/./src/views/Settings/AuditView.vue?37ae","webpack://cloudctrl/./src/views/Settings/AzureView.vue?10a5","webpack://cloudctrl/./src/views/Settings/BillingDetailsView.vue?63e6","webpack://cloudctrl/./src/views/Settings/CustomView.vue?c8ed","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue?e936","webpack://cloudctrl/./src/views/Settings/GeneralView.vue?831f","webpack://cloudctrl/./src/views/Settings/GoogleView.vue?396d","webpack://cloudctrl/./src/views/Settings/GroupsView.vue?551b","webpack://cloudctrl/./src/views/Settings/IndexView.vue?0f23","webpack://cloudctrl/./src/views/Settings/OracleView.vue?15f2","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue?491d","webpack://cloudctrl/./src/views/Settings/UsersView.vue?54cb","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue?a711","webpack://cloudctrl/./src/views/TrendsDashboard.vue?7d18","webpack://cloudctrl/./src/views/Watchdog/Index.vue?d612","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue?444b","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue?e67a","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue?82d3","webpack://cloudctrl/./src/components/Common/HttpDeleteButton.vue","webpack://cloudctrl/src/components/Common/HttpDeleteButton.vue","webpack://cloudctrl/./src/components/Common/HttpDeleteButton.vue?90af","webpack://cloudctrl/./src/components/Common/HttpDeleteButton.vue?6af0","webpack://cloudctrl/./src/components/Common/HttpPostButton.vue","webpack://cloudctrl/src/components/Common/HttpPostButton.vue","webpack://cloudctrl/./src/components/Common/HttpPostButton.vue?9161","webpack://cloudctrl/./src/components/Common/HttpPostButton.vue?3f69","webpack://cloudctrl/./src/components/Common/Toast.vue","webpack://cloudctrl/./src/components/Common/Toast.vue?2ba7","webpack://cloudctrl/./src/components/Common/Toast.vue?8a6e","webpack://cloudctrl/./src/components/Common/Toast.vue?45b6","webpack://cloudctrl/./src/components/Domain.Actions/ActionScriptInput.vue","webpack://cloudctrl/./src/components/Common/MonacoEditor.vue","webpack://cloudctrl/./src/components/Common/MonacoEditor.vue?e702","webpack://cloudctrl/./src/components/Common/MonacoEditor.vue?5a78","webpack://cloudctrl/./src/components/Common/MonacoEditor.vue?c5d8","webpack://cloudctrl/./src/components/Domain.Actions/ActionScriptInput.vue?ad98","webpack://cloudctrl/./src/components/Domain.Actions/ActionScriptInput.vue?9c99","webpack://cloudctrl/./src/components/Domain.Actions/ActionScriptInput.vue?fc19","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue?9886","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue?6fac","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue?b3f3","webpack://cloudctrl/./src/components/Domain.Actions/SetActionScriptCard.vue?e55c","webpack://cloudctrl/./src/lib/ApiV2.ts","webpack://cloudctrl/./src/lib/Auth.ts","webpack://cloudctrl/./src/lib/Config.ts","webpack://cloudctrl/./src/lib/EventBus.ts","webpack://cloudctrl/./src/App.vue","webpack://cloudctrl/src/App.vue","webpack://cloudctrl/./src/App.vue?ddb7","webpack://cloudctrl/./src/App.vue?0e40","webpack://cloudctrl/./src/plugins/vuetify.ts","webpack://cloudctrl/./src/plugins/highcharts.proj4.js","webpack://cloudctrl/./src/plugins/highcharts.custom.world.js","webpack://cloudctrl/./src/plugins/highcharts.ts","webpack://cloudctrl/./src/lib/Currencies.ts","webpack://cloudctrl/./src/plugins/currency.ts","webpack://cloudctrl/./src/plugins/dateFormatting.ts","webpack://cloudctrl/./src/components/Common/AppLogoImage.vue","webpack://cloudctrl/src/components/Common/AppLogoImage.vue","webpack://cloudctrl/./src/components/Common/AppLogoImage.vue?dade","webpack://cloudctrl/./src/components/Common/AppLogoImage.vue?c70a","webpack://cloudctrl/./src/components/Common/BackButton.vue","webpack://cloudctrl/src/components/Common/BackButton.vue","webpack://cloudctrl/./src/components/Common/BackButton.vue?f342","webpack://cloudctrl/./src/components/Common/BackButton.vue?efa9","webpack://cloudctrl/./src/components/Common/ContentCard.vue","webpack://cloudctrl/./src/components/Common/ContentCardBase.vue","webpack://cloudctrl/src/components/Common/ContentCardBase.vue","webpack://cloudctrl/./src/components/Common/ContentCardBase.vue?b989","webpack://cloudctrl/./src/components/Common/ContentCardBase.vue?71cd","webpack://cloudctrl/src/components/Common/ContentCard.vue","webpack://cloudctrl/./src/components/Common/ContentCard.vue?1d4b","webpack://cloudctrl/./src/components/Common/ContentCard.vue?d07c","webpack://cloudctrl/./src/components/Common/ChartCard.vue","webpack://cloudctrl/src/components/Common/ChartCard.vue","webpack://cloudctrl/./src/components/Common/ChartCard.vue?fcae","webpack://cloudctrl/./src/components/Common/ChartCard.vue?d547","webpack://cloudctrl/./src/components/Common/DeleteEntityDialog.vue","webpack://cloudctrl/./src/components/Common/DeleteEntityCard.vue","webpack://cloudctrl/src/components/Common/DeleteEntityCard.vue","webpack://cloudctrl/./src/components/Common/DeleteEntityCard.vue?38cb","webpack://cloudctrl/./src/components/Common/DeleteEntityCard.vue?d8ae","webpack://cloudctrl/./src/components/Common/DeleteEntityCard.vue?9e5f","webpack://cloudctrl/./src/components/Common/DeleteEntityButton.vue","webpack://cloudctrl/src/components/Common/DeleteEntityButton.vue","webpack://cloudctrl/./src/components/Common/DeleteEntityButton.vue?4837","webpack://cloudctrl/./src/components/Common/DeleteEntityButton.vue?14ec","webpack://cloudctrl/src/components/Common/DeleteEntityDialog.vue","webpack://cloudctrl/./src/components/Common/DeleteEntityDialog.vue?b76e","webpack://cloudctrl/./src/components/Common/DeleteEntityDialog.vue?e57d","webpack://cloudctrl/./src/components/Common/DeleteEntityDialog.vue?d693","webpack://cloudctrl/./src/models/ISpendParameters.ts","webpack://cloudctrl/./src/models/Granularity.ts","webpack://cloudctrl/./src/components/Common/EmptyState.vue","webpack://cloudctrl/./src/components/Common/EmptyState.vue?5628","webpack://cloudctrl/./src/components/Common/EmptyState.vue?098d","webpack://cloudctrl/./src/components/Common/EmptyState.vue?ad2c","webpack://cloudctrl/./src/components/Common/FormCard.vue","webpack://cloudctrl/./src/components/Common/FormCardActions.vue","webpack://cloudctrl/./src/components/Common/FormCardActions.vue?6c2a","webpack://cloudctrl/./src/components/Common/FormCardTitle.vue","webpack://cloudctrl/src/components/Common/FormCardTitle.vue","webpack://cloudctrl/./src/components/Common/FormCardTitle.vue?1644","webpack://cloudctrl/./src/components/Common/FormCardTitle.vue?dea3","webpack://cloudctrl/./src/lib/UniqueIdentifier.ts","webpack://cloudctrl/src/components/Common/FormCard.vue","webpack://cloudctrl/./src/components/Common/FormCard.vue?1f16","webpack://cloudctrl/./src/components/Common/FormCard.vue?3448","webpack://cloudctrl/./src/components/Common/FormDialog.vue","webpack://cloudctrl/src/components/Common/FormDialog.vue","webpack://cloudctrl/./src/components/Common/FormDialog.vue?10ff","webpack://cloudctrl/./src/components/Common/FormDialog.vue?8a20","webpack://cloudctrl/./src/components/Common/PageHeader.vue","webpack://cloudctrl/src/components/Common/PageHeader.vue","webpack://cloudctrl/./src/components/Common/PageHeader.vue?6ca1","webpack://cloudctrl/./src/components/Common/PageHeader.vue?066d","webpack://cloudctrl/./src/components/Common/HttpPatchButton.vue","webpack://cloudctrl/src/components/Common/HttpPatchButton.vue","webpack://cloudctrl/./src/components/Common/HttpPatchButton.vue?5ed0","webpack://cloudctrl/./src/components/Common/HttpPatchButton.vue?4f8e","webpack://cloudctrl/./src/components/Common/HttpPutButton.vue","webpack://cloudctrl/src/components/Common/HttpPutButton.vue","webpack://cloudctrl/./src/components/Common/HttpPutButton.vue?4ec7","webpack://cloudctrl/./src/components/Common/HttpPutButton.vue?dfa7","webpack://cloudctrl/./src/components/Common/FigureCard.vue","webpack://cloudctrl/src/components/Common/FigureCard.vue","webpack://cloudctrl/./src/components/Common/FigureCard.vue?1f57","webpack://cloudctrl/./src/components/Common/FigureCard.vue?634e","webpack://cloudctrl/./src/components/Common/WidgetGrid.vue","webpack://cloudctrl/./src/components/Common/WidgetGrid.vue?2098","webpack://cloudctrl/./src/components/Common/TitleSheet.vue","webpack://cloudctrl/src/components/Common/TitleSheet.vue","webpack://cloudctrl/./src/components/Common/TitleSheet.vue?9d36","webpack://cloudctrl/./src/components/Common/TitleSheet.vue?1e20","webpack://cloudctrl/./src/components/Common/TitleSheets.vue","webpack://cloudctrl/src/components/Common/TitleSheets.vue","webpack://cloudctrl/./src/components/Common/TitleSheets.vue?0a7c","webpack://cloudctrl/./src/components/Common/TitleSheets.vue?d843","webpack://cloudctrl/./src/components/Common/ComparisonIcon.vue","webpack://cloudctrl/src/components/Common/ComparisonIcon.vue","webpack://cloudctrl/./src/components/Common/ComparisonIcon.vue?8d5c","webpack://cloudctrl/./src/components/Common/ComparisonIcon.vue?5acd","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue","webpack://cloudctrl/./src/models/CloudProviderType.ts","webpack://cloudctrl/./src/models/EntityType.ts","webpack://cloudctrl/./src/models/CloudAccountType.ts","webpack://cloudctrl/./src/models/CloudCredentialType.ts","webpack://cloudctrl/./src/models/RawUsageFields.ts","webpack://cloudctrl/./src/models/IBudgetResult.ts","webpack://cloudctrl/./src/models/ISpendUsageTable.ts","webpack://cloudctrl/./src/models/IPolicyModel.ts","webpack://cloudctrl/./src/lib/moment.ts","webpack://cloudctrl/./src/lib/DateKey.ts","webpack://cloudctrl/./src/lib/index.ts","webpack://cloudctrl/./src/models/functions.ts","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewCardDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue?ca94","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue?c6fb","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue?d12a","webpack://cloudctrl/./src/components/Domain.CustomViews/SetCustomViewCard.vue?e699","webpack://cloudctrl/src/components/Domain.CustomViews/CustomViewCardDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewCardDialog.vue?2d20","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewCardDialog.vue?49fa","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewButton.vue","webpack://cloudctrl/src/components/Domain.CustomViews/PostCustomViewButton.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewButton.vue?eeb7","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewButton.vue?b8ed","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewButton.vue?0c11","webpack://cloudctrl/src/components/Domain.CustomViews/PostCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewDialog.vue?f804","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewDialog.vue?549e","webpack://cloudctrl/./src/components/Domain.CustomViews/PostCustomViewDialog.vue?2470","webpack://cloudctrl/./src/lib/Uint.ts","webpack://cloudctrl/./src/lib/Api.ts","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue?dd62","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue?38f0","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue?5ad7","webpack://cloudctrl/./src/components/Common/EntitySearchAutocomplete.vue?6673","webpack://cloudctrl/./src/components/Common/EntityTypeIcon.vue","webpack://cloudctrl/src/components/Common/EntityTypeIcon.vue","webpack://cloudctrl/./src/components/Common/EntityTypeIcon.vue?2ff5","webpack://cloudctrl/./src/components/Common/EntityTypeIcon.vue?2ca8","webpack://cloudctrl/./src/components/Common/CloudProviderTypeIcon.vue","webpack://cloudctrl/src/components/Common/CloudProviderTypeIcon.vue","webpack://cloudctrl/./src/components/Common/CloudProviderTypeIcon.vue?c0fe","webpack://cloudctrl/./src/components/Common/CloudProviderTypeIcon.vue?9047","webpack://cloudctrl/./src/components/Common/TextDatePicker.vue","webpack://cloudctrl/src/components/Common/TextDatePicker.vue","webpack://cloudctrl/./src/components/Common/TextDatePicker.vue?e5f4","webpack://cloudctrl/./src/components/Common/TextDatePicker.vue?3a10","webpack://cloudctrl/./src/components/Common/ConditionalVMain.vue","webpack://cloudctrl/src/components/Common/ConditionalVMain.vue","webpack://cloudctrl/./src/components/Common/ConditionalVMain.vue?cf07","webpack://cloudctrl/./src/components/Common/ConditionalVMain.vue?4b87","webpack://cloudctrl/./src/plugins/common.ts","webpack://cloudctrl/./src/plugins/directives.ts","webpack://cloudctrl/./src/lib/FeatureNames.ts","webpack://cloudctrl/./src/views/MainView.vue","webpack://cloudctrl/./src/components/View.Nav/NavMenuList.vue","webpack://cloudctrl/./src/stores/tenant.ts","webpack://cloudctrl/src/components/View.Nav/NavMenuList.vue","webpack://cloudctrl/./src/components/View.Nav/NavMenuList.vue?d907","webpack://cloudctrl/./src/components/View.Nav/NavMenuList.vue?f2f5","webpack://cloudctrl/./src/components/View.Nav/NavMenuList.vue?5dbb","webpack://cloudctrl/./src/components/View.Nav/NavUserMenuList.vue","webpack://cloudctrl/./src/components/Account.ManageTenants/ProfileTenantsTable.vue","webpack://cloudctrl/./src/components/Account.ManageTenants/EmailSubscriptionCheckbox.vue","webpack://cloudctrl/src/components/Account.ManageTenants/EmailSubscriptionCheckbox.vue","webpack://cloudctrl/./src/components/Account.ManageTenants/EmailSubscriptionCheckbox.vue?1c10","webpack://cloudctrl/./src/components/Account.ManageTenants/EmailSubscriptionCheckbox.vue?5d1e","webpack://cloudctrl/src/components/Account.ManageTenants/ProfileTenantsTable.vue","webpack://cloudctrl/./src/components/Account.ManageTenants/ProfileTenantsTable.vue?8ead","webpack://cloudctrl/./src/components/Account.ManageTenants/ProfileTenantsTable.vue?3626","webpack://cloudctrl/./src/lib/MD5.js","webpack://cloudctrl/src/components/View.Nav/NavUserMenuList.vue","webpack://cloudctrl/./src/components/View.Nav/NavUserMenuList.vue?7185","webpack://cloudctrl/./src/components/View.Nav/NavUserMenuList.vue?042f","webpack://cloudctrl/./src/components/View.Nav/NavUserMenuList.vue?446e","webpack://cloudctrl/./src/components/View.Nav/NavTenantMenuList.vue","webpack://cloudctrl/./src/stores/account.ts","webpack://cloudctrl/src/components/View.Nav/NavTenantMenuList.vue","webpack://cloudctrl/./src/components/View.Nav/NavTenantMenuList.vue?4cd0","webpack://cloudctrl/./src/components/View.Nav/NavTenantMenuList.vue?ba75","webpack://cloudctrl/./src/components/View.Nav/NavTenantMenuList.vue?d2d2","webpack://cloudctrl/src/views/MainView.vue","webpack://cloudctrl/./src/views/MainView.vue?3935","webpack://cloudctrl/./src/views/MainView.vue?0dfb","webpack://cloudctrl/./src/views/MainView.vue?1c58","webpack://cloudctrl/./src/views/FinanceDashboard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CredentialStatusIcon.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/CredentialStatusIcon.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CredentialStatusIcon.vue?abcc","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CredentialStatusIcon.vue?5b7a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CredentialStatusIcon.vue?fb68","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageBarChart.vue","webpack://cloudctrl/./src/stores/wait.ts","webpack://cloudctrl/./src/stores/filters.ts","webpack://cloudctrl/./src/lib/CssVariables.ts","webpack://cloudctrl/./src/chartjs/legacy.ts","webpack://cloudctrl/./src/chartjs/dayJsAdapter.js","webpack://cloudctrl/./src/chartjs/legendPlugin.ts","webpack://cloudctrl/./src/chartjs/createUsageBarChart.ts","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageBarChart.vue?31ed","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageBarChart.vue?4856","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageBarChart.vue?7a52","webpack://cloudctrl/./src/components/Domain.Tenants/SetTenantCard.vue","webpack://cloudctrl/./src/components/Domain.Currencies/CurrencyComboBox.vue","webpack://cloudctrl/src/components/Domain.Currencies/CurrencyComboBox.vue","webpack://cloudctrl/./src/components/Domain.Currencies/CurrencyComboBox.vue?fdf9","webpack://cloudctrl/./src/components/Domain.Currencies/CurrencyComboBox.vue?8bb2","webpack://cloudctrl/./src/components/Domain.Currencies/CurrencyComboBox.vue?7abe","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyAutocomplete.vue","webpack://cloudctrl/src/components/Domain.Tags/TagKeyAutocomplete.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyAutocomplete.vue?3e46","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyAutocomplete.vue?5e6b","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyAutocomplete.vue?0f61","webpack://cloudctrl/src/components/Domain.Tenants/SetTenantCard.vue","webpack://cloudctrl/./src/components/Domain.Tenants/SetTenantCard.vue?2960","webpack://cloudctrl/./src/components/Domain.Tenants/SetTenantCard.vue?cafa","webpack://cloudctrl/./src/components/Domain.Tenants/SetTenantCard.vue?018c","webpack://cloudctrl/./src/components/Domain.Tenants/PutTenantButton.vue","webpack://cloudctrl/src/components/Domain.Tenants/PutTenantButton.vue","webpack://cloudctrl/./src/components/Domain.Tenants/PutTenantButton.vue?72ac","webpack://cloudctrl/./src/components/Domain.Tenants/PutTenantButton.vue?ce15","webpack://cloudctrl/./src/components/Domain.Tenants/PutTenantButton.vue?1397","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue?11ce","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue?56b2","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue?efae","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeButtonToggle.vue?eaf5","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue?35b2","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue?7871","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue?b547","webpack://cloudctrl/./src/components/Domain.Usage/SegregationButtonToggle.vue?77b8","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue?ad97","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue?a0fc","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue?2cd3","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue?8e98","webpack://cloudctrl/./src/enums/UnitOfDisplay.enum.ts","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue","webpack://cloudctrl/./src/plugins/agGrid.ts","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue?6891","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue?9ea8","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue?fa14","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTable.vue?31eb","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageTableFunctions.ts","webpack://cloudctrl/src/views/FinanceDashboard.vue","webpack://cloudctrl/./src/views/FinanceDashboard.vue?033c","webpack://cloudctrl/./src/views/FinanceDashboard.vue?9398","webpack://cloudctrl/./src/views/FinanceDashboard.vue?2647","webpack://cloudctrl/./src/views/TrendsDashboard.vue","webpack://cloudctrl/./src/components/Domain.Services/ServiceComparisonsTable.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonsTable.vue","webpack://cloudctrl/./src/lib/Downloader.ts","webpack://cloudctrl/src/components/Domain.Usage/UsageComparisonsTable.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonsTable.vue?d2c5","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonsTable.vue?7f9f","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonsTable.vue?63b5","webpack://cloudctrl/src/components/Domain.Services/ServiceComparisonsTable.vue","webpack://cloudctrl/./src/components/Domain.Services/ServiceComparisonsTable.vue?0450","webpack://cloudctrl/./src/components/Domain.Services/ServiceComparisonsTable.vue?86e4","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue","webpack://cloudctrl/src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue?5d5d","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue?0238","webpack://cloudctrl/./src/components/Domain.Usage/UsageComparisonOptionsToolbar.vue?c58d","webpack://cloudctrl/./src/components/Domain.Products/ProductComparisonsTable.vue","webpack://cloudctrl/src/components/Domain.Products/ProductComparisonsTable.vue","webpack://cloudctrl/./src/components/Domain.Products/ProductComparisonsTable.vue?291a","webpack://cloudctrl/./src/components/Domain.Products/ProductComparisonsTable.vue?325d","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionComparisonsTable.vue","webpack://cloudctrl/src/components/Domain.Subscriptions/SubscriptionComparisonsTable.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionComparisonsTable.vue?eed0","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionComparisonsTable.vue?98ee","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountComparisonsTable.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/CloudAccountComparisonsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountComparisonsTable.vue?fa53","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountComparisonsTable.vue?7604","webpack://cloudctrl/./src/components/Domain.Usage/TrendBarChart.vue","webpack://cloudctrl/./src/chartjs/createTrendsBarChart.ts","webpack://cloudctrl/./src/components/Domain.Usage/TrendBarChart.vue?2026","webpack://cloudctrl/./src/components/Domain.Usage/TrendBarChart.vue?1e31","webpack://cloudctrl/./src/components/Domain.Usage/TrendBarChart.vue?1ca3","webpack://cloudctrl/./src/views/TrendsDashboard.vue?e232","webpack://cloudctrl/./src/views/TrendsDashboard.vue?03da","webpack://cloudctrl/./src/views/TrendsDashboard.vue?94c4","webpack://cloudctrl/./src/views/TrendsDashboard.vue?7910","webpack://cloudctrl/./src/views/ReservationsDashboard.vue","webpack://cloudctrl/./src/views/ReservationsDashboard.vue?345b","webpack://cloudctrl/./src/views/ReservationsDashboard.vue?d426","webpack://cloudctrl/./src/views/ReservationsDashboard.vue?c86b","webpack://cloudctrl/./src/views/ReservationsDashboard.vue?060d","webpack://cloudctrl/./src/views/Recommendations.vue","webpack://cloudctrl/./src/lib/Recommendations.ts","webpack://cloudctrl/./src/components/View.Recommendations/ResultTable.vue","webpack://cloudctrl/src/components/View.Recommendations/ResultTable.vue","webpack://cloudctrl/./src/components/View.Recommendations/ResultTable.vue?a41c","webpack://cloudctrl/./src/components/View.Recommendations/ResultTable.vue?06a5","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationHeaderCard.vue","webpack://cloudctrl/src/components/View.Recommendations/RecommendationHeaderCard.vue","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationHeaderCard.vue?4b43","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationHeaderCard.vue?adfe","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationCurrentlyAvailableCard.vue","webpack://cloudctrl/src/components/View.Recommendations/RecommendationCurrentlyAvailableCard.vue","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationCurrentlyAvailableCard.vue?8935","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationCurrentlyAvailableCard.vue?9ef8","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationCredentialsRequiredCard.vue","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationCredentialsRequiredCard.vue?568a","webpack://cloudctrl/./src/components/View.Recommendations/EditRecommendationSettingDialog.vue","webpack://cloudctrl/./src/components/View.Recommendations/SetRecommendationSettingsCard.vue","webpack://cloudctrl/src/components/View.Recommendations/SetRecommendationSettingsCard.vue","webpack://cloudctrl/./src/components/View.Recommendations/SetRecommendationSettingsCard.vue?44e8","webpack://cloudctrl/./src/components/View.Recommendations/SetRecommendationSettingsCard.vue?4d2d","webpack://cloudctrl/./src/components/View.Recommendations/SetRecommendationSettingsCard.vue?32d1","webpack://cloudctrl/src/components/View.Recommendations/EditRecommendationSettingDialog.vue","webpack://cloudctrl/./src/components/View.Recommendations/EditRecommendationSettingDialog.vue?c09a","webpack://cloudctrl/./src/components/View.Recommendations/EditRecommendationSettingDialog.vue?ae90","webpack://cloudctrl/./src/components/View.Recommendations/PutRecommendationSettingsButton.vue","webpack://cloudctrl/src/components/View.Recommendations/PutRecommendationSettingsButton.vue","webpack://cloudctrl/./src/components/View.Recommendations/PutRecommendationSettingsButton.vue?dbdd","webpack://cloudctrl/./src/components/View.Recommendations/PutRecommendationSettingsButton.vue?6808","webpack://cloudctrl/./src/components/View.Recommendations/PutRecommendationSettingsButton.vue?ff4d","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationNotAvailableCard.vue","webpack://cloudctrl/src/components/View.Recommendations/RecommendationNotAvailableCard.vue","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationNotAvailableCard.vue?57f5","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationNotAvailableCard.vue?e2dc","webpack://cloudctrl/./src/components/View.Recommendations/RecommendationNotAvailableCard.vue?2cc2","webpack://cloudctrl/src/views/Recommendations.vue","webpack://cloudctrl/./src/views/Recommendations.vue?7119","webpack://cloudctrl/./src/views/Recommendations.vue?5beb","webpack://cloudctrl/./src/views/Recommendations.vue?310c","webpack://cloudctrl/./src/views/KubernetesDashboard.vue","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue?cc68","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue?37d5","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue?ac02","webpack://cloudctrl/./src/components/Domain.Kubernetes/NamespaceSpendTable.vue?d673","webpack://cloudctrl/./src/components/Domain.Kubernetes/ClusterSpendBarChart.vue","webpack://cloudctrl/./src/chartjs/createClusterSpendBarChart.ts","webpack://cloudctrl/./src/components/Domain.Kubernetes/ClusterSpendBarChart.vue?99ed","webpack://cloudctrl/./src/components/Domain.Kubernetes/ClusterSpendBarChart.vue?072a","webpack://cloudctrl/./src/components/Domain.Kubernetes/ClusterSpendBarChart.vue?3aa8","webpack://cloudctrl/./src/views/KubernetesDashboard.vue?bd57","webpack://cloudctrl/./src/views/KubernetesDashboard.vue?128f","webpack://cloudctrl/./src/views/KubernetesDashboard.vue?002e","webpack://cloudctrl/./src/views/KubernetesDashboard.vue?eaf6","webpack://cloudctrl/./src/views/Passthrough.vue","webpack://cloudctrl/./src/views/Passthrough.vue?8719","webpack://cloudctrl/./src/views/Reports/TagOverview.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagSpendAreaChart.vue","webpack://cloudctrl/./src/chartjs/createTagSpendAreaChart.ts","webpack://cloudctrl/./src/components/Domain.Tags/TagSpendAreaChart.vue?3b73","webpack://cloudctrl/./src/components/Domain.Tags/TagSpendAreaChart.vue?75dd","webpack://cloudctrl/./src/components/Domain.Tags/TagSpendAreaChart.vue?0018","webpack://cloudctrl/./src/components/Common/Banner.vue","webpack://cloudctrl/src/components/Common/Banner.vue","webpack://cloudctrl/./src/components/Common/Banner.vue?98c8","webpack://cloudctrl/./src/components/Common/Banner.vue?1fc5","webpack://cloudctrl/./src/views/Reports/TagOverview.vue?a1ee","webpack://cloudctrl/./src/views/Reports/TagOverview.vue?d307","webpack://cloudctrl/./src/views/Reports/TagOverview.vue?5bab","webpack://cloudctrl/./src/views/Reports/TagOverview.vue?4cc6","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerUsageBarChart.vue","webpack://cloudctrl/./src/chartjs/createCustomerUsageBarChart.ts","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerUsageBarChart.vue?7ee3","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerUsageBarChart.vue?4f2f","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerUsageBarChart.vue?f41f","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerTable.vue","webpack://cloudctrl/src/components/View.CustomerUsage/CustomerTable.vue","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerTable.vue?2223","webpack://cloudctrl/./src/components/View.CustomerUsage/CustomerTable.vue?167d","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue?55ce","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue?110d","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue?3005","webpack://cloudctrl/./src/views/Reports/CustomersUsage.vue?6c5c","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionUsageChartCard.vue","webpack://cloudctrl/./src/highcharts/MapFactory.ts","webpack://cloudctrl/./src/components/Domain.Regions/RegionUsageChartCard.vue?e943","webpack://cloudctrl/./src/components/Domain.Regions/RegionUsageChartCard.vue?7d56","webpack://cloudctrl/./src/components/Domain.Regions/RegionUsageChartCard.vue?47e1","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue?2d45","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue?6f6a","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue?2767","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTable.vue?4727","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue?dbc1","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue?ccf0","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue?d44e","webpack://cloudctrl/./src/components/Domain.Regions/RegionsTableCard.vue?455e","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue?5f49","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue?8b6e","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue?19d4","webpack://cloudctrl/./src/views/Reports/RegionOverview.vue?501d","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonBarChart.vue","webpack://cloudctrl/./src/chartjs/createEmissionBarChart.ts","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonBarChart.vue?b459","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonBarChart.vue?c88c","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonBarChart.vue?acdf","webpack://cloudctrl/./src/components/Domain.Tags/TagCarbonTable.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagCarbonTable.vue?7ac4","webpack://cloudctrl/./src/components/Domain.Tags/TagCarbonTable.vue?f3c3","webpack://cloudctrl/./src/components/Domain.Tags/TagCarbonTable.vue?aba0","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingFooter.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue?41c9","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue?efc5","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue?b016","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingCard.vue?2178","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue?3834","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue?c3a6","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue?48cd","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingMappingDialog.vue?ec1e","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingFooter.vue?127f","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingFooter.vue?e9d8","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonMissingFooter.vue?cbf5","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue?9767","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue?79f0","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue?bb5b","webpack://cloudctrl/./src/views/CarbonFootprint/Overview.vue?b046","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue?3c14","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue?98e8","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue?22da","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonTable.vue?cb41","webpack://cloudctrl/./src/databases/KeyedBlobsDb.ts","webpack://cloudctrl/./src/lib/UserPreferences.ts","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue?242d","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue?b651","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue?7a0b","webpack://cloudctrl/./src/views/CarbonFootprint/Explorer.vue?c27f","webpack://cloudctrl/./src/components/Domain.Regions/RegionCarbonChartCard.vue?f9e0","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionCarbonChartCard.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionCarbonChartCard.vue?8967","webpack://cloudctrl/./src/components/Domain.Regions/RegionCarbonChartCard.vue?4c3f","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue?b747","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue?7d3a","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue?81c8","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTable.vue?0ba2","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue?788e","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue?c186","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue?2742","webpack://cloudctrl/./src/components/Domain.Regions/RegionsCarbonTableCard.vue?aa41","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue?805d","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue?f8a5","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue?3a4d","webpack://cloudctrl/./src/views/CarbonFootprint/Map.vue?74c2","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue","webpack://cloudctrl/./src/views/CustomersManage/CreateCustomerDialog.vue","webpack://cloudctrl/./src/components/View.CustomersManage/AddCustomerButton.vue","webpack://cloudctrl/src/components/View.CustomersManage/AddCustomerButton.vue","webpack://cloudctrl/./src/components/View.CustomersManage/AddCustomerButton.vue?e561","webpack://cloudctrl/./src/components/View.CustomersManage/AddCustomerButton.vue?3644","webpack://cloudctrl/./src/components/View.CustomersManage/AddCustomerButton.vue?0341","webpack://cloudctrl/src/views/CustomersManage/CreateCustomerDialog.vue","webpack://cloudctrl/./src/views/CustomersManage/CreateCustomerDialog.vue?da01","webpack://cloudctrl/./src/views/CustomersManage/CreateCustomerDialog.vue?005e","webpack://cloudctrl/./src/views/CustomersManage/CreateCustomerDialog.vue?e782","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue?d213","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue?c1a0","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue?d897","webpack://cloudctrl/./src/views/CustomersManage/CustomersManage.vue?40c5","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage.vue","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Users.vue","webpack://cloudctrl/./src/components/Settings.Users/SetUserCard.vue","webpack://cloudctrl/src/components/Settings.Users/SetUserCard.vue","webpack://cloudctrl/./src/components/Settings.Users/SetUserCard.vue?bf14","webpack://cloudctrl/./src/components/Settings.Users/SetUserCard.vue?453a","webpack://cloudctrl/./src/components/Settings.Users/SetUserCard.vue?0e8f","webpack://cloudctrl/./src/components/Settings.Users/UsersTable.vue","webpack://cloudctrl/./src/components/Settings.Users/UsersTable.vue?188d","webpack://cloudctrl/./src/components/Settings.Users/UsersTable.vue?6406","webpack://cloudctrl/./src/components/Settings.Users/UsersTable.vue?cf7b","webpack://cloudctrl/./src/components/Settings.Users/AddUserButton.vue","webpack://cloudctrl/src/components/Settings.Users/AddUserButton.vue","webpack://cloudctrl/./src/components/Settings.Users/AddUserButton.vue?cca6","webpack://cloudctrl/./src/components/Settings.Users/AddUserButton.vue?e619","webpack://cloudctrl/./src/components/Settings.Users/UpdateUserButton.vue","webpack://cloudctrl/src/components/Settings.Users/UpdateUserButton.vue","webpack://cloudctrl/./src/components/Settings.Users/UpdateUserButton.vue?aa5b","webpack://cloudctrl/./src/components/Settings.Users/UpdateUserButton.vue?8fda","webpack://cloudctrl/./src/components/Settings.Users/DeleteUserButton.vue","webpack://cloudctrl/src/components/Settings.Users/DeleteUserButton.vue","webpack://cloudctrl/./src/components/Settings.Users/DeleteUserButton.vue?ed80","webpack://cloudctrl/./src/components/Settings.Users/DeleteUserButton.vue?ace9","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupPermissionsCard.vue","webpack://cloudctrl/src/components/Settings.Users/SetUserGroupPermissionsCard.vue","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupPermissionsCard.vue?1230","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupPermissionsCard.vue?a7fe","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupPermissionsCard.vue?3daf","webpack://cloudctrl/src/views/CustomersManage/CustomerManage/Users.vue","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Users.vue?417e","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Users.vue?cb28","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Users.vue?bb2c","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue?97e9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue?d646","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue?c9d2","webpack://cloudctrl/./src/stores/models/TaxonomyType.ts","webpack://cloudctrl/./src/stores/cloudAccountNavigation.ts","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue?e2dd","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue?74c3","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue?e56c","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/SharedData.vue?0fbd","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Features.vue","webpack://cloudctrl/src/views/CustomersManage/CustomerManage/Features.vue","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Features.vue?e82e","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage/Features.vue?5173","webpack://cloudctrl/src/views/CustomersManage/CustomerManage.vue","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage.vue?31cb","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage.vue?008d","webpack://cloudctrl/./src/views/CustomersManage/CustomerManage.vue?a9cc","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue?121b","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue?4c13","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue?45e4","webpack://cloudctrl/./src/views/AzureEmissions/Dashboard.vue?553a","webpack://cloudctrl/./src/views/Settings/IndexView.vue","webpack://cloudctrl/src/views/Settings/IndexView.vue","webpack://cloudctrl/./src/views/Settings/IndexView.vue?79d1","webpack://cloudctrl/./src/views/Settings/IndexView.vue?e390","webpack://cloudctrl/./src/views/Settings/IndexView.vue?8f21","webpack://cloudctrl/./src/views/Settings/AmazonView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3BucketAutocomplete.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/S3BucketAutocomplete.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3BucketAutocomplete.vue?d3e3","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3BucketAutocomplete.vue?6b76","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue?519d","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue?43c3","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/S3RegionAutocomplete.vue?fb9e","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue?9c94","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue?7997","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsCard.vue?d102","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsDialog.vue?3d98","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonWSCredentialsDialog.vue?e2b3","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PostCloudAccountButton.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/PostCloudAccountButton.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PostCloudAccountButton.vue?3bff","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PostCloudAccountButton.vue?e834","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PostCloudAccountButton.vue?d397","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue?c026","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue?88c9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue?2837","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue?7a7e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue?47ba","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsCard.vue?3fdb","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsDialog.vue?ad8a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/SetAmazonAssumeRoleCredentialsDialog.vue?ffc4","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue?20df","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue?de3a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonWSCredentialDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PutCredentialButton.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/PutCredentialButton.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PutCredentialButton.vue?b0c1","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PutCredentialButton.vue?b579","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PutCredentialButton.vue?2ce8","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/UpdateAmazonWSCredentialDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonWSCredentialDialog.vue?8e70","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonWSCredentialDialog.vue?ad4e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue?d463","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue?fcf2","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue?172a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue?2f4f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountButton.vue?5955","webpack://cloudctrl/src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue?86fc","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue?35f2","webpack://cloudctrl/./src/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue?8700","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue","webpack://cloudctrl/./src/components/Common/UpdateEntityNameCard.vue","webpack://cloudctrl/src/components/Common/UpdateEntityNameCard.vue","webpack://cloudctrl/./src/components/Common/UpdateEntityNameCard.vue?7a3f","webpack://cloudctrl/./src/components/Common/UpdateEntityNameCard.vue?498f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue?88b8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue?1941","webpack://cloudctrl/./src/components/Settings.CloudAccounts/PatchCloudAccountButton.vue?8b84","webpack://cloudctrl/src/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue?cb4f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue?1477","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue?090e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue?b275","webpack://cloudctrl/./src/components/Settings.CloudAccounts/SetCloudAccountCurrenciesCard.vue?21d4","webpack://cloudctrl/src/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue?481a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue?8047","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue?0808","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue?744f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue?fcc3","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue?9470","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue","webpack://cloudctrl/./src/components/Common/PrettyListItemMenu.vue","webpack://cloudctrl/./src/components/Common/PrettyListItem.vue","webpack://cloudctrl/src/components/Common/PrettyListItem.vue","webpack://cloudctrl/./src/components/Common/PrettyListItem.vue?6693","webpack://cloudctrl/./src/components/Common/PrettyListItem.vue?c8dc","webpack://cloudctrl/./src/components/Common/PrettyListItemMenu.vue?f8f4","webpack://cloudctrl/./src/components/Common/PrettyListItemMenu.vue?384d","webpack://cloudctrl/./src/components/Common/PrettyListItemMenu.vue?7674","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue?0009","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue?d5b6","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue?1981","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue?13b2","webpack://cloudctrl/./src/views/Settings/AmazonView.vue?44c1","webpack://cloudctrl/./src/views/Settings/AmazonView.vue?b1d2","webpack://cloudctrl/./src/views/Settings/AmazonView.vue?dfe1","webpack://cloudctrl/./src/views/Settings/AmazonView.vue?27df","webpack://cloudctrl/./src/views/Settings/AzureView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue?c8ca","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue?e9dc","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue?4f04","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue?fb58","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue?af70","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue?98b8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsCard.vue?67f0","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsDialog.vue?e3a9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureARMCredentialsDialog.vue?cc06","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue?e201","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue?0092","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCmeCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue?f0da","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue?4419","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsCard.vue?95c9","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsDialog.vue?14c5","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureCmeCredentialsDialog.vue?8724","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/CreateAzureCmeCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCmeCloudAccountDialog.vue?db2e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureCmeCloudAccountDialog.vue?688d","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue","webpack://cloudctrl/./src/lib/JwtParser.ts","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue?a22c","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue?cd21","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsCard.vue?a4c4","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsDialog.vue?1e34","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/SetAzureEaCredentialsDialog.vue?a4a7","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue?44ec","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue?e911","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue?daf4","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue?9088","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsCard.vue?8890","webpack://cloudctrl/src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsDialog.vue?b1b8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/SetRhipeCredentialsDialog.vue?634e","webpack://cloudctrl/src/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue?b4f1","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue?f9a0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureARMCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/UpdateAzureARMCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureARMCredentialsDialog.vue?21c8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureARMCredentialsDialog.vue?9490","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureCmeCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/UpdateAzureCmeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureCmeCredentialsDialog.vue?b080","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureCmeCredentialsDialog.vue?f973","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureEaCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/UpdateAzureEaCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureEaCredentialsDialog.vue?115f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/UpdateAzureEaCredentialsDialog.vue?a7a0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/UpdateRhipeCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Distributors/UpdateRhipeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/UpdateRhipeCredentialsDialog.vue?53a8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Distributors/UpdateRhipeCredentialsDialog.vue?08fa","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue?edd5","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue?315d","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue?46a9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue?87b4","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue?5c42","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue?ce52","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue?4cb0","webpack://cloudctrl/./src/views/Settings/AzureView.vue?dbf6","webpack://cloudctrl/./src/views/Settings/AzureView.vue?ad5a","webpack://cloudctrl/./src/views/Settings/AzureView.vue?9c16","webpack://cloudctrl/./src/views/Settings/AzureView.vue?7697","webpack://cloudctrl/./src/views/Settings/GoogleView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/CreateGoogleAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue?29ef","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue?d7ac","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue?cd26","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsCard.vue?be0f","webpack://cloudctrl/src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsDialog.vue?4d96","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/SetGoogleJsonCredentialsDialog.vue?ba8b","webpack://cloudctrl/src/components/Settings.CloudAccounts/Google/CreateGoogleAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/CreateGoogleAccountDialog.vue?f1d4","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/CreateGoogleAccountDialog.vue?ce96","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/UpdateGoogleJsonCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Google/UpdateGoogleJsonCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/UpdateGoogleJsonCredentialsDialog.vue?a585","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/UpdateGoogleJsonCredentialsDialog.vue?ddc6","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue?2c5f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue?6853","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Google/GoogleCloudAccountsTable.vue?aa30","webpack://cloudctrl/src/views/Settings/GoogleView.vue","webpack://cloudctrl/./src/views/Settings/GoogleView.vue?aaf4","webpack://cloudctrl/./src/views/Settings/GoogleView.vue?7cbf","webpack://cloudctrl/./src/views/Settings/GoogleView.vue?38d3","webpack://cloudctrl/./src/views/Settings/OracleView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue?8645","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue?f3fb","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue?b843","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsCard.vue?3e89","webpack://cloudctrl/src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsDialog.vue?20f2","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/SetOracleCredentialsDialog.vue?b791","webpack://cloudctrl/src/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue?108a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue?a973","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/UpdateOracleCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Oracle/UpdateOracleCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/UpdateOracleCredentialsDialog.vue?fc2f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/UpdateOracleCredentialsDialog.vue?191e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue?c45c","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue?9496","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue?5e3f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue?6e32","webpack://cloudctrl/./src/views/Settings/OracleView.vue?aaa6","webpack://cloudctrl/./src/views/Settings/OracleView.vue?28ac","webpack://cloudctrl/./src/views/Settings/OracleView.vue?758c","webpack://cloudctrl/./src/views/Settings/OracleView.vue?3cc1","webpack://cloudctrl/./src/views/Settings/AlibabaView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue?c3b0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue?9424","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue?5366","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaCloudAccountsTable.vue?c0b7","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/CreateAlibabaCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue?98d9","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue?789d","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue?50b0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue?bffe","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue?a196","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue?be3e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue?2ed5","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue?d896","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsDialog.vue?0f81","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsDialog.vue?cee0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsDialog.vue?f9ae","webpack://cloudctrl/src/components/Settings.CloudAccounts/Alibaba/CreateAlibabaCloudAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/CreateAlibabaCloudAccountDialog.vue?d974","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/CreateAlibabaCloudAccountDialog.vue?4194","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/UpdateAlibabaCredentialsDialog.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/Alibaba/UpdateAlibabaCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/UpdateAlibabaCredentialsDialog.vue?532b","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Alibaba/UpdateAlibabaCredentialsDialog.vue?1e78","webpack://cloudctrl/src/views/Settings/AlibabaView.vue","webpack://cloudctrl/./src/views/Settings/AlibabaView.vue?17c4","webpack://cloudctrl/./src/views/Settings/AlibabaView.vue?c57b","webpack://cloudctrl/./src/views/Settings/AlibabaView.vue?c807","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/CreateSnowflakeAccountDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue?e8fb","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue?5d4f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue?686f","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue?9a23","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue?83fc","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue?2ed0","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue?05e2","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/CreateSnowflakeAccountDialog.vue?224a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/CreateSnowflakeAccountDialog.vue?ebcd","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/CreateSnowflakeAccountDialog.vue?fc00","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/UpdateSnowflakeCredentialsDialog.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/UpdateSnowflakeCredentialsDialog.vue?0e70","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/UpdateSnowflakeCredentialsDialog.vue?98a2","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/UpdateSnowflakeCredentialsDialog.vue?4c8e","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue?9f38","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue?afd3","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue?0cd8","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue?1938","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue?b223","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue?0d20","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue?eef4","webpack://cloudctrl/./src/views/Settings/SnowflakeView.vue?3f9f","webpack://cloudctrl/./src/views/Settings/CustomView.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue?943a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue?019c","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue?8fdd","webpack://cloudctrl/./src/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue?8b33","webpack://cloudctrl/./src/views/Settings/CustomView.vue?308c","webpack://cloudctrl/./src/views/Settings/CustomView.vue?4390","webpack://cloudctrl/./src/views/Settings/CustomView.vue?ab2a","webpack://cloudctrl/./src/views/Settings/CustomView.vue?ee65","webpack://cloudctrl/./src/views/Settings/GroupsView.vue","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupCard.vue","webpack://cloudctrl/src/components/Settings.Users/SetUserGroupCard.vue","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupCard.vue?373a","webpack://cloudctrl/./src/components/Settings.Users/SetUserGroupCard.vue?f8d0","webpack://cloudctrl/./src/components/Common/ModalListInput.vue","webpack://cloudctrl/./src/components/Common/ModalListInput.vue?546d","webpack://cloudctrl/./src/components/Common/ModalListInput.vue?4a4f","webpack://cloudctrl/./src/components/Common/ModalListInput.vue?0426","webpack://cloudctrl/./src/views/Settings/GroupsView.vue?b0d8","webpack://cloudctrl/./src/views/Settings/GroupsView.vue?8e92","webpack://cloudctrl/./src/views/Settings/GroupsView.vue?18d0","webpack://cloudctrl/./src/views/Settings/GroupsView.vue?ee53","webpack://cloudctrl/./src/views/Settings/UsersView.vue","webpack://cloudctrl/src/views/Settings/UsersView.vue","webpack://cloudctrl/./src/views/Settings/UsersView.vue?2d45","webpack://cloudctrl/./src/views/Settings/UsersView.vue?c5e3","webpack://cloudctrl/./src/views/Settings/UsersView.vue?4f68","webpack://cloudctrl/./src/views/Settings/BillingDetailsView.vue","webpack://cloudctrl/./src/lib/BillingDetailsStatus.ts","webpack://cloudctrl/./src/components/Common/ConsumptionBar.vue","webpack://cloudctrl/./src/components/Common/ConsumptionBar.vue?89dc","webpack://cloudctrl/./src/components/Common/ConsumptionBar.vue?d7f7","webpack://cloudctrl/./src/components/Common/ConsumptionBar.vue?0d11","webpack://cloudctrl/./src/components/Account.SelfService/SelectPlanCard.vue","webpack://cloudctrl/src/components/Account.SelfService/SelectPlanCard.vue","webpack://cloudctrl/./src/components/Account.SelfService/SelectPlanCard.vue?b3c3","webpack://cloudctrl/./src/components/Account.SelfService/SelectPlanCard.vue?8b99","webpack://cloudctrl/src/views/Settings/BillingDetailsView.vue","webpack://cloudctrl/./src/views/Settings/BillingDetailsView.vue?5021","webpack://cloudctrl/./src/views/Settings/BillingDetailsView.vue?b727","webpack://cloudctrl/./src/views/Settings/BillingDetailsView.vue?969f","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue?46e6","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue?5684","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue?4f21","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyCard.vue?ef0f","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyButton.vue","webpack://cloudctrl/src/components/Account.ApiManagement/GenerateApiKeyButton.vue","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyButton.vue?5676","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyButton.vue?6417","webpack://cloudctrl/./src/components/Account.ApiManagement/GenerateApiKeyButton.vue?00ff","webpack://cloudctrl/./src/components/Account.ApiManagement/DeleteApiKeyButton.vue","webpack://cloudctrl/src/components/Account.ApiManagement/DeleteApiKeyButton.vue","webpack://cloudctrl/./src/components/Account.ApiManagement/DeleteApiKeyButton.vue?684e","webpack://cloudctrl/./src/components/Account.ApiManagement/DeleteApiKeyButton.vue?409e","webpack://cloudctrl/./src/components/Account.ApiManagement/DeleteApiKeyButton.vue?2d7f","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue?2cac","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue?fc84","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue?589e","webpack://cloudctrl/./src/views/Settings/ApiManagementView.vue?5718","webpack://cloudctrl/./src/views/Settings/GeneralView.vue","webpack://cloudctrl/./src/components/Domain.Tenants/DeleteTenantButton.vue","webpack://cloudctrl/src/components/Domain.Tenants/DeleteTenantButton.vue","webpack://cloudctrl/./src/components/Domain.Tenants/DeleteTenantButton.vue?6a25","webpack://cloudctrl/./src/components/Domain.Tenants/DeleteTenantButton.vue?4e58","webpack://cloudctrl/./src/components/Domain.Tenants/DeleteTenantButton.vue?fb81","webpack://cloudctrl/src/views/Settings/GeneralView.vue","webpack://cloudctrl/./src/views/Settings/GeneralView.vue?c829","webpack://cloudctrl/./src/views/Settings/GeneralView.vue?843b","webpack://cloudctrl/./src/views/Settings/GeneralView.vue?8442","webpack://cloudctrl/./src/views/Settings/FxRatesView.vue","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateDialog.vue","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateDialog.vue","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateCard.vue","webpack://cloudctrl/src/components/Domain.FxRates/SetFxRateCard.vue","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateCard.vue?c826","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateCard.vue?0a43","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateDialog.vue?a596","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateDialog.vue?5d54","webpack://cloudctrl/./src/components/Domain.FxRates/SetFxRateDialog.vue?17ab","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateButton.vue","webpack://cloudctrl/src/components/Domain.FxRates/CreateFxRateButton.vue","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateButton.vue?530c","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateButton.vue?ae52","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateButton.vue?1020","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateDialog.vue?3a41","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateDialog.vue?2647","webpack://cloudctrl/./src/components/Domain.FxRates/CreateFxRateDialog.vue?0156","webpack://cloudctrl/./src/components/Domain.FxRates/FxRateMenu.vue","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateDialog.vue","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateButton.vue","webpack://cloudctrl/src/components/Domain.FxRates/EditFxRateButton.vue","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateButton.vue?770f","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateButton.vue?fa8e","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateButton.vue?954d","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateDialog.vue?c71b","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateDialog.vue?4ada","webpack://cloudctrl/./src/components/Domain.FxRates/EditFxRateDialog.vue?fc95","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateDialog.vue","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateButton.vue","webpack://cloudctrl/src/components/Domain.FxRates/DeleteFxRateButton.vue","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateButton.vue?8d7d","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateButton.vue?d346","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateButton.vue?79ea","webpack://cloudctrl/src/components/Domain.FxRates/DeleteFxRateDialog.vue","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateDialog.vue?55ef","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateDialog.vue?64a4","webpack://cloudctrl/./src/components/Domain.FxRates/DeleteFxRateDialog.vue?4c79","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue?b7e7","webpack://cloudctrl/src/components/Domain.FxRates/FxRateMenu.vue","webpack://cloudctrl/./src/components/Domain.FxRates/FxRateMenu.vue?e1da","webpack://cloudctrl/./src/components/Domain.FxRates/FxRateMenu.vue?728d","webpack://cloudctrl/./src/views/Settings/FxRatesView.vue?a402","webpack://cloudctrl/./src/views/Settings/FxRatesView.vue?fbc4","webpack://cloudctrl/./src/views/Settings/FxRatesView.vue?e1c6","webpack://cloudctrl/./src/views/Settings/TagMappings.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue?b5a7","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue?ad4b","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionTypeSelect.vue?aacc","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue?595b","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue?e37b","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue?76ff","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionTypeSelect.vue?c645","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue?2912","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue?a448","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue?16a4","webpack://cloudctrl/./src/components/Domain.Usage/UsageFieldSelect.vue?8db5","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue?c69f","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue?9c07","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue?2c01","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionLeftInput.vue?c122","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue?faab","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue?a36a","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue?6cfc","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingConditionRightInput.vue?ecc5","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue?3fe3","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue?0164","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue?db4c","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionLeftInput.vue?7a5a","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue?0e8d","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue?7311","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue?3eed","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingActionRightInput.vue?8886","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue?12c0","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue?e677","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue?96af","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingFormCardContent.vue?8b20","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingHeaderToolbar.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingHeaderToolbar.vue?e9b2","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingHeaderToolbar.vue?91af","webpack://cloudctrl/./src/components/Domain.Tags/TagMappingHeaderToolbar.vue?7c7a","webpack://cloudctrl/./src/views/Settings/TagMappings.vue?00fc","webpack://cloudctrl/./src/views/Settings/TagMappings.vue?fa36","webpack://cloudctrl/./src/views/Settings/TagMappings.vue?fbaa","webpack://cloudctrl/./src/views/Settings/MailingLists.vue","webpack://cloudctrl/./src/views/Settings/MailingLists.vue?d615","webpack://cloudctrl/./src/views/Settings/MailingLists.vue?e1d2","webpack://cloudctrl/./src/views/Settings/MailingLists.vue?c68f","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/WebhookCardDialog.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/SetWebhookCard.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/SetWebhookCard.vue?88d8","webpack://cloudctrl/./src/components/Domain.Webhooks/SetWebhookCard.vue?52b5","webpack://cloudctrl/./src/components/Domain.Webhooks/SetWebhookCard.vue?7ea4","webpack://cloudctrl/./src/components/Domain.Webhooks/WebhookCardDialog.vue?928d","webpack://cloudctrl/./src/components/Domain.Webhooks/WebhookCardDialog.vue?e8e1","webpack://cloudctrl/./src/components/Domain.Webhooks/WebhookCardDialog.vue?0286","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookButton.vue","webpack://cloudctrl/src/components/Domain.Webhooks/CreateWebhookButton.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookButton.vue?3b83","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookButton.vue?affd","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookButton.vue?05bc","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue?7f3f","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue?3c36","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue?4842","webpack://cloudctrl/./src/components/Domain.Webhooks/CreateWebhookDialog.vue?6ffe","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookButton.vue","webpack://cloudctrl/src/components/Domain.Webhooks/EditWebhookButton.vue","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookButton.vue?90e9","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookButton.vue?6dc4","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookButton.vue?030e","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue?0139","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue?fc26","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue?5eb7","webpack://cloudctrl/./src/components/Domain.Webhooks/EditWebhookDialog.vue?c18a","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue?5571","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue?abfb","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue?63ff","webpack://cloudctrl/./src/views/Settings/WebhooksView.vue?4843","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue?aec8","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue?8838","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue?0c54","webpack://cloudctrl/./src/views/Settings/DimensionsView.vue?6335","webpack://cloudctrl/./src/views/Settings/AuditView.vue","webpack://cloudctrl/./src/views/Settings/AuditView.vue?3d69","webpack://cloudctrl/./src/views/Settings/AuditView.vue?784d","webpack://cloudctrl/./src/views/Settings/AuditView.vue?41b3","webpack://cloudctrl/./src/views/Settings/AuditView.vue?e680","webpack://cloudctrl/./src/views/Auth/Choose.vue","webpack://cloudctrl/./src/components/Domain.Tenants/ChooseTenantCard.vue","webpack://cloudctrl/./src/components/Domain.Tenants/TenantRadioGroup.vue","webpack://cloudctrl/./src/components/Domain.Tenants/CreateTenantDialog.vue","webpack://cloudctrl/./src/components/Domain.Tenants/PostTenantButton.vue","webpack://cloudctrl/src/components/Domain.Tenants/PostTenantButton.vue","webpack://cloudctrl/./src/components/Domain.Tenants/PostTenantButton.vue?1eee","webpack://cloudctrl/./src/components/Domain.Tenants/PostTenantButton.vue?d7bc","webpack://cloudctrl/./src/components/Domain.Tenants/PostTenantButton.vue?49b2","webpack://cloudctrl/src/components/Domain.Tenants/CreateTenantDialog.vue","webpack://cloudctrl/./src/components/Domain.Tenants/CreateTenantDialog.vue?34fd","webpack://cloudctrl/./src/components/Domain.Tenants/CreateTenantDialog.vue?08e6","webpack://cloudctrl/./src/components/Domain.Tenants/CreateTenantDialog.vue?a659","webpack://cloudctrl/src/components/Domain.Tenants/TenantRadioGroup.vue","webpack://cloudctrl/./src/components/Domain.Tenants/TenantRadioGroup.vue?5ebf","webpack://cloudctrl/./src/components/Domain.Tenants/TenantRadioGroup.vue?a1d4","webpack://cloudctrl/./src/components/Domain.Tenants/TenantRadioGroup.vue?0a3a","webpack://cloudctrl/src/components/Domain.Tenants/ChooseTenantCard.vue","webpack://cloudctrl/./src/components/Domain.Tenants/ChooseTenantCard.vue?2009","webpack://cloudctrl/./src/components/Domain.Tenants/ChooseTenantCard.vue?030a","webpack://cloudctrl/./src/components/Domain.Tenants/ChooseTenantCard.vue?626a","webpack://cloudctrl/src/views/Auth/Choose.vue","webpack://cloudctrl/./src/views/Auth/Choose.vue?e28a","webpack://cloudctrl/./src/views/Auth/Choose.vue?9535","webpack://cloudctrl/./src/views/Auth/Choose.vue?3d5f","webpack://cloudctrl/./src/views/SelfService/CreateTenant.vue","webpack://cloudctrl/./src/components/Account.SelfService/CreateTenantCard.vue","webpack://cloudctrl/src/components/Account.SelfService/CreateTenantCard.vue","webpack://cloudctrl/./src/components/Account.SelfService/CreateTenantCard.vue?9453","webpack://cloudctrl/./src/components/Account.SelfService/CreateTenantCard.vue?d195","webpack://cloudctrl/./src/components/Account.SelfService/CreateTenantCard.vue?a53e","webpack://cloudctrl/./src/components/Account.SelfService/PostCreateTenantButton.vue","webpack://cloudctrl/src/components/Account.SelfService/PostCreateTenantButton.vue","webpack://cloudctrl/./src/components/Account.SelfService/PostCreateTenantButton.vue?54a8","webpack://cloudctrl/./src/components/Account.SelfService/PostCreateTenantButton.vue?aa33","webpack://cloudctrl/./src/components/Account.SelfService/PostCreateTenantButton.vue?af10","webpack://cloudctrl/src/views/SelfService/CreateTenant.vue","webpack://cloudctrl/./src/views/SelfService/CreateTenant.vue?6ccb","webpack://cloudctrl/./src/views/SelfService/CreateTenant.vue?8425","webpack://cloudctrl/./src/views/SelfService/CreateTenant.vue?f008","webpack://cloudctrl/./src/views/SelfService/SelectPlan.vue","webpack://cloudctrl/src/views/SelfService/SelectPlan.vue","webpack://cloudctrl/./src/views/SelfService/SelectPlan.vue?3ffa","webpack://cloudctrl/./src/views/SelfService/SelectPlan.vue?0310","webpack://cloudctrl/./src/views/ResourceExplorer/Index.vue","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageUnitToggle.vue","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageUnitToggle.vue?d01c","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageUnitToggle.vue?849d","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageUnitToggle.vue?fbf4","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationsTimeline.vue","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationButton.vue","webpack://cloudctrl/src/components/Domain.Annotations/DeleteAnnotationButton.vue","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationButton.vue?1a5d","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationButton.vue?3703","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationButton.vue?45cf","webpack://cloudctrl/src/components/Domain.Annotations/DeleteAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationDialog.vue?f73a","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationDialog.vue?ebbf","webpack://cloudctrl/./src/components/Domain.Annotations/DeleteAnnotationDialog.vue?fb39","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationCard.vue","webpack://cloudctrl/src/components/Domain.Annotations/AnnotationCard.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationCard.vue?a147","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationCard.vue?3741","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationCard.vue?a45e","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationButton.vue","webpack://cloudctrl/src/components/Domain.Annotations/EditAnnotationButton.vue","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationButton.vue?37f3","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationButton.vue?357d","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationButton.vue?918e","webpack://cloudctrl/src/components/Domain.Annotations/EditAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationDialog.vue?3bde","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationDialog.vue?6ca4","webpack://cloudctrl/./src/components/Domain.Annotations/EditAnnotationDialog.vue?0d8f","webpack://cloudctrl/src/components/Domain.Annotations/AnnotationsTimeline.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationsTimeline.vue?66f2","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationsTimeline.vue?2a8b","webpack://cloudctrl/./src/components/Domain.Annotations/AnnotationsTimeline.vue?d559","webpack://cloudctrl/src/views/ResourceExplorer/Index.vue","webpack://cloudctrl/./src/views/ResourceExplorer/Index.vue?aa9d","webpack://cloudctrl/./src/views/ResourceExplorer/Index.vue?32d2","webpack://cloudctrl/./src/views/ResourceExplorer/Index.vue?ee00","webpack://cloudctrl/./src/views/Dialog.Service/Dialog.vue","webpack://cloudctrl/src/views/Dialog.Service/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Service/Dialog.vue?f889","webpack://cloudctrl/./src/views/Dialog.Service/Dialog.vue?acbf","webpack://cloudctrl/./src/views/Dialog.Service/Dialog.vue?f9aa","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue","webpack://cloudctrl/./src/components/Domain.Usage/CostSummaryWidget.vue","webpack://cloudctrl/src/components/Domain.Usage/CostSummaryWidget.vue","webpack://cloudctrl/./src/components/Domain.Usage/CostSummaryWidget.vue?b48f","webpack://cloudctrl/./src/components/Domain.Usage/CostSummaryWidget.vue?6018","webpack://cloudctrl/./src/components/Domain.Services/ServiceMetadataChips.vue","webpack://cloudctrl/src/components/Domain.Services/ServiceMetadataChips.vue","webpack://cloudctrl/./src/components/Domain.Services/ServiceMetadataChips.vue?639c","webpack://cloudctrl/./src/components/Domain.Services/ServiceMetadataChips.vue?3fe7","webpack://cloudctrl/./src/components/Domain.Services/ServiceMetadataChips.vue?7b25","webpack://cloudctrl/./src/components/Domain.Services/ServiceManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Services/EditServiceSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Common/UpdateEntitySpendLimitCard.vue","webpack://cloudctrl/src/components/Common/UpdateEntitySpendLimitCard.vue","webpack://cloudctrl/./src/components/Common/UpdateEntitySpendLimitCard.vue?fe63","webpack://cloudctrl/./src/components/Common/UpdateEntitySpendLimitCard.vue?55fa","webpack://cloudctrl/./src/components/Common/UpdateEntitySpendLimitCard.vue?5870","webpack://cloudctrl/./src/components/Domain.Services/PatchServiceButton.vue","webpack://cloudctrl/src/components/Domain.Services/PatchServiceButton.vue","webpack://cloudctrl/./src/components/Domain.Services/PatchServiceButton.vue?aa5e","webpack://cloudctrl/./src/components/Domain.Services/PatchServiceButton.vue?64a2","webpack://cloudctrl/./src/components/Domain.Services/PatchServiceButton.vue?3556","webpack://cloudctrl/src/components/Domain.Services/EditServiceSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Services/EditServiceSpendLimitDialog.vue?f7ab","webpack://cloudctrl/./src/components/Domain.Services/EditServiceSpendLimitDialog.vue?b1a7","webpack://cloudctrl/src/components/Domain.Services/ServiceManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Services/ServiceManageMenu.vue?5ca2","webpack://cloudctrl/./src/components/Domain.Services/ServiceManageMenu.vue?cb40","webpack://cloudctrl/./src/components/Domain.Services/ServiceManageMenu.vue?c0c4","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue?b057","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue?aa93","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue?66ae","webpack://cloudctrl/./src/views/Dialog.Service/Index.vue?0a96","webpack://cloudctrl/./src/views/Dialog.Service/Annotations.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationButton.vue","webpack://cloudctrl/src/components/Domain.Annotations/AddAnnotationButton.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationButton.vue?dadb","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationButton.vue?776f","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationButton.vue?eb00","webpack://cloudctrl/src/components/Domain.Annotations/AddAnnotationDialog.vue","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationDialog.vue?b70b","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationDialog.vue?8001","webpack://cloudctrl/./src/components/Domain.Annotations/AddAnnotationDialog.vue?ed1f","webpack://cloudctrl/src/views/Dialog.Service/Annotations.vue","webpack://cloudctrl/./src/views/Dialog.Service/Annotations.vue?494c","webpack://cloudctrl/./src/views/Dialog.Service/Annotations.vue?f7fd","webpack://cloudctrl/./src/views/Dialog.Service/RecordTags.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagForm.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagValueAutocomplete.vue","webpack://cloudctrl/src/components/Domain.Tags/TagValueAutocomplete.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagValueAutocomplete.vue?04c6","webpack://cloudctrl/./src/components/Domain.Tags/TagValueAutocomplete.vue?948f","webpack://cloudctrl/./src/components/Domain.Tags/TagValueAutocomplete.vue?cf15","webpack://cloudctrl/src/components/Domain.Tags/TagForm.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagForm.vue?1800","webpack://cloudctrl/./src/components/Domain.Tags/TagForm.vue?ae64","webpack://cloudctrl/./src/components/Domain.Tags/TagForm.vue?49cd","webpack://cloudctrl/src/views/Dialog.Service/RecordTags.vue","webpack://cloudctrl/./src/views/Dialog.Service/RecordTags.vue?91ce","webpack://cloudctrl/./src/views/Dialog.Service/RecordTags.vue?a381","webpack://cloudctrl/./src/views/Dialog.Service/RecordTags.vue?c191","webpack://cloudctrl/./src/views/Dialog.Service/VirtualTags.vue","webpack://cloudctrl/./src/components/Domain.VirtualTags/VirtualTagTable.vue","webpack://cloudctrl/src/components/Domain.VirtualTags/VirtualTagTable.vue","webpack://cloudctrl/./src/components/Domain.VirtualTags/VirtualTagTable.vue?fa29","webpack://cloudctrl/./src/components/Domain.VirtualTags/VirtualTagTable.vue?3507","webpack://cloudctrl/./src/components/Domain.VirtualTags/VirtualTagTable.vue?f9ff","webpack://cloudctrl/src/views/Dialog.Service/VirtualTags.vue","webpack://cloudctrl/./src/views/Dialog.Service/VirtualTags.vue?e7b7","webpack://cloudctrl/./src/views/Dialog.Service/VirtualTags.vue?08ed","webpack://cloudctrl/./src/views/Dialog.Service/VirtualTags.vue?a57f","webpack://cloudctrl/./src/views/Dialog.Service/Usage.vue","webpack://cloudctrl/./src/components/Domain.Usage/UsageFilterChips.vue","webpack://cloudctrl/./src/i18n/index.ts","webpack://cloudctrl/./src/components/Domain.Usage/UsageFilterChips.vue?13f8","webpack://cloudctrl/./src/components/Domain.Usage/UsageFilterChips.vue?dc2c","webpack://cloudctrl/./src/components/Domain.Usage/UsageFilterChips.vue?7236","webpack://cloudctrl/./src/views/Dialog.Service/Usage.vue?db72","webpack://cloudctrl/./src/views/Dialog.Service/Usage.vue?cc79","webpack://cloudctrl/./src/views/Dialog.Service/Usage.vue?6ea9","webpack://cloudctrl/./src/views/Dialog.Service/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Service/Carbon.vue?d443","webpack://cloudctrl/./src/views/Dialog.Service/Carbon.vue?678c","webpack://cloudctrl/./src/views/Dialog.Service/Carbon.vue?0937","webpack://cloudctrl/./src/views/Dialog.Service/RawUsage.vue","webpack://cloudctrl/./src/views/Dialog.Service/RawUsage.vue?4f1f","webpack://cloudctrl/./src/views/Dialog.Service/RawUsage.vue?c8d0","webpack://cloudctrl/./src/views/Dialog.Service/RawUsage.vue?8a16","webpack://cloudctrl/./src/views/Dialog.Subscription/Dialog.vue","webpack://cloudctrl/src/views/Dialog.Subscription/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/Dialog.vue?5eeb","webpack://cloudctrl/./src/views/Dialog.Subscription/Dialog.vue?9255","webpack://cloudctrl/./src/views/Dialog.Subscription/Dialog.vue?4f32","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionNameDialog.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/PatchSubscriptionButton.vue","webpack://cloudctrl/src/components/Domain.Subscriptions/PatchSubscriptionButton.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/PatchSubscriptionButton.vue?f26b","webpack://cloudctrl/./src/components/Domain.Subscriptions/PatchSubscriptionButton.vue?58e6","webpack://cloudctrl/./src/components/Domain.Subscriptions/PatchSubscriptionButton.vue?ee5d","webpack://cloudctrl/src/components/Domain.Subscriptions/EditSubscriptionNameDialog.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionNameDialog.vue?d420","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionNameDialog.vue?7888","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionSpendLimitDialog.vue","webpack://cloudctrl/src/components/Domain.Subscriptions/EditSubscriptionSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionSpendLimitDialog.vue?aca9","webpack://cloudctrl/./src/components/Domain.Subscriptions/EditSubscriptionSpendLimitDialog.vue?1223","webpack://cloudctrl/src/components/Domain.Subscriptions/SubscriptionManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionManageMenu.vue?ccb5","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionManageMenu.vue?9408","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionManageMenu.vue?f825","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue","webpack://cloudctrl/src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue?4e6d","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue?5c8e","webpack://cloudctrl/./src/components/Domain.Subscriptions/SubscriptionMetadataChips.vue?82b2","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue?8eea","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue?53bf","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue?3c78","webpack://cloudctrl/./src/views/Dialog.Subscription/Index.vue?7ee4","webpack://cloudctrl/./src/views/Dialog.Subscription/Trends.vue","webpack://cloudctrl/src/views/Dialog.Subscription/Trends.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/Trends.vue?0760","webpack://cloudctrl/./src/views/Dialog.Subscription/Trends.vue?4214","webpack://cloudctrl/./src/views/Dialog.Subscription/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/Usage.vue?fdb1","webpack://cloudctrl/./src/views/Dialog.Subscription/Usage.vue?bbac","webpack://cloudctrl/./src/views/Dialog.Subscription/Usage.vue?63b3","webpack://cloudctrl/./src/views/Dialog.Subscription/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/Carbon.vue?eb34","webpack://cloudctrl/./src/views/Dialog.Subscription/Carbon.vue?5eaa","webpack://cloudctrl/./src/views/Dialog.Subscription/Carbon.vue?4593","webpack://cloudctrl/./src/views/Dialog.Subscription/Annotations.vue","webpack://cloudctrl/src/views/Dialog.Subscription/Annotations.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/Annotations.vue?3374","webpack://cloudctrl/./src/views/Dialog.Subscription/Annotations.vue?5ec0","webpack://cloudctrl/./src/views/Dialog.Subscription/VirtualTags.vue","webpack://cloudctrl/src/views/Dialog.Subscription/VirtualTags.vue","webpack://cloudctrl/./src/views/Dialog.Subscription/VirtualTags.vue?a30a","webpack://cloudctrl/./src/views/Dialog.Subscription/VirtualTags.vue?ac72","webpack://cloudctrl/./src/views/Dialog.Subscription/VirtualTags.vue?e785","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue?122e","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue?ee19","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue?6d19","webpack://cloudctrl/./src/views/Dialog.Product/Dialog.vue?96c9","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue","webpack://cloudctrl/./src/components/Domain.Products/ProductManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Products/EditProductSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Products/PatchProductButton.vue","webpack://cloudctrl/src/components/Domain.Products/PatchProductButton.vue","webpack://cloudctrl/./src/components/Domain.Products/PatchProductButton.vue?26d5","webpack://cloudctrl/./src/components/Domain.Products/PatchProductButton.vue?d6cb","webpack://cloudctrl/./src/components/Domain.Products/PatchProductButton.vue?d61c","webpack://cloudctrl/src/components/Domain.Products/EditProductSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Products/EditProductSpendLimitDialog.vue?ee90","webpack://cloudctrl/./src/components/Domain.Products/EditProductSpendLimitDialog.vue?36cb","webpack://cloudctrl/src/components/Domain.Products/ProductManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Products/ProductManageMenu.vue?c1d0","webpack://cloudctrl/./src/components/Domain.Products/ProductManageMenu.vue?edc9","webpack://cloudctrl/./src/components/Domain.Products/ProductManageMenu.vue?05f9","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue?3961","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue?08b6","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue?21ef","webpack://cloudctrl/./src/views/Dialog.Product/Index.vue?38b4","webpack://cloudctrl/./src/views/Dialog.Product/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Product/Usage.vue?499b","webpack://cloudctrl/./src/views/Dialog.Product/Usage.vue?3171","webpack://cloudctrl/./src/views/Dialog.Product/Usage.vue?dd51","webpack://cloudctrl/./src/views/Dialog.Product/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Product/Carbon.vue?63aa","webpack://cloudctrl/./src/views/Dialog.Product/Carbon.vue?9906","webpack://cloudctrl/./src/views/Dialog.Product/Carbon.vue?0f86","webpack://cloudctrl/./src/views/Dialog.Product/Trends.vue","webpack://cloudctrl/./src/views/Dialog.Product/Trends.vue?c3ba","webpack://cloudctrl/./src/views/Dialog.Product/Trends.vue?fd48","webpack://cloudctrl/./src/views/Dialog.Product/Trends.vue?f1ef","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue?b274","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue?b79c","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue?56f3","webpack://cloudctrl/./src/views/Dialog.Region/Dialog.vue?a840","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionMetadataChips.vue","webpack://cloudctrl/src/components/Domain.Regions/RegionMetadataChips.vue","webpack://cloudctrl/./src/components/Domain.Regions/RegionMetadataChips.vue?25f6","webpack://cloudctrl/./src/components/Domain.Regions/RegionMetadataChips.vue?21a7","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue?56c4","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue?b210","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue?e77b","webpack://cloudctrl/./src/views/Dialog.Region/Index.vue?a5b6","webpack://cloudctrl/./src/views/Dialog.Region/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Region/Usage.vue?ef9f","webpack://cloudctrl/./src/views/Dialog.Region/Usage.vue?deac","webpack://cloudctrl/./src/views/Dialog.Region/Usage.vue?30ab","webpack://cloudctrl/./src/views/Dialog.Region/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Region/Carbon.vue?8bcc","webpack://cloudctrl/./src/views/Dialog.Region/Carbon.vue?a220","webpack://cloudctrl/./src/views/Dialog.Region/Carbon.vue?c7a9","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue?8f5f","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue?cd27","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue?0db3","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Dialog.vue?4e8c","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue?440f","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue?801c","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue?9196","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Index.vue?af75","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Usage.vue","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Usage.vue?e38b","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Usage.vue?e1fe","webpack://cloudctrl/./src/views/Dialog.ProductCategory/Usage.vue?8daa","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue?ea27","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue?42cd","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue?d23d","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Dialog.vue?39ed","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue?98f0","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue?31d3","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue?7897","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Index.vue?5fc8","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Usage.vue","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Usage.vue?1637","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Usage.vue?3ffb","webpack://cloudctrl/./src/views/Dialog.CloudProvider/Usage.vue?9592","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue?dde9","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue?efdb","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue?32f1","webpack://cloudctrl/./src/views/Dialog.Geography/Dialog.vue?d2b4","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue?982d","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue?8fae","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue?296d","webpack://cloudctrl/./src/views/Dialog.Geography/Index.vue?d9dc","webpack://cloudctrl/./src/views/Dialog.Geography/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Geography/Usage.vue?f429","webpack://cloudctrl/./src/views/Dialog.Geography/Usage.vue?c54b","webpack://cloudctrl/./src/views/Dialog.Geography/Usage.vue?2508","webpack://cloudctrl/./src/views/Dialog.Geography/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Geography/Carbon.vue?352d","webpack://cloudctrl/./src/views/Dialog.Geography/Carbon.vue?4d7d","webpack://cloudctrl/./src/views/Dialog.Geography/Carbon.vue?015d","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue?0f63","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue?814b","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue?6ba0","webpack://cloudctrl/./src/views/Dialog.Tag/Dialog.vue?707f","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyValueManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Tags/EditTagKeyValueSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Tags/PatchTagKeyValueButton.vue","webpack://cloudctrl/src/components/Domain.Tags/PatchTagKeyValueButton.vue","webpack://cloudctrl/./src/components/Domain.Tags/PatchTagKeyValueButton.vue?ebbc","webpack://cloudctrl/./src/components/Domain.Tags/PatchTagKeyValueButton.vue?d30f","webpack://cloudctrl/./src/components/Domain.Tags/PatchTagKeyValueButton.vue?b669","webpack://cloudctrl/src/components/Domain.Tags/EditTagKeyValueSpendLimitDialog.vue","webpack://cloudctrl/./src/components/Domain.Tags/EditTagKeyValueSpendLimitDialog.vue?b9f7","webpack://cloudctrl/./src/components/Domain.Tags/EditTagKeyValueSpendLimitDialog.vue?eff8","webpack://cloudctrl/src/components/Domain.Tags/TagKeyValueManageMenu.vue","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyValueManageMenu.vue?f8d7","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyValueManageMenu.vue?2c6b","webpack://cloudctrl/./src/components/Domain.Tags/TagKeyValueManageMenu.vue?9b27","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue?35b8","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue?f518","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue?6099","webpack://cloudctrl/./src/views/Dialog.Tag/Index.vue?1619","webpack://cloudctrl/./src/views/Dialog.Tag/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Tag/Usage.vue?1991","webpack://cloudctrl/./src/views/Dialog.Tag/Usage.vue?4c66","webpack://cloudctrl/./src/views/Dialog.Tag/Usage.vue?6f61","webpack://cloudctrl/./src/views/Dialog.Tag/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.Tag/Carbon.vue?5c98","webpack://cloudctrl/./src/views/Dialog.Tag/Carbon.vue?e2fe","webpack://cloudctrl/./src/views/Dialog.Tag/Carbon.vue?dc42","webpack://cloudctrl/./src/views/Dialog.Tag/Trends.vue","webpack://cloudctrl/./src/views/Dialog.Tag/AdditionalFiltersNotSupported.vue","webpack://cloudctrl/./src/views/Dialog.Tag/AdditionalFiltersNotSupported.vue?f16d","webpack://cloudctrl/./src/views/Dialog.Tag/AdditionalFiltersNotSupported.vue?f5ea","webpack://cloudctrl/./src/views/Dialog.Tag/AdditionalFiltersNotSupported.vue?b19e","webpack://cloudctrl/./src/views/Dialog.Tag/Trends.vue?571c","webpack://cloudctrl/./src/views/Dialog.Tag/Trends.vue?f1af","webpack://cloudctrl/./src/views/Dialog.Tag/Trends.vue?b2b9","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Dialog.vue","webpack://cloudctrl/src/views/Dialog.CloudAccount/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Dialog.vue?d669","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Dialog.vue?a17c","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Dialog.vue?76b8","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue?7bd9","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue?9a72","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue?a61f","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Index.vue?1866","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Copies.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue","webpack://cloudctrl/src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue?2a7a","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue?3735","webpack://cloudctrl/./src/components/Settings.CloudAccounts/CloudAccountCopiesTable.vue?cac8","webpack://cloudctrl/src/views/Dialog.CloudAccount/Copies.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Copies.vue?10ca","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Copies.vue?c7a8","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Copies.vue?1bf0","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Annotations.vue","webpack://cloudctrl/src/views/Dialog.CloudAccount/Annotations.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Annotations.vue?8bda","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Annotations.vue?def4","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Usage.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Usage.vue?7fa3","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Usage.vue?9f1a","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Usage.vue?1cad","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Trends.vue","webpack://cloudctrl/src/views/Dialog.CloudAccount/Trends.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Trends.vue?76f5","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Trends.vue?19c6","webpack://cloudctrl/./src/views/Dialog.CloudAccount/VirtualTags.vue","webpack://cloudctrl/src/views/Dialog.CloudAccount/VirtualTags.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/VirtualTags.vue?5202","webpack://cloudctrl/./src/views/Dialog.CloudAccount/VirtualTags.vue?3e7c","webpack://cloudctrl/./src/views/Dialog.CloudAccount/VirtualTags.vue?12b8","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Carbon.vue","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Carbon.vue?a08c","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Carbon.vue?ad69","webpack://cloudctrl/./src/views/Dialog.CloudAccount/Carbon.vue?a090","webpack://cloudctrl/./src/views/Dialog.Reservation/Dialog.vue","webpack://cloudctrl/src/views/Dialog.Reservation/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.Reservation/Dialog.vue?46e3","webpack://cloudctrl/./src/views/Dialog.Reservation/Dialog.vue?b537","webpack://cloudctrl/./src/views/Dialog.Reservation/Dialog.vue?aeae","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue?b2e2","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue?776d","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue?7214","webpack://cloudctrl/./src/views/Dialog.Reservation/Index.vue?4958","webpack://cloudctrl/./src/views/Dialog.Reservation/Usage.vue","webpack://cloudctrl/./src/views/Dialog.Reservation/Usage.vue?b576","webpack://cloudctrl/./src/views/Dialog.Reservation/Usage.vue?06f9","webpack://cloudctrl/./src/views/Dialog.Reservation/Usage.vue?bf45","webpack://cloudctrl/./src/views/AWSMarketplace.vue","webpack://cloudctrl/./src/plugins/auth/auth0.ts","webpack://cloudctrl/./src/plugins/auth/msal.ts","webpack://cloudctrl/./src/plugins/auth/index.ts","webpack://cloudctrl/./src/views/AWSMarketplace.vue?3fa3","webpack://cloudctrl/./src/views/AWSMarketplace.vue?ef43","webpack://cloudctrl/./src/views/AWSMarketplace.vue?6b6f","webpack://cloudctrl/./src/views/CopyCloudAccount/Index.vue","webpack://cloudctrl/src/views/CopyCloudAccount/Index.vue","webpack://cloudctrl/./src/views/CopyCloudAccount/Index.vue?d02b","webpack://cloudctrl/./src/views/CopyCloudAccount/Index.vue?dd93","webpack://cloudctrl/./src/views/CopyCloudAccount/Index.vue?422b","webpack://cloudctrl/./src/views/CopyCloudAccount/ChooseTenant.vue","webpack://cloudctrl/src/views/CopyCloudAccount/ChooseTenant.vue","webpack://cloudctrl/./src/views/CopyCloudAccount/ChooseTenant.vue?d130","webpack://cloudctrl/./src/views/CopyCloudAccount/ChooseTenant.vue?c776","webpack://cloudctrl/./src/views/CopyCloudAccount/ChooseTenant.vue?90ef","webpack://cloudctrl/./src/views/CopyCloudAccount/Finish.vue","webpack://cloudctrl/src/views/CopyCloudAccount/Finish.vue","webpack://cloudctrl/./src/views/CopyCloudAccount/Finish.vue?9f52","webpack://cloudctrl/./src/views/CopyCloudAccount/Finish.vue?4e0d","webpack://cloudctrl/./src/views/CopyCloudAccount/Finish.vue?1b71","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue?de58","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue?d27a","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue?0089","webpack://cloudctrl/./src/views/CopyCloudAccount/PricingRules.vue?2d05","webpack://cloudctrl/./src/views/CopyCloudAccount/Tags.vue","webpack://cloudctrl/src/views/CopyCloudAccount/Tags.vue","webpack://cloudctrl/./src/views/CopyCloudAccount/Tags.vue?1ba6","webpack://cloudctrl/./src/views/CopyCloudAccount/Tags.vue?940e","webpack://cloudctrl/./src/views/CopyCloudAccount/Tags.vue?c100","webpack://cloudctrl/./src/views/NotFound.vue","webpack://cloudctrl/./src/views/NotFound.vue?1d67","webpack://cloudctrl/./src/views/NotFound.vue?9931","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue?3a7e","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue?ffa5","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue?fdc9","webpack://cloudctrl/./src/views/Dialog.CustomView/Dialog.vue?4379","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue?872d","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue?3b47","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue?ceee","webpack://cloudctrl/./src/views/Dialog.CustomView/Index.vue?c57b","webpack://cloudctrl/./src/views/Dialog.CustomView/Usage.vue","webpack://cloudctrl/./src/views/Dialog.CustomView/Usage.vue?0a66","webpack://cloudctrl/./src/views/Dialog.CustomView/Usage.vue?de91","webpack://cloudctrl/./src/views/Dialog.CustomView/Usage.vue?3da0","webpack://cloudctrl/./src/views/Reports/CustomReports.vue","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue?ea64","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue?ecaa","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue?b498","webpack://cloudctrl/./src/components/Domain.Reports/ReportsTable.vue?e643","webpack://cloudctrl/./src/components/Domain.Reports/ReportMenu.vue","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportDialog.vue","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportButton.vue","webpack://cloudctrl/src/components/Domain.Reports/DeleteReportButton.vue","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportButton.vue?e94c","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportButton.vue?655a","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportButton.vue?8107","webpack://cloudctrl/src/components/Domain.Reports/DeleteReportDialog.vue","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportDialog.vue?3ccf","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportDialog.vue?acc8","webpack://cloudctrl/./src/components/Domain.Reports/DeleteReportDialog.vue?88f5","webpack://cloudctrl/src/components/Domain.Reports/ReportMenu.vue","webpack://cloudctrl/./src/components/Domain.Reports/ReportMenu.vue?b36e","webpack://cloudctrl/./src/components/Domain.Reports/ReportMenu.vue?e074","webpack://cloudctrl/./src/components/Domain.Reports/ReportMenu.vue?3cee","webpack://cloudctrl/./src/views/Reports/CustomReports.vue?556d","webpack://cloudctrl/./src/views/Reports/CustomReports.vue?5568","webpack://cloudctrl/./src/views/Reports/CustomReports.vue?1878","webpack://cloudctrl/./src/views/Reports/CustomReports.vue?beb2","webpack://cloudctrl/./src/views/Reports/CustomReport.vue","webpack://cloudctrl/./src/views/Reports/CustomReport.vue?9855","webpack://cloudctrl/./src/views/Reports/CustomReport.vue?9a94","webpack://cloudctrl/./src/views/Reports/CustomReport.vue?9803","webpack://cloudctrl/./src/views/Reports/CustomReport.vue?d2e8","webpack://cloudctrl/./src/views/Reports/CreateReport.vue","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeSelect.vue","webpack://cloudctrl/src/components/Domain.Usage/DateRangeSelect.vue","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeSelect.vue?55d0","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeSelect.vue?55ba","webpack://cloudctrl/./src/components/Domain.Usage/DateRangeSelect.vue?b289","webpack://cloudctrl/./src/components/Common/TimezoneSelect.vue","webpack://cloudctrl/src/components/Common/TimezoneSelect.vue","webpack://cloudctrl/./src/components/Common/TimezoneSelect.vue?189d","webpack://cloudctrl/./src/components/Common/TimezoneSelect.vue?2225","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue","webpack://cloudctrl/./src/plugins/validation.ts","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue?b3b8","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue?b640","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue?6a7a","webpack://cloudctrl/./src/components/Common/EmailsAutocomplete.vue?9c5a","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue?c355","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue?7909","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue?b9c2","webpack://cloudctrl/./src/components/Domain.Reports/ReportCard.vue?bc0e","webpack://cloudctrl/./src/components/Domain.Reports/PostReportButton.vue","webpack://cloudctrl/src/components/Domain.Reports/PostReportButton.vue","webpack://cloudctrl/./src/components/Domain.Reports/PostReportButton.vue?6cfa","webpack://cloudctrl/./src/components/Domain.Reports/PostReportButton.vue?06ce","webpack://cloudctrl/./src/components/Domain.Reports/PostReportButton.vue?2675","webpack://cloudctrl/./src/views/Reports/CreateReport.vue?bfc0","webpack://cloudctrl/./src/views/Reports/CreateReport.vue?e943","webpack://cloudctrl/./src/views/Reports/CreateReport.vue?8906","webpack://cloudctrl/./src/views/Reports/EditReport.vue","webpack://cloudctrl/./src/components/Domain.Reports/PutReportButton.vue","webpack://cloudctrl/src/components/Domain.Reports/PutReportButton.vue","webpack://cloudctrl/./src/components/Domain.Reports/PutReportButton.vue?97b0","webpack://cloudctrl/./src/components/Domain.Reports/PutReportButton.vue?e908","webpack://cloudctrl/./src/components/Domain.Reports/PutReportButton.vue?594d","webpack://cloudctrl/./src/views/Reports/EditReport.vue?b5b1","webpack://cloudctrl/./src/views/Reports/EditReport.vue?55fd","webpack://cloudctrl/./src/views/Reports/EditReport.vue?2693","webpack://cloudctrl/./src/views/Reports/CloneReport.vue","webpack://cloudctrl/./src/views/Reports/CloneReport.vue?7c3e","webpack://cloudctrl/./src/views/Reports/CloneReport.vue?0402","webpack://cloudctrl/./src/views/Reports/CloneReport.vue?7af1","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewButton.vue","webpack://cloudctrl/src/components/Domain.CustomViews/DeleteCustomViewButton.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewButton.vue?eb5f","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewButton.vue?0765","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewButton.vue?d033","webpack://cloudctrl/src/components/Domain.CustomViews/DeleteCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewDialog.vue?fbb1","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewDialog.vue?45c0","webpack://cloudctrl/./src/components/Domain.CustomViews/DeleteCustomViewDialog.vue?41c4","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewButton.vue","webpack://cloudctrl/src/components/Domain.CustomViews/PutCustomViewButton.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewButton.vue?17c0","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewButton.vue?6d9b","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewButton.vue?b758","webpack://cloudctrl/src/components/Domain.CustomViews/PutCustomViewDialog.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewDialog.vue?301a","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewDialog.vue?207d","webpack://cloudctrl/./src/components/Domain.CustomViews/PutCustomViewDialog.vue?4e88","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue?84d9","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue?7383","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue?4ead","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewsTable.vue?b7c9","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewMenu.vue","webpack://cloudctrl/src/components/Domain.CustomViews/CustomViewMenu.vue","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewMenu.vue?13b4","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewMenu.vue?3444","webpack://cloudctrl/./src/components/Domain.CustomViews/CustomViewMenu.vue?1c1e","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue?b51c","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue?c4b7","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue?5a32","webpack://cloudctrl/./src/views/CustomViews/CustomViews.vue?fd58","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue?a751","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue?5fb1","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue?558c","webpack://cloudctrl/./src/views/CustomViews/CustomView.vue?7dd3","webpack://cloudctrl/./src/views/CustomViews/Overview.vue","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetButton.vue","webpack://cloudctrl/src/components/Domain.Budgets/DeleteBudgetButton.vue","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetButton.vue?e8a9","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetButton.vue?0dae","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetButton.vue?b3e5","webpack://cloudctrl/src/components/Domain.Budgets/DeleteBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetDialog.vue?24a6","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetDialog.vue?47ad","webpack://cloudctrl/./src/components/Domain.Budgets/DeleteBudgetDialog.vue?469f","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue?aa65","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue?4b4b","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue?71c7","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetsTable.vue?3a33","webpack://cloudctrl/./src/views/CustomViews/Overview.vue?3d76","webpack://cloudctrl/./src/views/CustomViews/Overview.vue?e10f","webpack://cloudctrl/./src/views/CustomViews/Overview.vue?8022","webpack://cloudctrl/./src/views/CustomViews/Overview.vue?ab3d","webpack://cloudctrl/./src/views/Budgets/Budgets.vue","webpack://cloudctrl/./src/components/Domain.Budgets/CreateBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue?c813","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue?4ece","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue?8c74","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetCard.vue?5a6b","webpack://cloudctrl/src/components/Domain.Budgets/SetBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetDialog.vue?3abb","webpack://cloudctrl/./src/components/Domain.Budgets/SetBudgetDialog.vue?6595","webpack://cloudctrl/./src/components/Domain.Budgets/CreateButtonButton.vue","webpack://cloudctrl/src/components/Domain.Budgets/CreateButtonButton.vue","webpack://cloudctrl/./src/components/Domain.Budgets/CreateButtonButton.vue?9054","webpack://cloudctrl/./src/components/Domain.Budgets/CreateButtonButton.vue?67d9","webpack://cloudctrl/./src/components/Domain.Budgets/CreateButtonButton.vue?3c06","webpack://cloudctrl/src/components/Domain.Budgets/CreateBudgetDialog.vue","webpack://cloudctrl/./src/components/Domain.Budgets/CreateBudgetDialog.vue?92ce","webpack://cloudctrl/./src/components/Domain.Budgets/CreateBudgetDialog.vue?81a5","webpack://cloudctrl/./src/components/Domain.Budgets/CreateBudgetDialog.vue?9f93","webpack://cloudctrl/./src/components/Domain.SpendLimits/SpendLimitsTable.vue","webpack://cloudctrl/src/components/Domain.SpendLimits/SpendLimitsTable.vue","webpack://cloudctrl/./src/components/Domain.SpendLimits/SpendLimitsTable.vue?c63d","webpack://cloudctrl/./src/components/Domain.SpendLimits/SpendLimitsTable.vue?5dbe","webpack://cloudctrl/./src/components/Domain.SpendLimits/SpendLimitsTable.vue?cba4","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue?2f48","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue?b831","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue?4c26","webpack://cloudctrl/./src/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue?08ff","webpack://cloudctrl/./src/views/Budgets/Budgets.vue?8cb4","webpack://cloudctrl/./src/views/Budgets/Budgets.vue?d09d","webpack://cloudctrl/./src/views/Budgets/Budgets.vue?6eae","webpack://cloudctrl/./src/views/Budgets/Budgets.vue?c135","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetHistoryChart.vue","webpack://cloudctrl/./src/chartjs/createBudgetHistoryChart.ts","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetHistoryChart.vue?6cf8","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetHistoryChart.vue?c648","webpack://cloudctrl/./src/components/Domain.Budgets/BudgetHistoryChart.vue?186e","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue?38d2","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue?b0fd","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue?0d5d","webpack://cloudctrl/./src/views/Budgets/BudgetDetails.vue?b191","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue","webpack://cloudctrl/./src/components/Domain.GptChat/GptCreate.vue","webpack://cloudctrl/./src/components/Domain.GptChat/GptCreate.vue?e0a5","webpack://cloudctrl/./src/components/Domain.GptChat/GptCreate.vue?2fd7","webpack://cloudctrl/./src/components/Domain.GptChat/GptCreate.vue?fd80","webpack://cloudctrl/./src/components/Domain.GptChat/Shared.ts","webpack://cloudctrl/./src/components/Domain.GptChat/ChatConversation.vue","webpack://cloudctrl/./src/components/Domain.GptChat/ChatMessageContent.vue","webpack://cloudctrl/./src/components/Domain.GptChat/ChatMessageContent.vue?485e","webpack://cloudctrl/./src/components/Domain.GptChat/ChatMessageContent.vue?53ba","webpack://cloudctrl/./src/components/Domain.GptChat/ChatMessageContent.vue?bb30","webpack://cloudctrl/./src/components/Domain.GptChat/ChatConversation.vue?74d2","webpack://cloudctrl/./src/components/Domain.GptChat/ChatConversation.vue?d79d","webpack://cloudctrl/./src/components/Domain.GptChat/ChatConversation.vue?fa7b","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue?308d","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue?1d39","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue?b1bd","webpack://cloudctrl/./src/components/Domain.GptChat/ChatsDialog.vue?bfb4","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue?eab5","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue?d8d2","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue?4b40","webpack://cloudctrl/./src/views/Intelligence/GptChats.vue?6b89","webpack://cloudctrl/./src/views/GettingStarted.vue","webpack://cloudctrl/./src/views/GettingStarted.vue?fec1","webpack://cloudctrl/./src/views/GettingStarted.vue?32a4","webpack://cloudctrl/./src/views/GettingStarted.vue?eb9b","webpack://cloudctrl/./src/views/GettingStarted.vue?105a","webpack://cloudctrl/./src/views/Watchdog/Index.vue","webpack://cloudctrl/./src/components/Domain.Policies/PolicyMenu.vue","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyDialog.vue","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyButton.vue","webpack://cloudctrl/src/components/Domain.Policies/DeletePolicyButton.vue","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyButton.vue?1b92","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyButton.vue?86b8","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyButton.vue?6ab1","webpack://cloudctrl/src/components/Domain.Policies/DeletePolicyDialog.vue","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyDialog.vue?3138","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyDialog.vue?279e","webpack://cloudctrl/./src/components/Domain.Policies/DeletePolicyDialog.vue?25d4","webpack://cloudctrl/src/components/Domain.Policies/PolicyMenu.vue","webpack://cloudctrl/./src/components/Domain.Policies/PolicyMenu.vue?15c7","webpack://cloudctrl/./src/components/Domain.Policies/PolicyMenu.vue?da24","webpack://cloudctrl/./src/components/Domain.Policies/PolicyMenu.vue?b393","webpack://cloudctrl/./src/views/Watchdog/Index.vue?bfd8","webpack://cloudctrl/./src/views/Watchdog/Index.vue?dec3","webpack://cloudctrl/./src/views/Watchdog/Index.vue?c294","webpack://cloudctrl/./src/views/Watchdog/Index.vue?af64","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue?c728","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue?b788","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue?1071","webpack://cloudctrl/./src/views/Watchdog/ViewPolicy.vue?585d","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue?9252","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue?5323","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue?558a","webpack://cloudctrl/./src/views/Watchdog/ViewPolicyRun.vue?86ee","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue?8a63","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue?f368","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue?c1f7","webpack://cloudctrl/./src/views/Watchdog/NewPolicy.vue?de16","webpack://cloudctrl/./src/merge/Grid.ts","webpack://cloudctrl/./src/views/CustomDashboards/Index.vue","webpack://cloudctrl/./src/stores/grid.ts","webpack://cloudctrl/./src/views/CustomDashboards/Index.vue?1d2f","webpack://cloudctrl/./src/views/CustomDashboards/Index.vue?9c80","webpack://cloudctrl/./src/views/CustomDashboards/Index.vue?52ff","webpack://cloudctrl/./src/views/CustomDashboards/Dashboard.vue","webpack://cloudctrl/./src/components/Grid/Grid.vue","webpack://cloudctrl/./src/components/Grid/Widgets/GridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue?b6e1","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue?9845","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue?11a9","webpack://cloudctrl/./src/components/Grid/Widgets/ColumnChartGridWidget.vue?0451","webpack://cloudctrl/./src/components/Grid/Widgets/LineChartGridWidget.vue","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageLineChart.vue","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageLineChart.vue?2bee","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageLineChart.vue?5c55","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsageLineChart.vue?7367","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonLineChart.vue","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonLineChart.vue?077d","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonLineChart.vue?4086","webpack://cloudctrl/./src/components/Domain.Carbon/CarbonLineChart.vue?2c13","webpack://cloudctrl/./src/components/Grid/Widgets/LineChartGridWidget.vue?87ac","webpack://cloudctrl/./src/components/Grid/Widgets/LineChartGridWidget.vue?b42a","webpack://cloudctrl/./src/components/Grid/Widgets/LineChartGridWidget.vue?0cf5","webpack://cloudctrl/./src/components/Grid/Widgets/TableGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/TableGridWidget.vue?deb8","webpack://cloudctrl/./src/components/Grid/Widgets/TableGridWidget.vue?223f","webpack://cloudctrl/./src/components/Grid/Widgets/TableGridWidget.vue?fbc6","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsagePieChart.vue","webpack://cloudctrl/./src/chartjs/createPieChart.ts","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsagePieChart.vue?e5ff","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsagePieChart.vue?b119","webpack://cloudctrl/./src/components/Domain.Usage/SpendUsagePieChart.vue?295a","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue?0224","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue?03f3","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue?5681","webpack://cloudctrl/./src/components/Grid/Widgets/PieChartGridWidget.vue?bc5b","webpack://cloudctrl/./src/components/Grid/Widgets/TextualGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/TextualGridWidget.vue?e553","webpack://cloudctrl/./src/components/Grid/Widgets/TextualGridWidget.vue?eaad","webpack://cloudctrl/./src/components/Grid/Widgets/TextualGridWidget.vue?6aeb","webpack://cloudctrl/./src/components/Grid/Widgets/EmbedGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/EmbedGridWidget.vue?4b57","webpack://cloudctrl/./src/components/Grid/Widgets/EmbedGridWidget.vue?7df0","webpack://cloudctrl/./src/components/Grid/Widgets/EmbedGridWidget.vue?3ee9","webpack://cloudctrl/./src/components/Grid/Widgets/ComparisonChartGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/ComparisonChartGridWidget.vue?54f9","webpack://cloudctrl/./src/components/Grid/Widgets/ComparisonChartGridWidget.vue?d9c3","webpack://cloudctrl/./src/components/Grid/Widgets/ComparisonChartGridWidget.vue?1f7d","webpack://cloudctrl/./src/components/Grid/Widgets/RecommendationsGridWidget.vue","webpack://cloudctrl/./src/components/Grid/Widgets/RecommendationsGridWidget.vue?6f42","webpack://cloudctrl/./src/components/Grid/Widgets/RecommendationsGridWidget.vue?4ee6","webpack://cloudctrl/./src/components/Grid/Widgets/RecommendationsGridWidget.vue?c6e7","webpack://cloudctrl/./src/components/Grid/Widgets/GridWidget.vue?806e","webpack://cloudctrl/./src/components/Grid/Widgets/GridWidget.vue?0c1b","webpack://cloudctrl/./src/components/Grid/Widgets/GridWidget.vue?aef3","webpack://cloudctrl/./src/components/Grid/Grid.vue?7f54","webpack://cloudctrl/./src/components/Grid/Grid.vue?4f3f","webpack://cloudctrl/./src/components/Grid/Grid.vue?3892","webpack://cloudctrl/./src/components/Grid/WidgetGridFormDialog.vue","webpack://cloudctrl/./src/components/Grid/WidgetGridFormDialog.vue?cf33","webpack://cloudctrl/./src/components/Grid/WidgetGridFormDialog.vue?efad","webpack://cloudctrl/./src/components/Grid/WidgetGridFormDialog.vue?be86","webpack://cloudctrl/./src/views/CustomDashboards/Dashboard.vue?9095","webpack://cloudctrl/./src/views/CustomDashboards/Dashboard.vue?4ba5","webpack://cloudctrl/./src/views/CustomDashboards/Dashboard.vue?fa56","webpack://cloudctrl/./src/plugins/auth/authGuard.ts","webpack://cloudctrl/./src/plugins/router.ts","webpack://cloudctrl/./src/plugins/tracking.ts","webpack://cloudctrl/./src/registerServiceWorker.ts","webpack://cloudctrl/./src/main.ts","webpack://cloudctrl/./src/plugins/vue-wait.ts","webpack://cloudctrl/./src/lib/vm.js","webpack://cloudctrl/webpack/bootstrap","webpack://cloudctrl/webpack/runtime/amd options","webpack://cloudctrl/webpack/runtime/chunk loaded","webpack://cloudctrl/webpack/runtime/compat get default export","webpack://cloudctrl/webpack/runtime/define property getters","webpack://cloudctrl/webpack/runtime/ensure chunk","webpack://cloudctrl/webpack/runtime/get javascript chunk filename","webpack://cloudctrl/webpack/runtime/get mini-css chunk filename","webpack://cloudctrl/webpack/runtime/global","webpack://cloudctrl/webpack/runtime/hasOwnProperty shorthand","webpack://cloudctrl/webpack/runtime/load script","webpack://cloudctrl/webpack/runtime/make namespace object","webpack://cloudctrl/webpack/runtime/publicPath","webpack://cloudctrl/webpack/runtime/jsonp chunk loading","webpack://cloudctrl/webpack/startup"],"sourcesContent":["module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteApiKeyButton.errorMessage\":\"There was an issue deleting the api key.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"generateApiKeyButton.generateText\":\"Generate\",\"generateApiKeyButton.error\":\"There was an issue generating an api key.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"generateApiKeyCard.title\":\"Create new API key\",\"generateApiKeyCard.subtitle\":\"This new api-key will only be made visible once. Make sure you keep a copy before continuing.\",\"generateApiKeyCard.ApiKey\":\"API-Key\",\"generateApiKeyCard.ApiKey.placeholder\":\"Click generate to make a new API key\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"selfservice.createTenant.title\":\"Create a new Customer Account\",\"selfservice.createTenant.name\":\"Customer Name\",\"selfservice.createTenant.billingEmail\":\"Billing Email Address\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postCreateTenantButton.errorMessage\":\"There was an error encountered while creating this tenant. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteEntityCard.placeholder\":\"Enter \\u0027{entityName}\\u0027 to continue\",\"deleteEntityCard.checkToDelete.label\":\"Are you sure you want to delete?\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"entities.DeleteEntityTitle\":\"Delete {entityType}\",\"entities.DeleteEntitySubtitle\":\"This {entityType} will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"emailsAutocomplete.label\":\"Emails\",\"emailsAutocomplete.createPrompt\":\"Click to add\",\"emailsAutocomplete.notValidEmail\":\"Not a valid email\",\"emailsAutocomplete.pleaseTypePrompt\":\"Type to enter an email\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"entitySearchAutocomplete.label\":\"Search for a service, subscription, tag...\",\"entitySearchAutocomplete.typePrompt\":\"Click or type here begin searching...\",\"entitySearchAutocomplete.noDataPrompt\":\"There are no matching entities, click to search again\",\"entitySearchAutocomplete.createPrompt\":\"Click to create\",\"entitySearchAutocomplete.saveCustomView\":\"Save as Custom View\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"updateEntitySpendLimitCard.monthlySpendLimit.title\":\"Monthly Spend Limit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"domain.actions.createActionScriptCard.title\":\"Create Action\",\"domain.actions.createActionScriptCard.subtitle\":\"Please provide the name and script text for this action script.\",\"domain.actions.createActionScriptCard.actionName\":\"Script Name\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postAnnotationsButton.text\":\"Add Annotation\",\"postAnnotationsButton.errorMessage\":\"There was an error encountered while creating this annotation. If anything does not look right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"addAnnotationDialog.addAnnotationTitle\":\"Add Annotation\",\"addAnnotationDialog.addAnnotationSubtitle\":\"Add a new annotation for this entity\",\"addAnnotationDialog.successfulAdd\":\"Annotation successfully added.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"annotationCard.annotation\":\"Annotation\",\"annotationCard.annotationDate\":\"Annotation Date\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"annotationsTimeline.noAnnotations\":\"There are no annotations here yet.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteAnnotationButton.errorMessage\":\"There was an error encountered while deleting this annotation. If anything does not look right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteAnnotationDialog.deleteAnnotationTitle\":\"Delete Annotation\",\"deleteAnnotationDialog.deleteAnnotationSubtitle\":\"This action is not reversable, you will need to add a new annotation.\",\"deleteAnnotationDialog.successfulDelete\":\"Annotation successfully deleted.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchAnnotationsButton.text\":\"Edit Annotation\",\"patchAnnotationsButton.errorMessage\":\"There was an error encountered while updating this annotation. If anything does not look right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"editAnnotationDialog.editAnnotationTitle\":\"Edit Annotation\",\"editAnnotationDialog.editAnnotationSubtitle\":\"Edit annotation for this service.\",\"editAnnotationDialog.successfulEdit\":\"Annotation successfully updated.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"budgetsTable.noBudgets\":\"There are no budgets yet.\",\"budgetsTable.loadingBudgets\":\"Loading budgets\",\"budgetsTable.name\":\"Budget Name\",\"budgetsTable.amount\":\"Budget Amount\",\"budgetsTable.view\":\"View\",\"budgetsTable.progress\":\"Progress\",\"budgetsTable.actual\":\"Current Spend\",\"budgetsTable.projections\":\"Forecast\",\"budgetsTable.actions\":\"Actions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createBudgetDialog.events.successfulCreation\":\"Successfully created the budget \\u0027{name}\\u0027\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createBudgetButton.errorMessage\":\"There was an error encountered while updating this budget. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteBudgetButton.errorMessage\":\"There was an error encountered while deleting this budget. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteBudgetDialog.events.successfulDeletion\":\"Successfully deleted the budget \\u0027{name}\\u0027\",\"deleteBudgetDialog.title\":\"Delete Budget\",\"deleteBudgetDialog.subtitle\":\"Please enter the name of this budget to delete it\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setBudgetCard.title\":\"Budget\",\"setBudgetCard.subtitle\":\"Setting a budget is an important way to manage your overall cloud spend.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"selectCloudAccountCard.title\":\"Select Cloud Connections\",\"selectCloudAccountCard.subtitle\":\"Select one or many of the following cloud connections in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"carbonMissingMappingDialog.title\":\"Emissions and Energy Limitations\",\"carbonMissingMappingDialog.subtitle\":\"There are limitations to the availability and accuracy of the data in our Emissions and Energy reporting. The following product meters are not mapped to emissions, and as a result real CO2e figures might be lower than reality.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"carbonTable.exportText.btnText\":\"Export CSV\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"currencyComboBox.currency\":\"Currency\",\"currencyComboBox.fallbackPlaceholder\":\"Please enter the currency code of your choosing e.g. AUD\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customViewMenu.delete\":\"Delete\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customViewsTable.noCustomViews\":\"There are no Custom Views yet\",\"customViewsTable.loading\":\"Loading Custom Views\",\"customViewsTable.name\":\"Name\",\"customViewsTable.filters\":\"Filters\",\"customViewsTable.history\":\"History\",\"customViewsTable.lastMonth\":\"Last Month\",\"customViewsTable.currentMonth\":\"Current Month Forecast\",\"customViewsTable.difference\":\"Difference\",\"customViewsTable.budgets\":\"Budgets\",\"customViewsTable.actions\":\"Actions\",\"customViewsTable.failedToLoad\":\"Failed to load custom view data.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCustomViewButton.errorMessage\":\"There was an error encountered while deleting this custom view. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCustomViewDialog.events.successfulDeletion\":\"Successfully deleted the custom view \\u0027{customViewName}\\u0027\",\"deleteCustomViewDialog.title\":\"Delete Custom View\",\"deleteCustomViewDialog.subtitle\":\"Please enter the name of this custom view to delete it.\",\"deleteCustomViewDialog.warningText\":\"Deleting this custom view will also delete all associated budgets if any.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postCustomViewButton.errorMessage\":\"There was an error encountered while creating this customView. If everything looks right please contact support so we can help you :)\",\"postCustomViewButton.saveAndView\":\"Save and View\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postCustomViewDialog.events.successfulCreation\":\"Successfully created the customView \\u0027{customViewName}\\u0027\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putCustomViewButton.errorMessage\":\"There was an error encountered while updating this custom view. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putCustomViewDialog.events.successfulUpdates\":\"Successfully updated the customView \\u0027{customViewName}\\u0027\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setCustomViewCard.title\":\"Custom View\",\"setCustomViewCard.subtitle\":\"Configure a custom view which is a reusable configured filter set over your tenant.\",\"setCustomViewCard.cloudAccounts.title\":\"Cloud Connections\",\"setCustomViewCard.subscriptions.title\":\"Subscriptions\",\"setCustomViewCard.products.title\":\"Products\",\"setCustomViewCard.services.title\":\"Services\",\"setCustomViewCard.regions.title\":\"Regions\",\"setCustomViewCard.geographies.title\":\"Geographies\",\"setCustomViewCard.productCategories.title\":\"Product Categories\",\"setCustomViewCard.providerTypes.title\":\"Provider Types\",\"setCustomViewCard.cloudProviders.title\":\"Provider Types\",\"setCustomViewCard.tagKeyValues.title\":\"Tags\",\"setCustomViewCard.tags.title\":\"Tags\",\"setCustomViewCard.tagKeys.title\":\"Tag Keys\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createFxRateButton.errorMessage\":\"There was an error encountered while creating this fx rate. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteFxRateButton.errorMessage\":\"There was an error encountered while deleting this fx rate. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteFxRateDialog.title\":\"Delete FX Rate\",\"deleteFxRateDialog.subtitle\":\"Warning: This process is irreversible! Your FX Rate data will be deleted permanently and you will need to re-enter your rates if you want to see your data again. Changes will only take place on the next import.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchFxRateButton.errorMessage\":\"There was an error encountered while updating this fx rate. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"chatsDialog.noChatsYet\":\"You haven\\u0027t started any Cloud Intelligence chats yet.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"dashboard.namespaces.namespaceColumnHeading\":\"Namespace\",\"dashboard.namespaces.totalColumnHeading\":\"Total\",\"dashboard.namespaces.nodata\":\"There is no namespace spend data in the selected date range\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deletePolicyButton.errorMessage\":\"There was an error encountered while deleting this policy. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deletePolicyDialog.events.successfulDeletion\":\"Successfully deleted the policy \\u0027{policyName}\\u0027\",\"deletePolicyDialog.title\":\"Delete Policy\",\"deletePolicyDialog.subtitle\":\"Please enter the name of this policy to delete it\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"policyMenu.delete\":\"Delete\",\"policyMenu.edit\":\"Edit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchProductButton.errorMessage\":\"There was an error encountered while patching this product. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"productManageMenu.editSpendLimit\":\"Set Spend Limit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionsCarbonTable.noRegions\":\"There are no regions visible in this tenant.\",\"regionsCarbonTable.currentMonthCO2e.title\":\"Last 30 days (CO2e)\",\"regionsCarbonTable.currentMonthKwH.title\":\"Last 30 days (kWh)\",\"regionsCarbonTable.currentMonthIntensity.title\":\"Energy Intensity (mt/kWh)\",\"regionsCarbonTable.providerType.title\":\"Provider\",\"regionsCarbonTable.geography.title\":\"Geography\",\"regionsCarbonTable.search.placeholder\":\"Search regions by name, provider etc.\",\"regionsCarbonTable.search.title\":\"Search within results...\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionsCarbonTableCard.title\":\"Region emissions this month\",\"regionsCarbonTableCard.subtitle\":\"All regions visible within this tenant\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionsTable.noRegions\":\"There are no regions visible in this tenant.\",\"regionsTable.currentMonth.title\":\"Last 30 days\",\"regionsTable.providerType.title\":\"Provider\",\"regionsTable.geography.title\":\"Geography\",\"regionsTable.search.placeholder\":\"Search regions by name, provider etc.\",\"regionsTable.search.title\":\"Search within results...\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionsTableCard.title\":\"Regions this month\",\"regionsTableCard.subtitle\":\"All regions visible within this tenant\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteReportButton.errorMessage\":\"There was an error encountered while deleting this report. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteReportDialog.events.successfulDeletion\":\"Successfully deleted the report \\u0027{reportName}\\u0027\",\"deleteReportDialog.title\":\"Delete Report\",\"deleteReportDialog.subtitle\":\"Please enter the name of this report to delete it\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postReportButton.errorMessage\":\"There was an error encountered while creating this report. If everything looks right please contact support so we can help you :)\",\"postReportButton.saveAndView\":\"Save and View\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putReportButton.errorMessage\":\"There was an error encountered while updating this report. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"savedReportConfigCard.title\":\"Set Report Configuration\",\"savedReportConfigCard.subtitle\":\"The configuration of the saved report. Keep in mind the delay in usage imports (24hr+) when deciding on report schedules.\",\"savedReportConfigCard.reportName.title\":\"Report Name\",\"savedReportConfigCard.reportName.placeholder\":\"e.g. My Custom Report 1\",\"savedReportConfigCard.topXResults.title\":\"Max Return Count\",\"savedReportConfigCard.filters.title\":\"Filters\",\"savedReportConfigCard.filters.placeholder\":\"Begin typing the name of services etc.\",\"savedReportConfigCard.subject.title\":\"Subject\",\"savedReportConfigCard.messageBody.title\":\"Message Body\",\"savedReportConfigCard.recipients.title\":\"Recipients (Emails)\",\"savedReportConfigCard.deliverInEmail.title\":\"Email Report\",\"savedReportConfigCard.scheduledStartDate.title\":\"Recurrence Start\",\"savedReportConfigCard.scheduledEndDate.title\":\"Recurrence End\",\"savedReportConfigCard.days.title\":\"Daily\",\"savedReportConfigCard.months.title\":\"Monthly\",\"savedReportConfigCard.weeks.title\":\"Weekly\",\"savedReportConfigCard.selectedDaysOfWeek.title\":\"Days of Week\",\"savedReportConfigCard.monthlyFrequency.title\":\"Schedule on the Nth day of the month\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"reportMenu.edit\":\"Edit\",\"reportMenu.delete\":\"Delete\",\"reportMenu.clone\":\"Clone\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"reportsTable.headers.reportName\":\"Report Name\",\"reportsTable.headers.createdDate\":\"Created Date\",\"reportsTable.headers.dateRangeKey\":\"Date Range\",\"reportsTable.headers.segregatedBy\":\"Fields\",\"reportsTable.headers.nextRun\":\"Next Run\",\"reportsTable.headers.actions\":\"Actions\",\"segregationSelect.products.title\":\"Products\",\"segregationSelect.services.title\":\"Services\",\"segregationSelect.subscriptions.title\":\"Subscriptions\",\"segregationSelect.meters.title\":\"Meters\",\"segregationSelect.cloudaccounts.title\":\"Cloud Connections\",\"segregationSelect.cloudProviders.title\":\"Providers\",\"segregationSelect.productCategories.title\":\"Product Categories\",\"segregationSelect.geographies.title\":\"Geographies\",\"segregationSelect.regions.title\":\"Regions\",\"dateRangeSelect.key_30d.title\":\"Last 30 days\",\"dateRangeSelect.key_60d.title\":\"Last 60 days\",\"dateRangeSelect.key_90d.title\":\"Last 90 days\",\"dateRangeSelect.key_lastMonth.title\":\"Last month\",\"dateRangeSelect.key_thisMonth.title\":\"This month\",\"dateRangeSelect.key_6m.title\":\"Last 6 months\",\"dateRangeSelect.key_all.title\":\"All usage\",\"dateRangeSelect.key_custom.title\":\"Custom\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchServiceButton.errorMessage\":\"There was an error encountered while patching this service. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"serviceManageMenu.editSpendLimit\":\"Set Spend Limit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"serviceMetadataChips.viewInAzure\":\"View in Azure\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"spentLimitSelectorCard.title\":\"Configure spend limit\",\"spendLimitSelectorCard.subtitle\":\"Setting a spend limit can give you peace of mind that you will be warned when consumption is expected to exceed this limit.\",\"spendLimitSelectorCard.searchEntity.title\":\"Search Entity\",\"spendLimitSelectorCard.searchEntity.placeholder\":\"Begin typing the name of services etc.\",\"spentLimitSelectorCard.monthlySpendLimit.title\":\"Monthly Spend Limit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"spendLimitsTable.noLimits\":\"There are no spend limits yet.\",\"spendLimitsTable.loadingLimits\":\"Loading spending limits\",\"spendLimitsTable.progress\":\"Progress\",\"spendLimitsTable.projections\":\"Forecast\",\"spendLimitsTable.actual\":\"Current Spend\",\"spendLimitsTable.limit\":\"Spend Limit Amount\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchSubscriptionButton.errorMessage\":\"There was an error encountered while patching this subscription. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"subscriptionManageMenu.editSpendLimit\":\"Set Spend Limit\",\"subscriptionManageMenu.editName\":\"Edit Name\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"subscriptionMetadataChips.viewInAzure\":\"View in Azure\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchTagButton.errorMessage\":\"There was an error encountered while patching this tag keyvalue. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagForm.tagKey.title\":\"Key\",\"tagForm.tagValue.title\":\"Value\",\"tagForm.newTag\":\"New Tag\",\"tagForm.noTags\":\"You do not currently have any tags here\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagKeyAutocomplete.tagKey.label\":\"Key\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagKeyValueManageMenu.editSpendLimit\":\"Set Spend Limit\",\"tagKeyValueManageMenu.promoteToDimension\":\"Promote to Dimension!\",\"tagKeyValueManageMenu.demoteToTagKey\":\"Demote to Tag Key!\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingActionLeftInput.AddNewTagAction.left\":\"Key\",\"tagMappingActionLeftInput.CopyValue.left\":\"Source Key\",\"tagMappingActionLeftInput.RemoveTag.left\":\"Key\",\"tagMappingActionLeftInput.Markup.left\":\"Markup %\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingActionRightInput.AddNewTagAction.right\":\"Value\",\"tagMappingActionRightInput.CopyValue.right\":\"Target Key\",\"tagMappingActionRightInput.RemoveTag.right\":\"Remove\",\"tagMappingActionRightInput.Markup.right\":\"Markup %\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingActionTypeSelect.AddNewTagAction.title\":\"Add Tag\",\"tagMappingActionTypeSelect.CopyValue.title\":\"Copy Value\",\"tagMappingActionTypeSelect.RemoveTag.title\":\"Remove Tag\",\"tagMappingActionTypeSelect.Markup.title\":\"Markup Cost\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingFormCardContent.SourceRowField_Insensitive.condition\":\"Field Name\",\"tagMappingFormCardContent.SourceRowField_Sensitive.condition\":\"Field Name\",\"tagMappingFormCardContent.SourceTagKeyValue_Insensitive.condition\":\"Tag Key\",\"tagMappingFormCardContent.SourceTagKeyValue_Sensitive.condition\":\"Tag Key\",\"tagMappingFormCardContent.Subscription_Insensitive.condition\":\"Subscription Name\",\"tagMappingFormCardContent.Subscription_Sensitive.condition\":\"Subscription Name\",\"tagMappingFormCardContent.CloudAccount_Insensitive.condition\":\"Cloud Account Name\",\"tagMappingFormCardContent.CloudAccount_Sensitive.condition\":\"Cloud Account Name\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingConditionRightInput.conditionMatches\":\"Matches\",\"tagMappingConditionRightInput.conditionMatch\":\"Match\",\"tagMappingConditionRightInput.matchesDescription\":\"Condition will pass if any matches are true\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingConditionTypeSelect.SourceRowField_Insensitive.title\":\"Source Row Field\",\"tagMappingConditionTypeSelect.SourceRowField_Sensitive.title\":\"Source Row Field (Case sensitive)\",\"tagMappingConditionTypeSelect.SourceTagKeyValue_Insensitive.title\":\"Tag Key Value\",\"tagMappingConditionTypeSelect.SourceTagKeyValue_Sensitive.title\":\"Tag Key Value (Case sensitive)\",\"tagMappingConditionTypeSelect.Subscription_Insensitive.title\":\"Subscription Name\",\"tagMappingConditionTypeSelect.Subscription_Sensitive.title\":\"Subscription Name (Case sensitive)\",\"tagMappingConditionTypeSelect.CloudAccount_Insensitive.title\":\"Cloud Account Name\",\"tagMappingConditionTypeSelect.CloudAccount_Sensitive.title\":\"Cloud Account Name (Case sensitive)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagMappingFormCardContent.AddNewTagAction.right\":\"Value\",\"tagMappingFormCardContent.CopyValue.right\":\"Target Key\",\"tagMappingFormCardContent.RemoveTag.right\":\"Remove\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagValueAutocomplete.tagValue.label\":\"Value\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"chooseTenantCard.title.default\":\"Choose Tenant\",\"chooseTenantCard.subtitle.default\":\"Please choose a tenant\",\"chooseTenantCard.subtitle.none\":\"No tenants available\",\"chooseTenantCard.contact\":\"Please contact support\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.createTenantDialog.title\":\"Create Tenant\",\"views.createTenantDialog.subtitle\":\"The tenant you create here will be charged under your current billing agreement unless other arrangements are made specifically.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteTenantButton.errorMessage\":\"There was an error encountered while deleting this tenant. If everything looks right please contact support so we can help you :)\",\"deleteTenantButton.unauthorisedMessage\":\"You do not have permission to delete this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"postTenantButton.errorMessage\":\"There was an error encountered while creating this tenant. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putTenantButton.errorMessage\":\"There was an error encountered while updating this tenant. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setTenantCard.name.required\":\"A name is required for tenants\",\"setTenantCard.currencyCode.required\":\"A currency code is required for tenants\",\"setTenantCard.mpn\":\"Microsoft Partner Number\",\"setTenantCard.tagHeirarchy1\":\"Tag Key 1\",\"setTenantCard.tagHeirarchy2\":\"Tag Key 2\",\"setTenantCard.tagHeirarchy3\":\"Tag Key 3\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tenantRadioGroup.create-button\":\"Create Tenant\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"dateRangeButtonToggle.customButtonText\":\"Custom\",\"dateRangeButtonToggle.updateButtonText\":\"Update\",\"dateRangeButtonToggle.allButtonText\":\"All\",\"dateRangeButtonToggle.formInvalidText\":\"Please select a valid date range to continue.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"dateRangeSelect.label\":\"Date range\",\"dateRangeSelect.key_30d.title\":\"Last 30 days\",\"dateRangeSelect.key_60d.title\":\"Last 60 days\",\"dateRangeSelect.key_90d.title\":\"Last 90 days\",\"dateRangeSelect.key_lastMonth.title\":\"Last month\",\"dateRangeSelect.key_thisMonth.title\":\"This month\",\"dateRangeSelect.key_6m.title\":\"Last 6 months\",\"dateRangeSelect.key_13m.title\":\"All usage\",\"dateRangeSelect.key_all.title\":\"All usage\",\"dateRangeSelect.key_custom.title\":\"Custom\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"segregationButtonToggle.products.title\":\"Products\",\"segregationButtonToggle.productCategories.title\":\"Categories\",\"segregationButtonToggle.productcategories.title\":\"Categories\",\"segregationButtonToggle.services.title\":\"Services\",\"segregationButtonToggle.subscriptions.title\":\"Subscriptions\",\"segregationButtonToggle.meters.title\":\"Meters\",\"segregationButtonToggle.cloudAccounts.title\":\"Cloud Connections\",\"segregationButtonToggle.cloudaccounts.title\":\"Cloud Connections\",\"segregationButtonToggle.regions.title\":\"Regions\",\"segregationButtonToggle.tags.title\":\"Tags\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"spendUsageOptionsToolbar.label\":\"Filter results by entities\",\"segregationButtonToggle.products.title\":\"Products\",\"segregationButtonToggle.products.description\":\"Names of the offerings provided by the cloud vendor\",\"segregationButtonToggle.productCategories.title\":\"Categories\",\"segregationButtonToggle.productCategories.description\":\"Classified product groupings\",\"segregationButtonToggle.services.title\":\"Services\",\"segregationButtonToggle.services.description\":\"Individual resources or licenses within a cloud vendor.\",\"segregationButtonToggle.subscriptions.title\":\"Subscriptions\",\"segregationButtonToggle.subscriptions.description\":\"A billing group within a cloud vendor.\",\"segregationButtonToggle.meters.title\":\"Meters\",\"segregationButtonToggle.meters.description\":\"The unit of action being charged on a resource\",\"segregationButtonToggle.cloudAccounts.title\":\"Cloud Connections\",\"segregationButtonToggle.cloudAccounts.description\":\"Individual technical connections to a cloud vendor\",\"segregationButtonToggle.regions.title\":\"Regions\",\"segregationButtonToggle.regions.description\":\"Vendor specific geographical boundaries\",\"segregationButtonToggle.tags.title\":\"Tags\",\"segregationButtonToggle.tags.description\":\"User defined tags\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"spendUsageTable.exportText.btnText\":\"Export CSV\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"usageComparison.comparisontimeframe\":\"Comparison timeframe\",\"usageComparison.currentperiodending\":\"Current period ending\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"usageComparisonsTable.headers.name\":\"Name\",\"usageComparisonsTable.headers.difference\":\"Difference\",\"usageComparisonsTable.headers.past\":\"Past\",\"usageComparisonsTable.headers.current\":\"Current\",\"usageComparisonsTable.exportBtnText\":\"Export CSV\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"usageFieldSelect.ChargeDate.title\":\"Charge date\",\"usageFieldSelect.SourceCost.title\":\"Source cost\",\"usageFieldSelect.Cost.title\":\"Cost\",\"usageFieldSelect.PriceChannels.title\":\"Price channels\",\"usageFieldSelect.Currency.title\":\"Currency\",\"usageFieldSelect.Unit.title\":\"Unit\",\"usageFieldSelect.UnitsConsumed.title\":\"Units consumed\",\"usageFieldSelect.MeterId.title\":\"Meter ID\",\"usageFieldSelect.MeterName.title\":\"Meter name\",\"usageFieldSelect.ServiceId.title\":\"Service ID\",\"usageFieldSelect.ServiceName.title\":\"Service name\",\"usageFieldSelect.ServiceTypes.title\":\"Service types\",\"usageFieldSelect.RegionName.title\":\"Region name\",\"usageFieldSelect.ImportId.title\":\"Import ID\",\"usageFieldSelect.ProductName.title\":\"Product name\",\"usageFieldSelect.Tags.title\":\"Tags\",\"usageFieldSelect.ResourceName.title\":\"Resource name\",\"usageFieldSelect.MetaData.title\":\"Metadata\",\"usageFieldSelect.AltServiceId.title\":\"Alt service ID\",\"usageFieldSelect.AltServiceName.title\":\"Alt service name\",\"usageFieldSelect.AltUsageItemType.title\":\"Alt usage item type\",\"usageFieldSelect.CO2e.title\":\"CO2e\",\"usageFieldSelect.kWh.title\":\"kWh\",\"usageFieldSelect.CostView.title\":\"Cost view\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"virtualTagsTable.noRecords\":\"There are no virtual tags configured for this service.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createWebhookButton.errorMessage\":\"There was an error encountered while creating this webhook. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createWebhookDialog.events.successfulUpdates\":\"Successfully updated the webhook \\u0027{webhookName}\\u0027\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"editWebhookButton.errorMessage\":\"There was an error encountered while editing this webhook. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"editWebhookDialog.events.successfulUpdates\":\"Successfully updated the webhook \\u0027{webhookName}\\u0027\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"annotationDialog.dialogTitle\":\"Annotations\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"annotationDialog.dialogTitle\":\"Annotations\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"alibabaCloudAccountsTable.accessKeyId\":\"Access Key Id\",\"alibabaCloudAccountsTable.regionCode\":\"Region Code\",\"alibabaCloudAccountsTable.expiry\":\"Expiry\",\"alibabaCloudAccountsTable.noData\":\"No alibaba cloud connections configured.\",\"alibabaCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"alibabaRegionAutocomplete.noRegionHint\":\"Please specify the region which you are connecting to.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAlibabaCredentialsCard.title\":\"Set Alibaba Credentials\",\"setAlibabaCredentialsCard.name.required\":\"An name for this cloud connection is required\",\"setAlibabaCredentialsCard.accessKeyId\":\"Access Key ID\",\"setAlibabaCredentialsCard.accessKeyId.required\":\"Access Key ID is required\",\"setAlibabaCredentialsCard.regionCode\":\"Alibaba Region\",\"setAlibabaCredentialsCard.secretAccessKey\":\"Access Key Secret\",\"setAlibabaCredentialsCard.secretAccessKey.required\":\"Access Key Secret is required\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"amazonWSCloudAccountsTable.accessKeyId\":\"Access Key Id\",\"amazonWSCloudAccountsTable.bucketName\":\"Bucket Name\",\"amazonWSCloudAccountsTable.expiry\":\"Expiry\",\"amazonWSCloudAccountsTable.noData\":\"No amazon cloud connections configured.\",\"amazonWSCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createAmazonAccountMenu.AwsAssumeRoleUsage.top\":\"Amazon\",\"createAmazonAccountMenu.AwsAssumeRoleUsage.text\":\"AWS Assume Role Connection\",\"createAmazonAccountMenu.AwsAssumeRoleUsage.bottom\":\"Preferred method of connecting to AWS. This will require you to enable cross-account access.\",\"createAmazonAccountMenu.AwsIamUsage.top\":\"Amazon\",\"createAmazonAccountMenu.AwsIamUsage.text\":\"AWS IAM Based Connection\",\"createAmazonAccountMenu.AwsIamUsage.bottom\":\"Legacy connection method that uses IAM Access keys. This is no longer the preferred method as it requires you to maintain expiring secret keys.\",\"createAmazonAccountMenu.AwsPax8AssumeRoleUsage.top\":\"Amazon\",\"createAmazonAccountMenu.AwsPax8AssumeRoleUsage.text\":\"AWS Assume Role Connection for Pax8\",\"createAmazonAccountMenu.AwsPax8AssumeRoleUsage.bottom\":\"Preferred method of connecting to AWS. This will require you to enable cross-account access.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"s3RegionAutocomplete.noRegionHint\":\"Please specify if your bucket is in a Chinese region.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAmazonAssumeRoleCredentialsCard.title\":\"Set AWS Assume Role Credentials\",\"setAmazonAssumeRoleCredentialsCard.name.required\":\"An name for this cloud connection is required\",\"setAmazonAssumeRoleCredentialsCard.externalId\":\"Account ID (External ID)\",\"setAmazonAssumeRoleCredentialsCard.roleArn\":\"Role ARN\",\"setAmazonAssumeRoleCredentialsCard.sessionName\":\"Session Name\",\"setAmazonAssumeRoleCredentialsCard.regionCode\":\"S3 Region\",\"setAmazonAssumeRoleCredentialsCard.s3BucketName\":\"S3 Bucket Name (Reports)\",\"setAmazonAssumeRoleCredentialsCard.s3BucketName.required\":\"S3 Bucket Name is required\",\"setAmazonAssumeRoleCredentialsCard.s3BucketName.notBucketName\":\"The provided key is not a valid S3 bucket name\",\"setAmazonAssumeRoleCredentialsCard.isPax8Format\":\"Use Pax8 AWS Format?\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAmazonWsCredentialsCard.title\":\"Set AWS IAM Access Key Credentials\",\"setAmazonWsCredentialsCard.name.required\":\"An name for this cloud connection is required\",\"setAmazonWsCredentialsCard.accessKeyId\":\"Access Key ID\",\"setAmazonWsCredentialsCard.accessKeyId.required\":\"Access Key ID is required\",\"setAmazonWsCredentialsCard.accessKeyId.notKeyId\":\"Access Key IDs comprise of 20 alphanumeric uppercase characters\",\"setAmazonWsCredentialsCard.regionCode\":\"S3 Region\",\"setAmazonWsCredentialsCard.secretAccessKey\":\"Secret Access Key\",\"setAmazonWsCredentialsCard.secretAccessKey.required\":\"Secret Access Key is required\",\"setAmazonWsCredentialsCard.secretAccessKey.notSecretKey\":\"Secret Access Keys comprise of 40 upper and lower case characters\",\"setAmazonWsCredentialsCard.s3BucketName\":\"S3 Bucket Name (Reports)\",\"setAmazonWsCredentialsCard.s3BucketName.required\":\"S3 Bucket Name is required\",\"setAmazonWsCredentialsCard.s3BucketName.notBucketName\":\"The provided key is not a valid S3 bucket name\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"azureCloudAccountsTable.noData\":\"No azure cloud connections configured.\",\"azureCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\",\"azureCloudAccountsTable.disconnectedArmConnection\":\"Please update your enhanced connection with valid credentials\",\"azureCloudAccountsTable.unsuppliedArmConnection\":\"Please supply an Azure App credential to be able to view recommendations\",\"azureCloudAccountsTable.enhancedFeatureConnection\":\"Enhanced Features\",\"azureCloudAccountsTable.subscriptions\":\"subscriptions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAzureArmCredentialsCard.title\":\"Set Azure Credentials\",\"setAzureArmCredentialsCard.name.required\":\"A name for this cloud connection is required\",\"setAzureArmCredentialsCard.tenantId\":\"Tenant ID\",\"setAzureArmCredentialsCard.tenantId.required\":\"Tenant ID is required\",\"setAzureArmCredentialsCard.tenantId.notGuid\":\"Tenant ID is not a valid GUID\",\"setAzureArmCredentialsCard.copyRemoteTags\":\"Load Current Azure Tag Hierarchy\",\"setAzureArmCredentialsCard.copyRemoteTags.tooltip\":\"Do you want to load the current subscription and resource group tags?\",\"setAzureArmCredentialsCard.clientId\":\"Client ID (App ID)\",\"setAzureArmCredentialsCard.clientId.required\":\"Client ID is required\",\"setAzureArmCredentialsCard.clientId.notGuid\":\"Client ID is not a valid GUID\",\"setAzureArmCredentialsCard.clientSecret\":\"Client Secret\",\"setAzureArmCredentialsCard.clientSecret.required\":\"Client Secret is required\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAzureCmeCredentialsCard.title\":\"Set Azure Credentials (Cost Management Export)\",\"setAzureCmeCredentialsCard.name.required\":\"A name for this cloud connection is required\",\"setAzureCmeCredentialsCard.tenantId\":\"Tenant ID\",\"setAzureCmeCredentialsCard.tenantId.required\":\"Tenant ID is required\",\"setAzureCmeCredentialsCard.tenantId.notGuid\":\"Tenant ID is not a valid GUID\",\"setAzureCmeCredentialsCard.copyRemoteTags\":\"Load Current Azure Tags\",\"setAzureCmeCredentialsCard.copyRemoteTags.tooltip\":\"Do you want to load the current subscription and resource group tags?\",\"setAzureCmeCredentialsCard.clientId\":\"Client ID (App ID)\",\"setAzureCmeCredentialsCard.storageAccount\":\"Storage Account Name\",\"setAzureCmeCredentialsCard.storageAccount.required\":\"Storage Account Name is required\",\"setAzureCmeCredentialsCard.container\":\"Container Name\",\"setAzureCmeCredentialsCard.container.required\":\"Container Name is required\",\"setAzureCmeCredentialsCard.directoryName\":\"Directory Name\",\"setAzureCmeCredentialsCard.directoryName.required\":\"Directory is required\",\"setAzureCmeCredentialsCard.exportName\":\"Export Name\",\"setAzureCmeCredentialsCard.exportName.required\":\"Export Name is required\",\"setAzureCmeCredentialsCard.clientId.required\":\"Client ID is required\",\"setAzureCmeCredentialsCard.clientId.notGuid\":\"Client ID is not a valid GUID\",\"setAzureCmeCredentialsCard.clientSecret\":\"Client Secret\",\"setAzureCmeCredentialsCard.clientSecret.required\":\"Client Secret is required\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setAzureEaCredentialsCard.title\":\"Set Azure EA Credentials\",\"setAzureEaCredentialsCard.enrollmentNumber\":\"Enrollment Number\",\"setAzureEaCredentialsCard.expiryDate\":\"Expiry Date\",\"setAzureEaCredentialsCard.eaApiKey\":\"EA Api Key\",\"setAzureEaCredentialsCard.name.required\":\"An name for this cloud connection is required\",\"setAzureEaCredentialsCard.eaApiKey.required\":\"An ea api key is required for this cloud connection\",\"setAzureEaCredentialsCard.eaApiKey.parseError\":\"The ea api key supplied is not valid\",\"setAzureEaCredentialsCard.eaApiKey.expired\":\"The ea api key supplied has expired.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"showAzureSubscriptions.title\":\"Azure App Credential Subscriptions\",\"showAzureSubscriptions.subscriptions\":\"Subscriptions\",\"showAzureSubscriptions.noSubscriptions\":\"No Subscriptions visible.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"cloudAccountCopiesTable.customerName\":\"Customer Name\",\"cloudAccountCopiesTable.sharedCloudAccountName\":\"Shared Cloud Connection Name\",\"cloudAccountCopiesTable.markupPercentage\":\"Markup Percentage\",\"cloudAccountCopiesTable.tagAllocations\":\"Tags\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createCloudAccountMenu.AzureEa.top\":\"Azure\",\"createCloudAccountMenu.AzureEa.text\":\"Azure Enterprise Agreement\",\"createCloudAccountMenu.AzureEa.bottom\":\"For Azure subscriptions that have been provisioned through an enterprise agreement. Will require admin access to https://ea.azure.com\",\"createCloudAccountMenu.Azure.top\":\"Azure\",\"createCloudAccountMenu.Azure.text\":\"Azure Account (Legacy)\",\"createCloudAccountMenu.Azure.bottom\":\"(Legacy connection method) For all Azure offer types.\",\"createCloudAccountMenu.AzureCme.top\":\"Azure\",\"createCloudAccountMenu.AzureCme.text\":\"Azure Account (Cost Management Export)\",\"createCloudAccountMenu.AzureCme.bottom\":\"Preferred Connection Method for all Azure offer types with the exception of Enterprise Agreements (0136P).\",\"createCloudAccountMenu.AzurePax8.top\":\"Azure Pax8\",\"createCloudAccountMenu.AzurePax8.text\":\"Azure Pax8\",\"createCloudAccountMenu.AzurePax8.bottom\":\"Proprietary connection type for PAX8.\",\"createCloudAccountMenu.Amazon.top\":\"AWS\",\"createCloudAccountMenu.Amazon.text\":\"Amazon Web Services Account\",\"createCloudAccountMenu.Amazon.bottom\":\"For all AWS accounts, both Linked or otherwise. This will require access to an S3 bucket containing reports.\",\"createCloudAccountMenu.Google.top\":\"GCP\",\"createCloudAccountMenu.Google.text\":\"Google Cloud Platform Project\",\"createCloudAccountMenu.Google.bottom\":\"Coming Soon!\",\"createCloudAccountMenu.MicrosoftCsp.top\":\"Distributors\",\"createCloudAccountMenu.MicrosoftCsp.text\":\"Direct Azure CSP Connection\",\"createCloudAccountMenu.MicrosoftCsp.bottom\":\"For Azure CSPs with direct connections. Will require administrative permissions in https://partner.microsoft.com\",\"createCloudAccountMenu.Rhipe.top\":\"Distributors\",\"createCloudAccountMenu.Rhipe.text\":\"Rhipe\",\"createCloudAccountMenu.Rhipe.bottom\":\"For customers of https://www.rhipe.com. This will require API keys available from PRISM.\",\"createCloudAccountMenu.VmWare.top\":\"VmWare\",\"createCloudAccountMenu.VmWare.text\":\"VMWare vSphere\",\"createCloudAccountMenu.VmWare.bottom\":\"For customers to upload priced VMWare vSphere consumption.\",\"createCloudAccountMenu.Alibaba.top\":\"Alibaba\",\"createCloudAccountMenu.Alibaba.text\":\"Alibaba Cloud\",\"createCloudAccountMenu.Alibaba.bottom\":\"For all Alibaba cloud customers.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"credentialStatusIcon.tooltip.unknown\":\"An error has occurred, this is an unknown credential status\",\"credentialStatusIcon.tooltip.unavailable\":\"Please connect the appropriate credentials to continue viewing {integrationType}.\",\"credentialStatusIcon.tooltip.allGood\":\"All {integrationType} are correctly configured.\",\"credentialStatusIcon.tooltip.partiallyGood\":\"Although you may be seeing some {integrationType} you do not have all the credentials necessary.\",\"credentialStatusIcon.tooltip.actionRequired\":\"Please review your accounts as not all {integrationType} are coming through.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customCloudAccountsTable.noData\":\"No custom cloud connections configured.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCloudAccountButton.errorMessage\":\"There was an error encountered while deleting this cloud connection. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCloudAccountCopyButton.errorMessage\":\"There was an error encountered while deleting the shared cloud connection. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCloudAccountDialog.title\":\"Delete Cloud Connection\",\"deleteCloudAccountDialog.subtitle\":\"Warning: This process is irreversible! Your cloud connection data will be deleted permanently and you will need to re-enter your credentials if you want to see your data again.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setRhipeCredentialsCard.title\":\"Set Rhipe Client Credentials\",\"setRhipeCredentialsCard.name.required\":\"An name for this cloud connection is required\",\"setRhipeCredentialsCard.clientId\":\"Client ID\",\"setRhipeCredentialsCard.clientId.required\":\"An client ID is required\",\"setRhipeCredentialsCard.clientId.notGuid\":\"The provided client ID is not a valid guid\",\"setRhipeCredentialsCard.clientSecret\":\"Client Secret\",\"setRhipeCredentialsCard.clientSecret.required\":\"An client secret is required\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"googleCloudAccountsTable.projectId\":\"Project ID\",\"googleCloudAccountsTable.dataSetId\":\"Dataset ID\",\"googleCloudAccountsTable.expiry\":\"Expiry\",\"googleCloudAccountsTable.noData\":\"No google cloud connections configured.\",\"googleCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setGoogleJsonCredentialsCard.title\":\"Set Google Credentials\",\"setGoogleJsonCredentialsCard.subtitle\":\"Google Cloud Platform JSON credentials\",\"setGoogleJsonCredentialsCard.jsonCredentials\":\"Json Credentials\",\"setGoogleJsonCredentialsCard.dataSetId\":\"Dataset ID\",\"setGoogleJsonCredentialsCard.tableId\":\"Table ID\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"oracleCloudAccountsTable.tenancyId\":\"Tenancy ID\",\"oracleCloudAccountsTable.userId\":\"User ID\",\"oracleCloudAccountsTable.noData\":\"No oracle cloud connections configured.\",\"oracleCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setOracleCredentialsCard.title\":\"Set Oracle Credentials\",\"setOracleCredentialsCard.subtitle\":\"Oracle Cloud credentials\",\"setOracleCredentialsCard.pemCredentials\":\"PEM Credentials\",\"setOracleCredentialsCard.tenancyId\":\"Tenancy ID\",\"setOracleCredentialsCard.userId\":\"User ID\",\"setOracleCredentialsCard.regionId\":\"Region ID\",\"setOracleCredentialsCard.fingerprint\":\"Fingerprint\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"patchCloudAccountButton.errorMessage\":\"There was an error encountered while updating this cloud connection. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createCloudAccountButton.errorMessage\":\"There was an error encountered while creating this cloud connection. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putCredentialButton.errorMessage\":\"There was an error encountered while updating the credentials of this cloud connection. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setCloudAccountCurrenciesCard.title\":\"Set Currency Source\",\"setCloudAccountCurrenciesCard.subtitle\":\"Change the currency source of this cloud connection.\",\"setCloudAccountCurrenciesCard.alert\":\"Changes to the currency source of a cloud connection only apply to the current month on.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setSnowflakeCredentialsCard.title\":\"Set Snowflake Credentials\",\"setSnowflakeCredentialsCard.accountName\":\"Account Name\",\"setSnowflakeCredentialsCard.organizationName\":\"Organization Name\",\"setSnowflakeCredentialsCard.userName\":\"User Name\",\"setSnowflakeCredentialsCard.password\":\"Password\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"snowflakeCloudAccountsTable.orgName\":\"Organization\",\"snowflakeCloudAccountsTable.accountName\":\"Account\",\"snowflakeCloudAccountsTable.noData\":\"No snowflake cloud connections configured.\",\"snowflakeCloudAccountsTable.disconnectedUsageConnection\":\"Please update your usage connection with valid credentials\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setUserCard.title\":\"Set User Details\",\"setUserCard.subtitle\":\"Please enter the details for this user. New users will be sent an invite email directly.\",\"setUserCard.canRead.title\":\"Reader\",\"setUserCard.canRead.subtitle\":\"Can read all non-administrative data in this tenant.\",\"setUserCard.canContribute.title\":\"Contributor\",\"setUserCard.canContribute.subtitle\":\"Can perform non-administrative write functions like setting spend limits and adding annotations.\",\"setUserCard.canAdminister.title\":\"Administrator\",\"setUserCard.canAdminister.subtitle\":\"Can read and write administrative data, such as adding users to a tenant and creating new cloud connections.\",\"setUserCard.canManageBilling.title\":\"Billing Administrator\",\"setUserCard.canManageBilling.subtitle\":\"Can manage billing functions of the tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setPermissionsCard.title\":\"Set Permissions\",\"setPermissionsCard.subtitle\":\"Indicate the level of permissions this entity should have over this tenant.\",\"setPermissionsCard.canRead.title\":\"Reader\",\"setPermissionsCard.canRead.subtitle\":\"Can read all non-administrative data in this tenant.\",\"setPermissionsCard.canContribute.title\":\"Contributor\",\"setPermissionsCard.canContribute.subtitle\":\"Can perform non-administrative write functions like setting spend limits and adding annotations.\",\"setPermissionsCard.canAdminister.title\":\"Administrator\",\"setPermissionsCard.canAdminister.subtitle\":\"Can read and write administrative data, such as adding users to a tenant and creating new cloud connections.\",\"setPermissionsCard.canManageBilling.title\":\"Billing Administrator\",\"setPermissionsCard.canManageBilling.subtitle\":\"Can manage billing functions of the tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"addCustomerButton.errorMessage\":\"There was an error encountered while creating this customer. If everything looks right please contact support.\",\"addCustomerButton.submit\":\"Submit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"navMenuList.subheaders.costAndUsage\":\"Costs and Usage\",\"navMenuList.subheaders.tracking\":\"Tracking\",\"navMenuList.subheaders.reporting\":\"Reporting\",\"navMenuList.subheaders.customers\":\"Customers\",\"navMenuList.subheaders.settings\":\"Settings\",\"navMenuList.financeDashboard\":\"Overview\",\"navMenuList.opsDashboard\":\"Operations\",\"navMenuList.trendsDashboard\":\"Trends\",\"navMenuList.reservationsDashboard\":\"Reservations\",\"navMenuList.costExplorer\":\"Cost Explorer\",\"navMenuList.reports\":\"Reports\",\"navMenuList.customViews\":\"Custom Views\",\"navMenuList.budgets\":\"Budgets & Spend Limits\",\"navMenuList.spendLimits\":\"Spend Limits\",\"navMenuList.customReports\":\"Custom Reports\",\"navMenuList.tagOverview\":\"Tag Reports\",\"navMenuList.regionOverview\":\"Cost Map\",\"navMenuList.customersOverview\":\"Customers Report\",\"navMenuList.manage\":\"Manage\",\"navMenuList.recommendations\":\"Recommendations\",\"navMenuList.accounts\":\"Accounts\",\"navMenuList.users\":\"Users\",\"navMenuList.support\":\"Contact Support\",\"navMenuList.dashboarding\":\"Custom Dashboards\",\"navMenuList.credentialTooltip\":\"There are one or more cloud connection with invalid or expired credentials.\",\"navMenuList.cloudIntelligence\":\"Cloud Intelligence\",\"navMenuList.subheaders.energy\":\"Emissions and Energy\",\"navMenuList.carbon.overview\":\"Overview\",\"navMenuList.carbon.explorer\":\"Emissions Explorer\",\"navMenuList.carbon.map\":\"Energy Map\",\"navMenuList.watchdog\":\"Watchdog\",\"navMenuList.kubernetes\":\"Kubernetes\",\"navMenuList.azureEmissions\":\"Azure Emissions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"navTenantMenuList.tenantSettings\":\"Settings\",\"navTenantMenuList.chooseTenant\":\"Change Tenant...\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"navUserMenu.title\":\"User Menu\",\"navUserMenu.changePassword\":\"Change Password\",\"navUserMenu.logOut\":\"Log Out\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"putRecommendationSettingsButton.errorMessage\":\"There was an error encountered while updating this recommendation. If everything looks right please contact support so we can help you :)\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"recommendationsnotavailable.higherplan\":\"Some recommendations are not available on your current subscription, contact\",\"recommendationsnotavailable.salesteam\":\"sales team\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"setRecommendationSettingsCard.title\":\"Configure Recommendation Settings\",\"setRecommendationSettingsCard.enabled\":\"Enabled\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.chooseProfile.title\":\"Choose Profile\",\"views.chooseProfile.logout\":\"Logout\",\"views.chooseProfile.login\":\"Choose\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"nativeCarbonDashboard.title\":\"Azure Emissions\",\"nativeCarbonDashboard.subtitle\":\"These figures use a model directly from Azure and do not match other carbon screens.\",\"nativeCarbonDashboard.titles.currentProjected\":\"Total {thisMonthName}\",\"nativeCarbonDashboard.titles.previousTotal\":\"Total {lastMonthName}\",\"nativeCarbonDashboard.titles.cumulative\":\"12 months cumulative\",\"nativeCarbonDashboard.error.loadingRegions\":\"There was an issue loading your regions. If this problem persists please contact support.\",\"nativeCarbonDashboard.error.loadingRegionTotals\":\"There was an issue loading your region carbon data. If this problem persists please contact support.\",\"dashboard.titles.potentialSavings\":\"Potential Monthly Savings\",\"dashboard.recommendationStatus.loading\":\"Loading...\",\"dashboard.recommendationStatus.unknown\":\"Unknown status\",\"dashboard.recommendationStatus.unavailable\":\"Unavailable\",\"dashboard.recommendationStatus.allGood\":\"All good\",\"dashboard.recommendationStatus.partiallyGood\":\"New credentials required\",\"dashboard.recommendationStatus.actionRequired\":\"Connection broken\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"budgetdetails.title\":\"Budget Details - {budgetName}\",\"budgetdetails.chartTitle\":\"Budget Periods\",\"budgetdetails.backButton\":\"Back to Budgets\",\"budgetdetails.table.period\":\"Budget Period\",\"budgetdetails.table.amount\":\"Budget Amount\",\"budgetdetails.table.actual\":\"Actual Spend\",\"budgetdetails.table.varianceamount\":\"Delta Amount\",\"budgetdetails.table.variancepercentage\":\"Delta %\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"budgets.basl_title\":\"Budgets & Spend Limits\",\"budgets.sl_title\":\"Spend Limits\",\"budgets.subTitle\":\"Budgets\",\"budgets.caption\":\"Budgets let you set limits on resources. Notifications are sent when spend is projected to exceed 75%, 90%, and 100% of the budgeted amount.\",\"budgets.spendlimits.title\":\"Spend Limits\",\"budgets.spendlimits.caption\":\"Spend limits are simplified budgets that can be applied quickly to a range of entity types in the platform.\",\"budgets.titles.totalBudgets\":\"Total Budgets & Limits\",\"budgets.titles.totalSpendLimits\":\"Total Spend Limits\",\"budgets.titles.totalProjectedAbove\":\"Total Projected Above\",\"budgets.titles.totalActuallyAbove\":\"Total Actually Above\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"emissionsExplorer.title\":\"Emissions Explorer\",\"emissionsExplorer.tabs.productcategories\":\"Product Categories\",\"emissionsExplorer.tabs.resources\":\"Services\",\"emissionsExplorer.tabs.subscriptions\":\"Subscriptions\",\"emissionsExplorer.tabs.cloudaccounts\":\"Cloud Connections\",\"emissionsExplorer.tabs.products\":\"Products\",\"emissionsExplorer.headers.productcategories\":\"Product Category\",\"emissionsExplorer.headers.subscriptions\":\"Subscription Name\",\"emissionsExplorer.headers.cloudaccounts\":\"Cloud Connection Name\",\"emissionsExplorer.headers.products\":\"Product Name\",\"emissionsExplorer.headers.services\":\"Service Name\",\"emissionsExplorer.headers.tags\":\"Tag Value\",\"emissionsExplorer.toast.navigationError\":\"Detailed information not yet available for this dimension\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"carbonMap.title\":\"Region Overview\",\"carbonMap.error.loadingRegions\":\"There was an issue loading your regions. If this problem persists please contact support.\",\"carbonMap.error.loadingRegionTotals\":\"There was an issue loading your region spend. If this problem persists please contact support.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"carbonDashboard.title\":\"Emissions and Energy\",\"carbonDashboard.titles.currentProjected\":\"Total {thisMonthName}\",\"carbonDashboard.titles.previousTotal\":\"Total {lastMonthName}\",\"carbonDashboard.titles.cumulative\":\"12 months cumulative\",\"carbonDashboard.error.loadingRegions\":\"There was an issue loading your regions. If this problem persists please contact support.\",\"carbonDashboard.error.loadingRegionTotals\":\"There was an issue loading your region carbon data. If this problem persists please contact support.\",\"dashboard.titles.potentialSavings\":\"Potential Monthly Savings\",\"dashboard.recommendationStatus.loading\":\"Loading...\",\"dashboard.recommendationStatus.unknown\":\"Unknown status\",\"dashboard.recommendationStatus.unavailable\":\"Unavailable\",\"dashboard.recommendationStatus.allGood\":\"All good\",\"dashboard.recommendationStatus.partiallyGood\":\"New credentials required\",\"dashboard.recommendationStatus.actionRequired\":\"Connection broken\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"copyCloudAccount.chooseTenant.title\":\"Sharing\",\"copyCloudAccount.chooseTenant.caption\":\"Choose the cloud connection to copy into which customer.\",\"copyCloudAccount.chooseTenant.share\":\"Share cloud connection credentials for enhanced services e.g. Recommendations and reservations.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"copyCloudAccount.finish.title\":\"Finish\",\"copyCloudAccount.finish.caption\":\"Finally what would you like to call the shared cloud connection.\",\"copyCloudAccount.finish.name.label\":\"Shared cloud connection name\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"copyCloudAccount.index.title\":\"Sharing {cloudAccountName}\",\"copyCloudAccount.steps.chooseTenant\":\"Share Details\",\"copyCloudAccount.steps.pricing\":\"Pricing\",\"copyCloudAccount.steps.filters\":\"Filters\",\"copyCloudAccount.steps.finish\":\"Finish\",\"copyCloudAccount.success.added\":\"Shared cloud connection into customer\",\"copyCloudAccount.success.updated\":\"Updated shared cloud connection rules\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"copyCloudAccount.pricing.title\":\"Pricing\",\"copyCloudAccount.pricing.caption\":\"The pricing rules for the copied account.\",\"copyCloudAccount.pricing.baseCostOnly\":\"This cloud connection type only supports base cost pricing\",\"copyCloudAccount.pricing.initialPrice\":\"Price Basis\",\"copyCloudAccount.pricing.markupPercent\":\"Markup Percent %\",\"copyCloudAccount.pricing.noMarkups\":\"No Markups have been set\",\"copyCloudAccount.pricing.newMarkup\":\"New Markup\",\"copyCloudAccount.pricing.effectiveFrom\":\"Effective From\",\"copyCloudAccount.pricing.useTenantCurrencies\":\"Use Tenant Currencies\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"copyCloudAccount.tags.title\":\"Filter by Tags\",\"copyCloudAccount.tags.caption\":\"You may optionally filter the usage in the copied cloud connection to only include spend, services or subscriptions with the given tags. The evaluation of these tags is an OR, i.e. if any of these tag conditions are met copy.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customView.title\":\"Custom View - {customviewName}\",\"customView.failedToLoad\":\"There was an issue loading this custom report.\",\"customView.backButtonText\":\"Back to custom views\",\"customView.lastMonth\":\"Total {lastMonthName}\",\"customView.currentMonth\":\"Projected {thisMonthName}\",\"customView.budgets\":\"Budget Status\",\"customView.usage\":\"Usage\",\"customView.overview\":\"Overview\",\"customView.lessThan\":\"{percentage}% less than {month}\",\"customView.moreThan\":\"{percentage}% more than {month}\",\"customView.titles.creditsLastMonth\":\"Includes {credits} of credits and discounts\",\"customView.budgetExceedsActual\":\"Budget exceeds actual\",\"customView.budgetExceedsForecast\":\"Budget exceeds forecast\",\"customView.budgetAllGood\":\"All Budgets under forecast\",\"customView.budgetNotAvailable\":\"No Budgets set\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customViews.title\":\"Custom Views\",\"customViews.subtitle\":\"Custom views are re-usable filters that can be applied to spend.\",\"customViews.failedToLoad\":\"There was an issue loading the custom views.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customView.overview.title\":\"Custom Views\",\"customView.overview.subtitle\":\"Custom views are re-usable filters that can be applied to spend.\",\"customView.overview.failedToLoad\":\"There was an issue loading the custom views.\",\"customView.overview.yearInReview\":\"Year in review\",\"customView.overview.monthAverage\":\"{total} {currency} / Month Average\",\"customView.budgets.subTitle\":\"Related Budgets\",\"customView.budgets.caption\":\"Budgets let you set limits on resources. Notifications are sent when actuals are projected to exceed 75%, 90%, and 100% of the budgeted amount.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"createCustomer.title\":\"Create Customer\",\"createCustomer.customerName.label\":\"Customer Name\",\"createCustomer.successfulAdd\":\"Customer successfully added.\",\"createCustomer.customerIsNotForProfit.label\":\"Customer is a registered charity or not-for-profit.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customerManage.title\":\"Customer - {customerName}\",\"customerManage.failedToLoad\":\"There was an issue loading this customer.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customerManage.sharedCloudAccountName\":\"Shared Cloud Connection Name\",\"customerManage.sourceCloudAccount\":\"Source Cloud Connection\",\"customerManage.customerAccount\":\"Customer Account\",\"customerManage.origin\":\"Origin\",\"customerManage.currentMarkup\":\"Current Markup\",\"customerManage.actualMargin\":\"Actual Margin\",\"customerManage.actions\":\"Actions\",\"deleteCopyCard.subtitle\":\"Warning: This process is irreversible! The shared cloud connection data will be deleted permanently and you will need to re-share your account if you want to see your data again.\",\"deleteCopyCard.title\":\"Delete Share\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.users.title\":\"Access Management\",\"views.users.subtitle\":\"The users and groups that have some level of access of this tenant.\",\"users.inviteUserOrGroup\":\"Add User / Group\",\"users\":\"Users\",\"users.DeleteUserTitle\":\"Delete User\",\"users.DeleteUserSubtitle\":\"This user will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.customersManage.title\":\"Customers\",\"views.customersManage.name\":\"Customer Name\",\"views.customersManage.sharedAccounts\":\"# Shared Accounts\",\"views.customersManage.otherAccounts\":\"# Other Accounts\",\"views.customersManage.lastMonthCost\":\"Cost\",\"views.customersManage.lastMonthRevenue\":\"Revenue\",\"views.customersManage.profit\":\"Profit\",\"views.customersManage.lastMonthOther\":\"Other Spend\",\"views.customersManage.lastMonthMargin\":\"Margin\",\"views.customersManage.cards.totalCustomers\":\"Total Customers\",\"views.customersManage.successCreating\":\"Customer has been successfully created. These rules will be applied during the next import at the end of the day.\",\"views.customersManage.errorDeleting\":\"There was an error deleting this virtual tag. Please refresh this page and try again.\",\"views.customersManage.currentperiodending\":\"Reporting Period\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"deleteCopyCard.title\":\"Delete Copy\",\"deleteCopyCard.subtitle\":\"Warning: This process is irreversible! The copy cloud connection data will be deleted permanently and you will need to re-copy your account if you want to see your data again.\",\"dialogCloudAccount.copyCloudAccount\":\"Share Cloud Connection\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"cloudAccountDialog.cloudAccountNotFound\":\"We could not find reference to this cloud connection within this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogCloudAccount.title\":\"Cloud Connection\",\"views.dialogCloudAccount.tabs.usage\":\"Usage\",\"views.dialogCloudAccount.tabs.trends\":\"Trends\",\"views.dialogCloudAccount.tabs.virtualtags\":\"Virtual Tags\",\"views.dialogCloudAccount.tabs.copies\":\"Sharing\",\"views.dialogCloudAccount.tabs.carbon\":\"Emissions\",\"views.dialogCloudAccount.tabs.annotations\":\"Annotations\",\"views.dialogCloudAccount.accountType\":\"{type} Account\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"virtualTags.sourceDescription\":\"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\"virtualTags.errorCreating\":\"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\"virtualTags.successCreating\":\"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\"virtualTags.errorDeleting\":\"There was an error deleting this virtual tag. Please refresh this page and try again.\",\"virtualTags.successDeleting\":\"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"cloudProviderDialog.cloudProviderNotFound\":\"There is no remaining reference to this cloudProvider within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogCloudProvider.tabs.usage\":\"Usage\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customViewDialog.customViewNotFound\":\"We could not find reference to this cloud connection within this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogCustomView.title\":\"Custom View\",\"views.dialogCustomView.tabs.usage\":\"Usage\",\"views.dialogCustomView.accountType\":\"{type} Account\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"geographyDialog.geographyNotFound\":\"There is no remaining reference to this geography within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogGeography.tabs.usage\":\"Usage\",\"views.dialogGeography.tabs.carbon\":\"Emissions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"productCategoryDialog.productCategoryNotFound\":\"There is no remaining reference to this productCategory within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogProductCategory.tabs.usage\":\"Usage\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"productDialog.productNotFound\":\"There is no remaining reference to this product within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogProduct.tabs.usage\":\"Usage\",\"views.dialogProduct.tabs.carbon\":\"Emissions\",\"views.dialogProduct.tabs.trends\":\"Trends\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionDialog.regionNotFound\":\"There is no remaining reference to this region within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogRegion.tabs.usage\":\"Usage\",\"views.dialogRegion.tabs.carbon\":\"Emissions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"reservationDialog.reservationsNotFound\":\"There is no reference to this reservation currently. This may happen in rare circumstances, please check back in a few minutes.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogReservation.tabs.usage\":\"Usage\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"servicesDialog.serviceNotFound\":\"There is no remaining reference to this service within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogService.tabs.usage\":\"Usage\",\"views.dialogService.tabs.carbon\":\"Emissions\",\"views.dialogService.tabs.tags\":\"Record Tags\",\"views.dialogService.tabs.virtualtags\":\"Virtual Tags\",\"views.dialogService.tabs.annotations\":\"Annotations\",\"views.dialogService.tabs.raw\":\"Raw Data\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"serviceDialog.tags.sourceDescription\":\"The tags visible here are sourced from the last 60 days of usage records for this service. To update the tags of this service, please tag the corresponding resource in the source cloud provider. We recommend utilizing resource policies where appropriate to speed this up.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"serviceDialog.virtualTags.sourceDescription\":\"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\"serviceDialog.virtualTags.errorCreating\":\"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\"serviceDialog.virtualTags.successCreating\":\"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\"serviceDialog.virtualTags.errorDeleting\":\"There was an error deleting this virtual tag. Please refresh this page and try again.\",\"serviceDialog.virtualTags.successDeleting\":\"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"subscriptionsDialog.subscriptionNotFound\":\"There is no remaining reference to this subscription within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogSubscription.title\":\"Subscriptions\",\"views.dialogSubscription.tabs.usage\":\"Usage\",\"views.dialogSubscription.tabs.carbon\":\"Emissions\",\"views.dialogSubscription.tabs.trends\":\"Trends\",\"views.dialogSubscription.tabs.virtualtags\":\"Virtual Tags\",\"views.dialogSubscription.tabs.annotations\":\"Annotations\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"subscriptionDialog.virtualTags.sourceDescription\":\"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\"subscriptionDialog.virtualTags.errorCreating\":\"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\"subscriptionDialog.virtualTags.successCreating\":\"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\"subscriptionDialog.virtualTags.errorDeleting\":\"There was an error deleting this virtual tag. Please refresh this page and try again.\",\"subscriptionDialog.virtualTags.successDeleting\":\"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagDialog.tagNotFound\":\"There is no remaining reference to this tag within the last 13 months of usage.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dialogTag.tabs.usage\":\"Usage\",\"views.dialogTag.tabs.trends\":\"Trends\",\"views.dialogTag.tabs.carbon\":\"Emissions\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"dashboard.title\":\"Cost and Usage\",\"dashboard.accountOverview\":\"Account Overview\",\"dashboard.titles.projected\":\"Projected {thisMonthName}\",\"dashboard.titles.totalLastMonth\":\"Total {lastMonthName}\",\"dashboard.titles.potentialSavings\":\"Potential Monthly Savings\",\"dashboard.yearInReview\":\"Year in review\",\"dashboard.monthAverage\":\"{total} {currency} / Month Average\",\"dashboard.titles.creditsLastMonth\":\"Excludes {credits} of credits and discounts\",\"dashboard.usageByHeirarchy.title\":\"Usage by hierarchy\",\"dashboard.usageByHeirarchy.caption\":\"Aggregate spend across the tenant hierarchy over the last 3 months\",\"dashboard.lessThan\":\"{percentage}% less than {month}\",\"dashboard.moreThan\":\"{percentage}% more than {month}\",\"dashboard.recommendationStatus.loading\":\"Loading...\",\"dashboard.recommendationStatus.unknown\":\"Unknown status\",\"dashboard.recommendationStatus.unavailable\":\"Unavailable\",\"dashboard.recommendationStatus.allGood\":\"All good\",\"dashboard.recommendationStatus.partiallyGood\":\"New credentials required\",\"dashboard.recommendationStatus.actionRequired\":\"Connection broken\",\"dashboard.usageByHierarchy.manageHierarchy\":\"Manage hierarchy\",\"dialog.manageTenants.edit.title\":\"Update Tenant\",\"dialog.manageTenants.edit.subtitle\":\"Update the details of this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"gettingStarted.title\":\"Getting Started\",\"gettingStarted.AzureEa.top\":\"Azure\",\"gettingStarted.AzureEa.text\":\"Azure Enterprise Agreement\",\"gettingStarted.AzureEa.bottom\":\"For Azure subscriptions that have been provisioned through an enterprise agreement. Will require admin access to https://ea.azure.com\",\"gettingStarted.Azure.top\":\"Azure\",\"gettingStarted.Azure.text\":\"Azure Account\",\"gettingStarted.Azure.bottom\":\"For all Azure offer types with the exception of Enterprise Agreements (0136P) or Azure in CSP (0145P).\",\"gettingStarted.Amazon.top\":\"AWS\",\"gettingStarted.Amazon.text\":\"Amazon Web Services Account\",\"gettingStarted.Amazon.bottom\":\"For all AWS accounts, both Linked or otherwise. This will require access to an S3 bucket containing reports.\",\"gettingStarted.Google.top\":\"GCP\",\"gettingStarted.Google.text\":\"Google Cloud Platform Project\",\"gettingStarted.Google.bottom\":\"For all Google Cloud projects.\",\"gettingStarted.MicrosoftCsp.top\":\"Distributors\",\"gettingStarted.MicrosoftCsp.text\":\"Direct Azure CSP Connection\",\"gettingStarted.MicrosoftCsp.bottom\":\"For Azure CSPs with direct connections. Will require administrative permissions in https://partner.microsoft.com\",\"gettingStarted.Rhipe.top\":\"Distributors\",\"gettingStarted.Rhipe.text\":\"Rhipe\",\"gettingStarted.Rhipe.bottom\":\"For customers of https://www.rhipe.com. This will require API keys available from PRISM.\",\"gettingStarted.VmWare.top\":\"VmWare\",\"gettingStarted.VmWare.text\":\"VMWare vSphere\",\"gettingStarted.VmWare.bottom\":\"For customers to upload priced VMWare vSphere consumption.\",\"gettingStarted.Alibaba.top\":\"Alibaba\",\"gettingStarted.Alibaba.text\":\"Alibaba Cloud\",\"gettingStarted.Alibaba.bottom\":\"For all Alibaba cloud customers.\",\"gettingStarted.Oracle.top\":\"Oracle\",\"gettingStarted.Oracle.text\":\"Oracle Cloud\",\"gettingStarted.Oracle.bottom\":\"For all Oracle Cloud customers.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.gptChats.title\":\"Cloud Intelligence\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"dashboard.title\":\"Kubernetes Dashboard\",\"dashboard.filter.title\":\"Filter\",\"dashboard.filter.caption\":\"Currently viewing cluster spend from {fromDate} to {toDate}\",\"dashboard.clusters.nodata\":\"There is no cluster spend data in the selected date range\",\"dashboard.clusters.caption\":\"View the cost breakdown of the {cluster} cluster by utilisation, and namespace\",\"dashboard.clusterSpend.title\":\"Cost Breakdown\",\"dashboard.clusterSpend.caption\":\"The shared, utilised and unused costs of your {cluster} cluster\",\"dashboard.namespaces.title\":\"Namespaces\",\"dashboard.namespaces.caption\":\"The total spend of your {cluster} namespaces\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.mainView.loadingIndicator\":\"We are currently importing usage for this tenant.\",\"views.mainView.loadFailedText\":\"There was an error loading your tenant status. Please refresh to continue.\",\"views.mainView.invalidCredentialAlert\":\"Please check the following credential: \"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"notFound.title\":\"Whoops, 404\",\"notFound.message\":\"The page you were looking for does not exist\",\"notFound.back\":\"Get me out of here!\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"recommendationStatus.higherplan\":\"Some recommendations are not available on your current subscription\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customReport.title\":\"Custom Report - {reportName}\",\"customReport.failedToLoad\":\"There was an issue loading this custom report.\",\"customReport.backButtonText\":\"Back to reports\",\"customReport.editButtonText\":\"Edit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"customReports.title\":\"Custom Reports\",\"customReports.subtitle\":\"All reports created here are visible to all users within the tenant.\",\"customReports.failedToLoad\":\"There was an issue loading the custom reports.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.customerUsage.title\":\"Customers\",\"views.customerUsage.dateRangeFormat\":\"{startPeriodString} to {endPeriodString}\",\"views.customerUsage.cards.totalRevenue\":\"Total Revenue\",\"views.customerUsage.cards.totalCost\":\"Total Cost\",\"views.customerUsage.cards.totalProfit\":\"Total Profit\",\"views.customerUsage.cards.margin\":\"Margin\",\"views.customerUsage.cards.totalCustomers\":\"Total Customers\",\"views.customerUsage.exportFileName\":\"customers.csv\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"regionOverview.title\":\"Region Overview\",\"regionOverview.filterNumber\":\"Minimum Spend\",\"regionOverview.error.loadingRegions\":\"There was an issue loading your regions. If this problem persists please contact support.\",\"regionOverview.error.loadingRegionTotals\":\"There was an issue loading your region spend. If this problem persists please contact support.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"tagsOverview.title\":\"Tag Report\",\"tagsOverview.runReport\":\"Run Report\",\"tagsOverview.primaryTagKey\":\"Primary Tag Key\",\"tagsOverview.additionalTagKeys\":\"Additional Tag Key/s\",\"tagsOverview.dates.start\":\"Start date\",\"tagsOverview.dates.end\":\"End date\",\"tagsOverview.titles.reportFilters\":\"Report Filters\",\"tagsOverview.titles.totalSpend\":\"Total Spend By tag\",\"tagsOverview.export\":\"export\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"reservationsDashboard.title\":\"Reservations Dashboard\",\"reservationsDashboard.subtitle\":\"Reservations\",\"reservationsDashboard.caption\":\"Account Reservations available in the current scope.\",\"reservationsDashboard.exportBtnText\":\"Export CSV\",\"reservationsDashboard.headers.cloudProviderType\":\"Provider\",\"reservationsDashboard.headers.cloudAccountName\":\"Cloud Connection\",\"reservationsDashboard.headers.commitmentType\":\"Commitment Type\",\"reservationsDashboard.headers.commitmentId\":\"Commitment Id\",\"reservationsDashboard.headers.productName\":\"Product Name\",\"reservationsDashboard.headers.quantity\":\"Quantity\",\"reservationsDashboard.headers.region\":\"Region\",\"reservationsDashboard.headers.paymentOption\":\"Payment Option\",\"reservationsDashboard.headers.startDate\":\"Start Date\",\"reservationsDashboard.headers.thirtyDayUtil\":\"30day Utilisation\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"resourceExplorer.title\":\"Cost Explorer\",\"resourceExplorer.tabs.productcategories\":\"Product Categories\",\"resourceExplorer.tabs.resources\":\"Services\",\"resourceExplorer.tabs.subscriptions\":\"Subscriptions\",\"resourceExplorer.tabs.cloudproviders\":\"Cloud Providers\",\"resourceExplorer.tabs.cloudaccounts\":\"Cloud Connections\",\"resourceExplorer.tabs.products\":\"Products\",\"resourceExplorer.headers.productCategories\":\"Product Category\",\"resourceExplorer.headers.subscriptions\":\"Subscription Name\",\"resourceExplorer.headers.cloudAccounts\":\"Cloud Connection Name\",\"resourceExplorer.headers.products\":\"Product Name\",\"resourceExplorer.headers.services\":\"Service Name\",\"resourceExplorer.headers.tags\":\"Tag Value\",\"resourceExplorer.toast.navigationError\":\"Detailed information not yet available for this dimension\",\"resourceExplorer.rangeSelectedDialog.dialogTitle\":\"Range Information\",\"resourceExplorer.annotationDialog.dialogTitle\":\"Annotations\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.selfService.createTenant.logout\":\"Logout\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.alibaba.title\":\"Alibaba Cloud Connections\",\"settings.alibaba.subtitle\":\"All cloud connections importing Alibaba Cloud usage data in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.amazon.title\":\"AWS Cloud Connections\",\"settings.amazon.subtitle\":\"All cloud connections importing AWS usage data in this tenant.\",\"settings.amazon.editNew\":\"Edit Assume Role Credentials\",\"settings.amazon.editLegacy\":\"Edit IAM Access Key Credentials\",\"copy cloud connection\":\"Copy Cloud Connection\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"apiManagement.title\":\"Api Management\",\"apiManagement.subTitle\":\"API Keys\",\"apiManagement.caption\":\"The following API Key Management enables access to the public CloudCtrl API. You can find more information under the API documentation.\",\"apiManagement.createKey\":\"Create Key\",\"apiManagement.table.noData\":\"There are no keys configured yet\",\"apiManagement.table.referenceColumn\":\"Reference\",\"apiManagement.table.permissions\":\"Permissions\",\"apiManagement.table.creationDateColumn\":\"Creation Date\",\"apiManagement.table.createdByEmail\":\"Created By\",\"apiManagement.table.loading\":\"Loading API keys\",\"apiManagement.deleteDialog.title\":\"Delete API Key\",\"apiManagement.deleteDialog.subtitle\":\"This action is not reversable, you will need to generate a new key.\",\"apiManagement.deletedKeyToast\":\"Deleted the API Key\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"startdate\":\"Start Date\",\"eventtype\":\"Event Type\",\"environment\":\"Environment\",\"duration\":\"Duration (ms)\",\"status\":\"Status\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.azure.title\":\"Azure Cloud Connections\",\"settings.azure.subtitle\":\"All cloud connections importing Azure usage data in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"billingDetails.title\":\"Billing details\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.custom.title\":\"Custom Cloud Connections\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.dimensions.title\":\"Dimensions\",\"views.dimensions.caption\":\"Dimensions are elevated tag keys that are useful for tenants that have large datasets.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.manageTenants.title\":\"General Settings\",\"views.manageTenants.my.title\":\"General Settings\",\"views.manageTenants.my.caption\":\"Name, currency and other general settings for this tenant.\",\"views.manageTenants.edit.button\":\"Edit\",\"views.manageTenants.name\":\"Name\",\"views.manageTenants.tenantId\":\"Tenant ID\",\"views.manageTenants.display.currency\":\"Display Currency\",\"views.manageTenants.display.mpn\":\"Microsoft Partner Number\",\"views.manageTenants.edit.title\":\"Update Tenant\",\"views.manageTenants.edit.subtitle\":\"Update the details of this tenant. FX Rates will be applied on the underlying cloud currencies immediately.\",\"views.manageTenants.delete.button\":\"Delete\",\"views.manageTenants.delete.title\":\"Delete Tenant\",\"views.manageTenants.delete.subtitle\":\"Please consider this carefully before continuing, this action cannot be reversed. You will always be able to create a new tenant and re-import your usage but you will lose all custom tags, spend limits etc. forever.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.google.title\":\"Google Cloud Connections\",\"settings.google.subtitle\":\"All cloud connections importing GCP usage data in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.groups.title\":\"Groups\",\"settings.groups.subtitle\":\"Groups of users who can be invited to multiple tenants and inheret permissions granted to a group.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.title\":\"Settings\",\"settings.tabs.amazon\":\"Amazon\",\"settings.tabs.azure\":\"Azure\",\"settings.tabs.google\":\"Google\",\"settings.tabs.oracle\":\"Oracle\",\"settings.tabs.alibaba\":\"Alibaba\",\"settings.tabs.snowflake\":\"Snowflake\",\"settings.tabs.users\":\"Access Management\",\"settings.tabs.groups\":\"Groups\",\"settings.tabs.general\":\"General\",\"settings.tabs.billing\":\"Billing\",\"settings.tabs.apimanagement\":\"Api Keys\",\"settings.tabs.actions\":\"Actions\",\"settings.tabs.custom\":\"Custom\",\"settings.tabs.fxrates\":\"FX Rates\",\"settings.tabs.tagmappings\":\"Mapping Rules\",\"settings.tabs.mailinglists\":\"Mailing Lists\",\"settings.tabs.webhooks\":\"WebHooks\",\"settings.tabs.dimensions\":\"Dimensions\",\"settings.tabs.audit\":\"Audit\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.oracle.title\":\"Oracle Cloud Connections\",\"settings.oracle.subtitle\":\"All cloud connections importing OCI usage data in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"settings.snowflake.title\":\"Snowflake Cloud Connections\",\"settings.snowflake.subtitle\":\"All cloud connections importing Snowflake usage data in this tenant.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.users.title\":\"Access Management\",\"views.users.subtitle\":\"The users and groups that have some level of access of this tenant.\",\"users.inviteUserOrGroup\":\"Add User / Group\",\"users\":\"Users\",\"users.DeleteUserTitle\":\"Delete User\",\"users.DeleteUserSubtitle\":\"This user will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"views.webhooks.title\":\"Webhooks\",\"views.webhooks.url\":\"Url\",\"views.webhooks.lastcalled\":\"Last Called\",\"views.webhooks.enabled\":\"Enabled\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"trendsDashboard.titles.averageDaily\":\"Average Daily\",\"trendsDashboard.titles.sevenDayTrend\":\"7 Day Trend\",\"trendsDashboard.titles.thirtyDayTrend\":\"30 Day Trend\",\"trendsDashboard.titles.sixtyDayTrend\":\"60 Day Trend\",\"trendsDashboard.title\":\"Trends Dashboard\",\"trendsDashboard.title.asterix\":\"* Daily trend information based on last usage date of \",\"trendsDashboard.spendLimits.title\":\"Spend Limits\",\"trendsDashboard.spendLimits.caption\":\"The top 10 most at-risk spend limits\",\"trendsDashboard.trends.title\":\"Trends\",\"trendsDashboard.trends.caption\":\"The largest changes up or down in spend trends between two date ranges.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"watchdogDashboard.title\":\"Watchdog\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"newPolicy.title\":\"Create Policy\",\"editPolicy.title\":\"Edit Policy\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"viewPolicy.title\":\"View Policy\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"viewPolicy.title\":\"View Policy\"}}')\n delete Component.options._Ctor\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":_vm.type,\"color\":_vm.color,\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form,\"block\":_vm.block,\"outlined\":_vm.outlined},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"delete_forever\")]),_vm._v(\"Delete\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpDeleteButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpDeleteButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HttpDeleteButton.vue?vue&type=template&id=f008d23c&\"\nimport script from \"./HttpDeleteButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HttpDeleteButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":_vm.type,\"color\":_vm.color,\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form,\"block\":_vm.block,\"outlined\":_vm.outlined},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPostButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPostButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HttpPostButton.vue?vue&type=template&id=33969e2e&\"\nimport script from \"./HttpPostButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HttpPostButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-snackbar',{attrs:{\"color\":_vm.color,\"timeout\":_vm.timeout},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_vm._v(\" \"+_vm._s(_vm.text)+\" \"),_c('v-btn',{attrs:{\"dark\":\"\",\"text\":\"\"},on:{\"click\":function($event){_vm.show = false}}},[_vm._v(\"Close\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport EventBus from \"@/lib/EventBus\";\r\n\r\nexport function toastError(data) {\r\n EventBus.$emit('$toast.error', data);\r\n}\r\n\r\nexport function toastSuccess(data) {\r\n EventBus.$emit('$toast.success', data);\r\n}\r\n\r\nexport function toastInfo(data) {\r\n EventBus.$emit('$toast.info', data);\r\n}\r\n\r\nexport default {\r\n data() {\r\n return {\r\n show: false,\r\n color: \"\",\r\n timeout: 4000,\r\n text: \"\"\r\n };\r\n },\r\n created() {\r\n EventBus.$on(\"$toast.error\", this.onError);\r\n EventBus.$on(\"$toast.success\", this.onSuccess);\r\n EventBus.$on(\"$toast.info\", this.onInfo);\r\n },\r\n destroyed() {\r\n EventBus.$off(\"$toast.error\", this.onError);\r\n EventBus.$off(\"$toast.success\", this.onSuccess);\r\n EventBus.$off(\"$toast.info\", this.onInfo);\r\n },\r\n methods: {\r\n render(text, color) {\r\n this.text = text;\r\n this.color = color;\r\n this.show = true;\r\n },\r\n onError(text) {\r\n this.render(text, \"error\");\r\n },\r\n onSuccess(text) {\r\n this.render(text, \"success\");\r\n },\r\n onInfo(text) {\r\n this.render(text, \"info\");\r\n }\r\n }\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Toast.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Toast.vue?vue&type=template&id=5138bdce&\"\nimport script from \"./Toast.vue?vue&type=script&lang=ts&\"\nexport * from \"./Toast.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-tabs',{attrs:{\"vertical\":\"\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[_c('v-tab',{key:\"script\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"code\")]),_vm._v(\" Script \")],1),_c('v-tab',{key:\"test\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"science\")]),_vm._v(\" Test \")],1),_c('v-tab',{key:\"results\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done_all\")]),_vm._v(\" Result \")],1),_c('v-tab-item',[_c('v-alert',{staticClass:\"mb-2\",attrs:{\"type\":\"info\",\"text\":\"\"}},[_vm._v(\" For more information on scripts please refer to the \"),_c('a',{attrs:{\"href\":`${_vm.docsUrl}/Setup/Actions/ImportUsageTransformation.html`,\"target\":\"_blank\"}},[_vm._v(\"documentation\")]),_vm._v(\". \")]),_c('v-btn',{staticClass:\"mb-2\",attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"block\":\"\"},on:{\"click\":_vm.runTest}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Run Test \")],1),_c('MonacoEditor',{attrs:{\"height\":\"500\",\"theme\":\"vs-dark\",\"value\":_vm.value,\"options\":_vm.scriptOptions},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})],1),_c('v-tab-item',[_c('v-btn',{staticClass:\"mb-2\",attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"block\":\"\"},on:{\"click\":_vm.runTest}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Run Test \")],1),_c('MonacoEditor',{attrs:{\"height\":\"500\",\"theme\":\"vs-dark\",\"options\":_vm.testJsonOptions},model:{value:(_vm.testJson),callback:function ($$v) {_vm.testJson=$$v},expression:\"testJson\"}})],1),_c('v-tab-item',[_c('MonacoEditor',{attrs:{\"height\":\"500\",\"theme\":\"vs-dark\",\"options\":_vm.resultOptions},model:{value:(_vm.resultJson),callback:function ($$v) {_vm.resultJson=$$v},expression:\"resultJson\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"monaco-editor-container\",style:(this.style)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nfunction noop() {}\r\n\r\nexport { monaco };\r\n\r\nexport default {\r\n name: 'MonacoEditor',\r\n props: {\r\n diffEditor: { type: Boolean, default: false },\r\n width: { type: [String, Number], default: '100%' },\r\n height: { type: [String, Number], default: '100%' },\r\n original: String, // Only valid in diff mode\r\n value: String,\r\n language: { type: String, default: 'javascript' },\r\n theme: { type: String, default: 'vs' },\r\n options: {\r\n type: Object,\r\n default() {\r\n return {};\r\n },\r\n },\r\n editorMounted: { type: Function, default: noop },\r\n editorBeforeMount: { type: Function, default: noop },\r\n },\r\n\r\n watch: {\r\n options: {\r\n deep: true,\r\n handler(options) {\r\n this.editor && this.editor.updateOptions(options);\r\n },\r\n },\r\n\r\n value() {\r\n this.editor && this.value !== this._getValue() && this._setValue(this.value);\r\n },\r\n\r\n language() {\r\n if (!this.editor) return;\r\n if (this.diffEditor) {\r\n const { original, modified } = this.editor.getModel();\r\n monaco.editor.setModelLanguage(original, this.language);\r\n monaco.editor.setModelLanguage(modified, this.language);\r\n } else monaco.editor.setModelLanguage(this.editor.getModel(), this.language);\r\n },\r\n\r\n theme() {\r\n this.editor && monaco.editor.setTheme(this.theme);\r\n },\r\n\r\n style() {\r\n this.editor &&\r\n this.$nextTick(() => {\r\n this.editor.layout();\r\n });\r\n },\r\n },\r\n\r\n computed: {\r\n style() {\r\n return {\r\n width: !/^\\d+$/.test(this.width) ? this.width : `${this.width}px`,\r\n height: !/^\\d+$/.test(this.height) ? this.height : `${this.height}px`,\r\n };\r\n },\r\n },\r\n\r\n mounted() {\r\n this.initMonaco();\r\n },\r\n\r\n beforeDestroy() {\r\n this.editor && this.editor.dispose();\r\n },\r\n\r\n methods: {\r\n initMonaco() {\r\n const { value, language, theme, options } = this;\r\n Object.assign(options, this._editorBeforeMount());\r\n this.editor = monaco.editor[this.diffEditor ? 'createDiffEditor' : 'create'](this.$el, {\r\n value: value,\r\n language: language,\r\n theme: theme,\r\n ...options,\r\n });\r\n this.diffEditor && this._setModel(this.value, this.original);\r\n this._editorMounted(this.editor);\r\n },\r\n\r\n _getEditor() {\r\n if (!this.editor) return null;\r\n return this.diffEditor ? this.editor.modifiedEditor : this.editor;\r\n },\r\n\r\n _setModel(value, original) {\r\n // Set model in diff mode\r\n const { language } = this;\r\n const originalModel = monaco.editor.createModel(original, language);\r\n const modifiedModel = monaco.editor.createModel(value, language);\r\n this.editor.setModel({\r\n original: originalModel,\r\n modified: modifiedModel,\r\n });\r\n },\r\n\r\n _setValue(value) {\r\n const editor = this._getEditor();\r\n if (editor) return editor.setValue(value);\r\n },\r\n\r\n _getValue() {\r\n const editor = this._getEditor();\r\n if (!editor) return '';\r\n return editor.getValue();\r\n },\r\n\r\n _editorBeforeMount() {\r\n const options = this.editorBeforeMount(monaco);\r\n return options || {};\r\n },\r\n\r\n _editorMounted(editor) {\r\n this.editorMounted(editor, monaco);\r\n if (this.diffEditor) {\r\n editor.onDidUpdateDiff((event) => {\r\n const value = this._getValue();\r\n this._emitChange(value, event);\r\n });\r\n } else {\r\n editor.onDidChangeModelContent((event) => {\r\n const value = this._getValue();\r\n this._emitChange(value, event);\r\n });\r\n }\r\n },\r\n\r\n _emitChange(value, event) {\r\n this.$emit('change', value, event);\r\n this.$emit('input', value);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MonacoEditor.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MonacoEditor.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MonacoEditor.vue?vue&type=template&id=50ac919c&\"\nimport script from \"./MonacoEditor.vue?vue&type=script&lang=ts&\"\nexport * from \"./MonacoEditor.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport MonacoEditor from '../Common/MonacoEditor.vue';\r\nimport Config from '@/lib/Config';\r\nimport * as vm from \"@/lib/vm\";\r\n\r\nexport const DEFAULT_SCRIPT_TEXT = `module.exports = {\r\n beforeTransform(ctx, cb) {\r\n var error = null;\r\n cb(error);\r\n },\r\n transformRecord(record, ctx, cb) {\r\n var error = null;\r\n cb(error, record);\r\n },\r\n afterTransform(ctx, cb) {\r\n var error = null;\r\n var newRecords = [];\r\n cb(error, newRecords);\r\n }\r\n};`;\r\n\r\nconst DEFAULT_SCRIPT_TEST_JSON = `module.exports = {\r\n records: [\r\n {\r\n cost: 10,\r\n chargeDate: new Date(),\r\n currencyCode: 'USD',\r\n metaData: new Map(),\r\n meterId: 'test-meter-123',\r\n meterName: 'Test Meter 123',\r\n productName: 'Test Product',\r\n regionName: 'Test Region 123',\r\n serviceId: 'test-svc-123',\r\n serviceName: 'Test Service 123',\r\n serviceTypes: [],\r\n sourceCost: 5,\r\n unit: 'Hrs Consumed',\r\n tags: new Map(),\r\n priceChannels: new Map(),\r\n unitsConsumed: 123\r\n }\r\n ],\r\n context: {\r\n sysTenantId: '6352f484-09dd-4b4b-9f95-b75bff11261c',\r\n sysCloudAccountId: '33177086-8318-478c-80b7-c4cf8ca44979',\r\n sysSubscriptionId: '83f8d689-f197-4281-85c4-a52f776cf5c7',\r\n subscriptionId: 'be7aefd7-9ea1-47f2-80f3-d9fa7407eeb8',\r\n subscriptionName: 'My BizSpark Plus',\r\n isCopy: false,\r\n importDate: 'Tue May 03 2022 18:50:27 GMT+1000 (Australian Eastern Standard Time)',\r\n uploadExpiryDate: 'Tue May 04 2022 18:50:27 GMT+1000 (Australian Eastern Standard Time)',\r\n allowedEditFields: undefined,\r\n filePartName: 'Primary',\r\n userData: {}\r\n }\r\n};`;\r\n\r\nexport const DEFAULT_VS_OPTIONS = {\r\n readonly: true,\r\n automaticLayout: true,\r\n language: 'javascript',\r\n};\r\n\r\nexport interface IPartialTransformContext {\r\n sysTenantId: string;\r\n sysCloudAccountId: string;\r\n sysSubscriptionId: string;\r\n subscriptionId: string;\r\n subscriptionName: string;\r\n isCopy: boolean;\r\n importDate: string;\r\n uploadExpiryDate: string;\r\n allowedEditFields?: string[];\r\n filePartName: string;\r\n}\r\n\r\nexport interface ITransformContext extends IPartialTransformContext {\r\n userData: { [key: string]: string };\r\n}\r\n\r\nexport interface ITestData {\r\n context: ITransformContext;\r\n records: IUsageRecord[];\r\n}\r\n\r\nexport interface IUsageRecord {\r\n chargeDate: Date;\r\n sourceCost: number;\r\n cost: number;\r\n priceChannels: Map;\r\n currencyCode: string;\r\n unit: string;\r\n unitsConsumed: number;\r\n meterId: string;\r\n meterName: string;\r\n serviceId: string;\r\n serviceName: string;\r\n serviceTypes: string[];\r\n regionName: string;\r\n productName: string;\r\n tags: Map;\r\n metaData: Map;\r\n}\r\n\r\nexport interface IScriptFactory {\r\n beforeTransform(ctx: ITransformContext, callback: (err: Error) => void): void;\r\n transformRecord(\r\n data: IUsageRecord,\r\n ctx: ITransformContext,\r\n callback: (err: Error, data: IUsageRecord) => void\r\n ): void;\r\n afterTransform(ctx: ITransformContext, callback: (err: Error, data: IUsageRecord[]) => void): void;\r\n}\r\n\r\nexport default defineComponent({\r\n props: { value: String },\r\n components: { MonacoEditor },\r\n setup(props) {\r\n const docsUrl = Config.get().DOCS_URL;\r\n const testJson = ref(DEFAULT_SCRIPT_TEST_JSON);\r\n const resultJson = ref('[]');\r\n const scriptOptions = { ...DEFAULT_VS_OPTIONS };\r\n const testJsonOptions = { ...DEFAULT_VS_OPTIONS };\r\n const resultOptions = { ...DEFAULT_VS_OPTIONS, readOnly: true };\r\n const activeTab = ref(0);\r\n const runTest = async () => {\r\n try {\r\n const inputs = vm.evaluate(testJson.value) as ITestData;\r\n const factory = vm.evaluate(props.value) as IScriptFactory;\r\n await new Promise((resolve, reject) => {\r\n factory.beforeTransform(inputs.context, (err) => {\r\n if (err) reject(err);\r\n else resolve();\r\n });\r\n });\r\n const newRecords = [];\r\n for (const record of inputs.records) {\r\n const newRecord = await new Promise((resolve, reject) => {\r\n factory.transformRecord(record, inputs.context, (err, data) => {\r\n if (err) reject(err);\r\n else resolve(data);\r\n });\r\n });\r\n newRecords.push(newRecord);\r\n }\r\n const lastly = await new Promise((resolve, reject) => {\r\n factory.afterTransform(inputs.context, (err, lastRecords) => {\r\n if (err) reject(err);\r\n else resolve(lastRecords);\r\n });\r\n });\r\n newRecords.push(...lastly);\r\n resultJson.value = JSON.stringify(newRecords, null, '\\t');\r\n } catch (err) {\r\n resultJson.value = '' + err;\r\n } finally {\r\n activeTab.value = 2;\r\n }\r\n };\r\n return {\r\n scriptOptions,\r\n testJson,\r\n testJsonOptions,\r\n resultJson,\r\n resultOptions,\r\n activeTab,\r\n docsUrl,\r\n runTest,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionScriptInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ActionScriptInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ActionScriptInput.vue?vue&type=template&id=a1f3a124&\"\nimport script from \"./ActionScriptInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./ActionScriptInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport ActionScriptInput, { DEFAULT_SCRIPT_TEXT } from '@/components/Domain.Actions/ActionScriptInput.vue';\r\nexport const DEFAULT_SCRIPT_NAME = 'My New Usage Script';\r\n\r\nexport const KNOWN_SCRIPT_TYPES = [\r\n { id: 'ImportUsageTransformation', name: 'Usage Transform', disabled: false },\r\n { id: 'BillingTransformation', name: 'Billing Transform (Coming Soon)', disabled: true },\r\n];\r\n\r\nexport const KNOWN_DELIVERY_TYPES = [\r\n { id: 'Script', name: 'Script', disabled: false },\r\n { id: 'WebHook', name: 'Web Hook (Coming Soon)', disabled: true },\r\n];\r\n\r\nexport interface IPriceStreamViewModel {\r\n effectiveFrom:Date;\r\n effectiveTo: Date | null;\r\n \r\n}\r\n\r\nexport interface IFormData {\r\n actionType: string;\r\n deliveryType: string;\r\n\r\n // For Script Delivery Types\r\n actionName: string;\r\n scriptText: string;\r\n\r\n // Price Stream ID\r\n priceStreamRules: IPriceStreamViewModel[];\r\n}\r\n\r\nexport enum FlowType {\r\n importUsageTransformation = 'ImportUsageTransformation',\r\n}\r\n\r\nexport enum DeliveryType {\r\n script = 'Script',\r\n webHook = 'WebHook',\r\n priceStream = 'PriceStream',\r\n}\r\n\r\nexport default defineComponent({\r\n components: { ActionScriptInput },\r\n props: {\r\n loading: Boolean,\r\n init: Object,\r\n title: String,\r\n subtitle: String,\r\n },\r\n setup() {\r\n const isValid = ref(true);\r\n const scriptText = ref(DEFAULT_SCRIPT_TEXT);\r\n const knownScriptTypes = KNOWN_SCRIPT_TYPES;\r\n const knownDeliveryTypes = KNOWN_DELIVERY_TYPES;\r\n const actionType = ref(FlowType.importUsageTransformation);\r\n const deliveryType = ref(DeliveryType.script);\r\n const actionName = ref(DEFAULT_SCRIPT_NAME);\r\n const priceStreamRules = ref([]);\r\n\r\n return {\r\n isValid,\r\n knownScriptTypes,\r\n actionType,\r\n knownDeliveryTypes,\r\n deliveryType,\r\n actionName,\r\n scriptText,\r\n priceStreamRules,\r\n };\r\n },\r\n computed: {\r\n formData(): IFormData {\r\n return {\r\n scriptText: this.scriptText,\r\n actionName: this.actionName,\r\n actionType: this.actionType,\r\n deliveryType: this.deliveryType,\r\n priceStreamRules: this.priceStreamRules,\r\n };\r\n },\r\n },\r\n watch: {\r\n init: {\r\n handler(val) {\r\n this.actionType = val?.actionType || 'ImportUsageTransformation';\r\n this.actionName = val?.actionName || DEFAULT_SCRIPT_NAME;\r\n this.scriptText = val?.scriptText || DEFAULT_SCRIPT_TEXT;\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.title || _vm.$t('domain.actions.createActionScriptCard.title'),\"subtitle\":_vm.subtitle || _vm.$t('domain.actions.createActionScriptCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(actionBindings){return [_vm._t(\"actions\",null,{\"loading\":_vm.loading,\"isValid\":_vm.isValid,\"formData\":_vm.formData},actionBindings)]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-radio-group',{attrs:{\"hide-details\":\"\",\"row\":\"\",\"label\":\"Flow Type\"},model:{value:(_vm.actionType),callback:function ($$v) {_vm.actionType=$$v},expression:\"actionType\"}},_vm._l((_vm.knownScriptTypes),function(ka){return _c('v-radio',{key:ka.id,attrs:{\"label\":ka.name,\"value\":ka.id,\"disabled\":ka.disabled}})}),1),_c('v-radio-group',{attrs:{\"row\":\"\",\"label\":\"Delivery Type\"},model:{value:(_vm.deliveryType),callback:function ($$v) {_vm.deliveryType=$$v},expression:\"deliveryType\"}},_vm._l((_vm.knownDeliveryTypes),function(ka){return _c('v-radio',{key:ka.id,attrs:{\"label\":ka.name,\"value\":ka.id,\"disabled\":ka.disabled}})}),1),_c('v-text-field',{attrs:{\"label\":_vm.$t('domain.actions.createActionScriptCard.actionName'),\"autofocus\":\"\"},model:{value:(_vm.actionName),callback:function ($$v) {_vm.actionName=$$v},expression:\"actionName\"}}),_c('action-script-input',{model:{value:(_vm.scriptText),callback:function ($$v) {_vm.scriptText=$$v},expression:\"scriptText\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetActionScriptCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetActionScriptCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetActionScriptCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetActionScriptCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetActionScriptCard.vue?vue&type=template&id=448c0f90&\"\nimport script from \"./SetActionScriptCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetActionScriptCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetActionScriptCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import Config from '@/lib/Config';\r\nimport AuthClient from '@/lib/Auth';\r\nimport axios, { AxiosInstance } from 'axios';\r\nimport axiosRetry from 'axios-retry';\r\nimport Vue from 'vue';\r\n\r\nconst config = Config.get();\r\n\r\nexport class ApiV2Client {\r\n\r\n get anonymous(): AxiosInstance {\r\n const instance = axios.create({ baseURL: config.API_2_URL });\r\n axiosRetry(instance, { retryDelay: axiosRetry.exponentialDelay, retries: config.API_MAX_RETRY_COUNT });\r\n return instance;\r\n }\r\n\r\n get http(): AxiosInstance {\r\n const instance = axios.create({ baseURL: config.API_2_URL });\r\n\r\n axiosRetry(instance, { retryDelay: axiosRetry.exponentialDelay, retries: config.API_MAX_RETRY_COUNT });\r\n instance.interceptors.request.use(\r\n async cfg => {\r\n const token = await Vue.prototype.$auth.getTokenSilently();\r\n cfg.headers.Authorization = token ? `Bearer ${token}` : '';\r\n cfg.headers['X-Tenant-Id'] = AuthClient.tenantId ? AuthClient.tenantId : '';\r\n return cfg;\r\n },\r\n error => {\r\n Promise.reject(error);\r\n }\r\n );\r\n instance.interceptors.response.use(\r\n cfg => {\r\n return cfg;\r\n },\r\n error => {\r\n if (error.response && 401 === error.response.status) {\r\n AuthClient.tenantId = null;\r\n Vue.prototype.$auth.loginWithRedirect({});\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n return instance;\r\n }\r\n}\r\n\r\nexport default new ApiV2Client();\r\n","import Vue from 'vue';\r\n\r\nexport class AuthClient {\r\n public get tenantId(): string {\r\n return localStorage.getItem('x-cc-tenantid') || null;\r\n }\r\n\r\n public set tenantId(val: string) {\r\n if (val) localStorage.setItem('x-cc-tenantid', val);\r\n else localStorage.removeItem('x-cc-tenantid');\r\n }\r\n\r\n public get isTenantSelected(): boolean {\r\n return !!this.tenantId;\r\n }\r\n\r\n public get isAuthenticated(): boolean {\r\n return !!Vue.prototype.$auth?.user?.email;\r\n }\r\n\r\n public get userEmail(): string {\r\n return Vue.prototype.$auth.user.email;\r\n }\r\n\r\n public get loading(): boolean {\r\n return Vue.prototype.$auth.loading;\r\n }\r\n}\r\n\r\nexport default new AuthClient();\r\n","export interface ICognitoClientOptions {\r\n UserPoolId: string;\r\n ClientId: string;\r\n CognitoUrl: string;\r\n AzureIDPName: string;\r\n}\r\n\r\nexport interface IConfig {\r\n APP_NAME: string;\r\n API_URL: string;\r\n API_2_URL: string;\r\n SUPPORTED_PARENTS: string;\r\n FEATURES: string[];\r\n APP_INSIGHTS_KEY: string;\r\n DEFAULT_THEME: any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n LOGOS: any; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n SUPPORT_EMAIL: string;\r\n API_MAX_RETRY_COUNT: number;\r\n RESALE_PARTNER_ID: string;\r\n SIDENAV_ALWAYS_DARK: boolean;\r\n COGNITO_USERPOOLID: string;\r\n COGNITO_CLIENTID: string;\r\n COGNITO_DOMAIN: string;\r\n COGNITO_AZUREIDP: string;\r\n AUTH0_DOMAIN: string;\r\n AUTH0_CLIENTID: string;\r\n AUTH0_AUDIENCE: string;\r\n MSAL_CLIENTID: string;\r\n MSAL_AUTHORITY: string;\r\n DOCS_URL: string;\r\n AG_GRID_KEY: string;\r\n CHART_COLORS: string[];\r\n}\r\n\r\nexport class ConfigClient {\r\n public get(): IConfig {\r\n return (window as any).$cloudctrl.config as IConfig; // eslint-disable-line @typescript-eslint/no-explicit-any\r\n }\r\n\r\n public isFeatureEnabled(featureName: string): boolean {\r\n const config = this.get();\r\n return (config.FEATURES || []).includes(featureName);\r\n }\r\n\r\n public isSelfServiceEnabled(): boolean {\r\n return this.isFeatureEnabled('EnableSelfService');\r\n }\r\n\r\n public isChineseJurisdiction(): boolean {\r\n return this.isFeatureEnabled('ChineseJurisdictionalFeatures');\r\n }\r\n\r\n public isAnnotationEnabled(): boolean {\r\n return this.isFeatureEnabled('EnableAnnotations');\r\n }\r\n\r\n public isMainSite(): boolean {\r\n return document.domain === 'cloudctrl.com.au';\r\n }\r\n\r\n public isDeprecationNoticeEnabled(): boolean {\r\n return this.isFeatureEnabled('DeprecateTagReports');\r\n }\r\n\r\n public getCognitoCredentials(): ICognitoClientOptions {\r\n const config = this.get();\r\n return {\r\n UserPoolId: config.COGNITO_USERPOOLID,\r\n ClientId: config.COGNITO_CLIENTID,\r\n CognitoUrl: config.COGNITO_DOMAIN,\r\n AzureIDPName: config.COGNITO_AZUREIDP\r\n };\r\n }\r\n}\r\n\r\nexport default new ConfigClient();\r\n","import Vue from 'vue';\r\nconst eventBus = new Vue();\r\nexport default eventBus;\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('router-view',{on:{\"hideChinaFooter\":function($event){_vm.showChineseFooter = false}}}),_c('toast'),(_vm.showChineseFooter)?_c('v-footer',{attrs:{\"fixed\":\"\"}},[_c('div',{staticStyle:{\"width\":\"500px\",\"margin\":\"0 auto\"}},[_c('a',{staticStyle:{\"float\":\"left\",\"display\":\"inline\",\"margin-right\":\"1.5em\"},attrs:{\"href\":\"http://beian.miit.gov.cn\"}},[_vm._v(\"沪ICP备16016808号\")]),_c('a',{staticStyle:{\"display\":\"inline-block\",\"text-decoration\":\"none\",\"height\":\"20px\",\"float\":\"left\",\"line-height\":\"20px\"},attrs:{\"target\":\"_blank\",\"href\":\"http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=31010102006691\"}},[_c('img',{staticStyle:{\"float\":\"left\"},attrs:{\"src\":\"/images/备案编号图标.png\"}}),_c('p',{staticStyle:{\"float\":\"left\",\"height\":\"20px\",\"line-height\":\"20px\",\"margin\":\"0px 0px 0px 5px\",\"color\":\"#939393\"}},[_vm._v(\" 沪公网安备 31010102006691号 \")])])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=3bd9d370&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport Vuetify from \"vuetify/lib\";\r\nimport Config from \"@/lib/Config\";\r\n\r\nVue.use(Vuetify);\r\n\r\nconst theme = { ...Config.get().DEFAULT_THEME };\r\nconst customThemes = theme.customThemes || null;\r\ndelete theme.customThemes;\r\nconst darkThemePreference = localStorage.getItem(\"dark_theme\");\r\nif (darkThemePreference) {\r\n theme.dark = darkThemePreference === \"true\";\r\n} else if (window.matchMedia) {\r\n try {\r\n theme.dark = window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\r\n } finally {\r\n // ignore browser compatibility issues\r\n }\r\n}\r\n\r\nif (customThemes) {\r\n for (const key in customThemes) {\r\n document.documentElement.style.setProperty(\r\n `--${key}`,\r\n customThemes[key],\r\n );\r\n }\r\n}\r\n\r\nexport default new Vuetify({\r\n theme,\r\n icons: {\r\n iconfont: \"md\",\r\n },\r\n});\r\n","import proj4 from 'proj4';\r\n\r\n// This is necessary because the highcharts map module does not support latitude / longitudes without this being introduced first.\r\n// This may caused issues if we move to an SSR model.\r\n\r\nif (typeof window !== 'undefined') {\r\n window.proj4 = window.proj4 || proj4;\r\n}\r\n\r\nexport default proj4;","export default {\r\n \"title\": \"World, Miller projection, medium resolution\", \"version\": \"1.1.2\", \"type\": \"FeatureCollection\", \"copyright\": \"Copyright (c) 2015 Highsoft AS, Based on data from Natural Earth\", \"copyrightShort\": \"Natural Earth\", \"copyrightUrl\": \"http://www.naturalearthdata.com\", \"crs\": { \"type\": \"name\", \"properties\": { \"name\": \"urn:ogc:def:crs:EPSG:54003\" } }, \"hc-transform\": { \"default\": { \"crs\": \"+proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +datum=WGS84 +units=m +no_defs\", \"scale\": 1.72182781654e-05, \"jsonres\": 15.5, \"jsonmarginX\": -999, \"jsonmarginY\": 9851.0, \"xoffset\": -19495356.3693, \"yoffset\": 12635908.1982 } },\r\n \"features\": [{ \"type\": \"Feature\", \"id\": \"FO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.54, \"hc-key\": \"fo\", \"hc-a2\": \"FO\", \"name\": \"Faroe Islands\", \"labelrank\": \"6\", \"country-abbrev\": \"Faeroe Is.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"FRO\", \"iso-a2\": \"FO\", \"woe-id\": \"23424816\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3991, 8611], [4005, 8598], [4004, 8594], [3989, 8605], [3991, 8611]]] } }, { \"type\": \"Feature\", \"id\": \"UM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.58, \"hc-key\": \"um\", \"hc-a2\": \"UM\", \"name\": \"United States Minor Outlying Islands\", \"labelrank\": \"5\", \"country-abbrev\": \"U.S. MOI\", \"subregion\": \"Seven seas (open ocean)\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"UMI\", \"iso-a2\": \"UM\", \"woe-id\": \"28289407\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[-605, 6652], [-606, 6652], [-606, 6652], [-606, 6652], [-605, 6652]]] } }, { \"type\": \"Feature\", \"id\": \"US\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.68, \"hc-middle-y\": 0.68, \"hc-key\": \"us\", \"hc-a2\": \"US\", \"name\": \"United States of America\", \"labelrank\": \"2\", \"country-abbrev\": \"U.S.A.\", \"subregion\": \"Northern America\", \"region-wb\": \"North America\", \"iso-a3\": \"USA\", \"iso-a2\": \"US\", \"woe-id\": \"23424977\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[556, 8034], [559, 8032], [549, 8036], [550, 8040], [556, 8034]]], [[[558, 8043], [561, 8042], [558, 8039], [553, 8040], [558, 8043]]], [[[265, 8289], [268, 8289], [267, 8283], [263, 8288], [265, 8289]]], [[[263, 8300], [267, 8295], [264, 8292], [261, 8294], [263, 8300]]], [[[255, 8300], [267, 8279], [253, 8290], [251, 8302], [255, 8300]]], [[[306, 8298], [305, 8293], [298, 8293], [300, 8304], [306, 8298]]], [[[249, 8306], [250, 8302], [245, 8301], [244, 8305], [249, 8306]]], [[[292, 8310], [298, 8305], [294, 8298], [291, 8308], [292, 8310]]], [[[238, 8311], [244, 8313], [244, 8308], [238, 8304], [238, 8311]]], [[[249, 8311], [248, 8310], [244, 8314], [249, 8314], [249, 8311]]], [[[232, 8330], [237, 8337], [249, 8340], [245, 8335], [232, 8330]]], [[[272, 8342], [284, 8338], [278, 8330], [268, 8336], [272, 8342]]], [[[268, 8353], [268, 8346], [255, 8348], [259, 8353], [268, 8353]]], [[[282, 8349], [285, 8339], [276, 8346], [276, 8355], [282, 8349]]], [[[261, 8368], [271, 8358], [264, 8355], [259, 8356], [261, 8368]]], [[[234, 8379], [258, 8373], [253, 8353], [237, 8353], [234, 8379]]], [[[181, 8386], [179, 8377], [173, 8376], [177, 8383], [181, 8386]]], [[[158, 8420], [155, 8412], [152, 8416], [154, 8423], [158, 8420]]], [[[1578, 8023], [1574, 8018], [1559, 8010], [1556, 8013], [1578, 8023]]], [[[1623, 7918], [1621, 7909], [1614, 7899], [1610, 7903], [1623, 7918]]], [[[1667, 7934], [1667, 7928], [1663, 7927], [1665, 7933], [1667, 7934]]], [[[1724, 7944], [1726, 7939], [1717, 7939], [1721, 7943], [1724, 7944]]], [[[224, 8331], [215, 8369], [227, 8371], [236, 8359], [224, 8331]]], [[[-726, 8256], [-740, 8233], [-777, 8227], [-811, 8206], [-792, 8230], [-757, 8230], [-757, 8246], [-726, 8256]]], [[[193, 8378], [186, 8400], [202, 8387], [208, 8341], [193, 8378]]], [[[183, 8412], [177, 8392], [156, 8412], [174, 8431], [183, 8412]]], [[[199, 8431], [221, 8424], [229, 8389], [214, 8393], [199, 8431]]], [[[-826, 8660], [-803, 8657], [-834, 8641], [-862, 8661], [-896, 8667], [-850, 8675], [-826, 8660]]], [[[553, 8054], [551, 8053], [551, 8054], [553, 8054]]], [[[1261, 7281], [1260, 7293], [1252, 7296], [1228, 7335], [1206, 7373], [1202, 7375], [1200, 7378], [1167, 7387], [1143, 7358], [1102, 7380], [1091, 7409], [1043, 7449], [993, 7449], [993, 7434], [908, 7434], [797, 7472], [799, 7479], [728, 7473], [722, 7492], [686, 7523], [648, 7524], [624, 7541], [571, 7629], [568, 7651], [532, 7689], [528, 7720], [512, 7742], [522, 7777], [507, 7826], [520, 7864], [527, 7925], [507, 8030], [563, 8020], [563, 8024], [573, 8014], [562, 8025], [562, 8026], [566, 8031], [562, 8027], [561, 8054], [1379, 8054], [1455, 8037], [1491, 8018], [1546, 8016], [1503, 7997], [1471, 7971], [1510, 7975], [1520, 7963], [1574, 7988], [1575, 7986], [1575, 7988], [1591, 7997], [1601, 7995], [1583, 7981], [1612, 7961], [1683, 7971], [1697, 7959], [1708, 7961], [1708, 7954], [1689, 7936], [1622, 7938], [1592, 7889], [1612, 7898], [1595, 7842], [1598, 7806], [1614, 7783], [1632, 7792], [1645, 7831], [1636, 7855], [1644, 7893], [1694, 7935], [1726, 7918], [1730, 7880], [1715, 7868], [1750, 7865], [1758, 7833], [1755, 7820], [1751, 7816], [1746, 7820], [1739, 7807], [1727, 7787], [1756, 7775], [1780, 7780], [1855, 7817], [1862, 7830], [1858, 7836], [1858, 7842], [1927, 7844], [1955, 7886], [1970, 7900], [1987, 7905], [1987, 7905], [2082, 7905], [2118, 7937], [2126, 7968], [2149, 7996], [2192, 7982], [2192, 7933], [2196, 7927], [2203, 7927], [2202, 7914], [2210, 7911], [2216, 7898], [2179, 7882], [2181, 7881], [2174, 7874], [2173, 7879], [2173, 7879], [2164, 7875], [2168, 7876], [2168, 7870], [2163, 7871], [2161, 7874], [2155, 7872], [2110, 7843], [2108, 7787], [2041, 7770], [2006, 7747], [2005, 7718], [1959, 7656], [1937, 7700], [1941, 7654], [1934, 7620], [1948, 7620], [1956, 7577], [1933, 7542], [1915, 7545], [1890, 7517], [1854, 7495], [1795, 7447], [1786, 7414], [1814, 7342], [1829, 7289], [1819, 7237], [1797, 7235], [1766, 7277], [1746, 7323], [1752, 7355], [1710, 7394], [1682, 7378], [1650, 7401], [1567, 7404], [1544, 7395], [1558, 7358], [1533, 7373], [1514, 7361], [1485, 7382], [1464, 7376], [1411, 7380], [1340, 7337], [1309, 7290], [1321, 7262], [1289, 7265], [1261, 7281]]], [[[247, 8324], [243, 8322], [239, 8327], [247, 8327], [248, 8327], [252, 8348], [288, 8301], [287, 8280], [261, 8307], [246, 8319], [247, 8324]]], [[[-425, 7092], [-433, 7100], [-433, 7100], [-426, 7097], [-425, 7092], [-425, 7092], [-425, 7092]]], [[[-425, 7092], [-390, 7060], [-422, 7047], [-425, 7092], [-425, 7092], [-425, 7092]]], [[[308, 8292], [307, 8287], [302, 8290], [308, 8292], [308, 8292], [308, 8292]]], [[[217, 8430], [220, 8427], [210, 8429], [210, 8433], [205, 8435], [148, 8429], [100, 8466], [54, 8486], [-34, 8511], [-77, 8513], [-132, 8528], [-131, 8544], [-185, 8544], [-179, 8506], [-229, 8506], [-240, 8492], [-304, 8469], [-282, 8489], [-303, 8495], [-289, 8538], [-261, 8553], [-264, 8566], [-317, 8528], [-328, 8503], [-369, 8479], [-346, 8459], [-377, 8422], [-432, 8396], [-465, 8356], [-478, 8363], [-510, 8328], [-540, 8328], [-589, 8308], [-615, 8286], [-687, 8268], [-679, 8288], [-643, 8297], [-585, 8332], [-551, 8327], [-555, 8346], [-513, 8369], [-478, 8400], [-458, 8457], [-516, 8437], [-555, 8465], [-597, 8443], [-595, 8484], [-613, 8511], [-651, 8497], [-693, 8522], [-709, 8506], [-741, 8500], [-765, 8515], [-713, 8520], [-680, 8544], [-726, 8574], [-715, 8598], [-667, 8655], [-644, 8644], [-615, 8663], [-568, 8678], [-587, 8710], [-579, 8735], [-637, 8709], [-728, 8718], [-784, 8772], [-702, 8808], [-655, 8816], [-653, 8790], [-599, 8787], [-594, 8837], [-655, 8842], [-667, 8867], [-741, 8904], [-729, 8932], [-673, 8934], [-637, 8959], [-638, 8973], [-601, 9009], [-570, 9009], [-534, 9034], [-486, 9036], [-450, 9061], [-399, 9052], [-370, 9033], [-317, 9037], [-306, 9015], [-225, 9020], [-162, 9000], [-87, 8990], [-49, 8997], [19, 8972], [20, 8520], [74, 8510], [120, 8473], [126, 8458], [158, 8488], [183, 8497], [199, 8475], [245, 8436], [292, 8359], [346, 8330], [346, 8304], [346, 8304], [319, 8284], [320, 8322], [316, 8323], [310, 8332], [305, 8326], [295, 8329], [287, 8349], [254, 8380], [220, 8428], [217, 8430]]], [[[-373, 8372], [-390, 8391], [-344, 8421], [-318, 8446], [-311, 8403], [-356, 8377], [-413, 8325], [-373, 8372]]], [[[-433, 7100], [-479, 7115], [-446, 7112], [-433, 7100], [-433, 7100]]], [[[308, 8292], [309, 8295], [309, 8292], [308, 8292], [308, 8292], [308, 8292]]]] } }, { \"type\": \"Feature\", \"id\": \"JP\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.66, \"hc-key\": \"jp\", \"hc-a2\": \"JP\", \"name\": \"Japan\", \"labelrank\": \"2\", \"country-abbrev\": \"Japan\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"JPN\", \"iso-a2\": \"JP\", \"woe-id\": \"23424856\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[8389, 7914], [8390, 7917], [8398, 7911], [8394, 7909], [8389, 7914]]], [[[8149, 7526], [8129, 7515], [8097, 7520], [8140, 7570], [8197, 7578], [8232, 7572], [8278, 7641], [8269, 7618], [8307, 7629], [8314, 7654], [8342, 7662], [8359, 7703], [8352, 7721], [8369, 7771], [8380, 7756], [8400, 7767], [8419, 7706], [8391, 7670], [8390, 7636], [8375, 7598], [8384, 7580], [8357, 7553], [8353, 7573], [8306, 7546], [8256, 7542], [8267, 7531], [8239, 7508], [8212, 7518], [8222, 7544], [8172, 7539], [8149, 7527], [8166, 7521], [8186, 7539], [8200, 7532], [8186, 7497], [8173, 7507], [8138, 7480], [8130, 7504], [8149, 7526]]], [[[8044, 7495], [8037, 7525], [8057, 7499], [8076, 7517], [8113, 7508], [8122, 7487], [8101, 7435], [8068, 7431], [8067, 7482], [8044, 7495]]], [[[8380, 7790], [8365, 7775], [8355, 7820], [8373, 7846], [8401, 7845], [8416, 7924], [8472, 7874], [8509, 7860], [8522, 7839], [8483, 7831], [8455, 7794], [8413, 7818], [8367, 7806], [8380, 7790]]]] } }, { \"type\": \"Feature\", \"id\": \"SC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.58, \"hc-middle-y\": 0.41, \"hc-key\": \"sc\", \"hc-a2\": \"SC\", \"name\": \"Seychelles\", \"labelrank\": \"6\", \"country-abbrev\": \"Syc.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SYC\", \"iso-a2\": \"SC\", \"woe-id\": \"23424941\", \"continent\": \"Seven seas (open ocean)\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5849, 6344], [5852, 6341], [5851, 6337], [5843, 6348], [5849, 6344]]] } }, { \"type\": \"Feature\", \"id\": \"IN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.34, \"hc-middle-y\": 0.43, \"hc-key\": \"in\", \"hc-a2\": \"IN\", \"name\": \"India\", \"labelrank\": \"2\", \"country-abbrev\": \"India\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"IND\", \"iso-a2\": \"IN\", \"woe-id\": \"23424848\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[6818, 7133], [6820, 7134], [6820, 7126], [6817, 7128], [6818, 7133]]], [[[6819, 7322], [6840, 7326], [6842, 7305], [6869, 7285], [6937, 7293], [6923, 7319], [6953, 7324], [7012, 7369], [7032, 7360], [7057, 7370], [7092, 7333], [7074, 7306], [7024, 7278], [7023, 7255], [6996, 7195], [6973, 7200], [6969, 7150], [6951, 7137], [6939, 7192], [6922, 7167], [6909, 7188], [6949, 7229], [6935, 7237], [6886, 7236], [6870, 7262], [6829, 7277], [6818, 7260], [6843, 7237], [6816, 7220], [6837, 7209], [6832, 7189], [6847, 7142], [6823, 7124], [6820, 7141], [6792, 7124], [6767, 7075], [6740, 7073], [6699, 7023], [6646, 6986], [6647, 6972], [6586, 6945], [6580, 6925], [6588, 6875], [6574, 6835], [6574, 6783], [6504, 6717], [6476, 6742], [6454, 6807], [6424, 6859], [6410, 6911], [6384, 6956], [6360, 7072], [6367, 7093], [6351, 7149], [6344, 7113], [6310, 7098], [6291, 7105], [6258, 7137], [6287, 7155], [6241, 7174], [6227, 7195], [6247, 7208], [6280, 7205], [6313, 7222], [6265, 7289], [6295, 7328], [6337, 7325], [6368, 7360], [6381, 7388], [6416, 7427], [6415, 7446], [6438, 7461], [6400, 7495], [6393, 7534], [6410, 7548], [6453, 7539], [6490, 7559], [6513, 7572], [6527, 7544], [6546, 7534], [6542, 7507], [6563, 7480], [6530, 7473], [6541, 7434], [6608, 7397], [6589, 7383], [6579, 7353], [6660, 7310], [6714, 7305], [6751, 7281], [6795, 7274], [6820, 7286], [6819, 7322]]]] } }, { \"type\": \"Feature\", \"id\": \"FR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.28, \"hc-middle-y\": 0.04, \"hc-key\": \"fr\", \"hc-a2\": \"FR\", \"name\": \"France\", \"labelrank\": \"2\", \"country-abbrev\": \"Fr.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"FRA\", \"iso-a2\": \"FR\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2537, 7972], [2531, 7971], [2530, 7983], [2533, 7975], [2537, 7972]]], [[[4485, 7820], [4477, 7774], [4465, 7781], [4462, 7817], [4485, 7820]]], [[[9164, 5848], [9155, 5806], [9109, 5833], [9082, 5858], [9076, 5879], [9141, 5830], [9164, 5848]]], [[[6256, 4904], [6297, 4899], [6285, 4876], [6245, 4876], [6256, 4904]]], [[[2331, 7017], [2334, 7019], [2334, 7016], [2331, 7017]]], [[[4427, 7861], [4426, 7860], [4425, 7859], [4424, 7860], [4423, 7858], [4385, 7835], [4321, 7852], [4294, 7830], [4298, 7812], [4279, 7808], [4263, 7812], [4262, 7812], [4262, 7812], [4255, 7814], [4255, 7818], [4246, 7818], [4203, 7821], [4151, 7846], [4160, 7853], [4173, 7943], [4145, 7980], [4120, 7997], [4065, 8019], [4064, 8038], [4112, 8049], [4124, 8036], [4163, 8041], [4147, 8082], [4197, 8065], [4210, 8081], [4250, 8101], [4251, 8127], [4279, 8135], [4327, 8092], [4376, 8075], [4381, 8071], [4392, 8072], [4447, 8053], [4429, 8001], [4386, 7963], [4389, 7952], [4391, 7955], [4393, 7956], [4405, 7957], [4405, 7947], [4412, 7939], [4400, 7909], [4427, 7861]]], [[[2596, 6636], [2603, 6648], [2632, 6639], [2670, 6598], [2632, 6543], [2583, 6547], [2601, 6581], [2587, 6623], [2596, 6636]]]] } }, { \"type\": \"Feature\", \"id\": \"FM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.52, \"hc-key\": \"fm\", \"hc-a2\": \"FM\", \"name\": \"Federated States of Micronesia\", \"labelrank\": \"6\", \"country-abbrev\": \"F.S.M.\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"FSM\", \"iso-a2\": \"FM\", \"woe-id\": \"23424815\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8899, 6684], [8902, 6683], [8902, 6679], [8899, 6679], [8899, 6684]]] } }, { \"type\": \"Feature\", \"id\": \"CN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.41, \"hc-middle-y\": 0.56, \"hc-key\": \"cn\", \"hc-a2\": \"CN\", \"name\": \"China\", \"labelrank\": \"2\", \"country-abbrev\": \"China\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"CHN\", \"iso-a2\": \"CN\", \"woe-id\": \"23424781\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7429, 7050], [7456, 7076], [7488, 7081], [7498, 7067], [7481, 7036], [7459, 7021], [7429, 7031], [7429, 7050]]], [[[6842, 7305], [6840, 7326], [6819, 7322], [6773, 7330], [6756, 7323], [6729, 7336], [6699, 7367], [6683, 7364], [6640, 7401], [6608, 7397], [6541, 7434], [6530, 7473], [6563, 7480], [6542, 7507], [6546, 7534], [6527, 7544], [6513, 7572], [6500, 7571], [6482, 7577], [6459, 7605], [6416, 7624], [6411, 7627], [6426, 7631], [6423, 7675], [6395, 7677], [6389, 7707], [6399, 7728], [6446, 7748], [6450, 7736], [6482, 7759], [6521, 7763], [6529, 7774], [6584, 7803], [6602, 7838], [6581, 7906], [6646, 7924], [6668, 7986], [6719, 7972], [6741, 7981], [6750, 8032], [6795, 8058], [6801, 8059], [6810, 8061], [6814, 8039], [6847, 8016], [6885, 8003], [6906, 7963], [6901, 7912], [6979, 7903], [7034, 7879], [7064, 7822], [7220, 7815], [7232, 7803], [7282, 7788], [7326, 7787], [7372, 7807], [7453, 7813], [7526, 7857], [7511, 7885], [7528, 7908], [7575, 7895], [7603, 7919], [7637, 7921], [7664, 7953], [7714, 7968], [7756, 7963], [7762, 7975], [7722, 8015], [7698, 8015], [7696, 8015], [7691, 8008], [7642, 8005], [7632, 8021], [7667, 8086], [7699, 8074], [7742, 8093], [7740, 8107], [7768, 8158], [7788, 8176], [7766, 8201], [7790, 8222], [7862, 8234], [7935, 8210], [8005, 8075], [8043, 8071], [8086, 8027], [8093, 8004], [8135, 8005], [8192, 8031], [8204, 8005], [8185, 7988], [8178, 7951], [8146, 7907], [8138, 7916], [8121, 7913], [8090, 7899], [8099, 7870], [8091, 7827], [8078, 7815], [8057, 7831], [8053, 7812], [8004, 7796], [8007, 7774], [7962, 7785], [7943, 7758], [7895, 7730], [7838, 7706], [7799, 7682], [7804, 7705], [7833, 7744], [7800, 7758], [7778, 7733], [7751, 7722], [7736, 7698], [7699, 7695], [7708, 7662], [7731, 7662], [7749, 7627], [7787, 7651], [7812, 7637], [7845, 7637], [7787, 7604], [7742, 7557], [7773, 7532], [7791, 7478], [7819, 7454], [7824, 7420], [7794, 7408], [7836, 7385], [7812, 7368], [7814, 7337], [7794, 7326], [7749, 7262], [7758, 7244], [7731, 7235], [7661, 7167], [7610, 7163], [7593, 7144], [7576, 7170], [7574, 7142], [7489, 7118], [7466, 7084], [7461, 7122], [7422, 7134], [7409, 7122], [7366, 7149], [7372, 7161], [7329, 7180], [7289, 7154], [7245, 7162], [7234, 7150], [7217, 7146], [7222, 7111], [7206, 7124], [7177, 7120], [7170, 7139], [7146, 7143], [7157, 7171], [7138, 7175], [7130, 7203], [7101, 7195], [7103, 7234], [7133, 7260], [7132, 7313], [7098, 7343], [7092, 7333], [7057, 7370], [7032, 7360], [7012, 7369], [6953, 7324], [6923, 7319], [6882, 7338], [6842, 7305]]]] } }, { \"type\": \"Feature\", \"id\": \"PT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.50, \"hc-key\": \"pt\", \"hc-a2\": \"PT\", \"name\": \"Portugal\", \"labelrank\": \"2\", \"country-abbrev\": \"Port.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"PRT\", \"iso-a2\": \"PT\", \"woe-id\": \"23424925\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3984, 7629], [3937, 7624], [3944, 7663], [3922, 7681], [3946, 7754], [3944, 7795], [4009, 7795], [4020, 7781], [3998, 7762], [3997, 7692], [3984, 7629]]] } }, { \"type\": \"Feature\", \"id\": \"SW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.86, \"hc-middle-y\": 0.57, \"hc-key\": \"sw\", \"hc-a2\": \"SW\", \"name\": \"Serranilla Bank\", \"labelrank\": \"5\", \"country-abbrev\": \"S.B.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"-99\", \"iso-a2\": \"SW\", \"woe-id\": \"-99\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1870, 6950], [1870, 6950], [1870, 6950], [1870, 6950]]] } }, { \"type\": \"Feature\", \"id\": \"SH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.51, \"hc-key\": \"sh\", \"hc-a2\": \"SH\", \"name\": \"Scarborough Reef\", \"labelrank\": \"6\", \"country-abbrev\": \"S.R.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"-99\", \"iso-a2\": \"SH\", \"woe-id\": \"-99\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7699, 6929], [7698, 6929], [7698, 6929], [7698, 6929], [7699, 6929]]] } }, { \"type\": \"Feature\", \"id\": \"BR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.34, \"hc-key\": \"br\", \"hc-a2\": \"BR\", \"name\": \"Brazil\", \"labelrank\": \"2\", \"country-abbrev\": \"Brazil\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"BRA\", \"iso-a2\": \"BR\", \"woe-id\": \"23424768\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2729, 6474], [2767, 6471], [2755, 6436], [2702, 6426], [2696, 6461], [2729, 6474]]], [[[2615, 5450], [2627, 5475], [2626, 5480], [2554, 5539], [2542, 5531], [2517, 5563], [2494, 5561], [2549, 5623], [2606, 5658], [2604, 5706], [2584, 5708], [2584, 5709], [2583, 5712], [2594, 5736], [2594, 5755], [2559, 5759], [2553, 5800], [2530, 5817], [2483, 5817], [2488, 5852], [2478, 5876], [2496, 5937], [2471, 5965], [2469, 5993], [2419, 5995], [2409, 6069], [2369, 6077], [2332, 6104], [2293, 6110], [2263, 6149], [2262, 6192], [2226, 6186], [2177, 6154], [2139, 6155], [2108, 6153], [2111, 6200], [2091, 6185], [2061, 6183], [2007, 6256], [2034, 6290], [2040, 6327], [2103, 6356], [2128, 6354], [2143, 6437], [2125, 6474], [2131, 6529], [2181, 6529], [2206, 6540], [2219, 6515], [2258, 6498], [2301, 6525], [2324, 6550], [2303, 6552], [2286, 6596], [2377, 6604], [2401, 6632], [2424, 6629], [2437, 6595], [2423, 6558], [2431, 6534], [2459, 6514], [2509, 6538], [2528, 6536], [2543, 6553], [2583, 6547], [2632, 6543], [2670, 6598], [2688, 6593], [2700, 6543], [2723, 6528], [2725, 6479], [2679, 6465], [2701, 6426], [2743, 6421], [2788, 6463], [2869, 6439], [2879, 6399], [2908, 6412], [2969, 6393], [3017, 6395], [3062, 6370], [3101, 6334], [3149, 6327], [3171, 6267], [3156, 6207], [3109, 6160], [3075, 6104], [3048, 6086], [3051, 6007], [3043, 5952], [3028, 5936], [3026, 5900], [2985, 5834], [2988, 5821], [2956, 5790], [2888, 5790], [2811, 5749], [2785, 5728], [2761, 5693], [2767, 5650], [2757, 5614], [2726, 5585], [2711, 5552], [2684, 5560], [2677, 5531], [2654, 5510], [2642, 5465], [2620, 5444], [2615, 5447], [2615, 5450]]]] } }, { \"type\": \"Feature\", \"id\": \"KI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.28, \"hc-middle-y\": 0.65, \"hc-key\": \"ki\", \"hc-a2\": \"KI\", \"name\": \"Kiribati\", \"labelrank\": \"6\", \"country-abbrev\": \"Kir.\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"KIR\", \"iso-a2\": \"KI\", \"woe-id\": \"23424867\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[-468, 6538], [-465, 6533], [-460, 6529], [-467, 6531], [-468, 6538]]] } }, { \"type\": \"Feature\", \"id\": \"PH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.40, \"hc-middle-y\": 0.19, \"hc-key\": \"ph\", \"hc-a2\": \"PH\", \"name\": \"Philippines\", \"labelrank\": \"2\", \"country-abbrev\": \"Phil.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"PHL\", \"iso-a2\": \"PH\", \"woe-id\": \"23424934\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7894, 6825], [7915, 6827], [7892, 6850], [7919, 6851], [7934, 6808], [7915, 6812], [7907, 6784], [7894, 6825]]], [[[7758, 6817], [7762, 6844], [7775, 6837], [7758, 6817], [7758, 6817]]], [[[7753, 6809], [7752, 6810], [7758, 6817], [7758, 6817], [7758, 6816], [7753, 6809], [7753, 6809]]], [[[7823, 6787], [7825, 6841], [7859, 6818], [7853, 6800], [7886, 6812], [7884, 6786], [7855, 6746], [7836, 6770], [7842, 6795], [7823, 6787]]], [[[7891, 6697], [7867, 6709], [7840, 6706], [7823, 6668], [7827, 6707], [7866, 6736], [7880, 6720], [7907, 6747], [7929, 6745], [7929, 6776], [7953, 6740], [7962, 6694], [7951, 6678], [7937, 6696], [7925, 6676], [7925, 6643], [7891, 6661], [7891, 6697]]], [[[7896, 6884], [7885, 6826], [7867, 6840], [7859, 6878], [7840, 6893], [7842, 6869], [7816, 6893], [7801, 6877], [7817, 6862], [7802, 6841], [7776, 6880], [7796, 6881], [7767, 6918], [7760, 6966], [7777, 6959], [7775, 7002], [7801, 7048], [7798, 7035], [7834, 7023], [7840, 6987], [7831, 6962], [7812, 6952], [7817, 6900], [7839, 6905], [7896, 6884]]], [[[7753, 6809], [7757, 6790], [7686, 6729], [7752, 6809], [7753, 6809]]]] } }, { \"type\": \"Feature\", \"id\": \"MX\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.51, \"hc-middle-y\": 0.49, \"hc-key\": \"mx\", \"hc-a2\": \"MX\", \"name\": \"Mexico\", \"labelrank\": \"2\", \"country-abbrev\": \"Mex.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"MEX\", \"iso-a2\": \"MX\", \"woe-id\": \"23424900\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[1630, 7094], [1622, 7084], [1622, 7088], [1624, 7093], [1630, 7094]]], [[[1038, 7129], [1042, 7127], [1052, 7116], [1044, 7121], [1038, 7129]]], [[[881, 7216], [885, 7216], [889, 7212], [889, 7210], [881, 7216]]], [[[875, 7231], [874, 7226], [871, 7225], [874, 7232], [875, 7231]]], [[[786, 7330], [784, 7328], [781, 7330], [786, 7338], [786, 7330]]], [[[696, 7356], [694, 7355], [692, 7363], [695, 7361], [696, 7356]]], [[[864, 7349], [866, 7364], [874, 7359], [871, 7350], [864, 7349]]], [[[836, 7376], [845, 7368], [847, 7358], [833, 7372], [836, 7376]]], [[[1200, 7378], [1199, 7374], [1206, 7373], [1228, 7335], [1252, 7296], [1259, 7288], [1261, 7281], [1289, 7265], [1321, 7262], [1306, 7216], [1300, 7155], [1321, 7096], [1361, 7038], [1401, 7020], [1478, 7034], [1505, 7051], [1523, 7108], [1589, 7126], [1630, 7115], [1609, 7083], [1597, 7023], [1583, 7030], [1567, 7012], [1558, 7009], [1504, 7009], [1491, 6992], [1522, 6966], [1482, 6956], [1466, 6911], [1417, 6957], [1389, 6967], [1339, 6944], [1273, 6971], [1205, 6993], [1183, 7012], [1133, 7025], [1088, 7056], [1067, 7089], [1083, 7121], [1064, 7158], [989, 7239], [956, 7256], [956, 7286], [923, 7307], [876, 7358], [847, 7417], [849, 7428], [804, 7448], [801, 7397], [832, 7368], [924, 7228], [922, 7208], [946, 7205], [956, 7176], [943, 7165], [930, 7186], [876, 7228], [873, 7264], [834, 7285], [790, 7321], [816, 7325], [820, 7341], [771, 7383], [760, 7417], [728, 7473], [799, 7479], [797, 7472], [908, 7434], [993, 7434], [993, 7449], [1043, 7449], [1091, 7409], [1102, 7380], [1143, 7358], [1167, 7387], [1200, 7378]], [[1309, 7246], [1303, 7231], [1306, 7218], [1313, 7245], [1309, 7246]]]] } }, { \"type\": \"Feature\", \"id\": \"ES\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.76, \"hc-middle-y\": 0.27, \"hc-key\": \"es\", \"hc-a2\": \"ES\", \"name\": \"Spain\", \"labelrank\": \"2\", \"country-abbrev\": \"Sp.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ESP\", \"iso-a2\": \"ES\", \"woe-id\": \"23424950\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[3748, 7322], [3716, 7331], [3697, 7330], [3726, 7345], [3748, 7322]]], [[[4117, 7566], [4118, 7565], [4117, 7564], [4116, 7566], [4117, 7566]]], [[[4044, 7586], [4046, 7586], [4045, 7584], [4044, 7585], [4044, 7586]]], [[[4045, 7594], [4021, 7599], [4011, 7621], [3984, 7629], [3997, 7692], [3998, 7762], [4020, 7781], [4009, 7795], [3944, 7795], [3930, 7838], [3969, 7860], [3988, 7852], [4098, 7851], [4151, 7846], [4203, 7821], [4246, 7818], [4249, 7812], [4255, 7814], [4262, 7812], [4262, 7813], [4262, 7814], [4263, 7812], [4263, 7812], [4279, 7808], [4298, 7812], [4300, 7795], [4265, 7771], [4233, 7763], [4194, 7709], [4211, 7683], [4189, 7669], [4183, 7644], [4154, 7635], [4143, 7615], [4072, 7613], [4046, 7594], [4045, 7594]]]] } }, { \"type\": \"Feature\", \"id\": \"BU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.73, \"hc-key\": \"bu\", \"hc-a2\": \"BU\", \"name\": \"Bajo Nuevo Bank (Petrel Is.)\", \"labelrank\": \"8\", \"country-abbrev\": null, \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"-99\", \"iso-a2\": \"BU\", \"woe-id\": \"-99\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1830, 6948], [1830, 6948], [1830, 6948], [1830, 6948], [1830, 6948]]] } }, { \"type\": \"Feature\", \"id\": \"MV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.53, \"hc-key\": \"mv\", \"hc-a2\": \"MV\", \"name\": \"Maldives\", \"labelrank\": \"5\", \"country-abbrev\": \"Mald.\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"MDV\", \"iso-a2\": \"MV\", \"woe-id\": \"23424899\", \"continent\": \"Seven seas (open ocean)\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6382, 6647], [6390, 6636], [6380, 6637], [6384, 6642], [6382, 6647]]] } }, { \"type\": \"Feature\", \"id\": \"SP\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"sp\", \"hc-a2\": \"SP\", \"name\": \"Spratly Islands\", \"labelrank\": \"6\", \"country-abbrev\": \"Spratly Is.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"SPI\", \"iso-a2\": \"SP\", \"woe-id\": \"23424921\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7642, 6799], [7641, 6799], [7641, 6799], [7642, 6799], [7642, 6799]]] } }, { \"type\": \"Feature\", \"id\": \"GB\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.69, \"hc-middle-y\": 0.09, \"hc-key\": \"gb\", \"hc-a2\": \"GB\", \"name\": \"United Kingdom\", \"labelrank\": \"2\", \"country-abbrev\": \"U.K.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"GBR\", \"iso-a2\": \"GB\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4108, 8458], [4110, 8454], [4106, 8453], [4102, 8457], [4108, 8458]]], [[[4112, 8469], [4111, 8462], [4116, 8461], [4104, 8463], [4112, 8469]]], [[[4118, 8472], [4113, 8477], [4125, 8471], [4121, 8468], [4118, 8472]]], [[[4173, 8521], [4166, 8500], [4165, 8515], [4155, 8520], [4173, 8521]]], [[[4176, 8534], [4182, 8533], [4169, 8530], [4171, 8539], [4176, 8534]]], [[[4181, 8542], [4179, 8536], [4175, 8537], [4176, 8542], [4181, 8542]]], [[[1789, 7055], [1792, 7057], [1798, 7055], [1792, 7054], [1789, 7055]]], [[[2080, 7131], [2072, 7131], [2072, 7133], [2077, 7133], [2080, 7131]]], [[[2065, 7134], [2063, 7131], [2058, 7131], [2062, 7132], [2065, 7134]]], [[[3994, 8404], [3993, 8427], [4018, 8441], [4015, 8421], [3994, 8404]]], [[[2433, 4774], [2454, 4816], [2486, 4811], [2491, 4798], [2433, 4774]]], [[[5210, 7554], [5209, 7553], [5207, 7555], [5206, 7555], [5206, 7555], [5206, 7554], [5204, 7554], [5204, 7555], [5205, 7555], [5203, 7556], [5206, 7556], [5210, 7558], [5210, 7557], [5207, 7557], [5210, 7554]], [[5205, 7555], [5206, 7556], [5205, 7556], [5205, 7555]]], [[[4046, 7594], [4045, 7593], [4045, 7594], [4046, 7594]]], [[[5184, 7543], [5181, 7544], [5176, 7544], [5178, 7545], [5184, 7543]]], [[[3989, 8295], [4018, 8305], [4040, 8278], [4018, 8256], [3987, 8256], [3961, 8270], [3989, 8295]]], [[[4024, 8390], [4056, 8446], [4114, 8447], [4083, 8416], [4100, 8407], [4147, 8405], [4152, 8396], [4110, 8337], [4156, 8317], [4168, 8277], [4202, 8256], [4214, 8215], [4204, 8207], [4254, 8201], [4251, 8174], [4225, 8151], [4244, 8137], [4212, 8122], [4102, 8117], [4043, 8100], [4081, 8140], [4113, 8140], [4074, 8163], [4046, 8166], [4079, 8182], [4080, 8220], [4109, 8227], [4119, 8259], [4096, 8272], [4103, 8288], [4073, 8289], [4075, 8268], [4052, 8286], [4067, 8313], [4036, 8351], [4008, 8361], [4032, 8367], [4003, 8396], [4024, 8390]]]] } }, { \"type\": \"Feature\", \"id\": \"GR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.30, \"hc-middle-y\": 0.43, \"hc-key\": \"gr\", \"hc-a2\": \"GR\", \"name\": \"Greece\", \"labelrank\": \"3\", \"country-abbrev\": \"Greece\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"GRC\", \"iso-a2\": \"GR\", \"woe-id\": \"23424833\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4984, 7560], [4938, 7553], [4902, 7565], [4922, 7573], [4984, 7560]]], [[[5023, 7596], [5041, 7604], [5037, 7593], [5028, 7585], [5023, 7596]]], [[[5011, 7610], [5003, 7612], [5010, 7619], [5009, 7615], [5011, 7610]]], [[[5002, 7626], [5006, 7623], [5003, 7621], [5004, 7624], [5002, 7626]]], [[[4952, 7622], [4962, 7630], [4963, 7623], [4957, 7611], [4952, 7622]]], [[[4985, 7644], [4977, 7640], [4975, 7641], [4978, 7645], [4985, 7644]]], [[[5004, 7649], [5007, 7647], [4999, 7645], [4993, 7649], [5004, 7649]]], [[[4978, 7677], [4980, 7667], [4975, 7669], [4971, 7677], [4978, 7677]]], [[[4959, 7727], [4953, 7726], [4959, 7743], [4966, 7743], [4959, 7727]]], [[[4828, 7750], [4831, 7753], [4828, 7750], [4826, 7753], [4826, 7754], [4828, 7756], [4831, 7756], [4854, 7765], [4884, 7773], [4931, 7781], [4953, 7770], [4985, 7786], [4994, 7775], [4977, 7752], [4947, 7761], [4907, 7750], [4928, 7732], [4876, 7743], [4874, 7728], [4958, 7637], [4915, 7667], [4918, 7646], [4893, 7656], [4878, 7642], [4892, 7604], [4853, 7613], [4838, 7665], [4798, 7715], [4809, 7720], [4828, 7750]]], [[[4989, 7700], [4994, 7693], [4988, 7690], [4971, 7698], [4986, 7702], [4988, 7702], [4989, 7700]]]] } }, { \"type\": \"Feature\", \"id\": \"AS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.56, \"hc-middle-y\": 0.57, \"hc-key\": \"as\", \"hc-a2\": \"AS\", \"name\": \"American Samoa\", \"labelrank\": \"4\", \"country-abbrev\": \"Am. Samoa\", \"subregion\": \"Polynesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"ASM\", \"iso-a2\": \"AS\", \"woe-id\": \"23424746\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[-859, 6056], [-861, 6055], [-863, 6052], [-866, 6054], [-859, 6056]]] } }, { \"type\": \"Feature\", \"id\": \"DK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.35, \"hc-middle-y\": 0.49, \"hc-key\": \"dk\", \"hc-a2\": \"DK\", \"name\": \"Denmark\", \"labelrank\": \"4\", \"country-abbrev\": \"Den.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"DNK\", \"iso-a2\": \"DK\", \"woe-id\": \"23424796\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4538, 8291], [4553, 8278], [4544, 8277], [4531, 8283], [4538, 8291]]], [[[4511, 8288], [4516, 8286], [4512, 8286], [4506, 8292], [4511, 8288]]], [[[4576, 8293], [4566, 8288], [4565, 8292], [4570, 8294], [4576, 8293]]], [[[4495, 8296], [4502, 8291], [4500, 8287], [4494, 8289], [4495, 8296]]], [[[4526, 8290], [4523, 8282], [4520, 8286], [4529, 8299], [4526, 8290]]], [[[4578, 8322], [4559, 8280], [4533, 8320], [4567, 8339], [4578, 8322]]], [[[4484, 8285], [4466, 8289], [4461, 8288], [4445, 8357], [4495, 8381], [4519, 8408], [4509, 8372], [4529, 8353], [4516, 8338], [4525, 8302], [4488, 8310], [4484, 8285]]]] } }, { \"type\": \"Feature\", \"id\": \"GL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.55, \"hc-middle-y\": 0.43, \"hc-key\": \"gl\", \"hc-a2\": \"GL\", \"name\": \"Greenland\", \"labelrank\": \"3\", \"country-abbrev\": \"Grlnd.\", \"subregion\": \"Northern America\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"GRL\", \"iso-a2\": \"GL\", \"woe-id\": \"23424828\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2633, 8910], [2635, 8908], [2628, 8905], [2624, 8909], [2633, 8910]]], [[[2656, 8923], [2628, 8916], [2630, 8920], [2642, 8923], [2656, 8923]]], [[[2582, 9011], [2574, 9011], [2571, 9017], [2578, 9015], [2582, 9011]]], [[[2616, 9047], [2602, 9051], [2613, 9062], [2620, 9051], [2616, 9047]]], [[[2570, 9117], [2557, 9108], [2553, 9113], [2571, 9121], [2570, 9117]]], [[[2552, 9143], [2545, 9137], [2535, 9139], [2543, 9143], [2552, 9143]]], [[[2572, 9145], [2556, 9131], [2554, 9142], [2564, 9145], [2572, 9145]]], [[[2544, 9188], [2558, 9180], [2554, 9179], [2539, 9188], [2544, 9188]]], [[[2534, 9206], [2543, 9205], [2524, 9203], [2524, 9209], [2534, 9206]]], [[[2528, 9242], [2510, 9242], [2496, 9242], [2521, 9246], [2528, 9242]]], [[[2139, 9366], [2126, 9367], [2127, 9369], [2140, 9370], [2139, 9366]]], [[[2061, 9422], [2086, 9417], [2076, 9414], [2052, 9419], [2061, 9422]]], [[[2100, 9424], [2119, 9418], [2095, 9418], [2088, 9423], [2100, 9424]]], [[[3690, 9588], [3655, 9569], [3628, 9580], [3678, 9596], [3690, 9588]]], [[[2218, 9636], [2228, 9632], [2222, 9631], [2218, 9632], [2218, 9636]]], [[[2683, 9729], [2658, 9730], [2626, 9738], [2637, 9753], [2683, 9729]]], [[[2610, 8952], [2619, 8961], [2572, 8975], [2577, 9002], [2623, 9002], [2661, 8980], [2657, 8963], [2610, 8952]]], [[[2631, 8765], [2626, 8765], [2626, 8768], [2627, 8768], [2624, 8771], [2612, 8811], [2652, 8832], [2603, 8840], [2627, 8897], [2686, 8916], [2696, 8975], [2677, 8989], [2606, 9011], [2584, 9029], [2647, 9028], [2701, 9008], [2677, 9040], [2647, 9058], [2641, 9054], [2628, 9056], [2632, 9066], [2636, 9065], [2631, 9068], [2667, 9078], [2637, 9080], [2624, 9074], [2617, 9080], [2629, 9081], [2633, 9081], [2599, 9084], [2603, 9068], [2563, 9065], [2545, 9082], [2553, 9091], [2548, 9094], [2555, 9096], [2557, 9095], [2575, 9114], [2584, 9146], [2568, 9153], [2570, 9153], [2556, 9159], [2555, 9158], [2552, 9159], [2564, 9178], [2541, 9192], [2552, 9207], [2530, 9217], [2538, 9235], [2510, 9267], [2478, 9276], [2463, 9295], [2469, 9316], [2398, 9342], [2320, 9355], [2304, 9341], [2239, 9349], [2231, 9329], [2173, 9337], [2137, 9356], [2186, 9374], [2115, 9382], [2087, 9394], [2100, 9406], [2175, 9418], [2222, 9417], [2237, 9433], [2150, 9423], [2141, 9438], [2088, 9443], [2041, 9468], [2050, 9491], [2146, 9510], [2185, 9528], [2246, 9530], [2279, 9557], [2274, 9591], [2214, 9594], [2202, 9613], [2271, 9643], [2281, 9658], [2335, 9675], [2378, 9663], [2400, 9695], [2380, 9712], [2465, 9738], [2588, 9757], [2615, 9738], [2608, 9698], [2633, 9733], [2679, 9723], [2736, 9726], [2703, 9741], [2687, 9767], [2750, 9763], [2839, 9733], [2864, 9715], [2891, 9719], [2870, 9733], [2876, 9737], [2813, 9756], [2770, 9788], [2788, 9777], [2829, 9779], [2885, 9759], [2877, 9738], [2906, 9760], [2846, 9787], [2988, 9787], [2850, 9794], [2814, 9801], [2838, 9810], [2865, 9802], [2879, 9816], [2954, 9821], [3022, 9818], [3052, 9816], [3056, 9835], [3114, 9844], [3240, 9851], [3294, 9849], [3443, 9826], [3430, 9819], [3292, 9814], [3167, 9796], [3259, 9803], [3311, 9813], [3391, 9808], [3456, 9816], [3478, 9796], [3532, 9789], [3571, 9776], [3538, 9755], [3318, 9740], [3231, 9719], [3264, 9718], [3380, 9734], [3473, 9729], [3471, 9714], [3423, 9702], [3421, 9689], [3499, 9712], [3516, 9732], [3569, 9736], [3573, 9695], [3518, 9653], [3552, 9660], [3651, 9717], [3698, 9699], [3735, 9718], [3791, 9716], [3847, 9704], [3866, 9691], [3808, 9660], [3772, 9658], [3780, 9644], [3746, 9634], [3698, 9635], [3735, 9618], [3716, 9605], [3647, 9598], [3600, 9582], [3634, 9570], [3623, 9548], [3641, 9533], [3613, 9524], [3628, 9503], [3597, 9514], [3572, 9475], [3569, 9450], [3634, 9453], [3630, 9441], [3674, 9435], [3630, 9427], [3586, 9435], [3597, 9418], [3660, 9407], [3648, 9365], [3653, 9329], [3637, 9361], [3647, 9379], [3595, 9391], [3559, 9373], [3560, 9348], [3612, 9348], [3630, 9296], [3689, 9274], [3657, 9271], [3629, 9229], [3573, 9218], [3594, 9181], [3565, 9184], [3542, 9170], [3492, 9190], [3428, 9169], [3444, 9165], [3441, 9166], [3478, 9180], [3514, 9160], [3554, 9151], [3554, 9138], [3524, 9143], [3553, 9127], [3532, 9126], [3545, 9106], [3481, 9133], [3477, 9146], [3501, 9146], [3476, 9150], [3457, 9159], [3441, 9150], [3476, 9123], [3536, 9094], [3520, 9084], [3557, 9059], [3567, 9020], [3511, 9014], [3484, 9049], [3437, 9076], [3445, 9055], [3375, 9038], [3366, 9011], [3394, 9014], [3371, 9014], [3383, 9030], [3452, 9049], [3453, 9026], [3427, 9015], [3407, 9015], [3376, 8996], [3394, 8990], [3453, 9013], [3505, 8997], [3540, 8997], [3514, 8972], [3489, 8966], [3424, 8922], [3372, 8915], [3332, 8897], [3254, 8889], [3215, 8864], [3216, 8851], [3176, 8805], [3124, 8778], [3080, 8766], [3076, 8798], [3061, 8771], [3013, 8760], [3032, 8753], [3009, 8738], [2992, 8708], [3002, 8677], [2953, 8623], [2939, 8546], [2915, 8528], [2921, 8504], [2888, 8501], [2857, 8515], [2855, 8534], [2781, 8544], [2749, 8569], [2741, 8603], [2711, 8619], [2716, 8640], [2679, 8665], [2683, 8709], [2658, 8696], [2660, 8737], [2631, 8765]]]] } }, { \"type\": \"Feature\", \"id\": \"GU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.44, \"hc-key\": \"gu\", \"hc-a2\": \"GU\", \"name\": \"Guam\", \"labelrank\": \"6\", \"country-abbrev\": \"Guam\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"GUM\", \"iso-a2\": \"GU\", \"woe-id\": \"23424832\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8501, 6877], [8498, 6871], [8496, 6877], [8503, 6884], [8501, 6877]]] } }, { \"type\": \"Feature\", \"id\": \"MP\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.49, \"hc-key\": \"mp\", \"hc-a2\": \"MP\", \"name\": \"Northern Mariana Islands\", \"labelrank\": \"6\", \"country-abbrev\": \"N.M.I.\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"MNP\", \"iso-a2\": \"MP\", \"woe-id\": \"23424788\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8526, 6925], [8528, 6930], [8531, 6932], [8529, 6927], [8526, 6925]]] } }, { \"type\": \"Feature\", \"id\": \"PR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.65, \"hc-key\": \"pr\", \"hc-a2\": \"PR\", \"name\": \"Puerto Rico\", \"labelrank\": \"5\", \"country-abbrev\": \"P.R.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"PRI\", \"iso-a2\": \"PR\", \"woe-id\": \"23424935\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2267, 7024], [2239, 7013], [2212, 7014], [2213, 7031], [2267, 7024]]] } }, { \"type\": \"Feature\", \"id\": \"VI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.19, \"hc-key\": \"vi\", \"hc-a2\": \"VI\", \"name\": \"United States Virgin Islands\", \"labelrank\": \"6\", \"country-abbrev\": \"V.I. (U.S.)\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"VIR\", \"iso-a2\": \"VI\", \"woe-id\": \"23424985\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2283, 7008], [2288, 7008], [2278, 7005], [2279, 7008], [2283, 7008]]] } }, { \"type\": \"Feature\", \"id\": \"CA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.29, \"hc-middle-y\": 0.64, \"hc-key\": \"ca\", \"hc-a2\": \"CA\", \"name\": \"Canada\", \"labelrank\": \"2\", \"country-abbrev\": \"Can.\", \"subregion\": \"Northern America\", \"region-wb\": \"North America\", \"iso-a3\": \"CAN\", \"iso-a2\": \"CA\", \"woe-id\": \"23424775\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[1713, 9425], [1665, 9428], [1680, 9462], [1643, 9470], [1608, 9466], [1608, 9487], [1634, 9510], [1674, 9517], [1735, 9510], [1777, 9514], [1703, 9520], [1681, 9564], [1638, 9573], [1639, 9612], [1717, 9607], [1765, 9581], [1781, 9562], [1787, 9587], [1735, 9612], [1889, 9631], [1831, 9632], [1931, 9652], [1841, 9647], [1743, 9627], [1715, 9642], [1699, 9625], [1630, 9631], [1649, 9658], [1614, 9633], [1551, 9650], [1631, 9659], [1637, 9668], [1538, 9660], [1523, 9671], [1581, 9700], [1519, 9685], [1545, 9704], [1475, 9704], [1503, 9719], [1590, 9738], [1689, 9729], [1630, 9740], [1671, 9751], [1659, 9764], [1742, 9752], [1829, 9728], [1749, 9758], [1768, 9779], [1812, 9771], [1783, 9788], [1833, 9786], [1825, 9799], [1915, 9793], [1945, 9807], [2002, 9803], [2013, 9793], [2038, 9809], [2136, 9812], [2138, 9803], [2235, 9795], [2168, 9776], [2203, 9778], [2284, 9797], [2337, 9767], [2377, 9766], [2384, 9744], [2294, 9710], [2264, 9713], [2226, 9694], [2125, 9670], [2289, 9698], [2178, 9642], [2107, 9600], [2083, 9572], [2026, 9575], [2032, 9559], [1951, 9546], [1907, 9553], [1909, 9541], [1994, 9538], [1993, 9525], [1945, 9531], [1892, 9527], [1955, 9522], [1989, 9509], [1984, 9496], [1934, 9493], [1975, 9482], [1961, 9465], [1901, 9446], [1881, 9418], [1807, 9415], [1859, 9401], [1848, 9390], [1892, 9392], [1896, 9373], [1852, 9352], [1863, 9324], [1837, 9325], [1849, 9351], [1798, 9340], [1807, 9358], [1714, 9361], [1699, 9351], [1610, 9360], [1531, 9362], [1516, 9376], [1584, 9403], [1602, 9416], [1587, 9445], [1616, 9451], [1653, 9439], [1658, 9421], [1713, 9425]], [[1713, 9425], [1714, 9425], [1714, 9425], [1714, 9425], [1714, 9425], [1714, 9425], [1729, 9427], [1747, 9459], [1714, 9425], [1714, 9425], [1714, 9425], [1714, 9425], [1713, 9425]]], [[[1858, 7836], [1858, 7833], [1862, 7830], [1790, 7820], [1752, 7798], [1739, 7807], [1758, 7809], [1751, 7816], [1755, 7820], [1758, 7833], [1778, 7845], [1791, 7914], [1827, 7886], [1838, 7897], [1808, 7939], [1708, 7954], [1708, 7961], [1697, 7959], [1686, 8013], [1656, 8016], [1639, 8046], [1591, 8054], [1546, 8016], [1491, 8018], [1455, 8037], [1379, 8054], [561, 8054], [555, 8058], [553, 8054], [551, 8054], [545, 8069], [502, 8091], [506, 8102], [499, 8104], [501, 8103], [504, 8100], [499, 8097], [497, 8104], [488, 8106], [489, 8108], [486, 8110], [485, 8107], [476, 8108], [474, 8109], [464, 8111], [472, 8108], [471, 8108], [468, 8109], [472, 8107], [474, 8108], [480, 8106], [485, 8099], [485, 8098], [490, 8093], [490, 8093], [508, 8069], [539, 8044], [537, 8052], [544, 8047], [553, 8046], [540, 8044], [545, 8040], [537, 8028], [504, 8038], [448, 8070], [445, 8079], [446, 8079], [443, 8087], [443, 8087], [442, 8091], [411, 8096], [393, 8123], [409, 8127], [448, 8116], [450, 8117], [447, 8118], [456, 8118], [459, 8122], [456, 8125], [447, 8118], [412, 8138], [406, 8174], [401, 8161], [398, 8166], [401, 8173], [406, 8174], [406, 8175], [407, 8175], [409, 8178], [406, 8178], [405, 8179], [408, 8179], [407, 8183], [405, 8181], [402, 8201], [387, 8216], [379, 8197], [370, 8211], [371, 8215], [366, 8216], [366, 8220], [371, 8223], [371, 8217], [373, 8223], [384, 8218], [380, 8222], [387, 8253], [374, 8237], [381, 8240], [379, 8235], [373, 8232], [372, 8234], [366, 8227], [332, 8264], [346, 8293], [346, 8304], [346, 8330], [292, 8359], [245, 8436], [199, 8475], [183, 8497], [158, 8488], [126, 8458], [120, 8473], [74, 8510], [20, 8520], [19, 8972], [75, 8965], [132, 8936], [172, 8933], [173, 8954], [234, 8964], [250, 8959], [335, 9000], [361, 8992], [287, 8966], [261, 8941], [310, 8969], [318, 8952], [336, 8974], [431, 9004], [446, 8976], [481, 8955], [509, 8996], [512, 8957], [549, 8964], [555, 8982], [600, 8978], [635, 8959], [701, 8939], [762, 8928], [763, 8938], [815, 8916], [820, 8899], [792, 8901], [776, 8883], [825, 8871], [894, 8872], [929, 8885], [965, 8875], [975, 8854], [999, 8850], [1012, 8813], [1023, 8842], [999, 8872], [1069, 8919], [1010, 8895], [975, 8901], [991, 8919], [1064, 8932], [1078, 8905], [1103, 8888], [1137, 8887], [1191, 8870], [1215, 8879], [1285, 8876], [1309, 8866], [1275, 8905], [1318, 8911], [1331, 8888], [1358, 8902], [1341, 8860], [1375, 8831], [1371, 8890], [1389, 8888], [1427, 8930], [1396, 8925], [1405, 8962], [1349, 8984], [1339, 9009], [1342, 9061], [1378, 9097], [1396, 9099], [1380, 9098], [1381, 9125], [1363, 9145], [1363, 9192], [1377, 9214], [1424, 9223], [1466, 9213], [1527, 9207], [1478, 9147], [1462, 9139], [1410, 9143], [1430, 9125], [1411, 9101], [1398, 9100], [1438, 9070], [1443, 9037], [1487, 8999], [1448, 8975], [1480, 8964], [1520, 8932], [1525, 8899], [1543, 8940], [1565, 8950], [1594, 8924], [1580, 8901], [1607, 8842], [1655, 8889], [1662, 8924], [1690, 8940], [1667, 8953], [1666, 8979], [1701, 8983], [1715, 8980], [1715, 8982], [1725, 8979], [1723, 8978], [1752, 8972], [1790, 8948], [1776, 8934], [1792, 8919], [1751, 8910], [1793, 8859], [1785, 8836], [1730, 8804], [1700, 8835], [1720, 8796], [1674, 8800], [1668, 8815], [1628, 8808], [1656, 8794], [1611, 8754], [1595, 8754], [1542, 8784], [1562, 8753], [1621, 8749], [1593, 8699], [1561, 8687], [1534, 8698], [1528, 8674], [1504, 8670], [1505, 8669], [1514, 8666], [1512, 8664], [1511, 8666], [1505, 8669], [1514, 8645], [1453, 8618], [1404, 8545], [1390, 8504], [1401, 8450], [1439, 8451], [1460, 8395], [1454, 8374], [1503, 8387], [1566, 8370], [1605, 8336], [1693, 8303], [1761, 8295], [1767, 8244], [1762, 8210], [1837, 8137], [1874, 8185], [1860, 8212], [1855, 8257], [1837, 8278], [1896, 8304], [1928, 8336], [1934, 8367], [1917, 8417], [1872, 8446], [1910, 8497], [1884, 8545], [1903, 8573], [1885, 8610], [1905, 8624], [1985, 8603], [2018, 8619], [2077, 8581], [2073, 8567], [2145, 8542], [2132, 8530], [2143, 8458], [2163, 8459], [2196, 8424], [2251, 8456], [2259, 8494], [2279, 8522], [2293, 8517], [2299, 8495], [2302, 8500], [2305, 8496], [2301, 8493], [2299, 8495], [2303, 8480], [2323, 8475], [2336, 8445], [2383, 8381], [2366, 8360], [2429, 8297], [2504, 8272], [2482, 8261], [2509, 8241], [2548, 8229], [2554, 8180], [2513, 8148], [2465, 8139], [2429, 8106], [2372, 8097], [2354, 8104], [2232, 8103], [2205, 8067], [2155, 8046], [2129, 8008], [2086, 7969], [2038, 7949], [1987, 7905], [1970, 7900], [1955, 7886], [1860, 7863], [1837, 7844], [1858, 7842], [1858, 7838], [1858, 7836]], [[456, 8113], [455, 8114], [454, 8114], [456, 8113]], [[544, 8070], [543, 8075], [540, 8074], [540, 8071], [544, 8070]], [[424, 8181], [428, 8188], [413, 8181], [409, 8169], [424, 8181]], [[1315, 8873], [1309, 8871], [1310, 8867], [1315, 8870], [1315, 8873]], [[466, 8061], [471, 8060], [471, 8063], [469, 8063], [466, 8061]], [[463, 8065], [462, 8069], [458, 8069], [458, 8065], [463, 8065]]], [[[2286, 8678], [2286, 8639], [2268, 8632], [2229, 8643], [2201, 8663], [2198, 8647], [2247, 8606], [2237, 8590], [2170, 8608], [2139, 8627], [2076, 8651], [2080, 8670], [2048, 8683], [2024, 8719], [1988, 8708], [1954, 8719], [1928, 8699], [1894, 8707], [1885, 8735], [1906, 8760], [1956, 8748], [2002, 8763], [2024, 8760], [1994, 8794], [2039, 8823], [2062, 8850], [2038, 8899], [2013, 8904], [1964, 8939], [1930, 8922], [1930, 8939], [1961, 8950], [1899, 8982], [1899, 9001], [1861, 9008], [1866, 8984], [1778, 8998], [1766, 8979], [1644, 8997], [1572, 9016], [1546, 9050], [1612, 9042], [1590, 9056], [1539, 9063], [1530, 9095], [1546, 9144], [1564, 9172], [1599, 9197], [1631, 9204], [1678, 9202], [1631, 9145], [1640, 9100], [1686, 9060], [1667, 9114], [1696, 9106], [1661, 9135], [1676, 9169], [1746, 9198], [1785, 9197], [1822, 9141], [1805, 9098], [1835, 9128], [1862, 9100], [1876, 9132], [1901, 9142], [1972, 9127], [1970, 9106], [2001, 9104], [2000, 9085], [2036, 9059], [2053, 9080], [2094, 9059], [2066, 9049], [2064, 9043], [2072, 9048], [2082, 9041], [2103, 9051], [2091, 9022], [2129, 9038], [2175, 9022], [2212, 8976], [2191, 8974], [2194, 8971], [2188, 8967], [2194, 8966], [2201, 8970], [2207, 8967], [2198, 8965], [2209, 8962], [2222, 8945], [2194, 8940], [2183, 8927], [2180, 8928], [2174, 8928], [2182, 8926], [2175, 8917], [2219, 8908], [2228, 8897], [2231, 8899], [2238, 8899], [2237, 8895], [2228, 8896], [2237, 8885], [2276, 8889], [2307, 8851], [2310, 8851], [2317, 8853], [2324, 8851], [2323, 8851], [2334, 8850], [2324, 8830], [2364, 8838], [2380, 8805], [2348, 8798], [2346, 8770], [2315, 8760], [2319, 8733], [2288, 8742], [2220, 8813], [2190, 8809], [2212, 8787], [2187, 8765], [2258, 8726], [2254, 8713], [2286, 8689], [2286, 8685], [2286, 8685], [2287, 8680], [2292, 8674], [2286, 8678]], [[2063, 9038], [2061, 9032], [2070, 9036], [2065, 9034], [2063, 9038]], [[2187, 8974], [2164, 8972], [2177, 8969], [2187, 8974]]], [[[2096, 7974], [2093, 7974], [2100, 7980], [2101, 7977], [2096, 7974]]], [[[533, 8059], [538, 8053], [544, 8051], [538, 8052], [533, 8059]]], [[[2301, 8091], [2368, 8068], [2357, 8057], [2317, 8069], [2301, 8091]]], [[[495, 8094], [493, 8097], [495, 8100], [498, 8096], [495, 8094]]], [[[409, 8150], [403, 8151], [401, 8156], [405, 8160], [409, 8150]]], [[[1857, 8175], [1850, 8170], [1841, 8168], [1841, 8172], [1857, 8175]]], [[[316, 8175], [314, 8174], [313, 8171], [313, 8177], [316, 8175]]], [[[399, 8172], [397, 8175], [398, 8179], [401, 8179], [399, 8172]]], [[[397, 8181], [396, 8177], [390, 8177], [392, 8181], [397, 8181]]], [[[385, 8190], [387, 8184], [385, 8182], [383, 8189], [385, 8190]]], [[[390, 8195], [391, 8191], [390, 8189], [384, 8195], [390, 8195]]], [[[297, 8200], [302, 8200], [303, 8197], [299, 8195], [297, 8200]]], [[[394, 8186], [392, 8196], [394, 8203], [397, 8191], [394, 8186]]], [[[366, 8203], [377, 8196], [378, 8191], [372, 8194], [366, 8203]]], [[[398, 8196], [397, 8198], [396, 8202], [400, 8203], [398, 8196]]], [[[359, 8213], [360, 8209], [357, 8209], [354, 8216], [359, 8213]]], [[[363, 8217], [367, 8211], [364, 8211], [361, 8219], [363, 8217]]], [[[1788, 8220], [1797, 8219], [1809, 8199], [1769, 8212], [1788, 8220]]], [[[1834, 8218], [1836, 8216], [1832, 8215], [1833, 8218], [1834, 8218]]], [[[378, 8225], [372, 8224], [371, 8226], [376, 8233], [378, 8225]]], [[[329, 8230], [331, 8237], [350, 8227], [348, 8218], [329, 8230]]], [[[343, 8235], [336, 8236], [334, 8239], [340, 8242], [343, 8235]]], [[[353, 8238], [366, 8226], [359, 8220], [337, 8245], [353, 8238]]], [[[327, 8256], [336, 8254], [339, 8250], [328, 8243], [327, 8256]]], [[[314, 8276], [324, 8276], [326, 8266], [318, 8270], [314, 8276]]], [[[1852, 8288], [1842, 8285], [1840, 8286], [1859, 8290], [1852, 8288]]], [[[333, 8283], [332, 8285], [341, 8294], [338, 8286], [333, 8283]]], [[[1861, 8337], [1867, 8352], [1869, 8353], [1869, 8342], [1861, 8337]]], [[[1843, 8360], [1842, 8352], [1831, 8342], [1841, 8352], [1843, 8360]]], [[[1834, 8370], [1832, 8369], [1834, 8374], [1838, 8369], [1834, 8370]]], [[[2200, 8432], [2196, 8433], [2197, 8436], [2199, 8437], [2200, 8432]]], [[[2155, 8463], [2146, 8461], [2146, 8468], [2153, 8468], [2155, 8463]]], [[[1818, 8492], [1823, 8494], [1825, 8492], [1822, 8490], [1818, 8492]]], [[[1830, 8501], [1833, 8500], [1829, 8496], [1825, 8495], [1830, 8501]]], [[[2284, 8532], [2292, 8519], [2283, 8523], [2280, 8528], [2284, 8532]]], [[[2184, 8533], [2191, 8527], [2187, 8519], [2174, 8520], [2184, 8533]]], [[[1883, 8544], [1879, 8541], [1869, 8538], [1871, 8541], [1883, 8544]]], [[[2281, 8579], [2279, 8566], [2261, 8578], [2274, 8583], [2281, 8579]]], [[[2252, 8589], [2255, 8585], [2247, 8587], [2252, 8591], [2252, 8589]]], [[[1449, 8594], [1442, 8589], [1438, 8593], [1443, 8593], [1449, 8594]]], [[[2273, 8593], [2280, 8586], [2271, 8587], [2267, 8591], [2273, 8593]]], [[[1847, 8614], [1850, 8596], [1837, 8578], [1824, 8603], [1847, 8614]]], [[[1463, 8614], [1464, 8616], [1470, 8615], [1467, 8613], [1463, 8614]]], [[[2284, 8621], [2293, 8621], [2287, 8613], [2277, 8616], [2284, 8621]]], [[[1894, 8622], [1887, 8624], [1901, 8624], [1897, 8621], [1894, 8622]]], [[[2278, 8622], [2272, 8621], [2274, 8624], [2278, 8624], [2278, 8622]]], [[[1995, 8630], [2007, 8628], [2009, 8625], [1997, 8626], [1995, 8630]]], [[[2103, 8635], [2121, 8624], [2105, 8622], [2090, 8637], [2103, 8635]]], [[[1767, 8641], [1772, 8629], [1737, 8605], [1714, 8619], [1732, 8640], [1767, 8641]]], [[[2222, 8640], [2222, 8639], [2213, 8647], [2218, 8646], [2222, 8640]]], [[[1877, 8666], [1899, 8663], [1902, 8651], [1891, 8647], [1877, 8666]]], [[[2300, 8671], [2296, 8665], [2297, 8658], [2290, 8672], [2300, 8671]]], [[[1914, 8674], [1932, 8665], [1919, 8662], [1906, 8671], [1914, 8674]]], [[[2297, 8678], [2295, 8679], [2295, 8682], [2300, 8681], [2297, 8678]]], [[[1903, 8691], [1897, 8687], [1890, 8688], [1891, 8690], [1903, 8691]]], [[[2277, 8700], [2275, 8699], [2274, 8705], [2278, 8702], [2277, 8700]]], [[[2022, 8713], [2021, 8705], [2018, 8705], [2017, 8715], [2022, 8713]]], [[[2266, 8724], [2269, 8720], [2255, 8714], [2261, 8722], [2266, 8724]]], [[[2351, 8774], [2357, 8774], [2360, 8769], [2350, 8770], [2351, 8774]]], [[[1732, 8779], [1726, 8777], [1725, 8780], [1730, 8780], [1732, 8779]]], [[[1679, 8789], [1689, 8780], [1691, 8765], [1678, 8775], [1679, 8789]]], [[[1701, 8792], [1719, 8784], [1729, 8768], [1707, 8775], [1701, 8792]]], [[[1737, 8802], [1744, 8800], [1741, 8796], [1732, 8800], [1737, 8802]]], [[[2352, 8845], [2353, 8844], [2340, 8837], [2345, 8845], [2352, 8845]]], [[[1017, 8840], [1013, 8840], [1010, 8844], [1011, 8846], [1017, 8840]]], [[[1002, 8856], [1000, 8852], [995, 8857], [1002, 8860], [1002, 8856]]], [[[987, 8864], [990, 8864], [988, 8859], [984, 8863], [987, 8864]]], [[[2311, 8862], [2304, 8863], [2306, 8869], [2311, 8864], [2311, 8862]]], [[[1001, 8864], [995, 8864], [996, 8870], [999, 8869], [1001, 8864]]], [[[843, 8882], [837, 8883], [852, 8884], [852, 8882], [843, 8882]]], [[[997, 8881], [992, 8881], [993, 8884], [996, 8885], [997, 8881]]], [[[964, 8886], [973, 8884], [971, 8880], [965, 8883], [964, 8886]]], [[[959, 8889], [960, 8886], [955, 8889], [955, 8892], [959, 8889]]], [[[944, 8895], [952, 8898], [942, 8891], [932, 8889], [944, 8895]]], [[[2000, 8891], [2025, 8885], [2025, 8875], [1996, 8875], [2000, 8891]]], [[[1641, 8883], [1634, 8873], [1624, 8883], [1631, 8902], [1641, 8883]]], [[[890, 8898], [887, 8898], [889, 8902], [894, 8903], [890, 8898]]], [[[1961, 8903], [1974, 8899], [1976, 8864], [1952, 8849], [1919, 8848], [1909, 8872], [1928, 8900], [1961, 8903]]], [[[1859, 8896], [1854, 8898], [1855, 8904], [1865, 8901], [1859, 8896]]], [[[1767, 8905], [1771, 8904], [1768, 8902], [1763, 8905], [1767, 8905]]], [[[2003, 8899], [1996, 8909], [2001, 8909], [2005, 8904], [2003, 8899]]], [[[917, 8916], [917, 8914], [919, 8912], [907, 8911], [917, 8916]]], [[[1102, 8907], [1086, 8915], [1097, 8916], [1104, 8913], [1102, 8907]]], [[[1872, 8919], [1870, 8911], [1860, 8911], [1869, 8917], [1872, 8919]]], [[[1993, 8916], [1985, 8915], [1981, 8919], [1984, 8921], [1993, 8916]]], [[[1981, 8915], [1984, 8904], [1966, 8913], [1971, 8924], [1981, 8915]]], [[[1184, 8927], [1182, 8916], [1167, 8922], [1176, 8929], [1184, 8927]]], [[[1232, 8934], [1224, 8924], [1218, 8926], [1218, 8938], [1232, 8934]]], [[[1236, 8935], [1230, 8938], [1232, 8946], [1235, 8943], [1236, 8935]]], [[[166, 8945], [168, 8943], [161, 8944], [162, 8948], [166, 8945]]], [[[1187, 8943], [1188, 8950], [1191, 8949], [1190, 8944], [1187, 8943]]], [[[1516, 8957], [1520, 8950], [1516, 8949], [1513, 8957], [1516, 8957]]], [[[1876, 8959], [1876, 8950], [1864, 8933], [1847, 8934], [1876, 8959]]], [[[181, 8968], [186, 8972], [180, 8962], [173, 8964], [181, 8968]]], [[[1779, 8961], [1785, 8959], [1786, 8956], [1774, 8960], [1779, 8961]]], [[[1528, 8959], [1523, 8951], [1518, 8955], [1523, 8961], [1528, 8959]]], [[[1918, 8960], [1929, 8958], [1914, 8944], [1907, 8952], [1918, 8960]]], [[[1199, 8967], [1208, 8963], [1201, 8958], [1198, 8962], [1199, 8967]]], [[[1336, 8968], [1351, 8968], [1351, 8957], [1339, 8963], [1336, 8968]]], [[[1365, 8970], [1373, 8966], [1364, 8955], [1363, 8967], [1365, 8970]]], [[[83, 8969], [76, 8966], [71, 8969], [76, 8972], [83, 8969]]], [[[1890, 8974], [1874, 8964], [1864, 8965], [1881, 8977], [1890, 8974]]], [[[1840, 8981], [1844, 8971], [1807, 8973], [1823, 8980], [1840, 8981]]], [[[1756, 8978], [1754, 8977], [1746, 8979], [1751, 8982], [1756, 8978]]], [[[1479, 8982], [1481, 8985], [1489, 8981], [1487, 8976], [1479, 8982]]], [[[1315, 8986], [1312, 8986], [1311, 8988], [1315, 8988], [1315, 8986]]], [[[1622, 8997], [1634, 8997], [1629, 8989], [1611, 8996], [1622, 8997]]], [[[890, 9007], [877, 9007], [872, 9011], [884, 9008], [890, 9007]]], [[[748, 9020], [758, 9020], [744, 9016], [738, 9020], [748, 9020]]], [[[735, 9020], [725, 9020], [723, 9021], [725, 9023], [735, 9020]]], [[[403, 9024], [398, 9023], [395, 9020], [398, 9026], [403, 9024]]], [[[1216, 9028], [1222, 9027], [1230, 9016], [1217, 9020], [1216, 9028]]], [[[2033, 9068], [2043, 9069], [2038, 9062], [2030, 9064], [2033, 9068]]], [[[2046, 9075], [2038, 9075], [2040, 9080], [2045, 9081], [2046, 9075]]], [[[1100, 9174], [1080, 9147], [1043, 9179], [1041, 9196], [1083, 9199], [1100, 9174]]], [[[1106, 9352], [1117, 9374], [1155, 9352], [1166, 9333], [1127, 9326], [1106, 9352]]], [[[1524, 9434], [1544, 9415], [1530, 9407], [1498, 9420], [1524, 9434]]], [[[1088, 9420], [1104, 9404], [1081, 9404], [1056, 9441], [1088, 9420]]], [[[1664, 8007], [1660, 8006], [1654, 8006], [1656, 8009], [1664, 8007]]], [[[1600, 8048], [1604, 8045], [1593, 8045], [1594, 8049], [1600, 8048]]], [[[1763, 7943], [1772, 7941], [1776, 7924], [1734, 7937], [1763, 7943]]], [[[1732, 7940], [1731, 7937], [1726, 7938], [1728, 7941], [1732, 7940]]], [[[1710, 7953], [1718, 7950], [1713, 7944], [1709, 7949], [1710, 7953]]], [[[1938, 7875], [1934, 7873], [1936, 7876], [1943, 7877], [1938, 7875]]], [[[1366, 9443], [1437, 9441], [1429, 9423], [1355, 9424], [1366, 9443]]], [[[2430, 7942], [2394, 7922], [2378, 7943], [2406, 7980], [2411, 7952], [2430, 7942]]], [[[2364, 7988], [2365, 7958], [2348, 7940], [2327, 7957], [2361, 7959], [2364, 7988]]], [[[277, 8210], [270, 8217], [293, 8221], [295, 8199], [277, 8210]]], [[[257, 8259], [297, 8258], [287, 8221], [261, 8230], [257, 8259]]], [[[1844, 8337], [1829, 8330], [1851, 8362], [1858, 8352], [1844, 8337]]], [[[1395, 9317], [1429, 9288], [1426, 9252], [1382, 9254], [1337, 9272], [1349, 9299], [1395, 9317]]], [[[957, 9478], [905, 9483], [849, 9475], [844, 9483], [927, 9507], [955, 9496], [957, 9478]]], [[[1358, 9489], [1390, 9481], [1388, 9465], [1330, 9444], [1302, 9460], [1284, 9490], [1291, 9511], [1350, 9498], [1358, 9489]]], [[[2210, 7911], [2202, 7914], [2203, 7927], [2195, 7929], [2192, 7933], [2192, 7982], [2149, 7996], [2126, 7968], [2118, 7937], [2082, 7905], [1987, 7905], [2022, 7920], [2033, 7943], [2111, 7979], [2155, 8025], [2239, 8062], [2276, 8063], [2298, 8050], [2295, 8032], [2262, 8016], [2230, 8020], [2256, 8004], [2290, 8010], [2271, 7986], [2302, 7943], [2350, 7927], [2367, 7937], [2394, 7917], [2333, 7893], [2308, 7894], [2257, 7848], [2239, 7871], [2245, 7889], [2279, 7910], [2289, 7938], [2249, 7913], [2210, 7911]]], [[[2018, 7927], [2024, 7931], [2021, 7924], [2020, 7921], [2009, 7921], [2015, 7925], [2012, 7925], [2016, 7930], [2021, 7930], [2018, 7927]]], [[[518, 8075], [504, 8083], [514, 8081], [518, 8075], [518, 8075], [518, 8075]]], [[[629, 9322], [617, 9345], [604, 9327], [571, 9328], [559, 9347], [597, 9359], [678, 9417], [749, 9430], [780, 9414], [754, 9406], [765, 9375], [730, 9364], [718, 9338], [684, 9302], [660, 9308], [712, 9340], [710, 9380], [687, 9377], [670, 9338], [629, 9322]]], [[[2606, 8006], [2634, 8020], [2643, 7998], [2633, 7971], [2596, 7976], [2607, 7995], [2574, 7990], [2550, 7973], [2552, 8004], [2449, 8000], [2441, 8012], [2462, 8038], [2521, 8144], [2553, 8130], [2521, 8094], [2558, 8090], [2552, 8069], [2599, 8083], [2618, 8064], [2604, 8038], [2629, 8033], [2606, 8006]]], [[[1663, 8674], [1617, 8670], [1645, 8694], [1639, 8718], [1654, 8775], [1667, 8783], [1687, 8748], [1694, 8761], [1761, 8726], [1784, 8700], [1824, 8681], [1800, 8664], [1725, 8695], [1722, 8679], [1673, 8648], [1663, 8674]]], [[[1295, 8985], [1330, 8964], [1360, 8932], [1379, 8931], [1340, 8910], [1312, 8914], [1248, 8940], [1284, 8957], [1295, 8985]]], [[[1118, 9032], [1191, 8997], [1210, 8979], [1165, 8981], [1152, 8958], [1175, 8964], [1181, 8940], [1135, 8927], [1046, 8948], [1043, 8964], [1019, 8939], [971, 8925], [843, 8910], [830, 8948], [762, 8954], [719, 8990], [733, 8998], [815, 9008], [894, 9005], [875, 9018], [821, 9029], [760, 9020], [715, 9023], [691, 9046], [758, 9065], [767, 9075], [697, 9065], [700, 9081], [671, 9079], [670, 9095], [698, 9112], [685, 9123], [721, 9151], [804, 9178], [822, 9164], [829, 9134], [850, 9157], [903, 9140], [890, 9116], [922, 9133], [946, 9128], [919, 9156], [937, 9155], [980, 9131], [1007, 9079], [1021, 9094], [1006, 9107], [996, 9142], [999, 9187], [1024, 9167], [1044, 9168], [1077, 9144], [1079, 9125], [1107, 9076], [1100, 9049], [1118, 9032]]], [[[1885, 9194], [1941, 9161], [1939, 9145], [1830, 9148], [1807, 9172], [1804, 9199], [1885, 9194]]], [[[1340, 9095], [1291, 9080], [1274, 9059], [1217, 9110], [1182, 9118], [1155, 9145], [1179, 9161], [1198, 9140], [1223, 9141], [1230, 9163], [1188, 9184], [1204, 9198], [1291, 9219], [1302, 9241], [1296, 9210], [1318, 9205], [1321, 9178], [1285, 9158], [1318, 9154], [1331, 9167], [1346, 9123], [1340, 9095]]], [[[596, 9246], [638, 9229], [700, 9230], [736, 9218], [782, 9183], [668, 9135], [638, 9108], [624, 9071], [551, 9049], [522, 9083], [467, 9098], [499, 9159], [531, 9200], [502, 9234], [596, 9246]]], [[[1227, 9273], [1215, 9298], [1242, 9311], [1158, 9302], [1138, 9317], [1171, 9332], [1183, 9360], [1242, 9329], [1202, 9368], [1208, 9378], [1306, 9362], [1313, 9300], [1295, 9274], [1227, 9273]]], [[[938, 9326], [960, 9339], [928, 9351], [976, 9386], [984, 9335], [1027, 9326], [1040, 9336], [1073, 9326], [1073, 9306], [1130, 9283], [1100, 9275], [1068, 9293], [1058, 9276], [987, 9267], [975, 9276], [890, 9242], [830, 9239], [808, 9254], [857, 9271], [887, 9271], [912, 9287], [822, 9276], [820, 9294], [792, 9270], [717, 9284], [764, 9354], [794, 9364], [795, 9380], [808, 9377], [822, 9344], [851, 9349], [896, 9323], [902, 9303], [972, 9302], [974, 9314], [938, 9326]]], [[[1848, 9265], [1825, 9250], [1777, 9240], [1726, 9247], [1603, 9240], [1567, 9252], [1535, 9244], [1473, 9259], [1459, 9285], [1470, 9325], [1440, 9355], [1412, 9348], [1360, 9357], [1331, 9393], [1362, 9399], [1423, 9389], [1442, 9371], [1490, 9375], [1552, 9344], [1528, 9336], [1587, 9303], [1652, 9304], [1719, 9322], [1797, 9319], [1840, 9300], [1841, 9283], [1817, 9274], [1848, 9265]]], [[[933, 9426], [877, 9415], [845, 9427], [833, 9446], [816, 9439], [788, 9455], [811, 9463], [843, 9452], [918, 9464], [949, 9456], [933, 9426]]], [[[1126, 9547], [1165, 9524], [1187, 9528], [1249, 9496], [1240, 9486], [1266, 9450], [1200, 9447], [1205, 9471], [1154, 9471], [1155, 9482], [1104, 9475], [1087, 9490], [1131, 9490], [1115, 9522], [1071, 9525], [1076, 9545], [1126, 9547]]], [[[1511, 9629], [1553, 9627], [1562, 9603], [1579, 9620], [1601, 9618], [1623, 9584], [1617, 9561], [1665, 9561], [1684, 9542], [1637, 9527], [1563, 9469], [1474, 9471], [1406, 9521], [1437, 9534], [1477, 9534], [1456, 9553], [1417, 9540], [1362, 9550], [1334, 9600], [1389, 9593], [1338, 9609], [1354, 9630], [1379, 9632], [1370, 9645], [1389, 9663], [1439, 9666], [1403, 9677], [1436, 9685], [1480, 9670], [1511, 9629]]], [[[518, 8075], [519, 8073], [519, 8072], [518, 8075], [518, 8075], [518, 8075]]]] } }, { \"type\": \"Feature\", \"id\": \"ST\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.55, \"hc-middle-y\": 0.50, \"hc-key\": \"st\", \"hc-a2\": \"ST\", \"name\": \"Sao Tome and Principe\", \"labelrank\": \"6\", \"country-abbrev\": \"S.T.P.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"STP\", \"iso-a2\": \"ST\", \"woe-id\": \"23424966\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4400, 6481], [4396, 6485], [4401, 6491], [4405, 6487], [4400, 6481]]] } }, { \"type\": \"Feature\", \"id\": \"CV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.56, \"hc-middle-y\": 0.50, \"hc-key\": \"cv\", \"hc-a2\": \"CV\", \"name\": \"Cape Verde\", \"labelrank\": \"4\", \"country-abbrev\": \"C.Vd.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"CPV\", \"iso-a2\": \"CV\", \"woe-id\": \"23424794\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3499, 6934], [3506, 6928], [3507, 6922], [3499, 6925], [3499, 6934]]] } }, { \"type\": \"Feature\", \"id\": \"DM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.47, \"hc-key\": \"dm\", \"hc-a2\": \"DM\", \"name\": \"Dominica\", \"labelrank\": \"6\", \"country-abbrev\": \"D'inca\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"DMA\", \"iso-a2\": \"DM\", \"woe-id\": \"23424798\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2382, 6942], [2386, 6936], [2383, 6930], [2380, 6939], [2382, 6942]]] } }, { \"type\": \"Feature\", \"id\": \"NL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.99, \"hc-middle-y\": 0.01, \"hc-key\": \"nl\", \"hc-a2\": \"NL\", \"name\": \"Netherlands\", \"labelrank\": \"5\", \"country-abbrev\": \"Neth.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"NLD\", \"iso-a2\": \"NL\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4369, 8229], [4359, 8225], [4360, 8227], [4372, 8230], [4369, 8229]]], [[[2334, 7016], [2331, 7016], [2331, 7017], [2334, 7016]]], [[[4303, 8146], [4315, 8146], [4329, 8146], [4317, 8140], [4303, 8146]]], [[[4417, 8221], [4412, 8180], [4393, 8164], [4382, 8122], [4353, 8150], [4330, 8146], [4318, 8156], [4355, 8209], [4396, 8234], [4417, 8221]]]] } }, { \"type\": \"Feature\", \"id\": \"JM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.52, \"hc-key\": \"jm\", \"hc-a2\": \"JM\", \"name\": \"Jamaica\", \"labelrank\": \"4\", \"country-abbrev\": \"Jam.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"JAM\", \"iso-a2\": \"JM\", \"woe-id\": \"23424858\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1906, 7029], [1943, 7013], [1913, 7006], [1878, 7023], [1906, 7029]]] } }, { \"type\": \"Feature\", \"id\": \"WS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.54, \"hc-key\": \"ws\", \"hc-a2\": \"WS\", \"name\": \"Samoa\", \"labelrank\": \"4\", \"country-abbrev\": \"Samoa\", \"subregion\": \"Polynesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"WSM\", \"iso-a2\": \"WS\", \"woe-id\": \"23424992\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[-909, 6078], [-907, 6069], [-916, 6069], [-924, 6078], [-909, 6078]]] } }, { \"type\": \"Feature\", \"id\": \"OM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.88, \"hc-middle-y\": 0.44, \"hc-key\": \"om\", \"hc-a2\": \"OM\", \"name\": \"Oman\", \"labelrank\": \"4\", \"country-abbrev\": \"Oman\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"OMN\", \"iso-a2\": \"OM\", \"woe-id\": \"23424898\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5874, 7239], [5873, 7238], [5873, 7241], [5876, 7241], [5874, 7239]]], [[[5868, 7265], [5877, 7275], [5874, 7251], [5870, 7253], [5868, 7265]]], [[[5747, 7045], [5836, 7076], [5855, 7137], [5842, 7160], [5860, 7228], [5877, 7231], [5900, 7199], [5948, 7186], [5979, 7145], [5916, 7068], [5920, 7047], [5885, 7033], [5876, 7013], [5849, 7010], [5837, 6985], [5780, 6974], [5769, 6994], [5747, 7045]]]] } }, { \"type\": \"Feature\", \"id\": \"VC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"vc\", \"hc-a2\": \"VC\", \"name\": \"Saint Vincent and the Grenadines\", \"labelrank\": \"6\", \"country-abbrev\": \"St.V.G.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"VCT\", \"iso-a2\": \"VC\", \"woe-id\": \"23424981\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2388, 6865], [2385, 6871], [2389, 6875], [2390, 6870], [2388, 6865]]] } }, { \"type\": \"Feature\", \"id\": \"TR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.34, \"hc-middle-y\": 0.49, \"hc-key\": \"tr\", \"hc-a2\": \"TR\", \"name\": \"Turkey\", \"labelrank\": \"2\", \"country-abbrev\": \"Tur.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"TUR\", \"iso-a2\": \"TR\", \"woe-id\": \"23424969\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4974, 7732], [4969, 7730], [4966, 7731], [4973, 7735], [4974, 7732]]], [[[5035, 7796], [5068, 7769], [5021, 7761], [5011, 7748], [4977, 7752], [4994, 7775], [4985, 7786], [5007, 7799], [5035, 7796]]], [[[5534, 7714], [5510, 7704], [5516, 7656], [5532, 7628], [5472, 7635], [5461, 7627], [5457, 7634], [5384, 7614], [5338, 7620], [5291, 7617], [5270, 7586], [5272, 7620], [5252, 7608], [5229, 7615], [5177, 7590], [5154, 7607], [5115, 7619], [5106, 7597], [5085, 7593], [5044, 7625], [5011, 7635], [5012, 7657], [4983, 7666], [5007, 7687], [4989, 7700], [4986, 7702], [4979, 7707], [4997, 7740], [5069, 7741], [5071, 7770], [5131, 7764], [5193, 7797], [5271, 7787], [5318, 7762], [5374, 7765], [5395, 7758], [5436, 7779], [5474, 7782], [5493, 7765], [5500, 7730], [5533, 7716], [5534, 7714]]]] } }, { \"type\": \"Feature\", \"id\": \"BD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.85, \"hc-middle-y\": 0.61, \"hc-key\": \"bd\", \"hc-a2\": \"BD\", \"name\": \"Bangladesh\", \"labelrank\": \"3\", \"country-abbrev\": \"Bang.\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"BGD\", \"iso-a2\": \"BD\", \"woe-id\": \"23424759\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6942, 7109], [6918, 7163], [6880, 7132], [6847, 7142], [6832, 7189], [6837, 7209], [6816, 7220], [6843, 7237], [6818, 7260], [6829, 7277], [6870, 7262], [6886, 7236], [6935, 7237], [6949, 7229], [6909, 7188], [6922, 7167], [6939, 7192], [6951, 7137], [6953, 7116], [6942, 7109]]] } }, { \"type\": \"Feature\", \"id\": \"LC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.47, \"hc-key\": \"lc\", \"hc-a2\": \"LC\", \"name\": \"Saint Lucia\", \"labelrank\": \"6\", \"country-abbrev\": \"S.L.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"LCA\", \"iso-a2\": \"LC\", \"woe-id\": \"23424951\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2395, 6886], [2391, 6890], [2396, 6897], [2397, 6893], [2395, 6886]]] } }, { \"type\": \"Feature\", \"id\": \"NR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.53, \"hc-middle-y\": 0.50, \"hc-key\": \"nr\", \"hc-a2\": \"NR\", \"name\": \"Nauru\", \"labelrank\": \"6\", \"country-abbrev\": \"Nauru\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"NRU\", \"iso-a2\": \"NR\", \"woe-id\": \"23424912\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[9158, 6463], [9157, 6463], [9157, 6464], [9159, 6464], [9158, 6463]]] } }, { \"type\": \"Feature\", \"id\": \"NO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.10, \"hc-middle-y\": 0.93, \"hc-key\": \"no\", \"hc-a2\": \"NO\", \"name\": \"Norway\", \"labelrank\": \"3\", \"country-abbrev\": \"Nor.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"NOR\", \"iso-a2\": \"NO\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4821, 8997], [4815, 8993], [4809, 8996], [4815, 9003], [4821, 8997]]], [[[4797, 8992], [4790, 8995], [4784, 9004], [4802, 8997], [4797, 8992]]], [[[4877, 9011], [4887, 9004], [4870, 9006], [4871, 9011], [4877, 9011]]], [[[4901, 9024], [4906, 9016], [4890, 9006], [4882, 9013], [4901, 9024]]], [[[4911, 9029], [4920, 9024], [4909, 9019], [4905, 9028], [4911, 9029]]], [[[4898, 9036], [4889, 9022], [4861, 9017], [4873, 9029], [4898, 9036]]], [[[4918, 9045], [4919, 9040], [4914, 9042], [4915, 9046], [4918, 9045]]], [[[4966, 9053], [4974, 9045], [4962, 9041], [4955, 9047], [4966, 9053]]], [[[4841, 9496], [4865, 9475], [4829, 9471], [4803, 9490], [4841, 9496]]], [[[4998, 9499], [4989, 9504], [4994, 9510], [5000, 9504], [4998, 9499]]], [[[5066, 9517], [5038, 9511], [5030, 9512], [5047, 9521], [5066, 9517]]], [[[4804, 9531], [4822, 9526], [4810, 9523], [4799, 9526], [4804, 9531]]], [[[4802, 9547], [4789, 9545], [4786, 9549], [4789, 9550], [4802, 9547]]], [[[5202, 9605], [5178, 9599], [5142, 9595], [5139, 9598], [5202, 9605]]], [[[4928, 9617], [4921, 9616], [4921, 9620], [4923, 9621], [4928, 9617]]], [[[4921, 9625], [4925, 9623], [4923, 9622], [4917, 9623], [4921, 9625]]], [[[4797, 9623], [4793, 9624], [4796, 9627], [4801, 9625], [4797, 9623]]], [[[4837, 9638], [4831, 9635], [4828, 9638], [4834, 9639], [4837, 9638]]], [[[4821, 9634], [4821, 9638], [4813, 9643], [4826, 9639], [4821, 9634]]], [[[4748, 8967], [4767, 8968], [4802, 8988], [4813, 8979], [4815, 8980], [4817, 8980], [4818, 8983], [4823, 8988], [4820, 8990], [4826, 8992], [4827, 8992], [4845, 9007], [4847, 9007], [4847, 9006], [4849, 9005], [4850, 9007], [4886, 9002], [4934, 9033], [4973, 9037], [4948, 9018], [4950, 8995], [4996, 9042], [4991, 9010], [5022, 9050], [5094, 9029], [5126, 9006], [5099, 8995], [5057, 9000], [5119, 8981], [5093, 8957], [5063, 8940], [5075, 8962], [5032, 8995], [4976, 8974], [4965, 8932], [4942, 8915], [4914, 8929], [4869, 8923], [4847, 8952], [4816, 8940], [4797, 8905], [4743, 8914], [4735, 8885], [4718, 8892], [4683, 8857], [4691, 8839], [4635, 8792], [4635, 8753], [4609, 8718], [4618, 8690], [4580, 8688], [4560, 8656], [4569, 8610], [4565, 8584], [4586, 8568], [4568, 8551], [4575, 8512], [4556, 8501], [4543, 8462], [4515, 8473], [4456, 8430], [4429, 8420], [4398, 8424], [4359, 8468], [4372, 8509], [4342, 8554], [4363, 8576], [4347, 8589], [4369, 8612], [4411, 8630], [4409, 8639], [4464, 8659], [4435, 8662], [4465, 8681], [4504, 8658], [4544, 8680], [4498, 8667], [4487, 8679], [4537, 8729], [4562, 8742], [4566, 8761], [4607, 8833], [4667, 8874], [4643, 8878], [4692, 8898], [4682, 8907], [4716, 8924], [4703, 8941], [4719, 8966], [4748, 8967], [4769, 8982], [4768, 8999], [4781, 8983], [4748, 8967]], [[5095, 8982], [5091, 8986], [5086, 8978], [5097, 8981], [5095, 8982]]], [[[4948, 9363], [4949, 9366], [4963, 9376], [4948, 9363], [4948, 9363], [4948, 9363]]], [[[4630, 8922], [4662, 8932], [4682, 8955], [4696, 8923], [4668, 8902], [4602, 8890], [4605, 8899], [4657, 8910], [4630, 8922]]], [[[4893, 9411], [4874, 9424], [4825, 9422], [4847, 9452], [4824, 9463], [4886, 9474], [4905, 9449], [4929, 9446], [4893, 9411]]], [[[4669, 9570], [4695, 9593], [4764, 9552], [4766, 9533], [4843, 9513], [4768, 9488], [4744, 9425], [4730, 9424], [4703, 9367], [4631, 9407], [4617, 9428], [4702, 9450], [4611, 9443], [4607, 9461], [4650, 9465], [4673, 9480], [4644, 9505], [4641, 9483], [4590, 9471], [4561, 9497], [4565, 9471], [4533, 9487], [4515, 9516], [4540, 9521], [4522, 9560], [4531, 9569], [4564, 9568], [4613, 9582], [4616, 9559], [4636, 9577], [4658, 9563], [4689, 9517], [4669, 9570]]], [[[4909, 9611], [5000, 9602], [5010, 9580], [4975, 9557], [4918, 9535], [4884, 9538], [4883, 9551], [4822, 9548], [4787, 9564], [4852, 9570], [4854, 9578], [4761, 9571], [4763, 9592], [4732, 9599], [4742, 9610], [4778, 9596], [4809, 9619], [4824, 9604], [4852, 9608], [4868, 9590], [4879, 9624], [4887, 9601], [4909, 9611]]], [[[4948, 9363], [4946, 9359], [4947, 9363], [4948, 9363], [4948, 9363], [4948, 9363]]]] } }, { \"type\": \"Feature\", \"id\": \"KN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.49, \"hc-key\": \"kn\", \"hc-a2\": \"KN\", \"name\": \"Saint Kitts and Nevis\", \"labelrank\": \"6\", \"country-abbrev\": \"St.K.N.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"KNA\", \"iso-a2\": \"KN\", \"woe-id\": \"23424940\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2346, 6991], [2339, 6996], [2340, 6997], [2343, 6995], [2346, 6991]]] } }, { \"type\": \"Feature\", \"id\": \"BH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.50, \"hc-key\": \"bh\", \"hc-a2\": \"BH\", \"name\": \"Bahrain\", \"labelrank\": \"4\", \"country-abbrev\": \"Bahr.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"BHR\", \"iso-a2\": \"BH\", \"woe-id\": \"23424753\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5702, 7271], [5706, 7269], [5705, 7256], [5701, 7263], [5702, 7271]]] } }, { \"type\": \"Feature\", \"id\": \"TO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.34, \"hc-key\": \"to\", \"hc-a2\": \"TO\", \"name\": \"Tonga\", \"labelrank\": \"4\", \"country-abbrev\": \"Tongo\", \"subregion\": \"Polynesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"TON\", \"iso-a2\": \"TO\", \"woe-id\": \"23424964\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[-987, 5842], [-988, 5840], [-999, 5845], [-992, 5847], [-987, 5842]]] } }, { \"type\": \"Feature\", \"id\": \"FI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.63, \"hc-middle-y\": 0.54, \"hc-key\": \"fi\", \"hc-a2\": \"FI\", \"name\": \"Finland\", \"labelrank\": \"3\", \"country-abbrev\": \"Fin.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"FIN\", \"iso-a2\": \"FI\", \"woe-id\": \"23424812\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4816, 8512], [4815, 8507], [4806, 8505], [4810, 8509], [4816, 8512]]], [[[4803, 8510], [4806, 8512], [4803, 8505], [4798, 8508], [4803, 8510]]], [[[4808, 8518], [4799, 8510], [4785, 8518], [4800, 8522], [4808, 8518]]], [[[4844, 8516], [4844, 8514], [4855, 8514], [4842, 8511], [4844, 8516]]], [[[4870, 8506], [4870, 8515], [4882, 8511], [4872, 8501], [4870, 8506]]], [[[4836, 8532], [4837, 8528], [4836, 8523], [4835, 8528], [4836, 8532]]], [[[4835, 8657], [4838, 8652], [4834, 8650], [4830, 8654], [4835, 8657]]], [[[4942, 8741], [4935, 8736], [4933, 8739], [4936, 8741], [4942, 8741]]], [[[4851, 8526], [4845, 8528], [4834, 8596], [4842, 8652], [4868, 8658], [4939, 8731], [4954, 8729], [4955, 8762], [4921, 8778], [4906, 8808], [4916, 8826], [4899, 8860], [4906, 8885], [4816, 8940], [4847, 8952], [4869, 8923], [4914, 8929], [4942, 8915], [4965, 8932], [4976, 8974], [5032, 8995], [5075, 8962], [5063, 8940], [5048, 8914], [5055, 8897], [5095, 8871], [5067, 8828], [5091, 8792], [5082, 8737], [5111, 8691], [5094, 8678], [5141, 8638], [5131, 8620], [5071, 8562], [5029, 8531], [4909, 8505], [4869, 8520], [4871, 8521], [4866, 8521], [4866, 8521], [4854, 8525], [4857, 8523], [4856, 8520], [4851, 8524], [4851, 8526]]]] } }, { \"type\": \"Feature\", \"id\": \"ID\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.38, \"hc-middle-y\": 0.41, \"hc-key\": \"id\", \"hc-a2\": \"ID\", \"name\": \"Indonesia\", \"labelrank\": \"2\", \"country-abbrev\": \"Indo.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"IDN\", \"iso-a2\": \"ID\", \"woe-id\": \"23424846\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[8188, 6311], [8203, 6311], [8186, 6274], [8184, 6299], [8156, 6320], [8188, 6311]]], [[[7394, 6396], [7365, 6387], [7343, 6415], [7351, 6432], [7368, 6393], [7394, 6396]]], [[[7693, 6231], [7736, 6235], [7737, 6224], [7676, 6209], [7642, 6218], [7658, 6236], [7693, 6231]]], [[[8007, 6546], [8003, 6517], [8028, 6486], [8001, 6493], [7995, 6439], [7976, 6470], [7993, 6473], [7985, 6514], [8007, 6546]]], [[[7885, 6203], [7891, 6198], [7897, 6207], [7902, 6208], [7911, 6214], [7912, 6206], [7915, 6198], [7897, 6179], [7868, 6172], [7885, 6203]]], [[[7703, 6601], [7696, 6596], [7697, 6601], [7703, 6601]]], [[[8388, 6402], [8388, 6275], [8388, 6210], [8360, 6240], [8289, 6230], [8299, 6253], [8325, 6262], [8294, 6324], [8238, 6346], [8216, 6347], [8170, 6376], [8148, 6358], [8127, 6400], [8181, 6408], [8142, 6411], [8087, 6439], [8070, 6476], [8099, 6455], [8142, 6468], [8180, 6457], [8185, 6415], [8210, 6380], [8248, 6403], [8246, 6430], [8295, 6435], [8355, 6409], [8388, 6402]]], [[[7779, 6174], [7734, 6196], [7755, 6202], [7771, 6234], [7833, 6224], [7852, 6236], [7936, 6242], [7886, 6226], [7878, 6234], [7818, 6216], [7763, 6218], [7789, 6183], [7779, 6174]]], [[[7419, 6248], [7365, 6260], [7335, 6278], [7351, 6305], [7419, 6294], [7427, 6279], [7483, 6274], [7496, 6290], [7530, 6275], [7624, 6277], [7624, 6218], [7565, 6234], [7548, 6229], [7490, 6237], [7450, 6251], [7419, 6248]]], [[[8007, 6388], [7965, 6365], [7943, 6380], [7942, 6408], [7946, 6387], [7976, 6380], [8002, 6393], [8048, 6397], [8079, 6386], [8086, 6365], [8007, 6388]]], [[[7849, 6311], [7824, 6317], [7851, 6347], [7809, 6341], [7813, 6358], [7778, 6383], [7775, 6316], [7746, 6321], [7754, 6351], [7730, 6401], [7746, 6421], [7766, 6500], [7792, 6519], [7814, 6510], [7882, 6503], [7917, 6531], [7898, 6492], [7774, 6491], [7765, 6473], [7785, 6438], [7815, 6465], [7866, 6460], [7862, 6427], [7846, 6446], [7811, 6422], [7839, 6386], [7855, 6349], [7849, 6311]]], [[[7693, 6601], [7687, 6576], [7709, 6546], [7702, 6535], [7736, 6509], [7698, 6501], [7689, 6463], [7663, 6436], [7664, 6414], [7646, 6373], [7606, 6356], [7594, 6380], [7558, 6385], [7522, 6375], [7519, 6397], [7476, 6390], [7466, 6446], [7452, 6441], [7434, 6503], [7458, 6540], [7485, 6504], [7557, 6525], [7602, 6521], [7631, 6568], [7642, 6608], [7693, 6601]]], [[[7120, 6602], [7164, 6572], [7200, 6534], [7221, 6541], [7283, 6486], [7272, 6457], [7301, 6448], [7311, 6409], [7338, 6408], [7352, 6382], [7345, 6312], [7312, 6304], [7219, 6384], [7196, 6415], [7181, 6455], [7152, 6486], [7124, 6478], [7149, 6426], [7139, 6429], [7121, 6478], [7145, 6496], [7128, 6536], [7092, 6539], [7110, 6508], [7103, 6496], [7087, 6540], [7065, 6548], [7092, 6543], [7100, 6563], [7036, 6621], [7032, 6650], [7065, 6633], [7097, 6634], [7120, 6602]]]] } }, { \"type\": \"Feature\", \"id\": \"MU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.63, \"hc-middle-y\": 0.58, \"hc-key\": \"mu\", \"hc-a2\": \"MU\", \"name\": \"Mauritius\", \"labelrank\": \"5\", \"country-abbrev\": \"Mus.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MUS\", \"iso-a2\": \"MU\", \"woe-id\": \"23424894\", \"continent\": \"Seven seas (open ocean)\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5917, 5878], [5916, 5867], [5907, 5866], [5911, 5880], [5917, 5878]]] } }, { \"type\": \"Feature\", \"id\": \"SE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.40, \"hc-middle-y\": 0.48, \"hc-key\": \"se\", \"hc-a2\": \"SE\", \"name\": \"Sweden\", \"labelrank\": \"3\", \"country-abbrev\": \"Swe.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"SWE\", \"iso-a2\": \"SE\", \"woe-id\": \"23424954\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4749, 8461], [4749, 8461], [4749, 8466], [4753, 8466], [4749, 8461]]], [[[4864, 8758], [4864, 8764], [4868, 8762], [4868, 8758], [4864, 8758]]], [[[4921, 8778], [4853, 8764], [4831, 8722], [4845, 8711], [4821, 8684], [4769, 8651], [4733, 8619], [4712, 8569], [4718, 8540], [4736, 8533], [4770, 8495], [4751, 8469], [4701, 8445], [4691, 8414], [4700, 8372], [4711, 8391], [4741, 8387], [4760, 8415], [4759, 8386], [4710, 8386], [4693, 8344], [4640, 8340], [4625, 8309], [4589, 8309], [4571, 8373], [4546, 8417], [4550, 8417], [4552, 8421], [4545, 8421], [4546, 8418], [4537, 8434], [4543, 8462], [4556, 8501], [4575, 8512], [4568, 8551], [4586, 8568], [4565, 8584], [4569, 8610], [4560, 8656], [4580, 8688], [4618, 8690], [4609, 8718], [4635, 8753], [4635, 8792], [4691, 8839], [4683, 8857], [4718, 8892], [4735, 8885], [4743, 8914], [4797, 8905], [4816, 8940], [4906, 8885], [4899, 8860], [4916, 8826], [4906, 8808], [4921, 8778]], [[4554, 8430], [4543, 8426], [4546, 8423], [4554, 8424], [4554, 8430]]]] } }, { \"type\": \"Feature\", \"id\": \"TT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.44, \"hc-key\": \"tt\", \"hc-a2\": \"TT\", \"name\": \"Trinidad and Tobago\", \"labelrank\": \"5\", \"country-abbrev\": \"Tr.T.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"TTO\", \"iso-a2\": \"TT\", \"woe-id\": \"23424958\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2396, 6799], [2394, 6779], [2380, 6783], [2374, 6796], [2396, 6799]]] } }, { \"type\": \"Feature\", \"id\": \"MY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.90, \"hc-middle-y\": 0.26, \"hc-key\": \"my\", \"hc-a2\": \"MY\", \"name\": \"Malaysia\", \"labelrank\": \"3\", \"country-abbrev\": \"Malay.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"MYS\", \"iso-a2\": \"MY\", \"woe-id\": \"23424901\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7181, 6640], [7180, 6634], [7177, 6634], [7177, 6640], [7181, 6640]]], [[[7703, 6601], [7697, 6601], [7698, 6602], [7693, 6601], [7642, 6608], [7631, 6568], [7602, 6521], [7557, 6525], [7485, 6504], [7458, 6540], [7498, 6525], [7508, 6550], [7510, 6549], [7510, 6554], [7511, 6558], [7558, 6572], [7587, 6614], [7606, 6597], [7616, 6623], [7617, 6624], [7618, 6621], [7627, 6606], [7621, 6623], [7650, 6660], [7685, 6675], [7743, 6632], [7710, 6623], [7722, 6607], [7701, 6603], [7703, 6601]]], [[[7175, 6669], [7204, 6663], [7205, 6645], [7233, 6663], [7274, 6620], [7274, 6565], [7299, 6519], [7272, 6524], [7210, 6563], [7193, 6593], [7175, 6669]]]] } }, { \"type\": \"Feature\", \"id\": \"PA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.22, \"hc-middle-y\": 0.50, \"hc-key\": \"pa\", \"hc-a2\": \"PA\", \"name\": \"Panama\", \"labelrank\": \"4\", \"country-abbrev\": \"Pan.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"PAN\", \"iso-a2\": \"PA\", \"woe-id\": \"23424924\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1892, 6692], [1873, 6732], [1843, 6744], [1816, 6717], [1829, 6699], [1776, 6692], [1778, 6721], [1744, 6716], [1739, 6725], [1740, 6725], [1740, 6725], [1740, 6726], [1740, 6726], [1754, 6762], [1768, 6743], [1798, 6739], [1841, 6763], [1876, 6757], [1908, 6735], [1914, 6713], [1892, 6692]]] } }, { \"type\": \"Feature\", \"id\": \"PW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.38, \"hc-middle-y\": 0.44, \"hc-key\": \"pw\", \"hc-a2\": \"PW\", \"name\": \"Palau\", \"labelrank\": \"6\", \"country-abbrev\": \"Palau\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"PLW\", \"iso-a2\": \"PW\", \"woe-id\": \"23424927\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8196, 6695], [8195, 6699], [8197, 6703], [8200, 6703], [8196, 6695]]] } }, { \"type\": \"Feature\", \"id\": \"TV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.25, \"hc-middle-y\": 0.50, \"hc-key\": \"tv\", \"hc-a2\": \"TV\", \"name\": \"Tuvalu\", \"labelrank\": \"6\", \"country-abbrev\": \"Tuv.\", \"subregion\": \"Polynesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"TUV\", \"iso-a2\": \"TV\", \"woe-id\": \"23424970\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[9522, 6227], [9522, 6227], [9522, 6229], [9522, 6227], [9522, 6227]]] } }, { \"type\": \"Feature\", \"id\": \"MH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.60, \"hc-key\": \"mh\", \"hc-a2\": \"MH\", \"name\": \"Marshall Islands\", \"labelrank\": \"6\", \"country-abbrev\": \"M. Is.\", \"subregion\": \"Micronesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"MHL\", \"iso-a2\": \"MH\", \"woe-id\": \"23424932\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[9280, 6690], [9285, 6688], [9286, 6687], [9285, 6688], [9280, 6690]]] } }, { \"type\": \"Feature\", \"id\": \"CL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.51, \"hc-middle-y\": 0.90, \"hc-key\": \"cl\", \"hc-a2\": \"CL\", \"name\": \"Chile\", \"labelrank\": \"2\", \"country-abbrev\": \"Chile\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"CHL\", \"iso-a2\": \"CL\", \"woe-id\": \"23424782\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2028, 4732], [2063, 4714], [2042, 4700], [2014, 4729], [2028, 4732]]], [[[1977, 4948], [1993, 4916], [1994, 4867], [1960, 4879], [1981, 4893], [1959, 4908], [1961, 4938], [1977, 4948]]], [[[2022, 5147], [2016, 5111], [1985, 5101], [2001, 5124], [2006, 5163], [2022, 5147]]], [[[2167, 4761], [2167, 4674], [2165, 4674], [2167, 4673], [2167, 4670], [2128, 4674], [2110, 4657], [2088, 4695], [2113, 4723], [2117, 4693], [2157, 4688], [2125, 4702], [2114, 4746], [2144, 4768], [2167, 4761]]], [[[2115, 5932], [2128, 5935], [2141, 5957], [2157, 5913], [2173, 5898], [2163, 5868], [2180, 5842], [2189, 5794], [2210, 5794], [2206, 5757], [2169, 5733], [2177, 5666], [2162, 5659], [2137, 5618], [2109, 5516], [2133, 5456], [2115, 5397], [2115, 5366], [2096, 5352], [2091, 5311], [2101, 5277], [2085, 5269], [2069, 5206], [2075, 5158], [2063, 5125], [2077, 5092], [2066, 5062], [2088, 5042], [2070, 4970], [2051, 4944], [2059, 4928], [2020, 4882], [2032, 4835], [2058, 4839], [2054, 4804], [2070, 4787], [2128, 4786], [2173, 4772], [2152, 4778], [2105, 4757], [2096, 4714], [2032, 4737], [2038, 4753], [2004, 4758], [1996, 4781], [2017, 4777], [2012, 4815], [1976, 4834], [2000, 4847], [1996, 4918], [1986, 4952], [2000, 4987], [1966, 4992], [1995, 5037], [2008, 5015], [2031, 5042], [2026, 5058], [1996, 5060], [2012, 5097], [2020, 5062], [2053, 5159], [2039, 5179], [2015, 5170], [2010, 5197], [2030, 5249], [2018, 5310], [2031, 5329], [2048, 5383], [2060, 5398], [2085, 5489], [2078, 5559], [2088, 5569], [2081, 5601], [2100, 5643], [2113, 5714], [2109, 5785], [2125, 5837], [2115, 5932]]], [[[2209, 4666], [2230, 4654], [2168, 4659], [2214, 4627], [2192, 4628], [2162, 4657], [2133, 4648], [2129, 4663], [2202, 4668], [2207, 4668], [2209, 4666]]]] } }, { \"type\": \"Feature\", \"id\": \"TH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.25, \"hc-middle-y\": 0.49, \"hc-key\": \"th\", \"hc-a2\": \"TH\", \"name\": \"Thailand\", \"labelrank\": \"3\", \"country-abbrev\": \"Thai.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"THA\", \"iso-a2\": \"TH\", \"woe-id\": \"23424960\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7239, 6839], [7241, 6837], [7244, 6834], [7240, 6833], [7239, 6839]]], [[[7233, 6663], [7205, 6645], [7204, 6663], [7175, 6669], [7151, 6704], [7118, 6732], [7134, 6785], [7161, 6829], [7146, 6886], [7119, 6918], [7137, 6959], [7095, 7030], [7113, 7070], [7128, 7066], [7175, 7086], [7186, 7062], [7209, 7061], [7205, 6999], [7233, 7022], [7249, 7010], [7272, 7029], [7290, 7025], [7315, 6996], [7313, 6970], [7338, 6946], [7325, 6904], [7280, 6907], [7241, 6881], [7258, 6824], [7226, 6854], [7201, 6852], [7200, 6878], [7173, 6876], [7172, 6840], [7151, 6793], [7149, 6752], [7167, 6753], [7185, 6690], [7218, 6681], [7233, 6663]]]] } }, { \"type\": \"Feature\", \"id\": \"GD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"gd\", \"hc-a2\": \"GD\", \"name\": \"Grenada\", \"labelrank\": \"6\", \"country-abbrev\": \"Gren.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"GRD\", \"iso-a2\": \"GD\", \"woe-id\": \"23424826\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2375, 6835], [2372, 6835], [2372, 6839], [2376, 6841], [2375, 6835]]] } }, { \"type\": \"Feature\", \"id\": \"EE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.35, \"hc-middle-y\": 0.41, \"hc-key\": \"ee\", \"hc-a2\": \"EE\", \"name\": \"Estonia\", \"labelrank\": \"6\", \"country-abbrev\": \"Est.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"EST\", \"iso-a2\": \"EE\", \"woe-id\": \"23424805\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4876, 8444], [4887, 8435], [4863, 8425], [4852, 8441], [4876, 8444]]], [[[4897, 8446], [4893, 8442], [4888, 8445], [4892, 8448], [4897, 8446]]], [[[4893, 8464], [4897, 8464], [4898, 8461], [4891, 8461], [4893, 8464]]], [[[4878, 8463], [4888, 8455], [4872, 8449], [4858, 8459], [4878, 8463]]], [[[5026, 8462], [5004, 8453], [5024, 8419], [5021, 8411], [5016, 8399], [4990, 8398], [4954, 8422], [4925, 8413], [4902, 8443], [4901, 8472], [4975, 8490], [5035, 8483], [5038, 8482], [5040, 8478], [5038, 8477], [5035, 8477], [5035, 8477], [5037, 8476], [5037, 8476], [5038, 8476], [5037, 8476], [5034, 8476], [5030, 8469], [5026, 8462]]]] } }, { \"type\": \"Feature\", \"id\": \"AG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.48, \"hc-key\": \"ag\", \"hc-a2\": \"AG\", \"name\": \"Antigua and Barbuda\", \"labelrank\": \"6\", \"country-abbrev\": \"Ant.B.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"ATG\", \"iso-a2\": \"AG\", \"woe-id\": \"23424737\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2371, 6989], [2373, 6986], [2369, 6985], [2367, 6988], [2371, 6989]]] } }, { \"type\": \"Feature\", \"id\": \"TW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.41, \"hc-key\": \"tw\", \"hc-a2\": \"TW\", \"name\": \"Taiwan\", \"labelrank\": \"3\", \"country-abbrev\": \"Taiwan\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"TWN\", \"iso-a2\": \"TW\", \"woe-id\": \"23424971\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7752, 7185], [7768, 7185], [7797, 7233], [7821, 7235], [7807, 7173], [7790, 7136], [7752, 7185]]] } }, { \"type\": \"Feature\", \"id\": \"BB\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.31, \"hc-middle-y\": 0.56, \"hc-key\": \"bb\", \"hc-a2\": \"BB\", \"name\": \"Barbados\", \"labelrank\": \"5\", \"country-abbrev\": \"Barb.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"BRB\", \"iso-a2\": \"BB\", \"woe-id\": \"23424754\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2438, 6866], [2434, 6868], [2435, 6874], [2440, 6869], [2438, 6866]]] } }, { \"type\": \"Feature\", \"id\": \"IT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.79, \"hc-middle-y\": 0.71, \"hc-key\": \"it\", \"hc-a2\": \"IT\", \"name\": \"Italy\", \"labelrank\": \"2\", \"country-abbrev\": \"Italy\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ITA\", \"iso-a2\": \"IT\", \"woe-id\": \"23424853\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4571, 7654], [4668, 7666], [4655, 7649], [4652, 7611], [4634, 7616], [4571, 7654]]], [[[4484, 7768], [4496, 7744], [4488, 7697], [4454, 7690], [4456, 7736], [4448, 7757], [4484, 7768]]], [[[4427, 7861], [4400, 7909], [4412, 7939], [4444, 7951], [4466, 7944], [4500, 7955], [4514, 7974], [4566, 7982], [4572, 7967], [4611, 7961], [4601, 7952], [4611, 7927], [4596, 7933], [4565, 7916], [4572, 7876], [4608, 7851], [4622, 7818], [4654, 7794], [4680, 7795], [4677, 7778], [4738, 7749], [4753, 7731], [4710, 7744], [4694, 7715], [4713, 7705], [4681, 7655], [4685, 7684], [4668, 7729], [4611, 7770], [4591, 7769], [4536, 7815], [4504, 7869], [4464, 7884], [4427, 7861]], [[4574, 7793], [4574, 7793], [4574, 7793], [4574, 7793], [4574, 7793]], [[4574, 7865], [4574, 7868], [4573, 7867], [4572, 7866], [4574, 7865]]]] } }, { \"type\": \"Feature\", \"id\": \"MT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.53, \"hc-key\": \"mt\", \"hc-a2\": \"MT\", \"name\": \"Malta\", \"labelrank\": \"5\", \"country-abbrev\": \"Malta\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"MLT\", \"iso-a2\": \"MT\", \"woe-id\": \"23424897\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4628, 7589], [4635, 7586], [4635, 7582], [4631, 7584], [4628, 7589]]] } }, { \"type\": \"Feature\", \"id\": \"VU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.60, \"hc-middle-y\": 0.53, \"hc-key\": \"vu\", \"hc-a2\": \"VU\", \"name\": \"Vanuatu\", \"labelrank\": \"4\", \"country-abbrev\": \"Van.\", \"subregion\": \"Melanesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"VUT\", \"iso-a2\": \"VU\", \"woe-id\": \"23424907\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[9172, 6054], [9194, 6034], [9205, 5976], [9178, 5988], [9154, 6029], [9172, 6054]]] } }, { \"type\": \"Feature\", \"id\": \"SG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.57, \"hc-key\": \"sg\", \"hc-a2\": \"SG\", \"name\": \"Singapore\", \"labelrank\": \"6\", \"country-abbrev\": \"Sing.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"SGP\", \"iso-a2\": \"SG\", \"woe-id\": \"23424948\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7286, 6521], [7290, 6519], [7286, 6516], [7280, 6517], [7286, 6521]]] } }, { \"type\": \"Feature\", \"id\": \"CY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.51, \"hc-key\": \"cy\", \"hc-a2\": \"CY\", \"name\": \"Cyprus\", \"labelrank\": \"5\", \"country-abbrev\": \"Cyp.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"CYP\", \"iso-a2\": \"CY\", \"woe-id\": \"-90\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5205, 7555], [5205, 7556], [5206, 7556], [5205, 7555]]], [[[5214, 7557], [5216, 7554], [5210, 7554], [5207, 7557], [5210, 7557], [5213, 7557], [5214, 7557]]], [[[5206, 7555], [5206, 7555], [5207, 7555], [5207, 7554], [5206, 7555]]], [[[5204, 7554], [5201, 7549], [5184, 7543], [5178, 7545], [5176, 7544], [5162, 7557], [5171, 7561], [5172, 7560], [5173, 7562], [5174, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5196, 7561], [5204, 7555], [5204, 7554]]]] } }, { \"type\": \"Feature\", \"id\": \"LK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.62, \"hc-middle-y\": 0.91, \"hc-key\": \"lk\", \"hc-a2\": \"LK\", \"name\": \"Sri Lanka\", \"labelrank\": \"3\", \"country-abbrev\": \"Sri L.\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"LKA\", \"iso-a2\": \"LK\", \"woe-id\": \"23424778\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6576, 6765], [6600, 6755], [6632, 6703], [6631, 6674], [6596, 6654], [6581, 6660], [6572, 6717], [6584, 6759], [6576, 6765]]] } }, { \"type\": \"Feature\", \"id\": \"KM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.41, \"hc-middle-y\": 0.51, \"hc-key\": \"km\", \"hc-a2\": \"KM\", \"name\": \"Comoros\", \"labelrank\": \"6\", \"country-abbrev\": \"Com.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"COM\", \"iso-a2\": \"KM\", \"woe-id\": \"23424786\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5494, 6125], [5487, 6131], [5488, 6142], [5492, 6141], [5494, 6125]]] } }, { \"type\": \"Feature\", \"id\": \"FJ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.44, \"hc-middle-y\": 0.33, \"hc-key\": \"fj\", \"hc-a2\": \"FJ\", \"name\": \"Fiji\", \"labelrank\": \"6\", \"country-abbrev\": \"Fiji\", \"subregion\": \"Melanesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"FJI\", \"iso-a2\": \"FJ\", \"woe-id\": \"23424813\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[9460, 5963], [9494, 5962], [9495, 5978], [9543, 5996], [9494, 5959], [9507, 5951], [9500, 5915], [9490, 5934], [9467, 5939], [9460, 5963]]] } }, { \"type\": \"Feature\", \"id\": \"RU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.56, \"hc-key\": \"ru\", \"hc-a2\": \"RU\", \"name\": \"Russia\", \"labelrank\": \"2\", \"country-abbrev\": \"Rus.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"RUS\", \"iso-a2\": \"RU\", \"woe-id\": \"23424936\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[8620, 7917], [8587, 7905], [8565, 7884], [8519, 7862], [8540, 7887], [8614, 7923], [8620, 7917]]], [[[5691, 8936], [5646, 8924], [5637, 8953], [5666, 8965], [5693, 8952], [5691, 8936]]], [[[5965, 9010], [5999, 8987], [5972, 8976], [5942, 8995], [5965, 9010]]], [[[6315, 9176], [6331, 9169], [6278, 9157], [6280, 9178], [6315, 9176]]], [[[7568, 9234], [7551, 9218], [7512, 9233], [7528, 9245], [7568, 9234]]], [[[5900, 9603], [5857, 9597], [5866, 9613], [5939, 9622], [5950, 9582], [5900, 9603]]], [[[5825, 9623], [5819, 9605], [5766, 9602], [5774, 9618], [5819, 9609], [5825, 9623]]], [[[5870, 9665], [5945, 9662], [5893, 9635], [5861, 9633], [5807, 9645], [5870, 9665]]], [[[6124, 9673], [6147, 9654], [6077, 9637], [6060, 9648], [6104, 9658], [6124, 9673]]], [[[5922, 9709], [5937, 9692], [5916, 9668], [5861, 9672], [5922, 9709]]], [[[5391, 7846], [5361, 7874], [5289, 7912], [5317, 7918], [5327, 7959], [5370, 7979], [5338, 7983], [5356, 8011], [5384, 8010], [5382, 8045], [5395, 8064], [5367, 8087], [5315, 8109], [5262, 8106], [5245, 8140], [5218, 8142], [5225, 8161], [5207, 8185], [5147, 8175], [5131, 8212], [5175, 8229], [5146, 8243], [5121, 8317], [5039, 8340], [5024, 8370], [5016, 8399], [5021, 8411], [5024, 8419], [5030, 8439], [5026, 8462], [5030, 8469], [5033, 8474], [5037, 8476], [5037, 8476], [5035, 8477], [5035, 8477], [5035, 8477], [5037, 8476], [5040, 8478], [5038, 8482], [5035, 8483], [5037, 8497], [5090, 8514], [5029, 8531], [5071, 8562], [5131, 8620], [5141, 8638], [5094, 8678], [5111, 8691], [5082, 8737], [5091, 8792], [5067, 8828], [5095, 8871], [5055, 8897], [5048, 8914], [5063, 8940], [5093, 8957], [5119, 8981], [5155, 8989], [5187, 8976], [5154, 8968], [5271, 8947], [5422, 8870], [5431, 8846], [5404, 8806], [5372, 8793], [5330, 8791], [5199, 8822], [5161, 8842], [5242, 8773], [5227, 8755], [5241, 8731], [5264, 8746], [5302, 8746], [5378, 8716], [5404, 8728], [5386, 8767], [5431, 8789], [5468, 8824], [5515, 8780], [5524, 8820], [5504, 8845], [5517, 8900], [5490, 8918], [5567, 8909], [5591, 8879], [5550, 8873], [5538, 8852], [5564, 8831], [5620, 8836], [5629, 8869], [5652, 8873], [5723, 8912], [5790, 8934], [5806, 8904], [5827, 8896], [5866, 8921], [5905, 8916], [5951, 8938], [5975, 8904], [6011, 8945], [5989, 8968], [6007, 8983], [6107, 8967], [6153, 8943], [6199, 8929], [6230, 8904], [6255, 8935], [6236, 8937], [6223, 8964], [6186, 8969], [6202, 9029], [6176, 9027], [6190, 9061], [6236, 9090], [6251, 9138], [6269, 9149], [6328, 9151], [6366, 9139], [6367, 9115], [6336, 9074], [6361, 9051], [6354, 9006], [6358, 8935], [6389, 8913], [6375, 8873], [6358, 8867], [6328, 8819], [6292, 8803], [6343, 8798], [6385, 8827], [6422, 8871], [6414, 8922], [6471, 8938], [6499, 8913], [6493, 8875], [6522, 8899], [6509, 8932], [6445, 8952], [6393, 8949], [6386, 8977], [6409, 9019], [6371, 9068], [6386, 9090], [6428, 9105], [6421, 9150], [6448, 9187], [6481, 9183], [6445, 9141], [6451, 9113], [6436, 9067], [6512, 9052], [6527, 9059], [6469, 9075], [6459, 9094], [6487, 9102], [6506, 9090], [6515, 9116], [6553, 9161], [6560, 9121], [6630, 9083], [6675, 9084], [6646, 9060], [6663, 9044], [6673, 9007], [6690, 9016], [6671, 9058], [6685, 9079], [6643, 9115], [6599, 9130], [6588, 9167], [6594, 9189], [6788, 9206], [6780, 9224], [6737, 9257], [6785, 9249], [6777, 9269], [6809, 9274], [6873, 9307], [6980, 9323], [6962, 9336], [7011, 9336], [7047, 9351], [7033, 9373], [7059, 9393], [7066, 9353], [7049, 9341], [7067, 9325], [7108, 9332], [7138, 9364], [7197, 9366], [7207, 9400], [7268, 9436], [7313, 9439], [7346, 9430], [7326, 9407], [7393, 9388], [7362, 9364], [7404, 9365], [7407, 9378], [7502, 9378], [7543, 9370], [7546, 9346], [7568, 9345], [7578, 9308], [7544, 9323], [7575, 9289], [7467, 9233], [7411, 9192], [7384, 9191], [7360, 9167], [7401, 9165], [7495, 9195], [7457, 9196], [7469, 9214], [7539, 9196], [7561, 9206], [7571, 9185], [7629, 9196], [7719, 9189], [7716, 9172], [7772, 9155], [7853, 9150], [7870, 9168], [7862, 9188], [7901, 9208], [7905, 9196], [7955, 9179], [7974, 9187], [8045, 9157], [8030, 9104], [7998, 9123], [8055, 9053], [8088, 9032], [8108, 9038], [8137, 9093], [8170, 9068], [8195, 9065], [8239, 9079], [8270, 9074], [8322, 9080], [8360, 9070], [8335, 9109], [8345, 9127], [8405, 9143], [8519, 9131], [8564, 9117], [8534, 9111], [8541, 9090], [8572, 9118], [8644, 9108], [8657, 9095], [8626, 9083], [8700, 9063], [8721, 9038], [8764, 9037], [8832, 9050], [8908, 9043], [8943, 9027], [8955, 9004], [8943, 8985], [8984, 8961], [9072, 8979], [9096, 8968], [9158, 8964], [9197, 8992], [9232, 8984], [9225, 8968], [9192, 8975], [9201, 8950], [9238, 8927], [9278, 8941], [9267, 8997], [9413, 8983], [9467, 8971], [9580, 8925], [9584, 8914], [9685, 8870], [9711, 8813], [9723, 8834], [9791, 8834], [9851, 8793], [9826, 8768], [9778, 8763], [9764, 8722], [9776, 8709], [9742, 8703], [9702, 8728], [9668, 8738], [9667, 8757], [9635, 8767], [9589, 8762], [9555, 8796], [9567, 8768], [9556, 8744], [9493, 8721], [9439, 8731], [9486, 8700], [9495, 8707], [9534, 8629], [9519, 8610], [9488, 8621], [9448, 8619], [9352, 8576], [9308, 8545], [9266, 8526], [9261, 8505], [9227, 8532], [9158, 8520], [9133, 8499], [9142, 8528], [9095, 8497], [9060, 8508], [9046, 8484], [9064, 8458], [9090, 8456], [9056, 8438], [9043, 8461], [9011, 8423], [9051, 8406], [9035, 8366], [9052, 8342], [9016, 8339], [9005, 8318], [9016, 8287], [8954, 8259], [8941, 8221], [8912, 8207], [8886, 8153], [8827, 8100], [8811, 8101], [8856, 8131], [8837, 8208], [8820, 8304], [8835, 8366], [8877, 8410], [8923, 8437], [8948, 8468], [9008, 8515], [9010, 8525], [9072, 8567], [9075, 8609], [9107, 8615], [9089, 8628], [9049, 8621], [9040, 8587], [8957, 8532], [8946, 8548], [8962, 8594], [8877, 8587], [8802, 8523], [8776, 8485], [8810, 8470], [8755, 8473], [8696, 8456], [8678, 8483], [8643, 8496], [8619, 8473], [8474, 8481], [8435, 8472], [8385, 8435], [8373, 8412], [8319, 8375], [8287, 8339], [8217, 8288], [8256, 8276], [8261, 8291], [8303, 8293], [8279, 8254], [8297, 8235], [8321, 8264], [8353, 8263], [8401, 8217], [8372, 8113], [8375, 8076], [8364, 8034], [8337, 8008], [8302, 7950], [8237, 7883], [8214, 7850], [8156, 7821], [8116, 7844], [8083, 7807], [8081, 7811], [8078, 7815], [8091, 7827], [8099, 7870], [8090, 7899], [8121, 7913], [8132, 7887], [8146, 7907], [8178, 7951], [8185, 7988], [8204, 8005], [8192, 8031], [8135, 8005], [8093, 8004], [8086, 8027], [8043, 8071], [8005, 8075], [7935, 8210], [7862, 8234], [7790, 8222], [7766, 8201], [7788, 8176], [7768, 8158], [7740, 8107], [7742, 8093], [7699, 8074], [7667, 8086], [7628, 8089], [7596, 8104], [7559, 8077], [7490, 8060], [7425, 8067], [7407, 8090], [7330, 8111], [7280, 8098], [7239, 8117], [7237, 8144], [7139, 8176], [7106, 8132], [7121, 8113], [7093, 8083], [7011, 8094], [7001, 8115], [6945, 8127], [6810, 8061], [6801, 8059], [6795, 8058], [6774, 8077], [6734, 8077], [6680, 8131], [6621, 8121], [6598, 8144], [6577, 8124], [6515, 8222], [6475, 8250], [6479, 8269], [6407, 8235], [6385, 8249], [6316, 8256], [6306, 8305], [6230, 8300], [6227, 8291], [6139, 8266], [6014, 8247], [6020, 8222], [6045, 8216], [6005, 8198], [6015, 8184], [5989, 8167], [6028, 8148], [6025, 8123], [5983, 8125], [5978, 8114], [5943, 8133], [5881, 8134], [5856, 8113], [5821, 8126], [5787, 8152], [5705, 8157], [5648, 8115], [5641, 8085], [5615, 8110], [5596, 8086], [5600, 8062], [5583, 8032], [5602, 8009], [5630, 8008], [5665, 7954], [5617, 7931], [5591, 7892], [5617, 7860], [5612, 7833], [5646, 7791], [5621, 7768], [5582, 7793], [5534, 7823], [5508, 7816], [5475, 7838], [5391, 7846]]], [[[9599, 9071], [9621, 9058], [9607, 9047], [9546, 9044], [9510, 9034], [9513, 9057], [9553, 9077], [9599, 9071]]], [[[8377, 9210], [8419, 9208], [8460, 9187], [8453, 9166], [8373, 9183], [8377, 9210]]], [[[6937, 9577], [6908, 9593], [6985, 9585], [6953, 9568], [6937, 9577]]], [[[5596, 9641], [5637, 9647], [5572, 9620], [5542, 9634], [5596, 9641]]], [[[5995, 9655], [6034, 9667], [6052, 9644], [6016, 9618], [5975, 9619], [5961, 9635], [5995, 9655]]], [[[4790, 8269], [4810, 8280], [4786, 8270], [4786, 8270], [4795, 8288], [4825, 8304], [4827, 8304], [4814, 8290], [4835, 8303], [4881, 8288], [4880, 8266], [4878, 8266], [4790, 8269]]], [[[7022, 9596], [7001, 9593], [6984, 9590], [6920, 9610], [6957, 9625], [6965, 9659], [7046, 9679], [7111, 9638], [7088, 9634], [7088, 9606], [7033, 9597], [7100, 9602], [7123, 9582], [7148, 9593], [7170, 9569], [7154, 9511], [7105, 9510], [7077, 9522], [7024, 9525], [6986, 9559], [7022, 9596]]], [[[8455, 8069], [8434, 8017], [8459, 7961], [8432, 7965], [8421, 7938], [8413, 7964], [8424, 8015], [8417, 8049], [8426, 8138], [8409, 8161], [8411, 8226], [8442, 8239], [8434, 8264], [8456, 8217], [8461, 8152], [8486, 8064], [8455, 8069]]], [[[5879, 9169], [5847, 9116], [5869, 9059], [5914, 9030], [5900, 9017], [5849, 9031], [5841, 9020], [5786, 9037], [5794, 9055], [5774, 9065], [5778, 9046], [5733, 9076], [5731, 9096], [5759, 9104], [5780, 9161], [5834, 9180], [5879, 9169]]], [[[8571, 9292], [8608, 9297], [8629, 9288], [8681, 9280], [8673, 9266], [8601, 9260], [8539, 9286], [8548, 9307], [8571, 9292]]], [[[8399, 9343], [8434, 9324], [8476, 9322], [8518, 9303], [8477, 9274], [8433, 9294], [8437, 9278], [8468, 9268], [8429, 9262], [8413, 9272], [8329, 9252], [8296, 9263], [8266, 9294], [8241, 9299], [8224, 9294], [8230, 9324], [8269, 9309], [8282, 9329], [8326, 9346], [8388, 9309], [8399, 9343]]], [[[6210, 9395], [6246, 9386], [6250, 9367], [6197, 9339], [6025, 9292], [5959, 9239], [5931, 9247], [5933, 9224], [5888, 9170], [5837, 9181], [5814, 9174], [5796, 9199], [5830, 9212], [5852, 9252], [5897, 9296], [5931, 9307], [5947, 9326], [6017, 9337], [6017, 9349], [6055, 9344], [6104, 9352], [6210, 9395]]], [[[7197, 9509], [7203, 9532], [7240, 9552], [7265, 9544], [7257, 9526], [7285, 9533], [7322, 9512], [7352, 9475], [7326, 9488], [7282, 9474], [7207, 9470], [7173, 9455], [7150, 9460], [7197, 9509]]], [[[5588, 9611], [5677, 9634], [5658, 9643], [5699, 9660], [5738, 9636], [5680, 9624], [5695, 9590], [5674, 9601], [5588, 9611]]]] } }, { \"type\": \"Feature\", \"id\": \"VA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.61, \"hc-middle-y\": 0.44, \"hc-key\": \"va\", \"hc-a2\": \"VA\", \"name\": \"Vatican\", \"labelrank\": \"6\", \"country-abbrev\": \"Vat.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"VAT\", \"iso-a2\": \"VA\", \"woe-id\": \"23424986\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4574, 7793], [4574, 7793], [4574, 7793], [4574, 7793], [4574, 7793]]] } }, { \"type\": \"Feature\", \"id\": \"SM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.42, \"hc-key\": \"sm\", \"hc-a2\": \"SM\", \"name\": \"San Marino\", \"labelrank\": \"6\", \"country-abbrev\": \"S.M.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"SMR\", \"iso-a2\": \"SM\", \"woe-id\": \"23424947\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4574, 7865], [4572, 7866], [4573, 7867], [4574, 7868], [4574, 7865]]] } }, { \"type\": \"Feature\", \"id\": \"KZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.46, \"hc-key\": \"kz\", \"hc-a2\": \"KZ\", \"name\": \"Kazakhstan\", \"labelrank\": \"3\", \"country-abbrev\": \"Kaz.\", \"subregion\": \"Central Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"KAZ\", \"iso-a2\": \"KZ\", \"woe-id\": \"-90\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5991, 7941], [5960, 7930], [5968, 7910], [5947, 7922], [5952, 7928], [5943, 7925], [5865, 7905], [5865, 7773], [5851, 7770], [5812, 7808], [5792, 7800], [5792, 7800], [5792, 7800], [5792, 7800], [5780, 7795], [5780, 7795], [5780, 7795], [5780, 7795], [5760, 7788], [5768, 7823], [5745, 7826], [5697, 7892], [5729, 7917], [5763, 7920], [5779, 7942], [5779, 7975], [5750, 7972], [5724, 7983], [5665, 7954], [5630, 8008], [5602, 8009], [5583, 8032], [5600, 8062], [5596, 8086], [5615, 8110], [5641, 8085], [5648, 8115], [5705, 8157], [5787, 8152], [5821, 8126], [5856, 8113], [5881, 8134], [5943, 8133], [5978, 8114], [5983, 8125], [6025, 8123], [6028, 8148], [5989, 8167], [6015, 8184], [6005, 8198], [6045, 8216], [6020, 8222], [6014, 8247], [6139, 8266], [6227, 8291], [6230, 8300], [6306, 8305], [6316, 8256], [6385, 8249], [6407, 8235], [6479, 8269], [6475, 8250], [6515, 8222], [6577, 8124], [6598, 8144], [6621, 8121], [6680, 8131], [6734, 8077], [6774, 8077], [6795, 8058], [6750, 8032], [6741, 7981], [6719, 7972], [6668, 7986], [6646, 7924], [6581, 7906], [6602, 7838], [6584, 7803], [6531, 7828], [6435, 7827], [6405, 7842], [6385, 7812], [6336, 7826], [6309, 7805], [6253, 7774], [6240, 7747], [6220, 7768], [6183, 7768], [6178, 7796], [6163, 7797], [6157, 7828], [6131, 7858], [6045, 7850], [6015, 7882], [5986, 7899], [5977, 7930], [5996, 7939], [5991, 7941]], [[5995, 7942], [5997, 7942], [5997, 7940], [6021, 7950], [5995, 7942]]], [[[5693, 7900], [5687, 7903], [5689, 7907], [5698, 7908], [5693, 7900]]]] } }, { \"type\": \"Feature\", \"id\": \"AZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.83, \"hc-middle-y\": 0.51, \"hc-key\": \"az\", \"hc-a2\": \"AZ\", \"name\": \"Azerbaijan\", \"labelrank\": \"5\", \"country-abbrev\": \"Aze.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"AZE\", \"iso-a2\": \"AZ\", \"woe-id\": \"23424741\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5540, 7763], [5539, 7762], [5538, 7764], [5540, 7764], [5540, 7763]]], [[[5546, 7760], [5545, 7760], [5545, 7761], [5545, 7761], [5546, 7760]]], [[[5554, 7747], [5554, 7749], [5556, 7749], [5555, 7747], [5554, 7747]]], [[[5534, 7714], [5533, 7716], [5563, 7710], [5573, 7687], [5552, 7692], [5534, 7714]]], [[[5582, 7793], [5621, 7768], [5646, 7791], [5676, 7748], [5654, 7672], [5629, 7685], [5627, 7716], [5584, 7687], [5558, 7727], [5568, 7734], [5539, 7771], [5584, 7763], [5582, 7793]]]] } }, { \"type\": \"Feature\", \"id\": \"TJ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.28, \"hc-middle-y\": 0.56, \"hc-key\": \"tj\", \"hc-a2\": \"TJ\", \"name\": \"Tajikistan\", \"labelrank\": \"4\", \"country-abbrev\": \"Tjk.\", \"subregion\": \"Central Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"TJK\", \"iso-a2\": \"TJ\", \"woe-id\": \"23424961\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[6300, 7759], [6300, 7759], [6298, 7762], [6299, 7761], [6300, 7759]]], [[[6300, 7721], [6302, 7720], [6299, 7718], [6296, 7722], [6300, 7721]]], [[[6389, 7707], [6395, 7677], [6423, 7675], [6426, 7631], [6379, 7639], [6329, 7613], [6329, 7653], [6299, 7669], [6285, 7641], [6259, 7626], [6215, 7629], [6232, 7665], [6225, 7691], [6203, 7699], [6235, 7710], [6264, 7754], [6295, 7762], [6310, 7734], [6280, 7734], [6261, 7709], [6325, 7713], [6348, 7698], [6389, 7707]]]] } }, { \"type\": \"Feature\", \"id\": \"LS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.45, \"hc-key\": \"ls\", \"hc-a2\": \"LS\", \"name\": \"Lesotho\", \"labelrank\": \"6\", \"country-abbrev\": \"Les.\", \"subregion\": \"Southern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"LSO\", \"iso-a2\": \"LS\", \"woe-id\": \"23424880\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5040, 5608], [5054, 5613], [5078, 5588], [5037, 5545], [5006, 5579], [5040, 5608]]] } }, { \"type\": \"Feature\", \"id\": \"UZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.53, \"hc-key\": \"uz\", \"hc-a2\": \"UZ\", \"name\": \"Uzbekistan\", \"labelrank\": \"3\", \"country-abbrev\": \"Uzb.\", \"subregion\": \"Central Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"UZB\", \"iso-a2\": \"UZ\", \"woe-id\": \"23424980\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[6333, 7723], [6332, 7723], [6331, 7724], [6334, 7726], [6333, 7723]]], [[[6316, 7728], [6317, 7722], [6312, 7722], [6310, 7729], [6316, 7728]]], [[[5968, 7910], [5961, 7895], [5982, 7876], [5986, 7899], [6015, 7882], [6045, 7850], [6131, 7858], [6157, 7828], [6163, 7797], [6178, 7796], [6183, 7768], [6220, 7768], [6240, 7747], [6253, 7774], [6309, 7805], [6286, 7782], [6323, 7766], [6333, 7777], [6374, 7754], [6331, 7731], [6310, 7734], [6295, 7762], [6264, 7754], [6235, 7710], [6203, 7699], [6225, 7691], [6232, 7665], [6215, 7629], [6200, 7629], [6178, 7635], [6179, 7658], [6151, 7665], [6057, 7726], [6043, 7761], [5987, 7775], [5981, 7807], [5943, 7825], [5915, 7802], [5908, 7809], [5898, 7794], [5896, 7770], [5865, 7773], [5865, 7905], [5943, 7925], [5934, 7884], [5947, 7922], [5968, 7910]], [[6300, 7759], [6299, 7761], [6298, 7762], [6300, 7759], [6300, 7759]]]] } }, { \"type\": \"Feature\", \"id\": \"MA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.60, \"hc-middle-y\": 0.21, \"hc-key\": \"ma\", \"hc-a2\": \"MA\", \"name\": \"Morocco\", \"labelrank\": \"3\", \"country-abbrev\": \"Mor.\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"MAR\", \"iso-a2\": \"MA\", \"woe-id\": \"23424893\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4117, 7564], [4118, 7565], [4119, 7560], [4138, 7558], [4151, 7547], [4154, 7497], [4173, 7473], [4167, 7459], [4129, 7460], [4095, 7444], [4096, 7414], [4033, 7378], [3977, 7371], [3946, 7348], [3946, 7316], [3943, 7298], [3915, 7290], [3866, 7291], [3847, 7264], [3835, 7226], [3788, 7182], [3782, 7148], [3764, 7121], [3699, 7120], [3740, 7201], [3762, 7222], [3774, 7267], [3800, 7285], [3820, 7324], [3863, 7337], [3890, 7358], [3919, 7404], [3912, 7436], [3929, 7475], [3951, 7498], [4002, 7523], [4028, 7582], [4044, 7586], [4044, 7585], [4045, 7584], [4074, 7560], [4116, 7566], [4117, 7566], [4117, 7564]]] } }, { \"type\": \"Feature\", \"id\": \"CO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.54, \"hc-key\": \"co\", \"hc-a2\": \"CO\", \"name\": \"Colombia\", \"labelrank\": \"2\", \"country-abbrev\": \"Col.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"COL\", \"iso-a2\": \"CO\", \"woe-id\": \"23424787\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1865, 6521], [1868, 6543], [1894, 6559], [1916, 6592], [1909, 6611], [1909, 6673], [1892, 6692], [1914, 6713], [1908, 6735], [1920, 6731], [1960, 6758], [1963, 6791], [2005, 6815], [2029, 6813], [2082, 6847], [2087, 6830], [2068, 6824], [2040, 6787], [2037, 6753], [2056, 6726], [2064, 6688], [2123, 6685], [2143, 6659], [2201, 6662], [2190, 6612], [2207, 6580], [2191, 6564], [2210, 6549], [2219, 6515], [2206, 6540], [2181, 6529], [2131, 6529], [2125, 6474], [2143, 6437], [2128, 6354], [2105, 6367], [2125, 6399], [2096, 6414], [2056, 6406], [2032, 6413], [2019, 6442], [1970, 6476], [1940, 6492], [1905, 6498], [1865, 6521]]] } }, { \"type\": \"Feature\", \"id\": \"TL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.65, \"hc-middle-y\": 0.36, \"hc-key\": \"tl\", \"hc-a2\": \"TL\", \"name\": \"East Timor\", \"labelrank\": \"5\", \"country-abbrev\": \"T.L.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"TLS\", \"iso-a2\": \"TL\", \"woe-id\": \"23424968\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7885, 6203], [7890, 6206], [7897, 6207], [7891, 6198], [7885, 6203]]], [[[7911, 6214], [7918, 6224], [7972, 6233], [7957, 6214], [7915, 6198], [7912, 6206], [7911, 6214]]]] } }, { \"type\": \"Feature\", \"id\": \"TZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"tz\", \"hc-a2\": \"TZ\", \"name\": \"United Republic of Tanzania\", \"labelrank\": \"3\", \"country-abbrev\": \"Tanz.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"TZA\", \"iso-a2\": \"TZ\", \"woe-id\": \"23424973\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5242, 6136], [5241, 6138], [5240, 6141], [5240, 6141], [5236, 6143], [5235, 6145], [5235, 6145], [5234, 6146], [5227, 6185], [5222, 6192], [5219, 6195], [5219, 6195], [5216, 6197], [5215, 6197], [5215, 6198], [5211, 6196], [5210, 6191], [5195, 6195], [5181, 6201], [5153, 6211], [5129, 6225], [5093, 6304], [5084, 6347], [5118, 6383], [5111, 6408], [5119, 6432], [5108, 6447], [5119, 6449], [5147, 6449], [5147, 6448], [5148, 6449], [5149, 6449], [5151, 6407], [5189, 6405], [5215, 6448], [5321, 6389], [5325, 6371], [5367, 6341], [5387, 6324], [5371, 6310], [5378, 6289], [5372, 6221], [5404, 6169], [5316, 6132], [5242, 6136]]] } }, { \"type\": \"Feature\", \"id\": \"AR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.27, \"hc-key\": \"ar\", \"hc-a2\": \"AR\", \"name\": \"Argentina\", \"labelrank\": \"2\", \"country-abbrev\": \"Arg.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"ARG\", \"iso-a2\": \"AR\", \"woe-id\": \"23424747\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2167, 4673], [2169, 4670], [2167, 4670], [2167, 4673]]], [[[2584, 5708], [2604, 5706], [2606, 5658], [2549, 5623], [2494, 5561], [2477, 5505], [2477, 5487], [2466, 5426], [2509, 5387], [2501, 5373], [2522, 5338], [2495, 5295], [2451, 5277], [2398, 5267], [2362, 5269], [2354, 5201], [2310, 5191], [2278, 5207], [2273, 5163], [2287, 5146], [2312, 5158], [2316, 5134], [2292, 5143], [2292, 5126], [2265, 5101], [2257, 5052], [2239, 5053], [2206, 5030], [2197, 5010], [2222, 4978], [2246, 4976], [2246, 4939], [2199, 4902], [2189, 4865], [2160, 4852], [2151, 4826], [2173, 4772], [2128, 4786], [2070, 4787], [2054, 4804], [2058, 4839], [2032, 4835], [2020, 4882], [2059, 4928], [2051, 4944], [2070, 4970], [2088, 5042], [2066, 5062], [2077, 5092], [2063, 5125], [2075, 5158], [2069, 5206], [2085, 5269], [2101, 5277], [2091, 5311], [2096, 5352], [2115, 5366], [2115, 5397], [2133, 5456], [2109, 5516], [2137, 5618], [2162, 5659], [2177, 5666], [2169, 5733], [2206, 5757], [2210, 5794], [2238, 5826], [2287, 5813], [2295, 5792], [2307, 5819], [2345, 5812], [2394, 5763], [2422, 5757], [2496, 5712], [2465, 5653], [2549, 5649], [2578, 5674], [2584, 5708]]], [[[2167, 4674], [2167, 4761], [2173, 4734], [2207, 4704], [2250, 4679], [2287, 4669], [2229, 4663], [2209, 4666], [2202, 4668], [2167, 4674]]]] } }, { \"type\": \"Feature\", \"id\": \"SA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.53, \"hc-key\": \"sa\", \"hc-a2\": \"SA\", \"name\": \"Saudi Arabia\", \"labelrank\": \"2\", \"country-abbrev\": \"Saud.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"SAU\", \"iso-a2\": \"SA\", \"woe-id\": \"23424938\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5641, 7344], [5655, 7313], [5692, 7284], [5692, 7255], [5712, 7224], [5717, 7218], [5724, 7220], [5726, 7210], [5734, 7208], [5764, 7167], [5842, 7160], [5855, 7137], [5836, 7076], [5747, 7045], [5662, 7034], [5633, 7020], [5611, 6987], [5544, 6998], [5485, 6995], [5474, 6966], [5427, 7036], [5419, 7061], [5381, 7090], [5364, 7117], [5364, 7155], [5345, 7193], [5318, 7209], [5309, 7237], [5249, 7328], [5230, 7330], [5241, 7370], [5274, 7365], [5331, 7407], [5301, 7439], [5366, 7460], [5404, 7453], [5453, 7426], [5530, 7365], [5585, 7362], [5612, 7358], [5641, 7344]]] } }, { \"type\": \"Feature\", \"id\": \"PK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.34, \"hc-middle-y\": 0.64, \"hc-key\": \"pk\", \"hc-a2\": \"PK\", \"name\": \"Pakistan\", \"labelrank\": \"2\", \"country-abbrev\": \"Pak.\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"PAK\", \"iso-a2\": \"PK\", \"woe-id\": \"23424922\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6416, 7624], [6459, 7605], [6482, 7577], [6490, 7559], [6453, 7539], [6410, 7548], [6393, 7534], [6400, 7495], [6438, 7461], [6415, 7446], [6416, 7427], [6381, 7388], [6368, 7360], [6337, 7325], [6295, 7328], [6265, 7289], [6313, 7222], [6280, 7205], [6247, 7208], [6227, 7195], [6203, 7202], [6173, 7246], [6088, 7238], [6032, 7238], [6039, 7270], [6076, 7283], [6067, 7334], [6041, 7344], [6010, 7386], [6058, 7372], [6106, 7371], [6168, 7385], [6173, 7421], [6226, 7450], [6261, 7454], [6268, 7491], [6290, 7499], [6281, 7523], [6313, 7524], [6330, 7562], [6316, 7590], [6357, 7617], [6416, 7624]]] } }, { \"type\": \"Feature\", \"id\": \"YE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.75, \"hc-key\": \"ye\", \"hc-a2\": \"YE\", \"name\": \"Yemen\", \"labelrank\": \"3\", \"country-abbrev\": \"Yem.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"YEM\", \"iso-a2\": \"YE\", \"woe-id\": \"23425002\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5747, 7045], [5769, 6994], [5780, 6974], [5754, 6943], [5675, 6916], [5649, 6895], [5629, 6896], [5590, 6877], [5564, 6875], [5508, 6852], [5494, 6859], [5472, 6941], [5474, 6966], [5485, 6995], [5544, 6998], [5611, 6987], [5633, 7020], [5662, 7034], [5747, 7045]]] } }, { \"type\": \"Feature\", \"id\": \"AE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.59, \"hc-middle-y\": 0.65, \"hc-key\": \"ae\", \"hc-a2\": \"AE\", \"name\": \"United Arab Emirates\", \"labelrank\": \"4\", \"country-abbrev\": \"U.A.E.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"ARE\", \"iso-a2\": \"AE\", \"woe-id\": \"23424738\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5874, 7251], [5877, 7248], [5877, 7231], [5860, 7228], [5842, 7160], [5764, 7167], [5734, 7208], [5810, 7205], [5868, 7265], [5870, 7253], [5874, 7251]], [[5874, 7239], [5876, 7241], [5873, 7241], [5873, 7238], [5874, 7239]]] } }, { \"type\": \"Feature\", \"id\": \"KE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.87, \"hc-middle-y\": 0.70, \"hc-key\": \"ke\", \"hc-a2\": \"KE\", \"name\": \"Kenya\", \"labelrank\": \"2\", \"country-abbrev\": \"Ken.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"KEN\", \"iso-a2\": \"KE\", \"woe-id\": \"23424863\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5367, 6341], [5325, 6371], [5321, 6389], [5215, 6448], [5220, 6471], [5213, 6486], [5242, 6527], [5240, 6552], [5212, 6603], [5255, 6627], [5270, 6615], [5297, 6609], [5335, 6585], [5377, 6579], [5414, 6605], [5447, 6596], [5420, 6562], [5420, 6453], [5437, 6429], [5396, 6397], [5367, 6341]]] } }, { \"type\": \"Feature\", \"id\": \"PE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.69, \"hc-middle-y\": 0.71, \"hc-key\": \"pe\", \"hc-a2\": \"PE\", \"name\": \"Peru\", \"labelrank\": \"2\", \"country-abbrev\": \"Peru\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"PER\", \"iso-a2\": \"PE\", \"woe-id\": \"23424919\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1970, 6476], [2019, 6442], [2032, 6413], [2056, 6406], [2096, 6414], [2125, 6399], [2105, 6367], [2128, 6354], [2103, 6356], [2040, 6327], [2034, 6290], [2007, 6256], [2061, 6183], [2091, 6185], [2111, 6200], [2108, 6153], [2139, 6155], [2166, 6108], [2153, 6073], [2160, 6058], [2145, 6017], [2126, 6008], [2153, 5996], [2155, 5997], [2157, 5996], [2153, 5988], [2155, 5986], [2137, 5964], [2141, 5957], [2128, 5935], [2115, 5932], [2082, 5964], [1973, 6022], [1940, 6061], [1942, 6083], [1900, 6144], [1860, 6236], [1831, 6278], [1797, 6299], [1793, 6354], [1820, 6379], [1815, 6358], [1858, 6331], [1879, 6379], [1928, 6403], [1961, 6433], [1970, 6476]]] } }, { \"type\": \"Feature\", \"id\": \"DO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.38, \"hc-key\": \"do\", \"hc-a2\": \"DO\", \"name\": \"Dominican Republic\", \"labelrank\": \"5\", \"country-abbrev\": \"Dom. Rep.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"DOM\", \"iso-a2\": \"DO\", \"woe-id\": \"23424800\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2070, 7030], [2070, 7030], [2069, 7031], [2069, 7031], [2067, 7033], [2076, 7038], [2075, 7067], [2097, 7074], [2128, 7066], [2138, 7048], [2175, 7035], [2159, 7028], [2106, 7028], [2085, 7003], [2074, 7016], [2076, 7025], [2070, 7030]]] } }, { \"type\": \"Feature\", \"id\": \"HT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.82, \"hc-middle-y\": 0.96, \"hc-key\": \"ht\", \"hc-a2\": \"HT\", \"name\": \"Haiti\", \"labelrank\": \"5\", \"country-abbrev\": \"Haiti\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"HTI\", \"iso-a2\": \"HT\", \"woe-id\": \"23424839\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2070, 7030], [2069, 7031], [2069, 7031], [2069, 7031], [2070, 7030]]], [[[2075, 7067], [2076, 7038], [2067, 7033], [2068, 7030], [2070, 7030], [2076, 7025], [2074, 7016], [2028, 7023], [2011, 7016], [2000, 7036], [2046, 7028], [2046, 7059], [2025, 7070], [2075, 7067]]]] } }, { \"type\": \"Feature\", \"id\": \"PG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.14, \"hc-middle-y\": 0.50, \"hc-key\": \"pg\", \"hc-a2\": \"PG\", \"name\": \"Papua New Guinea\", \"labelrank\": \"2\", \"country-abbrev\": \"P.N.G.\", \"subregion\": \"Melanesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"PNG\", \"iso-a2\": \"PG\", \"woe-id\": \"23424926\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[8388, 6210], [8388, 6275], [8388, 6402], [8478, 6367], [8493, 6366], [8531, 6335], [8530, 6317], [8580, 6303], [8592, 6281], [8565, 6279], [8572, 6258], [8600, 6241], [8632, 6198], [8684, 6195], [8676, 6166], [8595, 6178], [8568, 6199], [8539, 6240], [8470, 6255], [8460, 6214], [8437, 6203], [8388, 6210]]], [[[8654, 6406], [8646, 6432], [8662, 6408], [8716, 6383], [8749, 6353], [8741, 6336], [8723, 6373], [8654, 6406]]], [[[8645, 6292], [8598, 6309], [8685, 6319], [8703, 6332], [8701, 6355], [8727, 6351], [8719, 6320], [8669, 6294], [8645, 6292]]]] } }, { \"type\": \"Feature\", \"id\": \"AO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.67, \"hc-key\": \"ao\", \"hc-a2\": \"AO\", \"name\": \"Angola\", \"labelrank\": \"3\", \"country-abbrev\": \"Ang.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"AGO\", \"iso-a2\": \"AO\", \"woe-id\": \"23424745\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4566, 6309], [4567, 6317], [4560, 6331], [4583, 6349], [4592, 6342], [4573, 6330], [4566, 6309]]], [[[4898, 5953], [4821, 5941], [4761, 5950], [4752, 5961], [4618, 5960], [4595, 5974], [4553, 5965], [4553, 6009], [4575, 6081], [4609, 6116], [4613, 6163], [4590, 6210], [4601, 6232], [4568, 6298], [4595, 6306], [4697, 6304], [4708, 6263], [4726, 6239], [4778, 6242], [4783, 6272], [4850, 6264], [4851, 6201], [4862, 6185], [4864, 6146], [4915, 6157], [4916, 6093], [4856, 6093], [4856, 5998], [4898, 5953]]]] } }, { \"type\": \"Feature\", \"id\": \"KH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.84, \"hc-middle-y\": 0.49, \"hc-key\": \"kh\", \"hc-a2\": \"KH\", \"name\": \"Cambodia\", \"labelrank\": \"3\", \"country-abbrev\": \"Camb.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"KHM\", \"iso-a2\": \"KH\", \"woe-id\": \"23424776\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7395, 6915], [7395, 6844], [7342, 6805], [7304, 6787], [7279, 6789], [7258, 6824], [7241, 6881], [7280, 6907], [7325, 6904], [7374, 6904], [7395, 6915]]] } }, { \"type\": \"Feature\", \"id\": \"VN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.59, \"hc-middle-y\": 0.89, \"hc-key\": \"vn\", \"hc-a2\": \"VN\", \"name\": \"Vietnam\", \"labelrank\": \"2\", \"country-abbrev\": \"Viet.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"VNM\", \"iso-a2\": \"VN\", \"woe-id\": \"23424984\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7304, 6787], [7342, 6805], [7395, 6844], [7395, 6915], [7399, 6932], [7365, 6984], [7311, 7039], [7286, 7055], [7319, 7079], [7292, 7106], [7264, 7103], [7260, 7125], [7234, 7150], [7245, 7162], [7289, 7154], [7329, 7180], [7372, 7161], [7366, 7149], [7409, 7122], [7377, 7105], [7350, 7076], [7338, 7046], [7368, 6999], [7432, 6936], [7452, 6861], [7439, 6815], [7387, 6786], [7371, 6790], [7364, 6761], [7313, 6739], [7314, 6781], [7304, 6787]]] } }, { \"type\": \"Feature\", \"id\": \"MZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.83, \"hc-middle-y\": 0.28, \"hc-key\": \"mz\", \"hc-a2\": \"MZ\", \"name\": \"Mozambique\", \"labelrank\": \"3\", \"country-abbrev\": \"Moz.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MOZ\", \"iso-a2\": \"MZ\", \"woe-id\": \"23424902\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5238, 6078], [5234, 6118], [5242, 6136], [5316, 6132], [5404, 6169], [5416, 6039], [5388, 5991], [5305, 5946], [5239, 5885], [5233, 5868], [5258, 5816], [5246, 5739], [5205, 5723], [5169, 5696], [5180, 5668], [5164, 5667], [5157, 5668], [5155, 5685], [5152, 5696], [5153, 5744], [5133, 5807], [5166, 5841], [5184, 5880], [5176, 5898], [5185, 5932], [5182, 5982], [5106, 6014], [5101, 6034], [5189, 6063], [5202, 6045], [5223, 6052], [5220, 6006], [5247, 5987], [5266, 6002], [5268, 6044], [5238, 6078]]] } }, { \"type\": \"Feature\", \"id\": \"CR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.55, \"hc-middle-y\": 0.31, \"hc-key\": \"cr\", \"hc-a2\": \"CR\", \"name\": \"Costa Rica\", \"labelrank\": \"5\", \"country-abbrev\": \"C.R.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"CRI\", \"iso-a2\": \"CR\", \"woe-id\": \"23424791\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[1722, 6802], [1727, 6789], [1754, 6762], [1740, 6726], [1740, 6726], [1736, 6734], [1656, 6785], [1661, 6807], [1701, 6804], [1722, 6802]]], [[[1744, 6716], [1739, 6725], [1740, 6725], [1740, 6725], [1744, 6716]]]] } }, { \"type\": \"Feature\", \"id\": \"BJ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.49, \"hc-key\": \"bj\", \"hc-a2\": \"BJ\", \"name\": \"Benin\", \"labelrank\": \"5\", \"country-abbrev\": \"Benin\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"BEN\", \"iso-a2\": \"BJ\", \"woe-id\": \"23424764\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4311, 6825], [4318, 6792], [4286, 6746], [4284, 6667], [4260, 6664], [4252, 6662], [4252, 6746], [4231, 6804], [4247, 6818], [4275, 6831], [4288, 6846], [4311, 6825]]] } }, { \"type\": \"Feature\", \"id\": \"NG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.36, \"hc-middle-y\": 0.33, \"hc-key\": \"ng\", \"hc-a2\": \"NG\", \"name\": \"Nigeria\", \"labelrank\": \"2\", \"country-abbrev\": \"Nigeria\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"NGA\", \"iso-a2\": \"NG\", \"woe-id\": \"23424908\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4284, 6667], [4286, 6746], [4318, 6792], [4311, 6825], [4326, 6878], [4368, 6891], [4410, 6864], [4436, 6874], [4490, 6859], [4504, 6872], [4543, 6875], [4574, 6866], [4608, 6885], [4621, 6866], [4639, 6839], [4567, 6725], [4540, 6669], [4518, 6689], [4466, 6651], [4459, 6621], [4388, 6605], [4370, 6615], [4335, 6666], [4284, 6667]]] } }, { \"type\": \"Feature\", \"id\": \"IR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.58, \"hc-middle-y\": 0.51, \"hc-key\": \"ir\", \"hc-a2\": \"IR\", \"name\": \"Iran\", \"labelrank\": \"2\", \"country-abbrev\": \"Iran\", \"subregion\": \"Southern Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"IRN\", \"iso-a2\": \"IR\", \"woe-id\": \"23424851\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5532, 7628], [5516, 7656], [5510, 7704], [5534, 7714], [5552, 7692], [5573, 7687], [5580, 7689], [5584, 7687], [5627, 7716], [5629, 7685], [5654, 7672], [5659, 7648], [5694, 7636], [5720, 7614], [5744, 7609], [5807, 7617], [5804, 7634], [5849, 7660], [5902, 7666], [5906, 7656], [5949, 7646], [5995, 7610], [6020, 7608], [6022, 7576], [6001, 7491], [6009, 7439], [6035, 7435], [6038, 7418], [6010, 7386], [6041, 7344], [6067, 7334], [6076, 7283], [6039, 7270], [6032, 7238], [5982, 7242], [5905, 7256], [5896, 7290], [5876, 7301], [5830, 7279], [5729, 7324], [5690, 7397], [5657, 7404], [5644, 7390], [5619, 7423], [5623, 7448], [5611, 7469], [5577, 7487], [5551, 7521], [5579, 7582], [5549, 7589], [5532, 7628]]] } }, { \"type\": \"Feature\", \"id\": \"SV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.55, \"hc-key\": \"sv\", \"hc-a2\": \"SV\", \"name\": \"El Salvador\", \"labelrank\": \"6\", \"country-abbrev\": \"El. S.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"SLV\", \"iso-a2\": \"SV\", \"woe-id\": \"23424807\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1598, 6876], [1569, 6871], [1530, 6886], [1530, 6889], [1552, 6907], [1601, 6889], [1598, 6876]]] } }, { \"type\": \"Feature\", \"id\": \"SL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.48, \"hc-key\": \"sl\", \"hc-a2\": \"SL\", \"name\": \"Sierra Leone\", \"labelrank\": \"4\", \"country-abbrev\": \"S.L.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SLE\", \"iso-a2\": \"SL\", \"woe-id\": \"23424946\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3863, 6683], [3820, 6702], [3809, 6746], [3833, 6770], [3870, 6774], [3899, 6729], [3889, 6708], [3863, 6683]]] } }, { \"type\": \"Feature\", \"id\": \"GW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.55, \"hc-middle-y\": 0.49, \"hc-key\": \"gw\", \"hc-a2\": \"GW\", \"name\": \"Guinea Bissau\", \"labelrank\": \"6\", \"country-abbrev\": \"GnB.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GNB\", \"iso-a2\": \"GW\", \"woe-id\": \"23424929\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3758, 6803], [3732, 6811], [3708, 6844], [3753, 6854], [3797, 6854], [3797, 6825], [3767, 6819], [3758, 6803]]] } }, { \"type\": \"Feature\", \"id\": \"HR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.35, \"hc-middle-y\": 0.59, \"hc-key\": \"hr\", \"hc-a2\": \"HR\", \"name\": \"Croatia\", \"labelrank\": \"6\", \"country-abbrev\": \"Cro.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"HRV\", \"iso-a2\": \"HR\", \"woe-id\": \"23424843\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4753, 7811], [4732, 7826], [4728, 7828], [4734, 7826], [4751, 7816], [4751, 7814], [4753, 7811]]], [[[4607, 7923], [4659, 7921], [4668, 7949], [4694, 7960], [4719, 7940], [4765, 7939], [4769, 7910], [4768, 7900], [4706, 7915], [4672, 7911], [4685, 7876], [4726, 7830], [4699, 7837], [4645, 7875], [4645, 7908], [4619, 7898], [4607, 7923]]]] } }, { \"type\": \"Feature\", \"id\": \"BZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.53, \"hc-middle-y\": 0.50, \"hc-key\": \"bz\", \"hc-a2\": \"BZ\", \"name\": \"Belize\", \"labelrank\": \"6\", \"country-abbrev\": \"Belize\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"BLZ\", \"iso-a2\": \"BZ\", \"woe-id\": \"23424760\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1558, 7009], [1567, 7012], [1583, 7030], [1586, 6984], [1565, 6951], [1556, 6951], [1558, 7009]]] } }, { \"type\": \"Feature\", \"id\": \"ZA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.36, \"hc-middle-y\": 0.70, \"hc-key\": \"za\", \"hc-a2\": \"ZA\", \"name\": \"South Africa\", \"labelrank\": \"2\", \"country-abbrev\": \"S.Af.\", \"subregion\": \"Southern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"ZAF\", \"iso-a2\": \"ZA\", \"woe-id\": \"23424942\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5157, 5668], [5164, 5667], [5180, 5668], [5165, 5613], [5129, 5581], [5106, 5539], [5061, 5492], [5008, 5451], [4942, 5430], [4874, 5436], [4854, 5424], [4787, 5410], [4753, 5441], [4733, 5474], [4746, 5480], [4744, 5511], [4717, 5555], [4693, 5613], [4711, 5630], [4720, 5608], [4771, 5600], [4797, 5617], [4797, 5734], [4822, 5690], [4818, 5666], [4847, 5667], [4878, 5695], [4887, 5716], [4941, 5700], [4963, 5706], [4972, 5734], [5000, 5749], [5006, 5769], [5041, 5799], [5075, 5814], [5104, 5809], [5133, 5807], [5153, 5744], [5152, 5696], [5137, 5702], [5118, 5682], [5128, 5656], [5157, 5668]], [[5040, 5608], [5006, 5579], [5037, 5545], [5078, 5588], [5054, 5613], [5040, 5608]]] } }, { \"type\": \"Feature\", \"id\": \"CF\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.47, \"hc-middle-y\": 0.46, \"hc-key\": \"cf\", \"hc-a2\": \"CF\", \"name\": \"Central African Republic\", \"labelrank\": \"4\", \"country-abbrev\": \"C.A.R.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"CAF\", \"iso-a2\": \"CF\", \"woe-id\": \"23424792\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4882, 6802], [4906, 6770], [4901, 6738], [4921, 6735], [4956, 6696], [4987, 6675], [4988, 6658], [5018, 6628], [4963, 6637], [4872, 6602], [4815, 6609], [4789, 6630], [4754, 6606], [4757, 6581], [4722, 6588], [4696, 6581], [4685, 6545], [4682, 6562], [4654, 6590], [4631, 6657], [4663, 6701], [4702, 6702], [4756, 6716], [4771, 6745], [4810, 6749], [4870, 6804], [4882, 6802]]] } }, { \"type\": \"Feature\", \"id\": \"SD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.38, \"hc-key\": \"sd\", \"hc-a2\": \"SD\", \"name\": \"Sudan\", \"labelrank\": \"3\", \"country-abbrev\": \"Sudan\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SDN\", \"iso-a2\": \"SD\", \"woe-id\": \"-90\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4921, 6735], [4901, 6738], [4906, 6770], [4882, 6802], [4863, 6856], [4859, 6887], [4873, 6898], [4889, 6945], [4916, 6946], [4916, 7061], [4916, 7076], [4945, 7076], [4945, 7138], [5131, 7138], [5299, 7138], [5310, 7102], [5318, 7037], [5350, 7015], [5302, 6987], [5285, 6928], [5288, 6902], [5276, 6855], [5263, 6854], [5238, 6796], [5230, 6801], [5215, 6758], [5189, 6800], [5190, 6840], [5156, 6834], [5166, 6806], [5131, 6768], [5095, 6783], [5060, 6754], [4992, 6760], [4970, 6787], [4948, 6783], [4921, 6735]]] } }, { \"type\": \"Feature\", \"id\": \"CD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.58, \"hc-middle-y\": 0.42, \"hc-key\": \"cd\", \"hc-a2\": \"CD\", \"name\": \"Democratic Republic of the Congo\", \"labelrank\": \"2\", \"country-abbrev\": \"D.R.C.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"COD\", \"iso-a2\": \"CD\", \"woe-id\": \"23424780\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5071, 6380], [5067, 6329], [5079, 6281], [5111, 6236], [5061, 6228], [5045, 6210], [5050, 6201], [5056, 6189], [5046, 6140], [5066, 6112], [5088, 6119], [5088, 6081], [5070, 6080], [5011, 6136], [4996, 6123], [4956, 6134], [4955, 6147], [4925, 6142], [4915, 6157], [4864, 6146], [4862, 6185], [4851, 6201], [4850, 6264], [4783, 6272], [4778, 6242], [4726, 6239], [4708, 6263], [4697, 6304], [4595, 6306], [4573, 6300], [4566, 6309], [4573, 6330], [4592, 6342], [4631, 6353], [4644, 6337], [4685, 6381], [4686, 6416], [4731, 6463], [4740, 6542], [4757, 6581], [4754, 6606], [4789, 6630], [4815, 6609], [4872, 6602], [4963, 6637], [5018, 6628], [5046, 6605], [5088, 6613], [5119, 6582], [5115, 6551], [5132, 6543], [5109, 6523], [5108, 6515], [5093, 6503], [5085, 6476], [5074, 6464], [5084, 6465], [5081, 6452], [5082, 6438], [5075, 6434], [5071, 6429], [5063, 6421], [5061, 6406], [5061, 6400], [5065, 6398], [5072, 6389], [5071, 6380]]] } }, { \"type\": \"Feature\", \"id\": \"KW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.61, \"hc-middle-y\": 0.40, \"hc-key\": \"kw\", \"hc-a2\": \"KW\", \"name\": \"Kuwait\", \"labelrank\": \"6\", \"country-abbrev\": \"Kwt.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"KWT\", \"iso-a2\": \"KW\", \"woe-id\": \"23424870\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5641, 7344], [5612, 7358], [5585, 7362], [5602, 7390], [5627, 7391], [5631, 7370], [5641, 7344]]] } }, { \"type\": \"Feature\", \"id\": \"DE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.34, \"hc-key\": \"de\", \"hc-a2\": \"DE\", \"name\": \"Germany\", \"labelrank\": \"2\", \"country-abbrev\": \"Ger.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"DEU\", \"iso-a2\": \"DE\", \"woe-id\": \"23424829\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4477, 8004], [4477, 8003], [4477, 8003], [4477, 8004]]], [[[4461, 8288], [4466, 8289], [4484, 8285], [4544, 8248], [4575, 8271], [4609, 8275], [4620, 8254], [4626, 8249], [4625, 8248], [4625, 8247], [4621, 8251], [4627, 8239], [4623, 8205], [4639, 8194], [4644, 8126], [4575, 8108], [4571, 8083], [4614, 8045], [4582, 8021], [4591, 7997], [4565, 8005], [4530, 7993], [4492, 7999], [4473, 8009], [4477, 8004], [4455, 8001], [4429, 8001], [4447, 8053], [4392, 8072], [4397, 8085], [4386, 8097], [4393, 8105], [4382, 8122], [4393, 8164], [4412, 8180], [4417, 8221], [4422, 8240], [4458, 8233], [4471, 8247], [4461, 8288]]]] } }, { \"type\": \"Feature\", \"id\": \"BE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.40, \"hc-key\": \"be\", \"hc-a2\": \"BE\", \"name\": \"Belgium\", \"labelrank\": \"2\", \"country-abbrev\": \"Belg.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"BEL\", \"iso-a2\": \"BE\", \"woe-id\": \"23424757\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4382, 8122], [4393, 8105], [4386, 8097], [4374, 8088], [4376, 8075], [4327, 8092], [4279, 8135], [4297, 8145], [4303, 8146], [4317, 8140], [4329, 8146], [4331, 8144], [4330, 8146], [4353, 8150], [4382, 8122]]] } }, { \"type\": \"Feature\", \"id\": \"IE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.48, \"hc-key\": \"ie\", \"hc-a2\": \"IE\", \"name\": \"Ireland\", \"labelrank\": \"3\", \"country-abbrev\": \"Ire.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"IRL\", \"iso-a2\": \"IE\", \"woe-id\": \"23424803\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3989, 8295], [3961, 8270], [3987, 8256], [4018, 8256], [4026, 8209], [4015, 8179], [3979, 8174], [3946, 8154], [3913, 8149], [3895, 8167], [3939, 8222], [3907, 8226], [3912, 8265], [3948, 8262], [3958, 8299], [3989, 8295]]] } }, { \"type\": \"Feature\", \"id\": \"KP\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.32, \"hc-middle-y\": 0.63, \"hc-key\": \"kp\", \"hc-a2\": \"KP\", \"name\": \"North Korea\", \"labelrank\": \"3\", \"country-abbrev\": \"N.K.\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"PRK\", \"iso-a2\": \"KP\", \"woe-id\": \"23424865\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8083, 7807], [8051, 7781], [8053, 7755], [7988, 7717], [7986, 7697], [8013, 7678], [7978, 7667], [7963, 7651], [7931, 7658], [7924, 7646], [7907, 7675], [7927, 7702], [7895, 7730], [7943, 7758], [7962, 7785], [8007, 7774], [8004, 7796], [8053, 7812], [8057, 7831], [8078, 7815], [8081, 7811], [8083, 7807]]] } }, { \"type\": \"Feature\", \"id\": \"KR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.54, \"hc-middle-y\": 0.50, \"hc-key\": \"kr\", \"hc-a2\": \"KR\", \"name\": \"South Korea\", \"labelrank\": \"2\", \"country-abbrev\": \"S.K.\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"KOR\", \"iso-a2\": \"KR\", \"woe-id\": \"23424868\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7963, 7651], [7978, 7667], [8013, 7678], [8042, 7632], [8046, 7573], [8021, 7546], [8004, 7553], [7987, 7536], [7955, 7542], [7963, 7651]]] } }, { \"type\": \"Feature\", \"id\": \"GY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.26, \"hc-middle-y\": 0.07, \"hc-key\": \"gy\", \"hc-a2\": \"GY\", \"name\": \"Guyana\", \"labelrank\": \"4\", \"country-abbrev\": \"Guy.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"GUY\", \"iso-a2\": \"GY\", \"woe-id\": \"23424836\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2423, 6732], [2450, 6715], [2507, 6658], [2505, 6641], [2481, 6602], [2528, 6536], [2509, 6538], [2459, 6514], [2431, 6534], [2423, 6558], [2437, 6595], [2424, 6629], [2401, 6632], [2382, 6653], [2387, 6672], [2415, 6689], [2408, 6709], [2423, 6732]]] } }, { \"type\": \"Feature\", \"id\": \"HN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.71, \"hc-middle-y\": 0.09, \"hc-key\": \"hn\", \"hc-a2\": \"HN\", \"name\": \"Honduras\", \"labelrank\": \"5\", \"country-abbrev\": \"Hond.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"HND\", \"iso-a2\": \"HN\", \"woe-id\": \"23424841\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1586, 6946], [1654, 6955], [1702, 6949], [1737, 6924], [1688, 6919], [1660, 6893], [1630, 6887], [1613, 6864], [1607, 6873], [1598, 6876], [1601, 6889], [1552, 6907], [1558, 6926], [1586, 6946]]] } }, { \"type\": \"Feature\", \"id\": \"MM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.17, \"hc-middle-y\": 0.49, \"hc-key\": \"mm\", \"hc-a2\": \"MM\", \"name\": \"Myanmar\", \"labelrank\": \"3\", \"country-abbrev\": \"Myan.\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"MMR\", \"iso-a2\": \"MM\", \"woe-id\": \"23424763\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6942, 7109], [6953, 7116], [6951, 7137], [6969, 7150], [6973, 7200], [6996, 7195], [7023, 7255], [7024, 7278], [7074, 7306], [7092, 7333], [7098, 7343], [7132, 7313], [7133, 7260], [7103, 7234], [7101, 7195], [7130, 7203], [7138, 7175], [7157, 7171], [7146, 7143], [7170, 7139], [7177, 7120], [7206, 7124], [7193, 7117], [7175, 7086], [7128, 7066], [7113, 7070], [7095, 7030], [7137, 6959], [7119, 6918], [7146, 6886], [7161, 6829], [7134, 6785], [7129, 6870], [7106, 6921], [7102, 6963], [7088, 6985], [7036, 6946], [7000, 6955], [7012, 7001], [6993, 7058], [6965, 7077], [6942, 7109]]] } }, { \"type\": \"Feature\", \"id\": \"GA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.36, \"hc-middle-y\": 0.65, \"hc-key\": \"ga\", \"hc-a2\": \"GA\", \"name\": \"Gabon\", \"labelrank\": \"4\", \"country-abbrev\": \"Gabon\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GAB\", \"iso-a2\": \"GA\", \"woe-id\": \"23424822\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4495, 6508], [4540, 6508], [4540, 6543], [4541, 6547], [4599, 6542], [4597, 6515], [4633, 6506], [4614, 6473], [4634, 6461], [4622, 6405], [4573, 6423], [4547, 6410], [4555, 6369], [4534, 6363], [4479, 6425], [4462, 6461], [4479, 6467], [4480, 6495], [4495, 6508]]] } }, { \"type\": \"Feature\", \"id\": \"GQ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.53, \"hc-middle-y\": 0.55, \"hc-key\": \"gq\", \"hc-a2\": \"GQ\", \"name\": \"Equatorial Guinea\", \"labelrank\": \"4\", \"country-abbrev\": \"Eq. G.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GNQ\", \"iso-a2\": \"GQ\", \"woe-id\": \"23424804\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4540, 6543], [4540, 6508], [4495, 6508], [4481, 6514], [4495, 6548], [4500, 6543], [4540, 6543]]] } }, { \"type\": \"Feature\", \"id\": \"NI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.84, \"hc-middle-y\": 0.50, \"hc-key\": \"ni\", \"hc-a2\": \"NI\", \"name\": \"Nicaragua\", \"labelrank\": \"5\", \"country-abbrev\": \"Nic.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"NIC\", \"iso-a2\": \"NI\", \"woe-id\": \"23424915\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1661, 6807], [1603, 6860], [1613, 6864], [1630, 6887], [1660, 6893], [1688, 6919], [1737, 6924], [1715, 6816], [1722, 6802], [1701, 6804], [1661, 6807]]] } }, { \"type\": \"Feature\", \"id\": \"LV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.05, \"hc-middle-y\": 0.36, \"hc-key\": \"lv\", \"hc-a2\": \"LV\", \"name\": \"Latvia\", \"labelrank\": \"5\", \"country-abbrev\": \"Lat.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"LVA\", \"iso-a2\": \"LV\", \"woe-id\": \"23424874\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5016, 8399], [5024, 8370], [5039, 8340], [5023, 8325], [4993, 8320], [4942, 8353], [4929, 8345], [4860, 8352], [4829, 8337], [4829, 8370], [4849, 8401], [4875, 8408], [4907, 8375], [4927, 8386], [4925, 8413], [4954, 8422], [4990, 8398], [5016, 8399]]] } }, { \"type\": \"Feature\", \"id\": \"UG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.16, \"hc-middle-y\": 0.56, \"hc-key\": \"ug\", \"hc-a2\": \"UG\", \"name\": \"Uganda\", \"labelrank\": \"3\", \"country-abbrev\": \"Uga.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"UGA\", \"iso-a2\": \"UG\", \"woe-id\": \"23424974\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5148, 6449], [5148, 6450], [5149, 6449], [5148, 6449]]], [[[5082, 6438], [5081, 6452], [5084, 6465], [5091, 6474], [5085, 6476], [5093, 6503], [5108, 6515], [5136, 6535], [5132, 6543], [5115, 6551], [5119, 6582], [5198, 6589], [5212, 6603], [5240, 6552], [5242, 6527], [5213, 6486], [5171, 6483], [5147, 6449], [5119, 6449], [5108, 6447], [5092, 6435], [5082, 6438]]]] } }, { \"type\": \"Feature\", \"id\": \"MW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.16, \"hc-middle-y\": 0.29, \"hc-key\": \"mw\", \"hc-a2\": \"MW\", \"name\": \"Malawi\", \"labelrank\": \"6\", \"country-abbrev\": \"Mal.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MWI\", \"iso-a2\": \"MW\", \"woe-id\": \"23424889\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5240, 6141], [5240, 6141], [5240, 6141], [5240, 6141]]], [[[5235, 6145], [5235, 6146], [5234, 6146], [5235, 6145], [5235, 6145]]], [[[5222, 6192], [5219, 6195], [5219, 6195], [5222, 6192]]], [[[5216, 6197], [5215, 6198], [5215, 6197], [5216, 6197]]], [[[5181, 6201], [5195, 6195], [5210, 6191], [5223, 6133], [5222, 6082], [5238, 6078], [5268, 6044], [5266, 6002], [5247, 5987], [5220, 6006], [5223, 6052], [5202, 6045], [5189, 6063], [5178, 6072], [5194, 6107], [5190, 6157], [5203, 6166], [5181, 6201]]]] } }, { \"type\": \"Feature\", \"id\": \"AM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.10, \"hc-middle-y\": 0.12, \"hc-key\": \"am\", \"hc-a2\": \"AM\", \"name\": \"Armenia\", \"labelrank\": \"6\", \"country-abbrev\": \"Arm.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ARM\", \"iso-a2\": \"AM\", \"woe-id\": \"23424743\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5584, 7687], [5580, 7689], [5573, 7687], [5563, 7710], [5533, 7716], [5500, 7730], [5493, 7765], [5515, 7769], [5539, 7771], [5568, 7734], [5558, 7727], [5584, 7687]], [[5540, 7763], [5540, 7764], [5538, 7764], [5539, 7762], [5540, 7763]], [[5546, 7760], [5545, 7761], [5545, 7761], [5545, 7760], [5546, 7760]], [[5554, 7747], [5555, 7747], [5556, 7749], [5554, 7749], [5554, 7747]]] } }, { \"type\": \"Feature\", \"id\": \"SX\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.76, \"hc-middle-y\": 0.53, \"hc-key\": \"sx\", \"hc-a2\": \"SX\", \"name\": \"Somaliland\", \"labelrank\": \"5\", \"country-abbrev\": \"Solnd.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"-99\", \"iso-a2\": \"SX\", \"woe-id\": \"-99\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5487, 6819], [5518, 6788], [5562, 6801], [5582, 6795], [5611, 6810], [5656, 6812], [5656, 6758], [5628, 6715], [5598, 6715], [5510, 6744], [5470, 6793], [5478, 6804], [5487, 6819]]] } }, { \"type\": \"Feature\", \"id\": \"TM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.40, \"hc-middle-y\": 0.42, \"hc-key\": \"tm\", \"hc-a2\": \"TM\", \"name\": \"Turkmenistan\", \"labelrank\": \"4\", \"country-abbrev\": \"Turkm.\", \"subregion\": \"Central Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"TKM\", \"iso-a2\": \"TM\", \"woe-id\": \"23424972\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5898, 7794], [5921, 7785], [5915, 7802], [5943, 7825], [5981, 7807], [5987, 7775], [6043, 7761], [6057, 7726], [6151, 7665], [6179, 7658], [6178, 7635], [6156, 7642], [6126, 7626], [6117, 7598], [6052, 7560], [6022, 7576], [6020, 7608], [5995, 7610], [5949, 7646], [5906, 7656], [5902, 7666], [5849, 7660], [5804, 7634], [5806, 7688], [5794, 7724], [5769, 7728], [5775, 7760], [5798, 7748], [5828, 7765], [5803, 7799], [5792, 7800], [5792, 7800], [5812, 7808], [5851, 7770], [5865, 7773], [5896, 7770], [5898, 7794]]], [[[5780, 7795], [5782, 7800], [5792, 7800], [5792, 7800], [5780, 7795], [5780, 7795], [5780, 7795]]], [[[5780, 7795], [5771, 7775], [5760, 7788], [5780, 7795], [5780, 7795], [5780, 7795]]]] } }, { \"type\": \"Feature\", \"id\": \"ZM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.36, \"hc-middle-y\": 0.58, \"hc-key\": \"zm\", \"hc-a2\": \"ZM\", \"name\": \"Zambia\", \"labelrank\": \"3\", \"country-abbrev\": \"Zambia\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"ZMB\", \"iso-a2\": \"ZM\", \"woe-id\": \"23425003\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5050, 6201], [5069, 6222], [5061, 6228], [5111, 6236], [5125, 6219], [5129, 6225], [5153, 6211], [5181, 6201], [5203, 6166], [5190, 6157], [5194, 6107], [5178, 6072], [5189, 6063], [5101, 6034], [5106, 6014], [5060, 6001], [5058, 5987], [5038, 5977], [5022, 5969], [5006, 5944], [4996, 5940], [4954, 5949], [4923, 5958], [4898, 5953], [4856, 5998], [4856, 6093], [4916, 6093], [4915, 6157], [4925, 6142], [4955, 6147], [4956, 6134], [4996, 6123], [5011, 6136], [5070, 6080], [5088, 6081], [5088, 6119], [5066, 6112], [5046, 6140], [5056, 6189], [5050, 6201]]] } }, { \"type\": \"Feature\", \"id\": \"NC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.56, \"hc-middle-y\": 0.71, \"hc-key\": \"nc\", \"hc-a2\": \"NC\", \"name\": \"Northern Cyprus\", \"labelrank\": \"6\", \"country-abbrev\": \"N. Cy.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"-99\", \"iso-a2\": \"NC\", \"woe-id\": \"-90\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5210, 7558], [5206, 7556], [5203, 7556], [5196, 7562], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5231, 7579], [5213, 7557], [5210, 7558]]], [[[5171, 7561], [5173, 7562], [5172, 7561], [5171, 7561]]]] } }, { \"type\": \"Feature\", \"id\": \"MR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.61, \"hc-middle-y\": 0.63, \"hc-key\": \"mr\", \"hc-a2\": \"MR\", \"name\": \"Mauritania\", \"labelrank\": \"3\", \"country-abbrev\": \"Mrt.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MRT\", \"iso-a2\": \"MR\", \"woe-id\": \"23424896\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3946, 7304], [4040, 7245], [4061, 7231], [4008, 7231], [4040, 6939], [3886, 6937], [3856, 6941], [3840, 6917], [3779, 6974], [3719, 6968], [3713, 6949], [3728, 7014], [3714, 7058], [3723, 7083], [3698, 7100], [3701, 7117], [3818, 7117], [3818, 7170], [3847, 7183], [3847, 7263], [3946, 7263], [3946, 7304]]] } }, { \"type\": \"Feature\", \"id\": \"DZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.63, \"hc-middle-y\": 0.50, \"hc-key\": \"dz\", \"hc-a2\": \"DZ\", \"name\": \"Algeria\", \"labelrank\": \"3\", \"country-abbrev\": \"Alg.\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"DZA\", \"iso-a2\": \"DZ\", \"woe-id\": \"23424740\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4061, 7231], [4040, 7245], [3946, 7304], [3946, 7316], [3946, 7348], [3977, 7371], [4033, 7378], [4096, 7414], [4095, 7444], [4129, 7460], [4167, 7459], [4173, 7473], [4154, 7497], [4151, 7547], [4138, 7558], [4235, 7605], [4291, 7616], [4346, 7619], [4359, 7611], [4423, 7626], [4459, 7621], [4452, 7604], [4448, 7543], [4426, 7518], [4451, 7473], [4472, 7458], [4486, 7398], [4496, 7363], [4496, 7279], [4483, 7267], [4502, 7227], [4546, 7209], [4559, 7185], [4426, 7103], [4376, 7059], [4329, 7050], [4296, 7050], [4299, 7070], [4260, 7083], [4238, 7110], [4061, 7231]]] } }, { \"type\": \"Feature\", \"id\": \"LT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.27, \"hc-middle-y\": 0.06, \"hc-key\": \"lt\", \"hc-a2\": \"LT\", \"name\": \"Lithuania\", \"labelrank\": \"5\", \"country-abbrev\": \"Lith.\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"LTU\", \"iso-a2\": \"LT\", \"woe-id\": \"23424875\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4835, 8303], [4832, 8321], [4829, 8337], [4860, 8352], [4929, 8345], [4942, 8353], [4993, 8320], [4998, 8305], [4972, 8290], [4960, 8264], [4927, 8247], [4901, 8249], [4900, 8258], [4880, 8266], [4881, 8288], [4835, 8303]]], [[[4825, 8304], [4830, 8313], [4827, 8304], [4825, 8304]]]] } }, { \"type\": \"Feature\", \"id\": \"ET\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.58, \"hc-key\": \"et\", \"hc-a2\": \"ET\", \"name\": \"Ethiopia\", \"labelrank\": \"2\", \"country-abbrev\": \"Eth.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"ETH\", \"iso-a2\": \"ET\", \"woe-id\": \"23424808\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5444, 6813], [5441, 6810], [5444, 6807], [5449, 6802], [5478, 6804], [5470, 6793], [5510, 6744], [5598, 6715], [5628, 6715], [5538, 6624], [5509, 6625], [5447, 6596], [5414, 6605], [5377, 6579], [5335, 6585], [5297, 6609], [5270, 6615], [5235, 6675], [5205, 6705], [5185, 6709], [5190, 6729], [5211, 6728], [5215, 6758], [5230, 6801], [5238, 6796], [5263, 6854], [5276, 6855], [5288, 6902], [5328, 6921], [5416, 6897], [5462, 6848], [5443, 6820], [5444, 6813]]] } }, { \"type\": \"Feature\", \"id\": \"ER\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.29, \"hc-middle-y\": 0.05, \"hc-key\": \"er\", \"hc-a2\": \"ER\", \"name\": \"Eritrea\", \"labelrank\": \"4\", \"country-abbrev\": \"Erit.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"ERI\", \"iso-a2\": \"ER\", \"woe-id\": \"23424806\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5462, 6848], [5416, 6897], [5328, 6921], [5288, 6902], [5285, 6928], [5302, 6987], [5350, 7015], [5382, 6928], [5426, 6913], [5484, 6855], [5471, 6845], [5462, 6848]]] } }, { \"type\": \"Feature\", \"id\": \"GH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.13, \"hc-middle-y\": 0.77, \"hc-key\": \"gh\", \"hc-a2\": \"GH\", \"name\": \"Ghana\", \"labelrank\": \"3\", \"country-abbrev\": \"Ghana\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GHA\", \"iso-a2\": \"GH\", \"woe-id\": \"23424824\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4239, 6659], [4142, 6618], [4111, 6629], [4112, 6629], [4116, 6629], [4120, 6631], [4108, 6681], [4130, 6721], [4124, 6759], [4122, 6804], [4199, 6808], [4215, 6781], [4219, 6681], [4239, 6659]]] } }, { \"type\": \"Feature\", \"id\": \"SI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.57, \"hc-key\": \"si\", \"hc-a2\": \"SI\", \"name\": \"Slovenia\", \"labelrank\": \"6\", \"country-abbrev\": \"Slo.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"SVN\", \"iso-a2\": \"SI\", \"woe-id\": \"23424945\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4607, 7923], [4607, 7925], [4611, 7927], [4601, 7952], [4611, 7961], [4635, 7956], [4682, 7974], [4687, 7974], [4694, 7960], [4668, 7949], [4659, 7921], [4607, 7923]]] } }, { \"type\": \"Feature\", \"id\": \"GT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.44, \"hc-middle-y\": 0.87, \"hc-key\": \"gt\", \"hc-a2\": \"GT\", \"name\": \"Guatemala\", \"labelrank\": \"3\", \"country-abbrev\": \"Guat.\", \"subregion\": \"Central America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"GTM\", \"iso-a2\": \"GT\", \"woe-id\": \"23424834\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1565, 6951], [1574, 6947], [1586, 6946], [1558, 6926], [1552, 6907], [1530, 6889], [1530, 6886], [1494, 6893], [1466, 6911], [1482, 6956], [1522, 6966], [1491, 6992], [1504, 7009], [1558, 7009], [1556, 6951], [1565, 6951]]] } }, { \"type\": \"Feature\", \"id\": \"BA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.48, \"hc-key\": \"ba\", \"hc-a2\": \"BA\", \"name\": \"Bosnia and Herzegovina\", \"labelrank\": \"5\", \"country-abbrev\": \"B.H.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"BIH\", \"iso-a2\": \"BA\", \"woe-id\": \"23424761\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4728, 7828], [4725, 7830], [4726, 7830], [4685, 7876], [4672, 7911], [4706, 7915], [4768, 7900], [4779, 7901], [4774, 7851], [4752, 7832], [4751, 7816], [4734, 7826], [4728, 7828]]] } }, { \"type\": \"Feature\", \"id\": \"JO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.85, \"hc-key\": \"jo\", \"hc-a2\": \"JO\", \"name\": \"Jordan\", \"labelrank\": \"4\", \"country-abbrev\": \"Jord.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"JOR\", \"iso-a2\": \"JO\", \"woe-id\": \"23424860\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5255, 7426], [5258, 7429], [5255, 7431], [5254, 7432], [5255, 7434], [5259, 7434], [5259, 7448], [5259, 7477], [5265, 7480], [5296, 7466], [5355, 7501], [5363, 7472], [5366, 7460], [5301, 7439], [5331, 7407], [5274, 7365], [5241, 7370], [5243, 7376], [5241, 7377], [5247, 7405], [5255, 7426]]] } }, { \"type\": \"Feature\", \"id\": \"SY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.25, \"hc-middle-y\": 0.54, \"hc-key\": \"sy\", \"hc-a2\": \"SY\", \"name\": \"Syria\", \"labelrank\": \"3\", \"country-abbrev\": \"Syria\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"SYR\", \"iso-a2\": \"SY\", \"woe-id\": \"23424956\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5355, 7501], [5296, 7466], [5265, 7480], [5269, 7487], [5267, 7502], [5290, 7529], [5271, 7544], [5270, 7569], [5270, 7586], [5291, 7617], [5338, 7620], [5384, 7614], [5457, 7634], [5461, 7627], [5432, 7606], [5427, 7548], [5412, 7533], [5355, 7501]]] } }, { \"type\": \"Feature\", \"id\": \"MC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.67, \"hc-key\": \"mc\", \"hc-a2\": \"MC\", \"name\": \"Monaco\", \"labelrank\": \"6\", \"country-abbrev\": \"Mco.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"MCO\", \"iso-a2\": \"MC\", \"woe-id\": \"23424892\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4425, 7859], [4424, 7858], [4423, 7858], [4424, 7860], [4425, 7859]]] } }, { \"type\": \"Feature\", \"id\": \"AL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.49, \"hc-key\": \"al\", \"hc-a2\": \"AL\", \"name\": \"Albania\", \"labelrank\": \"6\", \"country-abbrev\": \"Alb.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ALB\", \"iso-a2\": \"AL\", \"woe-id\": \"23424742\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4826, 7757], [4826, 7757], [4825, 7758], [4826, 7757]]], [[[4779, 7800], [4779, 7805], [4780, 7808], [4789, 7820], [4799, 7816], [4812, 7804], [4814, 7792], [4811, 7781], [4816, 7764], [4817, 7758], [4819, 7758], [4822, 7758], [4825, 7758], [4825, 7757], [4826, 7756], [4826, 7756], [4824, 7753], [4826, 7754], [4826, 7753], [4828, 7750], [4827, 7750], [4828, 7750], [4809, 7720], [4798, 7715], [4777, 7749], [4779, 7791], [4778, 7795], [4779, 7800]]], [[[4779, 7807], [4779, 7807], [4779, 7806], [4779, 7807]]]] } }, { \"type\": \"Feature\", \"id\": \"UY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.81, \"hc-middle-y\": 0.63, \"hc-key\": \"uy\", \"hc-a2\": \"UY\", \"name\": \"Uruguay\", \"labelrank\": \"4\", \"country-abbrev\": \"Ury.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"URY\", \"iso-a2\": \"UY\", \"woe-id\": \"23424979\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2626, 5480], [2612, 5465], [2615, 5450], [2615, 5447], [2620, 5444], [2608, 5422], [2573, 5404], [2537, 5404], [2487, 5420], [2471, 5437], [2477, 5487], [2477, 5505], [2494, 5561], [2517, 5563], [2542, 5531], [2554, 5539], [2626, 5480]]] } }, { \"type\": \"Feature\", \"id\": \"CNM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.11, \"hc-key\": \"cnm\", \"hc-a2\": \"CN\", \"name\": \"Cyprus No Mans Area\", \"labelrank\": \"9\", \"country-abbrev\": null, \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"-99\", \"iso-a2\": null, \"woe-id\": \"-99\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[5213, 7557], [5214, 7557], [5213, 7557], [5210, 7557], [5210, 7558], [5213, 7557]]], [[[5171, 7561], [5171, 7561], [5172, 7561], [5173, 7562], [5173, 7562], [5172, 7560], [5171, 7561]]], [[[5175, 7561], [5174, 7561], [5175, 7561], [5175, 7561], [5175, 7561], [5175, 7561]]], [[[5203, 7556], [5205, 7555], [5204, 7555], [5196, 7561], [5175, 7561], [5175, 7561], [5196, 7562], [5203, 7556]]]] } }, { \"type\": \"Feature\", \"id\": \"MN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.53, \"hc-key\": \"mn\", \"hc-a2\": \"MN\", \"name\": \"Mongolia\", \"labelrank\": \"3\", \"country-abbrev\": \"Mong.\", \"subregion\": \"Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"MNG\", \"iso-a2\": \"MN\", \"woe-id\": \"23424887\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7691, 8008], [7702, 8011], [7698, 8015], [7722, 8015], [7762, 7975], [7756, 7963], [7714, 7968], [7664, 7953], [7637, 7921], [7603, 7919], [7575, 7895], [7528, 7908], [7511, 7885], [7526, 7857], [7453, 7813], [7372, 7807], [7326, 7787], [7282, 7788], [7232, 7803], [7220, 7815], [7064, 7822], [7034, 7879], [6979, 7903], [6901, 7912], [6906, 7963], [6885, 8003], [6847, 8016], [6814, 8039], [6810, 8061], [6945, 8127], [7001, 8115], [7011, 8094], [7093, 8083], [7121, 8113], [7106, 8132], [7139, 8176], [7237, 8144], [7239, 8117], [7280, 8098], [7330, 8111], [7407, 8090], [7425, 8067], [7490, 8060], [7559, 8077], [7596, 8104], [7628, 8089], [7667, 8086], [7632, 8021], [7642, 8005], [7691, 8008]]] } }, { \"type\": \"Feature\", \"id\": \"RW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.56, \"hc-key\": \"rw\", \"hc-a2\": \"RW\", \"name\": \"Rwanda\", \"labelrank\": \"3\", \"country-abbrev\": \"Rwa.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"RWA\", \"iso-a2\": \"RW\", \"woe-id\": \"23424937\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5065, 6398], [5061, 6400], [5061, 6406], [5075, 6419], [5071, 6429], [5075, 6434], [5082, 6438], [5092, 6435], [5108, 6447], [5119, 6432], [5111, 6408], [5091, 6400], [5065, 6398]]] } }, { \"type\": \"Feature\", \"id\": \"SO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.74, \"hc-key\": \"so\", \"hc-a2\": \"SO\", \"name\": \"Somalia\", \"labelrank\": \"6\", \"country-abbrev\": \"Som.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SOM\", \"iso-a2\": \"SO\", \"woe-id\": \"-90\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5447, 6596], [5509, 6625], [5538, 6624], [5628, 6715], [5656, 6758], [5656, 6812], [5726, 6829], [5713, 6758], [5627, 6610], [5570, 6551], [5494, 6497], [5437, 6429], [5420, 6453], [5420, 6562], [5447, 6596]]] } }, { \"type\": \"Feature\", \"id\": \"BO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.59, \"hc-key\": \"bo\", \"hc-a2\": \"BO\", \"name\": \"Bolivia\", \"labelrank\": \"3\", \"country-abbrev\": \"Bolivia\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"BOL\", \"iso-a2\": \"BO\", \"woe-id\": \"23424762\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[2153, 5996], [2153, 6001], [2157, 5996], [2155, 5997], [2153, 5996]]], [[[2141, 5957], [2137, 5964], [2155, 5986], [2169, 5993], [2145, 6017], [2160, 6058], [2153, 6073], [2166, 6108], [2139, 6155], [2177, 6154], [2226, 6186], [2262, 6192], [2263, 6149], [2293, 6110], [2332, 6104], [2369, 6077], [2409, 6069], [2419, 5995], [2469, 5993], [2471, 5965], [2496, 5937], [2478, 5876], [2450, 5903], [2371, 5892], [2356, 5864], [2345, 5812], [2307, 5819], [2295, 5792], [2287, 5813], [2238, 5826], [2210, 5794], [2189, 5794], [2180, 5842], [2163, 5868], [2173, 5898], [2157, 5913], [2141, 5957]]]] } }, { \"type\": \"Feature\", \"id\": \"CM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.81, \"hc-key\": \"cm\", \"hc-a2\": \"CM\", \"name\": \"Cameroon\", \"labelrank\": \"3\", \"country-abbrev\": \"Cam.\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"CMR\", \"iso-a2\": \"CM\", \"woe-id\": \"23424785\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4599, 6542], [4541, 6547], [4540, 6543], [4500, 6543], [4495, 6548], [4490, 6593], [4459, 6621], [4466, 6651], [4518, 6689], [4540, 6669], [4567, 6725], [4639, 6839], [4621, 6866], [4629, 6866], [4627, 6861], [4634, 6863], [4653, 6820], [4651, 6798], [4669, 6774], [4625, 6774], [4618, 6764], [4655, 6729], [4663, 6701], [4631, 6657], [4654, 6590], [4682, 6562], [4685, 6545], [4684, 6530], [4636, 6544], [4599, 6542]]], [[[4631, 6866], [4631, 6866], [4630, 6866], [4631, 6866]]]] } }, { \"type\": \"Feature\", \"id\": \"CG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.15, \"hc-middle-y\": 0.78, \"hc-key\": \"cg\", \"hc-a2\": \"CG\", \"name\": \"Republic of Congo\", \"labelrank\": \"4\", \"country-abbrev\": \"Rep. Congo\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"COG\", \"iso-a2\": \"CG\", \"woe-id\": \"23424779\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4599, 6542], [4636, 6544], [4684, 6530], [4685, 6545], [4696, 6581], [4722, 6588], [4757, 6581], [4740, 6542], [4731, 6463], [4686, 6416], [4685, 6381], [4644, 6337], [4631, 6353], [4592, 6342], [4583, 6349], [4560, 6331], [4554, 6344], [4534, 6363], [4555, 6369], [4547, 6410], [4573, 6423], [4622, 6405], [4634, 6461], [4614, 6473], [4633, 6506], [4597, 6515], [4599, 6542]]] } }, { \"type\": \"Feature\", \"id\": \"EH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.41, \"hc-middle-y\": 0.71, \"hc-key\": \"eh\", \"hc-a2\": \"EH\", \"name\": \"Western Sahara\", \"labelrank\": \"7\", \"country-abbrev\": \"W. Sah.\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"ESH\", \"iso-a2\": \"EH\", \"woe-id\": \"23424990\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3698, 7100], [3696, 7103], [3699, 7120], [3764, 7121], [3782, 7148], [3788, 7182], [3835, 7226], [3847, 7264], [3866, 7291], [3915, 7290], [3943, 7298], [3946, 7316], [3946, 7304], [3946, 7263], [3847, 7263], [3847, 7183], [3818, 7170], [3818, 7117], [3701, 7117], [3698, 7100]]] } }, { \"type\": \"Feature\", \"id\": \"RS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.42, \"hc-middle-y\": 0.52, \"hc-key\": \"rs\", \"hc-a2\": \"RS\", \"name\": \"Republic of Serbia\", \"labelrank\": \"5\", \"country-abbrev\": \"Serb.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"SRB\", \"iso-a2\": \"RS\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4774, 7851], [4779, 7901], [4768, 7900], [4769, 7910], [4765, 7939], [4784, 7948], [4805, 7946], [4842, 7910], [4839, 7897], [4877, 7877], [4867, 7861], [4885, 7836], [4867, 7808], [4855, 7808], [4844, 7805], [4850, 7820], [4820, 7842], [4808, 7826], [4786, 7839], [4774, 7851]]] } }, { \"type\": \"Feature\", \"id\": \"ME\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.42, \"hc-middle-y\": 0.47, \"hc-key\": \"me\", \"hc-a2\": \"ME\", \"name\": \"Montenegro\", \"labelrank\": \"6\", \"country-abbrev\": \"Mont.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"MNE\", \"iso-a2\": \"ME\", \"woe-id\": \"20069817\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4774, 7851], [4786, 7839], [4808, 7826], [4798, 7822], [4799, 7816], [4789, 7820], [4780, 7808], [4779, 7807], [4779, 7806], [4772, 7806], [4779, 7800], [4778, 7795], [4779, 7791], [4761, 7806], [4753, 7811], [4751, 7814], [4751, 7816], [4752, 7832], [4774, 7851]]] } }, { \"type\": \"Feature\", \"id\": \"TG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.76, \"hc-middle-y\": 0.81, \"hc-key\": \"tg\", \"hc-a2\": \"TG\", \"name\": \"Togo\", \"labelrank\": \"6\", \"country-abbrev\": \"Togo\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"TGO\", \"iso-a2\": \"TG\", \"woe-id\": \"23424965\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4231, 6804], [4252, 6746], [4252, 6662], [4246, 6661], [4239, 6659], [4219, 6681], [4215, 6781], [4199, 6808], [4218, 6804], [4231, 6804]]] } }, { \"type\": \"Feature\", \"id\": \"LA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.88, \"hc-middle-y\": 0.79, \"hc-key\": \"la\", \"hc-a2\": \"LA\", \"name\": \"Laos\", \"labelrank\": \"4\", \"country-abbrev\": \"Laos\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"LAO\", \"iso-a2\": \"LA\", \"woe-id\": \"23424872\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[7395, 6915], [7374, 6904], [7325, 6904], [7338, 6946], [7313, 6970], [7315, 6996], [7290, 7025], [7272, 7029], [7249, 7010], [7233, 7022], [7205, 6999], [7209, 7061], [7186, 7062], [7175, 7086], [7193, 7117], [7206, 7124], [7222, 7111], [7217, 7146], [7234, 7150], [7260, 7125], [7264, 7103], [7292, 7106], [7319, 7079], [7286, 7055], [7311, 7039], [7365, 6984], [7399, 6932], [7395, 6915]]] } }, { \"type\": \"Feature\", \"id\": \"AF\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.37, \"hc-middle-y\": 0.52, \"hc-key\": \"af\", \"hc-a2\": \"AF\", \"name\": \"Afghanistan\", \"labelrank\": \"3\", \"country-abbrev\": \"Afg.\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"AFG\", \"iso-a2\": \"AF\", \"woe-id\": \"23424739\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6426, 7631], [6411, 7627], [6416, 7624], [6357, 7617], [6316, 7590], [6330, 7562], [6313, 7524], [6281, 7523], [6290, 7499], [6268, 7491], [6261, 7454], [6226, 7450], [6173, 7421], [6168, 7385], [6106, 7371], [6058, 7372], [6010, 7386], [6038, 7418], [6035, 7435], [6009, 7439], [6001, 7491], [6022, 7576], [6052, 7560], [6117, 7598], [6126, 7626], [6156, 7642], [6178, 7635], [6200, 7629], [6215, 7629], [6259, 7626], [6285, 7641], [6299, 7669], [6329, 7653], [6329, 7613], [6379, 7639], [6426, 7631]]] } }, { \"type\": \"Feature\", \"id\": \"UA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.70, \"hc-middle-y\": 0.46, \"hc-key\": \"ua\", \"hc-a2\": \"UA\", \"name\": \"Ukraine\", \"labelrank\": \"3\", \"country-abbrev\": \"Ukr.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"UKR\", \"iso-a2\": \"UA\", \"woe-id\": \"23424976\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4861, 8032], [4866, 8042], [4873, 8057], [4876, 8075], [4919, 8114], [4905, 8152], [4928, 8166], [4969, 8168], [5013, 8155], [5074, 8146], [5110, 8154], [5122, 8174], [5147, 8175], [5207, 8185], [5225, 8161], [5218, 8142], [5245, 8140], [5262, 8106], [5315, 8109], [5367, 8087], [5395, 8064], [5382, 8045], [5384, 8010], [5356, 8011], [5338, 7983], [5269, 7966], [5237, 7948], [5260, 7909], [5212, 7882], [5179, 7928], [5206, 7939], [5146, 7950], [5163, 7959], [5129, 7965], [5089, 7927], [5084, 7913], [5059, 7914], [5041, 7922], [5063, 7958], [5097, 7955], [5068, 7999], [5072, 8011], [5028, 8033], [4994, 8026], [4954, 8013], [4883, 8014], [4875, 8020], [4861, 8032]], [[5098, 7955], [5107, 7945], [5109, 7947], [5100, 7956], [5098, 7955]], [[5213, 7945], [5242, 7929], [5237, 7943], [5218, 7952], [5213, 7945]]] } }, { \"type\": \"Feature\", \"id\": \"SK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.21, \"hc-middle-y\": 0.52, \"hc-key\": \"sk\", \"hc-a2\": \"SK\", \"name\": \"Slovakia\", \"labelrank\": \"6\", \"country-abbrev\": \"Svk.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"SVK\", \"iso-a2\": \"SK\", \"woe-id\": \"23424877\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4873, 8057], [4866, 8042], [4861, 8032], [4812, 8036], [4795, 8021], [4733, 8007], [4713, 8017], [4704, 8030], [4707, 8039], [4741, 8058], [4763, 8074], [4852, 8069], [4873, 8057]]] } }, { \"type\": \"Feature\", \"id\": \"JK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.40, \"hc-middle-y\": 0.63, \"hc-key\": \"jk\", \"hc-a2\": \"JK\", \"name\": \"Siachen Glacier\", \"labelrank\": \"5\", \"country-abbrev\": \"Siachen\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"-99\", \"iso-a2\": \"JK\", \"woe-id\": \"23424928\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6513, 7572], [6490, 7559], [6482, 7577], [6500, 7571], [6513, 7572]]] } }, { \"type\": \"Feature\", \"id\": \"BG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.76, \"hc-middle-y\": 0.51, \"hc-key\": \"bg\", \"hc-a2\": \"BG\", \"name\": \"Bulgaria\", \"labelrank\": \"4\", \"country-abbrev\": \"Bulg.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"BGR\", \"iso-a2\": \"BG\", \"woe-id\": \"23424771\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5052, 7859], [5026, 7812], [5035, 7796], [5007, 7799], [4985, 7786], [4953, 7770], [4931, 7781], [4884, 7773], [4887, 7787], [4867, 7808], [4885, 7836], [4867, 7861], [4877, 7877], [4896, 7864], [4957, 7856], [5006, 7875], [5052, 7859]]] } }, { \"type\": \"Feature\", \"id\": \"QA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.36, \"hc-middle-y\": 0.46, \"hc-key\": \"qa\", \"hc-a2\": \"QA\", \"name\": \"Qatar\", \"labelrank\": \"5\", \"country-abbrev\": \"Qatar\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"QAT\", \"iso-a2\": \"QA\", \"woe-id\": \"23424930\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5712, 7224], [5710, 7247], [5735, 7259], [5724, 7220], [5717, 7218], [5712, 7224]]] } }, { \"type\": \"Feature\", \"id\": \"LI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.61, \"hc-middle-y\": 0.53, \"hc-key\": \"li\", \"hc-a2\": \"LI\", \"name\": \"Liechtenstein\", \"labelrank\": \"6\", \"country-abbrev\": \"Liech.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"LIE\", \"iso-a2\": \"LI\", \"woe-id\": \"23424879\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4487, 7989], [4489, 7983], [4488, 7981], [4485, 7981], [4487, 7989]]] } }, { \"type\": \"Feature\", \"id\": \"AT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.62, \"hc-key\": \"at\", \"hc-a2\": \"AT\", \"name\": \"Austria\", \"labelrank\": \"4\", \"country-abbrev\": \"Aust.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"AUT\", \"iso-a2\": \"AT\", \"woe-id\": \"23424750\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4488, 7981], [4489, 7983], [4487, 7989], [4490, 7994], [4488, 7998], [4491, 7997], [4492, 7999], [4530, 7993], [4565, 8005], [4591, 7997], [4582, 8021], [4614, 8045], [4640, 8039], [4648, 8053], [4707, 8039], [4704, 8030], [4713, 8017], [4696, 8007], [4682, 7974], [4635, 7956], [4611, 7961], [4572, 7967], [4566, 7982], [4514, 7974], [4504, 7973], [4488, 7981]]] } }, { \"type\": \"Feature\", \"id\": \"SZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.51, \"hc-middle-y\": 0.45, \"hc-key\": \"sz\", \"hc-a2\": \"SZ\", \"name\": \"Swaziland\", \"labelrank\": \"4\", \"country-abbrev\": \"Swz.\", \"subregion\": \"Southern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SWZ\", \"iso-a2\": \"SZ\", \"woe-id\": \"23424993\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5152, 5696], [5155, 5685], [5157, 5668], [5128, 5656], [5118, 5682], [5137, 5702], [5152, 5696]]] } }, { \"type\": \"Feature\", \"id\": \"HU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.27, \"hc-middle-y\": 0.61, \"hc-key\": \"hu\", \"hc-a2\": \"HU\", \"name\": \"Hungary\", \"labelrank\": \"5\", \"country-abbrev\": \"Hun.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"HUN\", \"iso-a2\": \"HU\", \"woe-id\": \"23424844\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4861, 8032], [4875, 8020], [4883, 8014], [4857, 7997], [4831, 7952], [4805, 7946], [4784, 7948], [4765, 7939], [4719, 7940], [4694, 7960], [4687, 7974], [4682, 7974], [4696, 8007], [4713, 8017], [4733, 8007], [4795, 8021], [4812, 8036], [4861, 8032]]] } }, { \"type\": \"Feature\", \"id\": \"RO\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.67, \"hc-middle-y\": 0.50, \"hc-key\": \"ro\", \"hc-a2\": \"RO\", \"name\": \"Romania\", \"labelrank\": \"3\", \"country-abbrev\": \"Rom.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ROU\", \"iso-a2\": \"RO\", \"woe-id\": \"23424933\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4877, 7877], [4839, 7897], [4842, 7910], [4805, 7946], [4831, 7952], [4857, 7997], [4883, 8014], [4954, 8013], [4994, 8026], [5005, 8023], [5042, 7965], [5041, 7922], [5059, 7914], [5084, 7913], [5054, 7880], [5052, 7859], [5006, 7875], [4957, 7856], [4896, 7864], [4877, 7877]]] } }, { \"type\": \"Feature\", \"id\": \"NE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.64, \"hc-middle-y\": 0.53, \"hc-key\": \"ne\", \"hc-a2\": \"NE\", \"name\": \"Niger\", \"labelrank\": \"3\", \"country-abbrev\": \"Niger\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"NER\", \"iso-a2\": \"NE\", \"woe-id\": \"23424906\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4311, 6825], [4288, 6846], [4275, 6831], [4269, 6852], [4233, 6865], [4210, 6922], [4243, 6933], [4308, 6935], [4328, 6967], [4329, 7050], [4376, 7059], [4426, 7103], [4559, 7185], [4604, 7175], [4626, 7157], [4649, 7169], [4655, 7122], [4678, 7087], [4671, 7073], [4663, 6982], [4603, 6906], [4608, 6885], [4574, 6866], [4543, 6875], [4504, 6872], [4490, 6859], [4436, 6874], [4410, 6864], [4368, 6891], [4326, 6878], [4311, 6825]]] } }, { \"type\": \"Feature\", \"id\": \"LU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.60, \"hc-key\": \"lu\", \"hc-a2\": \"LU\", \"name\": \"Luxembourg\", \"labelrank\": \"6\", \"country-abbrev\": \"Lux.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"LUX\", \"iso-a2\": \"LU\", \"woe-id\": \"23424881\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4392, 8072], [4381, 8071], [4376, 8075], [4374, 8088], [4386, 8097], [4397, 8085], [4392, 8072]]] } }, { \"type\": \"Feature\", \"id\": \"AD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.58, \"hc-middle-y\": 0.28, \"hc-key\": \"ad\", \"hc-a2\": \"AD\", \"name\": \"Andorra\", \"labelrank\": \"6\", \"country-abbrev\": \"And.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"AND\", \"iso-a2\": \"AD\", \"woe-id\": \"23424744\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4246, 7818], [4255, 7818], [4255, 7814], [4249, 7812], [4246, 7818]]] } }, { \"type\": \"Feature\", \"id\": \"CI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.48, \"hc-key\": \"ci\", \"hc-a2\": \"CI\", \"name\": \"Ivory Coast\", \"labelrank\": \"3\", \"country-abbrev\": \"I.C.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"CIV\", \"iso-a2\": \"CI\", \"woe-id\": \"23424854\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4124, 6759], [4130, 6721], [4108, 6681], [4120, 6631], [4030, 6627], [3980, 6607], [3982, 6650], [3948, 6670], [3952, 6702], [3971, 6757], [3967, 6779], [4019, 6782], [4040, 6787], [4065, 6765], [4109, 6772], [4124, 6759]]], [[[4111, 6629], [4107, 6630], [4112, 6629], [4111, 6629]]]] } }, { \"type\": \"Feature\", \"id\": \"LR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.96, \"hc-middle-y\": 0.75, \"hc-key\": \"lr\", \"hc-a2\": \"LR\", \"name\": \"Liberia\", \"labelrank\": \"4\", \"country-abbrev\": \"Liberia\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"LBR\", \"iso-a2\": \"LR\", \"woe-id\": \"23424876\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3952, 6702], [3948, 6670], [3982, 6650], [3980, 6607], [3929, 6631], [3863, 6683], [3889, 6708], [3899, 6729], [3922, 6725], [3933, 6691], [3952, 6702]]] } }, { \"type\": \"Feature\", \"id\": \"BN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.32, \"hc-middle-y\": 0.34, \"hc-key\": \"bn\", \"hc-a2\": \"BN\", \"name\": \"Brunei\", \"labelrank\": \"6\", \"country-abbrev\": \"Brunei\", \"subregion\": \"South-Eastern Asia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"BRN\", \"iso-a2\": \"BN\", \"woe-id\": \"23424773\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[7618, 6621], [7621, 6622], [7621, 6623], [7627, 6606], [7618, 6621]]], [[[7587, 6614], [7603, 6617], [7616, 6623], [7606, 6597], [7587, 6614]]]] } }, { \"type\": \"Feature\", \"id\": \"IQ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.46, \"hc-middle-y\": 0.44, \"hc-key\": \"iq\", \"hc-a2\": \"IQ\", \"name\": \"Iraq\", \"labelrank\": \"3\", \"country-abbrev\": \"Iraq\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"IRQ\", \"iso-a2\": \"IQ\", \"woe-id\": \"23424855\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5644, 7390], [5632, 7392], [5627, 7391], [5602, 7390], [5585, 7362], [5530, 7365], [5453, 7426], [5404, 7453], [5366, 7460], [5363, 7472], [5355, 7501], [5412, 7533], [5427, 7548], [5432, 7606], [5461, 7627], [5472, 7635], [5532, 7628], [5549, 7589], [5579, 7582], [5551, 7521], [5577, 7487], [5611, 7469], [5623, 7448], [5619, 7423], [5644, 7390]]] } }, { \"type\": \"Feature\", \"id\": \"GE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.99, \"hc-middle-y\": 0.82, \"hc-key\": \"ge\", \"hc-a2\": \"GE\", \"name\": \"Georgia\", \"labelrank\": \"5\", \"country-abbrev\": \"Geo.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"GEO\", \"iso-a2\": \"GE\", \"woe-id\": \"23424823\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5539, 7771], [5515, 7769], [5493, 7765], [5474, 7782], [5436, 7779], [5436, 7819], [5391, 7846], [5475, 7838], [5508, 7816], [5534, 7823], [5582, 7793], [5584, 7763], [5539, 7771]]] } }, { \"type\": \"Feature\", \"id\": \"GM\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.51, \"hc-middle-y\": 0.51, \"hc-key\": \"gm\", \"hc-a2\": \"GM\", \"name\": \"Gambia\", \"labelrank\": \"6\", \"country-abbrev\": \"Gambia\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GMB\", \"iso-a2\": \"GM\", \"woe-id\": \"23424821\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3707, 6866], [3705, 6874], [3713, 6882], [3762, 6888], [3734, 6869], [3707, 6866]]] } }, { \"type\": \"Feature\", \"id\": \"CH\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.12, \"hc-middle-y\": 0.55, \"hc-key\": \"ch\", \"hc-a2\": \"CH\", \"name\": \"Switzerland\", \"labelrank\": \"4\", \"country-abbrev\": \"Switz.\", \"subregion\": \"Western Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"CHE\", \"iso-a2\": \"CH\", \"woe-id\": \"23424957\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4477, 8004], [4477, 8004], [4477, 8003], [4477, 8003], [4486, 7997], [4488, 7998], [4490, 7994], [4487, 7989], [4485, 7981], [4488, 7981], [4504, 7973], [4514, 7974], [4500, 7955], [4466, 7944], [4444, 7951], [4412, 7939], [4405, 7947], [4405, 7957], [4400, 7961], [4393, 7956], [4389, 7952], [4386, 7963], [4429, 8001], [4455, 8001], [4477, 8004]]] } }, { \"type\": \"Feature\", \"id\": \"TD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.47, \"hc-middle-y\": 0.63, \"hc-key\": \"td\", \"hc-a2\": \"TD\", \"name\": \"Chad\", \"labelrank\": \"3\", \"country-abbrev\": \"Chad\", \"subregion\": \"Middle Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"TCD\", \"iso-a2\": \"TD\", \"woe-id\": \"23424777\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4634, 6863], [4642, 6866], [4631, 6866], [4630, 6866], [4628, 6868], [4629, 6866], [4621, 6866], [4608, 6885], [4603, 6906], [4663, 6982], [4671, 7073], [4678, 7087], [4655, 7122], [4649, 7169], [4678, 7183], [4916, 7061], [4916, 6946], [4889, 6945], [4873, 6898], [4859, 6887], [4863, 6856], [4882, 6802], [4870, 6804], [4810, 6749], [4771, 6745], [4756, 6716], [4702, 6702], [4663, 6701], [4655, 6729], [4618, 6764], [4625, 6774], [4669, 6774], [4651, 6798], [4653, 6820], [4634, 6863]]] } }, { \"type\": \"Feature\", \"id\": \"KV\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.52, \"hc-key\": \"kv\", \"hc-a2\": \"KV\", \"name\": \"Kosovo\", \"labelrank\": \"6\", \"country-abbrev\": \"Kos.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"-99\", \"iso-a2\": \"KV\", \"woe-id\": \"-90\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4814, 7792], [4812, 7804], [4799, 7816], [4798, 7822], [4808, 7826], [4820, 7842], [4850, 7820], [4844, 7805], [4830, 7804], [4814, 7792]]] } }, { \"type\": \"Feature\", \"id\": \"LB\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.39, \"hc-middle-y\": 0.57, \"hc-key\": \"lb\", \"hc-a2\": \"LB\", \"name\": \"Lebanon\", \"labelrank\": \"5\", \"country-abbrev\": \"Leb.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"LBN\", \"iso-a2\": \"LB\", \"woe-id\": \"23424873\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5246, 7492], [5260, 7519], [5271, 7544], [5290, 7529], [5267, 7502], [5257, 7492], [5246, 7492]]] } }, { \"type\": \"Feature\", \"id\": \"DJ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.56, \"hc-middle-y\": 0.55, \"hc-key\": \"dj\", \"hc-a2\": \"DJ\", \"name\": \"Djibouti\", \"labelrank\": \"5\", \"country-abbrev\": \"Dji.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"DJI\", \"iso-a2\": \"DJ\", \"woe-id\": \"23424797\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5478, 6804], [5449, 6802], [5444, 6807], [5447, 6810], [5444, 6813], [5443, 6820], [5462, 6848], [5471, 6845], [5484, 6855], [5490, 6834], [5487, 6819], [5478, 6804]]] } }, { \"type\": \"Feature\", \"id\": \"BI\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.57, \"hc-middle-y\": 0.47, \"hc-key\": \"bi\", \"hc-a2\": \"BI\", \"name\": \"Burundi\", \"labelrank\": \"6\", \"country-abbrev\": \"Bur.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"BDI\", \"iso-a2\": \"BI\", \"woe-id\": \"23424774\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5084, 6347], [5076, 6364], [5071, 6380], [5072, 6389], [5065, 6398], [5091, 6400], [5111, 6408], [5118, 6383], [5084, 6347]]] } }, { \"type\": \"Feature\", \"id\": \"SR\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.91, \"hc-middle-y\": 0.09, \"hc-key\": \"sr\", \"hc-a2\": \"SR\", \"name\": \"Suriname\", \"labelrank\": \"4\", \"country-abbrev\": \"Sur.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"SUR\", \"iso-a2\": \"SR\", \"woe-id\": \"23424913\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2583, 6547], [2543, 6553], [2528, 6536], [2481, 6602], [2505, 6641], [2514, 6656], [2601, 6651], [2596, 6636], [2587, 6623], [2601, 6581], [2583, 6547]]] } }, { \"type\": \"Feature\", \"id\": \"IL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.68, \"hc-middle-y\": 0.10, \"hc-key\": \"il\", \"hc-a2\": \"IL\", \"name\": \"Israel\", \"labelrank\": \"4\", \"country-abbrev\": \"Isr.\", \"subregion\": \"Western Asia\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"ISR\", \"iso-a2\": \"IL\", \"woe-id\": \"23424852\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5219, 7433], [5238, 7465], [5246, 7492], [5257, 7492], [5267, 7502], [5269, 7487], [5265, 7480], [5259, 7477], [5259, 7448], [5254, 7440], [5255, 7434], [5254, 7432], [5255, 7431], [5253, 7429], [5255, 7426], [5247, 7405], [5241, 7377], [5240, 7374], [5239, 7374], [5237, 7382], [5219, 7433]]] } }, { \"type\": \"Feature\", \"id\": \"ML\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.59, \"hc-middle-y\": 0.38, \"hc-key\": \"ml\", \"hc-a2\": \"ML\", \"name\": \"Mali\", \"labelrank\": \"3\", \"country-abbrev\": \"Mali\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MLI\", \"iso-a2\": \"ML\", \"woe-id\": \"23424891\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4040, 6787], [4019, 6782], [3967, 6779], [3955, 6815], [3931, 6848], [3886, 6831], [3866, 6846], [3845, 6885], [3840, 6917], [3856, 6941], [3886, 6937], [4040, 6939], [4008, 7231], [4061, 7231], [4238, 7110], [4260, 7083], [4299, 7070], [4296, 7050], [4329, 7050], [4328, 6967], [4308, 6935], [4243, 6933], [4210, 6922], [4183, 6927], [4141, 6899], [4120, 6895], [4099, 6869], [4083, 6876], [4069, 6839], [4051, 6832], [4040, 6787]]] } }, { \"type\": \"Feature\", \"id\": \"SN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.20, \"hc-middle-y\": 0.55, \"hc-key\": \"sn\", \"hc-a2\": \"SN\", \"name\": \"Senegal\", \"labelrank\": \"3\", \"country-abbrev\": \"Sen.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SEN\", \"iso-a2\": \"SN\", \"woe-id\": \"23424943\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3708, 6844], [3705, 6859], [3707, 6866], [3734, 6869], [3762, 6888], [3713, 6882], [3695, 6922], [3713, 6949], [3719, 6968], [3779, 6974], [3840, 6917], [3845, 6885], [3866, 6846], [3837, 6843], [3797, 6854], [3753, 6854], [3708, 6844]]] } }, { \"type\": \"Feature\", \"id\": \"GN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.24, \"hc-middle-y\": 0.51, \"hc-key\": \"gn\", \"hc-a2\": \"GN\", \"name\": \"Guinea\", \"labelrank\": \"3\", \"country-abbrev\": \"Gin.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"GIN\", \"iso-a2\": \"GN\", \"woe-id\": \"23424835\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3866, 6846], [3886, 6831], [3931, 6848], [3955, 6815], [3967, 6779], [3971, 6757], [3952, 6702], [3933, 6691], [3922, 6725], [3899, 6729], [3870, 6774], [3833, 6770], [3809, 6746], [3793, 6770], [3758, 6803], [3767, 6819], [3797, 6825], [3797, 6854], [3837, 6843], [3866, 6846]]] } }, { \"type\": \"Feature\", \"id\": \"ZW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.81, \"hc-middle-y\": 0.42, \"hc-key\": \"zw\", \"hc-a2\": \"ZW\", \"name\": \"Zimbabwe\", \"labelrank\": \"3\", \"country-abbrev\": \"Zimb.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"ZWE\", \"iso-a2\": \"ZW\", \"woe-id\": \"23425004\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4954, 5949], [4996, 5940], [5006, 5944], [5038, 5977], [5038, 5977], [5058, 5987], [5060, 6001], [5106, 6014], [5182, 5982], [5185, 5932], [5176, 5898], [5184, 5880], [5166, 5841], [5133, 5807], [5104, 5809], [5075, 5814], [5036, 5833], [5026, 5865], [4979, 5896], [4954, 5949]]] } }, { \"type\": \"Feature\", \"id\": \"PL\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.48, \"hc-key\": \"pl\", \"hc-a2\": \"PL\", \"name\": \"Poland\", \"labelrank\": \"3\", \"country-abbrev\": \"Pol.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"POL\", \"iso-a2\": \"PL\", \"woe-id\": \"23424923\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4786, 8270], [4779, 8263], [4790, 8269], [4878, 8266], [4880, 8266], [4900, 8258], [4901, 8249], [4912, 8198], [4891, 8183], [4905, 8152], [4919, 8114], [4876, 8075], [4873, 8057], [4852, 8069], [4763, 8074], [4755, 8089], [4691, 8116], [4644, 8126], [4639, 8194], [4623, 8205], [4627, 8239], [4638, 8245], [4625, 8247], [4625, 8248], [4626, 8249], [4683, 8263], [4696, 8274], [4748, 8286], [4756, 8269], [4786, 8270], [4786, 8270]]] } }, { \"type\": \"Feature\", \"id\": \"MK\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.44, \"hc-key\": \"mk\", \"hc-a2\": \"MK\", \"name\": \"Macedonia\", \"labelrank\": \"6\", \"country-abbrev\": \"Mkd.\", \"subregion\": \"Southern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"MKD\", \"iso-a2\": \"MK\", \"woe-id\": \"23424890\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[4826, 7756], [4826, 7756], [4826, 7756], [4826, 7756]]], [[[4867, 7808], [4887, 7787], [4884, 7773], [4854, 7765], [4831, 7756], [4826, 7762], [4826, 7757], [4825, 7758], [4825, 7758], [4822, 7758], [4819, 7758], [4822, 7765], [4816, 7764], [4811, 7781], [4814, 7792], [4830, 7804], [4844, 7805], [4855, 7808], [4867, 7808]]]] } }, { \"type\": \"Feature\", \"id\": \"PY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.35, \"hc-middle-y\": 0.36, \"hc-key\": \"py\", \"hc-a2\": \"PY\", \"name\": \"Paraguay\", \"labelrank\": \"4\", \"country-abbrev\": \"Para.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"PRY\", \"iso-a2\": \"PY\", \"woe-id\": \"23424917\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2594, 5755], [2590, 5743], [2583, 5712], [2584, 5709], [2584, 5708], [2578, 5674], [2549, 5649], [2465, 5653], [2496, 5712], [2422, 5757], [2394, 5763], [2345, 5812], [2356, 5864], [2371, 5892], [2450, 5903], [2478, 5876], [2488, 5852], [2483, 5817], [2530, 5817], [2553, 5800], [2559, 5759], [2594, 5755]]] } }, { \"type\": \"Feature\", \"id\": \"BY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"by\", \"hc-a2\": \"BY\", \"name\": \"Belarus\", \"labelrank\": \"4\", \"country-abbrev\": \"Bela.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"BLR\", \"iso-a2\": \"BY\", \"woe-id\": \"23424765\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4905, 8152], [4891, 8183], [4912, 8198], [4901, 8249], [4927, 8247], [4960, 8264], [4972, 8290], [4998, 8305], [4993, 8320], [5023, 8325], [5039, 8340], [5121, 8317], [5146, 8243], [5175, 8229], [5131, 8212], [5147, 8175], [5122, 8174], [5110, 8154], [5074, 8146], [5013, 8155], [4969, 8168], [4928, 8166], [4905, 8152]]] } }, { \"type\": \"Feature\", \"id\": \"CZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.56, \"hc-key\": \"cz\", \"hc-a2\": \"CZ\", \"name\": \"Czech Republic\", \"labelrank\": \"5\", \"country-abbrev\": \"Cz. Rep.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"CZE\", \"iso-a2\": \"CZ\", \"woe-id\": \"23424810\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4763, 8074], [4741, 8058], [4707, 8039], [4648, 8053], [4640, 8039], [4614, 8045], [4571, 8083], [4575, 8108], [4644, 8126], [4691, 8116], [4755, 8089], [4763, 8074]]] } }, { \"type\": \"Feature\", \"id\": \"BF\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.54, \"hc-key\": \"bf\", \"hc-a2\": \"BF\", \"name\": \"Burkina Faso\", \"labelrank\": \"3\", \"country-abbrev\": \"B.F.\", \"subregion\": \"Western Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"BFA\", \"iso-a2\": \"BF\", \"woe-id\": \"23424978\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4231, 6804], [4218, 6804], [4199, 6808], [4122, 6804], [4124, 6759], [4109, 6772], [4065, 6765], [4040, 6787], [4051, 6832], [4069, 6839], [4083, 6876], [4099, 6869], [4120, 6895], [4141, 6899], [4183, 6927], [4210, 6922], [4233, 6865], [4269, 6852], [4275, 6831], [4247, 6818], [4231, 6804]]] } }, { \"type\": \"Feature\", \"id\": \"NA\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.33, \"hc-middle-y\": 0.37, \"hc-key\": \"na\", \"hc-a2\": \"NA\", \"name\": \"Namibia\", \"labelrank\": \"3\", \"country-abbrev\": \"Nam.\", \"subregion\": \"Southern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"NAM\", \"iso-a2\": \"NA\", \"woe-id\": \"23424987\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4898, 5953], [4923, 5958], [4954, 5949], [4904, 5928], [4895, 5942], [4826, 5933], [4827, 5821], [4797, 5819], [4797, 5734], [4797, 5617], [4771, 5600], [4720, 5608], [4711, 5630], [4693, 5613], [4658, 5652], [4637, 5740], [4631, 5811], [4602, 5855], [4577, 5909], [4561, 5927], [4553, 5965], [4595, 5974], [4618, 5960], [4752, 5961], [4761, 5950], [4821, 5941], [4898, 5953]]] } }, { \"type\": \"Feature\", \"id\": \"LY\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.51, \"hc-middle-y\": 0.38, \"hc-key\": \"ly\", \"hc-a2\": \"LY\", \"name\": \"Libya\", \"labelrank\": \"3\", \"country-abbrev\": \"Libya\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"LBY\", \"iso-a2\": \"LY\", \"woe-id\": \"23424882\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4649, 7169], [4626, 7157], [4604, 7175], [4559, 7185], [4546, 7209], [4502, 7227], [4483, 7267], [4496, 7279], [4496, 7363], [4486, 7398], [4509, 7421], [4504, 7437], [4547, 7471], [4545, 7495], [4570, 7483], [4600, 7486], [4655, 7469], [4680, 7432], [4719, 7426], [4770, 7399], [4790, 7407], [4795, 7448], [4814, 7474], [4846, 7487], [4890, 7477], [4889, 7467], [4945, 7455], [4950, 7445], [4937, 7397], [4945, 7364], [4945, 7138], [4945, 7076], [4916, 7076], [4916, 7061], [4678, 7183], [4649, 7169]]] } }, { \"type\": \"Feature\", \"id\": \"TN\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.53, \"hc-middle-y\": 0.03, \"hc-key\": \"tn\", \"hc-a2\": \"TN\", \"name\": \"Tunisia\", \"labelrank\": \"3\", \"country-abbrev\": \"Tun.\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"TUN\", \"iso-a2\": \"TN\", \"woe-id\": \"23424967\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4545, 7495], [4547, 7471], [4504, 7437], [4509, 7421], [4486, 7398], [4472, 7458], [4451, 7473], [4426, 7518], [4448, 7543], [4452, 7604], [4459, 7621], [4493, 7635], [4535, 7563], [4505, 7533], [4511, 7512], [4532, 7515], [4545, 7495]]] } }, { \"type\": \"Feature\", \"id\": \"BT\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.48, \"hc-key\": \"bt\", \"hc-a2\": \"BT\", \"name\": \"Bhutan\", \"labelrank\": \"5\", \"country-abbrev\": \"Bhutan\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"BTN\", \"iso-a2\": \"BT\", \"woe-id\": \"23424770\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6842, 7305], [6882, 7338], [6923, 7319], [6937, 7293], [6869, 7285], [6842, 7305]]] } }, { \"type\": \"Feature\", \"id\": \"MD\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.42, \"hc-key\": \"md\", \"hc-a2\": \"MD\", \"name\": \"Moldova\", \"labelrank\": \"6\", \"country-abbrev\": \"Mda.\", \"subregion\": \"Eastern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"MDA\", \"iso-a2\": \"MD\", \"woe-id\": \"23424885\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5041, 7922], [5042, 7965], [5005, 8023], [4994, 8026], [5028, 8033], [5072, 8011], [5068, 7999], [5097, 7955], [5063, 7958], [5041, 7922]]] } }, { \"type\": \"Feature\", \"id\": \"SS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.58, \"hc-key\": \"ss\", \"hc-a2\": \"SS\", \"name\": \"South Sudan\", \"labelrank\": \"3\", \"country-abbrev\": \"S. Sud.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"SSD\", \"iso-a2\": \"SS\", \"woe-id\": \"-99\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5212, 6603], [5198, 6589], [5119, 6582], [5088, 6613], [5046, 6605], [5018, 6628], [4988, 6658], [4987, 6675], [4956, 6696], [4921, 6735], [4948, 6783], [4970, 6787], [4992, 6760], [5060, 6754], [5095, 6783], [5131, 6768], [5166, 6806], [5156, 6834], [5190, 6840], [5189, 6800], [5215, 6758], [5211, 6728], [5190, 6729], [5185, 6709], [5205, 6705], [5235, 6675], [5270, 6615], [5255, 6627], [5212, 6603]]] } }, { \"type\": \"Feature\", \"id\": \"BW\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.49, \"hc-middle-y\": 0.60, \"hc-key\": \"bw\", \"hc-a2\": \"BW\", \"name\": \"Botswana\", \"labelrank\": \"4\", \"country-abbrev\": \"Bwa.\", \"subregion\": \"Southern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"BWA\", \"iso-a2\": \"BW\", \"woe-id\": \"23424755\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[4954, 5949], [4979, 5896], [5026, 5865], [5036, 5833], [5075, 5814], [5041, 5799], [5006, 5769], [5000, 5749], [4972, 5734], [4963, 5706], [4941, 5700], [4887, 5716], [4878, 5695], [4847, 5667], [4818, 5666], [4822, 5690], [4797, 5734], [4797, 5819], [4827, 5821], [4826, 5933], [4895, 5942], [4904, 5928], [4954, 5949]]] } }, { \"type\": \"Feature\", \"id\": \"BS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.80, \"hc-middle-y\": 0.92, \"hc-key\": \"bs\", \"hc-a2\": \"BS\", \"name\": \"The Bahamas\", \"labelrank\": \"4\", \"country-abbrev\": \"Bhs.\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"BHS\", \"iso-a2\": \"BS\", \"woe-id\": \"23424758\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[1956, 7219], [1937, 7241], [1937, 7241], [1937, 7241], [1944, 7236], [1956, 7219], [1956, 7219]]], [[[1956, 7219], [1970, 7205], [1976, 7173], [2045, 7149], [1983, 7165], [1949, 7190], [1966, 7207], [1956, 7219], [1956, 7219]]], [[[1937, 7241], [1911, 7260], [1890, 7236], [1901, 7192], [1881, 7221], [1883, 7237], [1912, 7268], [1937, 7241], [1937, 7241], [1937, 7241]]]] } }, { \"type\": \"Feature\", \"id\": \"NZ\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.25, \"hc-middle-y\": 0.81, \"hc-key\": \"nz\", \"hc-a2\": \"NZ\", \"name\": \"New Zealand\", \"labelrank\": \"2\", \"country-abbrev\": \"N.Z.\", \"subregion\": \"Australia and New Zealand\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"NZL\", \"iso-a2\": \"NZ\", \"woe-id\": \"23424916\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[9238, 4994], [9198, 4996], [9194, 4975], [9181, 5009], [9153, 5008], [9145, 5023], [9159, 5047], [9201, 5088], [9241, 5104], [9282, 5140], [9311, 5200], [9330, 5213], [9341, 5185], [9362, 5199], [9374, 5165], [9321, 5099], [9289, 5079], [9268, 5027], [9238, 4994]]], [[[9429, 5191], [9404, 5174], [9386, 5186], [9404, 5221], [9361, 5252], [9385, 5272], [9393, 5308], [9378, 5347], [9341, 5395], [9364, 5402], [9402, 5361], [9422, 5343], [9427, 5313], [9470, 5301], [9503, 5310], [9483, 5263], [9469, 5264], [9429, 5191]]]] } }, { \"type\": \"Feature\", \"id\": \"CU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.67, \"hc-middle-y\": 0.64, \"hc-key\": \"cu\", \"hc-a2\": \"CU\", \"name\": \"Cuba\", \"labelrank\": \"3\", \"country-abbrev\": \"Cuba\", \"subregion\": \"Caribbean\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"CUB\", \"iso-a2\": \"CU\", \"woe-id\": \"23424793\", \"continent\": \"North America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1916, 7091], [1870, 7097], [1853, 7124], [1817, 7140], [1776, 7144], [1774, 7159], [1748, 7160], [1696, 7131], [1700, 7149], [1734, 7169], [1770, 7175], [1828, 7171], [1852, 7150], [1867, 7154], [1879, 7155], [1933, 7113], [1986, 7095], [2000, 7078], [1898, 7071], [1916, 7091]]] } }, { \"type\": \"Feature\", \"id\": \"EC\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.16, \"hc-middle-y\": 0.37, \"hc-key\": \"ec\", \"hc-a2\": \"EC\", \"name\": \"Ecuador\", \"labelrank\": \"3\", \"country-abbrev\": \"Ecu.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"ECU\", \"iso-a2\": \"EC\", \"woe-id\": \"23424801\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[1820, 6379], [1837, 6400], [1803, 6410], [1803, 6447], [1828, 6480], [1827, 6500], [1865, 6521], [1905, 6498], [1940, 6492], [1970, 6476], [1961, 6433], [1928, 6403], [1879, 6379], [1858, 6331], [1815, 6358], [1820, 6379]]] } }, { \"type\": \"Feature\", \"id\": \"AU\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.53, \"hc-middle-y\": 0.39, \"hc-key\": \"au\", \"hc-a2\": \"AU\", \"name\": \"Australia\", \"labelrank\": \"2\", \"country-abbrev\": \"Auz.\", \"subregion\": \"Australia and New Zealand\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"AUS\", \"iso-a2\": \"AU\", \"woe-id\": \"-90\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"MultiPolygon\", \"coordinates\": [[[[8563, 5105], [8537, 5105], [8515, 5139], [8497, 5193], [8499, 5215], [8479, 5229], [8543, 5191], [8602, 5210], [8604, 5168], [8595, 5117], [8581, 5130], [8563, 5105]]], [[[8541, 5953], [8550, 5909], [8629, 5866], [8644, 5812], [8680, 5798], [8682, 5771], [8712, 5753], [8733, 5720], [8756, 5726], [8746, 5701], [8761, 5650], [8762, 5603], [8731, 5487], [8709, 5472], [8660, 5372], [8655, 5318], [8605, 5306], [8551, 5275], [8505, 5283], [8507, 5304], [8464, 5271], [8430, 5288], [8379, 5298], [8351, 5328], [8347, 5368], [8329, 5384], [8261, 5366], [8280, 5383], [8270, 5405], [8300, 5464], [8283, 5464], [8229, 5404], [8216, 5439], [8189, 5463], [8185, 5486], [8128, 5500], [8096, 5519], [8032, 5512], [7981, 5492], [7949, 5494], [7887, 5463], [7870, 5437], [7765, 5438], [7718, 5405], [7680, 5400], [7646, 5408], [7616, 5433], [7637, 5459], [7637, 5513], [7616, 5560], [7616, 5583], [7592, 5627], [7587, 5653], [7556, 5702], [7573, 5710], [7590, 5680], [7592, 5701], [7570, 5741], [7577, 5802], [7645, 5849], [7698, 5861], [7793, 5892], [7834, 5938], [7830, 5965], [7853, 5985], [7871, 5957], [7872, 5998], [7896, 5993], [7897, 6026], [7916, 6045], [7961, 6056], [7971, 6072], [8008, 6042], [8052, 6031], [8043, 6051], [8090, 6125], [8063, 6129], [8073, 6147], [8104, 6146], [8105, 6115], [8141, 6119], [8139, 6152], [8156, 6132], [8212, 6115], [8254, 6129], [8267, 6115], [8237, 6071], [8224, 6036], [8256, 6011], [8329, 5976], [8359, 5951], [8384, 5959], [8408, 6030], [8406, 6107], [8417, 6122], [8422, 6177], [8436, 6161], [8463, 6071], [8476, 6048], [8492, 6058], [8517, 6035], [8519, 5993], [8541, 5953]]]] } }, { \"type\": \"Feature\", \"id\": \"VE\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.33, \"hc-key\": \"ve\", \"hc-a2\": \"VE\", \"name\": \"Venezuela\", \"labelrank\": \"3\", \"country-abbrev\": \"Ven.\", \"subregion\": \"South America\", \"region-wb\": \"Latin America & Caribbean\", \"iso-a3\": \"VEN\", \"iso-a2\": \"VE\", \"woe-id\": \"23424982\", \"continent\": \"South America\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[2087, 6830], [2070, 6823], [2080, 6796], [2064, 6769], [2082, 6746], [2096, 6767], [2080, 6799], [2122, 6818], [2160, 6818], [2188, 6788], [2237, 6794], [2282, 6777], [2307, 6793], [2343, 6797], [2357, 6776], [2400, 6756], [2397, 6742], [2423, 6732], [2408, 6709], [2415, 6689], [2387, 6672], [2382, 6653], [2401, 6632], [2377, 6604], [2286, 6596], [2303, 6552], [2324, 6550], [2301, 6525], [2258, 6498], [2219, 6515], [2210, 6549], [2191, 6564], [2207, 6580], [2190, 6612], [2201, 6662], [2143, 6659], [2123, 6685], [2064, 6688], [2056, 6726], [2037, 6753], [2040, 6787], [2068, 6824], [2087, 6830]]] } }, { \"type\": \"Feature\", \"id\": \"SB\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.13, \"hc-middle-y\": 0.24, \"hc-key\": \"sb\", \"hc-a2\": \"SB\", \"name\": \"Solomon Islands\", \"labelrank\": \"3\", \"country-abbrev\": \"S. Is.\", \"subregion\": \"Melanesia\", \"region-wb\": \"East Asia & Pacific\", \"iso-a3\": \"SLB\", \"iso-a2\": \"SB\", \"woe-id\": \"23424766\", \"continent\": \"Oceania\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[8977, 6187], [8947, 6189], [8947, 6226], [8902, 6255], [8881, 6242], [8899, 6222], [8858, 6239], [8861, 6266], [8912, 6255], [8947, 6233], [8955, 6212], [8982, 6224], [8977, 6187]]] } }, { \"type\": \"Feature\", \"id\": \"MG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.45, \"hc-middle-y\": 0.48, \"hc-key\": \"mg\", \"hc-a2\": \"MG\", \"name\": \"Madagascar\", \"labelrank\": \"3\", \"country-abbrev\": \"Mad.\", \"subregion\": \"Eastern Africa\", \"region-wb\": \"Sub-Saharan Africa\", \"iso-a3\": \"MDG\", \"iso-a2\": \"MG\", \"woe-id\": \"23424883\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5683, 5987], [5616, 5762], [5601, 5727], [5544, 5707], [5511, 5726], [5503, 5774], [5487, 5812], [5495, 5841], [5524, 5882], [5508, 5959], [5523, 5997], [5558, 6004], [5613, 6031], [5635, 6081], [5650, 6080], [5665, 6125], [5686, 6092], [5702, 6020], [5677, 6017], [5683, 5987]]] } }, { \"type\": \"Feature\", \"id\": \"IS\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.50, \"hc-key\": \"is\", \"hc-a2\": \"IS\", \"name\": \"Iceland\", \"labelrank\": \"3\", \"country-abbrev\": \"Iceland\", \"subregion\": \"Northern Europe\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"ISL\", \"iso-a2\": \"IS\", \"woe-id\": \"23424845\", \"continent\": \"Europe\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[3490, 8732], [3556, 8739], [3551, 8757], [3516, 8766], [3476, 8762], [3500, 8775], [3508, 8796], [3538, 8790], [3534, 8809], [3571, 8786], [3566, 8765], [3584, 8755], [3607, 8792], [3661, 8795], [3682, 8785], [3715, 8796], [3713, 8811], [3768, 8789], [3763, 8773], [3795, 8763], [3803, 8741], [3772, 8709], [3677, 8676], [3648, 8661], [3605, 8668], [3575, 8684], [3530, 8682], [3560, 8708], [3538, 8728], [3490, 8732]]] } }, { \"type\": \"Feature\", \"id\": \"EG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.50, \"hc-middle-y\": 0.66, \"hc-key\": \"eg\", \"hc-a2\": \"EG\", \"name\": \"Egypt\", \"labelrank\": \"2\", \"country-abbrev\": \"Egypt\", \"subregion\": \"Northern Africa\", \"region-wb\": \"Middle East & North Africa\", \"iso-a3\": \"EGY\", \"iso-a2\": \"EG\", \"woe-id\": \"23424802\", \"continent\": \"Africa\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[5239, 7374], [5220, 7318], [5190, 7345], [5169, 7390], [5172, 7358], [5201, 7320], [5213, 7282], [5258, 7199], [5263, 7167], [5299, 7138], [5131, 7138], [4945, 7138], [4945, 7364], [4937, 7397], [4950, 7445], [5015, 7435], [5065, 7418], [5105, 7440], [5140, 7438], [5157, 7425], [5219, 7433], [5237, 7382], [5239, 7374]]] } }, { \"type\": \"Feature\", \"id\": \"KG\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.48, \"hc-middle-y\": 0.43, \"hc-key\": \"kg\", \"hc-a2\": \"KG\", \"name\": \"Kyrgyzstan\", \"labelrank\": \"4\", \"country-abbrev\": \"Kgz.\", \"subregion\": \"Central Asia\", \"region-wb\": \"Europe & Central Asia\", \"iso-a3\": \"KGZ\", \"iso-a2\": \"KG\", \"woe-id\": \"23424864\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6389, 7707], [6348, 7698], [6325, 7713], [6261, 7709], [6280, 7734], [6310, 7734], [6331, 7731], [6374, 7754], [6333, 7777], [6323, 7766], [6286, 7782], [6309, 7805], [6336, 7826], [6385, 7812], [6405, 7842], [6435, 7827], [6531, 7828], [6584, 7803], [6529, 7774], [6521, 7763], [6482, 7759], [6450, 7736], [6446, 7748], [6399, 7728], [6389, 7707]], [[6300, 7721], [6296, 7722], [6299, 7718], [6302, 7720], [6300, 7721]], [[6333, 7723], [6334, 7726], [6331, 7724], [6332, 7723], [6333, 7723]], [[6316, 7728], [6310, 7729], [6312, 7722], [6317, 7722], [6316, 7728]]] } }, { \"type\": \"Feature\", \"id\": \"NP\", \"properties\": { \"hc-group\": \"admin0\", \"hc-middle-x\": 0.52, \"hc-middle-y\": 0.54, \"hc-key\": \"np\", \"hc-a2\": \"NP\", \"name\": \"Nepal\", \"labelrank\": \"3\", \"country-abbrev\": \"Nepal\", \"subregion\": \"Southern Asia\", \"region-wb\": \"South Asia\", \"iso-a3\": \"NPL\", \"iso-a2\": \"NP\", \"woe-id\": \"23424911\", \"continent\": \"Asia\" }, \"geometry\": { \"type\": \"Polygon\", \"coordinates\": [[[6819, 7322], [6820, 7286], [6795, 7274], [6751, 7281], [6714, 7305], [6660, 7310], [6579, 7353], [6589, 7383], [6608, 7397], [6640, 7401], [6683, 7364], [6699, 7367], [6729, 7336], [6756, 7323], [6773, 7330], [6819, 7322]]] } }]\r\n};","import Vue from 'vue';\r\nimport './highcharts.proj4.js';\r\nimport HighchartsVue from 'highcharts-vue';\r\nimport Highcharts from 'highcharts';\r\nimport HighchartsMapModule from 'highcharts/modules/map';\r\nimport HighchartsCustomWorld from './highcharts.custom.world.js';\r\nimport fillFactory from 'highcharts-pattern-fill/pattern-fill-v2.js';\r\n\r\nfillFactory(Highcharts);\r\nHighchartsMapModule(Highcharts);\r\nHighcharts.maps[\"custom/world\"] = HighchartsCustomWorld;\r\nVue.use(HighchartsVue);\r\n","import Api from \"@/lib/ApiV2\";\r\n\r\nexport const formatCurrency = (val: number, code: string) => {\r\n if (val === null || isNaN(val)) {\r\n return val;\r\n }\r\n\r\n return code\r\n ? val.toLocaleString(undefined, {\r\n style: \"currency\",\r\n currency: code\r\n })\r\n : val.toLocaleString();\r\n};\r\n\r\nexport class CurrencyService {\r\n private currencies: any[];\r\n\r\n public async getAllCurrencies(): Promise {\r\n if (this.currencies) return this.currencies;\r\n return (this.currencies = await Api.http\r\n .get(\"/api/metadata/currencies\")\r\n .then(c => c.data));\r\n }\r\n\r\n public async getAllCurrencyCodes(): Promise {\r\n return this.getAllCurrencies().then(r => r.map(c => c.code));\r\n }\r\n\r\n public async getCurrencySymbol(code: string): Promise {\r\n const all = await this.getAllCurrencies();\r\n \r\n const symbolIndex = all.findIndex(c => c.code === code);\r\n return symbolIndex !== -1 ? all[symbolIndex].symbol : null;\r\n }\r\n}\r\n\r\nexport default new CurrencyService();\r\n","import Vue from \"vue\";\r\nimport { formatCurrency } from '@/lib/Currencies';\r\nVue.filter(\"currency\", formatCurrency);\r\n","import Vue from 'vue';\r\nimport dayjs from 'dayjs';\r\nimport calendar from 'dayjs/plugin/calendar';\r\ndayjs.extend(calendar);\r\n\r\nVue.filter('calendarFormatFromUtc', function (value: Date | string) {\r\n return dayjs(value).local().calendar(null, {\r\n sameElse: 'DD/MM/YYYY'\r\n });\r\n});\r\n\r\nVue.filter('calendarFormat', function (value: Date | string) {\r\n return dayjs(value).calendar(null, {\r\n sameElse: 'DD/MM/YYYY'\r\n });\r\n});\r\n\r\nVue.filter('dateFormat', function (value: Date, format: string) {\r\n return dayjs(value).format(format);\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('img',{staticStyle:{\"margin\":\"16px auto auto auto\"},attrs:{\"src\":_vm.logoImageSrc,\"width\":_vm.width,\"aria-label\":\"Application logo\",\"title\":\"Application logo\",\"role\":\"presentation\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLogoImage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLogoImage.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AppLogoImage.vue?vue&type=template&id=14c4fa10&\"\nimport script from \"./AppLogoImage.vue?vue&type=script&lang=js&\"\nexport * from \"./AppLogoImage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":_vm.handleClick}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" \"+_vm._s(_vm.$t('back'))+\" \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BackButton.vue?vue&type=template&id=2487bea0&\"\nimport script from \"./BackButton.vue?vue&type=script&lang=js&\"\nexport * from \"./BackButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('card-base',{attrs:{\"light\":_vm.light}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[(_vm.titleIcon)?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.titleIcon))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")],1),(_vm.caption)?_c('h3',{staticClass:\"body-2\"},[_vm._v(_vm._s(_vm.caption))]):_vm._e()]),_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_c('v-spacer'),_vm._t(\"title-actions\")],2)],1),_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.loading,\"indeterminate\":\"\"}}),_vm._t(\"body\",function(){return [_c('v-card-text',{staticClass:\"pt-1\"},[_vm._t(\"default\")],2)]}),_c('v-card-actions',[_vm._t(\"actions\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{attrs:{\"flat\":\"\",\"light\":_vm.light}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContentCardBase.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContentCardBase.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContentCardBase.vue?vue&type=template&id=ca0cd1ec&\"\nimport script from \"./ContentCardBase.vue?vue&type=script&lang=js&\"\nexport * from \"./ContentCardBase.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContentCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ContentCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ContentCard.vue?vue&type=template&id=18681780&\"\nimport script from \"./ContentCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ContentCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":_vm.title,\"caption\":_vm.caption,\"loading\":_vm.loading,\"light\":_vm.light},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},[_c('chart',{attrs:{\"options\":_vm.chart,\"constructorType\":_vm.constructorType}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChartCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChartCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChartCard.vue?vue&type=template&id=138333fc&\"\nimport script from \"./ChartCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ChartCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"loading\":_vm.$wait.is('deletingEntity'),\"value\":_vm.entityToDelete,\"title\":_vm.$t('entities.DeleteEntityTitle', {entityType: _vm.entityType}),\"subtitle\":_vm.$t('entities.DeleteEntitySubtitle', {entityType: _vm.entityType}),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-entity-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deletingEntity'),expression:\"'deletingEntity'\"}],attrs:{\"value\":_vm.entityToDelete,\"entityType\":_vm.entityType,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"resourceApi\":_vm.resourceApi},on:{\"http2xx\":function($event){close().then(_vm.getEntities)}}})]}}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading,\"lazyValidation\":false},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"isValid\":_vm.valid,\"clear\":reset,\"formId\":formId,\"loading\":_vm.loading,\"form\":{ Name: _vm.entityName }})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.warningText)?_c('v-alert',{attrs:{\"text\":\"\",\"color\":\"warning\"}},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" Warning: \"+_vm._s(_vm.warningText)+\" \")],1):_vm._e(),(_vm.simple)?_c('v-checkbox',{attrs:{\"rules\":_vm.checkToDeleteRules,\"label\":_vm.$t('deleteEntityCard.checkToDelete.label'),\"required\":\"\"},model:{value:(_vm.checkToDelete),callback:function ($$v) {_vm.checkToDelete=$$v},expression:\"checkToDelete\"}}):_c('v-text-field',{attrs:{\"rules\":_vm.nameConfirmationRules,\"placeholder\":_vm.$t('deleteEntityCard.placeholder', { entityName: _vm.entityName }),\"persistent-hint\":\"\",\"label\":_vm.$t('name'),\"required\":\"\",\"autofocus\":\"\",\"counter\":_vm.entityName ? _vm.entityName.length : null},model:{value:(_vm.nameConfirmation),callback:function ($$v) {_vm.nameConfirmation=$$v},expression:\"nameConfirmation\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n{\r\n \"en\": {\r\n \"deleteEntityCard.placeholder\": \"Enter '{entityName}' to continue\",\r\n \"deleteEntityCard.checkToDelete.label\": \"Are you sure you want to delete?\"\r\n }\r\n}\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteEntityCard.vue?vue&type=template&id=3b98dfaa&\"\nimport script from \"./DeleteEntityCard.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteEntityCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteEntityCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"error\",\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"clear\")]),_vm._v(\"Delete \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DeleteEntityButton.vue?vue&type=template&id=fbe8a89c&\"\nimport script from \"./DeleteEntityButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteEntityButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n {\r\n \"en\": { \r\n \"entities.DeleteEntityTitle\": \"Delete {entityType}\",\r\n \"entities.DeleteEntitySubtitle\": \"This {entityType} will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"\r\n }\r\n }\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteEntityDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteEntityDialog.vue?vue&type=template&id=2b943660&\"\nimport script from \"./DeleteEntityDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteEntityDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteEntityDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import Granularity from \"./Granularity\";\r\n\r\nexport enum SpendFieldNames {\r\n CO2e = \"CO2e\",\r\n kWh = \"kWh\",\r\n Spend = \"Spend\",\r\n Charges = \"Charges\",\r\n Credits = \"Credits\"\r\n}\r\n\r\nexport default interface ISpendParameters {\r\n fromDate: string;\r\n toDate: string;\r\n granularity: Granularity.daily | Granularity.monthly;\r\n topXResults?: number | null;\r\n tagKeyValue?: string;\r\n tagKeyValues?: string;\r\n productIds?: string;\r\n regionNames?: string;\r\n geographyNames?: string;\r\n productCategories?: string;\r\n cloudAccountIds?: string;\r\n subscriptionIds?: string;\r\n serviceIds?: string;\r\n topBy?: string;\r\n providerType?: string | null;\r\n savedViewId?: string | null;\r\n costView?: string | null;\r\n reservationId?: string | null;\r\n}","enum Granularity {\r\n raw = 'Raw',\r\n hourly = 'Hourly',\r\n daily = 'Daily',\r\n monthly = 'Monthly',\r\n yearly = 'Yearly'\r\n}\r\n\r\nexport default Granularity;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"py-5\"},[_c('p',{staticClass:\"text-center mb-0\"},[_c('v-icon',{staticClass:\"empty-state\"},[_vm._v(_vm._s(_vm.icon))])],1),_c('p',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm.message))]),_c('p',{staticClass:\"text-center\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport default {\r\n props: ['icon', 'message']\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmptyState.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmptyState.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmptyState.vue?vue&type=template&id=38e4a153&scoped=true&\"\nimport script from \"./EmptyState.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmptyState.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EmptyState.vue?vue&type=style&index=0&id=38e4a153&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38e4a153\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"mx-auto\"},[_c('form-card-title',{attrs:{\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._t(\"title\",function(){return [_vm._v(_vm._s(_vm.title))]})]},proxy:true},{key:\"subtitle\",fn:function(){return [_vm._t(\"subtitle\",function(){return [_vm._v(_vm._s(_vm.subtitle))]})]},proxy:true}],null,true)}),_vm._t(\"body\",function(){return [_c('v-card-text',{staticClass:\"mt-1\"},[_vm._t(\"text\",function(){return [_c('v-form',{ref:\"form\",attrs:{\"value\":_vm.value,\"id\":_vm.formId,\"lazy-validation\":_vm.lazyValidation},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"submit\":function($event){$event.preventDefault();}}},[_vm._t(\"default\",null,{\"isValid\":_vm.value,\"formId\":_vm.formId,\"reset\":_vm.reset,\"resetValidation\":_vm.resetValidation}),_c('input',{attrs:{\"type\":\"hidden\"}})],2)]})],2)]}),_c('form-card-actions',[_vm._t(\"actions\",null,{\"formId\":_vm.formId,\"reset\":_vm.reset,\"resetValidation\":_vm.resetValidation})],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card-actions',[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./FormCardActions.vue?vue&type=template&id=e1e23ff0&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-progress-linear',{attrs:{\"indeterminate\":\"\",\"active\":_vm.loading}}),_c('v-card-title',[_c('h2',{staticClass:\"title text-center full-width text-uppercase primary--text\"},[_vm._t(\"title\",function(){return [_vm._v(_vm._s(_vm.title))]})],2),_c('p',{staticClass:\"subtitle-1 text-xs-center grey--text pa-3 pb-0 text-break full-width\",attrs:{\"align\":\"center\"}},[_vm._t(\"subtitle\",function(){return [_vm._v(_vm._s(_vm.subtitle))]})],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormCardTitle.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormCardTitle.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormCardTitle.vue?vue&type=template&id=323dd246&scoped=true&\"\nimport script from \"./FormCardTitle.vue?vue&type=script&lang=js&\"\nexport * from \"./FormCardTitle.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FormCardTitle.vue?vue&type=style&index=0&id=323dd246&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"323dd246\",\n null\n \n)\n\nexport default component.exports","export default class UniqueIdentifier {\r\n public static create() {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\r\n const r = (Math.random() * 16) | 0;\r\n const v = c == 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n }\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormCard.vue?vue&type=template&id=6647a87a&\"\nimport script from \"./FormCard.vue?vue&type=script&lang=js&\"\nexport * from \"./FormCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"value\":_vm.value,\"width\":_vm.width || 800,\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.fullscreen || _vm.$vuetify.breakpoint.xsOnly},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(props){return [_vm._t(\"activator\",null,null,props)]}}],null,true)},[_vm._t(\"default\",null,{\"close\":_vm.close,\"open\":_vm.open})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FormDialog.vue?vue&type=template&id=205c6dc9&\"\nimport script from \"./FormDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./FormDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{ sticky: _vm.sticky }},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"elevation\":_vm.sticky ? 1 : 0,\"color\":_vm.toolbarColor,\"prominent\":!_vm.small,\"extension-height\":_vm.extensionHeight},scopedSlots:_vm._u([(_vm.extended)?{key:\"extension\",fn:function(){return [_vm._t(\"default\")]},proxy:true}:null],null,true)},[(!_vm.hideNavbtn)?_c('v-app-bar-nav-icon',{attrs:{\"aria-label\":\"App Menu Button\",\"title\":\"App Menu Button\",\"role\":\"presentation\"},on:{\"click\":function($event){return _vm.toggleDrawer()}}}):_vm._e(),(_vm.backTo)?_c('v-btn',{staticClass:\"ml-6\",staticStyle:{\"margin-top\":\"5px\"},attrs:{\"absolute\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.$router.push(_vm.backTo)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"keyboard_backspace\")]),_vm._v(\" \"+_vm._s(_vm.backToText || 'Back'))],1):_vm._e(),_c('v-toolbar-title',{attrs:{\"role\":\"h1\"}},[_c('h1',{staticClass:\"text-h5\"},[(_vm.icon)?_c('v-icon',{class:{ 'flip-x': _vm.flipIcon },attrs:{\"left\":\"\"}},[_vm._v(_vm._s(_vm.icon))]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.title)+\" \")],1)]),_c('v-spacer')],1),(!_vm.extended)?_c('v-sheet',{attrs:{\"color\":_vm.sheetColor}},[_vm._t(\"default\")],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PageHeader.vue?vue&type=template&id=13e82c48&scoped=true&\"\nimport script from \"./PageHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./PageHeader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PageHeader.vue?vue&type=style&index=0&id=13e82c48&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"13e82c48\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":_vm.type,\"color\":_vm.color,\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form,\"block\":_vm.block,\"outlined\":_vm.outlined},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Update\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPatchButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPatchButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HttpPatchButton.vue?vue&type=template&id=5245dd8e&\"\nimport script from \"./HttpPatchButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HttpPatchButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":_vm.type,\"color\":_vm.color,\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form,\"block\":_vm.block,\"outlined\":_vm.outlined},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit\")]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPutButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HttpPutButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./HttpPutButton.vue?vue&type=template&id=e8bfb51e&\"\nimport script from \"./HttpPutButton.vue?vue&type=script&lang=js&\"\nexport * from \"./HttpPutButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('card-base',[_c('v-container',{attrs:{\"justify-center\":\"\",\"fluid\":\"\"}},[_c('v-layout',[_c('v-flex',{staticClass:\"text-center\",attrs:{\"xs12\":\"\"}},[_c('div',[_c('h1',{staticClass:\"headline font-weight-light\"},[_vm._v(_vm._s(_vm.title))]),_c('span',{staticClass:\"body-2 font-weight-regular\"},[_vm._v(_vm._s(_vm.description))]),_c('br'),_c('span',{staticClass:\"caption\"},[_vm._v(_vm._s(_vm.caption))])])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FigureCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FigureCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FigureCard.vue?vue&type=template&id=7e4e3e9f&scoped=true&\"\nimport script from \"./FigureCard.vue?vue&type=script&lang=js&\"\nexport * from \"./FigureCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FigureCard.vue?vue&type=style&index=0&id=7e4e3e9f&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7e4e3e9f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{attrs:{\"grid-list-lg\":\"\",\"fluid\":\"\"}},[_c('v-layout',{attrs:{\"wrap\":\"\"}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./WidgetGrid.vue?vue&type=template&id=56548546&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-sheet',{staticClass:\"py-4\",staticStyle:{\"position\":\"relative\"}},[_c('div',{staticClass:\"text-center grey--text\"},[_vm._t(\"title\",function(){return [_vm._v(_vm._s(_vm.title))]})],2),_c('div',{staticClass:\"text-h4 text-center\"},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.value))]})],2),(_vm.subtitle)?_c('div',{staticClass:\"text-center subtitle-2 grey--text\"},[_vm._t(\"subtitle\",function(){return [_vm._v(_vm._s(_vm.subtitle))]})],2):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TitleSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TitleSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TitleSheet.vue?vue&type=template&id=7ac3352b&\"\nimport script from \"./TitleSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./TitleSheet.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-skeleton-loader',{staticClass:\"mb-3\",attrs:{\"loading\":_vm.loading,\"type\":\"actions\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TitleSheets.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TitleSheets.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TitleSheets.vue?vue&type=template&id=4d9173eb&\"\nimport script from \"./TitleSheets.vue?vue&type=script&lang=js&\"\nexport * from \"./TitleSheets.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-icon',{attrs:{\"color\":_vm.iconColor,\"left\":_vm.left,\"right\":_vm.right}},[_vm._v(_vm._s(_vm.iconValue))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComparisonIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComparisonIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ComparisonIcon.vue?vue&type=template&id=cdf75d2e&\"\nimport script from \"./ComparisonIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./ComparisonIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-autocomplete',{attrs:{\"value\":_vm.selection,\"label\":_vm.label || _vm.$t('entitySearchAutocomplete.label'),\"loading\":_vm.$wait.is(`queryEntities-${_vm.autoCompleteId}`),\"items\":_vm.items,\"search-input\":_vm.searchText,\"autofocus\":_vm.autofocus,\"clearable\":\"\",\"deletable-chips\":\"\",\"item-text\":\"Name\",\"item-value\":\"Id\",\"prepend-icon\":_vm.prependIcon,\"hide-details\":_vm.hideDetails,\"hide-no-data\":!!_vm.value,\"hide-selected\":\"\",\"dense\":_vm.dense,\"flat\":_vm.flat,\"solo\":_vm.solo,\"solo-inverted\":_vm.soloInverted,\"outlined\":_vm.outlined,\"multiple\":_vm.multiple,\"chips\":_vm.chips,\"filled\":_vm.filled,\"disabled\":_vm.disabled,\"rules\":_vm.rules || []},on:{\"input\":function($event){return _vm.handleInput($event)},\"update:searchInput\":function($event){_vm.searchText=$event},\"update:search-input\":function($event){_vm.searchText=$event},\"change\":function($event){_vm.searchText=''}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(!_vm.searchText)?_c('v-list-item',{on:{\"click\":function($event){return _vm.queryEntitiesWithCurrentQuery()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"search\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('entitySearchAutocomplete.typePrompt'))+\" \")])],1):(!_vm.supportCreate)?_c('v-list-item',{on:{\"click\":function($event){return _vm.queryEntitiesWithCurrentQuery()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"search\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('entitySearchAutocomplete.noDataPrompt'))+\" \")])],1):_c('v-list-item',{on:{\"click\":function($event){return _vm.createDummyEntity(_vm.searchText)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"add\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('entitySearchAutocomplete.createPrompt'))+\" \")])],1)]},proxy:true},{key:\"prepend-item\",fn:function(){return [(!_vm.disableSaveCustomView && _vm.value !== null)?_c('PostCustomViewDialog',{attrs:{\"customView\":_vm.spendUsageOptions},on:{\"http2xx\":function($event){return _vm.loadReports()}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-avatar',[_c('v-icon',[_vm._v(\"save\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('entitySearchAutocomplete.saveCustomView'))+\" \")])],1)],1)]}}],null,false,799401271),model:{value:(_vm.isCreating),callback:function ($$v) {_vm.isCreating=$$v},expression:\"isCreating\"}}):_vm._e()]},proxy:true},{key:\"item\",fn:function({ item }){return [_c('v-list-item-avatar',[_c('entity-type-icon',{attrs:{\"value\":item.Type}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.Name))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(item.Description))])],1)]}},{key:\"prepend\",fn:function(){return [_vm._t(\"prepend\")]},proxy:true},{key:\"append\",fn:function(){return [_vm._t(\"append\")]},proxy:true},{key:\"append-outer\",fn:function(){return [_vm._t(\"append-outer\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","enum CloudProviderType {\r\n azure = 'Azure',\r\n amazon = 'Amazon',\r\n google = 'Google',\r\n softLayer = 'Softlayer',\r\n vmWare = 'VmWare',\r\n alibaba = 'Alibaba',\r\n custom = 'Custom',\r\n oracle = 'Oracle',\r\n snowflake = 'SnowFlake'\r\n}\r\n\r\nexport default CloudProviderType;","enum EntityType {\r\n service = 'Service',\r\n subscription = 'Subscription',\r\n cloudAccount = 'CloudAccount',\r\n tag = 'Tag',\r\n tagKey = 'TagKey',\r\n region = 'Region',\r\n product = 'Product',\r\n productCategory = 'ProductCategory',\r\n geography = 'Geography',\r\n meter = 'Meter',\r\n cloudProvider = 'CloudProvider',\r\n reservation = 'Reservation',\r\n customView = 'CustomView'\r\n}\r\n\r\nenum PluralEntityType {\r\n services = 'services',\r\n subscriptions = 'subscriptions',\r\n cloudAccounts = 'cloudAccounts',\r\n tags = 'tags',\r\n tagKeys = 'tagKeys',\r\n regions = 'regions',\r\n products = 'products',\r\n productCategories = 'productCategories',\r\n cloudProviders = 'cloudProviders',\r\n geographies = 'geographies',\r\n meters = 'meters',\r\n reservations = 'reservations'\r\n}\r\n\r\n\r\n\r\nexport const toPlural = (type: EntityType): PluralEntityType => {\r\n switch (type) {\r\n case EntityType.cloudAccount:\r\n return PluralEntityType.cloudAccounts;\r\n case EntityType.cloudProvider:\r\n return PluralEntityType.cloudProviders;\r\n case EntityType.service:\r\n return PluralEntityType.services;\r\n case EntityType.subscription:\r\n return PluralEntityType.subscriptions;\r\n case EntityType.tag:\r\n return PluralEntityType.tags;\r\n case EntityType.tagKey:\r\n return PluralEntityType.tagKeys;\r\n case EntityType.region:\r\n return PluralEntityType.regions;\r\n case EntityType.product:\r\n return PluralEntityType.products;\r\n case EntityType.productCategory:\r\n return PluralEntityType.productCategories;\r\n case EntityType.geography:\r\n return PluralEntityType.geographies;\r\n case EntityType.meter:\r\n return PluralEntityType.meters;\r\n }\r\n}\r\n\r\nexport const fromPlural = (type: PluralEntityType | PluralEntityType[]): EntityType | EntityType[] => {\r\n if (Array.isArray(type)) {\r\n return type.map(t => fromPlural(t) as EntityType);\r\n }\r\n switch (type) {\r\n case PluralEntityType.cloudAccounts:\r\n return EntityType.cloudAccount;\r\n case PluralEntityType.services:\r\n return EntityType.service;\r\n case PluralEntityType.subscriptions:\r\n return EntityType.subscription;\r\n case PluralEntityType.tags:\r\n return EntityType.tag;\r\n case PluralEntityType.tagKeys:\r\n return EntityType.tagKey;\r\n case PluralEntityType.regions:\r\n return EntityType.region;\r\n case PluralEntityType.products:\r\n return EntityType.product;\r\n case PluralEntityType.productCategories:\r\n return EntityType.productCategory;\r\n case PluralEntityType.geographies:\r\n return EntityType.geography;\r\n case PluralEntityType.meters:\r\n return EntityType.meter;\r\n }\r\n}\r\n\r\nexport { PluralEntityType };\r\nexport default EntityType;","enum CloudAccountType {\r\n azureEa = 'AzureEa',\r\n amazon = 'Amazon',\r\n amazonPax8 = 'AmazonPax8',\r\n azurePax8 = 'AzurePax8',\r\n oracle = 'Oracle',\r\n azure = 'Azure',\r\n google = 'Google',\r\n microsoftCsp = 'MicrosoftCsp',\r\n softlayer = 'SoftLayer',\r\n resellerCustomer = 'ResellerCustomer',\r\n rhipe = 'Rhipe',\r\n selfReferential = 'SelfReferential',\r\n vmWare = 'VmWare',\r\n alibaba = 'Alibaba',\r\n custom = 'Custom',\r\n snowflake = 'SnowFlake',\r\n azurecme = 'AzureCme'\r\n}\r\n\r\nexport default CloudAccountType;","enum CloudCredentialType {\r\n eaPortalApi = 'EaPortalApi',\r\n awsIamUsage = 'AwsIamUsage',\r\n loginMicrosoftAuthorization = 'LoginMicrosoftAuthorization',\r\n oracleIamUsage = 'OracleIamUsage',\r\n rhipeApi = 'RhipeApi',\r\n googleJsonUsage = 'GoogleJsonUsage',\r\n azureActiveDirectoryApplication = 'AzureActiveDirectoryApplication',\r\n eaPortalChinaApi = 'EaPortalChinaApi',\r\n alibabaChinaUsage = 'AlibabaChinaUsage',\r\n awsAssumeRoleUsage = 'AwsAssumeRoleUsage'\r\n}\r\n\r\nexport default CloudCredentialType;","enum RawUsageFields {\r\n chargeDate = 'ChargeDate',\r\n sourceCost = 'SourceCost',\r\n cost = 'Cost',\r\n priceChannels = 'PriceChannels',\r\n currency = 'Currency',\r\n unit = 'Unit',\r\n unitsConsumed = 'UnitsConsumed',\r\n meterId = 'MeterId',\r\n meterName = 'MeterName',\r\n serviceId = 'ServiceId',\r\n serviceName = 'ServiceName',\r\n serviceTypes = 'ServiceTypes',\r\n regionName = 'RegionName',\r\n importId = 'ImportId',\r\n productName = 'ProductName',\r\n tags = 'Tags',\r\n resourceName = 'ResourceName',\r\n metaData = 'MetaData',\r\n altServiceId = 'AltServiceId',\r\n altServiceName = 'AltServiceName',\r\n altUsageItemType = 'AltUsageItemType',\r\n cO2e = 'CO2e',\r\n kWh = 'kWh',\r\n costView = 'CostView'\r\n}\r\n\r\nexport default RawUsageFields;","import {ICustomViewSummaryResult} from '@/models';\r\n\r\nexport default interface IBudgetResult {\r\n id: number;\r\n name: string;\r\n tenantId: string;\r\n customView: ICustomViewSummaryResult;\r\n period: BudgetPeriod;\r\n periodStartDate: Date;\r\n budgetType: BudgetType;\r\n budgetPeriodString: string;\r\n amount: number;\r\n growthRatePercentage?: number;\r\n currencyCode: string;\r\n daysLeftInPeriod: number;\r\n currentPeriodStartDate?: Date;\r\n currentPeriodEndDate?: Date;\r\n currentSpend?: number;\r\n currentPercentage?: number;\r\n projectedSpend?: number;\r\n projectedPercentage?: number;\r\n progressPercentage?: number;\r\n budgetSeries: IBudgetSeriesResult[];\r\n}\r\n\r\nexport interface IBudgetSeriesResult {\r\n period: string;\r\n actualCost: number;\r\n budgetedCost: number;\r\n varianceCost: number;\r\n variancePercentage: number;\r\n}\r\n\r\nexport enum BudgetType {\r\n SpecifiedAmount = 0,\r\n}\r\n\r\nexport enum BudgetPeriod {\r\n Weekly = 0,\r\n Monthly = 1,\r\n Quarterly = 2,\r\n Yearly = 3,\r\n}\r\n\r\nexport interface IBudgetCreateModel {\r\n name: string;\r\n customViewId: number;\r\n period: BudgetPeriod;\r\n periodStartDate: Date;\r\n budgetType: BudgetType;\r\n amount: number;\r\n growthRatePercentage?: number;\r\n}","export interface ISpendUsageTableEntityViewModel {\r\n id: string;\r\n name: string;\r\n type: string;\r\n}\r\n\r\nexport interface ISpendUsageTableItemViewModel {\r\n entities: ISpendUsageTableEntityViewModel[];\r\n total: number;\r\n totalConsumption: number;\r\n unit: string;\r\n isOther?: boolean;\r\n isTotal?: boolean;\r\n timestamp: number;\r\n costView?:string;\r\n}\r\n\r\nexport interface ISpendUsageTableSlotViewModel {\r\n header: string;\r\n year: string;\r\n month: string;\r\n day?: string;\r\n itemSlotName: string;\r\n costValuePropName: string;\r\n unitValuePropName: string;\r\n}\r\n\r\nexport interface ISpendUsageTableRecordsViewModel {\r\n monthSlots: ISpendUsageTableSlotViewModel[];\r\n dailySlots: ISpendUsageTableSlotViewModel[];\r\n records: ISpendUsageTableItemViewModel[];\r\n}\r\n\r\nexport const SpendUsageTableConstants = {\r\n consumptionKeySuffix: '_consumption',\r\n slotDateFormat: 'DD-MM-YYYY'\r\n}\r\n","import IMailingListGetPutModel from \"./IMailingListGetPutModel\";\r\nimport { ICustomViewSummaryResult } from './ICustomViewResult';\r\nimport IWebhookGetPutModel from \"./IWebhookGetPutModel\";\r\n\r\nexport interface IPolicyTemplateModel {\r\n id: number;\r\n name: string;\r\n description: string;\r\n category: string;\r\n}\r\n\r\nexport interface IDimensionModel {\r\n id: number;\r\n label: string;\r\n index: number;\r\n tagKey: string;\r\n}\r\n\r\nexport interface IDeltaSpendStrategyModel {\r\n serviceName: string;\r\n triggerMinDeltaPercent?: number;\r\n triggerMinDeltaAmount?: number;\r\n granularity: string;\r\n comparePeriod: string;\r\n comparePeriodQuantity: number;\r\n description: string;\r\n lineItemType: string;\r\n}\r\n\r\nexport interface IAverageSpendStrategyModel {\r\n averageOverDays?: number;\r\n triggerMinDeltaPercent?: number;\r\n triggerMinDeltaAmount?: number;\r\n granularity: string;\r\n comparePeriod: string;\r\n comparePeriodQuantity: number;\r\n description: string;\r\n lineItemType: string;\r\n}\r\n\r\nexport enum CostView {\r\n usageOnly = 'UsageOnly',\r\n usagePlusFees = 'UsagePlusFees',\r\n feesOnly = 'FeesOnly'\r\n}\r\n\r\nexport interface INewSpendStrategyModel {\r\n triggerMinNewAmount?: number;\r\n compareType: string;\r\n granularity: string;\r\n comparePeriod: string;\r\n comparePeriodQuantity: number;\r\n description: string;\r\n lineItemType: string;\r\n}\r\n\r\nexport interface INewAccountStrategyModel {\r\n triggerMinNewAmount?: number;\r\n comparePeriod: string;\r\n comparePeriodQuantity: number;\r\n description: string;\r\n lineItemType: string;\r\n}\r\n\r\nexport interface IRegionalSpendStrategyModel {\r\n triggerMinUsageAmount: number;\r\n triggerMinRegionCount: number;\r\n description: string;\r\n comparePeriod: string;\r\n comparePeriodQuantity: number;\r\n lineItemType: string;\r\n}\r\n\r\nexport interface IPolicyScheduleModel {\r\n id: number;\r\n frequency: string;\r\n frequencyQuantity: number;\r\n day?: number;\r\n nextScheduled: Date;\r\n emailNotifyList: string;\r\n description: string;\r\n}\r\n\r\nexport interface IPolicyResultModel {\r\n id: number;\r\n cloudAccountId?: string;\r\n cloudAccountName: string;\r\n ranAt: Date;\r\n resultCount: number;\r\n scheduleDescription: string;\r\n dimensionLabel: string;\r\n resultPages: { [index: number]: number };\r\n}\r\n\r\nexport interface IPolicyResultWithPolicyModel extends IPolicyResultModel {\r\n policyId: number;\r\n policyName: string;\r\n severity: string;\r\n}\r\n\r\nexport default interface IPolicyModel {\r\n id: number;\r\n name: string;\r\n dimension: IDimensionModel;\r\n severity: string;\r\n description: string;\r\n strategySummary: string;\r\n lineItemType: string;\r\n deltaSpendStrategy?: IDeltaSpendStrategyModel;\r\n newSpendStrategy?: INewSpendStrategyModel; \r\n regionalSpendStrategy?: IRegionalSpendStrategyModel;\r\n newAccountStrategy?: INewAccountStrategyModel;\r\n averageSpendStrategy?: IAverageSpendStrategyModel;\r\n schedule?: IPolicyScheduleModel;\r\n mailingList?: IMailingListGetPutModel;\r\n customView?: Partial | null;\r\n webhook?: Partial | null;\r\n createdDate: Date;\r\n updatedDate: Date;\r\n lastRun?: Date;\r\n lastRunRecordCount: number;\r\n}\r\n\r\nexport interface IPolicySummaryModel {\r\n totalCritical: number;\r\n totalWarning: number;\r\n totalPolicies: number;\r\n totalResultCount: number;\r\n}","import dayjs from 'dayjs';\r\nimport utc from 'dayjs/plugin/utc';\r\nimport calendar from 'dayjs/plugin/calendar';\r\nimport advancedFormat from 'dayjs/plugin/advancedFormat';\r\ndayjs.extend(utc)\r\ndayjs.extend(calendar);\r\ndayjs.extend(advancedFormat);\r\nexport default dayjs;","import moment from '@/lib/moment';\r\nimport { Granularity } from '@/models';\r\n\r\nexport function granularityForDateRange(\r\n range: [] | [Date] | [Date, Date]\r\n): null | Granularity.daily | Granularity.monthly {\r\n if (!range.length) return null;\r\n if (range.length === 1) return Granularity.daily;\r\n const dayDifference = moment(range[1]).diff(moment(range[0]), 'days');\r\n return dayDifference > 90 ? Granularity.monthly : Granularity.daily;\r\n}\r\n\r\nexport default class DateKey {\r\n public key: string;\r\n public granularity?: string;\r\n public total?: number;\r\n public isCustom: boolean;\r\n public isValid: boolean;\r\n public startDate?: Date;\r\n public endDate?: Date;\r\n\r\n constructor(key: any) {\r\n\r\n if (typeof key !== 'string') {\r\n this.isValid = false;\r\n return;\r\n } else {\r\n this.key = key as string;\r\n }\r\n\r\n if (key === 'custom') {\r\n this.granularity = null;\r\n this.total = null;\r\n this.isCustom = true;\r\n this.isValid = true;\r\n } else if (key === 'lastMonth') {\r\n this.granularity = 'Daily';\r\n this.total = null;\r\n this.isCustom = false;\r\n this.isValid = true;\r\n } else if (key === 'thisMonth') {\r\n this.granularity = 'Daily';\r\n this.total = null;\r\n this.isCustom = false;\r\n this.isValid = true;\r\n } else if (key === 'all') {\r\n this.granularity = 'Monthly';\r\n this.total = null;\r\n this.isCustom = false;\r\n this.isValid = true;\r\n } else if (key.endsWith('d')) {\r\n this.granularity = 'Daily';\r\n this.total = Number(key.substring(0, key.length - 1));\r\n this.isCustom = false;\r\n this.isValid = true;\r\n } else if (key.endsWith('m')) {\r\n this.granularity = 'Monthly';\r\n this.total = Number(key.substring(0, key.length - 1));\r\n this.isCustom = false;\r\n this.isValid = true;\r\n } else {\r\n this.isValid = false;\r\n }\r\n }\r\n\r\n public getEffectiveDateRange(fromDate?: Date | null, toDate?: Date | null): [] | [Date] | [Date, Date] {\r\n if (!this.isValid) return [ undefined, undefined ];\r\n const toDateMoment = toDate ? moment.utc(toDate) : moment.utc();\r\n if (this.key === 'custom') {\r\n return [fromDate, toDate].filter(r => !!r) as [] | [Date] | [Date, Date];\r\n } else if (this.key === 'lastMonth') {\r\n const relativeFrom = toDateMoment.add(-1, 'months');\r\n const endDate = relativeFrom.endOf('month').toDate();\r\n const startDate = relativeFrom.startOf('month').toDate();\r\n return [startDate, endDate];\r\n } else if (this.key === 'thisMonth') {\r\n const relativeFrom = toDateMoment;\r\n const endDate = relativeFrom.endOf('month').toDate();\r\n const startDate = relativeFrom.startOf('month').toDate();\r\n return [startDate, endDate];\r\n } else if (this.key === 'all') {\r\n const relativeFrom = toDateMoment;\r\n const endDate = relativeFrom.endOf('month').toDate();\r\n const startDate = relativeFrom.add(-13, 'months').startOf('month').toDate();\r\n return [startDate, endDate];\r\n } else if (this.key.endsWith('d')) {\r\n const relativeFrom = toDateMoment;\r\n const endDate = relativeFrom.endOf('day').toDate();\r\n const startDate = relativeFrom.add(-1 * this.total, 'days').startOf('day').toDate();\r\n return [startDate, endDate];\r\n } else if (this.key.endsWith('m')) {\r\n const relativeFrom = toDateMoment;\r\n const endDate = relativeFrom.endOf('month').toDate();\r\n const startDate = relativeFrom.add(-1 * this.total, 'months').startOf('month').toDate();\r\n return [startDate, endDate];\r\n }\r\n return [];\r\n }\r\n}\r\n","import { v4 as uuidv4 } from 'uuid';\r\n\r\nexport type PartialPick = Partial & Pick;\r\nexport type OmitExcept = Omit;\r\n\r\nexport type Dictionary = { [key: string]: T[] };\r\n\r\nexport const groupBy = (xs: T[], key: Key): Dictionary => {\r\n return xs.reduce((rv: Dictionary, x: T) => {\r\n (rv[x[key] as unknown as string] = rv[x[key] as unknown as string] || []).push(x);\r\n return rv;\r\n }, {} as Dictionary);\r\n}\r\n\r\nexport const unique = (val: TVal, index: number, self: TVal[]) => !!val && self.indexOf(val) === index;\r\n\r\nexport const uuid = () => uuidv4();\r\n\r\nexport const MAX_DATETIMESTAMP = 8640000000000000;\r\nexport const MIN_DATETIMESTAMP = -1 * MAX_DATETIMESTAMP;\r\nexport const reverseTimestamp = (date: Date | number | string): number => {\r\n if (date instanceof Date) {\r\n return MAX_DATETIMESTAMP - date.getTime();\r\n } else if (typeof date === 'number') {\r\n return MAX_DATETIMESTAMP - date;\r\n } else if (typeof date === 'string') {\r\n return MAX_DATETIMESTAMP - new Date(date).getTime();\r\n } else {\r\n throw new Error(`Unsupported type ${date}`);\r\n }\r\n}\r\n\r\nexport const appendValueToCommaString = (inputArray: string, value: string | string[], separator = ',') =>\r\n (inputArray || '')\r\n .split(separator)\r\n .concat(value)\r\n .filter(unique)\r\n .join(separator);","import DateKey from \"@/lib/DateKey\";\r\nimport EntityType, { PluralEntityType } from \"./EntityType\";\r\nimport Granularity from \"./Granularity\";\r\nimport { ISavedReportResultParams } from \"./ISavedReportResult\";\r\nimport ISpendParameters from \"./ISpendParameters\";\r\nimport { OmitExcept, appendValueToCommaString } from \"@/lib\";\r\nimport { SpendUsageOptions } from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\n\r\nexport const generateSpendUsageOptionsFromReport = (r: ISavedReportResultParams): OmitExcept => {\r\n const dateKey = new DateKey(r.dateRangeKey);\r\n const fromDate = dateKey.isCustom ? new Date(r.fromDate) : null;\r\n const toDate = dateKey.isCustom ? new Date(r.toDate) : null;\r\n const dates = dateKey.getEffectiveDateRange(fromDate, toDate);\r\n\r\n const p: OmitExcept = {\r\n granularity: r.granularity === Granularity.daily || r.granularity === Granularity.monthly\r\n ? r.granularity\r\n : Granularity.daily,\r\n toDate: dates[1],\r\n fromDate: dates[0],\r\n topXResults: r.topXResults,\r\n dateRangeKey: r.dateRangeKey,\r\n savedViewId: r.savedViewId,\r\n forecastRangeKey: r.granularity === Granularity.daily ? '7d' : '3m'\r\n };\r\n\r\n const subscriptionIds: string[] = [],\r\n serviceIds: string[] = [],\r\n cloudAccountIds: string[] = [],\r\n productIds: string[] = [],\r\n regionNames: string[] = [],\r\n geographyNames: string[] = [];\r\n let tag: string | null = null;\r\n let cloudProvider: string | null = null;\r\n let savedViewId: string | null = null;\r\n let productCategory: string | null = null;\r\n\r\n r.filters.forEach((i) => {\r\n if (i.type === EntityType.subscription) {\r\n subscriptionIds.push(i.id);\r\n } else if (i.type === EntityType.service) {\r\n serviceIds.push(i.id);\r\n } else if (i.type === EntityType.cloudAccount) {\r\n cloudAccountIds.push(i.id);\r\n } else if (i.type === EntityType.product) {\r\n productIds.push(i.id);\r\n } else if (i.type === EntityType.region) {\r\n regionNames.push(i.name);\r\n } else if (i.type === EntityType.geography) {\r\n geographyNames.push(i.name);\r\n } else if (i.type === EntityType.tag) {\r\n tag = i.id;\r\n } else if (i.type === EntityType.cloudProvider) {\r\n cloudProvider = i.name;\r\n } else if (i.type === EntityType.customView) {\r\n savedViewId = i.id;\r\n } else if (i.type === EntityType.productCategory) {\r\n productCategory = i.name;\r\n }\r\n });\r\n\r\n if (productIds.length)\r\n p.productId = productIds[0];\r\n if (cloudAccountIds.length)\r\n p.cloudAccountId = cloudAccountIds[0];\r\n if (serviceIds.length)\r\n p.serviceId = serviceIds[0];\r\n if (subscriptionIds.length)\r\n p.subscriptionIds = subscriptionIds;\r\n if (serviceIds.length)\r\n p.serviceId = serviceIds[0];\r\n if (regionNames.length)\r\n p.regionName = regionNames[0];\r\n if (geographyNames.length)\r\n p.geographyName = geographyNames[0];\r\n if (tag)\r\n p.tagKeyValue = tag;\r\n if (cloudProvider)\r\n p.providerType = cloudProvider;\r\n if (savedViewId)\r\n p.savedViewId = savedViewId;\r\n if (productCategory)\r\n p.productCategory = productCategory;\r\n\r\n const segregatedBy = (r.segregateBy || '').split(',');\r\n if (segregatedBy.length > 1) {\r\n p.segregateBy = segregatedBy as PluralEntityType[];\r\n } else if (segregatedBy.length) {\r\n p.segregateBy = segregatedBy[0] as PluralEntityType;\r\n }\r\n\r\n return p;\r\n}\r\n\r\nexport const generateSpendParametersFromReport = (r: ISavedReportResultParams): OmitExcept => {\r\n\r\n const dateKey = new DateKey(r.dateRangeKey);\r\n const fromDate = dateKey.isCustom ? new Date(r.fromDate) : null;\r\n const toDate = dateKey.isCustom ? new Date(r.toDate) : null;\r\n const dates = dateKey.getEffectiveDateRange(fromDate, toDate);\r\n\r\n const p: OmitExcept = {\r\n granularity: r.granularity === Granularity.daily || r.granularity === Granularity.monthly\r\n ? r.granularity\r\n : Granularity.daily,\r\n toDate: dates[1].toISOString(),\r\n fromDate: dates[0].toISOString(),\r\n topXResults: r.topXResults,\r\n topBy: '',\r\n cloudAccountIds: '',\r\n geographyNames: '',\r\n productCategories: '',\r\n productIds: '',\r\n providerType: '',\r\n regionNames: '',\r\n serviceIds: '',\r\n tagKeyValue: '',\r\n subscriptionIds: '',\r\n tagKeyValues: '',\r\n reservationId: '',\r\n };\r\n\r\n const subscriptionIds: string[] = [],\r\n serviceIds: string[] = [],\r\n cloudAccountIds: string[] = [],\r\n productIds: string[] = [],\r\n regionNames: string[] = [],\r\n geographyNames: string[] = [];\r\n let tag: string | null = null;\r\n let cloudProvider: string | null = null;\r\n let savedViewId: string | null = null;\r\n\r\n r.filters.forEach((i) => {\r\n if (i.type === EntityType.subscription) {\r\n subscriptionIds.push(i.id);\r\n } else if (i.type === EntityType.service) {\r\n serviceIds.push(i.id);\r\n } else if (i.type === EntityType.cloudAccount) {\r\n cloudAccountIds.push(i.id);\r\n } else if (i.type === EntityType.product) {\r\n productIds.push(i.id);\r\n } else if (i.type === EntityType.region) {\r\n regionNames.push(i.name);\r\n } else if (i.type === EntityType.geography) {\r\n geographyNames.push(i.name);\r\n } else if (i.type === EntityType.tag) {\r\n tag = i.id;\r\n } else if (i.type === EntityType.cloudProvider) {\r\n cloudProvider = i.name;\r\n } else if (i.type === EntityType.customView) {\r\n savedViewId = i.id;\r\n }\r\n });\r\n\r\n p.productIds = appendValueToCommaString('', productIds);\r\n p.cloudAccountIds = appendValueToCommaString('', cloudAccountIds);\r\n p.serviceIds = appendValueToCommaString('', serviceIds);\r\n p.subscriptionIds = appendValueToCommaString('', subscriptionIds);\r\n p.regionNames = appendValueToCommaString('', regionNames);\r\n p.geographyNames = appendValueToCommaString('', geographyNames);\r\n p.tagKeyValue = tag;\r\n p.providerType = cloudProvider;\r\n p.savedViewId = savedViewId || r.savedViewId || null;\r\n\r\n return p;\r\n};","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('customView-card-dialog',{attrs:{\"value\":_vm.value,\"customView\":_vm.customView,\"loading\":_vm.$wait.is('creatingCustomView')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ form, formId, isValid, loading, close }){return [_c('post-customView-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingCustomView'),expression:\"'creatingCustomView'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCreation($event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('customView-card',{attrs:{\"value\":_vm.customView,\"init\":_vm.customView,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(actionBindings){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_vm._t(\"default\",null,null,{ ...actionBindings, close })]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.title || _vm.$t('setCustomViewCard.title'),\"subtitle\":_vm.subtitle || _vm.$t('setCustomViewCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.form,\"formId\":formId,\"isValid\":_vm.isValid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-select',{attrs:{\"label\":\"Filter by\",\"multiple\":\"\",\"items\":_vm.displayFilterTypes,\"item-text\":\"name\",\"item-value\":\"id\",\"chips\":\"\",\"deletable-chips\":\"\"},model:{value:(_vm.filterTypes),callback:function ($$v) {_vm.filterTypes=$$v},expression:\"filterTypes\"}}),(_vm.shouldHaveCloudAccountFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.cloudAccounts.title'),\"types\":['CloudAccount'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.cloudAccounts),callback:function ($$v) {_vm.cloudAccounts=$$v},expression:\"cloudAccounts\"}}):_vm._e(),(_vm.shouldHaveSubscriptionFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.subscriptions.title'),\"types\":['Subscription'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.subscriptions),callback:function ($$v) {_vm.subscriptions=$$v},expression:\"subscriptions\"}}):_vm._e(),(_vm.shouldHaveProductFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.products.title'),\"types\":['Product'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.products),callback:function ($$v) {_vm.products=$$v},expression:\"products\"}}):_vm._e(),(_vm.shouldHaveServiceFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.services.title'),\"types\":['Service'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.services),callback:function ($$v) {_vm.services=$$v},expression:\"services\"}}):_vm._e(),(_vm.shouldHaveRegionFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.regions.title'),\"types\":['Region'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.regions),callback:function ($$v) {_vm.regions=$$v},expression:\"regions\"}}):_vm._e(),(_vm.shouldHaveGeographyFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.geographies.title'),\"types\":['Geography'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.geographies),callback:function ($$v) {_vm.geographies=$$v},expression:\"geographies\"}}):_vm._e(),(_vm.shouldHaveProductCategoryFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.productCategories.title'),\"types\":['ProductCategory'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.productCategories),callback:function ($$v) {_vm.productCategories=$$v},expression:\"productCategories\"}}):_vm._e(),(_vm.shouldHaveProviderTypeFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.providerTypes.title'),\"types\":['CloudProvider'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.providerTypes),callback:function ($$v) {_vm.providerTypes=$$v},expression:\"providerTypes\"}}):_vm._e(),(_vm.shouldHaveTagFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.tagKeyValues.title'),\"types\":['Tag'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.tagKeyValues),callback:function ($$v) {_vm.tagKeyValues=$$v},expression:\"tagKeyValues\"}}):_vm._e(),(_vm.shouldHaveTagKeyFilters)?_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('setCustomViewCard.tagKeys.title'),\"types\":['TagKey'],\"multiple\":true,\"disable-save-custom-view\":\"\"},model:{value:(_vm.tagKeys),callback:function ($$v) {_vm.tagKeys=$$v},expression:\"tagKeys\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, computed, watch } from 'vue';\r\nimport { ISearchEntityViewModel } from '@/components/Common/EntitySearchAutocomplete.vue';\r\nimport { ICustomViewResult, IDescriptorResult } from '@/models';\r\nimport EntityType, { toPlural } from '@/models/EntityType';\r\nimport { CloudProviderType } from '@/models';\r\n\r\nconst convert = (m: ISearchEntityViewModel): IDescriptorResult => ({ id: m.Id, name: m.Name });\r\nconst createEntity = (id: string, name: string, entityType: EntityType, index: number) =>\r\n ({\r\n Id: id,\r\n Name: name,\r\n Description: null,\r\n Provider: null,\r\n Type: entityType,\r\n EntityIndex: index,\r\n } as ISearchEntityViewModel);\r\n\r\nconst filters = (init) => {\r\n const filters = [] as EntityType[];\r\n if (init?.cloudAccountIds?.length > 0) {\r\n filters.push(EntityType.cloudAccount);\r\n }\r\n if (init?.subscriptionIds?.length > 0) {\r\n filters.push(EntityType.subscription);\r\n }\r\n if (init?.sysProductIds?.length > 0) {\r\n filters.push(EntityType.product);\r\n }\r\n if (init?.sysServiceIds?.length > 0) {\r\n filters.push(EntityType.service);\r\n }\r\n if (init?.regions?.length > 0) {\r\n filters.push(EntityType.region);\r\n }\r\n if (init?.geographies?.length > 0) {\r\n filters.push(EntityType.geography);\r\n }\r\n if (init?.productCategories?.length > 0) {\r\n filters.push(EntityType.productCategory);\r\n }\r\n if (init?.cloudProviderTypes?.length > 0) {\r\n filters.push(EntityType.cloudProvider);\r\n }\r\n if (init?.tagKeyValues?.length > 0) {\r\n filters.push(EntityType.tag);\r\n }\r\n if (init?.tagKeys?.length > 0) {\r\n filters.push(EntityType.tagKey);\r\n }\r\n return filters;\r\n};\r\n\r\nconst createFilters = (currentFilters, array, entityType) => {\r\n const elementInArray = currentFilters?.find((element) => element === entityType);\r\n if (elementInArray && array?.length === 0) {\r\n const removeFilter = currentFilters.filter((filter) => filter !== entityType);\r\n return removeFilter;\r\n }\r\n if (!elementInArray && array?.length > 0) {\r\n currentFilters.push(entityType);\r\n }\r\n return currentFilters;\r\n};\r\n\r\nconst getCloudAccounts = (cloudAccountIds) => {\r\n return (\r\n cloudAccountIds?.map((cloudAccountId: IDescriptorResult, index: number) =>\r\n createEntity(cloudAccountId.id, cloudAccountId.name, EntityType.cloudAccount, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getSubscriptions = (subscriptionIds) => {\r\n return (\r\n subscriptionIds?.map((subscriptionId: IDescriptorResult, index: number) =>\r\n createEntity(subscriptionId.id, subscriptionId.name, EntityType.subscription, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getProducts = (sysProductIds) => {\r\n return (\r\n sysProductIds?.map((productId: IDescriptorResult, index: number) =>\r\n createEntity(productId.id, productId.name, EntityType.product, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getServices = (sysServiceIds) => {\r\n return (\r\n sysServiceIds?.map((serviceId: IDescriptorResult, index: number) =>\r\n createEntity(serviceId.id, serviceId.name, EntityType.service, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getRegions = (regions?) => {\r\n return (\r\n regions?.map((region: string, index: number) => createEntity(region, region, EntityType.region, index)) ?? []\r\n );\r\n};\r\n\r\nconst getGeographies = (geographies) => {\r\n return (\r\n geographies?.map((geography: string, index: number) =>\r\n createEntity(geography, geography, EntityType.geography, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getProductCategories = (productCategories) => {\r\n return (\r\n productCategories?.map((productCategory: string, index: number) =>\r\n createEntity(productCategory, productCategory, EntityType.productCategory, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getProviderTypes = (cloudProviderTypes) => {\r\n return (\r\n cloudProviderTypes?.map((cloudProviderType: string, index: number) =>\r\n createEntity(\r\n cloudProviderType,\r\n Object.values(CloudProviderType)[cloudProviderType],\r\n EntityType.cloudProvider,\r\n index\r\n )\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getTagKeyValues = (tagKeyValues) => {\r\n return (\r\n tagKeyValues?.map((tagKeyValue: string, index: number) =>\r\n createEntity(tagKeyValue, tagKeyValue, EntityType.tag, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nconst getTagKeys = (tagKeys) => {\r\n return (\r\n tagKeys?.map((existingTag: string, index: number) =>\r\n createEntity(existingTag, existingTag, EntityType.tagKey, index)\r\n ) ?? []\r\n );\r\n};\r\n\r\nexport default defineComponent({\r\n props: { title: String, subtitle: String, loading: Boolean, init: Object },\r\n setup(p) {\r\n const isValid = ref(false);\r\n const id = ref(p.init?.id ?? -1);\r\n const name = ref(p.init?.name ?? '');\r\n\r\n const allFilterTypes = ref([\r\n EntityType.cloudAccount,\r\n EntityType.cloudProvider,\r\n EntityType.geography,\r\n EntityType.product,\r\n EntityType.service,\r\n EntityType.region,\r\n EntityType.tag,\r\n EntityType.tagKey,\r\n EntityType.subscription,\r\n EntityType.productCategory,\r\n ]);\r\n\r\n const filterTypes = ref(filters(p.init));\r\n\r\n const shouldHaveCloudAccountFilters = computed(() => filterTypes.value.includes(EntityType.cloudAccount));\r\n const cloudAccounts = ref(getCloudAccounts(p.init?.cloudAccountIds));\r\n\r\n const shouldHaveSubscriptionFilters = computed(() => filterTypes.value.includes(EntityType.subscription));\r\n const subscriptions = ref(getSubscriptions(p.init?.subscriptionIds));\r\n\r\n const shouldHaveProductFilters = computed(() => filterTypes.value.includes(EntityType.product));\r\n const products = ref(getProducts(p.init?.sysProductIds));\r\n\r\n const shouldHaveServiceFilters = computed(() => filterTypes.value.includes(EntityType.service));\r\n const services = ref(getServices(p.init?.sysServiceIds));\r\n\r\n const shouldHaveRegionFilters = computed(() => filterTypes.value.includes(EntityType.region));\r\n const regions = ref(getRegions(p.init?.regions));\r\n\r\n const shouldHaveGeographyFilters = computed(() => filterTypes.value.includes(EntityType.geography));\r\n const geographies = ref(getGeographies(p.init?.geographies));\r\n\r\n const shouldHaveProductCategoryFilters = computed(() => filterTypes.value.includes(EntityType.productCategory));\r\n const productCategories = ref(getProductCategories(p.init?.productCategories));\r\n\r\n const shouldHaveProviderTypeFilters = computed(() => filterTypes.value.includes(EntityType.cloudProvider));\r\n const providerTypes = ref(getProviderTypes(p.init?.cloudProviderTypes));\r\n\r\n const shouldHaveTagFilters = computed(() => filterTypes.value.includes(EntityType.tag));\r\n const tagKeyValues = ref(getTagKeyValues(p.init?.tagKeyValues));\r\n\r\n const shouldHaveTagKeyFilters = computed(() => filterTypes.value.includes(EntityType.tagKey));\r\n const tagKeys = ref(getTagKeys(p.init?.tagKeys));\r\n\r\n const form = computed(() => {\r\n return {\r\n id: id.value,\r\n name: name.value,\r\n cloudAccountIds: cloudAccounts.value.map(convert),\r\n subscriptionIds: subscriptions.value.map(convert),\r\n sysProductIds: products.value.map(convert),\r\n sysServiceIds: services.value.map(convert),\r\n regions: regions.value.map((c) => c.Name),\r\n geographies: geographies.value.map((c) => c.Id),\r\n productCategories: productCategories.value.map((c) => c.Name),\r\n cloudProviderTypes: providerTypes.value.map((c) => c.Id),\r\n tagKeyValues: tagKeyValues.value.map((c) => c.Id),\r\n tagKeys: tagKeys.value.map((t) => t.Id),\r\n } as ICustomViewResult;\r\n });\r\n return {\r\n id,\r\n name,\r\n cloudAccounts,\r\n subscriptions,\r\n products,\r\n services,\r\n regions,\r\n geographies,\r\n productCategories,\r\n providerTypes,\r\n tagKeyValues,\r\n tagKeys,\r\n isValid,\r\n form,\r\n filterTypes,\r\n shouldHaveCloudAccountFilters,\r\n shouldHaveGeographyFilters,\r\n shouldHaveProductCategoryFilters,\r\n shouldHaveProductFilters,\r\n shouldHaveProviderTypeFilters,\r\n shouldHaveRegionFilters,\r\n shouldHaveServiceFilters,\r\n shouldHaveSubscriptionFilters,\r\n shouldHaveTagFilters,\r\n shouldHaveTagKeyFilters,\r\n allFilterTypes,\r\n };\r\n },\r\n watch: {\r\n 'init.id': function (newVal, oldVal) {\r\n this.id = newVal;\r\n },\r\n 'init.name': function (newVal, oldVal) {\r\n this.name = newVal;\r\n },\r\n 'init.cloudAccountIds': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.cloudAccount);\r\n this.cloudAccounts = getCloudAccounts(newVal);\r\n },\r\n 'init.subscriptionIds': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.subscription);\r\n this.subscriptions = getSubscriptions(newVal);\r\n },\r\n 'init.sysProductIds': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.product);\r\n this.products = getProducts(newVal);\r\n },\r\n 'init.sysServiceIds': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.service);\r\n this.services = getServices(newVal);\r\n },\r\n 'init.regions': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.region);\r\n this.regions = getRegions(newVal);\r\n },\r\n 'init.geographies': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.geography);\r\n this.geographies = getGeographies(newVal);\r\n },\r\n 'init.productCategories': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.productCategory);\r\n this.productCategories = getProductCategories(newVal);\r\n },\r\n 'init.cloudProviderTypes': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.cloudProvider);\r\n this.providerTypes = getProviderTypes(newVal);\r\n },\r\n 'init.tagKeyValues': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.tag);\r\n this.tagKeyValues = getTagKeyValues(newVal);\r\n },\r\n 'init.tagKeys': function (newVal, oldVal) {\r\n this.filterTypes = createFilters(this.filterTypes, newVal, EntityType.tagKey);\r\n this.tagKeys = getTagKeys(newVal);\r\n },\r\n },\r\n computed: {\r\n displayFilterTypes() {\r\n return this.allFilterTypes.map((i: EntityType) => ({\r\n id: i,\r\n name: this.$t(`setCustomViewCard.${toPlural(i)}.title`),\r\n }));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCustomViewCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCustomViewCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCustomViewCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCustomViewCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetCustomViewCard.vue?vue&type=template&id=4b033838&\"\nimport script from \"./SetCustomViewCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetCustomViewCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetCustomViewCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewCardDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewCardDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomViewCardDialog.vue?vue&type=template&id=274908d4&\"\nimport script from \"./CustomViewCardDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomViewCardDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/customViews\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners),[_vm._v(\" \"+_vm._s(_vm.$t('postCustomViewButton.saveAndView'))+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postCustomViewButton.errorMessage\": \"There was an error encountered while creating this customView. If everything looks right please contact support so we can help you :)\",\r\n \"postCustomViewButton.saveAndView\": \"Save and View\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostCustomViewButton.vue?vue&type=template&id=406ed54e&\"\nimport script from \"./PostCustomViewButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PostCustomViewButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postCustomViewDialog.events.successfulCreation\": \"Successfully created the customView '{customViewName}'\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostCustomViewDialog.vue?vue&type=template&id=21d2b76e&\"\nimport script from \"./PostCustomViewDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./PostCustomViewDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","// Function to convert a string to a Uint8Array\r\nexport const stringToUint = (string: string): Promise => {\r\n const blob = stringToBlob(string);\r\n return blobToUint8Array(blob);\r\n};\r\n\r\n// Function to serialize a string to a Blob\r\nexport const stringToBlob = (string: string): Blob => {\r\n return new Blob([string], { type: 'text/plain' });\r\n};\r\n\r\n// Function to convert a Blob to a Uint8Array\r\nexport const blobToUint8Array = (blob: Blob): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = function (event) {\r\n resolve(new Uint8Array(event.target.result as ArrayBuffer));\r\n };\r\n reader.onerror = function (error) {\r\n reject(error);\r\n };\r\n reader.readAsArrayBuffer(blob);\r\n });\r\n};\r\n\r\n// Function to deserialize a Blob back to a string\r\nexport const blobToString = (blob: Blob): Promise => {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.onload = function (event) {\r\n resolve(event.target.result as string);\r\n };\r\n reader.onerror = function (error) {\r\n reject(error);\r\n };\r\n reader.readAsText(blob);\r\n });\r\n};\r\n","import * as Models from \"@/models\";\r\nimport ApiV2 from \"./ApiV2\";\r\nimport moment from \"@/lib/moment\";\r\nimport { appendValueToCommaString, OmitExcept } from \"@/lib\";\r\nimport { blobToString, stringToUint } from \"./Uint\";\r\nimport * as G from \"../merge/Grid\";\r\n\r\nexport const getCustomerUsersApi = async (\r\n customerId: string,\r\n): Promise => {\r\n return ApiV2.http.get(`/api/customers/${customerId}/users`).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const getUsage = async (\r\n segregateBy: Models.PluralEntityType,\r\n params: Models.ISpendParameters,\r\n) => {\r\n return await ApiV2.http.get(`/api/spend/${segregateBy.toLowerCase()}`, {\r\n params,\r\n }).then((r) =>\r\n r.data as Models.ISpendResult\r\n );\r\n};\r\n\r\nexport const getSpend = async (\r\n params: Models.ISpendParameters & {\r\n segregateBy: string | string[];\r\n fields?: string | Models.SpendFieldNames[];\r\n },\r\n) => {\r\n if (params.fields && Array.isArray(params.fields)) {\r\n params.fields = params.fields.join(\",\");\r\n }\r\n if (params.segregateBy && Array.isArray(params.segregateBy)) {\r\n params.segregateBy = params.segregateBy.join(\",\");\r\n }\r\n return await ApiV2.http.get(\"/api/spend\", { params }).then((r) =>\r\n r.data as Models.ISpendResult\r\n );\r\n};\r\n\r\nexport const getForecast = async (\r\n params: Models.ISpendParameters,\r\n dateRangeKey: string = null,\r\n forecastRangeKey: string = null,\r\n): Promise => {\r\n switch (dateRangeKey) {\r\n case \"custom\":\r\n return null;\r\n case \"lastMonth\":\r\n case \"thisMonth\":\r\n case \"all\":\r\n break;\r\n default:\r\n if (dateRangeKey.endsWith(\"d\") || dateRangeKey.endsWith(\"m\")) {\r\n let forecastDuration = 0;\r\n let forecastUnit: \"days\" | \"months\" = \"days\"; // Default unit\r\n\r\n if (forecastRangeKey) {\r\n const match = forecastRangeKey.match(/^(\\d+)(d|m)$/);\r\n if (match) {\r\n const [, value, unit] = match;\r\n forecastDuration = parseInt(value, 10);\r\n forecastUnit = unit === \"m\" ? \"months\" : \"days\";\r\n }\r\n }\r\n\r\n // Correct conversion based on granularity\r\n if (params.granularity === Models.Granularity.monthly) {\r\n const monthsToAdd = forecastUnit === \"days\"\r\n ? Math.ceil(forecastDuration / 30) // Convert days to months\r\n : forecastDuration || 2; // Default to 2 months if unspecified\r\n params = {\r\n ...params,\r\n toDate: moment.utc().add(monthsToAdd, \"months\").endOf(\r\n \"month\",\r\n ).toDate().toISOString(),\r\n };\r\n } else if (params.granularity === Models.Granularity.daily) {\r\n const daysToAdd = forecastUnit === \"months\"\r\n ? forecastDuration * 30 // Convert months to days\r\n : forecastDuration || 7; // Default to 7 days if unspecified\r\n params = {\r\n ...params,\r\n toDate: moment.utc().add(daysToAdd, \"days\").toDate()\r\n .toISOString(),\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n return await ApiV2.http.get(`/api/forecast`, { params })\r\n .catch((err) => {\r\n if (err.response.status !== 400) {\r\n console.error(\"Error loading forecast data\", err);\r\n }\r\n return { data: {} };\r\n })\r\n .then((r) => {\r\n //Suggestion: return maxUsageDate as part of the results from the back-end API\r\n const maxUsageDate = r.data.forecasts && r.data.forecasts.length > 0\r\n ? r.data.forecasts.reduce((max, item) => {\r\n return new Date(item.usageDate) > new Date(max.usageDate)\r\n ? item\r\n : max;\r\n }).usageDate\r\n : new Date().toISOString();\r\n const data = r.data as Models.IForecastResult;\r\n data.maxUsageDate = maxUsageDate ?? new Date().toISOString();\r\n return data;\r\n });\r\n};\r\n\r\nexport const getNativeCO2e = async (\r\n segregateBy: Models.PluralEntityType.subscriptions,\r\n params: Models.ISpendParameters,\r\n scope: \"Scope1\" | \"Scope2\" | \"Scope3\",\r\n): Promise> => {\r\n return await ApiV2.http\r\n .get(`/api/nativeco2e/${segregateBy.toLowerCase()}/${scope}`, {\r\n params: { ...params, fields: \"CO2e\" },\r\n })\r\n .then((r) =>\r\n r.data as Models.ICO2EResult\r\n )\r\n .then((r) => {\r\n r.groupings.forEach((g) => {\r\n g.records.forEach((r) => {\r\n r.kwH = 100;\r\n });\r\n });\r\n return r;\r\n });\r\n};\r\n\r\nexport const getCO2e = async (\r\n segregateBy: Models.PluralEntityType,\r\n params: Models.ISpendParameters,\r\n): Promise> => {\r\n return await ApiV2.http\r\n .get(`/api/co2e/${segregateBy.toLowerCase()}`, { params })\r\n .then((r) =>\r\n r.data as Models.ICO2EResult\r\n );\r\n};\r\n\r\nexport const getForecastCO2e = async (\r\n params: Models.ISpendParameters,\r\n dateRangeKey: string = null,\r\n): Promise => {\r\n switch (dateRangeKey) {\r\n case \"custom\":\r\n case \"lastMonth\":\r\n case \"thisMonth\":\r\n case \"all\":\r\n break;\r\n default:\r\n if (dateRangeKey.endsWith(\"d\") || dateRangeKey.endsWith(\"m\")) {\r\n if (params.granularity === Models.Granularity.monthly) {\r\n params = {\r\n ...params,\r\n toDate: moment.utc().add(2, \"months\").endOf(\"month\")\r\n .toDate().toISOString(),\r\n };\r\n } else if (params.granularity === Models.Granularity.daily) {\r\n params = {\r\n ...params,\r\n toDate: moment.utc().add(7, \"days\").toDate()\r\n .toISOString(),\r\n };\r\n }\r\n }\r\n break;\r\n }\r\n return await ApiV2.http.get(`/api/forecast/co2e`, { params })\r\n .catch((err) => {\r\n if (err.response.status != 400) {\r\n console.error(\"Error loading forecast data\", err);\r\n }\r\n return { data: {} };\r\n })\r\n .then((r) => {\r\n const maxUsageDate = r.data.forecasts && r.data.forecasts.length > 0\r\n ? r.data.forecasts.reduce((max, item) => {\r\n return new Date(item.usageDate) > new Date(max.usageDate)\r\n ? item\r\n : max;\r\n }).usageDate\r\n : new Date().toISOString();\r\n const data = r.data as Models.IForecastCo2eResult;\r\n data.maxUsageDate = maxUsageDate ?? new Date().toISOString();\r\n return data;\r\n });\r\n};\r\n\r\nexport const getTagUsage = async (\r\n min: Date,\r\n max: Date,\r\n dimensions: string[],\r\n granularity: Models.Granularity = Models.Granularity.daily,\r\n): Promise => {\r\n return ApiV2.http.get(\r\n `/api/report/tagoverview?min=${min.toISOString()}&max=${max.toISOString()}&dimensions=${\r\n appendValueToCommaString(\"\", dimensions)\r\n }&granularity=${granularity}`,\r\n )\r\n .then((r) => r.data as Models.ISpendByTagResult);\r\n};\r\n\r\nexport const getAllTagKeys = async (): Promise<\r\n Models.IAllTagKeyRequestResult\r\n> => {\r\n return ApiV2.http.get(\"/api/tags/keys\").then((r) =>\r\n r.data as Models.IAllTagKeyRequestResult\r\n );\r\n};\r\n\r\nexport const getTrends = async <\r\n TType extends\r\n | Models.PluralEntityType.products\r\n | Models.PluralEntityType.services\r\n | Models.PluralEntityType.subscriptions\r\n | Models.PluralEntityType.cloudAccounts,\r\n>(segregateBy: TType, params: Models.ICompareParameters): Promise<\r\n TType extends Models.PluralEntityType.products\r\n ? Models.ICompareResult\r\n : TType extends Models.PluralEntityType.services\r\n ? Models.ICompareResult\r\n : TType extends Models.PluralEntityType.subscriptions\r\n ? Models.ICompareResult\r\n : TType extends Models.PluralEntityType.cloudAccounts\r\n ? Models.ICompareResult\r\n : never\r\n> => {\r\n return await ApiV2.http\r\n .get(`/api/cost-explorer/${segregateBy.toLowerCase()}`, { params })\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getTrendsSummary = async (\r\n segregateBy: Models.PluralEntityType.subscriptions,\r\n params: Models.IDaysRangeParameter,\r\n): Promise => {\r\n return await ApiV2.http\r\n .get(`/api/cost-explorer/${segregateBy.toLowerCase()}/summary`, {\r\n params,\r\n })\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getCustomerSummary = async (\r\n min: Date,\r\n max: Date,\r\n): Promise => {\r\n const params = { min: min.toISOString(), max: max.toISOString() };\r\n return await ApiV2.http\r\n .get(\"/api/customers/summary\", { params })\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getRecommendations = async (): Promise<\r\n Models.IGetRecommendationsQueryResponse\r\n> => {\r\n return await ApiV2.http\r\n .get(\"api/recommendations\")\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getMissingCo2eReport = async (\r\n params: Partial,\r\n): Promise => {\r\n return await ApiV2.http\r\n .get(\"api/report/missingco2e\", { params })\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getSavedReports = async (): Promise<\r\n Models.ISavedReportResult[]\r\n> => {\r\n return await ApiV2.http.get(\"/api/savedreports\").then((r) => r.data);\r\n};\r\n\r\nexport const getSavedReport = async (\r\n id: string,\r\n): Promise => {\r\n return await ApiV2.http.get(`/api/savedreports/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const createSavedReport = async (\r\n r: Models.ISavedReportResult,\r\n): Promise => {\r\n return await ApiV2.http.post(\"/api/savedreports\", r).then((r) => r.data);\r\n};\r\n\r\nexport const getCustomViews = async (): Promise => {\r\n return await ApiV2.http.get(\"/api/customViews\").then((r) => r.data);\r\n};\r\n\r\nexport const getCustomView = async (\r\n id: string,\r\n): Promise => {\r\n return await ApiV2.http.get(`/api/customViews/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const createCustomView = async (\r\n customView: Models.ICustomViewResult,\r\n): Promise => {\r\n return await ApiV2.http.post(\"/api/customViews\", customView).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const updateCustomView = async (\r\n id: string,\r\n customView: Models.ICustomViewResult,\r\n): Promise => {\r\n return await ApiV2.http.put(`/api/customViews/${id}`, customView).then((\r\n r,\r\n ) => r.data);\r\n};\r\n\r\nexport const deleteCustomView = async (id: string): Promise => {\r\n return await ApiV2.http.delete(`/api/customViews/${id}`).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const getApiKeys = async (): Promise => {\r\n return await ApiV2.http\r\n .get(\"api/apikeys\")\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const getAllTagMappings = async (): Promise<\r\n Models.IConditionalActionRuleResult[]\r\n> => {\r\n return await ApiV2.http\r\n .get(\"api/actions/rules\")\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const deleteTagMapping = async (id: number): Promise => {\r\n await ApiV2.http.delete(`api/actions/rule/${id}`);\r\n};\r\n\r\nexport const updateTagMapping = async (\r\n id: number,\r\n model: Models.IConditionalActionRuleResult,\r\n): Promise => {\r\n return await ApiV2.http.put(`api/actions/rule/${id}`, model).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const createTagMapping = async (\r\n model: Models.IConditionalActionRuleResult,\r\n): Promise => {\r\n return await ApiV2.http.post(\"api/actions/rule\", model).then((r) => r.data);\r\n};\r\n\r\nexport const reorderTagMappings = async (\r\n models: Partial[],\r\n): Promise => {\r\n return await ApiV2.http.post(\"api/actions/rules/reorder\", models).then(\r\n (r) => r.data\r\n );\r\n};\r\n\r\nexport const getAllSpendLimits = async (): Promise<\r\n Models.ISpendLimitMetaResult[]\r\n> => {\r\n return await ApiV2.http.get(\"api/metadata/spendlimits\").then((r) => r.data);\r\n};\r\n\r\nexport const getAllBudgets = async (): Promise => {\r\n return await ApiV2.http.get(\"api/budgets\").then((r) => r.data);\r\n};\r\n\r\nexport const getCustomViewBudgets = async (\r\n id: string,\r\n): Promise => {\r\n return await ApiV2.http.get(`api/customViews/${id}/budgets`).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const getBudget = async (id: number): Promise => {\r\n return await ApiV2.http.get(`api/budgets/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const deleteBudget = async (id: number): Promise => {\r\n await ApiV2.http.delete(`api/budgets/${id}`);\r\n};\r\n\r\nexport const createBudget = async (\r\n b: Models.IBudgetCreateModel,\r\n): Promise => {\r\n return await ApiV2.http.post(\"api/budgets\", b).then((r) => r.data);\r\n};\r\n\r\nexport const createPolicy = async (\r\n policyModel: Models.IPolicyModel,\r\n): Promise => {\r\n return await ApiV2.http.post(\"/api/policies\", policyModel).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const putPolicy = async (\r\n policyModel: Models.IPolicyModel,\r\n): Promise => {\r\n return await ApiV2.http.put(`/api/policies/${policyModel.id}`, policyModel)\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const listPolicies = async (): Promise => {\r\n return await ApiV2.http.get(\"/api/policies\").then((r) => r.data);\r\n};\r\n\r\nexport const listAllResults = async (): Promise<\r\n Models.IPolicyResultWithPolicyModel[]\r\n> => {\r\n return await ApiV2.http.get(\"/api/policies/results\").then((r) => r.data);\r\n};\r\n\r\nexport const getPolicy = async (id: number): Promise => {\r\n return await ApiV2.http.get(`/api/policies/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const listPolicyResults = async (\r\n id: number,\r\n): Promise => {\r\n return await ApiV2.http.get(`/api/policies/${id}/results`).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const downloadPolicyResultData = async (\r\n id: number,\r\n rid: number,\r\n): Promise => {\r\n return await ApiV2.http.get(`/api/policies/${id}/results/${rid}`).then(\r\n (r) => r.data\r\n );\r\n};\r\n\r\nexport const getPolicySummary = async (): Promise<\r\n Models.IPolicySummaryModel\r\n> => {\r\n return await ApiV2.http.get(\"api/policies/summary\").then((r) => r.data);\r\n};\r\n\r\nexport const listDimensions = async (): Promise => {\r\n return await ApiV2.http.get(\"/api/metadata/dimensions\").then((r) => r.data);\r\n};\r\n\r\nexport const getAllTenantWebhookNames = async (): Promise => {\r\n return getWebhooks().then((r) => r.map((c) => c.name));\r\n};\r\n\r\nexport const getMailingLists = async (): Promise<\r\n Models.IMailingListGetPutModel[]\r\n> => {\r\n return await ApiV2.http.get(\"api/mailinglists\").then((r) => r.data);\r\n};\r\n\r\nexport const getWebhooks = async (): Promise => {\r\n return await ApiV2.http.get(\"api/webhooks\").then((r) => r.data);\r\n};\r\n\r\nexport const getWebhook = async (\r\n id: number,\r\n): Promise => {\r\n return await ApiV2.http.get(`api/webhooks/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const createWebhook = async (\r\n body: Models.IWebhookGetPutModel,\r\n): Promise => {\r\n return await ApiV2.http.post(\"api/webhooks\", body).then((r) => r.data);\r\n};\r\n\r\nexport const createMailingList = async (\r\n body: Models.IMailingListGetPutModel,\r\n): Promise => {\r\n return await ApiV2.http.post(\"api/mailinglists\", body).then((r) => r.data);\r\n};\r\n\r\nexport const putMailingList = async (\r\n body: Models.IMailingListGetPutModel,\r\n): Promise => {\r\n return await ApiV2.http.put(`api/mailinglists/${body.id}`, body).then((r) =>\r\n r.data\r\n );\r\n};\r\n\r\nexport const getMailingList = async (\r\n id: number,\r\n): Promise => {\r\n return await ApiV2.http.get(`api/mailinglists/${id}`).then((r) => r.data);\r\n};\r\n\r\nexport const getPolicyResultUrl = async (\r\n policyId: number,\r\n resultId: number,\r\n): Promise<{ downloadUrl: string }> => {\r\n return await ApiV2.http.get(`/api/policies/${policyId}/results/${resultId}`)\r\n .then((r) => r.data);\r\n};\r\n\r\nexport const deliverSavedReport = async (\r\n reportId: string,\r\n emails: string[],\r\n mailingListId?: number,\r\n) => {\r\n return await ApiV2.http.post(`/api/savedreports/${reportId}/deliver`, {\r\n emails,\r\n mailingList: mailingListId,\r\n });\r\n};\r\n\r\nexport const listCustomDashboards = async (): Promise<\r\n Models.ICustomDashboardModel[]\r\n> => {\r\n return await ApiV2.http.get(\"/api/dashboards\").then((r) => {\r\n return r.data;\r\n });\r\n};\r\n\r\nexport const createCustomDashboard = async (\r\n m: OmitExcept,\r\n doc: G.CCGrid,\r\n): Promise => {\r\n const docString = JSON.stringify(doc);\r\n const docBinary = await stringToUint(docString);\r\n const file = new Blob([docBinary], { type: \"application/octet-stream\" });\r\n const formData = new FormData();\r\n formData.append(\"name\", m.name);\r\n formData.append(\"description\", m.description);\r\n formData.append(\"file\", file);\r\n return await ApiV2.http.post(\"/api/dashboards\", formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n }).then((r) => r.data);\r\n};\r\n\r\nexport const putCustomDashboard = async (\r\n id: string,\r\n m: OmitExcept,\r\n doc: G.CCGrid,\r\n): Promise => {\r\n const docString = JSON.stringify(doc);\r\n const docBinary = await stringToUint(docString);\r\n const file = new Blob([docBinary], { type: \"application/octet-stream\" });\r\n const formData = new FormData();\r\n formData.append(\"Name\", m.name);\r\n formData.append(\"Description\", m.description);\r\n formData.append(\"File\", file);\r\n const putResponse = await ApiV2.http.put(\r\n `/api/dashboards/${id}`,\r\n formData,\r\n {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n },\r\n },\r\n ).then((r) => r.data);\r\n return putResponse;\r\n};\r\n\r\nexport const getCustomDashboardDoc = async (id: string): Promise => {\r\n const response = await ApiV2.http.get(`/api/dashboards/${id}/content`, {\r\n responseType: \"arraybuffer\",\r\n });\r\n const uint8Array = new Uint8Array(response.data);\r\n const docString = await blobToString(new Blob([uint8Array]));\r\n const doc = JSON.parse(docString);\r\n return doc;\r\n};\r\n\r\nexport const enableDimension = async (key: string): Promise => {\r\n return await ApiV2.http.post(\"/api/metadata/dimensions/enable\", {\r\n dimensionKey: key,\r\n });\r\n};\r\nexport const disableDimension = async (key: string): Promise => {\r\n return await ApiV2.http.post(\"/api/metadata/dimensions/disable\", {\r\n dimensionKey: key,\r\n });\r\n};\r\n\r\nexport const pinDimension = async (key: string): Promise => {\r\n return await ApiV2.http.post(\"/api/metadata/dimensions/pin\", {\r\n dimensionKey: key,\r\n });\r\n};\r\nexport const unpinDimension = async (key: string): Promise => {\r\n return await ApiV2.http.post(\"/api/metadata/dimensions/unpin\", {\r\n dimensionKey: key,\r\n });\r\n};\r\n","\r\nimport Api from '@/lib/ApiV2';\r\nimport UniqueIdentifier from '@/lib/UniqueIdentifier';\r\nimport { CloudProviderType, EntityType, ISearchEntity } from '@/models';\r\n\r\nimport PostCustomViewDialog from '@/components/Domain.CustomViews/PostCustomViewDialog.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { getCustomViews } from '@/lib/Api';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\n\r\nexport interface ISearchEntityViewModel {\r\n Type: EntityType;\r\n Id: string;\r\n Name: string;\r\n Description: string;\r\n Provider: CloudProviderType | null;\r\n EntityIndex: number;\r\n}\r\n\r\nexport const convertToViewModel = (e: ISearchEntity): ISearchEntityViewModel => ({\r\n Type: e.type,\r\n Id: e.id,\r\n Name: e.name,\r\n Description: e.description,\r\n Provider: e.provider,\r\n EntityIndex: e.entityIndex,\r\n});\r\n\r\nexport const convertFromViewModel = (e:ISearchEntityViewModel): ISearchEntity => ({\r\n type: e.Type,\r\n id: e.Id,\r\n name: e.Name,\r\n description: e.Description,\r\n provider: e.Provider as CloudProviderType,\r\n entityIndex: e.EntityIndex,\r\n});\r\n\r\nexport interface ISpendUsageOptions {\r\n sysServiceIds: Array<{\r\n id: string;\r\n name: string;\r\n }>;\r\n sysProductIds: Array<{\r\n id: string;\r\n name: string;\r\n }>;\r\n subscriptionIds: Array<{\r\n id: string;\r\n name: string;\r\n }>;\r\n cloudAccountIds: Array<{\r\n id: string;\r\n name: string;\r\n }>;\r\n tagKeyValues: Array;\r\n regions: Array;\r\n\r\n tagKeys: Array<{\r\n id: string;\r\n name: string;\r\n }>;\r\n geographies: Array;\r\n cloudProviderTypes: Array;\r\n productCategories: Array;\r\n}\r\n\r\nexport const convertToSpendUsageOptions = (e: ISearchEntityViewModel[]): ISpendUsageOptions | null => {\r\n\r\n if (!e) return null;\r\n if (!e.length) return null;\r\n\r\n const cv: ISpendUsageOptions = {\r\n sysProductIds: [],\r\n subscriptionIds: [],\r\n cloudAccountIds: [],\r\n sysServiceIds: [],\r\n tagKeyValues: [],\r\n regions: [],\r\n tagKeys: [],\r\n geographies: [],\r\n cloudProviderTypes: [],\r\n productCategories: [],\r\n };\r\n\r\n e.forEach((item) => {\r\n if (item.Type === EntityType.service) {\r\n cv.sysServiceIds.push({ id: item.Id, name: item.Name });\r\n } else if (item.Type === EntityType.product) {\r\n cv.sysProductIds.push({ id: item.Id, name: item.Name });\r\n } else if (item.Type === EntityType.subscription) {\r\n cv.subscriptionIds.push({ id: item.Id, name: item.Name });\r\n } else if (item.Type === EntityType.cloudAccount) {\r\n cv.cloudAccountIds.push({ id: item.Id, name: item.Name });\r\n } else if (item.Type === EntityType.tag) {\r\n cv.tagKeyValues.push(item.Name);\r\n } else if (item.Type === EntityType.region) {\r\n cv.regions.push(item.Name);\r\n } else if (item.Type === EntityType.geography) {\r\n cv.geographies.push(item.Name);\r\n } else if (item.Type === EntityType.cloudProvider) {\r\n cv.cloudProviderTypes.push(item.Id);\r\n } else if (item.Type === EntityType.productCategory) {\r\n cv.productCategories.push(item.Name);\r\n } \r\n });\r\n return cv;\r\n};\r\n\r\nexport default {\r\n props: {\r\n value: {\r\n types: [Object, Array],\r\n default: null,\r\n },\r\n label: {\r\n type: String,\r\n default: null,\r\n },\r\n multiple: {\r\n types: Boolean,\r\n default: false,\r\n },\r\n autofocus: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n types: {\r\n types: Array,\r\n default: () => [\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.cloudAccount,\r\n EntityType.tag,\r\n EntityType.region,\r\n EntityType.product,\r\n EntityType.geography,\r\n EntityType.cloudProvider,\r\n ],\r\n },\r\n flat: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n dense: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n filled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n solo: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n soloInverted: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n outlined: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n chips: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n hideDetails: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n prependIcon: {\r\n type: String,\r\n default: 'search',\r\n },\r\n searchPrefix: {\r\n type: String,\r\n default: '',\r\n },\r\n supportCreate: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n rules: {\r\n type: Array,\r\n default: null\r\n },\r\n disableSaveCustomView: {\r\n type: Boolean,\r\n default: false,\r\n }\r\n },\r\n computed: {\r\n selection: {\r\n get() {\r\n if (!this.value) return null;\r\n if (this.multiple) {\r\n return this.value.map((i) => i.Id);\r\n } else {\r\n return this.value.Id;\r\n }\r\n },\r\n set(val) {\r\n if (!val) {\r\n this.$emit('input', null);\r\n return;\r\n }\r\n if (this.multiple) {\r\n this.$emit(\r\n 'input',\r\n this.items.filter((i) => val.includes(i.Id))\r\n );\r\n } else {\r\n this.$emit(\r\n 'input',\r\n this.items.find((i) => i.Id === val)\r\n );\r\n }\r\n },\r\n },\r\n spendUsageOptions: {\r\n get() {\r\n const options = convertToSpendUsageOptions(this.value);\r\n\r\n return options;\r\n } \r\n }\r\n },\r\n components: { PostCustomViewDialog },\r\n data() {\r\n return {\r\n searchText: '',\r\n items: [],\r\n autoCompleteId: UniqueIdentifier.create(),\r\n isCreating: false\r\n };\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n if (this.multiple) {\r\n const toAdd = this.value.filter((item) => !this.items.find((x) => x.Id === item.Id));\r\n if (toAdd.length) this.items.push(...toAdd);\r\n } else {\r\n if (!this.value.Id) return;\r\n if (!this.items) {\r\n this.items = [this.value];\r\n } else if (!this.items.find((x) => x.Id === this.value.Id)) {\r\n this.items.push(this.value);\r\n }\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n searchText(val, old) {\r\n if (!val || !old) return;\r\n this.queryEntitiesWithCurrentQuery();\r\n },\r\n searchPrefix(val, old) {\r\n if (!val || !old) return;\r\n this.queryEntitiesWithCurrentQuery();\r\n },\r\n },\r\n methods: {\r\n handleInput(val) {\r\n if (!val) {\r\n this.$emit('input', null);\r\n return;\r\n }\r\n if (this.multiple) {\r\n this.$emit(\r\n 'input',\r\n val.map((v) => this.items.find((i) => i.Id === v))\r\n );\r\n } else {\r\n this.$emit(\r\n 'input',\r\n this.items.find((i) => i.Id === val)\r\n );\r\n }\r\n },\r\n createDummyEntity(searchText) {\r\n this.$emit('input', {\r\n Id: searchText,\r\n Name: searchText,\r\n Description: null,\r\n Provider: '',\r\n Type: 'Synthetic',\r\n EntityIndex: 1,\r\n });\r\n },\r\n queryEntitiesWithCurrentQuery() {\r\n this.queryEntities(\r\n this.searchText,\r\n this.types || [\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.cloudAccount,\r\n EntityType.tag,\r\n EntityType.region,\r\n EntityType.product,\r\n EntityType.geography,\r\n ],\r\n 0,\r\n 30\r\n );\r\n },\r\n async queryEntities(queryString, types, page, pageSize) {\r\n if (this.$wait.is(`queryEntities-${this.autoCompleteId}`)) return;\r\n try {\r\n this.$wait.start(`queryEntities-${this.autoCompleteId}`);\r\n const searchParams = new URLSearchParams();\r\n const searchQuery = `${this.searchPrefix || ''}${queryString || ''}`;\r\n searchParams.append('q', searchQuery);\r\n if (typeof types !== 'undefined' && types.join) {\r\n searchParams.append('types', types.join());\r\n }\r\n if (typeof page !== 'undefined') {\r\n searchParams.append('page', page);\r\n }\r\n if (typeof pageSize !== 'undefined') {\r\n searchParams.append('pageSize', pageSize);\r\n }\r\n const searchItems = (this.items = await Api.http\r\n .get(`/api/search?${searchParams.toString()}`)\r\n .then((r) => r.data.map(convertToViewModel)));\r\n if (!this.value) {\r\n this.items = searchItems;\r\n } else if (this.multiple) {\r\n const ids = new Set(searchItems.map((d) => d.Id));\r\n this.items = [...searchItems, ...this.value.filter((d) => !ids.has(d.Id))];\r\n } else {\r\n this.items = (searchItems || []).concat([this.value]);\r\n }\r\n } finally {\r\n this.$wait.end(`queryEntities-${this.autoCompleteId}`);\r\n }\r\n },\r\n handleSaveCustomView() {\r\n this.isCreating = true;\r\n this.$emit('save-custom-view', this.searchText);\r\n },\r\n loadReports: waitFor('loadingCustomViews', async function loadingReports() {\r\n try {\r\n this.customViewsLoading = true;\r\n this.customViews = await getCustomViews();\r\n this.customViewsLoading = false;\r\n } catch (err) {\r\n toastError(this.$t('customViews.failedToLoad'));\r\n }\r\n }), \r\n },\r\n} as unknown;\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntitySearchAutocomplete.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntitySearchAutocomplete.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntitySearchAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntitySearchAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EntitySearchAutocomplete.vue?vue&type=template&id=32e395e2&\"\nimport script from \"./EntitySearchAutocomplete.vue?vue&type=script&lang=ts&\"\nexport * from \"./EntitySearchAutocomplete.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EntitySearchAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-icon',{attrs:{\"left\":_vm.left}},[_vm._v(_vm._s(_vm.iconValue))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntityTypeIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EntityTypeIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EntityTypeIcon.vue?vue&type=template&id=6a1d0551&\"\nimport script from \"./EntityTypeIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./EntityTypeIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-icon',{attrs:{\"left\":_vm.left,\"size\":_vm.size}},[_vm._v(_vm._s(_vm.iconValue))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudProviderTypeIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudProviderTypeIcon.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CloudProviderTypeIcon.vue?vue&type=template&id=37a0deab&\"\nimport script from \"./CloudProviderTypeIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./CloudProviderTypeIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{ref:\"menu\",attrs:{\"close-on-content-click\":false,\"transition\":\"scale-transition\",\"offset-y\":\"\",\"min-width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-text-field',_vm._g(_vm._b({attrs:{\"value\":_vm.renderedDateString,\"label\":_vm.label,\"placeholder\":\"e.g. yyyy-MM-dd\",\"prepend-icon\":_vm.prependIcon,\"readonly\":\"\",\"disabled\":!_vm.use || _vm.disabled,\"dense\":_vm.dense,\"solo\":_vm.solo,\"outlined\":_vm.outlined,\"flat\":_vm.flat,\"hide-details\":_vm.hideDetails,\"rules\":_vm.rules,\"filled\":_vm.filled},scopedSlots:_vm._u([(_vm.optional)?{key:\"prepend\",fn:function(){return [_c('v-checkbox',{staticClass:\"mt-0\",model:{value:(_vm.use),callback:function ($$v) {_vm.use=$$v},expression:\"use\"}})]},proxy:true}:null],null,true)},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.menu),callback:function ($$v) {_vm.menu=$$v},expression:\"menu\"}},[_c('v-date-picker',{ref:\"picker\",attrs:{\"value\":_vm.datePickerFormValue,\"min\":_vm.min,\"max\":_vm.max,\"type\":_vm.type,\"no-title\":_vm.noTitle,\"range\":_vm.range,\"disabled\":_vm.disabled},on:{\"input\":_vm.save,\"change\":_vm.save}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextDatePicker.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextDatePicker.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TextDatePicker.vue?vue&type=template&id=d6d6ae0a&\"\nimport script from \"./TextDatePicker.vue?vue&type=script&lang=js&\"\nexport * from \"./TextDatePicker.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[(_vm.useMain)?_c('v-main',[_vm._t(\"default\")],2):_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConditionalVMain.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConditionalVMain.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ConditionalVMain.vue?vue&type=template&id=a5afd4e6&\"\nimport script from \"./ConditionalVMain.vue?vue&type=script&lang=js&\"\nexport * from \"./ConditionalVMain.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from \"vue\";\r\nimport AppLogoImage from \"@/components/Common/AppLogoImage.vue\";\r\nimport BackButton from \"@/components/Common/BackButton.vue\";\r\nimport Card from \"@/components/Common/ContentCard.vue\";\r\nimport ChartCard from \"@/components/Common/ChartCard.vue\";\r\nimport DeleteEntityDialog from \"@/components/Common/DeleteEntityDialog.vue\";\r\nimport DeleteEntityCard from \"@/components/Common/DeleteEntityCard.vue\";\r\nimport DeleteEntityButton from \"@/components/Common/DeleteEntityButton.vue\";\r\nimport EmptyState from \"@/components/Common/EmptyState.vue\";\r\nimport FormCard from \"@/components/Common/FormCard.vue\";\r\nimport FormDialog from \"@/components/Common/FormDialog.vue\";\r\nimport PageHeader from \"@/components/Common/PageHeader.vue\";\r\nimport HttpPatchButton from \"@/components/Common/HttpPatchButton.vue\";\r\nimport HttpPutButton from \"@/components/Common/HttpPutButton.vue\";\r\nimport HttpDeleteButton from \"@/components/Common/HttpDeleteButton.vue\";\r\nimport HttpPostButton from \"@/components/Common/HttpPostButton.vue\";\r\nimport FigureCard from \"@/components/Common/FigureCard.vue\";\r\nimport WidgetGrid from \"@/components/Common/WidgetGrid.vue\";\r\nimport TitleSheet from \"@/components/Common/TitleSheet.vue\";\r\nimport TitleSheets from \"@/components/Common/TitleSheets.vue\";\r\nimport ComparisonIcon from \"@/components/Common/ComparisonIcon.vue\";\r\nimport EntitySearchAutocomplete from \"@/components/Common/EntitySearchAutocomplete.vue\";\r\nimport EntityTypeIcon from '@/components/Common/EntityTypeIcon.vue';\r\nimport CloudProviderTypeIcon from '@/components/Common/CloudProviderTypeIcon.vue';\r\nimport TextDatePicker from '@/components/Common/TextDatePicker.vue';\r\nimport ConditionalVMain from '@/components/Common/ConditionalVMain.vue';\r\nimport { Chart } from 'highcharts-vue';\r\n\r\nVue.component(\"app-logo-image\", AppLogoImage);\r\nVue.component(\"back-button\", BackButton);\r\nVue.component(\"content-card\", Card);\r\nVue.component(\"chart-card\", ChartCard);\r\nVue.component(\"delete-entity-dialog\", DeleteEntityDialog);\r\nVue.component(\"delete-entity-card\", DeleteEntityCard);\r\nVue.component(\"delete-entity-button\", DeleteEntityButton);\r\nVue.component(\"empty-state\", EmptyState);\r\nVue.component(\"form-card\", FormCard);\r\nVue.component(\"form-dialog\", FormDialog);\r\nVue.component(\"page-header\", PageHeader);\r\nVue.component(\"http-patch-button\", HttpPatchButton);\r\nVue.component(\"http-post-button\", HttpPostButton);\r\nVue.component(\"http-delete-button\", HttpDeleteButton);\r\nVue.component(\"http-put-button\", HttpPutButton);\r\nVue.component(\"figure-card\", FigureCard);\r\nVue.component(\"widget-grid\", WidgetGrid);\r\nVue.component(\"chart\", Chart);\r\nVue.component(\"title-sheet\", TitleSheet);\r\nVue.component(\"title-sheets\", TitleSheets);\r\nVue.component(\"comparison-icon\", ComparisonIcon);\r\nVue.component(\"entity-search-autocomplete\", EntitySearchAutocomplete);\r\nVue.component(\"entity-type-icon\", EntityTypeIcon);\r\nVue.component(\"cloud-provider-type-icon\", CloudProviderTypeIcon);\r\nVue.component(\"text-date-picker\", TextDatePicker);\r\nVue.component(\"conditional-v-main\", ConditionalVMain);\r\n","import Vue from 'vue';\r\n\r\nVue.directive('wait-while', {\r\n bind(_, binding, vnode) {\r\n const instance = vnode.context.__$waitInstance;\r\n vnode.child.$on('start', () => instance.start(binding.value));\r\n vnode.child.$on('stop', () => instance.end(binding.value));\r\n }\r\n});\r\n","enum FeatureNames {\r\n rhipeEnabled = 'CloudAccountType:Rhipe',\r\n enableCloudIntelligence = 'EnableCloudIntelligence',\r\n pax8AzureEnabled = 'CloudAccountType:AzurePax8'\r\n}\r\nexport default FeatureNames;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('v-navigation-drawer',{staticStyle:{\"height\":\"100%\"},attrs:{\"app\":\"\",\"floating\":\"\",\"width\":\"320\",\"dark\":_vm.shouldAlwaysBeDark},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-toolbar',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('app-logo-image',{attrs:{\"dark\":_vm.shouldAlwaysBeDark}})],1),_c('nav-tenant-menu-list',{attrs:{\"value\":_vm.me.tenant}}),_c('entity-search-autocomplete',{staticClass:\"px-2 pb-2\",attrs:{\"solo\":\"\",\"hide-details\":\"\",\"flat\":\"\",\"types\":['Service', 'Subscription', 'CloudAccount', 'Product', 'CustomView']},model:{value:(_vm.selectedSearchEntity),callback:function ($$v) {_vm.selectedSearchEntity=$$v},expression:\"selectedSearchEntity\"}})]},proxy:true},{key:\"append\",fn:function(){return [_c('v-divider'),(_vm.showSupportEmail && _vm.supportEmail)?_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"info darken-2\",\"block\":\"\",\"tile\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.isSupportDialogOpen = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"support_agent\")]),_vm._v(\" Support \")],1):_vm._e(),_c('nav-user-menu-list',{attrs:{\"value\":_vm.me}})]},proxy:true}]),model:{value:(_vm.drawer),callback:function ($$v) {_vm.drawer=$$v},expression:\"drawer\"}},[_c('nav-menu-list',{attrs:{\"value\":_vm.me,\"has-invalid-credentials\":_vm.hasInvalidCredentials}})],1),_c('conditional-v-main',[(_vm.tenantStore.status)?_c('fragment',[_vm._l((_vm.tenantStore.status.activeUserAlerts || []),function(activeUserAlert,i){return _c('div',{key:i},[_c('v-system-bar',{attrs:{\"color\":activeUserAlert.level.toLowerCase(),\"height\":\"auto\"}},[_c('v-icon',{staticClass:\"mr-2\"},[_vm._v(_vm._s(activeUserAlert.level.toLowerCase()))]),_vm._v(\" \"+_vm._s(activeUserAlert.alertText)+\" \")],1)],1)}),(_vm.tenantStore.status.hasActiveImports)?_c('v-system-bar',{attrs:{\"color\":\"info\"}},[_c('v-progress-circular',{staticClass:\"mr-2\",attrs:{\"indeterminate\":\"\",\"size\":15}}),(_vm.tenantStore.cloudAccounts && _vm.groupedActiveImports.length)?[_vm._v(\" \"+_vm._s(_vm.$t('views.mainView.loadingIndicator'))+\" \"),_vm._l((_vm.groupedActiveImports.slice(0, 3)),function(item,index){return _c('span',{key:index,staticClass:\"ml-3\",attrs:{\"color\":\"info\"}},[_vm._v(\" \"+_vm._s(item.cloudAccountName)+\" (\"+_vm._s(item.displayText)+\") \")])}),(_vm.groupedActiveImports.length > 3)?_c('span',{staticClass:\"ml-3\"},[_vm._v(\" [+ \"+_vm._s(_vm.groupedActiveImports.length - 3)+\" more] \")]):_vm._e()]:_c('span',[_vm._v(\" \"+_vm._s(_vm.$t('views.mainView.loadingIndicator'))+\" \")])],2):_vm._e(),_vm._l((_vm.tenantStore.status.credentialAlerts || []),function(credentialAlert,i){return _c('div',{key:i},[_c('v-system-bar',{attrs:{\"color\":\"warning\",\"height\":\"auto\"}},[_vm._v(\" \"+_vm._s(_vm.$t('views.mainView.invalidCredentialAlert'))+\" \"+_vm._s(credentialAlert.type)+\", \"+_vm._s(credentialAlert.name)+\" \")])],1)})],2):_vm._e(),(_vm.$auth.isAuthenticated)?_c('router-view',{attrs:{\"me\":_vm.me},on:{\"tenant-update\":_vm.getMe}}):_vm._e()],1),_c('v-dialog',{attrs:{\"width\":\"500\"},model:{value:(_vm.isSupportDialogOpen),callback:function ($$v) {_vm.isSupportDialogOpen=$$v},expression:\"isSupportDialogOpen\"}},[_c('v-card',{attrs:{\"color\":\"#385F73\",\"dark\":\"\"}},[_c('v-card-title',{staticClass:\"text-h5\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"support_agent\")]),_vm._v(\" Support\")],1),_c('v-card-subtitle',{staticClass:\"mt-1\"},[_vm._v(\"Having trouble? Email us for Support\")]),_c('v-card-actions',[_c('back-button',{on:{\"click\":function($event){_vm.isSupportDialogOpen = false}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"href\":`mailto:${_vm.supportEmail}?subject=Support`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Contact\")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-list',{attrs:{\"subheader\":\"\"}},[_c('v-list-item-group',{attrs:{\"active-class\":\"primary--text\",\"multiple\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}},_vm._l((_vm.menuItems),function(group,groupIndex){return _c('fragment',{key:groupIndex},[_c('v-subheader',{key:'group-title-' + groupIndex,attrs:{\"inset\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(group.title))+\" \")]),_c('v-divider',{staticClass:\"mb-1\",attrs:{\"inset\":\"\"}}),_vm._l((group.items),function(item,i){return _c('v-list-item',{key:i,attrs:{\"to\":item.to}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(_vm._s(item.icon))])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(item.title)))])],1)],1)})],2)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n * Access to tenant specific data anywhere in the app.\r\n *\r\n * Installation (main.ts):\r\n * import { createPinia, PiniaVuePlugin } from 'pinia';\r\n * Vue.use(PiniaVuePlugin);\r\n * const pinia = createPinia();\r\n * new Vue({\r\n * // other options...\r\n * pinia\r\n * })\r\n *\r\n * Usage:\r\n * Component setup (options api):\r\n * import { useTenantStore } from '../stores/tenant.ts';\r\n * import { mapStores } from 'pinia';\r\n *\r\n * computed: {\r\n * ...mapStores(useTenantStore)\r\n * },\r\n *\r\n * Component setup (composition api):\r\n * import { useTenantStore } from '../stores/tenant.ts';\r\n *\r\n * setup() {\r\n * const tenantStore = useTenantStore();\r\n *\r\n * return { tenantStore };\r\n * }\r\n *\r\n * To update the values (E.g. Currency):\r\n * this.tenantStore.setTenantDetails({ ..., currencyCode: 'AUD' });\r\n *\r\n * To read the values (E.g. Currency):\r\n * this.tenantStore.currencyCode\r\n *\r\n * Legacy note:\r\n * To update the name and tag keys from a v1 Tenant data structure\r\n * (E.g. from the \"me\" profile):\r\n * this.tenantStore.setTenantDetailsFromV1(this.me.Tenant);\r\n */\r\nconst LAST_TENANT_KEY = \"cc-last-tenant\";\r\nimport ApiV2 from \"@/lib/ApiV2\";\r\nimport AuthClient from \"@/lib/Auth\";\r\nimport Config from \"@/lib/Config\";\r\nimport { defineStore } from \"pinia\";\r\n\r\nexport interface IActiveImport {\r\n cloudAccountId: string;\r\n month: number;\r\n year: number;\r\n}\r\n\r\nexport interface IBasicCloudAccount {\r\n name: string;\r\n type: string;\r\n}\r\n\r\nexport interface IDimension {\r\n label: string;\r\n tagKey: string;\r\n pinned: boolean;\r\n}\r\n\r\nexport interface ITenantData {\r\n tenantId: string;\r\n tenantName: string;\r\n currencyCode: string;\r\n tagKey1?: string;\r\n tagKey2?: string;\r\n tagKey3?: string;\r\n customerId: string;\r\n numberOfActiveAccounts: number;\r\n lastImportStartedDate?: string;\r\n lastImportCompletedDate?: string;\r\n lastUsageDateForTenant?: string;\r\n features: string[];\r\n permissions: string[];\r\n isSelfService: boolean;\r\n hasActiveSubscription: boolean;\r\n status: {\r\n hasActiveImports: boolean;\r\n activeUserAlerts: Array<{\r\n id: number;\r\n level: string;\r\n alertText: string;\r\n }>;\r\n credentialAlerts: Array<{\r\n name: string;\r\n type: string;\r\n }>\r\n };\r\n dimensions?: { [index:number]: IDimension };\r\n activeImports?: IActiveImport[];\r\n cloudAccounts?: { [id:string]: IBasicCloudAccount }\r\n}\r\n\r\nexport const useDatasetState = (\r\n tenantStore: any,\r\n): { hasUsageDataset: boolean; hasEmissionsDataset: boolean } => {\r\n const hasGranularTogglesFeature =\r\n Config.isFeatureEnabled(\"DatasetFilter\") ||\r\n tenantStore.hasTenantFeature(\"DatasetFilter\");\r\n const hasUsageDataset = Config.isFeatureEnabled(\"Dataset.Usage\") ||\r\n tenantStore.hasTenantFeature(\"Dataset.Usage\") ||\r\n !hasGranularTogglesFeature;\r\n const hasEmissionsDataset = Config.isFeatureEnabled(\"Dataset.Emissions\") ||\r\n tenantStore.hasTenantFeature(\"Dataset.Emissions\") ||\r\n tenantStore.hasTenantFeature(\"EmissionsAndEnergy\") ||\r\n !hasGranularTogglesFeature;\r\n return { hasEmissionsDataset, hasUsageDataset };\r\n};\r\n\r\nexport const useTenantStore = defineStore({\r\n id: \"tenant\",\r\n state: (): ITenantData => {\r\n return getInitialTenant();\r\n },\r\n getters: {\r\n hasTenantFeature(state) {\r\n return (feature: string) => {\r\n if (!Config.isFeatureEnabled(\"EnableTenantFeatures\")) {\r\n return true;\r\n }\r\n return (state.features || []).includes(feature);\r\n };\r\n },\r\n hasPermission(state) {\r\n return (permission: string) =>\r\n (state.permissions || []).includes(permission);\r\n },\r\n },\r\n actions: {\r\n async changeTenantContext(tenantId: string) {\r\n await Promise.all([\r\n this.loadTenant(tenantId),\r\n this.loadTenantStatus(tenantId)\r\n ]);\r\n },\r\n isTenantSelected(): boolean {\r\n return !!AuthClient.tenantId;\r\n },\r\n async loadTenant(tenantId?: string) {\r\n if (tenantId) AuthClient.tenantId = tenantId;\r\n const tenantSummary = await ApiV2.http.get(\r\n \"/api/metadata/tenants/current/summary\",\r\n ).then((r) => r.data);\r\n if (tenantSummary) {\r\n this.setTenantDetails(tenantSummary);\r\n }\r\n },\r\n async loadTenantStatus(tenantId?: string) {\r\n if (tenantId) AuthClient.tenantId = tenantId;\r\n const status = await ApiV2.http.get('/api/metadata/tenants/current/summary/status').then((r) => r.data);\r\n this.setTenantDetails({ status });\r\n },\r\n setTenantDetails(data: Partial) {\r\n this.$patch(data);\r\n const newTenantString = JSON.stringify(this.$state);\r\n localStorage.setItem(LAST_TENANT_KEY, newTenantString);\r\n },\r\n setTenantDetailsFromV1(data: { name: string; tagHeirarchy: string[] }) {\r\n const newTenantData = {\r\n name: data.name,\r\n tagKey1: data.tagHeirarchy[0] || undefined, // empty strings and nulls -> undefined\r\n tagKey2: data.tagHeirarchy[1] || undefined,\r\n tagKey3: data.tagHeirarchy[2] || undefined,\r\n };\r\n this.setTenantDetails(newTenantData);\r\n },\r\n getHierarchy(): string[] {\r\n const tags = [this.tagKey1, this.tagKey2, this.tagKey3];\r\n if (!tags.find((t) => t)) return [];\r\n return tags;\r\n },\r\n },\r\n});\r\n\r\nconst getInitialTenant = (): ITenantData => {\r\n const initialTenantString = localStorage.getItem(LAST_TENANT_KEY);\r\n let initialTenant = JSON.parse(initialTenantString) as ITenantData;\r\n if (!initialTenant) {\r\n initialTenant = {\r\n tenantId: \"\",\r\n tenantName: \"\",\r\n currencyCode: \"AUD\",\r\n tagKey1: null,\r\n tagKey2: null,\r\n tagKey3: null,\r\n customerId: \"\",\r\n numberOfActiveAccounts: 0,\r\n lastImportStartedDate: null,\r\n lastImportCompletedDate: null,\r\n lastUsageDateForTenant: null,\r\n features: [],\r\n permissions: [],\r\n isSelfService: false,\r\n hasActiveSubscription: false,\r\n status: {\r\n hasActiveImports: false,\r\n activeUserAlerts: [],\r\n },\r\n };\r\n }\r\n return initialTenant;\r\n};\r\n","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"navMenuList.subheaders.costAndUsage\": \"Costs and Usage\",\r\n \"navMenuList.subheaders.tracking\": \"Tracking\",\r\n \"navMenuList.subheaders.reporting\": \"Reporting\",\r\n \"navMenuList.subheaders.customers\": \"Customers\",\r\n \"navMenuList.subheaders.settings\": \"Settings\",\r\n \"navMenuList.financeDashboard\": \"Overview\",\r\n \"navMenuList.opsDashboard\": \"Operations\",\r\n \"navMenuList.trendsDashboard\": \"Trends\",\r\n \"navMenuList.reservationsDashboard\": \"Reservations\",\r\n \"navMenuList.costExplorer\": \"Cost Explorer\",\r\n \"navMenuList.reports\": \"Reports\",\r\n \"navMenuList.customViews\": \"Custom Views\",\r\n \"navMenuList.budgets\": \"Budgets & Spend Limits\",\r\n \"navMenuList.spendLimits\": \"Spend Limits\",\r\n \"navMenuList.customReports\": \"Custom Reports\",\r\n \"navMenuList.tagOverview\": \"Tag Reports\",\r\n \"navMenuList.regionOverview\": \"Cost Map\",\r\n \"navMenuList.customersOverview\": \"Customers Report\",\r\n \"navMenuList.manage\": \"Manage\",\r\n \"navMenuList.spendLimits\": \"Spend Limits\",\r\n \"navMenuList.recommendations\": \"Recommendations\",\r\n \"navMenuList.accounts\": \"Accounts\",\r\n \"navMenuList.users\": \"Users\",\r\n \"navMenuList.support\": \"Contact Support\",\r\n \"navMenuList.dashboarding\": \"Custom Dashboards\",\r\n \"navMenuList.credentialTooltip\": \"There are one or more cloud connection with invalid or expired credentials.\",\r\n \"navMenuList.cloudIntelligence\": \"Cloud Intelligence\",\r\n \"navMenuList.subheaders.energy\": \"Emissions and Energy\",\r\n \"navMenuList.carbon.overview\": \"Overview\",\r\n \"navMenuList.carbon.explorer\": \"Emissions Explorer\",\r\n \"navMenuList.carbon.map\": \"Energy Map\",\r\n \"navMenuList.watchdog\": \"Watchdog\",\r\n \"navMenuList.kubernetes\": \"Kubernetes\",\r\n \"navMenuList.azureEmissions\": \"Azure Emissions\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavMenuList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavMenuList.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavMenuList.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavMenuList.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NavMenuList.vue?vue&type=template&id=a446aab2&\"\nimport script from \"./NavMenuList.vue?vue&type=script&lang=js&\"\nexport * from \"./NavMenuList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NavMenuList.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"top\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list',[_c('v-list-item',_vm._g({},on),[_c('v-list-item-avatar',[(_vm.email)?_c('v-avatar',{attrs:{\"size\":40,\"color\":\"grey lighten-4\"}},[_c('img',{attrs:{\"src\":_vm.gravatarUrl,\"alt\":\"avatar\",\"aria-label\":\"User profile picture\",\"title\":\"User profile picture\",\"role\":\"presentation\"}})]):_c('v-avatar',{attrs:{\"size\":40,\"color\":\"grey lighten-4\"}},[_c('img',{attrs:{\"src\":\"http://www.gravatar.com/avatar/?d=identicon\",\"alt\":\"avatar\",\"aria-label\":\"User profile picture\",\"title\":\"User profile picture\",\"role\":\"presentation\"}})])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.Name : '...')+\" \")]),(_vm.email)?_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.email)+\" \")]):_c('v-list-item-subtitle',[_vm._v(\" Your Profile \")])],1)],1)],1)]}}])},[_c('v-list',{attrs:{\"light\":\"\",\"subheader\":\"\"}},[_c('v-subheader',[_vm._v(_vm._s(_vm.$t('navUserMenu.title')))]),_c('v-list-item',{on:{\"click\":function($event){$event.stopPropagation();return _vm.toggleDarkTheme()}}},[_c('v-list-item-content',[_vm._v(\" Dark Theme: \"+_vm._s(_vm.$vuetify.theme.dark ? 'ON' : 'OFF')+\" \")]),_c('v-list-item-icon',[_c('v-icon',[_vm._v(_vm._s(_vm.$vuetify.theme.dark ? 'brightness_medium' : 'brightness_high')+\" \")])],1)],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Notification Settings\")])],1),_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"notifications\")])],1)],1)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":\"Notification Settings\",\"subtitle\":\"Notification settings for all of your tenants and customers.\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('back-button',{on:{\"click\":function($event){return close()}}})]},proxy:true}],null,true)},[_c('profile-tenants-table',{attrs:{\"items\":_vm.profiles,\"loading\":_vm.$wait.is('loadingProfiles'),\"fields\":['name', 'SubscribeToAlerts', 'SubscribeToSpendSummaries']}})],1)]}}]),model:{value:(_vm.isEditingNotifications),callback:function ($$v) {_vm.isEditingNotifications=$$v},expression:\"isEditingNotifications\"}}),_c('v-divider'),_c('v-list-item',{attrs:{\"to\":\"/logout\"}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('navUserMenu.logOut')))])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" You do not have administrative rights to any tenants. \")]},proxy:true},{key:`item.SubscribeToAlerts`,fn:function({ item }){return [_c('email-subscription-checkbox',{attrs:{\"tenantId\":item.id,\"emailType\":\"Alerts\"},model:{value:(item.subscribeToAlerts),callback:function ($$v) {_vm.$set(item, \"subscribeToAlerts\", $$v)},expression:\"item.subscribeToAlerts\"}})]}},{key:`item.SubscribeToSpendSummaries`,fn:function({ item }){return [_c('email-subscription-checkbox',{attrs:{\"tenantId\":item.id,\"emailType\":\"SpendSummaries\"},model:{value:(item.subscribeToSpendSummaries),callback:function ($$v) {_vm.$set(item, \"subscribeToSpendSummaries\", $$v)},expression:\"item.subscribeToSpendSummaries\"}})]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-checkbox',{attrs:{\"input-value\":_vm.value,\"loading\":_vm.loading,\"disabled\":_vm.loading},on:{\"change\":function($event){return _vm.onValueChanged($event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailSubscriptionCheckbox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailSubscriptionCheckbox.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EmailSubscriptionCheckbox.vue?vue&type=template&id=24d41d84&\"\nimport script from \"./EmailSubscriptionCheckbox.vue?vue&type=script&lang=js&\"\nexport * from \"./EmailSubscriptionCheckbox.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProfileTenantsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProfileTenantsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProfileTenantsTable.vue?vue&type=template&id=11846849&scoped=true&\"\nimport script from \"./ProfileTenantsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./ProfileTenantsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProfileTenantsTable.vue?vue&type=style&index=0&id=11846849&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"11846849\",\n null\n \n)\n\nexport default component.exports","/* eslint-disable */\r\n//SOURCE: https://stackoverflow.com/questions/1655769/fastest-md5-implementation-in-javascript\r\nexport default function (e) {\r\n function h(a, b) {\r\n var c, d, e, f, g;\r\n e = a & 2147483648;\r\n f = b & 2147483648;\r\n c = a & 1073741824;\r\n d = b & 1073741824;\r\n g = (a & 1073741823) + (b & 1073741823);\r\n return c & d ? g ^ 2147483648 ^ e ^ f : c | d ? g & 1073741824 ? g ^ 3221225472 ^ e ^ f : g ^ 1073741824 ^ e ^ f : g ^ e ^ f\r\n }\r\n\r\n function k(a, b, c, d, e, f, g) {\r\n a = h(a, h(h(b & c | ~b & d, e), g));\r\n return h(a << f | a >>> 32 - f, b)\r\n }\r\n\r\n function l(a, b, c, d, e, f, g) {\r\n a = h(a, h(h(b & d | c & ~d, e), g));\r\n return h(a << f | a >>> 32 - f, b)\r\n }\r\n\r\n function m(a, b, d, c, e, f, g) {\r\n a = h(a, h(h(b ^ d ^ c, e), g));\r\n return h(a << f | a >>> 32 - f, b)\r\n }\r\n\r\n function n(a, b, d, c, e, f, g) {\r\n a = h(a, h(h(d ^ (b | ~c), e), g));\r\n return h(a << f | a >>> 32 - f, b)\r\n }\r\n\r\n function p(a) {\r\n var b = \"\",\r\n d = \"\",\r\n c;\r\n for (c = 0; 3 >= c; c++) d = a >>> 8 * c & 255, d = \"0\" + d.toString(16), b += d.substr(d.length - 2, 2);\r\n return b\r\n }\r\n var f = [],\r\n q, r, s, t, a, b, c, d;\r\n e = function (a) {\r\n a = a.replace(/\\r\\n/g, \"\\n\");\r\n for (var b = \"\", d = 0; d < a.length; d++) {\r\n var c = a.charCodeAt(d);\r\n 128 > c ? b += String.fromCharCode(c) : (127 < c && 2048 > c ? b += String.fromCharCode(c >> 6 | 192) : (b += String.fromCharCode(c >> 12 | 224), b += String.fromCharCode(c >> 6 & 63 | 128)), b += String.fromCharCode(c & 63 | 128))\r\n }\r\n return b\r\n }(e);\r\n f = function (b) {\r\n var a, c = b.length;\r\n a = c + 8;\r\n for (var d = 16 * ((a - a % 64) / 64 + 1), e = Array(d - 1), f = 0, g = 0; g < c;) a = (g - g % 4) / 4, f = g % 4 * 8, e[a] |= b.charCodeAt(g) << f, g++;\r\n a = (g - g % 4) / 4;\r\n e[a] |= 128 << g % 4 * 8;\r\n e[d - 2] = c << 3;\r\n e[d - 1] = c >>> 29;\r\n return e\r\n }(e);\r\n a = 1732584193;\r\n b = 4023233417;\r\n c = 2562383102;\r\n d = 271733878;\r\n for (e = 0; e < f.length; e += 16) q = a, r = b, s = c, t = d, a = k(a, b, c, d, f[e + 0], 7, 3614090360), d = k(d, a, b, c, f[e + 1], 12, 3905402710), c = k(c, d, a, b, f[e + 2], 17, 606105819), b = k(b, c, d, a, f[e + 3], 22, 3250441966), a = k(a, b, c, d, f[e + 4], 7, 4118548399), d = k(d, a, b, c, f[e + 5], 12, 1200080426), c = k(c, d, a, b, f[e + 6], 17, 2821735955), b = k(b, c, d, a, f[e + 7], 22, 4249261313), a = k(a, b, c, d, f[e + 8], 7, 1770035416), d = k(d, a, b, c, f[e + 9], 12, 2336552879), c = k(c, d, a, b, f[e + 10], 17, 4294925233), b = k(b, c, d, a, f[e + 11], 22, 2304563134), a = k(a, b, c, d, f[e + 12], 7, 1804603682), d = k(d, a, b, c, f[e + 13], 12, 4254626195), c = k(c, d, a, b, f[e + 14], 17, 2792965006), b = k(b, c, d, a, f[e + 15], 22, 1236535329), a = l(a, b, c, d, f[e + 1], 5, 4129170786), d = l(d, a, b, c, f[e + 6], 9, 3225465664), c = l(c, d, a, b, f[e + 11], 14, 643717713), b = l(b, c, d, a, f[e + 0], 20, 3921069994), a = l(a, b, c, d, f[e + 5], 5, 3593408605), d = l(d, a, b, c, f[e + 10], 9, 38016083), c = l(c, d, a, b, f[e + 15], 14, 3634488961), b = l(b, c, d, a, f[e + 4], 20, 3889429448), a = l(a, b, c, d, f[e + 9], 5, 568446438), d = l(d, a, b, c, f[e + 14], 9, 3275163606), c = l(c, d, a, b, f[e + 3], 14, 4107603335), b = l(b, c, d, a, f[e + 8], 20, 1163531501), a = l(a, b, c, d, f[e + 13], 5, 2850285829), d = l(d, a, b, c, f[e + 2], 9, 4243563512), c = l(c, d, a, b, f[e + 7], 14, 1735328473), b = l(b, c, d, a, f[e + 12], 20, 2368359562), a = m(a, b, c, d, f[e + 5], 4, 4294588738), d = m(d, a, b, c, f[e + 8], 11, 2272392833), c = m(c, d, a, b, f[e + 11], 16, 1839030562), b = m(b, c, d, a, f[e + 14], 23, 4259657740), a = m(a, b, c, d, f[e + 1], 4, 2763975236), d = m(d, a, b, c, f[e + 4], 11, 1272893353), c = m(c, d, a, b, f[e + 7], 16, 4139469664), b = m(b, c, d, a, f[e + 10], 23, 3200236656), a = m(a, b, c, d, f[e + 13], 4, 681279174), d = m(d, a, b, c, f[e + 0], 11, 3936430074), c = m(c, d, a, b, f[e + 3], 16, 3572445317), b = m(b, c, d, a, f[e + 6], 23, 76029189), a = m(a, b, c, d, f[e + 9], 4, 3654602809), d = m(d, a, b, c, f[e + 12], 11, 3873151461), c = m(c, d, a, b, f[e + 15], 16, 530742520), b = m(b, c, d, a, f[e + 2], 23, 3299628645), a = n(a, b, c, d, f[e + 0], 6, 4096336452), d = n(d, a, b, c, f[e + 7], 10, 1126891415), c = n(c, d, a, b, f[e + 14], 15, 2878612391), b = n(b, c, d, a, f[e + 5], 21, 4237533241), a = n(a, b, c, d, f[e + 12], 6, 1700485571), d = n(d, a, b, c, f[e + 3], 10, 2399980690), c = n(c, d, a, b, f[e + 10], 15, 4293915773), b = n(b, c, d, a, f[e + 1], 21, 2240044497), a = n(a, b, c, d, f[e + 8], 6, 1873313359), d = n(d, a, b, c, f[e + 15], 10, 4264355552), c = n(c, d, a, b, f[e + 6], 15, 2734768916), b = n(b, c, d, a, f[e + 13], 21, 1309151649), a = n(a, b, c, d, f[e + 4], 6, 4149444226), d = n(d, a, b, c, f[e + 11], 10, 3174756917), c = n(c, d, a, b, f[e + 2], 15, 718787259), b = n(b, c, d, a, f[e + 9], 21, 3951481745), a = h(a, q), b = h(b, r), c = h(c, s), d = h(d, t);\r\n return (p(a) + p(b) + p(c) + p(d)).toLowerCase()\r\n};\r\n","\r\n\r\n{\r\n \"en\": {\r\n \"navUserMenu.title\": \"User Menu\",\r\n \"navUserMenu.changePassword\": \"Change Password\",\r\n \"navUserMenu.logOut\": \"Log Out\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavUserMenuList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavUserMenuList.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavUserMenuList.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavUserMenuList.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NavUserMenuList.vue?vue&type=template&id=3b3c376d&\"\nimport script from \"./NavUserMenuList.vue?vue&type=script&lang=js&\"\nexport * from \"./NavUserMenuList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NavUserMenuList.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-list',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({attrs:{\"input-value\":_vm.$route.path.startsWith('/settings')}},on),[_c('v-list-item-action',[_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"settings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.value ? _vm.value.name : null))])],1),_c('v-list-item-action',[_c('v-icon',[_vm._v(\"expand_more\")])],1)],1)]}}]),model:{value:(_vm.isMenuOpen),callback:function ($$v) {_vm.isMenuOpen=$$v},expression:\"isMenuOpen\"}},[_c('v-list',[(_vm.tenantStore.hasPermission('CanAdminister'))?_c('v-list-item',{attrs:{\"to\":\"/settings\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"settings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('navTenantMenuList.tenantSettings'))+\" \")])],1)],1):_vm._e(),(_vm.accountStore.numTenants > 1)?_c('v-list-item',{attrs:{\"to\":\"/choose\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"swap_horiz\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('navTenantMenuList.chooseTenant'))+\" \")])],1)],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import ApiV2 from '@/lib/ApiV2';\r\nimport { ICachedTenantDetails } from '@/models';\r\nimport { defineStore } from 'pinia';\r\n\r\nexport interface IAccountData {\r\n email: string;\r\n tenants: ICachedTenantDetails[];\r\n}\r\n\r\nexport const useAccountStore = defineStore({\r\n id: 'account',\r\n state: (): IAccountData => ({\r\n email: null,\r\n tenants: []\r\n }),\r\n getters: {\r\n numTenants: (ctx) => ctx.tenants.length\r\n },\r\n actions: {\r\n async loadAccountTenants() {\r\n this.tenants = await ApiV2.http.get('/api/metadata/tenants').then(r => r.data);\r\n }\r\n }\r\n});","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"navTenantMenuList.tenantSettings\": \"Settings\",\r\n \"navTenantMenuList.chooseTenant\": \"Change Tenant...\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavTenantMenuList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavTenantMenuList.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavTenantMenuList.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavTenantMenuList.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NavTenantMenuList.vue?vue&type=template&id=29e88e33&\"\nimport script from \"./NavTenantMenuList.vue?vue&type=script&lang=js&\"\nexport * from \"./NavTenantMenuList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NavTenantMenuList.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.mainView.loadingIndicator\": \"We are currently importing usage for this tenant.\",\r\n \"views.mainView.loadFailedText\": \"There was an error loading your tenant status. Please refresh to continue.\",\r\n \"views.mainView.invalidCredentialAlert\": \"Please check the following credential: \"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MainView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./MainView.vue?vue&type=template&id=57407ecd&\"\nimport script from \"./MainView.vue?vue&type=script&lang=js&\"\nexport * from \"./MainView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./MainView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('dashboard.title'),\"icon\":\"savings\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":_vm.$t('dashboard.titles.projected', { thisMonthName: _vm.thisMonthName }),\"subtitle\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.expectedThisMonth,_vm.tenantStore.currencyCode))+\" \")]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('span',{class:_vm.percentageDownFromLastMonth < 0 ? 'success--text' : 'error--text'},[_c('comparison-icon',{attrs:{\"value\":_vm.expectedThisMonth,\"compare\":_vm.totalLastMonth}}),_vm._v(\" \"+_vm._s(_vm.$t(_vm.percentageDownFromLastMonth < 0 ? 'dashboard.lessThan' : 'dashboard.moreThan', { percentage: _vm.percentageDownFromLastMonth, month: _vm.lastMonthName, }))+\" \")],1)]},proxy:true}])}),_c('title-sheet',{attrs:{\"title\":_vm.$t('dashboard.titles.totalLastMonth', { lastMonthName: _vm.lastMonthName }),\"subtitle\":_vm.lastMonthSubtitle},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.totalLastMonth,_vm.tenantStore.currencyCode))+\" \")]},proxy:true}])}),(_vm.tenantStore.features.includes('Recommendations/View'))?_c('title-sheet',{staticClass:\"hover_pointer\",attrs:{\"title\":_vm.$t('dashboard.titles.potentialSavings'),\"subtitle\":\"\"},nativeOn:{\"click\":function($event){return _vm.handleSavingsClicked.apply(null, arguments)}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")((_vm.recommendationSummary.maximumEstimateImpact || 0.0),_vm.tenantStore.currencyCode))+\" \"),(_vm.recommendationSummary.includesElevatedSavings === true)?_c('span',[_vm._v(\"*\")]):_vm._e()]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('credential-status-icon',{attrs:{\"value\":_vm.recommendationStatus ? _vm.recommendationStatus.credentialStatus : null}}),_vm._v(\" \"+_vm._s(_vm.recommendationStatusText)+\" \")]},proxy:true}],null,false,3850759586)}):_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-sheet',{staticClass:\"py-4\",staticStyle:{\"position\":\"relative\"}},[_c('div',{staticClass:\"text-center grey--text\"},[_c('br')]),_c('div',{staticClass:\"text-h4 text-center\"},[_c('br')]),_c('div',{staticClass:\"text-center subtitle-2 grey--text\"},[_c('br')])])],1)],1),_c('content-card',{attrs:{\"title\":_vm.chartTitle,\"title-icon\":\"savings\",\"loading\":_vm.$wait.is('getTenantMonthlyUsage'),\"caption\":_vm.$t('dashboard.monthAverage', {\n total: _vm.averageMonthlySpend.toFixed(2),\n currency: _vm.tenantStore.currencyCode,\n })},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"calendar_month\")]),_vm._v(\" \"+_vm._s(_vm.usageOptions.dateRangeKey))],1)]}}])},[_c('v-list',[_c('v-subheader',[_vm._v(\"Date Ranges\")]),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '3m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.usageOptions.dateRangeKey === '3m'}})],1),_c('v-list-item-title',[_vm._v(\"3 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '6m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.usageOptions.dateRangeKey === '6m'}})],1),_c('v-list-item-title',[_vm._v(\"6 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '13m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.usageOptions.dateRangeKey === '13m'}})],1),_c('v-list-item-title',[_vm._v(\"All usage\")])],1)],1)],1),_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.figureType === 'charges' ? 'attach_money' : 'dns')+\" \")]),_vm._v(\" \"+_vm._s(_vm.figureType === 'charges' ? 'Gross / Credits' : 'Net Spend'))],1)]}}])},[_c('v-list',[_c('v-subheader',[_vm._v(\"Figure Type\")]),_c('v-list-item',{on:{\"click\":function($event){_vm.figureType = 'charges'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"attach_money\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Gross / Credits\")]),_c('v-list-item-subtitle',[_vm._v(\"Displays actual cost and credits side by side for comparison.\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){_vm.figureType = 'spend'}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"dns\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Net Spend\")]),_c('v-list-item-subtitle',[_vm._v(\"Combines actual cost and credits into a single value.\")])],1)],1)],1)],1)]},proxy:true}])},[_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.usageOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}})],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":_vm.$t('dashboard.usageByHeirarchy.title'),\"title-icon\":\"sell\",\"caption\":_vm.$t('dashboard.usageByHeirarchy.caption')},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanAdminister'))?{key:\"title-actions\",fn:function(){return [_c('v-btn',{attrs:{\"depressed\":\"\",\"text\":\"\"},on:{\"click\":_vm.onManageHierarchyClick}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"settings\")]),_vm._v(\" \"+_vm._s(_vm.$t('dashboard.usageByHierarchy.manageHierarchy'))+\" \")],1)]},proxy:true}:null],null,true)},[_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tagTableItems,\"segregate-by\":_vm.tagOptions.segregateBy,\"currency-code\":_vm.tenantStore.currencyCode,\"hide-intelligence\":\"\",\"prefix\":\"/finance\"}})],1)],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('set-tenant-card',{attrs:{\"value\":_vm.tenantToEdit,\"loading\":_vm.$wait.is('updatingTenant'),\"title\":_vm.$t('dialog.manageTenants.edit.title'),\"subtitle\":_vm.$t('dialog.manageTenants.edit.subtitle'),\"nameEditable\":false},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, form, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('put-tenant-button',{attrs:{\"value\":{ ..._vm.tenantToEdit, ...form },\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.afterUpdateTenant({ ..._vm.tenantToEdit, ...form }))}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.updateTenant),callback:function ($$v) {_vm.$set(_vm.dialogs, \"updateTenant\", $$v)},expression:\"dialogs.updateTenant\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-icon',_vm._g(_vm._b({attrs:{\"color\":_vm.iconColor}},'v-icon',attrs,false),on),[_vm._v(\" \"+_vm._s(_vm.iconType)+\" \")])]}}])},[_c('span',[_vm._v(_vm._s(_vm.iconTooltip))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"credentialStatusIcon.tooltip.unknown\": \"An error has occurred, this is an unknown credential status\",\r\n \"credentialStatusIcon.tooltip.unavailable\": \"Please connect the appropriate credentials to continue viewing {integrationType}.\",\r\n \"credentialStatusIcon.tooltip.allGood\": \"All {integrationType} are correctly configured.\",\r\n \"credentialStatusIcon.tooltip.partiallyGood\": \"Although you may be seeing some {integrationType} you do not have all the credentials necessary.\",\r\n \"credentialStatusIcon.tooltip.actionRequired\": \"Please review your accounts as not all {integrationType} are coming through.\"\r\n } \r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CredentialStatusIcon.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CredentialStatusIcon.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CredentialStatusIcon.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CredentialStatusIcon.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CredentialStatusIcon.vue?vue&type=template&id=212a944c&\"\nimport script from \"./CredentialStatusIcon.vue?vue&type=script&lang=js&\"\nexport * from \"./CredentialStatusIcon.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CredentialStatusIcon.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineStore } from 'pinia';\r\nimport { ref } from 'vue';\r\n\r\ntype AsyncWaitFunction = (...args: any) => Promise;\r\ntype WaitFunction = (...args: any) => any;\r\n\r\nexport const useWaitStore = defineStore('wait', () => {\r\n const waits = ref([]);\r\n const start = (key: string) => {\r\n if (!waits.value.includes(key))\r\n waits.value.push(key);\r\n }\r\n const stop = (key: string) => {\r\n const indexOf = waits.value.indexOf(key);\r\n if (indexOf !== -1)\r\n waits.value.splice(indexOf, 1);\r\n }\r\n const is = (key: string) => {\r\n return waits.value.includes(key);\r\n }\r\n const whilst = async (key: string, callback: T) => {\r\n if (typeof callback !== 'function') {\r\n console.warn('second argument must be a function');\r\n return callback;\r\n }\r\n try {\r\n start(key);\r\n return await callback();\r\n } finally {\r\n stop(key);\r\n }\r\n };\r\n return { is, start, stop, whilst, waits };\r\n});","import { defineStore } from 'pinia';\r\nimport Api from '@/lib/ApiV2';\r\nimport { SpendUsageOptions } from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport { convertToViewModel, ISearchEntityViewModel } from \"@/components/Common/EntitySearchAutocomplete.vue\";\r\nimport {\r\n EntityType,\r\n ISearchEntity,\r\n PluralEntityType,\r\n} from \"@/models\";\r\nimport Config from '@/lib/Config';\r\n\r\nexport const useFilterStore = defineStore({\r\n id: 'filter',\r\n state() {\r\n return {\r\n options: getInitialFilter()\r\n }\r\n },\r\n actions: {\r\n setFilter(data: Partial) {\r\n this.options = { ...this.options, ...data };\r\n },\r\n async fetchSelectedSearchEntity() {\r\n if(this.options.entities && this.options.entities.length > 0) {\r\n return this.options.entities;\r\n }\r\n let qs = ''\r\n const searchType = [];\r\n if (this.options.subscriptionIds?.length) {\r\n return [await fetchSubscriptionById(this.options.subscriptionIds[0])];\r\n } else if (this.options.cloudAccountId) {\r\n return [await fetchCloudAccountById(this.options.cloudAccountId)];\r\n } else if (this.options.serviceId) {\r\n return [await fetchServiceById(this.options.serviceId)];\r\n } else if (this.options.tagKeyValue) {\r\n searchType.push(EntityType.tag);\r\n qs = this.options.tagKeyValue\r\n } else if (this.options.regionName) {\r\n searchType.push(EntityType.region);\r\n qs = this.options.regionName\r\n } else if (this.options.providerType) {\r\n searchType.push(EntityType.cloudProvider);\r\n qs = this.options.providerType\r\n }\r\n else if (this.options.geographyName) {\r\n searchType.push(EntityType.geography);\r\n qs = this.options.geographyName;\r\n }\r\n else if (this.options.productCategory) {\r\n searchType.push(EntityType.productCategory);\r\n qs = this.options.productCategory;\r\n }\r\n else if (this.options.productId) {\r\n searchType.push(EntityType.product);\r\n qs = this.options.productId;\r\n }\r\n else if (this.options.savedViewId) {\r\n searchType.push(EntityType.customView);\r\n qs = this.options.savedViewId;\r\n }\r\n if (qs != '') {\r\n const r = await queryEntities(qs, searchType, 0, 30);\r\n return r;\r\n }\r\n return null;\r\n },\r\n reset() {\r\n this.setFilter(getInitialFilter());\r\n }\r\n },\r\n persist: {\r\n afterRestore(ctx) {\r\n if (ctx.store.options.fromDate)\r\n ctx.store.options.fromDate = new Date(ctx.store.options.fromDate);\r\n if (ctx.store.options.toDate)\r\n ctx.store.options.toDate = new Date(ctx.store.options.toDate);\r\n }\r\n }\r\n})\r\n\r\nconst queryEntities = async (queryString, types, page, pageSize) => {\r\n const searchParams = new URLSearchParams();\r\n const searchQuery = `${queryString || ''}`;\r\n searchParams.append('q', searchQuery);\r\n if (typeof types !== 'undefined' && types.join) {\r\n searchParams.append('types', types.join());\r\n }\r\n if (typeof page !== 'undefined') {\r\n searchParams.append('page', page);\r\n }\r\n if (typeof pageSize !== 'undefined') {\r\n searchParams.append('pageSize', pageSize);\r\n }\r\n const searchItems = await Api.http\r\n .get(`/api/search?${searchParams.toString()}`)\r\n .then((r) => r.data.map(convertToViewModel));\r\n\r\n return searchItems;\r\n}\r\n\r\nconst fetchSubscriptionById = async (id: string): Promise => {\r\n const subscription = await Api.http\r\n .get(`/api/metadata/subscriptions/${id}`)\r\n .then(r => r.data);\r\n\r\n const entity: ISearchEntity = {\r\n id: id,\r\n name: subscription.subscriptionName,\r\n type: EntityType.subscription,\r\n description: '',\r\n provider: subscription.cloudProviderType,\r\n entityIndex: 1\r\n }\r\n return convertToViewModel(entity);\r\n}\r\n\r\nconst fetchCloudAccountById = async (id: string): Promise => {\r\n const cloudAccount = await Api.http\r\n .get(`/api/metadata/cloudAccounts/${id}`)\r\n .then(r => r.data);\r\n\r\n const entity: ISearchEntity = {\r\n id: id,\r\n name: cloudAccount.name,\r\n type: EntityType.cloudAccount,\r\n description: cloudAccount.typeDescription,\r\n provider: cloudAccount.providerType,\r\n entityIndex: 1\r\n }\r\n return convertToViewModel(entity);\r\n}\r\n\r\nconst fetchServiceById = async (id: string): Promise => {\r\n const service = await Api.http\r\n .get(`/api/metadata/services/${id}`)\r\n .then(r => r.data);\r\n\r\n const entity: ISearchEntity = {\r\n id: id,\r\n name: service.serviceName,\r\n type: EntityType.cloudAccount,\r\n description: '',\r\n provider: service.cloudProviderType,\r\n entityIndex: 1\r\n }\r\n return convertToViewModel(entity);\r\n}\r\n\r\nconst getInitialFilter = (): SpendUsageOptions => {\r\n const initialFilter = {\r\n dateRangeKey: Config.isFeatureEnabled('UsageDefault:Date:30d') ? '30d' : '60d',\r\n granularity: 'Daily',\r\n topXResults: 25,\r\n segregateBy: PluralEntityType.products,\r\n toDate: null,\r\n fromDate: null,\r\n cloudAccountId: null,\r\n subscriptionIds: null,\r\n serviceId: null,\r\n productId: null,\r\n providerType: null,\r\n regionName: null,\r\n geographyName: null,\r\n tagKeyValue: null,\r\n tagKeyValues:[],\r\n productCategory: null,\r\n entities: null\r\n };\r\n return initialFilter;\r\n}\r\n","export const OthersPatternUrl = 'url(#others-pattern)';\r\n\r\nexport const ContrastBandVariable = 'var(--contrast-band)';\r\nexport const ContrastTextVariable = \"--contrast-text\";\r\nexport const ContrastLinesVariable = \"--contrast-lines\";\r\n\r\nexport const VuetifyPrimaryBase = 'var(--v-primary-base)';\r\nexport const VuetifyErrorDarken1 = 'var(--v-error-darken1)';\r\nexport const VuetifyWarningDarken1 = 'var(--v-warning-darken1)';\r\nexport const VuetifySuccessDarken1 = 'var(--v-success-darken1)';\r\n\r\nexport const VuetifyErrorLighten2 = 'var(--v-error-lighten2)';\r\nexport const VuetifyWarningLighten2 = 'var(--v-warning-lighten2)';\r\nexport const VuetifySuccessLighten2 = 'var(--v-success-lighten2)';","import Config from \"@/lib/Config\";\r\nconst colorsOverride = Config.get().CHART_COLORS.filter(c => c !== '');\r\n\r\nconst hexToRgb = (hex: string) => {\r\n const normalized = hex.replace(/^#/, \"\");\r\n const bigint = parseInt(normalized, 16);\r\n const r = (bigint >> 16) & 255;\r\n const g = (bigint >> 8) & 255;\r\n const b = bigint & 255;\r\n return { r, g, b };\r\n};\r\n\r\nexport const LEGACY_COLORS_HEX = colorsOverride && colorsOverride.length > 0 ? colorsOverride : [\r\n \"#7cb5ec\",\r\n \"#434348\",\r\n \"#90ed7d\",\r\n \"#f7a35c\",\r\n \"#8085e9\",\r\n \"#f15c80\",\r\n \"#e4d354\",\r\n \"#2b908f\",\r\n \"#f45b5b\",\r\n \"#91e8e1\",\r\n];\r\nexport const LEGACY_COLORS_RGB = LEGACY_COLORS_HEX.map(hex => {\r\n const rgb = hexToRgb(hex);\r\n return [ rgb.r.toString(), rgb.g.toString(), rgb.b.toString() ]\r\n});\r\n","'use strict';\r\n\r\nimport moment from 'dayjs';\r\nimport {_adapters} from 'chart.js';\r\n\r\nconst FORMATS = {\r\n datetime: 'MMM D, YYYY, h:mm:ss a',\r\n millisecond: 'h:mm:ss.SSS a',\r\n second: 'h:mm:ss a',\r\n minute: 'h:mm a',\r\n hour: 'hA',\r\n day: 'MMM D',\r\n week: 'll',\r\n month: 'MMM YYYY',\r\n quarter: '[Q]Q - YYYY',\r\n year: 'YYYY'\r\n};\r\n\r\n_adapters._date.override(typeof moment === 'function' ? {\r\n _id: 'moment', // DEBUG ONLY\r\n\r\n formats: function() {\r\n return FORMATS;\r\n },\r\n\r\n parse: function(value, format) {\r\n if (typeof value === 'string' && typeof format === 'string') {\r\n value = moment(value, format);\r\n } else if (!(value instanceof moment)) {\r\n value = moment(value);\r\n }\r\n return value.isValid() ? value.valueOf() : null;\r\n },\r\n\r\n format: function(time, format) {\r\n return moment(time).format(format);\r\n },\r\n\r\n add: function(time, amount, unit) {\r\n return moment(time).add(amount, unit).valueOf();\r\n },\r\n\r\n diff: function(max, min, unit) {\r\n return moment(max).diff(moment(min), unit);\r\n },\r\n\r\n startOf: function(time, unit, weekday) {\r\n time = moment(time);\r\n if (unit === 'isoWeek') {\r\n weekday = Math.trunc(Math.min(Math.max(0, weekday), 6));\r\n return time.isoWeekday(weekday).startOf('day').valueOf();\r\n }\r\n return time.startOf(unit).valueOf();\r\n },\r\n\r\n endOf: function(time, unit) {\r\n return moment(time).endOf(unit).valueOf();\r\n }\r\n} : {});","/*\r\n Modified from: https://www.chartjs.org/docs/4.2.1/samples/legend/html.html\r\n*/\r\nconst getOrCreateLegendList = (chart, id) => {\r\n const legendContainer = document.getElementById(id);\r\n let listContainer = legendContainer.querySelector('ul');\r\n \r\n if (!listContainer) {\r\n listContainer = document.createElement('ul');\r\n listContainer.style.display = 'flex';\r\n listContainer.style.flexDirection = 'column';\r\n listContainer.style.margin = \"0\";\r\n listContainer.style.padding = \"0\";\r\n listContainer.style.paddingTop = \"20px\";\r\n listContainer.style.paddingBottom = \"20px\";\r\n\r\n listContainer.style.maxWidth = \"250px\";\r\n legendContainer.appendChild(listContainer);\r\n }\r\n \r\n return listContainer;\r\n };\r\n \r\n const htmlLegendPlugin = {\r\n id: 'htmlLegend',\r\n afterUpdate(chart, args, options) {\r\n const ul = getOrCreateLegendList(chart, options.containerID);\r\n \r\n // Remove old legend items\r\n while (ul.firstChild) {\r\n ul.firstChild.remove();\r\n }\r\n \r\n // Reuse the built-in legendItems generator\r\n const items = chart.options.plugins.legend.labels.generateLabels(chart);\r\n \r\n items.forEach(item => {\r\n const li = document.createElement('li');\r\n li.style.alignItems = 'center';\r\n li.style.cursor = 'pointer';\r\n li.style.display = 'flex';\r\n li.style.flexDirection = 'row';\r\n li.style.marginLeft = '10px';\r\n li.style.marginBottom = '5px';\r\n \r\n li.onclick = () => {\r\n const {type} = chart.config;\r\n if (type === 'pie' || type === 'doughnut') {\r\n // Pie and doughnut charts only have a single dataset and visibility is per item\r\n chart.toggleDataVisibility(item.index);\r\n } else {\r\n if(options.onLabelClick) {\r\n options.onLabelClick(null, [{datasetIndex: item.datasetIndex, index: 0}], chart)\r\n }\r\n else {\r\n chart.setDatasetVisibility(item.datasetIndex, !chart.isDatasetVisible(item.datasetIndex));\r\n }\r\n \r\n }\r\n chart.update();\r\n };\r\n \r\n // Color box\r\n const boxSpan = document.createElement('span');\r\n boxSpan.style.background = item.fillStyle;\r\n boxSpan.style.borderColor = item.strokeStyle;\r\n boxSpan.style.borderStyle = 'solid';\r\n boxSpan.style.borderWidth = item.lineWidth + 'px';\r\n boxSpan.style.display = 'inline-block';\r\n boxSpan.style.flexShrink = \"0\";\r\n boxSpan.style.height = '10px';\r\n boxSpan.style.marginRight = '10px';\r\n boxSpan.style.width = '20px';\r\n \r\n // Text\r\n const textContainer = document.createElement('p');\r\n textContainer.style.color = item.fontColor;\r\n textContainer.style.margin = \"0\";\r\n textContainer.style.padding = \"0\";\r\n textContainer.style.textDecoration = item.hidden ? 'line-through' : '';\r\n \r\n const text = document.createTextNode(item.text);\r\n textContainer.appendChild(text);\r\n \r\n li.appendChild(boxSpan);\r\n li.appendChild(textContainer);\r\n ul.appendChild(li);\r\n });\r\n }\r\n };\r\n\r\n export default htmlLegendPlugin;","import { ISpendResult, ISpendAndConsumptionGroup, IForecastResult, IEventItemModel, Granularity, IConsumptionUsageRecord } from '@/models';\r\nimport * as CssVariables from '@/lib/CssVariables';\r\nimport { ChartData, Point, Chart, ChartDataset } from 'chart.js/auto'\r\nimport annotationPlugin, { AnnotationOptions, CoreAnnotationOptions, EventContext, LabelAnnotationOptions } from 'chartjs-plugin-annotation';\r\nimport { formatCurrency } from '@/lib/Currencies';\r\nimport { LEGACY_COLORS_RGB } from './legacy'\r\nimport pattern from 'patternomaly';\r\nimport './dayJsAdapter';\r\nimport htmlLegendPlugin from './legendPlugin';\r\nimport zoomPlugin from 'chartjs-plugin-zoom';\r\nimport moment from 'dayjs';\r\nimport { Annotation } from '@/models/Annotation';\r\n\r\n\r\nChart.register(annotationPlugin);\r\n\r\nconst PREFIX_PAD = 100;\r\nconst OTHERS_DATASET_ORDER = 99998;\r\nconst PROJECTIONS_DATASET_ORDER = 99999;\r\n\r\nexport interface IUsageDatapoint {\r\n x: number;\r\n y: number;\r\n id: string;\r\n type: string;\r\n}\r\n\r\nexport enum UsageReportTypes {\r\n charges = 'charges',\r\n spend = 'spend',\r\n credits = 'credits'\r\n}\r\n\r\nexport interface IConvertUsageReportOpts {\r\n labelSuffix?: string | null;\r\n stackGroup?: string | null;\r\n colorsArray?: string[] | null;\r\n reportType?: UsageReportTypes | UsageReportTypes[] | null;\r\n}\r\n\r\nconst valueFn = (t: UsageReportTypes): ((u: IConsumptionUsageRecord) => number) => {\r\n switch (t) {\r\n case UsageReportTypes.spend:\r\n return (u) => u.spend;\r\n case UsageReportTypes.charges:\r\n return (u) => u.charges;\r\n case UsageReportTypes.credits:\r\n return (u) => u.credits;\r\n default:\r\n throw new Error('Unknown usage report type');\r\n }\r\n};\r\n // This is code taken from their site and apparently they are using a value that doesnt exist on the typescript\r\n function autoScaling(ctx : EventContext & {size: number}, option : 'font' | 'padding', origValue : number) {\r\n const chart = ctx.chart;\r\n const {width, height} = chart.chartArea;\r\n const barWidth = chart.getDatasetMeta(0).data[0];\r\n if(barWidth[\"width\"]) {\r\n if(option == 'padding') {\r\n const output = barWidth[\"width\"] / 10;\r\n if(output > origValue) {\r\n return origValue;\r\n }\r\n return output;\r\n }\r\n else if(option === 'font') {\r\n const output = barWidth[\"width\"] / 3;\r\n if(output > origValue) {\r\n return origValue;\r\n }\r\n return output;\r\n }\r\n }\r\n\r\n const hypo = Math.sqrt(Math.pow(width, 2) + Math.pow(height, 2));\r\n let size, value;\r\n if (!ctx.size) {\r\n ctx.size = size = hypo;\r\n value = origValue;\r\n } else {\r\n size = ctx.size;\r\n value = hypo / size * origValue;\r\n }\r\n if(value > origValue) {\r\n return origValue;\r\n }\r\n if (option === 'font') {\r\n return {size: value};\r\n }\r\n return value;\r\n }\r\n\r\nexport const convertUsageResponseToDatasets = (usageResult: ISpendResult | null, opts?: IConvertUsageReportOpts): ChartData<'bar', Point[], string> => {\r\n const { labelSuffix, stackGroup, colorsArray, reportType } = opts || {};\r\n const datasets: ChartDataset<'bar', IUsageDatapoint[]>[] = [];\r\n const colours = colorsArray ? colorsArray : LEGACY_COLORS_RGB;\r\n (usageResult?.groupings || []).reverse().forEach((g, i) => {\r\n const color = colours[i % colours.length];\r\n const fullColor = `rgb(${color})`;\r\n\r\n const dataset: ChartDataset<'bar', IUsageDatapoint[]> = {\r\n data: [],\r\n label: (g.type === '' ? 'Tenant' : g.name) + (labelSuffix ? ` (${labelSuffix})` : ''),\r\n backgroundColor: g.isOther ? pattern.draw('diagonal', '#87db79', '#313e4d') : fullColor,\r\n borderColor: 'white',\r\n hoverBackgroundColor: g.isOther ? pattern.draw('diagonal', '#FF10F0', '#313e4d') : '#FF10F0',\r\n borderWidth: 1,\r\n order: g.isOther ? OTHERS_DATASET_ORDER : (PREFIX_PAD + i),\r\n normalized: true,\r\n stack: stackGroup ? stackGroup : 'stack0'\r\n };\r\n const reportTypes: UsageReportTypes[] = !reportType ? [UsageReportTypes.spend] : Array.isArray(reportType) ? reportType : [reportType];\r\n const { id, type } = g;\r\n g.usageRecords.forEach(u => {\r\n const x = new Date(u.usageDate).getTime();\r\n reportTypes.forEach(t => {\r\n const fn = valueFn(t);\r\n const y = fn(u);\r\n dataset.data.push({ x, y, id, type });\r\n });\r\n });\r\n datasets.push(dataset);\r\n });\r\n return {\r\n labels: [],\r\n datasets\r\n };\r\n};\r\n\r\nexport const convertProjectionsResponseToDataset = (projectionsResult: IForecastResult | null, labelSuffix?: string | null, stackGroup?: string | null, altColorHex?: string | null): ChartData<'bar', Point[], string> => {\r\n if (!projectionsResult) {\r\n return {\r\n labels: [],\r\n datasets: []\r\n }\r\n }\r\n const dataset: ChartDataset<'bar', Point[]> = {\r\n data: [],\r\n label: 'Projected' + (labelSuffix ? ` (${labelSuffix})` : ''),\r\n backgroundColor: pattern.draw('diagonal', (altColorHex ? altColorHex : '#3d3a60'), '#fff'),\r\n borderColor: 'white',\r\n borderWidth: 1,\r\n order: PROJECTIONS_DATASET_ORDER,\r\n stack: stackGroup ? stackGroup : 'stack0'\r\n };\r\n (projectionsResult?.forecasts || []).filter(x => x.forecast > 0).forEach((u) => {\r\n const forecastTimestamp = new Date(u.usageDate).getTime();\r\n dataset.data.push({\r\n x: forecastTimestamp,\r\n y: u.forecast\r\n });\r\n });\r\n return {\r\n labels: [],\r\n datasets: [dataset]\r\n }\r\n};\r\n\r\nexport function convertEventsToAnnotations(eventResponse: IEventItemModel[], onClick: (xMin: number, xMax: number) => void | null = null): CoreAnnotationOptions[] {\r\n const sortedEvents = eventResponse.sort((a, b) => {\r\n const aDate = new Date(a.year, a.month - 1, a.day);\r\n const bDate = new Date(b.year, b.month - 1, b.day);\r\n return new Date(aDate).getTime() - new Date(bDate).getTime();\r\n });\r\n const plotBands: AnnotationOptions[] = [];\r\n sortedEvents.forEach((value) => {\r\n const currentDate = new Date(Date.UTC(value.year, value.month - 1, value.day));\r\n const dayBefore = new Date(currentDate);\r\n dayBefore.setDate(currentDate.getDate() - 1);\r\n let toCreate = false;\r\n const existingBand = plotBands[plotBands.length - 1];\r\n if (!existingBand) {\r\n toCreate = true;\r\n } else if (existingBand.xMin == currentDate.getTime()) {\r\n // Multiple events on the same date; this is where we could take into account intensity values.\r\n } else if (existingBand.xMin == dayBefore.getTime()) {\r\n existingBand.xMax = currentDate.getTime();\r\n } else {\r\n toCreate = true;\r\n }\r\n if (toCreate) {\r\n const plotBand: AnnotationOptions = {\r\n type: 'box',\r\n xMin: currentDate.getTime(),\r\n xMax: currentDate.getTime(),\r\n backgroundColor: 'rgba(255, 99, 132, 0.25)',\r\n click() {\r\n if (!onClick) return;\r\n onClick(plotBand.xMin as number, plotBand.xMax as number);\r\n },\r\n }\r\n plotBands.push(plotBand);\r\n }\r\n });\r\n plotBands.forEach((band) => {\r\n const xMinDate = new Date(band.xMin as number);\r\n band.xMin = new Date(xMinDate.setHours(0, 0, 0, 0)).getTime();\r\n const xMaxDate = new Date(band.xMax as number);\r\n band.xMax = new Date(xMaxDate.setHours(23, 59, 59, 999)).getTime();\r\n });\r\n return plotBands;\r\n}\r\n\r\nexport function convertAnnotatesToAnnotations(eventResponse: Annotation[], data: ChartDataset<\"bar\", Point[]>[], granularity: Granularity, onClick: (xMin: number, xMax: number) => void | null = null): CoreAnnotationOptions[] {\r\n const flatData = data.flatMap(({data, stack}) => data.map(y => { \r\n return {x : y.x,y: y.y, stack}\r\n }));\r\n const sortedEvents = eventResponse.map(x => new Date(x.annotationDate)).sort((a, b) => {\r\n return a.getTime() - b.getTime();\r\n });\r\n let largest = 0;\r\n const xValues = flatData.map(x => {return {x: x.x, stack: x.stack}}).filter(\r\n (value, index, self) => self.findIndex(itemB => value.stack == itemB.stack && value.x == itemB.x) === index);\r\n const totals: { [id: number] : number; } = {};\r\n xValues.forEach(x => {\r\n const total = flatData.filter(item => item.x == x.x && item.stack == x.stack).map(y => y.y).reduce((a, b) => a + b) ?? 0;\r\n if(total > largest) {\r\n largest = total;\r\n }\r\n if(!totals[x.x] || totals[x.x] < total) {\r\n totals[x.x] = total;\r\n }\r\n });\r\n\r\n // get granularity to change look\r\n const plotBands: LabelAnnotationOptions[] = [];\r\n sortedEvents.forEach((value) => {\r\n const xMinDate = new Date(value);\r\n xMinDate.setHours(0, 0, 0, 0);\r\n const xMaxDate = new Date(value);\r\n xMaxDate.setHours(23, 59, 59, 999);\r\n\r\n if(granularity == Granularity.monthly) {\r\n xMinDate.setDate(1);\r\n xMaxDate.setDate(moment(xMaxDate).endOf('month').day());\r\n }\r\n const dayBefore = new Date(xMinDate);\r\n dayBefore.setDate(xMinDate.getDate() - 1);\r\n let toCreate = false;\r\n const existingBand = plotBands[plotBands.length - 1];\r\n if (!existingBand) {\r\n toCreate = true;\r\n } else if (existingBand.xMin == xMinDate.getTime()) {\r\n // Multiple events on the same date; this is where we could take into account intensity values.\r\n } else if (granularity != Granularity.monthly && existingBand.xMin == dayBefore.getTime()) {\r\n existingBand.xMax = xMinDate.getTime();\r\n } else {\r\n toCreate = true;\r\n }\r\n if (toCreate) {\r\n const minDate = xMinDate.getTime();\r\n const maxDate = xMaxDate.getTime();\r\n let midday = moment(new Date(value));\r\n const offset = midday.utcOffset();\r\n if(offset >= 0) {\r\n midday = midday.startOf('day');\r\n }\r\n else {\r\n midday = midday.endOf('day')\r\n }\r\n midday = midday.add(midday.utcOffset(), 'm'); // Allign with start of day in the timezone\r\n const dataValues = flatData.filter(x => x.x >= minDate && x.x <= maxDate).map(x => x.x).filter(\r\n (value, index, self) => self.findIndex(itemB => value == itemB) === index);\r\n let total = 0;\r\n dataValues.forEach(x => {\r\n if(totals[x] > total) {\r\n total = totals[x];\r\n }\r\n });\r\n \r\n const plotBand: any = { // has to be any as for some reason nothing else works\r\n type: 'label',\r\n backgroundColor: 'rgb(124, 181, 236)',\r\n content: 'ⓘ',\r\n font: (ctx) => autoScaling(ctx, 'font', granularity == Granularity.monthly ? 15 : 10),\r\n padding: (ctx) => autoScaling(ctx, 'padding', granularity == Granularity.monthly ? 5 : 3),\r\n xMin: xMinDate.getTime(),\r\n xMax: xMaxDate.getTime(),\r\n position: {\r\n x: 'center',\r\n y: 'center'\r\n },\r\n xValue: granularity == Granularity.monthly ? xMinDate.getTime() : midday.toDate().getTime(), // using .unix seemed to make it angry\r\n yValue: total + (largest * .05), // Place it 5% above the top of the largest column value,\r\n click() {\r\n if (!onClick) return;\r\n onClick(plotBand.xMin as number, plotBand.xMax as number);\r\n },\r\n }\r\n plotBands.push(plotBand);\r\n }\r\n });\r\n plotBands.forEach((band) => {\r\n const xMinDate = new Date(band.xMin as number);\r\n band.xMin = new Date(xMinDate.setHours(0, 0, 0, 0)).getTime();\r\n const xMaxDate = new Date(band.xMax as number);\r\n band.xMax = new Date(xMaxDate.setHours(23, 59, 59, 999)).getTime();\r\n });\r\n return plotBands;\r\n}\r\n\r\nexport interface IClickEvent {\r\n index: number;\r\n name: string;\r\n isOther: boolean;\r\n datasetGroupId: string;\r\n}\r\nexport interface IRangeSelectedEvent {\r\n xMin: number;\r\n xMax: number;\r\n rangeTotal: number;\r\n}\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n granularity: Granularity.daily | Granularity.monthly;\r\n onClick?: (event: IClickEvent) => void;\r\n onRangeSelection?: (event: IRangeSelectedEvent) => void;\r\n allowRangeSelection: boolean;\r\n type?: 'bar' | 'line',\r\n maxDate?: string\r\n}\r\n\r\nfunction getRange(scale, pixel0, pixel1) {\r\n const v0 = scale.getValueForPixel(pixel0);\r\n const v1 = scale.getValueForPixel(pixel1);\r\n return {\r\n min: Math.min(v0, v1),\r\n max: Math.max(v0, v1)\r\n };\r\n }\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions, containerId: string): Chart => {\r\n const { currencyCode, onClick, granularity, type, onRangeSelection, allowRangeSelection, maxDate} = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(CssVariables.ContrastLinesVariable);\r\n const contrastText = style.getPropertyValue(CssVariables.ContrastTextVariable);\r\n let selectedRange = undefined;\r\n zoomPlugin.zoomFunctions.default = (scale, zoom, center, limits) => false;\r\n zoomPlugin.zoomRectFunctions.default = (scale, from, to, limits) => {\r\n const range = getRange(scale, from, to);\r\n selectedRange = range;\r\n \r\n return true;};\r\n\r\n zoomPlugin.panFunctions.default = (scale, delta, limits) => false;\r\n const onClickProcessor = (_, [targetPtr], chart) => {\r\n if (!targetPtr) return;\r\n const targetDataset = chart.data.datasets[targetPtr.datasetIndex];\r\n if (!targetDataset || targetDataset.order === PROJECTIONS_DATASET_ORDER) return;\r\n const target: IUsageDatapoint = targetDataset.data[targetPtr.index] as any;\r\n if (!target) return;\r\n if (target.type === '') return;\r\n if (onClick) {\r\n onClick({\r\n index: targetDataset.order,\r\n isOther: targetDataset.order === OTHERS_DATASET_ORDER,\r\n name: targetDataset.label,\r\n datasetGroupId: target.id\r\n });\r\n }\r\n }\r\n\r\n \r\n const chart = new Chart(chartItem, {\r\n type: type || 'bar',\r\n data: {\r\n labels: [],\r\n datasets: []\r\n },\r\n options: {\r\n borderColor: 'rgba(0,0, 0, 0)',\r\n plugins: {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: containerId,\r\n },\r\n zoom: {\r\n zoom: {\r\n drag: {\r\n enabled: allowRangeSelection\r\n },\r\n mode: 'x',\r\n onZoomComplete(chart){\r\n if(onRangeSelection && selectedRange != undefined) {\r\n const minXDate = new Date(Math.floor(selectedRange.min));\r\n minXDate.setHours(0,0,0,0);\r\n\r\n const maxXDate = new Date(Math.ceil(selectedRange.max));\r\n maxXDate.setHours(23,59,59,999);\r\n\r\n const minX = minXDate.getTime(); \r\n\r\n const maxX = maxXDate.getTime();\r\n const datasets = chart.chart.data.datasets;\r\n const values = datasets.flatMap(x => x.data.filter((y: Point) => y.x >= minX && y.x <= maxX));\r\n if(values?.length > 0) {\r\n const stackTotal = values.filter(x => x).map((x: Point) => x.y)?.reduce((a,b) => a + b) ?? 0;\r\n onRangeSelection({\r\n xMin: minX,\r\n xMax: maxX,\r\n rangeTotal: stackTotal\r\n });\r\n }\r\n }\r\n selectedRange = undefined;\r\n }\r\n },\r\n },\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: contrastText\r\n },\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(item) {\r\n return [item.dataset.label];\r\n },\r\n afterLabel(item) {\r\n const dataset = item.dataset;\r\n const points: Point[] = dataset.data as any;\r\n const hoverPoint: Point = points[item.dataIndex];\r\n const datasetTotal = points.map((a: Point) => a.y).reduce((a, b) => a + b);\r\n const datasetAverage = datasetTotal / dataset.data.length;\r\n const percentageOfAverage = ((hoverPoint.y - datasetAverage) / datasetAverage * 100);\r\n const datasets = item.chart.data.datasets;\r\n const values = datasets.filter(x => x.stack == dataset.stack).flatMap(x => x.data.filter((y: Point) => y.x == hoverPoint.x));\r\n const stackTotal = values.filter(x => x).map((x: Point) => x.y).reduce((a,b) => a + b);\r\n return [\r\n `Total: ${formatCurrency(hoverPoint.y, currencyCode)}`,\r\n `${percentageOfAverage > 0 ? '+' + percentageOfAverage.toFixed(2) : percentageOfAverage.toFixed(2)}% vs. average`,\r\n `Column Total: ${formatCurrency(stackTotal, currencyCode)}`\r\n ]\r\n },\r\n },\r\n mode: 'point',\r\n },\r\n annotation: {\r\n annotations: {}\r\n },\r\n },\r\n interaction: {\r\n intersect: true,\r\n mode: 'dataset'\r\n },\r\n onHover(event, [element]) {\r\n let newCursor = 'default';\r\n if (element) {\r\n const targetDataset = chart.data.datasets[element.datasetIndex];\r\n if (!targetDataset) return;\r\n const target: IUsageDatapoint = targetDataset.data[element.index] as any;\r\n if (!target) return;\r\n if (target.type === '') return;\r\n if (targetDataset.order !== PROJECTIONS_DATASET_ORDER) {\r\n newCursor = 'pointer';\r\n }\r\n }\r\n (event.native.target as HTMLElement).style.cursor = newCursor;\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n onClick(_, [targetPtr], chart) {\r\n onClickProcessor(_,[targetPtr], chart);\r\n },\r\n scales: {\r\n x: {\r\n type: \"time\",\r\n stacked: true,\r\n ticks: {\r\n color: contrastText\r\n },\r\n grid: {\r\n color: 'rgba(0, 0, 0, 0)'\r\n },\r\n axis: 'x',\r\n time: {\r\n unit: granularity == Granularity.monthly ? 'month' : 'day'\r\n },\r\n bounds: 'ticks',\r\n max: new Date(maxDate ?? Date.now()).getTime()\r\n },\r\n y: {\r\n type: 'linear',\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return formatCurrency(value, currencyCode);\r\n }\r\n },\r\n grid: {\r\n color: contrastLines\r\n },\r\n min: 0,\r\n axis: 'y',\r\n title: {\r\n text: `Cost (${currencyCode})`,\r\n color: contrastText,\r\n display: true\r\n },\r\n stack: 'y',\r\n display: true,\r\n\r\n }\r\n }\r\n },\r\n plugins: [htmlLegendPlugin, zoomPlugin]\r\n });\r\n return chart;\r\n};","\r\nimport { defineComponent, ref, onMounted, watch } from 'vue';\r\nimport { useTenantStore, storeToRefs } from '@/stores';\r\nimport createUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n convertAnnotatesToAnnotations,\r\n IClickEvent,\r\n UsageReportTypes,\r\n IUsageDatapoint,\r\n} from '@/chartjs/createUsageBarChart';\r\nimport { Granularity } from '@/models';\r\nexport {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n convertAnnotatesToAnnotations,\r\n IClickEvent,\r\n IUsageDatapoint,\r\n UsageReportTypes,\r\n};\r\n\r\nexport default defineComponent({\r\n props: {\r\n granularity: String,\r\n data: Object,\r\n annotations: Array,\r\n height: String,\r\n allowRangeSelection: Boolean,\r\n maxDate: String,\r\n },\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n\r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.classList.add('chart-canvas');\r\n if (p.height === '100%') {\r\n canvas.value.classList.add('fill-height-srsly');\r\n root.value.classList.add('fill-height');\r\n canvasContainer.value.classList.add('fill-height-srsly');\r\n } else {\r\n canvas.value.style.height = p.height || '400px';\r\n }\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = p.height || '400px';\r\n\r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n \r\n const chart = createUsageBarChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n granularity: p.granularity as Granularity.daily | Granularity.monthly,\r\n onClick(event) {\r\n emit('click', event);\r\n },\r\n onRangeSelection(event) {\r\n emit('onRangeSelection', event);\r\n },\r\n allowRangeSelection: p.allowRangeSelection == true,\r\n maxDate: p.maxDate\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.options.plugins.annotation.annotations = p.annotations || [];\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n watch(\r\n () => p.annotations,\r\n () => renderChart(),\r\n { immediate: false, deep: true }\r\n );\r\n return { root, canvas, renderChart, legend };\r\n },\r\n watch: {\r\n '$vuetify.theme.dark': {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpendUsageBarChart.vue?vue&type=template&id=66c40b00&\"\nimport script from \"./SpendUsageBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsageBarChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n name: _vm.name,\n displayCurrencyCode: _vm.currencyCode,\n mpnOverride: _vm.mpnOverride,\n tagHeirarchy: [_vm.tagHeirarchy1, _vm.tagHeirarchy2, _vm.tagHeirarchy3],\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[(_vm.nameEditable)?_c('v-text-field',{attrs:{\"rules\":_vm.nameRules,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}):_vm._e(),_c('currency-combo-box',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.value),expression:\"!value\"}],attrs:{\"rules\":_vm.currencyCodeRules},model:{value:(_vm.currencyCode),callback:function ($$v) {_vm.currencyCode=$$v},expression:\"currencyCode\"}}),(_vm.allowMpnOverride)?_c('v-text-field',{staticClass:\"mb-8\",attrs:{\"label\":_vm.$t('setTenantCard.mpn')},model:{value:(_vm.mpnOverride),callback:function ($$v) {_vm.mpnOverride=$$v},expression:\"mpnOverride\"}}):_vm._e(),_c('tag-key-autocomplete',{staticClass:\"mb-8\",attrs:{\"label\":_vm.$t('setTenantCard.tagHeirarchy1'),\"dense\":false,\"filled\":false,\"chips\":false},model:{value:(_vm.tagHeirarchy1),callback:function ($$v) {_vm.tagHeirarchy1=$$v},expression:\"tagHeirarchy1\"}}),_c('tag-key-autocomplete',{staticClass:\"mb-8\",attrs:{\"label\":_vm.$t('setTenantCard.tagHeirarchy2'),\"dense\":false,\"filled\":false,\"chips\":false},model:{value:(_vm.tagHeirarchy2),callback:function ($$v) {_vm.tagHeirarchy2=$$v},expression:\"tagHeirarchy2\"}}),_c('tag-key-autocomplete',{staticClass:\"mb-8\",attrs:{\"label\":_vm.$t('setTenantCard.tagHeirarchy3'),\"dense\":false,\"filled\":false,\"chips\":false},model:{value:(_vm.tagHeirarchy3),callback:function ($$v) {_vm.tagHeirarchy3=$$v},expression:\"tagHeirarchy3\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.errorFallback)?_c('v-combobox',{attrs:{\"loading\":_vm.$wait.is('getCurrencies'),\"value\":_vm.value,\"items\":_vm.currencyCodes,\"label\":_vm.$t('currencyComboBox.currency'),\"rules\":_vm.rules},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_c('v-text-field',{attrs:{\"value\":_vm.value,\"rules\":_vm.rules,\"label\":_vm.$t('currencyComboBox.currency'),\"placeholder\":_vm.$t('currencyComboBox.fallbackPlaceholder')},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"currencyComboBox.currency\": \"Currency\",\r\n \"currencyComboBox.fallbackPlaceholder\": \"Please enter the currency code of your choosing e.g. AUD\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CurrencyComboBox.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CurrencyComboBox.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CurrencyComboBox.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CurrencyComboBox.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CurrencyComboBox.vue?vue&type=template&id=61ab201e&\"\nimport script from \"./CurrencyComboBox.vue?vue&type=script&lang=js&\"\nexport * from \"./CurrencyComboBox.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CurrencyComboBox.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('entity-search-autocomplete',_vm._b({attrs:{\"filled\":_vm.filled,\"types\":['TagKey'],\"value\":_vm.tagKeyEntity,\"prepend-icon\":null,\"label\":_vm.label || _vm.$t('tagKeyAutocomplete.tagKey.label'),\"hide-details\":\"\",\"support-create\":\"\"},on:{\"input\":_vm.handleTagKeySelection}},'entity-search-autocomplete',_vm.$props,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"tagKeyAutocomplete.tagKey.label\": \"Key\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyAutocomplete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyAutocomplete.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagKeyAutocomplete.vue?vue&type=template&id=14002455&\"\nimport script from \"./TagKeyAutocomplete.vue?vue&type=script&lang=js&\"\nexport * from \"./TagKeyAutocomplete.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagKeyAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n{\r\n \"en\": {\r\n \"setTenantCard.name.required\": \"A name is required for tenants\",\r\n \"setTenantCard.currencyCode.required\": \"A currency code is required for tenants\",\r\n \"setTenantCard.mpn\": \"Microsoft Partner Number\",\r\n \"setTenantCard.tagHeirarchy1\": \"Tag Key 1\",\r\n \"setTenantCard.tagHeirarchy2\": \"Tag Key 2\",\r\n \"setTenantCard.tagHeirarchy3\": \"Tag Key 3\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetTenantCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetTenantCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetTenantCard.vue?vue&type=template&id=4a240b8c&\"\nimport script from \"./SetTenantCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetTenantCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":_vm.value ? `/api/metadata/tenant/${_vm.value.id}` : null,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putTenantButton.errorMessage\": \"There was an error encountered while updating this tenant. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutTenantButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutTenantButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutTenantButton.vue?vue&type=template&id=4983a29e&\"\nimport script from \"./PutTenantButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PutTenantButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_vm._t(\"workspace\"),_c('v-spacer'),(!_vm.hideSearch)?_c('v-menu',{attrs:{\"offset-y\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"outlined\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"filter_alt\")]),_vm._v(\" \"+_vm._s(_vm.selectedSearchEntity ? _vm.selectedSearchEntity.length || 1 : 0)+\" Filters \")],1)]}}],null,false,2605135672)},[_c('v-card',{staticClass:\"pa-4\"},[_c('entity-search-autocomplete',{staticClass:\"mr-2\",attrs:{\"solo-inverted\":\"\",\"hide-details\":\"\",\"flat\":\"\",\"dense\":\"\",\"multiple\":true,\"prepend-icon\":null,\"label\":_vm.$t('spendUsageOptionsToolbar.label'),\"types\":_vm.searchSupportedTypes,\"disabled\":_vm.loading},on:{\"input\":_vm.handleUpdateFilterEntity},model:{value:(_vm.selectedSearchEntity),callback:function ($$v) {_vm.selectedSearchEntity=$$v},expression:\"selectedSearchEntity\"}})],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('ViewAmortisedSpend'))?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[(_vm.value.costView === 'Actual')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"attach_money\")]):_vm._e(),(_vm.value.costView === 'Utilized')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"dns\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.value.costView || 'Actual'))],1)]}}],null,false,1565107442)},[_c('v-list',[_c('v-subheader',[_vm._v(\"Cost View\")]),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdatedCostView('Actual')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"attach_money\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Actual\")]),_c('v-list-item-subtitle',[_vm._v(\"The actual spend as you might expect it in an invoice.\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdatedCostView('Utilized')}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"dns\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Utilization\")]),_c('v-list-item-subtitle',[_vm._v(\"Pre-commitments allocated out to utilizing resources.\")])],1)],1)],1)],1):_vm._e(),_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"calendar_month\")]),_vm._v(\" \"+_vm._s(_vm.dateRangeDescription))],1)]}}]),model:{value:(_vm.isPickingDateRange),callback:function ($$v) {_vm.isPickingDateRange=$$v},expression:\"isPickingDateRange\"}},[_c('v-list',[_c('v-subheader',[_vm._v(\"Date Ranges\")]),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '30d', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === '30d'}})],1),_c('v-list-item-title',[_vm._v(\"30 days\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '60d', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === '60d'}})],1),_c('v-list-item-title',[_vm._v(\"60 days\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '3m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === '3m'}})],1),_c('v-list-item-title',[_vm._v(\"3 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '6m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === '6m'}})],1),_c('v-list-item-title',[_vm._v(\"6 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleUpdateDateRange({ dateRangeKey: '13m', toDate: null, fromDate: null })}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === '13m'}})],1),_c('v-list-item-title',[_vm._v(\"All data\")])],1),_c('v-menu',{attrs:{\"close-on-content-click\":false,\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.dateRangeKey === 'custom'}})],1),_c('v-list-item-title',[_vm._v(\"Custom\")])],1)]}}])},[_c('v-date-picker',{attrs:{\"range\":\"\"},on:{\"input\":function($event){$event.length === 2\n ? _vm.handleUpdateDateRange({\n dateRangeKey: 'custom',\n toDate: new Date($event[1]),\n fromDate: new Date($event[0]),\n })\n : true}},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}})],1)],1)],1),(_vm.value.dateRangeKey !== 'custom')?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[_vm._v(\" forecast \"+_vm._s(_vm.value.forecastRangeKey || '7d'))])]}}],null,false,412715033),model:{value:(_vm.isPickingForecastRange),callback:function ($$v) {_vm.isPickingForecastRange=$$v},expression:\"isPickingForecastRange\"}},[_c('v-list',[_c('v-subheader',[_vm._v(\"Forecast Forward\")]),(_vm.value.granularity === 'Daily')?[_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('3d')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '3d'}})],1),_c('v-list-item-title',[_vm._v(\"3 days\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('7d')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '7d'}})],1),_c('v-list-item-title',[_vm._v(\"7 days\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('30d')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '30d'}})],1),_c('v-list-item-title',[_vm._v(\"30 days\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('60d')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '60d'}})],1),_c('v-list-item-title',[_vm._v(\"60 days\")])],1)]:_vm._e(),(_vm.value.granularity === 'Monthly')?[_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('1m')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '1m'}})],1),_c('v-list-item-title',[_vm._v(\"1 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('3m')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '3m'}})],1),_c('v-list-item-title',[_vm._v(\"3 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('6m')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '6m'}})],1),_c('v-list-item-title',[_vm._v(\"6 months\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.handleForecastDateRange('12m')}}},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"readonly\":\"\",\"value\":_vm.value.forecastRangeKey === '12m'}})],1),_c('v-list-item-title',[_vm._v(\"12 months\")])],1)]:_vm._e()],2)],1):_vm._e(),(!_vm.hideSegregation)?_c('v-menu',{attrs:{\"bottom\":\"\",\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"outlined\":\"\"}},on),[(_vm.value.segregateBy === 'productcategories')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"category\")]):_vm._e(),(_vm.value.segregateBy === 'products')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"shopping_cart\")]):_vm._e(),(_vm.value.segregateBy === 'services')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"memory\")]):_vm._e(),(_vm.value.segregateBy === 'subscriptions')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_queue\")]):_vm._e(),(_vm.value.segregateBy === 'cloudaccounts')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_download\")]):_vm._e(),(_vm.value.segregateBy === 'cloudproviders')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"apartment\")]):_vm._e(),(_vm.value.segregateBy === 'meters')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"payments\")]):_vm._e(),(_vm.value.segregateBy === 'productCategories')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"shopping_cart\")]):_vm._e(),(_vm.value.segregateBy === 'regions')?_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"location_on\")]):_vm._e(),_vm._v(\" by \"+_vm._s(_vm.$t(`segregationButtonToggle.${_vm.value.segregateBy}.title`)))],1)]}}],null,false,825042931)},[_c('v-list',_vm._l((_vm.segregationSupportedKeys),function(key){return _c('v-list-item',{key:key,on:{\"click\":function($event){return _vm.$emit('input', { ..._vm.value, segregateBy: key })}}},[_c('v-list-item-icon',[(key === 'productcategories')?_c('v-icon',[_vm._v(\"category\")]):_vm._e(),(key === 'products')?_c('v-icon',[_vm._v(\"shopping_cart\")]):_vm._e(),(key === 'services')?_c('v-icon',[_vm._v(\"memory\")]):_vm._e(),(key === 'subscriptions')?_c('v-icon',[_vm._v(\"cloud_queue\")]):_vm._e(),(key === 'cloudaccounts')?_c('v-icon',[_vm._v(\"cloud_download\")]):_vm._e(),(key === 'cloudproviders')?_c('v-icon',[_vm._v(\"apartment\")]):_vm._e(),(key === 'meters')?_c('v-icon',[_vm._v(\"payments\")]):_vm._e(),(key === 'productCategories')?_c('v-icon',[_vm._v(\"shopping_cart\")]):_vm._e(),(key === 'regions')?_c('v-icon',[_vm._v(\"location_on\")]):_vm._e()],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(`segregationButtonToggle.${key}.title`)))]),_c('v-list-item-subtitle',[_vm._v(\" \"+_vm._s(_vm.$t(`segregationButtonToggle.${key}.description`)))])],1)],1)}),1)],1):_vm._e(),(_vm.loading)?_c('v-progress-circular',{staticClass:\"ml-3\",attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn-toggle',{staticClass:\"ml-2\",attrs:{\"value\":_vm.value.dateRangeKey,\"mandatory\":\"\",\"rounded\":\"\",\"depressed\":\"\"},on:{\"change\":_vm.handleUpdateDateType}},_vm._l((_vm.items),function(key,i){return _c('fragment',{key:i},[(key !== 'custom')?_c('v-btn',{attrs:{\"small\":\"\",\"depressed\":\"\",\"outlined\":\"\",\"value\":key,\"disabled\":_vm.disabled}},[_vm._v(_vm._s(key === \"13m\" ? _vm.$t(\"dateRangeButtonToggle.allButtonText\") : key))]):_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"depressed\":\"\",\"outlined\":\"\",\"value\":\"custom\",\"disabled\":_vm.disabled}},on),[_vm._v(\" \"+_vm._s(_vm.$t(\"dateRangeButtonToggle.customButtonText\"))+\" \")])]}}],null,true),model:{value:(_vm.isCustomDateMenuOpen),callback:function ($$v) {_vm.isCustomDateMenuOpen=$$v},expression:\"isCustomDateMenuOpen\"}},[_c('v-date-picker',{attrs:{\"range\":\"\"},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}}),_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"secondary\",\"tile\":\"\"},on:{\"click\":function($event){return _vm.handleUpdateDateRange(_vm.dates)}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"dateRangeButtonToggle.updateButtonText\"))+\" \")])],1)],1)}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport moment from \"@/lib/moment\";\r\nimport DateKey from \"@/lib/DateKey\";\r\nexport const DEFAULT_RANGE_TYPES = [\"30d\", \"60d\", \"6m\", \"custom\"];\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\n\r\nexport interface IDateRangeViewModel {\r\n dateRangeKey: string;\r\n fromDate: Date | undefined | null;\r\n toDate: Date | undefined | null;\r\n}\r\n\r\nexport default {\r\n props: {\r\n value: Object,\r\n items: {\r\n type: Array,\r\n default: () => DEFAULT_RANGE_TYPES,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n dates: [],\r\n isCustomDateMenuOpen: false,\r\n };\r\n },\r\n methods: {\r\n handleUpdateDateType(dateRangeKey: string) {\r\n const key = new DateKey(dateRangeKey);\r\n if (!key.isValid || key.isCustom) return;\r\n const viewModel: IDateRangeViewModel = {\r\n dateRangeKey,\r\n fromDate: null,\r\n toDate: null,\r\n };\r\n this.$emit(\"input\", viewModel);\r\n },\r\n handleUpdateDateRange(range) {\r\n if (!range || range.length !== 2) {\r\n toastError(this.$t(\"dateRangeButtonToggle.formInvalidText\"));\r\n return;\r\n }\r\n const viewModel: IDateRangeViewModel = {\r\n dateRangeKey: \"custom\",\r\n fromDate: moment.utc(range[0]).toDate(),\r\n toDate: range[1] ? moment.utc(range[1]).toDate() : undefined,\r\n };\r\n this.$emit(\"input\", viewModel);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeButtonToggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeButtonToggle.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DateRangeButtonToggle.vue?vue&type=template&id=34dcc2c4&\"\nimport script from \"./DateRangeButtonToggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./DateRangeButtonToggle.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DateRangeButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn-toggle',{staticClass:\"ml-2\",attrs:{\"value\":_vm.value,\"mandatory\":\"\",\"rounded\":\"\",\"depressed\":\"\",\"multiple\":_vm.multiple},on:{\"change\":_vm.handleSegregationChange}},[_vm._l((_vm.showTypes),function(key,i){return _c('v-btn',{key:i,attrs:{\"small\":\"\",\"depressed\":\"\",\"outlined\":\"\",\"value\":key,\"disabled\":_vm.disabled}},[_vm._v(\" \"+_vm._s(_vm.$t(`segregationButtonToggle.${key}.title`))+\" \")])}),(!_vm.hideOthers)?_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\",\"close-on-content-click\":false},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"small\":\"\",\"depressed\":\"\",\"outlined\":\"\",\"value\":\"other\",\"disabled\":_vm.disabled}},on),[_vm._v(\" Other \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"expand_more\")])],1)]}}],null,false,527047154),model:{value:(_vm.isOtherMenuOpen),callback:function ($$v) {_vm.isOtherMenuOpen=$$v},expression:\"isOtherMenuOpen\"}},[_c('v-list',_vm._l((_vm.otherTypes),function(type,i){return _c('v-list-item',{key:`1_${i}`,on:{\"click\":function($event){return _vm.handleSegregationChange(type)}}},[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t(`segregationButtonToggle.${type}.title`))+\" \")])],1)],1)}),1)],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { PluralEntityType } from '@/models';\r\nexport const DEFAULT_SEGREGATION_TYPES = [\r\n PluralEntityType.products,\r\n PluralEntityType.services,\r\n PluralEntityType.subscriptions,\r\n PluralEntityType.meters,\r\n PluralEntityType.cloudAccounts,\r\n PluralEntityType.regions,\r\n];\r\nexport default {\r\n props: {\r\n value: String,\r\n items: {\r\n type: Array,\r\n default: () => DEFAULT_SEGREGATION_TYPES,\r\n },\r\n hideOthers: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n disabled: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n multiple: {\r\n type: Boolean,\r\n default: false\r\n }\r\n },\r\n data() {\r\n return {\r\n isOtherMenuOpen: false,\r\n };\r\n },\r\n computed: {\r\n showTypes() {\r\n if (this.$vuetify.breakpoint.smAndDown) {\r\n return [this.value || this.items[0]];\r\n }\r\n\r\n let items = this.items;\r\n if (!this.items.includes(this.value)) {\r\n items = items.concat(this.value);\r\n }\r\n return items;\r\n },\r\n otherTypes() {\r\n return DEFAULT_SEGREGATION_TYPES.filter((t) => !this.items.includes(t) && t !== this.value);\r\n },\r\n },\r\n methods: {\r\n handleSegregationChange(segregation: PluralEntityType | 'other' | (PluralEntityType | 'other')[]) {\r\n if (segregation === 'other') return;\r\n this.$emit('input', segregation);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SegregationButtonToggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SegregationButtonToggle.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SegregationButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SegregationButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SegregationButtonToggle.vue?vue&type=template&id=4b3c2f47&\"\nimport script from \"./SegregationButtonToggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./SegregationButtonToggle.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SegregationButtonToggle.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport moment from '@/lib/moment';\r\nimport DateKey, { granularityForDateRange } from '@/lib/DateKey';\r\nimport { ISpendParameters, Granularity, CloudProviderType, EntityType, PluralEntityType } from '@/models';\r\nimport { DEFAULT_RANGE_TYPES, IDateRangeViewModel } from '@/components/Domain.Usage/DateRangeButtonToggle.vue';\r\nimport { DEFAULT_SEGREGATION_TYPES } from '@/components/Domain.Usage/SegregationButtonToggle.vue';\r\nimport { defineComponent } from 'vue';\r\nimport { ISearchEntityViewModel } from '@/components/Common/EntitySearchAutocomplete.vue';\r\nimport { useFilterStore, useTenantStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport dayjs from 'dayjs';\r\n\r\nexport enum CostView {\r\n Actual = 'Actual',\r\n Utilized = 'Utilized',\r\n Amortized = 'Amortized',\r\n}\r\n\r\nexport class SpendUsageOptions {\r\n public segregateBy?: PluralEntityType | PluralEntityType[];\r\n public dateRangeKey: string;\r\n public fromDate?: Date;\r\n public toDate?: Date;\r\n public granularity?: string;\r\n public topXResults?: number;\r\n public cloudAccountId?: string;\r\n public subscriptionIds?: string[];\r\n public serviceId?: string;\r\n public productId?: string;\r\n public productName?: string;\r\n public providerType?: string;\r\n public regionName?: string;\r\n public geographyName?: string;\r\n public tagKeyValue?: string;\r\n public tagKeyValues?: string[];\r\n public productCategory?: string;\r\n public costView?: string;\r\n public reservationId?: string;\r\n public savedViewId?: string;\r\n public entities?: ISearchEntityViewModel[];\r\n public forecastRangeKey?: string;\r\n}\r\n\r\nexport function dateRangeForKey(options: SpendUsageOptions): [] | [Date] | [Date, Date] {\r\n const dateRangeKey = new DateKey(options.dateRangeKey);\r\n if (!dateRangeKey.isValid) return [];\r\n return dateRangeKey.getEffectiveDateRange(options.fromDate, options.toDate);\r\n}\r\n\r\nexport function convertSpendOptionsToQuery(options: SpendUsageOptions): ISpendParameters {\r\n const range = dateRangeForKey(options);\r\n if (range.length !== 2) return null;\r\n const granularity = (options.granularity || granularityForDateRange(range)) as\r\n | Granularity.daily\r\n | Granularity.monthly;\r\n const params: Partial = {\r\n fromDate: range[0].toISOString(),\r\n toDate: range[1].toISOString(),\r\n topXResults: options.topXResults || 10,\r\n granularity,\r\n };\r\n if (options.subscriptionIds && options.subscriptionIds.length > 0)\r\n params.subscriptionIds = options.subscriptionIds.join();\r\n if (options.cloudAccountId) params.cloudAccountIds = options.cloudAccountId;\r\n if (options.serviceId) params.serviceIds = options.serviceId;\r\n if (options.productId) params.productIds = options.productId;\r\n if (options.providerType) params.providerType = options.providerType as CloudProviderType;\r\n if (options.regionName) params.regionNames = options.regionName;\r\n if (options.geographyName) params.geographyNames = options.geographyName;\r\n if (options.tagKeyValue) params.tagKeyValue = options.tagKeyValue;\r\n if (options.tagKeyValues && options.tagKeyValues.length > 0) params.tagKeyValues = options.tagKeyValues.join(';');\r\n if (options.productCategory) params.productCategories = options.productCategory;\r\n if (options.costView) params.costView = options.costView;\r\n if (options.reservationId) params.reservationId = options.reservationId;\r\n if (options.savedViewId) params.savedViewId = options.savedViewId;\r\n return params as ISpendParameters;\r\n}\r\n\r\nexport function calculateOptionsDescription(value: SpendUsageOptions, $t: (key: string, config?: any) => string) {\r\n if (!value?.segregateBy) return 'Usage Chart';\r\n const key = new DateKey(value.dateRangeKey);\r\n const segregateByTitle = Array.isArray(value.segregateBy)\r\n ? 'Multiple'\r\n : value.segregateBy.startsWith('tags/')\r\n ? value.segregateBy.split('/')[1]\r\n : $t(`spendUsageChartCard.${value.segregateBy.toLowerCase()}.title`);\r\n if (key.isCustom) {\r\n return $t('spendUsageChartCard.customDateTextFormat', {\r\n segregateBy: segregateByTitle,\r\n fromDate: moment.utc(value.fromDate).format(\"DD MMM 'YY\"),\r\n toDate: moment.utc(value.toDate || new Date()).format(\"DD MMM 'YY\"),\r\n });\r\n } else if (key.granularity === Granularity.daily) {\r\n return $t('spendUsageChartCard.fixedDateTextFormat', {\r\n granularity: key.granularity,\r\n segregateBy: segregateByTitle,\r\n total: key.total,\r\n granularityName: 'days',\r\n });\r\n } else if (key.granularity === Granularity.monthly) {\r\n return $t('spendUsageChartCard.fixedDateTextFormat', {\r\n granularity: key.granularity,\r\n segregateBy: segregateByTitle,\r\n total: key.total,\r\n granularityName: 'months',\r\n });\r\n } else {\r\n throw new Error('Unsupported date range key');\r\n }\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n value: Object,\r\n hideSearch: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n searchSupportedTypes: {\r\n type: Array,\r\n default: () => [\r\n EntityType.subscription,\r\n EntityType.cloudAccount,\r\n EntityType.service,\r\n EntityType.tag,\r\n EntityType.region,\r\n EntityType.geography,\r\n EntityType.cloudProvider,\r\n EntityType.customView,\r\n ],\r\n },\r\n dateSupportedKeys: {\r\n type: Array,\r\n default: () => DEFAULT_RANGE_TYPES,\r\n },\r\n segregationSupportedKeys: {\r\n type: Array,\r\n default: () => DEFAULT_SEGREGATION_TYPES,\r\n },\r\n hideSegregation: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n hideSegregationOthers: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n dateRangeDescription() {\r\n if (this.value.dateRangeKey === '13m') return 'All data';\r\n if (this.value.dateRangeKey === 'custom') {\r\n const fromDate = dayjs(this.value.fromDate);\r\n const toDate = dayjs(this.value.toDate);\r\n\r\n if (fromDate.year() === toDate.year() && fromDate.month() === toDate.month()) {\r\n // Same month & year: \"Feb 5-10, 2025\"\r\n return `${fromDate.format('MMM')} ${fromDate.date()}-${toDate.date()}, ${fromDate.year()}`;\r\n } else if (fromDate.year() === toDate.year()) {\r\n // Same year but different month: \"Feb 5 - Mar 10, 2025\"\r\n return `${fromDate.format('MMM D')} - ${toDate.format('MMM D, YYYY')}`;\r\n }\r\n\r\n // Different years: \"Dec 30, 2024 - Jan 5, 2025\"\r\n return `${fromDate.format('MMM D, YYYY')} - ${toDate.format('MMM D, YYYY')}`;\r\n }\r\n return this.value.dateRangeKey;\r\n },\r\n },\r\n data() {\r\n return {\r\n isCustomDateMenuOpen: false,\r\n isGeneralOptionsMenuOpen: false,\r\n isPickingDateRange: false,\r\n isPickingForecastRange: false,\r\n selectedSearchEntity: null,\r\n dates: [],\r\n };\r\n },\r\n async mounted() {\r\n const filterStore = useFilterStore();\r\n this.selectedSearchEntity = await filterStore.fetchSelectedSearchEntity();\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n const store = useFilterStore();\r\n store.fetchSelectedSearchEntity().then((r) => (this.selectedSearchEntity = r));\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n handleUpdatedCostView($event: 'Utilized' | 'Actual' | undefined) {\r\n this.$emit('input', { ...this.value, costView: $event });\r\n },\r\n handleUpdateDateRange($event: IDateRangeViewModel) {\r\n const key = new DateKey($event.dateRangeKey);\r\n const dateRange = key.getEffectiveDateRange($event.fromDate, $event.toDate);\r\n const granularity = granularityForDateRange(dateRange);\r\n let forecastRangeKey = $event.dateRangeKey === 'custom' ? undefined : this.value.forecastRangeKey || '7d';\r\n if (granularity === 'Daily' && !this.value.forecastRangeKey?.endsWith('d')) {\r\n forecastRangeKey = '7d';\r\n } else if (granularity === 'Monthly' && !this.value.forecastRangeKey?.endsWith('m')) {\r\n forecastRangeKey = '3m';\r\n }\r\n this.$emit('input', { ...this.value, ...$event, granularity, forecastRangeKey });\r\n this.isPickingDateRange = false;\r\n },\r\n handleForecastDateRange($event: string) {\r\n this.$emit('input', { ...this.value, forecastRangeKey: $event });\r\n },\r\n handleUpdateFilterEntity(entities: ISearchEntityViewModel[]) {\r\n const newValue: SpendUsageOptions = {\r\n ...this.value,\r\n subscriptionIds: [],\r\n cloudAccountId: null,\r\n serviceId: null,\r\n tagKeyValue: null,\r\n tagKeyValues: [],\r\n regionName: null,\r\n providerType: null,\r\n geographyName: null,\r\n savedViewId: null,\r\n };\r\n\r\n const entityLength = entities.length;\r\n const subscriptionIdEntities = [];\r\n\r\n for (let i = 0; i < entityLength; i++) {\r\n const entity = entities[i];\r\n const latestEntity = entities[entityLength - 1];\r\n\r\n if (entity.Type === EntityType.tag) {\r\n newValue.tagKeyValues.push(entity.Id);\r\n continue;\r\n }\r\n\r\n if (latestEntity.Type !== EntityType.subscription) {\r\n if (latestEntity.Type === EntityType.cloudAccount) {\r\n newValue.cloudAccountId = latestEntity.Id;\r\n } else if (latestEntity.Type === EntityType.service) {\r\n newValue.serviceId = latestEntity.Id;\r\n } else if (latestEntity.Type === EntityType.region) {\r\n newValue.regionName = latestEntity.Name;\r\n newValue.providerType = latestEntity.Provider;\r\n } else if (latestEntity.Type === EntityType.geography) {\r\n newValue.geographyName = latestEntity.Name;\r\n } else if (latestEntity.Type === EntityType.cloudProvider) {\r\n newValue.providerType = latestEntity.Name;\r\n } else if (latestEntity.Type === EntityType.product) {\r\n newValue.productId = latestEntity.Id;\r\n newValue.productName = latestEntity.Name;\r\n } else if (latestEntity.Type === EntityType.productCategory) {\r\n newValue.productCategory = latestEntity.Id;\r\n } else if (latestEntity.Type === EntityType.customView) {\r\n newValue.savedViewId = latestEntity.Id;\r\n }\r\n this.selectedSearchEntity = [latestEntity];\r\n break;\r\n } else {\r\n newValue.subscriptionIds.push(entity.Id);\r\n subscriptionIdEntities.push(entity);\r\n continue;\r\n }\r\n }\r\n if (subscriptionIdEntities.length > 0) {\r\n this.selectedSearchEntity = subscriptionIdEntities;\r\n }\r\n newValue.entities = this.selectedSearchEntity;\r\n this.$emit('input', newValue);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageOptionsToolbarForm.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageOptionsToolbarForm.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageOptionsToolbarForm.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageOptionsToolbarForm.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SpendUsageOptionsToolbarForm.vue?vue&type=template&id=711194a2&\"\nimport script from \"./SpendUsageOptionsToolbarForm.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsageOptionsToolbarForm.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SpendUsageOptionsToolbarForm.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","export enum UnitOfDisplay {\r\n consumption = 'Consumption',\r\n cost = 'Cost'\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('AgGridVue',{ref:\"agGrid\",class:`ag-theme-alpine${_vm.$vuetify.theme.dark ? '-dark' : ''} mt-2 ${!_vm.domLayout ? 'fill-height' : ''}`,attrs:{\"columnDefs\":_vm.headers,\"rowData\":_vm.records,\"modules\":_vm.modules,\"rowGroupPanelShow\":\"always\",\"pinnedTopRowData\":_vm.pinnedTopRowData,\"pinnedBottomRowData\":_vm.pinnedBottomRowData,\"domLayout\":_vm.domLayout},on:{\"grid-ready\":_vm.onGridReady}}),_c('v-dialog',{attrs:{\"max-width\":\"400\",\"scrollable\":\"\",\"persistent\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.showGptCreate),callback:function ($$v) {_vm.showGptCreate=$$v},expression:\"showGptCreate\"}},[_c('v-card',[_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.loadingGptCreate,\"indeterminate\":\"\"}}),_c('v-card-text',{staticClass:\"px-5 pt-3 pb-0\"},[(!_vm.loadingGptCreate)?_c('p',[_vm._v(\" If you choose to proceed, you will commence a Cloud Intelligence chat about this resource, powered by GPT. \")]):_c('p',[_vm._v(\"Starting chat...\")])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-5\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(_vm._s(_vm.loadingGptCreate ? 'Close' : 'Cancel'))]),(!_vm.loadingGptCreate)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){return _vm.go()}}},[_vm._v(\"Start Chat\")]):_vm._e()],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport \"ag-grid-enterprise\";\r\nimport { LicenseManager } from '@ag-grid-enterprise/core'\r\nimport Config from '@/lib/Config';\r\n\r\ntry {\r\n const cfg = Config.get();\r\n LicenseManager.setLicenseKey(cfg.AG_GRID_KEY);\r\n} catch (err) {\r\n console.error(err);\r\n}\r\n\r\nimport \"ag-grid-community/styles/ag-grid.css\";\r\nimport \"@/scss/ag-grid.scss\";\r\nexport { AgGridVue } from \"ag-grid-vue\";\r\nexport { RowGroupingModule } from \"@ag-grid-enterprise/row-grouping\";\r\nexport { ColDef } from \"@ag-grid-community/core\";","\r\nimport { IGptChatOverviewResult, ISpendUsageTableEntityViewModel, ISpendUsageTableItemViewModel } from '@/models';\r\nimport { PluralEntityType, fromPlural } from '@/models/EntityType';\r\nimport { AgGridVue, RowGroupingModule, ColDef } from '@/plugins/agGrid';\r\nimport { defineComponent } from 'vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport FeatureNames from '@/lib/FeatureNames';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\nimport { ISpendUsageTableSlotViewModel, SpendUsageTableConstants } from '@/models/ISpendUsageTable';\r\n\r\nconst SPAN_WITH_NO_VALUE = '-';\r\n\r\nconst capitalizeFirstLetter = (string) => {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n};\r\nconst slotHeader = (header: string, fieldName: string) => {\r\n return {\r\n headerName: header,\r\n field: fieldName,\r\n sortable: true,\r\n filter: true,\r\n editable: true,\r\n rowGroup: false,\r\n resizable: true,\r\n enableRowGroup: false,\r\n type: 'rightAligned',\r\n cellRenderer: (params) => {\r\n return `${params.value?.toFixed(3) ?? '-'}`;\r\n },\r\n };\r\n};\r\nexport default defineComponent({\r\n components: { AgGridVue },\r\n props: {\r\n items: Object,\r\n loading: Boolean,\r\n currencyCode: String,\r\n segregateBy: String,\r\n granularity: String,\r\n nameHeaderTitle: String,\r\n tagKey: String,\r\n cardTitleText: String,\r\n itemsPerPage: {\r\n type: Number,\r\n default: 10,\r\n },\r\n disableLinks: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n hideDefaultFooter: Boolean,\r\n hideExport: Boolean,\r\n hideIntelligence: Boolean,\r\n prefix: {\r\n type: String,\r\n default: '/explore',\r\n },\r\n unitOfDisplay: String,\r\n domLayout: {\r\n type: String,\r\n default: 'autoHeight',\r\n },\r\n },\r\n data() {\r\n return {\r\n sortBy: 'total',\r\n sortDesc: true,\r\n modules: [RowGroupingModule],\r\n showGptCreate: false,\r\n loadingGptCreate: false,\r\n entityId: '',\r\n entityType: '',\r\n gridApi: null,\r\n gridColumnApi: null,\r\n displayOptions: UnitOfDisplay,\r\n };\r\n },\r\n methods: {\r\n exportCsv() {\r\n if (this.gridApi) {\r\n this.gridApi.exportDataAsCsv();\r\n }\r\n },\r\n async go() {\r\n this.loadingGptCreate = true;\r\n const response = await ApiV2.http\r\n .post(`/api/gpt`, {\r\n entityId: this.entityId,\r\n entityType: this.entityType,\r\n } as IGptChatOverviewResult)\r\n .then((r) => r.data);\r\n\r\n if (this.showGptCreate) {\r\n if (!this.noNav) this.$router.push(`/cloud-intelligence/?chatId=${response.chatId}`);\r\n this.$emit('created', response);\r\n }\r\n },\r\n close() {\r\n this.loadingGptCreate = false;\r\n this.showGptCreate = false;\r\n },\r\n sizeToFit() {\r\n this.gridApi.sizeColumnsToFit();\r\n },\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n this.$nextTick(() => {\r\n if (this.gridColumnApi) {\r\n const allColumnIds = [];\r\n this.gridColumnApi.getAllColumns().forEach((column) => {\r\n allColumnIds.push(column.getColId());\r\n });\r\n this.gridColumnApi.autoSizeColumns(allColumnIds, false);\r\n }\r\n });\r\n this.sizeToFit();\r\n },\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n headers() {\r\n const currencyCode = this.currencyCode;\r\n const segregateByList = this.segregateBy.split(',');\r\n const showDataAsMonetaryCost = this.unitOfDisplay != UnitOfDisplay.consumption;\r\n\r\n const headers: ColDef[] = segregateByList.map((segregateBy: string) => ({\r\n headerName: capitalizeFirstLetter(segregateBy),\r\n field: `e_${segregateBy}`,\r\n sortable: true,\r\n filter: true,\r\n editable: true,\r\n rowGroup: false,\r\n enableRowGroup: true,\r\n pinned: 'left',\r\n resizable: true,\r\n valueFormatter: (val: any): any => val.value,\r\n cellRenderer: (params: any) => {\r\n if (!params.data) {\r\n return params.value;\r\n }\r\n const record: ISpendUsageTableItemViewModel = params.data;\r\n const entity: ISpendUsageTableEntityViewModel = record.entities.find((e) => e.type === segregateBy);\r\n if (!entity) return SPAN_WITH_NO_VALUE;\r\n if (record.isTotal) {\r\n return `Total`;\r\n }\r\n if (\r\n record.isOther ||\r\n (this.items && this.items.noFollow) ||\r\n this.disableLinks ||\r\n segregateBy === PluralEntityType.meters\r\n ) {\r\n return `${entity.name}`;\r\n }\r\n let route: string;\r\n let name: string;\r\n if (segregateBy === PluralEntityType.tags) {\r\n const key = encodeURIComponent(this.tagKey);\r\n let id = encodeURIComponent(entity.id);\r\n if (entity.id == this.tagKey && entity.id) {\r\n id = encodeURIComponent(`${entity.id}:(Blanks)`);\r\n }\r\n route = `${this.prefix}/tagkeys/${key}/tag/${id && key != id ? id : '(Blanks)'}`;\r\n name = entity.id ? entity.id : '';\r\n } else if (segregateBy.startsWith('tags/')) {\r\n const [key, val] = entity.id.split(':');\r\n route = `${this.prefix}/tagkeys/${key}/tag/${val ? val : '(Blanks)'}`;\r\n name = val ? val : '';\r\n } else {\r\n route = `${this.prefix}/${entity.type}/${entity.id}`;\r\n name = entity.name;\r\n }\r\n const link = document.createElement('a');\r\n link.href = this.$router.resolve(route).href;\r\n link.innerText = name;\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n this.$router.push(route);\r\n });\r\n return link;\r\n },\r\n }));\r\n\r\n // If the user has toggled consumption, add units to the pinned columns\r\n if (this.segregateBy === PluralEntityType.meters && !showDataAsMonetaryCost) {\r\n headers.push({\r\n headerName: 'Units',\r\n field: 'unit',\r\n pinned: 'left',\r\n resizable: true,\r\n enableRowGroup: true,\r\n cellRenderer: (params) => {\r\n return `${params.value?.toFixed(3) ?? '-'}`;\r\n },\r\n });\r\n }\r\n\r\n if (this.canShowIntelligence) {\r\n headers.push({\r\n headerName: 'Intelligence',\r\n field: 'intelligence',\r\n pinned: 'left',\r\n cellRenderer: (params) => {\r\n const record: ISpendUsageTableItemViewModel | null = params.data;\r\n if (!record || record.isTotal || record.isOther) return SPAN_WITH_NO_VALUE;\r\n\r\n const entity = record.entities[0];\r\n const link = document.createElement('a');\r\n const icon = document.createElement('i');\r\n icon.classList.add(...'v-icon notranslate flip-x material-icons'.split(' '));\r\n icon.innerText = 'psychology';\r\n link.appendChild(icon);\r\n\r\n link.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n this.entityId = entity.id;\r\n this.entityType = fromPlural(entity.type as PluralEntityType);\r\n this.showGptCreate = true;\r\n });\r\n return link;\r\n },\r\n });\r\n }\r\n\r\n headers.push({\r\n headerName: 'CostView',\r\n field: 'costView',\r\n sortable: true,\r\n sort: null,\r\n filter: true,\r\n editable: true,\r\n rowGroup: false,\r\n enableRowGroup: true,\r\n resizable: true,\r\n type: 'rightAligned',\r\n cellRenderer(params: any) {\r\n switch (params.value) {\r\n case 'Actual':\r\n return 'Actual';\r\n case 'Amortized':\r\n return 'Amortized';\r\n case 'Utilized':\r\n return 'Utilized';\r\n case null:\r\n return 'Usage';\r\n default:\r\n return params.value;\r\n }\r\n },\r\n });\r\n\r\n headers.push({\r\n headerName: `Total (${currencyCode})`,\r\n field: showDataAsMonetaryCost ? 'total' : 'totalConsumption',\r\n sortable: true,\r\n sort: 'desc',\r\n filter: true,\r\n editable: true,\r\n rowGroup: false,\r\n enableRowGroup: false,\r\n resizable: true,\r\n type: 'rightAligned',\r\n cellRenderer(params: any) {\r\n return `${params.value?.toFixed(3) ?? '-'}`;\r\n },\r\n });\r\n\r\n const monthSlots = this.items?.monthSlots || [];\r\n for (const slot of monthSlots) {\r\n const field = showDataAsMonetaryCost\r\n ? slot.itemValuePropName\r\n : `${slot.costValuePropName}${SpendUsageTableConstants.consumptionKeySuffix}`;\r\n headers.push(slotHeader(slot.header, field));\r\n }\r\n\r\n const dailySlots: ISpendUsageTableSlotViewModel[] = this.items?.dailySlots || [];\r\n for (const slot of dailySlots) {\r\n const field = showDataAsMonetaryCost ? slot.costValuePropName : slot.unitValuePropName;\r\n headers.push(slotHeader(slot.header, field));\r\n }\r\n return headers;\r\n },\r\n canShowIntelligence() {\r\n const segregateByList = this.segregateBy.split(',');\r\n return (\r\n segregateByList.length === 1 &&\r\n this.tenantStore.hasTenantFeature(FeatureNames.enableCloudIntelligence) &&\r\n (this.segregateBy === PluralEntityType.products || this.segregateBy === PluralEntityType.services) &&\r\n !this.hideIntelligence\r\n );\r\n },\r\n records(): ISpendUsageTableItemViewModel {\r\n return (this.items?.records || []).filter((r: ISpendUsageTableItemViewModel) => !r.isOther);\r\n },\r\n monthSlots() {\r\n return this.items?.monthSlots || [];\r\n },\r\n pinnedTopRowData() {\r\n return [];\r\n },\r\n pinnedBottomRowData() {\r\n const segregateByList = this.segregateBy?.split(',') || [];\r\n if (!segregateByList.length) return [];\r\n\r\n const spendUsageItems: ISpendUsageTableItemViewModel[] = this.items?.records || [];\r\n const summaryRow: ISpendUsageTableItemViewModel = {\r\n entities: [{ id: '', name: 'Total Spend', type: segregateByList[0] }],\r\n total: 0,\r\n isOther: false,\r\n isTotal: true,\r\n totalConsumption: 0,\r\n unit: '',\r\n timestamp: new Date().getTime(),\r\n };\r\n for (const usageItem of spendUsageItems) {\r\n summaryRow.total += usageItem.total;\r\n summaryRow.totalConsumption += usageItem.totalConsumption;\r\n for (const slot of this.monthSlots) {\r\n if (!summaryRow[slot.itemValuePropName]) {\r\n summaryRow[slot.itemValuePropName] = 0;\r\n }\r\n summaryRow[slot.itemValuePropName] += usageItem[slot.itemValuePropName] || 0;\r\n }\r\n }\r\n return [...spendUsageItems.filter((r) => r.isOther), summaryRow];\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SpendUsageTable.vue?vue&type=template&id=5dd612d0&\"\nimport script from \"./SpendUsageTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsageTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SpendUsageTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import moment from \"@/lib/moment\";\r\nimport {\r\n Granularity,\r\n ISpendAndConsumptionGroup,\r\n ISpendParameters,\r\n ISpendResult,\r\n ISpendUsageTableItemViewModel,\r\n ISpendUsageTableRecordsViewModel,\r\n ISpendUsageTableSlotViewModel,\r\n PluralEntityType,\r\n} from \"@/models\";\r\nimport { ISpendGroupEntityReference } from \"@/models/ISpendResult\";\r\nimport { SpendUsageTableConstants } from \"@/models/ISpendUsageTable\";\r\n\r\nexport class SpendUsageTableFunctions {\r\n static convertToItemRecords(\r\n params: ISpendParameters,\r\n segregateBy: PluralEntityType | PluralEntityType[],\r\n response: ISpendResult,\r\n costView = \"Actual\",\r\n ): ISpendUsageTableRecordsViewModel {\r\n const monthSlots = SpendUsageTableFunctions.slotsForMonthColumns(\r\n params,\r\n );\r\n const dailySlots = SpendUsageTableFunctions.slotsForDailyColumns(\r\n params,\r\n );\r\n const records = [];\r\n for (const spendResultGroup of response.groupings) {\r\n const entities: ISpendGroupEntityReference[] =\r\n spendResultGroup.entities && spendResultGroup.entities.length\r\n ? spendResultGroup.entities\r\n : [{\r\n name: spendResultGroup.name,\r\n id: spendResultGroup.id,\r\n type: Array.isArray(segregateBy) ? segregateBy.join(',') : segregateBy,\r\n }];\r\n const record: ISpendUsageTableItemViewModel | {\r\n [key: string]: number;\r\n } = {\r\n total: spendResultGroup.totalCharges || spendResultGroup.total,\r\n isOther: spendResultGroup.isOther,\r\n totalConsumption: spendResultGroup.totalConsumption || 0,\r\n unit: spendResultGroup.unit || \"\",\r\n entities,\r\n timestamp: moment.utc(spendResultGroup.minDate).toDate()\r\n .getTime(),\r\n costView,\r\n };\r\n for (const entity of entities) {\r\n record[`e_${entity.type}`] = entity.name;\r\n }\r\n for (const slot of monthSlots) {\r\n const monthlyTotalsForYear =\r\n spendResultGroup.monthlyCharges[slot.year];\r\n const monthlyConsumptionForYear =\r\n (spendResultGroup.monthlyConsumptionTotals || {})[\r\n slot.year\r\n ] || {};\r\n if (monthlyTotalsForYear) {\r\n record[slot.costValuePropName] =\r\n monthlyTotalsForYear[slot.month] || 0;\r\n record[\r\n slot.costValuePropName +\r\n SpendUsageTableConstants.consumptionKeySuffix\r\n ] = monthlyConsumptionForYear[slot.month] || null;\r\n } else {\r\n record[slot.costValuePropName] = 0;\r\n record[\r\n slot.costValuePropName +\r\n SpendUsageTableConstants.consumptionKeySuffix\r\n ] = null;\r\n }\r\n }\r\n if (dailySlots.length) {\r\n for (const usageRecord of spendResultGroup.usageRecords) {\r\n const urDate = moment.utc(usageRecord.usageDate).format(\r\n SpendUsageTableConstants.slotDateFormat,\r\n );\r\n record[`day${urDate}`] = usageRecord.charges;\r\n record[\r\n `day${urDate}${SpendUsageTableConstants.consumptionKeySuffix}`\r\n ] = usageRecord.unitsConsumed;\r\n }\r\n }\r\n records.push(record);\r\n }\r\n\r\n return { monthSlots, dailySlots, records };\r\n }\r\n\r\n static slotsForDailyColumns(\r\n params: ISpendParameters,\r\n ): ISpendUsageTableSlotViewModel[] {\r\n if (params.granularity !== Granularity.daily) return [];\r\n\r\n const fromDate = moment.utc(params.fromDate);\r\n const toDate = moment.utc(params.toDate);\r\n const dates = [];\r\n for (\r\n let tempDate = moment(fromDate);\r\n tempDate.isBefore(toDate);\r\n tempDate = tempDate.add(1, \"days\")\r\n ) {\r\n dates.push(tempDate);\r\n }\r\n dates.push(toDate);\r\n return dates.map((date) => {\r\n const slotKey = date.format(\r\n SpendUsageTableConstants.slotDateFormat,\r\n );\r\n const year = date.format(\"YYYY\");\r\n const month = date.format(\"MM\");\r\n const day = date.format(\"DD\");\r\n return {\r\n header: date.format(\"DD/MM/YYYY\"),\r\n // Keys for navigating the API response:\r\n year,\r\n month,\r\n day,\r\n // Vue data table slots:\r\n itemSlotName: `item.day${slotKey}`,\r\n costValuePropName: `day${slotKey}`,\r\n unitValuePropName:\r\n `day${slotKey}${SpendUsageTableConstants.consumptionKeySuffix}`,\r\n };\r\n });\r\n }\r\n\r\n static slotsForMonthColumns(\r\n params: ISpendParameters,\r\n ): ISpendUsageTableSlotViewModel[] {\r\n if (params.granularity !== Granularity.monthly) return [];\r\n const fromDate = moment.utc(params.fromDate);\r\n const toDate = moment.utc(params.toDate);\r\n const fromMonth = moment.utc(params.fromDate).startOf(\"month\");\r\n const toMonth = moment.utc(params.toDate).startOf(\"month\");\r\n\r\n const slots = [];\r\n let date = fromMonth;\r\n for (let i = 0; !date.isAfter(toMonth); ++i) {\r\n const monthYear = date.format(\"MMM YYYY\");\r\n const endOfMonth = date.endOf(\"month\");\r\n\r\n let partialFromDayOfMonth: string;\r\n if (fromDate.isAfter(date, \"day\")) {\r\n // The filter from date is after the start of this month.\r\n partialFromDayOfMonth = fromDate.format(\"D\");\r\n }\r\n\r\n let partialToDayOfMonth;\r\n if (toDate.isBefore(endOfMonth, \"day\")) {\r\n // The filter to date is before the end of this month.\r\n partialToDayOfMonth = toDate.format(\"D\");\r\n }\r\n\r\n let header: string;\r\n if (partialFromDayOfMonth && partialToDayOfMonth) {\r\n // This month is partial on both sides.\r\n header =\r\n `${partialFromDayOfMonth}-${partialToDayOfMonth} ${monthYear}`;\r\n } else if (partialFromDayOfMonth) {\r\n // This month is partial, starting somewhere in the middle.\r\n header = `${partialFromDayOfMonth}-${\r\n endOfMonth.format(\"D\")\r\n } ${monthYear}`;\r\n } else if (partialToDayOfMonth) {\r\n // This month is partial, ending somewhere in the middle.\r\n header = `${\r\n date.format(\"D\")\r\n }-${partialToDayOfMonth} ${monthYear}`;\r\n } else {\r\n // This is a full month's worth of charges.\r\n header = monthYear;\r\n }\r\n\r\n const slot = {\r\n header,\r\n // Keys for navigating the API response:\r\n year: date.format(\"YYYY\"),\r\n month: date.format(\"MM\"),\r\n // Vue data table slots:\r\n itemSlotName: `item.month${i}`,\r\n itemValuePropName: `month${i}`,\r\n costValuePropName: `month${i}`,\r\n };\r\n slots.push(slot);\r\n date = date.add(1, \"M\");\r\n }\r\n return slots;\r\n }\r\n}\r\n","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"dashboard.title\": \"Cost and Usage\",\r\n \"dashboard.accountOverview\": \"Account Overview\",\r\n \"dashboard.titles.projected\": \"Projected {thisMonthName}\",\r\n \"dashboard.titles.totalLastMonth\": \"Total {lastMonthName}\",\r\n \"dashboard.titles.potentialSavings\": \"Potential Monthly Savings\",\r\n \"dashboard.yearInReview\": \"Year in review\",\r\n \"dashboard.monthAverage\": \"{total} {currency} / Month Average\",\r\n \"dashboard.titles.creditsLastMonth\": \"Excludes {credits} of credits and discounts\",\r\n \"dashboard.usageByHeirarchy.title\": \"Usage by hierarchy\",\r\n \"dashboard.usageByHeirarchy.caption\": \"Aggregate spend across the tenant hierarchy over the last 3 months\",\r\n \"dashboard.lessThan\": \"{percentage}% less than {month}\",\r\n \"dashboard.moreThan\": \"{percentage}% more than {month}\",\r\n \"dashboard.recommendationStatus.loading\": \"Loading...\",\r\n \"dashboard.recommendationStatus.unknown\": \"Unknown status\",\r\n \"dashboard.recommendationStatus.unavailable\": \"Unavailable\",\r\n \"dashboard.recommendationStatus.allGood\": \"All good\",\r\n \"dashboard.recommendationStatus.partiallyGood\": \"New credentials required\",\r\n \"dashboard.recommendationStatus.actionRequired\": \"Connection broken\",\r\n \"dashboard.usageByHierarchy.manageHierarchy\": \"Manage hierarchy\",\r\n \"dialog.manageTenants.edit.title\": \"Update Tenant\",\r\n \"dialog.manageTenants.edit.subtitle\": \"Update the details of this tenant.\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FinanceDashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FinanceDashboard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FinanceDashboard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FinanceDashboard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./FinanceDashboard.vue?vue&type=template&id=31deee14&\"\nimport script from \"./FinanceDashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./FinanceDashboard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FinanceDashboard.vue?vue&type=style&index=0&id=31deee14&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FinanceDashboard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('trendsDashboard.title'),\"icon\":\"analytics\",\"extended\":\"\",\"extension-height\":20}},[_c('div',{staticClass:\"ml-16 body-2\",attrs:{\"absolute\":\"\"}},[_vm._v(_vm._s(_vm.$t('trendsDashboard.title.asterix'))+\" \"+_vm._s(_vm.lastUsage))])]),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":_vm.$t('trendsDashboard.titles.sevenDayTrend'),\"subtitle\":_vm._f(\"currency\")(_vm.sevenDayTrend.deltaSpend,_vm.tenantStore.currencyCode)}},[(_vm.sevenDayTrend.activePeriodSpend)?_c('comparison-icon',{attrs:{\"value\":_vm.sevenDayTrend.activePeriodSpend,\"compare\":_vm.sevenDayTrend.priorPeriodSpend,\"right\":\"\"}}):_vm._e(),(_vm.sevenDayTrend.activePeriodSpend)?_c('span',[_vm._v(_vm._s((_vm.sevenDayTrend.deltaPercentage * 100).toFixed(1))+\"% *\")]):_c('span',[_vm._v(\" - \")]),_c('v-progress-linear',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"0\"},attrs:{\"active\":_vm.$wait.is('refreshSummaries'),\"indeterminate\":\"\"}})],1),_c('title-sheet',{attrs:{\"title\":_vm.$t('trendsDashboard.titles.thirtyDayTrend'),\"subtitle\":_vm._f(\"currency\")(_vm.thirtyDayTrend.deltaSpend,_vm.tenantStore.currencyCode)}},[(_vm.thirtyDayTrend.activePeriodSpend)?_c('comparison-icon',{attrs:{\"value\":_vm.thirtyDayTrend.activePeriodSpend,\"compare\":_vm.thirtyDayTrend.priorPeriodSpend,\"right\":\"\"}}):_vm._e(),(_vm.sevenDayTrend.activePeriodSpend)?_c('span',[_vm._v(_vm._s((_vm.thirtyDayTrend.deltaPercentage * 100).toFixed(1))+\"% *\")]):_c('span',[_vm._v(\" - \")]),_c('v-progress-linear',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"0\"},attrs:{\"active\":_vm.$wait.is('refreshSummaries'),\"indeterminate\":\"\"}})],1),_c('title-sheet',{attrs:{\"title\":_vm.$t('trendsDashboard.titles.sixtyDayTrend'),\"subtitle\":_vm._f(\"currency\")(_vm.sixtyDayTrend.deltaSpend,_vm.tenantStore.currencyCode)}},[(_vm.sixtyDayTrend.activePeriodSpend)?_c('comparison-icon',{attrs:{\"value\":_vm.sixtyDayTrend.activePeriodSpend,\"compare\":_vm.sixtyDayTrend.priorPeriodSpend,\"right\":\"\"}}):_vm._e(),(_vm.sevenDayTrend.activePeriodSpend)?_c('span',[_vm._v(_vm._s((_vm.sixtyDayTrend.deltaPercentage * 100).toFixed(1))+\"% *\")]):_c('span',[_vm._v(\" - \")]),_c('v-progress-linear',{staticStyle:{\"position\":\"absolute\",\"bottom\":\"0\"},attrs:{\"active\":_vm.$wait.is('refreshSummaries'),\"indeterminate\":\"\"}})],1)],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":_vm.$t('trendsDashboard.trends.title'),\"title-icon\":\"compare_arrows\",\"caption\":_vm.$t('trendsDashboard.trends.caption')}},[_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.$wait.is('loadProductComparisons'),\"indeterminate\":\"\"}}),_c('usage-comparison-options-toolbar',{staticClass:\"mt-3\",attrs:{\"loading\":_vm.$wait.is('loadProductComparisons'),\"currentPeriodMax\":_vm.currentPeriodMax},on:{\"input\":function($event){return _vm.loadProductComparisons()}},model:{value:(_vm.compareConfiguration),callback:function ($$v) {_vm.compareConfiguration=$$v},expression:\"compareConfiguration\"}}),_c('TrendBarChart',{attrs:{\"data\":_vm.trendDatasets},on:{\"click\":_vm.handleChartClick}}),(_vm.compareConfiguration.segregateBy === 'services')?_c('service-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.compareConfiguration.segregateBy === 'products')?_c('product-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.compareConfiguration.segregateBy === 'subscriptions')?_c('SubscriptionComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.compareConfiguration.segregateBy === 'cloudaccounts')?_c('CloudAccountComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):_vm._e()],1)],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('usage-comparisons-table',{attrs:{\"items\":_vm.items,\"loading\":_vm.loading,\"currency\":_vm.currency,\"type\":_vm.type},scopedSlots:_vm._u([{key:\"itemName\",fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/services/${item.serviceId}`}},[_vm._v(\" \"+_vm._s(item.serviceName)+\" \")])]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{staticClass:\"my-2\"},[(!_vm.hideExport)?_c('template',{slot:\"title-actions\"},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.exportCsv()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_download\")]),_vm._v(\" \"+_vm._s(_vm.$t('usageComparisonsTable.exportBtnText'))+\" \")],1)],1):_vm._e(),_c('v-data-table',{attrs:{\"items\":_vm.items,\"headers\":_vm.headers,\"footer-props\":{\n itemsPerPageOptions: [10, 25, 50, -1],\n }},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(!_vm.items)?_c('div',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"query_builder\")]),_vm._v(\"Waiting for query\")],1):_c('div',[_c('v-icon',{attrs:{\"color\":\"warning\",\"left\":\"\"}},[_vm._v(\"warning\")]),_c('span',{staticClass:\"warning--text\"},[_vm._v(\"There is no data for this tag\")])],1)]},proxy:true},{key:`item.name`,fn:function({ item }){return [_vm._t(\"itemName\",null,{\"item\":item})]}},{key:`item.deltaSpend`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.deltaSpend,_vm.currency))+\" \"),_c('comparison-icon',{attrs:{\"value\":item.activePeriodSpend,\"compare\":item.priorPeriodSpend,\"right\":\"\"}}),_vm._v(\" \"+_vm._s((item.deltaPercentage * 100).toFixed(2))+\"%\")]}},{key:`item.priorPeriodSpend`,fn:function({ item }){return [_vm._v(_vm._s(_vm._f(\"currency\")(item.priorPeriodSpend,_vm.currency)))]}},{key:`item.activePeriodSpend`,fn:function({ item }){return [_vm._v(_vm._s(_vm._f(\"currency\")(item.activePeriodSpend,_vm.currency)))]}}],null,true)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class Downloader {\r\n public exportCSV(rows: string[][], name: string) {\r\n let csvContent = 'data:text/csv;charset=utf-8,';\r\n\r\n rows.forEach((rowArray) => {\r\n const row = rowArray.join(',');\r\n csvContent += row + '\\r\\n';\r\n });\r\n\r\n const encodedUri = encodeURI(csvContent);\r\n const link = document.createElement('a');\r\n link.setAttribute('href', encodedUri);\r\n link.setAttribute('download', name);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n public exportJSON(object: any, name: string) {\r\n const json = JSON.stringify(object);\r\n const blob1 = new Blob([json], { type: \"text/plain;charset=utf-8\" });\r\n const url = URL.createObjectURL(blob1);\r\n const link = document.createElement('a');\r\n link.setAttribute('href', url);\r\n link.setAttribute('download', name);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n}\r\nexport default new Downloader();\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationHeaderCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationHeaderCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RecommendationHeaderCard.vue?vue&type=template&id=c1384294&\"\nimport script from \"./RecommendationHeaderCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RecommendationHeaderCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"alert-info\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" Recommendations are currently available for some limited account types. \"),_c('a',{attrs:{\"target\":\"_blank\",\"href\":`${_vm.docsUrl}/Using/Tracking/#recommendations`}},[_vm._v(\"Learn more\")])])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationCurrentlyAvailableCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationCurrentlyAvailableCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RecommendationCurrentlyAvailableCard.vue?vue&type=template&id=df11d05a&\"\nimport script from \"./RecommendationCurrentlyAvailableCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RecommendationCurrentlyAvailableCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-card',{staticClass:\"alert-info\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_c('v-icon',{staticClass:\"orange--text text--lighten-2\"},[_vm._v(\"report_problem\")]),_vm._v(\"Some cloud connections require further action in order to optimise recommendations. \"),_c('router-link',{attrs:{\"to\":\"/settings/general\"}},[_vm._v(\" Review your connections \")])],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./RecommendationCredentialsRequiredCard.vue?vue&type=template&id=e5ccf5b0&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-recommendation-settings-card',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"default\",fn:function(actionBindings){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_vm._t(\"default\",null,{\"close\":close},actionBindings)]}}],null,true)})]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title || _vm.$t('setRecommendationSettingsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"default\",null,{\"form\":{ recommendationEnabled: _vm.isEnabled, settings: [..._vm.definitions] },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-checkbox',{attrs:{\"label\":_vm.$t('setRecommendationSettingsCard.enabled')},model:{value:(_vm.isEnabled),callback:function ($$v) {_vm.isEnabled=$$v},expression:\"isEnabled\"}}),_vm._l((_vm.definitions),function(definition,i){return _c('v-text-field',{key:i,attrs:{\"label\":definition.label,\"type\":definition.type === 'decimal' ? 'number' : 'text',\"required\":\"\"},model:{value:(definition.value),callback:function ($$v) {_vm.$set(definition, \"value\", $$v)},expression:\"definition.value\"}})})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setRecommendationSettingsCard.title\": \"Configure Recommendation Settings\",\r\n \"setRecommendationSettingsCard.enabled\": \"Enabled\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRecommendationSettingsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRecommendationSettingsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRecommendationSettingsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRecommendationSettingsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetRecommendationSettingsCard.vue?vue&type=template&id=633609f3&\"\nimport script from \"./SetRecommendationSettingsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetRecommendationSettingsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetRecommendationSettingsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditRecommendationSettingDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditRecommendationSettingDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditRecommendationSettingDialog.vue?vue&type=template&id=6ec0cda9&\"\nimport script from \"./EditRecommendationSettingDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditRecommendationSettingDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":`/api/recommendations/${_vm.recommendationId}/settings`,\"value\":(_vm.value || {}),\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putRecommendationSettingsButton.errorMessage\": \"There was an error encountered while updating this recommendation. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutRecommendationSettingsButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutRecommendationSettingsButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutRecommendationSettingsButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutRecommendationSettingsButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutRecommendationSettingsButton.vue?vue&type=template&id=5cdab175&\"\nimport script from \"./PutRecommendationSettingsButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PutRecommendationSettingsButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutRecommendationSettingsButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-alert',{attrs:{\"border\":\"top\",\"color\":\"primary\",\"colored-border\":\"\"}},[_c('div',{staticClass:\"text-h6\"},[_vm._v(\"* Additional Recommendations\")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.$t('recommendationsnotavailable.higherplan'))+\" \"),(_vm.isWhiteLabelled === true)?_c('span',[_vm._v(_vm._s(_vm.$t('support')))]):_c('a',{attrs:{\"target\":\"_blank\",\"href\":\"mailto:sales@cloudctrl.com.au\"}},[_vm._v(_vm._s(_vm.$t(_vm.recommendationsnotavailable.salesteam))+\"}}\")]),_vm._v(\" for more details. \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"recommendationsnotavailable.higherplan\": \"Some recommendations are not available on your current subscription, contact\",\r\n \"recommendationsnotavailable.salesteam\": \"sales team\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationNotAvailableCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationNotAvailableCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationNotAvailableCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationNotAvailableCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RecommendationNotAvailableCard.vue?vue&type=template&id=0ef384aa&\"\nimport script from \"./RecommendationNotAvailableCard.vue?vue&type=script&lang=js&\"\nexport * from \"./RecommendationNotAvailableCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RecommendationNotAvailableCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\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.isInFilter)\"\r\n :recommendation=\"recommendation\"\r\n :currencyCode=\"tenantStore.currencyCode\"\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 \"en\": {\r\n \"recommendationStatus.higherplan\": \"Some recommendations are not available on your current subscription\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Recommendations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Recommendations.vue?vue&type=script&lang=js&\"","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Recommendations.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Recommendations.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Recommendations.vue?vue&type=template&id=3d9a1d46&scoped=true&\"\nimport script from \"./Recommendations.vue?vue&type=script&lang=js&\"\nexport * from \"./Recommendations.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Recommendations.vue?vue&type=style&index=0&id=3d9a1d46&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d9a1d46\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Recommendations.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('dashboard.title'),\"icon\":\"cc-icon-kubernetes\"}}),_c('v-container',{staticClass:\"pt-0\"},[_c('content-card',{staticClass:\"mt-3 sticky-top\",attrs:{\"title\":_vm.$t('dashboard.filter.title'),\"title-icon\":\"date_range\",\"caption\":_vm.$t('dashboard.filter.caption', _vm.effectiveDates)},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('date-range-button-toggle',{attrs:{\"value\":_vm.dateRange},on:{\"input\":_vm.handleUpdateDateRange}})]},proxy:true}])}),(_vm.$wait.is('loadingClusterSpend'))?_c('v-skeleton-loader',{staticClass:\"mx-auto\",attrs:{\"type\":\"card-avatar, article, actions\"}}):_c('v-expansion-panels',{staticClass:\"mt-3\",attrs:{\"multiple\":\"\"},model:{value:(_vm.panelState),callback:function ($$v) {_vm.panelState=$$v},expression:\"panelState\"}},[(!_vm.clusters.length)?_c('empty-state',{attrs:{\"icon\":\"warning\",\"message\":_vm.$t('dashboard.clusters.nodata')}}):_vm._e(),_vm._l((_vm.clusters),function(cluster){return _c('v-expansion-panel',{key:cluster.cluster},[_c('v-expansion-panel-header',{attrs:{\"hide-actions\":\"\"}},[_c('v-flex',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',{attrs:{\"primary-title\":\"\"}},[_c('h3',{staticClass:\"title flex-grow-1\"},[_vm._v(_vm._s(cluster.cluster))]),_c('span',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(cluster.total,_vm.currencyCode)))]),_c('div',{staticClass:\"v-expansion-panel-header__icon\"},[_c('v-icon',{staticClass:\"cluster-panel-header-icon\"},[_vm._v(\" keyboard_arrow_down \")])],1)]),_c('v-card-text',{staticClass:\"pt-0\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"dashboard.clusters.caption\", { cluster: cluster.cluster }))+\" \")])],1)],1)],1),_c('v-expansion-panel-content',[_c('content-card',{attrs:{\"title\":_vm.$t('dashboard.clusterSpend.title'),\"title-icon\":\"stacked_bar_chart\",\"caption\":_vm.$t('dashboard.clusterSpend.caption', { cluster: cluster.cluster })}},[_c('ClusterSpendBarChart',{attrs:{\"cluster\":cluster.cluster,\"data\":cluster.clusterAllocationDatasets},on:{\"click\":_vm.handleClusterSpendChartClick}})],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":_vm.$t('dashboard.namespaces.title'),\"title-icon\":\"grain\",\"caption\":_vm.$t('dashboard.namespaces.caption', { cluster: cluster.cluster })}},[_c('namespace-spend-table',{attrs:{\"items\":cluster.namespaces,\"currency-code\":_vm.currencyCode,\"loading\":_vm.$wait.is('loadingClusterSpend')}})],1)],1)],1)})],2)],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.$wait.is('loadingClusterSpend'),\"headers\":_vm.headers,\"items\":_vm.items},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(_vm.loading)?_c('div',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"query_builder\")]),_vm._v(\"Waiting for query\")],1):_c('div',[_c('v-icon',{attrs:{\"color\":\"warning\",\"left\":\"\"}},[_vm._v(\"warning\")]),_c('span',{staticClass:\"warning--text\"},[_vm._v(_vm._s(_vm.$t(\"dashboard.namespaces.nodata\")))])],1)]},proxy:true},{key:`item.namespace`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/kubernetes/tagkeys/${encodeURIComponent(\n '$KubernetesNamespace'\n )}/tag/${encodeURIComponent(\n '$KubernetesNamespace'\n )}:${encodeURIComponent(\n item.namespace.toLowerCase()\n )}?tagKeyValues=${encodeURIComponent(\n '$KubernetesCluster'\n )}:${encodeURIComponent(\n item.cluster.toLowerCase()\n )}`}},[_vm._v(_vm._s(item.namespace))])]}},{key:`item.total`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.total,_vm.currencyCode))+\" \")]}},{key:`body.append`,fn:function(){return [_c('tr',[_c('th',{staticClass:\"font-weight-bold\"},[_vm._v(\"Totals\")]),_c('th',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalSpend,_vm.currencyCode)))])])]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ISpendByTagResult, ITagSpendLine } from '@/models';\r\n\r\nexport interface INamespaceSpendTableItemViewModel {\r\n cluster: string;\r\n namespace: string;\r\n total: number;\r\n}\r\n\r\nexport const convertTagResultToNamespaceSpend = (\r\n clusterName: string, result: ISpendByTagResult\r\n): INamespaceSpendTableItemViewModel[] => {\r\n if (!result?.data?.length) {\r\n return [];\r\n }\r\n const rowMap = new Map();\r\n result.data.filter((item: ITagSpendLine) => {\r\n const cluster = item.rowDimensions[0];\r\n return cluster.tagValue === clusterName;\r\n }).forEach((item: ITagSpendLine) => {\r\n const namespace = item.rowDimensions[2];\r\n if (!namespace.tagValue?.trim()) return;\r\n\r\n if (!rowMap.has(namespace.tagValue)) {\r\n const row: INamespaceSpendTableItemViewModel = {\r\n cluster: item.rowDimensions[0].tagValue,\r\n namespace: namespace.tagValue,\r\n total: 0\r\n };\r\n rowMap.set(namespace.tagValue, row);\r\n }\r\n const row = rowMap.get(namespace.tagValue);\r\n const totalSpend = Math.round(item.totalSpend * 100) / 100;\r\n row.total += totalSpend; // total per namespace\r\n });\r\n return [...rowMap.entries()].map(([, v]) => v);\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n currencyCode: String,\r\n loading: Boolean,\r\n },\r\n computed: {\r\n totalSpend() {\r\n return this.items.reduce((total: number, item: INamespaceSpendTableItemViewModel) => total + item.total, 0);\r\n },\r\n headers() {\r\n if (!this.items) return [];\r\n\r\n return [\r\n {\r\n text: this.$t(\"dashboard.namespaces.namespaceColumnHeading\"),\r\n value: `namespace`,\r\n sortable: true,\r\n index: 1,\r\n },\r\n {\r\n text: this.$t(\"dashboard.namespaces.totalColumnHeading\"),\r\n value: `total`,\r\n sortable: true,\r\n index: 2,\r\n }\r\n ];\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NamespaceSpendTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NamespaceSpendTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NamespaceSpendTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NamespaceSpendTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NamespaceSpendTable.vue?vue&type=template&id=48ecafce&\"\nimport script from \"./NamespaceSpendTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./NamespaceSpendTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NamespaceSpendTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\",staticStyle:{\"height\":\"200px\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ChartData, Chart, ChartDataset } from 'chart.js/auto'\r\nimport { formatCurrency } from '@/lib/Currencies';\r\nimport * as CssVariables from '@/lib/CssVariables';\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n clickFn: (allocation: string) => void | null;\r\n}\r\n\r\nexport interface IClusterSpendDataPoint {\r\n x: number;\r\n y: string;\r\n allocation: string;\r\n}\r\n\r\nconst AllocationTypes : {[allocation: string]: { label: string, description: string[] }} = {\r\n 'unallocated': { label: 'Un-utilised', description: ['This is the cost of unused compute space in the cluster', 'It is the spend left after each pod has been allocated a cost based on its usage.', 'This is a good indicator of whether the cluster provisioning should be tweaked'] },\r\n 'allocated': { label: 'Utilised', description: ['This is the cost that can be attributed to a running service (a pod).', 'The pod cost is a calculation of its total usage of the node resources on a particular day'] },\r\n 'sharedcost': { label: 'Overheads', description: ['Clusters have an overhead cost charged by each cloud vendor', 'This is typically the hourly charge for having a cluster running', 'As well as public IP and load balancing'] },\r\n}\r\n\r\nexport const convertAllocationsToDatasets = (allocations: { [allocation: string]: number }): ChartData<'bar', IClusterSpendDataPoint[], string> => {\r\n const colours = [\"#6AA84F\", \"#E69138\", \"#3D85C6\", \"#A64D79\"];\r\n\r\n const datasets: ChartDataset<'bar', IClusterSpendDataPoint[]>[] = [];\r\n Object.keys(allocations).forEach((key, index) => {\r\n const label = AllocationTypes[key] ? AllocationTypes[key].label : key;\r\n datasets.push({\r\n data: [{\r\n allocation: key.toLowerCase(),\r\n x: allocations[key],\r\n y: label\r\n }],\r\n label: label,\r\n backgroundColor: colours[index % colours.length],\r\n borderWidth: 1,\r\n borderColor: 'white'\r\n });\r\n });\r\n return {\r\n datasets\r\n };\r\n};\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions): Chart => {\r\n const { currencyCode } = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(CssVariables.ContrastLinesVariable);\r\n const contrastText = style.getPropertyValue(CssVariables.ContrastTextVariable);\r\n const onClickProcessor = (_, [targetPtr], chart) => {\r\n if (!options.clickFn) return;\r\n const targetDataset = chart.data.datasets[targetPtr.datasetIndex];\r\n const target: IClusterSpendDataPoint = targetDataset.data[targetPtr.index] as any;\r\n options.clickFn(target.allocation);\r\n }\r\n const chart = new Chart(chartItem, {\r\n type: 'bar',\r\n data: {\r\n labels: [],\r\n datasets: []\r\n },\r\n options: {\r\n indexAxis: 'y',\r\n borderColor: 'rgba(0,0, 0, 0)',\r\n plugins: {\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(item) {\r\n const dataset = item.dataset;\r\n const points: IClusterSpendDataPoint[] = dataset.data as any;\r\n const hoverPoint: IClusterSpendDataPoint = points[item.dataIndex];\r\n return [\r\n `Spend: ${formatCurrency(hoverPoint.x, currencyCode)}`,\r\n ...AllocationTypes[hoverPoint.allocation] ? AllocationTypes[hoverPoint.allocation].description : []\r\n ]\r\n }\r\n },\r\n mode: 'point'\r\n },\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n y: {\r\n type: 'category',\r\n ticks: {\r\n color: contrastText\r\n },\r\n grid: {\r\n color: 'rgba(0, 0, 0, 0)'\r\n },\r\n stacked: true\r\n },\r\n x: {\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return formatCurrency(value, currencyCode);\r\n }\r\n },\r\n grid: {\r\n color: contrastLines\r\n },\r\n title: {\r\n text: `Cost (${currencyCode})`,\r\n color: contrastText,\r\n display: true\r\n },\r\n display: true,\r\n stacked: true\r\n }\r\n },\r\n onClick(_, [targetPtr], chart) {\r\n onClickProcessor(_, [targetPtr], chart);\r\n },\r\n interaction: {\r\n intersect: true,\r\n mode: 'point'\r\n },\r\n onHover(event, [element]) {\r\n let newCursor = 'default';\r\n if (element) {\r\n const dataset = chart.data.datasets[element.datasetIndex];\r\n if (dataset) {\r\n newCursor = 'pointer';\r\n }\r\n }\r\n (event.native.target as HTMLElement).style.cursor = newCursor;\r\n },\r\n }\r\n });\r\n return chart;\r\n}","\r\nimport { defineComponent, ref, onMounted, watch } from \"vue\";\r\nimport { useTenantStore, storeToRefs } from \"@/stores\";\r\nimport createClusterAllocationsBarChart, {\r\n convertAllocationsToDatasets\r\n} from \"@/chartjs/createClusterSpendBarChart\";\r\n\r\nexport {\r\n createClusterAllocationsBarChart,\r\n convertAllocationsToDatasets\r\n};\r\n\r\nexport interface IClickEvent {\r\n /**\r\n * Represents the value of the $KubernetesAllocation tag\r\n *\r\n * @typedef {string} allocation\r\n */\r\n allocation: string;\r\n /**\r\n * Represents the value of the $KubernetesCluster tag\r\n *\r\n * @typedef {string} cluster\r\n */\r\n cluster: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n data: Object,\r\n cluster: String\r\n },\r\n setup(props, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!props.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n canvas.value = document.createElement(\"canvas\");\r\n root.value.appendChild(canvas.value);\r\n const chart = createClusterAllocationsBarChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n clickFn(allocation) {\r\n emit(\"click\", { allocation, cluster: props.cluster });\r\n },\r\n });\r\n chart.data = props.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => props.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true },\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n \"$vuetify.theme.dark\": {\r\n handler() {\r\n this.renderChart();\r\n },\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClusterSpendBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ClusterSpendBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ClusterSpendBarChart.vue?vue&type=template&id=6d8bf851&\"\nimport script from \"./ClusterSpendBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./ClusterSpendBarChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { storeToRefs, useTenantStore, useWaitStore } from '@/stores';\r\nimport {\r\n Granularity,\r\n ISpendByTagResult,\r\n ITagSpendLine\r\n} from '@/models';\r\nimport { watch, computed, defineComponent, ref, ComputedRef } from 'vue';\r\nimport { getTagUsage } from '@/lib/Api';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport NamespaceSpendTable, { INamespaceSpendTableItemViewModel, convertTagResultToNamespaceSpend } from '@/components/Domain.Kubernetes/NamespaceSpendTable.vue';\r\nimport ClusterSpendBarChart, {\r\n convertAllocationsToDatasets,\r\n IClickEvent,\r\n} from '@/components/Domain.Kubernetes/ClusterSpendBarChart.vue';\r\nimport { ChartData } from 'chart.js/auto';\r\nimport { IClusterSpendDataPoint } from '@/chartjs/createClusterSpendBarChart';\r\nimport DateRangeButtonToggle, { IDateRangeViewModel } from '@/components/Domain.Usage/DateRangeButtonToggle.vue';\r\nimport DateKey from '@/lib/DateKey';\r\nimport moment from '@/lib/moment';\r\n\r\ninterface IClusterSpendBreakdown {\r\n cluster: string,\r\n total: number,\r\n namespaces: INamespaceSpendTableItemViewModel[],\r\n clusterAllocationDatasets: ChartData<'bar', IClusterSpendDataPoint[], string>\r\n}\r\n\r\ninterface IClusterSpendItemViewModel {\r\n cluster: string;\r\n total: number;\r\n allocations: { [allocation: string]: number };\r\n}\r\n\r\nexport default defineComponent({\r\n components: { DateRangeButtonToggle, ClusterSpendBarChart, NamespaceSpendTable },\r\n title() {\r\n return this.$t('dashboard.title');\r\n },\r\n setup() {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n\r\n const clusterSpendData = ref(null);\r\n const panelState = ref([]);\r\n const dateRange = ref({ dateRangeKey: '30d', fromDate: null, toDate: moment.utc().toDate() });\r\n const effectiveDateRange = ref<[] | [Date] | [Date, Date]>([]);\r\n\r\n /**\r\n * Loads the cluster spend data, for all clusters within the time period\r\n *\r\n * @async\r\n * @function loadClusterSpend\r\n * @returns {Promise} - A Promise that resolves when the cluster spend data is loaded.\r\n */\r\n const loadClusterSpend = async (dateRange: IDateRangeViewModel): Promise => {\r\n await whilst('loadingClusterSpend', async () => {\r\n try {\r\n const key = new DateKey(dateRange.dateRangeKey);\r\n effectiveDateRange.value = key.getEffectiveDateRange(dateRange.fromDate, dateRange.toDate);\r\n if (effectiveDateRange.value?.length < 1) {\r\n toastError('Please select a date range to view cluster spend');\r\n return;\r\n }\r\n const tagUsageData: ISpendByTagResult = await getTagUsage(\r\n effectiveDateRange.value[0],\r\n effectiveDateRange.value.length > 1 ? effectiveDateRange.value[1] : effectiveDateRange.value[0],\r\n ['$KubernetesCluster', '$KubernetesAllocation', '$KubernetesNamespace'],\r\n Granularity.daily\r\n );\r\n\r\n if (!tagUsageData || tagUsageData.data.length === 0) {\r\n clusterSpendData.value = null;\r\n return;\r\n }\r\n\r\n clusterSpendData.value = tagUsageData;\r\n } catch (err) {\r\n toastError('There was an issue loading the cluster spend');\r\n clusterSpendData.value = null;\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Computes the per-cluster total spend based on the tag usage data.\r\n * Additionally, computes the total spend per allocation (utilised, unutilised, shared cost)\r\n * @returns {IClusterSpendItemViewModel[]} - An array of tag usage items\r\n */\r\n const clusterSpend : ComputedRef = computed(() => {\r\n if (!clusterSpendData.value?.data?.length) {\r\n return [];\r\n }\r\n const rowMap = new Map();\r\n clusterSpendData.value.data.forEach((item: ITagSpendLine) => {\r\n const cluster = item.rowDimensions[0];\r\n const allocation = item.rowDimensions[1];\r\n if (!allocation.tagValue) return;\r\n\r\n if (!rowMap.has(cluster.tagValue)) {\r\n const row: IClusterSpendItemViewModel = {\r\n cluster: cluster.tagValue,\r\n total: 0,\r\n allocations: {}\r\n };\r\n rowMap.set(cluster.tagValue, row);\r\n }\r\n const row = rowMap.get(cluster.tagValue);\r\n const totalSpend = Math.round(item.totalSpend * 100) / 100;\r\n if (!row.allocations[allocation.tagValue]) row.allocations[allocation.tagValue] = 0;\r\n row.total += totalSpend; // total per cluster\r\n row.allocations[allocation.tagValue] += totalSpend; // total per allocation\r\n });\r\n return [...rowMap.entries()].map(([, v]) => v);\r\n });\r\n\r\n /**\r\n * Represents a computed variable that holds an array of cluster spend breakdowns.\r\n * A cluster spend breakdown includes the total cluster cost, as well as costs per namespace\r\n * @name clustersViewModel\r\n * @type {ComputedRef}\r\n */\r\n const clustersViewModel : ComputedRef = computed(() => {\r\n if (!clusterSpendData.value?.data?.length) {\r\n return [];\r\n }\r\n\r\n const clusterMap = new Map();\r\n clusterSpendData.value.data.forEach((item : ITagSpendLine) => {\r\n const cluster = item.rowDimensions[0];\r\n if (clusterMap.has(cluster.tagValue)) return;\r\n\r\n const clusterSpendItem = clusterSpend.value.find((item: IClusterSpendItemViewModel) => item.cluster === cluster.tagValue);\r\n if (!clusterSpendItem) return;\r\n\r\n const clusterRow : IClusterSpendBreakdown = {\r\n cluster: cluster.tagValue,\r\n total: clusterSpendItem.total,\r\n namespaces: convertTagResultToNamespaceSpend(cluster.tagValue, clusterSpendData.value),\r\n clusterAllocationDatasets: convertAllocationsToDatasets(clusterSpendItem.allocations)\r\n };\r\n\r\n clusterMap.set(cluster.tagValue, clusterRow);\r\n });\r\n\r\n return [...clusterMap.entries()].map(([, v]) => v);\r\n });\r\n\r\n /**\r\n * Creates human-readable format of the effective date range\r\n * @name effectiveDates\r\n * @type {ComputedRef<{ fromDate: string, toDate: string }>}\r\n */\r\n const effectiveDates : ComputedRef<{ fromDate: string, toDate: string}> = computed(() => {\r\n if (effectiveDateRange.value.length < 1) return { fromDate: \"\", toDate: \"\" };\r\n\r\n const fromDate = moment.utc(effectiveDateRange.value[0]).format(\"DD MMMM YYYY\");\r\n const toDate = effectiveDateRange.value.length > 1 ? moment.utc(effectiveDateRange.value[1]).format(\"DD MMMM YYYY\") : fromDate;\r\n return { fromDate, toDate };\r\n });\r\n\r\n watch(clustersViewModel, (newClusters : IClusterSpendBreakdown[]) => {\r\n if (newClusters.length === 1) {\r\n panelState.value = [0]; // if we only have one cluster, default its panel to expanded\r\n }\r\n });\r\n\r\n watch(dateRange, async (dateRange: IDateRangeViewModel) => {\r\n await loadClusterSpend(dateRange);\r\n }, { immediate: true });\r\n\r\n return {\r\n dateRange,\r\n effectiveDates,\r\n clusters: clustersViewModel,\r\n clusterSpend,\r\n panelState,\r\n clusterSpendData,\r\n currencyCode,\r\n loadClusterSpend,\r\n wait: { is, whilst }\r\n };\r\n },\r\n\r\n methods: {\r\n handleClusterSpendChartClick(event: IClickEvent) {\r\n this.$router.push(`/kubernetes/tagkeys/${encodeURIComponent(\r\n '$KubernetesAllocation'\r\n )}/tag/${encodeURIComponent(\r\n '$KubernetesAllocation'\r\n )}:${encodeURIComponent(\r\n event.allocation.toLowerCase()\r\n )}?tagKeyValues=${encodeURIComponent(\r\n '$KubernetesCluster'\r\n )}:${encodeURIComponent(\r\n event.cluster.toLowerCase()\r\n )}`\r\n );\r\n },\r\n handleUpdateDateRange($event: IDateRangeViewModel) {\r\n this.dateRange = $event;\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/kubernetes');\r\n this.$title = this.$t('dashboard.title');\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KubernetesDashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KubernetesDashboard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KubernetesDashboard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./KubernetesDashboard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./KubernetesDashboard.vue?vue&type=template&id=10d92e74&scoped=true&\"\nimport script from \"./KubernetesDashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./KubernetesDashboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./KubernetesDashboard.vue?vue&type=style&index=0&id=10d92e74&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"10d92e74\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./KubernetesDashboard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Passthrough.vue?vue&type=template&id=4f083804&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('tagsOverview.title'),\"icon\":\"local_offer\"}}),(_vm.isDeprecationNoticeEnabled)?_c('Banner',{attrs:{\"lines\":\"one\",\"icon\":\"warning\",\"color\":\"secondary\"},scopedSlots:_vm._u([{key:\"text\",fn:function(){return [_vm._v(\" Deprecation Notice: This page is deprecated and will be removed in a future release. Please use the Custom Reports page. \")]},proxy:true}],null,false,1819889845)}):_vm._e(),_c('v-container',[_c('v-expansion-panels',{attrs:{\"open\":\"\"},model:{value:(_vm.filterPanels),callback:function ($$v) {_vm.filterPanels=$$v},expression:\"filterPanels\"}},[_c('v-expansion-panel',[_c('v-expansion-panel-header',{scopedSlots:_vm._u([{key:\"default\",fn:function({ open }){return [_c('v-list',[_c('v-list-item',{staticClass:\"pa-0 ma-0\"},[_c('v-list-item-content',[_c('v-list-item-title',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"filter_alt\")]),_vm._v(_vm._s(_vm.$t('tagsOverview.titles.reportFilters'))+\" \")],1)],1),(!open && _vm.$wait.is('loadingTagSpend'))?_c('v-list-item-avatar',[_c('v-progress-circular',{attrs:{\"color\":\"secondary\",\"indeterminate\":\"\",\"small\":\"\"}})],1):_vm._e()],1)],1)]}}])}),_c('v-expansion-panel-content',[_c('v-form',{model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-autocomplete',{attrs:{\"label\":_vm.$t('tagsOverview.primaryTagKey'),\"items\":_vm.tagKeys,\"item-text\":\"name\",\"outlined\":\"\",\"dense\":\"\",\"required\":\"\",\"rules\":_vm.primaryTagRules,\"chips\":\"\",\"autofocus\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({attrs:{\"input-value\":data.selected,\"small\":\"\"},on:{\"click\":data.select}},'v-chip',data.attrs,false),[_vm._v(_vm._s(data.item.name))])]}}]),model:{value:(_vm.primaryTag),callback:function ($$v) {_vm.primaryTag=$$v},expression:\"primaryTag\"}}),_c('v-autocomplete',{attrs:{\"label\":_vm.$t('tagsOverview.additionalTagKeys'),\"items\":_vm.tagKeys,\"item-text\":\"name\",\"rules\":_vm.additionalTagRules,\"outlined\":\"\",\"dense\":\"\",\"multiple\":\"\",\"chips\":\"\"},scopedSlots:_vm._u([{key:\"selection\",fn:function(data){return [_c('v-chip',_vm._b({attrs:{\"input-value\":data.selected,\"close\":\"\",\"small\":\"\"},on:{\"click\":data.select,\"click:close\":function($event){return _vm.remove(data.item.name)}}},'v-chip',data.attrs,false),[_vm._v(_vm._s(data.item.name))])]}}]),model:{value:(_vm.additionalTags),callback:function ($$v) {_vm.additionalTags=$$v},expression:\"additionalTags\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('tagsOverview.dates.start'),\"value\":_vm.startDate,\"rules\":_vm.startDateRules,\"outlined\":\"\",\"noTitle\":true,\"type\":\"month\"},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v},expression:\"startDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('tagsOverview.dates.end'),\"value\":_vm.endDate,\"rules\":_vm.endDateRules,\"outlined\":\"\",\"noTitle\":true,\"type\":\"month\"},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v},expression:\"endDate\"}})],1)],1),_c('v-divider'),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"9\"}}),_c('v-col',{attrs:{\"cols\":\"3 text-center\"}},[_c('v-btn',{attrs:{\"disabled\":_vm.valid === false || _vm.$wait.is('loadingTagSpend'),\"loading\":_vm.$wait.is('loadingTagSpend'),\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.getTagSpendData()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(_vm._s(_vm.$t('tagsOverview.runReport'))+\" \")],1)],1)],1)],1)],1)],1)],1),_c('content-card',{staticClass:\"my-2\",attrs:{\"title\":_vm.$t('tagsOverview.titles.totalSpend')}},[_c('template',{slot:\"title-actions\"},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.$refs['tag-spend-table'].exportCsv()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_download\")]),_vm._v(\" \"+_vm._s(_vm.$t('tagsOverview.export'))+\" \")],1)],1),_c('TagSpendAreaChart',{attrs:{\"data\":_vm.tagChartItems}}),_c('v-divider',{staticClass:\"my-3\"}),_c('SpendUsageTable',{ref:\"tag-spend-table\",staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"segregate-by\":_vm.segregatedBy.join(','),\"currency-code\":'AUD',\"hide-intelligence\":\"\",\"prefix\":\"/tagoverview\"}})],2)],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ISpendByTagResult, ISpendResult, ISpendAndConsumptionGroup } from '@/models';\r\nimport * as CssVariables from '@/lib/CssVariables';\r\nimport { ChartData, Point, Chart, ChartDataset } from 'chart.js/auto'\r\nimport { formatCurrency } from '@/lib/Currencies';\r\nimport { LEGACY_COLORS_RGB } from './legacy'\r\nimport './dayJsAdapter';\r\nimport htmlLegendPlugin from './legendPlugin';\r\n\r\nconst PREFIX_PAD = 100;\r\n\r\nexport const convertTagSpendResponseToDatasets = (tagSpendResult: ISpendResult): ChartData<'bar', Point[], string> => {\r\n const datasets: ChartDataset<'bar', Point[]>[] = [];\r\n let i = 0;\r\n for (const grouping of tagSpendResult.groupings) {\r\n const color = LEGACY_COLORS_RGB[i % LEGACY_COLORS_RGB.length];\r\n const data = grouping.usageRecords.map(r => ({\r\n x: new Date(r.usageDate).getTime(),\r\n y: r.charges\r\n }))\r\n datasets.push({\r\n data,\r\n label: grouping.name,\r\n backgroundColor: `rgb(${color})`,\r\n borderColor: 'white',\r\n borderWidth: 1,\r\n order: (PREFIX_PAD + i),\r\n }); \r\n i++;\r\n }\r\n return {\r\n labels: [],\r\n datasets\r\n };\r\n};\r\n\r\nexport interface IClickEvent {\r\n index: number;\r\n name: string;\r\n}\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n onClick?: (event: IClickEvent) => void;\r\n}\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions, containerId: string): Chart => {\r\n const { currencyCode, onClick } = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(CssVariables.ContrastLinesVariable);\r\n const contrastText = style.getPropertyValue(CssVariables.ContrastTextVariable);\r\n const chart = new Chart(chartItem, {\r\n type: 'bar',\r\n data: {\r\n labels: [],\r\n datasets: []\r\n },\r\n options: {\r\n borderColor: 'rgba(0,0, 0, 0)',\r\n plugins: {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: containerId,\r\n },\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: contrastText\r\n },\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(item) {\r\n return [item.dataset.label];\r\n },\r\n afterLabel(item) {\r\n const dataset = item.dataset;\r\n const points: Point[] = dataset.data as any;\r\n const hoverPoint: Point = points[item.dataIndex];\r\n const datasetTotal = points.map((a: Point) => a.y).reduce((a, b) => a + b);\r\n const datasetAverage = datasetTotal / dataset.data.length;\r\n const index: (Point | undefined)[] = this.chart.config.data.datasets.map(ds => ds.data[item.dataIndex]);\r\n const indexTotal = index.map(p => p?.y || 0).reduce((a, b) => a + b);\r\n const percentageOfIndexTotal = (hoverPoint.y / (indexTotal || hoverPoint.y) * 100);\r\n const percentageOfAverage = ((hoverPoint.y - datasetAverage) / datasetAverage * 100);\r\n return [\r\n `Total: ${formatCurrency(hoverPoint.y, currencyCode)}`,\r\n `${percentageOfIndexTotal.toFixed(2)}% of period (${formatCurrency(indexTotal, currencyCode)})`,\r\n `${percentageOfAverage > 0 ? '+' + percentageOfAverage.toFixed(2) : percentageOfAverage.toFixed(2)}% vs. average`\r\n ]\r\n },\r\n },\r\n mode: 'point'\r\n }\r\n },\r\n hover: {\r\n mode: 'dataset',\r\n\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n interaction: {\r\n intersect: false,\r\n },\r\n onClick(event, [element], chart) {\r\n if (!element) return;\r\n const dataset = chart.data.datasets[element.datasetIndex];\r\n if (!dataset) return;\r\n if (onClick) {\r\n onClick({\r\n index: dataset.order,\r\n name: dataset.label\r\n });\r\n }\r\n },\r\n scales: {\r\n x: {\r\n type: \"time\",\r\n stacked: true,\r\n ticks: {\r\n color: contrastText\r\n },\r\n grid: {\r\n color: 'rgba(0, 0, 0, 0)'\r\n },\r\n axis: 'x',\r\n time: {\r\n unit: 'month'\r\n }\r\n },\r\n y: {\r\n type: 'linear',\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return formatCurrency(value, currencyCode);\r\n }\r\n },\r\n grid: {\r\n color: contrastLines\r\n },\r\n min: 0,\r\n axis: 'y',\r\n title: {\r\n text: `Cost (${currencyCode})`,\r\n color: contrastText,\r\n display: true\r\n },\r\n stack: 'y',\r\n display: true,\r\n }\r\n }\r\n },\r\n plugins: [htmlLegendPlugin]\r\n });\r\n return chart;\r\n};","\r\nimport { defineComponent, ref, onMounted, watch } from 'vue';\r\nimport { useTenantStore, storeToRefs } from '@/stores';\r\nimport createTagSpendAreaChart, {\r\n convertTagSpendResponseToDatasets,\r\n IClickEvent\r\n} from '@/chartjs/createTagSpendAreaChart';\r\nexport { convertTagSpendResponseToDatasets, IClickEvent };\r\n\r\nexport default defineComponent({\r\n props: {\r\n data: Object,\r\n },\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.style.height = \"400px\";\r\n canvas.value.classList.add('chart-canvas');\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = '400px';\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n\r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n\r\n const chart = createTagSpendAreaChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n onClick(event) {\r\n emit('click', event);\r\n },\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n '$vuetify.theme.dark': {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagSpendAreaChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagSpendAreaChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TagSpendAreaChart.vue?vue&type=template&id=8e6cff7a&\"\nimport script from \"./TagSpendAreaChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagSpendAreaChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-banner',_vm._g(_vm._b({attrs:{\"color\":_vm.color,\"icon\":_vm.icon,\"single-line\":_vm.singleLine,\"sticky\":_vm.sticky,\"value\":_vm.value},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},'v-banner',_vm.$attrs,false),_vm.$listeners),[_c('v-banner-text',[_vm._t(\"text\")],2),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Banner.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Banner.vue?vue&type=template&id=1f7c7782&\"\nimport script from \"./Banner.vue?vue&type=script&lang=js&\"\nexport * from \"./Banner.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { getTagUsage, getAllTagKeys, getSpend } from '@/lib/Api';\r\nimport moment from '@/lib/moment';\r\nimport TagSpendTable, {\r\n convertSpendByTagResultToDimensions,\r\n convertSpendByTagResultToItems,\r\n} from '@/components/Domain.Tags/TagSpendTable.vue';\r\nimport TagSpendAreaChart, { convertTagSpendResponseToDatasets } from '@/components/Domain.Tags/TagSpendAreaChart.vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { defineComponent } from 'vue';\r\nimport { ISpendByTagResult, Granularity, SpendFieldNames, PluralEntityType } from '@/models';\r\nimport {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport Banner from '@/components/Common/Banner.vue';\r\nimport Config from '@/lib/Config';\r\n\r\ninterface ITagOverviewParamsViewModel {\r\n granularity: Granularity.daily | Granularity.monthly;\r\n min: Date;\r\n max: Date;\r\n dimensions: string[];\r\n}\r\n\r\nexport default defineComponent({\r\n components: {\r\n TagSpendAreaChart,\r\n SpendUsageTable,\r\n Banner\r\n },\r\n title(ctx) {\r\n return ctx.$t('tagsOverview.title');\r\n },\r\n data() {\r\n const usageOptions: SpendUsageOptions = {\r\n dateRangeKey: '3m',\r\n forecastRangeKey: '3m'\r\n };\r\n return {\r\n filterPanels: 0,\r\n primaryTag: null,\r\n additionalTags: [],\r\n tagKeys: [],\r\n startDate: moment().subtract(6, 'months'),\r\n startMenu: false,\r\n endDate: moment(),\r\n endMenu: false,\r\n tagTableItems: [],\r\n tagTableDimensions: [],\r\n tagChartItems: { labels: [], datasets: [] },\r\n valid: false,\r\n periodRules: [(v) => !!v || 'Date period is required'],\r\n startDateRules: [\r\n () => {\r\n const startDate = moment.utc((this as any).startDate).startOf('month');\r\n const endDate = moment.utc((this as any).endDate).endOf('month');\r\n if (startDate.isBefore(endDate)) return true;\r\n else return 'Start date must be before or equal to end date';\r\n },\r\n ],\r\n endDateRules: [\r\n () => {\r\n const startDate = moment.utc((this as any).startDate).startOf('month');\r\n const endDate = moment.utc((this as any).endDate).endOf('month');\r\n if (startDate.isBefore(endDate)) return true;\r\n else return 'End date must be after or equal to start date';\r\n },\r\n ],\r\n primaryTagRules: [(v) => !!v || 'Primary tag is required'],\r\n additionalTagRules: [(v) => v.length < 3 || 'Max 2 additional tags supported'],\r\n usageOptions,\r\n usageTableItems: null,\r\n isDeprecationNoticeEnabled: Config.isDeprecationNoticeEnabled(),\r\n };\r\n },\r\n async mounted() {\r\n this.getTagKeys();\r\n },\r\n computed: {\r\n params(): ITagOverviewParamsViewModel {\r\n const tags: string[] = [];\r\n tags.push(this.primaryTag);\r\n if (this.additionalTags && this.additionalTags.length > 0) {\r\n for (const tag of this.additionalTags) {\r\n tags.push(tag);\r\n }\r\n }\r\n return {\r\n granularity: Granularity.monthly,\r\n min: moment.utc(this.startDate, \"MMMM 'YY\").startOf('month').toDate(),\r\n max: moment.utc(this.endDate, \"MMMM 'YY\").endOf('month').toDate(),\r\n dimensions: tags,\r\n };\r\n },\r\n segregatedBy() {\r\n const segregatedBy = this.params.dimensions.filter(d => d).map((d) => `tags/${d}`);\r\n return segregatedBy;\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n getTagKeys: waitFor('loadingTagKeys', async function loadTagKeys() {\r\n try {\r\n this.tagKeys = await getAllTagKeys().then((k) => k.data);\r\n } catch (err) {\r\n toastError('There was an issue loading the Tag Keys.');\r\n this.tagKeys = [];\r\n }\r\n }),\r\n getTagSpendData: waitFor('loadingTagSpend', async function loadTagSpend() {\r\n try {\r\n this.filterPanels = null;\r\n const params = convertSpendOptionsToQuery(this.usageOptions as SpendUsageOptions);\r\n if (!params) return;\r\n params.fromDate = moment.utc(this.startDate).startOf('month').toDate().toISOString();\r\n params.toDate = moment.utc(this.endDate).endOf('month').toDate().toISOString();\r\n\r\n const usageResponse = await getSpend({\r\n ...params,\r\n segregateBy: this.segregatedBy,\r\n fields: [SpendFieldNames.Charges, SpendFieldNames.Spend],\r\n });\r\n\r\n this.usageTableItems = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n this.segregatedBy,\r\n usageResponse,\r\n );\r\n this.tagChartItems = convertTagSpendResponseToDatasets(usageResponse);\r\n\r\n } catch (err) {\r\n toastError('There was an issue loading the data.');\r\n this.tagTableItems = [];\r\n this.tagTableDimensions = [];\r\n this.tagChartItems = [];\r\n this.filterPanels = 0;\r\n }\r\n }),\r\n remove(item) {\r\n const index = this.additionalTags.indexOf(item);\r\n if (index >= 0) this.additionalTags.splice(index, 1);\r\n },\r\n handleDialogChange(isOpen) {\r\n if (isOpen) return;\r\n this.$router.push('/tagoverview');\r\n this.$title = this.$t('tagsOverview.title');\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagOverview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagOverview.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagOverview.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagOverview.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagOverview.vue?vue&type=template&id=cea09af4&\"\nimport script from \"./TagOverview.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagOverview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagOverview.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('Customers'),\"icon\":\"content_copy\",\"extended\":\"\",\"extension-height\":10}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"fab\":\"\",\"absolute\":\"\",\"depressed\":\"\",\"bottom\":\"\",\"large\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.exportCustomerCsv()}}},[_c('v-icon',[_vm._v(\"cloud_download\")])],1)],1),_c('widget-grid',{staticClass:\"mt-7\"},[_c('v-flex',{attrs:{\"xs12\":\"\",\"sm6\":\"\",\"md3\":\"\"}},[_c('figure-card',{attrs:{\"title\":_vm._f(\"currency\")(_vm.totalRevenue,_vm.tenantStore.currencyCode),\"description\":_vm.tenantStore.hasTenantFeature('HideProfit') ? _vm.$t('views.customerUsage.cards.totalCost') : _vm.$t('views.customerUsage.cards.totalRevenue'),\"caption\":_vm.$t('views.customerUsage.dateRangeFormat', {\n startPeriodString: _vm.startPeriodString,\n endPeriodString: _vm.endPeriodString,\n })}})],1),(!_vm.tenantStore.hasTenantFeature('HideProfit'))?_c('v-flex',{attrs:{\"xs12\":\"\",\"sm6\":\"\",\"md3\":\"\"}},[_c('figure-card',{attrs:{\"title\":_vm._f(\"currency\")(_vm.totalProfit,_vm.tenantStore.currencyCode),\"description\":_vm.$t('views.customerUsage.cards.totalProfit'),\"caption\":_vm.$t('views.customerUsage.dateRangeFormat', {\n startPeriodString: _vm.startPeriodString,\n endPeriodString: _vm.endPeriodString,\n })}})],1):_vm._e(),(!_vm.tenantStore.hasTenantFeature('HideProfit'))?_c('v-flex',{attrs:{\"xs12\":\"\",\"sm6\":\"\",\"md3\":\"\"}},[_c('figure-card',{attrs:{\"title\":`${_vm.totalMargin ? _vm.totalMargin.toFixed(2) : 0}%`,\"description\":_vm.$t('views.customerUsage.cards.margin'),\"caption\":_vm.$t('views.customerUsage.dateRangeFormat', {\n startPeriodString: _vm.startPeriodString,\n endPeriodString: _vm.endPeriodString,\n })}})],1):_vm._e(),_c('v-flex',{attrs:{\"xs12\":\"\",\"sm6\":\"\",\"md3\":\"\"}},[_c('figure-card',{attrs:{\"title\":_vm.numberCustomers,\"description\":_vm.$t('views.customerUsage.cards.totalCustomers'),\"caption\":_vm.$t('views.customerUsage.dateRangeFormat', {\n startPeriodString: _vm.startPeriodString,\n endPeriodString: _vm.endPeriodString,\n })}})],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('content-card',{attrs:{\"title\":\"Spend by Month\"}},[_c('customers-chart',{attrs:{\"data\":_vm.chartDatasets}})],1)],1),_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('customers-table',{ref:\"customers-table\",attrs:{\"items\":_vm.summary ? _vm.summary.customers : [],\"currencyCode\":_vm.tenantStore.currencyCode,\"loading\":_vm.$wait.is('loadingCustomerStats'),\"hideProfit\":_vm.tenantStore.hasTenantFeature('HideProfit')}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ICustomerUsageSummaryModel } from '@/models';\r\nimport * as CssVariables from '@/lib/CssVariables';\r\nimport { ChartData, Point, Chart, ChartDataset } from 'chart.js/auto';\r\nimport { formatCurrency } from '@/lib/Currencies';\r\nimport { LEGACY_COLORS_RGB } from './legacy';\r\nimport './dayJsAdapter';\r\nimport pattern from 'patternomaly';\r\nimport htmlLegendPlugin from './legendPlugin';\r\n\r\nconst PREFIX_PAD = 100;\r\nconst MARGIN_DATASET_ORDER = 98;\r\nconst PROFIT_DATASET_ORDER = 99;\r\n\r\nexport const convertCustomerUsageSummaryToDatasets = (\r\n usageResult: ICustomerUsageSummaryModel,\r\n showProfit: boolean\r\n): ChartData<'bar' | 'line', Point[], string> => {\r\n const datasets: ChartDataset<'bar' | 'line', Point[]>[] = [];\r\n usageResult.customers.forEach((g, i) => {\r\n const color = LEGACY_COLORS_RGB[i % LEGACY_COLORS_RGB.length];\r\n const customerDataset: ChartDataset<'bar', Point[]> = {\r\n data: [],\r\n label: g.customerName + \"'s Cost\",\r\n backgroundColor: `rgb(${color})`,\r\n borderColor: 'white',\r\n borderWidth: 1,\r\n order: PREFIX_PAD + i,\r\n };\r\n customerDataset.data = g.monthlyChargeSummaries.map((u) => ({\r\n x: new Date(u.year, u.month - 1, 1).getTime(),\r\n y: u.cost - u.profit,\r\n }));\r\n datasets.push(customerDataset);\r\n });\r\n if (showProfit) {\r\n const marginDataset: ChartDataset<'line', Point[]> = {\r\n type: 'line',\r\n data: [],\r\n label: 'Margin',\r\n backgroundColor: 'rgba(255, 0, 0, 0.8)',\r\n borderColor: 'rgb(75, 192, 192)',\r\n fill: false,\r\n tension: 0.1,\r\n order: MARGIN_DATASET_ORDER,\r\n yAxisID: 'y2',\r\n };\r\n const profitDataset: ChartDataset<'bar', Point[]> = {\r\n data: [],\r\n label: 'Total Profit',\r\n backgroundColor: pattern.draw('zigzag', '#17becf'),\r\n order: PROFIT_DATASET_ORDER,\r\n borderWidth: 1,\r\n borderColor: 'white',\r\n };\r\n usageResult.monthlyChargeTotals.forEach((t) => {\r\n const date = new Date(t.year, t.month - 1, 1);\r\n marginDataset.data.push({ x: date.getTime(), y: t.margin });\r\n profitDataset.data.push({ x: date.getTime(), y: t.profit });\r\n });\r\n marginDataset.data = marginDataset.data.sort((a, b) => b.x - a.x);\r\n profitDataset.data = profitDataset.data.sort((a, b) => b.x - a.x);\r\n datasets.push(marginDataset);\r\n datasets.push(profitDataset);\r\n }\r\n return {\r\n labels: [],\r\n datasets,\r\n };\r\n};\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n}\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions, containerId: string): Chart => {\r\n const { currencyCode } = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(CssVariables.ContrastLinesVariable);\r\n const contrastText = style.getPropertyValue(CssVariables.ContrastTextVariable);\r\n const chart = new Chart(chartItem, {\r\n type: 'bar',\r\n data: {\r\n labels: [],\r\n datasets: [],\r\n },\r\n options: {\r\n borderColor: 'rgba(0,0, 0, 0)',\r\n plugins: {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: containerId,\r\n },\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: contrastText,\r\n },\r\n },\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n interaction: {\r\n intersect: true,\r\n mode: 'point',\r\n },\r\n scales: {\r\n x: {\r\n type: 'time',\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n },\r\n grid: {\r\n color: 'rgba(0, 0, 0, 0)',\r\n },\r\n axis: 'x',\r\n time: {\r\n unit: 'month',\r\n },\r\n },\r\n y: {\r\n type: 'linear',\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return formatCurrency(value, currencyCode);\r\n },\r\n },\r\n grid: {\r\n color: contrastLines,\r\n },\r\n min: 0,\r\n axis: 'y',\r\n title: {\r\n text: `Cost (${currencyCode})`,\r\n color: contrastText,\r\n display: true,\r\n },\r\n stack: 'y',\r\n display: true,\r\n },\r\n y2: {\r\n type: 'linear',\r\n stacked: false,\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return value.toFixed(2) + '%';\r\n },\r\n },\r\n position: 'right',\r\n grid: {\r\n drawOnChartArea: false, // only want the grid lines for one axis to show up\r\n },\r\n },\r\n },\r\n },\r\n plugins: [htmlLegendPlugin],\r\n });\r\n return chart;\r\n};\r\n","\r\nimport { defineComponent, ref, onMounted, watch } from \"vue\";\r\nimport { useTenantStore, storeToRefs } from \"@/stores\";\r\nimport createCustomerUsageBarChart, {\r\n convertCustomerUsageSummaryToDatasets,\r\n} from \"@/chartjs/createCustomerUsageBarChart\";\r\nexport { convertCustomerUsageSummaryToDatasets };\r\n\r\nexport default defineComponent({\r\n props: {\r\n data: Object,\r\n },\r\n setup(p) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.style.height = \"400px\";\r\n canvas.value.classList.add('chart-canvas');\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = '400px';\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n\r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n\r\n const chart = createCustomerUsageBarChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n \"$vuetify.theme.dark\": {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerUsageBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerUsageBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomerUsageBarChart.vue?vue&type=template&id=387b5a48&\"\nimport script from \"./CustomerUsageBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomerUsageBarChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":\"Customers\",\"caption\":`Total: ${_vm.items.length}`}},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.transformedItems,\"items-per-page\":15,\"sort-by\":_vm.sortBy,\"loading\":_vm.loading},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event}},scopedSlots:_vm._u([{key:`item.thisMonthRevenue`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.thisMonthRevenue,_vm.currencyCode))+\" \")]}},{key:`item.thisMonthCost`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.thisMonthCost,_vm.currencyCode))+\" \")]}},{key:`item.thisMonthProfit`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.thisMonthProfit,_vm.currencyCode))+\" \")]}},{key:`item.thisMonthMargin`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.thisMonthMargin.toFixed(2))+\"% \")]}},{key:`item.lastMonthRevenue`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.lastMonthRevenue,_vm.currencyCode))+\" \")]}},{key:`item.lastMonthCost`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.lastMonthCost,_vm.currencyCode))+\" \")]}},{key:`item.lastMonthProfit`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.lastMonthProfit,_vm.currencyCode))+\" \")]}},{key:`item.lastMonthMargin`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.lastMonthMargin.toFixed(2))+\"% \")]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CustomerTable.vue?vue&type=template&id=6ace8a1f&\"\nimport script from \"./CustomerTable.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomerTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { getCustomerSummary } from \"@/lib/Api\";\r\nimport CustomersChart, {\r\n convertCustomerUsageSummaryToDatasets,\r\n} from \"@/components/View.CustomerUsage/CustomerUsageBarChart.vue\";\r\nimport CustomersTable from \"@/components/View.CustomerUsage/CustomerTable.vue\";\r\nimport Downloader from \"@/lib/Downloader\";\r\nimport EventBus from \"@/lib/EventBus\";\r\nimport moment from \"@/lib/moment\";\r\nimport { useTenantStore } from \"@/stores/tenant\";\r\nimport { mapStores } from \"pinia\";\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t(\"views.customerUsage.title\");\r\n },\r\n components: {\r\n CustomersChart,\r\n CustomersTable,\r\n },\r\n methods: {\r\n exportCustomerCsv() {\r\n const table = this.$refs[\"customers-table\"];\r\n const headers = table.headers;\r\n const headerValues = headers.map((i) => i.value);\r\n const csvValues = table.transformedItems.map((i) => headerValues.map((k) => i[k]));\r\n csvValues.unshift(headers.map((i) => i.text));\r\n Downloader.exportCSV(csvValues, this.$t(\"views.customerUsage.exportFileName\"));\r\n },\r\n },\r\n data() {\r\n return {\r\n summary: null,\r\n chartDatasets: { labels: [], datasets: [] },\r\n startPeriod: moment.utc().subtract(6, \"months\").startOf(\"month\").toDate(),\r\n endPeriod: moment.utc().toDate(),\r\n };\r\n },\r\n computed: {\r\n totalRevenue() {\r\n if (!this.summary) return 0.0;\r\n return this.summary.totalRevenue;\r\n },\r\n totalProfit() {\r\n if (!this.summary) return 0.0;\r\n return this.summary.totalProfit;\r\n },\r\n totalMargin() {\r\n if (!this.summary) return 0.0;\r\n return this.summary.totalMargin;\r\n },\r\n numberCustomers() {\r\n if (!this.summary) return 0.0;\r\n return this.summary.customers.length;\r\n },\r\n startPeriodString() {\r\n return moment.utc(this.startPeriod).format(\"MMM YYYY\");\r\n },\r\n endPeriodString() {\r\n return moment.utc(this.endPeriod).format(\"MMM YYYY\");\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n async created() {\r\n try {\r\n this.$wait.start(\"loadingCustomerStats\");\r\n const data = await getCustomerSummary(this.startPeriod, this.endPeriod);\r\n this.summary = data;\r\n this.chartDatasets = convertCustomerUsageSummaryToDatasets(data, !this.tenantStore.hasTenantFeature('HideProfit'));\r\n } catch (err) {\r\n EventBus.$emit(\"$toast.error\", \"There was an error loading your customer summary.\");\r\n } finally {\r\n this.$wait.end(\"loadingCustomerStats\");\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersUsage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersUsage.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersUsage.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersUsage.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomersUsage.vue?vue&type=template&id=74e3455e&\"\nimport script from \"./CustomersUsage.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomersUsage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomersUsage.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('regionOverview.title'),\"icon\":\"location_on\"}}),_c('v-container',[_c('region-chart-card',{attrs:{\"items\":_vm.filteredRegionMapData},on:{\"click\":function($event){return _vm.handleChartClick($event)}}}),_c('regions-table-card',{staticClass:\"mt-3\",attrs:{\"loading\":_vm.$wait.is(['loadingRegions', 'loadingRegionTotals']),\"items\":_vm.filteredRegions,\"currency-code\":_vm.tenantStore.currencyCode},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-text-field',{staticClass:\"mr-1 pb-0 pr-7 shrink\",attrs:{\"hide-details\":\"false\",\"type\":\"number\",\"persistent-hint\":\"\",\"solo-inverted\":\"\",\"flat\":\"\",\"prepend-icon\":\"filter_list\",\"prepend-inner-icon\":\"attach_money\",\"label\":_vm.$t('regionOverview.filterNumber'),\"clearable\":\"\"},model:{value:(_vm.filterValue),callback:function ($$v) {_vm.filterValue=_vm._n($$v)},expression:\"filterValue\"}})]},proxy:true}])}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('chart-card',{attrs:{\"chart\":_vm.chartOptions,\"constructor-type\":\"mapChart\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ContrastTextVariable, VuetifyPrimaryBase } from '@/lib/CssVariables';\r\n\r\nexport const createMapChart = (options: any) => {\r\n const { events } = options;\r\n return {\r\n chart: {\r\n backgroundColor: 'transparent',\r\n map: 'custom/world'\r\n },\r\n exporting: { enabled: false },\r\n credits: { enabled: false },\r\n title: { text: '' },\r\n mapNavigation: { enabled: false },\r\n legend: {\r\n itemStyle: {\r\n color: `var(${ContrastTextVariable})`,\r\n },\r\n itemHoverStyle: {\r\n color: `var(${ContrastTextVariable})`\r\n },\r\n navigation: {\r\n style: {\r\n color: `var(${ContrastTextVariable})`,\r\n },\r\n activeColor: VuetifyPrimaryBase\r\n },\r\n },\r\n colorAxis: [],\r\n plotOptions: {\r\n series: {\r\n point: {\r\n events: {\r\n click: function clickEventHandler() {\r\n if (events && events['pointClicked']) {\r\n events['pointClicked'](this);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n series: [{\r\n name: 'Countries',\r\n color: '#E0E0E0',\r\n enableMouseTracking: false,\r\n showInLegend: false\r\n }]\r\n };\r\n};\r\n\r\nexport const createMapSeriesRecord = (groupingName: string, suffix: string, prefix: string = null) => {\r\n const colorLookup = {\r\n Azure: '#0078d4',\r\n Amazon: '#ec912d8c'\r\n } as any;\r\n const record = {\r\n type: 'mapbubble',\r\n name: groupingName,\r\n joinBy: null,\r\n data: [], // createMapSeriesChildRecord\r\n minSize: 15,\r\n maxSize: '10%',\r\n tooltip: suffix === 'intensity'\r\n ? {\r\n pointFormatter() {\r\n if (this.z < 0.0015) {\r\n return `${this.name}: Very Low`;\r\n } else if (this.z < 0.0030) {\r\n return `${this.name}: Low`;\r\n } else if (this.z < 0.0045) {\r\n return `${this.name}: Medium`;\r\n } else if (this.z < 0.0060) {\r\n return `${this.name}: High`;\r\n } else {\r\n return `${this.name}: Very High`;\r\n }\r\n }\r\n } \r\n : {\r\n pointFormatter() {\r\n return `${prefix ?? ''}${this.name}: ${this.z.toFixed(2)} ${suffix}`;\r\n }\r\n }\r\n };\r\n if (colorLookup[groupingName]) {\r\n record['color'] = colorLookup[groupingName];\r\n }\r\n return record;\r\n}\r\n\r\nexport const createMapSeriesChildRecord = (correlationId: string, areaName: string, groupingName: string, lat: number, lon: number, value: number) => {\r\n return {\r\n name: areaName,\r\n $$id: correlationId,\r\n provider: groupingName,\r\n lat,\r\n lon,\r\n z: value\r\n };\r\n}\r\n\r\nexport const createCarbonColorAxis = (max: number) => {\r\n return {\r\n min: 0,\r\n max,\r\n stops: [\r\n [0, '#5effa2'],\r\n [0.3, '#045737'],\r\n [0.6, '#cc820c'],\r\n [1, '#85071a']\r\n ]\r\n };\r\n}","\r\nimport { defineComponent, ref, watch } from \"vue\";\r\nimport * as ChartFactory from \"@/highcharts/MapFactory\";\r\nimport { IRegionCostResult, IRegionResult } from \"@/models\";\r\n\r\nexport interface IRegionClickedEventData {\r\n regionName: string;\r\n providerType: string;\r\n}\r\n\r\nexport const convertRegionResultsToChartSeries = (\r\n costs: IRegionCostResult,\r\n regions: IRegionResult[],\r\n currencyCode: string,\r\n currencySymbol: string\r\n) => {\r\n const regionTotals = costs.data.reduce((agg, val) => {\r\n const key = `${val.providerType}:${val.regionName}`.toUpperCase();\r\n agg[key] = val.totalCost;\r\n return agg;\r\n }, {});\r\n const series = Object.values(\r\n regions.reduce((obj, region) => {\r\n const regionTotalKey = `${region.providerType}:${region.name}`.toUpperCase();\r\n if (!regionTotals[regionTotalKey]) return obj;\r\n\r\n const providerType = region.providerType;\r\n const regionData = (obj[providerType] =\r\n obj[providerType] || ChartFactory.createMapSeriesRecord(providerType, currencyCode, currencySymbol));\r\n\r\n if (region.lat) {\r\n regionData.data.push(\r\n ChartFactory.createMapSeriesChildRecord(\r\n region.id,\r\n region.name || \"Unknown\",\r\n providerType,\r\n region.lat,\r\n region.long,\r\n regionTotals[regionTotalKey]\r\n )\r\n );\r\n }\r\n return obj;\r\n }, {})\r\n );\r\n series.unshift({\r\n name: \"Countries\",\r\n color: \"#E0E0E0\",\r\n enableMouseTracking: false,\r\n showInLegend: false,\r\n });\r\n return series;\r\n};\r\n\r\nexport default defineComponent({\r\n props: { items: Array },\r\n setup(p, { emit }) {\r\n const chartOptions = ref(\r\n ChartFactory.createMapChart({\r\n events: {\r\n pointClicked(eventData) {\r\n const outgoingEventData: IRegionClickedEventData = {\r\n regionName: eventData.name,\r\n providerType: eventData.series.name,\r\n };\r\n emit(\"click\", outgoingEventData);\r\n },\r\n },\r\n })\r\n );\r\n watch(\r\n () => p.items,\r\n (items: any) => {\r\n chartOptions.value.series = items;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n return { chartOptions };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionUsageChartCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionUsageChartCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegionUsageChartCard.vue?vue&type=template&id=351e30f8&\"\nimport script from \"./RegionUsageChartCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionUsageChartCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('content-card',{attrs:{\"title\":_vm.title || _vm.$t('regionsTableCard.title'),\"caption\":_vm.$t('regionsTableCard.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_vm._t(\"title-actions\")]},proxy:true}],null,true)},[_c('regions-table',_vm._g(_vm._b({},'regions-table',_vm.$props,false),_vm.$listeners))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.items,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc,\"search\":_vm.searchText},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event},\"update:search\":function($event){_vm.searchText=$event}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{staticClass:\"mb-3\",attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-text-field',{staticClass:\"mr-1\",attrs:{\"solo-inverted\":\"\",\"flat\":\"\",\"prepend-inner-icon\":\"search\",\"hide-details\":\"\",\"placeholder\":_vm.$t('regionsTable.search.placeholder'),\"label\":_vm.$t('regionsTable.search.title')},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1)]},proxy:true},{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('regionsTable.noRegions'))+\" \")]},proxy:true},{key:`item.geography`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/regionoverview/geographies/${item.providerType}:${item.geography}`}},[_vm._v(\" \"+_vm._s(item.geography)+\" \")])]}},{key:`item.name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/regionoverview/regions/${item.providerType}:${item.name}`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])]}},{key:`item.currentMonth`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.currentMonth,_vm.currencyCode))+\" \")]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { IRegionCostResult, IRegionResult } from '@/models';\r\n\r\nexport const convertRegionResultsToViewItems = (\r\n costs: IRegionCostResult,\r\n regions: IRegionResult[]\r\n): IRegionTableItemViewModel[] => {\r\n const regionTotals = costs.data.reduce((agg, val) => {\r\n const key = `${val.providerType}:${val.regionName}`.toUpperCase();\r\n agg[key] = val.totalCost;\r\n return agg;\r\n }, {});\r\n return regions.map((r) => ({\r\n ...r,\r\n currentMonth: regionTotals[r.id],\r\n }));\r\n};\r\n\r\nexport interface IRegionTableItemViewModel {\r\n geography: string;\r\n name: string;\r\n currentMonth: number;\r\n providerType: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n items: Array,\r\n loading: Boolean,\r\n currencyCode: String,\r\n },\r\n setup() {\r\n const sortedBy = ref('currentMonth');\r\n const sortedDesc = ref(true);\r\n const itemsPerPage = ref(10);\r\n const searchText = ref(null);\r\n return { sortedBy, sortedDesc, itemsPerPage, searchText };\r\n },\r\n data() {\r\n return {\r\n headers: [\r\n {\r\n text: this.$t('regionsTable.geography.title'),\r\n value: 'geography',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('name'),\r\n value: 'name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('regionsTable.currentMonth.title'),\r\n value: 'currentMonth',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('regionsTable.providerType.title'),\r\n value: 'providerType',\r\n sortable: true,\r\n },\r\n ],\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RegionsTable.vue?vue&type=template&id=568c5c76&scoped=true&\"\nimport script from \"./RegionsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegionsTable.vue?vue&type=style&index=0&id=568c5c76&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"568c5c76\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RegionsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport RegionsTable, { convertRegionResultsToViewItems } from '@/components/Domain.Regions/RegionsTable.vue';\r\nexport { convertRegionResultsToViewItems };\r\nimport { defineComponent } from 'vue';\r\nexport default defineComponent({\r\n components: { RegionsTable },\r\n props: { ...RegionsTable.props, title: String },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTableCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTableCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTableCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsTableCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RegionsTableCard.vue?vue&type=template&id=340a234c&\"\nimport script from \"./RegionsTableCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionsTableCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RegionsTableCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport RegionChartCard, {\r\n IRegionClickedEventData,\r\n convertRegionResultsToChartSeries,\r\n} from '@/components/Domain.Regions/RegionUsageChartCard.vue';\r\nimport RegionsTableCard, { convertRegionResultsToViewItems } from '@/components/Domain.Regions/RegionsTableCard.vue';\r\nimport moment from '@/lib/moment';\r\nimport { IRegionCostResult, IRegionResult } from '@/models';\r\nimport { defineComponent } from 'vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport CurrencyService from '@/lib/Currencies';\r\nimport { Fragment } from 'vue-fragment';\r\n\r\n\r\nexport default defineComponent({\r\n props: ['me'],\r\n components: { RegionsTableCard, RegionChartCard },\r\n title(ctx) {\r\n return ctx.$t('regionOverview.title');\r\n },\r\n data() {\r\n return {\r\n regions: [],\r\n regionMapData: [],\r\n filteredRegions: [],\r\n filteredRegionMapData: [],\r\n filterValue: null,\r\n };\r\n },\r\n created() {\r\n this.loadDataForView();\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n handleChartClick(data: IRegionClickedEventData) {\r\n const { providerType, regionName } = data;\r\n this.$router.push(`/regionoverview/regions/${providerType}:${regionName}`);\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/regionoverview');\r\n this.$title = this.$t('regionOverview.title');\r\n },\r\n async loadDataForView() {\r\n const [regions, costs, symbol] = await Promise.all([this.getAllRegions(), this.getRegionTotals(), CurrencyService.getCurrencySymbol(this.tenantStore.currencyCode)]);\r\n this.regions = convertRegionResultsToViewItems(costs, regions).filter(x => x.currentMonth > 0);\r\n this.filteredRegions = this.regions;\r\n this.regionMapData = convertRegionResultsToChartSeries(costs, regions, this.tenantStore.currencyCode, symbol);\r\n this.filteredRegionMapData = this.regionMapData;\r\n },\r\n getAllRegions: waitFor('loadingRegions', async function (): Promise {\r\n try {\r\n return await ApiV2.http.get('/api/regions').then((r) => r.data);\r\n } catch (error) {\r\n toastError(this.$t('regionOverview.error.loadingRegions'));\r\n }\r\n }),\r\n getRegionTotals: waitFor('loadingRegionTotals', async function (): Promise {\r\n try {\r\n const params = {\r\n min: moment.utc().add(-30, 'days').startOf('day').format(),\r\n max: moment.utc().endOf('day').format(),\r\n };\r\n return await ApiV2.http.get('/api/region/cost', { params }).then((r) => r.data);\r\n } catch (error) {\r\n toastError(this.$t('regionOverview.error.loadingRegionTotals'));\r\n }\r\n }),\r\n },\r\n watch: {\r\n filterValue: {\r\n handler(val) {\r\n if(val == \"\" || val == 0 ){\r\n this.filteredRegions = this.regions;\r\n this.filteredRegionMapData = this.regionMapData;\r\n return;\r\n }\r\n this.filteredRegions = this.regions.filter(x => x.currentMonth > val);\r\n // cheap and dirty deep clone\r\n const list = JSON.parse(JSON.stringify( this.regionMapData )).filter(x => (x.data && x.data?.some(y => y.z > val)) || !x.data);\r\n list.forEach(element => {\r\n if(element.data) {\r\n element.data = element.data.filter(x => x.z > val);\r\n }\r\n });\r\n this.filteredRegionMapData = list;\r\n }\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionOverview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionOverview.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionOverview.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionOverview.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RegionOverview.vue?vue&type=template&id=0e352584&\"\nimport script from \"./RegionOverview.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionOverview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RegionOverview.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('carbonDashboard.title'),\"icon\":\"co2\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":_vm.$t('carbonDashboard.titles.currentProjected', { thisMonthName: _vm.thisMonthName }),\"subtitle\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.currentTotalCo2E.toFixed(3))+\" t CO2e \")]},proxy:true},{key:\"subtitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.currentTotalKwH.toFixed(3))+\" kWh \")]},proxy:true}])}),_c('title-sheet',{attrs:{\"title\":_vm.$t('carbonDashboard.titles.previousTotal', { lastMonthName: _vm.lastMonthName }),\"subtitle\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.lastMonthCo2e.toFixed(3))+\" t CO2e \")]},proxy:true},{key:\"subtitle\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.lastMonthKwH.toFixed(3))+\" kWh \")]},proxy:true}])}),(_vm.tenantStore.features.includes('Recommendations/View'))?_c('title-sheet',{staticClass:\"hover_pointer\",attrs:{\"title\":_vm.$t('dashboard.titles.potentialSavings'),\"subtitle\":\"\"},nativeOn:{\"click\":function($event){return _vm.handleSavingsClicked()}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s((_vm.recommendationSummary.maximumEstimateImpactEmissions || 0.0).toFixed(4))+\"t CO2e \"),(_vm.recommendationSummary.includesElevatedSavings === true)?_c('span',[_vm._v(\"*\")]):_vm._e()]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('credential-status-icon',{attrs:{\"value\":_vm.recommendationStatus ? _vm.recommendationStatus.credentialStatus : null}}),_vm._v(\" \"+_vm._s(_vm.recommendationStatusText)+\" \")]},proxy:true}],null,false,1102994316)}):_vm._e()],1),_c('content-card',{attrs:{\"title\":_vm.$t('carbonDashboard.titles.cumulative'),\"title-icon\":\"co2\",\"loading\":_vm.$wait.is('getTenantMonthlyCO2e')}},[_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.fixedCarbonOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}})],1),_c('content-card',{staticClass:\"my-2\",attrs:{\"title\":\"Emissions by hierarchy\"}},[_c('tag-carbon-table',{attrs:{\"items\":_vm.tagTableItems,\"dimensions\":_vm.tagTableDimensions,\"currency-code\":_vm.tenantStore.currencyCode,\"loading\":_vm.$wait.is('loadingTagSpend')}})],1)],1),_c('CarbonMissingFooter'),_c('router-view',{on:{\"input\":_vm.handleDialogChange}}),_c('v-dialog',{attrs:{\"max-width\":\"500\"},model:{value:(_vm.isUsageDatasetWarningOpen),callback:function ($$v) {_vm.isUsageDatasetWarningOpen=$$v},expression:\"isUsageDatasetWarningOpen\"}},[_c('v-card',{attrs:{\"color\":\"#385F73\",\"dark\":\"\"}},[_c('v-card-title',{staticClass:\"text-h5\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"support_agent\")]),_vm._v(\" Upgrade to Cost and usage data\")],1),_c('v-card-subtitle',{staticClass:\"mt-1\"},[_vm._v(\"Your current plan does not support cost and usage data, which means you can't access granular recommendations. If you want insights on how to reduce emissions and save money please contact support for an upgraded plan.\")]),_c('v-card-actions',[_c('back-button',{on:{\"click\":function($event){_vm.isUsageDatasetWarningOpen = false}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"text\":\"\",\"href\":`mailto:${_vm.supportEmail}?subject=Support`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Contact\")],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import {\r\n Granularity,\r\n ICO2EAndConsumptionGroup,\r\n ICO2EResult,\r\n IForecastCo2eResult,\r\n ISpendAndConsumptionGroup,\r\n ISpendResult,\r\n} from \"@/models\";\r\nimport * as CssVariables from \"@/lib/CssVariables\";\r\nimport { Chart, ChartData, ChartDataset, Point } from \"chart.js/auto\";\r\nimport { LEGACY_COLORS_RGB } from \"./legacy\";\r\nimport pattern from \"patternomaly\";\r\nimport \"./dayJsAdapter\";\r\nimport htmlLegendPlugin from \"./legendPlugin\";\r\n\r\nexport type ReverseLookup = { [index: number]: string };\r\n\r\nconst TOTAL_ENERGY_ORDER = 1;\r\nconst PREFIX_PAD = 100;\r\nconst OTHERS_DATASET_ORDER = 99998;\r\nconst PROJECTIONS_DATASET_ORDER = 99999;\r\n\r\nexport interface IConvertUsageReportOpts {\r\n labelSuffix?: string | null;\r\n stackGroup?: string | null;\r\n colorsArray?: string[] | null;\r\n}\r\n\r\nexport const convertUsageResponseToEmissionsDatasets = (\r\n usageResult: ISpendResult | null,\r\n opts?: IConvertUsageReportOpts,\r\n): [ChartData<\"bar\" | \"line\", Point[], string>, ReverseLookup] => {\r\n const { labelSuffix, stackGroup, colorsArray } = opts || {};\r\n const datasets: ChartDataset<\"bar\" | \"line\", Point[]>[] = [];\r\n const lookup: ReverseLookup = {};\r\n const colours = colorsArray ? colorsArray : LEGACY_COLORS_RGB;\r\n (usageResult?.groupings || []).reverse().forEach((g, i) => {\r\n lookup[i + PREFIX_PAD] = g.id;\r\n const color = colours[i % colours.length];\r\n const fullColor = `rgb(${color})`;\r\n const dataset: ChartDataset<\"bar\", Point[]> = {\r\n data: [],\r\n label: (g.type === \"\" ? \"Tenant\" : g.name) +\r\n (labelSuffix ? ` (${labelSuffix})` : \"\"),\r\n backgroundColor: g.isOther\r\n ? pattern.draw(\"diagonal\", \"#87db79\", \"#313e4d\")\r\n : fullColor,\r\n borderColor: \"white\",\r\n hoverBackgroundColor: g.isOther\r\n ? pattern.draw(\"diagonal\", \"#FF10F0\", \"#313e4d\")\r\n : \"#FF10F0\",\r\n borderWidth: 1,\r\n order: g.isOther ? OTHERS_DATASET_ORDER : (PREFIX_PAD + i),\r\n stack: stackGroup ? stackGroup : \"stack0\",\r\n };\r\n g.usageRecords.forEach((u) => {\r\n dataset.data.push({\r\n x: new Date(u.usageDate).getTime(),\r\n y: u.cO2e,\r\n });\r\n });\r\n datasets.push(dataset);\r\n });\r\n const energyDataset: ChartDataset<\"line\", Point[]> = {\r\n data: usageResult.aggregateRecords.map((u) => ({\r\n x: new Date(u.usageDate).getTime(),\r\n y: u.kWh,\r\n })),\r\n label: \"Total Energy (kWh)\" + (labelSuffix ? ` (${labelSuffix})` : \"\"),\r\n type: \"line\",\r\n borderWidth: 3,\r\n backgroundColor: \"rgba(255, 0, 0, 0.8)\",\r\n borderColor: \"rgba(255, 0, 0, 0.8)\",\r\n fill: false,\r\n tension: 0.1,\r\n yAxisID: \"y2\",\r\n order: TOTAL_ENERGY_ORDER,\r\n };\r\n datasets.push(energyDataset);\r\n return [{\r\n labels: [],\r\n datasets,\r\n }, lookup];\r\n};\r\n\r\nexport const convertCO2eResponseToDatasets = (\r\n usageResult: ICO2EResult | null,\r\n hideKwh = false,\r\n): [ChartData<\"bar\" | \"line\", Point[], string>, ReverseLookup] => {\r\n const datasets: ChartDataset<\"bar\" | \"line\", Point[]>[] = [];\r\n const lookup: ReverseLookup = {};\r\n (usageResult?.groupings || []).reverse().forEach((g, i) => {\r\n lookup[i + PREFIX_PAD] = g.id;\r\n const color = LEGACY_COLORS_RGB[i % LEGACY_COLORS_RGB.length];\r\n const fullColor = `rgb(${color})`;\r\n const dataset: ChartDataset<\"bar\", Point[]> = {\r\n data: [],\r\n label: g.name,\r\n backgroundColor: g.isOther\r\n ? pattern.draw(\"diagonal\", \"#87db79\", \"#313e4d\")\r\n : fullColor,\r\n borderColor: \"white\",\r\n hoverBackgroundColor: g.isOther\r\n ? pattern.draw(\"diagonal\", \"#FF10F0\", \"#313e4d\")\r\n : \"#FF10F0\",\r\n borderWidth: 1,\r\n order: g.isOther ? OTHERS_DATASET_ORDER : (PREFIX_PAD + i),\r\n };\r\n g.records.forEach((u) => {\r\n dataset.data.push({\r\n x: new Date(u.usageDate).getTime(),\r\n y: u.cO2E,\r\n });\r\n });\r\n datasets.push(dataset);\r\n });\r\n if (!hideKwh) {\r\n const energyDataset: ChartDataset<\"line\", Point[]> = {\r\n data: usageResult.aggregateRecords.map((u) => ({\r\n x: new Date(u.usageDate).getTime(),\r\n y: u.kwH,\r\n })),\r\n label: \"Total Energy (kWh)\",\r\n type: \"line\",\r\n borderWidth: 3,\r\n backgroundColor: \"rgba(255, 0, 0, 0.8)\",\r\n borderColor: \"rgba(255, 0, 0, 0.8)\",\r\n fill: false,\r\n tension: 0.1,\r\n yAxisID: \"y2\",\r\n order: TOTAL_ENERGY_ORDER,\r\n };\r\n datasets.push(energyDataset);\r\n }\r\n return [{\r\n labels: [],\r\n datasets,\r\n }, lookup];\r\n};\r\n\r\nexport const convertProjectionsResponseToDataset = (\r\n projectionsResult: IForecastCo2eResult | null,\r\n): ChartData<\"bar\", Point[], string> => {\r\n const dataset: ChartDataset<\"bar\", Point[]> = {\r\n data: [],\r\n label: \"Forecast\",\r\n backgroundColor: pattern.draw(\"diagonal\", \"#3d3a60\", \"#fff\"),\r\n borderColor: \"white\",\r\n borderWidth: 1,\r\n order: PROJECTIONS_DATASET_ORDER,\r\n };\r\n (projectionsResult?.forecasts || []).forEach((u) => {\r\n const forecastTimestamp = new Date(u.usageDate).getTime();\r\n dataset.data.push({\r\n x: forecastTimestamp,\r\n y: u.forecast,\r\n });\r\n });\r\n return {\r\n labels: [],\r\n datasets: [dataset],\r\n };\r\n};\r\n\r\nexport interface IClickEvent {\r\n index: number;\r\n name: string;\r\n isOther: boolean;\r\n}\r\n\r\nexport interface IOptions {\r\n onClick?: (event: IClickEvent) => void;\r\n granularity: Granularity.daily | Granularity.monthly;\r\n type?: \"bar\" | \"line\";\r\n maxDate?: string;\r\n hideKwh: boolean;\r\n}\r\n\r\nexport default (\r\n chartItem: HTMLCanvasElement,\r\n options: IOptions,\r\n containerId: string,\r\n): Chart => {\r\n const { onClick, granularity, type, maxDate } = options;\r\n\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(\r\n CssVariables.ContrastLinesVariable,\r\n );\r\n const contrastText = style.getPropertyValue(\r\n CssVariables.ContrastTextVariable,\r\n );\r\n const onClickProcessor = (_, [element], chart) => {\r\n if (!element) return;\r\n const dataset = chart.data.datasets[element.datasetIndex];\r\n if (\r\n !dataset || dataset.order === PROJECTIONS_DATASET_ORDER ||\r\n dataset.order === TOTAL_ENERGY_ORDER\r\n ) return;\r\n if (onClick) {\r\n onClick({\r\n index: dataset.order,\r\n isOther: dataset.order === OTHERS_DATASET_ORDER,\r\n name: dataset.label,\r\n });\r\n }\r\n };\r\n const scales: any = {\r\n x: {\r\n type: \"time\",\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n },\r\n grid: {\r\n color: \"rgba(0, 0, 0, 0)\",\r\n },\r\n axis: \"x\",\r\n time: {\r\n unit: granularity == Granularity.monthly ? \"month\" : \"day\",\r\n },\r\n bounds: \"ticks\",\r\n max: new Date(maxDate ?? Date.now()).getTime(),\r\n },\r\n y: {\r\n type: \"linear\",\r\n stacked: true,\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return `${value.toFixed(4)} t CO2e`;\r\n },\r\n },\r\n grid: {\r\n color: contrastLines,\r\n },\r\n min: 0,\r\n axis: \"y\",\r\n title: {\r\n text: `Emissions (t CO2e)`,\r\n color: contrastText,\r\n display: true,\r\n },\r\n stack: \"y\",\r\n display: true,\r\n },\r\n };\r\n if (!options.hideKwh) {\r\n scales.y2 = {\r\n type: \"linear\",\r\n stacked: false,\r\n title: {\r\n text: \"Energy (kWh)\",\r\n display: true,\r\n color: contrastText,\r\n },\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return value.toFixed(2) + \" kWh\";\r\n },\r\n },\r\n position: \"right\",\r\n grid: {\r\n drawOnChartArea: false, // only want the grid lines for one axis to show up\r\n },\r\n };\r\n }\r\n const chart = new Chart(chartItem, {\r\n type: type || \"bar\",\r\n data: {\r\n labels: [],\r\n datasets: [],\r\n },\r\n options: {\r\n borderColor: \"rgba(0,0, 0, 0)\",\r\n plugins: {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: containerId,\r\n },\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: contrastText,\r\n },\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(item) {\r\n return [item.dataset.label];\r\n },\r\n afterLabel(item) {\r\n const dataset = item.dataset;\r\n const points: Point[] = dataset.data as any;\r\n const hoverPoint: Point = points[item.dataIndex];\r\n const datasetTotal = points.map((a: Point) => a.y)\r\n .reduce((a, b) => a + b);\r\n const datasetAverage = datasetTotal /\r\n dataset.data.length;\r\n const percentageOfAverage =\r\n (hoverPoint.y - datasetAverage) /\r\n datasetAverage * 100;\r\n return [\r\n `Total: ${hoverPoint.y.toFixed(8)} t CO2e`,\r\n `${\r\n percentageOfAverage > 0\r\n ? \"+\" + percentageOfAverage.toFixed(2)\r\n : percentageOfAverage.toFixed(2)\r\n }% vs. average`,\r\n ];\r\n },\r\n },\r\n mode: \"point\",\r\n },\r\n },\r\n interaction: {\r\n intersect: true,\r\n mode: \"dataset\",\r\n },\r\n onHover(event, [element]) {\r\n let newCursor = \"default\";\r\n if (element) {\r\n const dataset = chart.data.datasets[element.datasetIndex];\r\n if (\r\n dataset &&\r\n dataset.order !== PROJECTIONS_DATASET_ORDER &&\r\n dataset.order !== TOTAL_ENERGY_ORDER\r\n ) {\r\n newCursor = \"pointer\";\r\n }\r\n }\r\n (event.native.target as HTMLElement).style.cursor = newCursor;\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n onClick(_, [element], chart) {\r\n onClickProcessor(_, [element], chart);\r\n },\r\n scales,\r\n },\r\n plugins: [htmlLegendPlugin],\r\n });\r\n return chart;\r\n};\r\n","\r\nimport { defineComponent, ref, onMounted, watch } from 'vue';\r\nimport createEmissionBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToEmissionsDatasets,\r\n IClickEvent,\r\n ReverseLookup,\r\n} from '@/chartjs/createEmissionBarChart';\r\nimport { Granularity } from '@/models';\r\nexport {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToEmissionsDatasets,\r\n IClickEvent,\r\n ReverseLookup,\r\n};\r\n\r\nexport default defineComponent({\r\n props: {\r\n granularity: String,\r\n data: Object,\r\n height: String,\r\n maxDate: String,\r\n hideKwh: Boolean\r\n },\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n\r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.classList.add('chart-canvas');\r\n if (p.height === '100%') {\r\n canvas.value.classList.add('fill-height-srsly');\r\n root.value.classList.add('fill-height');\r\n canvasContainer.value.classList.add('fill-height-srsly');\r\n } else {\r\n canvas.value.style.height = p.height || '400px';\r\n }\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = p.height || '400px';\r\n \r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n const chart = createEmissionBarChart(canvas.value, {\r\n granularity: p.granularity as Granularity.daily | Granularity.monthly,\r\n onClick(event) {\r\n emit('click', event);\r\n },\r\n maxDate: p.maxDate,\r\n hideKwh: p.hideKwh || false\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n '$vuetify.theme.dark': {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonBarChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonBarChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CarbonBarChart.vue?vue&type=template&id=5ef842bf&\"\nimport script from \"./CarbonBarChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonBarChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.items,\"footer-props\":{\n itemsPerPageOptions: [25, 50, 100, -1],\n }},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(!_vm.items)?_c('div',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"query_builder\")]),_vm._v(\"Waiting for query\")],1):_c('div',[_c('v-icon',{attrs:{\"color\":\"warning\",\"left\":\"\"}},[_vm._v(\"warning\")]),_c('span',{staticClass:\"warning--text\"},[_vm._v(\"There is no data for this tag\")])],1)]},proxy:true},{key:`item.tagKey1`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/explore/tagkeys/${encodeURIComponent(item.tagKey1.tagKey)}/tag/${encodeURIComponent(\n item.tagKey1.tagKey\n )}:${encodeURIComponent(item.tagKey1.tagValue)}/carbon`}},[_vm._v(_vm._s(item.tagKey1.tagValue))])]}},{key:`item.tagKey2`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/explore/tagkeys/${encodeURIComponent(item.tagKey2.tagKey)}/tag/${encodeURIComponent(\n item.tagKey2.tagKey\n )}:${encodeURIComponent(item.tagKey2.tagValue)}/carbon`}},[_vm._v(_vm._s(item.tagKey2.tagValue))])]}},{key:`item.tagKey3`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/explore/tagkeys/${encodeURIComponent(item.tagKey3.tagKey)}/tag/${encodeURIComponent(\n item.tagKey3.tagKey\n )}:${encodeURIComponent(item.tagKey3.tagValue)}/carbon`}},[_vm._v(_vm._s(item.tagKey3.tagValue))])]}},_vm._l((_vm.usageHeaders),function(slot,i){return {key:`item.${slot.value}`,fn:function({ item }){return [_c('p',{key:i,staticClass:\"pa-0 ma-0\"},[_vm._v(\" \"+_vm._s((item.co2e[slot.value] || 0).toFixed(8))+\" t CO2e \"),_c('br'),_c('span',{staticClass:\"text-caption grey--text\"},[_vm._v(\" \"+_vm._s((item.kwH[slot.value] || 0).toFixed(4))+\" kWh \")])])]}}})],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Downloader from '@/lib/Downloader';\r\nimport moment from '@/lib/moment';\r\nimport { IAllTagsRequestResult, ICO2EByTagResult, ITagDimension } from '@/models';\r\n\r\nexport const convertAllTagsResultToLookup = (result: IAllTagsRequestResult): { [tagId: string]: string } => {\r\n return result.data.reduce((obj, item) => {\r\n obj[`${item.key}:${item.value}`] = item.id;\r\n return obj;\r\n }, {});\r\n};\r\n\r\nexport const convertCarbonByTagResultToDimensions = (result: ICO2EByTagResult): ITagDimension[] => {\r\n if (!result?.data?.length) return [];\r\n return result.data[0].rowDimensions;\r\n};\r\n\r\nexport interface ITagCarbonTableItemViewModel {\r\n tagKey1: ITagDimension;\r\n tagKey2: ITagDimension | null;\r\n tagKey3: ITagDimension | null;\r\n co2e: { [usageKey: string]: number };\r\n kwH: { [usageKey: string]: number };\r\n}\r\n\r\nexport const convertCarbonByTagResultToItems = (result: ICO2EByTagResult): ITagCarbonTableItemViewModel[] => {\r\n if (!result?.data?.length) {\r\n return [];\r\n }\r\n const rowMap = new Map();\r\n result.data.forEach((item) => {\r\n const usageKey = item.usageDate.substring(0, 7);\r\n const rowKey = ''.concat(\r\n item.rowDimensions[0].tagValue,\r\n item.rowDimensions[1] != null ? item.rowDimensions[1].tagValue : '_null',\r\n item.rowDimensions[2] != null ? item.rowDimensions[2].tagValue : '_null'\r\n );\r\n const co2e = item.co2e;\r\n const kwH = item.kwH;\r\n if (!rowMap.has(rowKey)) {\r\n const row1: ITagCarbonTableItemViewModel = {\r\n tagKey1: item.rowDimensions[0],\r\n tagKey2: item.rowDimensions[1] != null ? item.rowDimensions[1] : null,\r\n tagKey3: item.rowDimensions[2] != null ? item.rowDimensions[2] : null,\r\n co2e: { [usageKey]: co2e },\r\n kwH: { [usageKey]: kwH },\r\n };\r\n rowMap.set(rowKey, row1);\r\n } else {\r\n const row = rowMap.get(rowKey);\r\n row.co2e[usageKey] = co2e;\r\n row.kwH[usageKey] = kwH;\r\n }\r\n });\r\n return [...rowMap.entries()].map(([, v]) => v);\r\n};\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n dimensions: Array,\r\n currencyCode: String,\r\n loading: Boolean,\r\n },\r\n computed: {\r\n usageHeaders() {\r\n return this.headers.filter((h) => !h.value.startsWith('tagKey'));\r\n },\r\n headers() {\r\n if (!this.dimensions || !this.items) return [];\r\n\r\n const headers = [];\r\n this.dimensions.forEach((d: ITagDimension | undefined | null, i: number) => {\r\n if (d) {\r\n headers.push({\r\n text: d.tagKey,\r\n value: `tagKey${i + 1}`,\r\n sortable: true,\r\n index: new Date(-8640000000000000 + i),\r\n });\r\n }\r\n });\r\n\r\n const headerMap = new Set();\r\n this.items.forEach((item: ITagCarbonTableItemViewModel) => {\r\n Object.keys({ ...item.co2e, ...item.kwH }).forEach((key) => {\r\n if (!headerMap.has(key)) {\r\n headerMap.add(key);\r\n headers.push({\r\n text: key,\r\n value: key,\r\n sortable: false,\r\n index: moment.utc(key).toDate(),\r\n });\r\n }\r\n });\r\n });\r\n return headers.sort((a, b) => a.index - b.index);\r\n },\r\n },\r\n methods: {\r\n exportCsv() {\r\n const headerValues: string[] = this.headers.map((i) => i.value);\r\n const csvValues: string[][] = this.items.map((record: ITagCarbonTableItemViewModel) =>\r\n headerValues.map((header: string) => {\r\n if (header.startsWith('tagKey')) {\r\n const dimension = record[header] as ITagDimension;\r\n return dimension.tagValue;\r\n } else {\r\n return record.co2e[header];\r\n }\r\n })\r\n );\r\n csvValues.unshift(this.headers.map((i) => i.text));\r\n Downloader.exportCSV(csvValues, `TagOverview.csv`);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagCarbonTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagCarbonTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TagCarbonTable.vue?vue&type=template&id=126b43bc&\"\nimport script from \"./TagCarbonTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagCarbonTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-footer',[_vm._v(\" Best efforts are made to keep emissions data up to date and accurate, however not all products can be accounted for. To see a breakdown of the total unaccounted emissions data please click here: \"),_c('a',{attrs:{\"href\":\"javascript:;\"},on:{\"click\":function($event){_vm.isViewingDialog = true}}},[_vm._v(\"View Report\")]),_vm._v(\". \")]),_c('CarbonMissingMappingDialog',{model:{value:(_vm.isViewingDialog),callback:function ($$v) {_vm.isViewingDialog=$$v},expression:\"isViewingDialog\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('CarbonMissingMappingCard',{attrs:{\"loading\":_vm.$wait.is('deleteAccount'),\"items\":_vm.items,\"title\":_vm.$t('carbonMissingMappingDialog.title'),\"subtitle\":_vm.$t('carbonMissingMappingDialog.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer')]},proxy:true}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Product\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Un-accounted spend\")])])]),_c('tbody',_vm._l((_vm.items),function(item,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(item.productName))]),_c('td',[_vm._v(_vm._s(_vm._f(\"currency\")(item.spend,_vm.currencyCode)))])])}),0)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport { useTenantStore } from \"@/stores/tenant\";\r\nimport { storeToRefs } from \"pinia\";\r\nexport default defineComponent({\r\n props: {\r\n loading: Boolean,\r\n items: Array,\r\n title: String,\r\n subtitle: String,\r\n },\r\n setup(_, { emit }) {\r\n const handleInput = (val) => {\r\n emit(\"input\", val);\r\n };\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n return {\r\n valid: ref(false),\r\n currencyCode,\r\n handleInput,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CarbonMissingMappingCard.vue?vue&type=template&id=188cc089&\"\nimport script from \"./CarbonMissingMappingCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonMissingMappingCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CarbonMissingMappingCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CarbonMissingMappingCard from \"@/components/Domain.Carbon/CarbonMissingMappingCard.vue\";\r\nimport { defineComponent, ref, watch } from \"vue\";\r\nimport { getMissingCo2eReport } from \"@/lib/Api\";\r\nimport { ISpendParameters, Granularity } from \"@/models\";\r\nexport default defineComponent({\r\n components: { CarbonMissingMappingCard },\r\n props: {\r\n value: Boolean,\r\n },\r\n setup(p) {\r\n const fromDate = new Date();\r\n fromDate.setMonth(fromDate.getMonth() - 3);\r\n const fixedParameters: Partial = {\r\n fromDate: fromDate.toISOString(),\r\n toDate: new Date().toISOString(),\r\n granularity: Granularity.monthly,\r\n };\r\n const items = ref([]);\r\n watch(\r\n () => p.value,\r\n async (val, oldVal) => {\r\n if (!val || oldVal) return;\r\n getMissingCo2eReport(fixedParameters).then((r) => {\r\n items.value = r;\r\n });\r\n },\r\n { immediate: true }\r\n );\r\n\r\n return { items };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingDialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingMappingDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CarbonMissingMappingDialog.vue?vue&type=template&id=6191d0ff&\"\nimport script from \"./CarbonMissingMappingDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonMissingMappingDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CarbonMissingMappingDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport CarbonMissingMappingDialog from \"@/components/Domain.Carbon/CarbonMissingMappingDialog.vue\";\r\n\r\nexport default defineComponent({\r\n components: { CarbonMissingMappingDialog },\r\n setup() {\r\n const isViewingDialog = ref(false);\r\n return { isViewingDialog };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingFooter.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonMissingFooter.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CarbonMissingFooter.vue?vue&type=template&id=586b72c8&\"\nimport script from \"./CarbonMissingFooter.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonMissingFooter.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { defineComponent } from 'vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport moment from '@/lib/moment';\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n} from '@/components/Domain.Carbon/CarbonBarChart.vue';\r\nimport { convertSpendOptionsToQuery } from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport TagCarbonTable, {\r\n convertCarbonByTagResultToDimensions,\r\n convertCarbonByTagResultToItems,\r\n} from '@/components/Domain.Tags/TagCarbonTable.vue';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { ICO2EByTagResult, Granularity } from '@/models';\r\nimport { getCO2e, getForecastCO2e } from '@/lib/Api';\r\nimport CarbonMissingFooter from '@/components/Domain.Carbon/CarbonMissingFooter.vue';\r\nimport Config from '@/lib/Config';\r\n\r\nexport default defineComponent({\r\n props: ['me'],\r\n title(ctx) {\r\n return ctx.$t('carbonDashboard.title');\r\n },\r\n components: {\r\n CarbonBarChart,\r\n TagCarbonTable,\r\n CarbonMissingFooter,\r\n },\r\n created() {\r\n this.getTagCarbonData();\r\n this.getFixedCO2EForTenant(this.fixedCarbonOptions);\r\n this.getRecommendationSummary();\r\n this.getRecommendationStatus();\r\n },\r\n data() {\r\n return {\r\n thisMonthName: moment.utc().format('MMMM'),\r\n lastMonthName: moment.utc().add(-1, 'months').format('MMMM'),\r\n\r\n currentTotalCo2E: 0.0,\r\n currentTotalKwH: 0.0,\r\n lastMonthCo2e: 0.0,\r\n lastMonthKwH: 0.0,\r\n\r\n cummulativeCo2E: 0.0,\r\n cummulativeKwH: 0.0,\r\n\r\n fixedCarbonOptions: {\r\n dateRangeKey: '12m',\r\n granularity: Granularity.monthly,\r\n topXResults: 30,\r\n segregateBy: 'products',\r\n },\r\n newChartData: { datasets: [], labels: [] },\r\n maxDate: undefined,\r\n datasetIndexes: null,\r\n tagTableItems: [],\r\n tagTableDimensions: [],\r\n recommendationSummary: {},\r\n recommendationStatus: {},\r\n\r\n isUsageDatasetWarningOpen: false,\r\n supportEmail: Config.get().SUPPORT_EMAIL,\r\n };\r\n },\r\n watch: {\r\n carbonOptions: {\r\n handler(options) {\r\n if (!options) return;\r\n if (this.$wait.is('getTenantMonthlyCO2E')) return;\r\n this.getCO2EForTenant(options);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n recommendationStatusText() {\r\n if (this.$wait.is('getRecommendationStatus') || !this.recommendationStatus) {\r\n return this.$t('dashboard.recommendationStatus.loading');\r\n }\r\n const value = this.recommendationStatus.credentialStatus;\r\n if (value === undefined) {\r\n return this.$t('dashboard.recommendationStatus.unknown');\r\n }\r\n if (value === 0 || value === 'Unavailable') {\r\n return this.$t('dashboard.recommendationStatus.unavailable');\r\n }\r\n if (value === 1 || value === 'AllGood') {\r\n return this.$t('dashboard.recommendationStatus.allGood');\r\n }\r\n if (value === 2 || value === 'PartiallyGood') {\r\n return this.$t('dashboard.recommendationStatus.partiallyGood');\r\n }\r\n if (value === 3 || value === 'ActionRequired') {\r\n return this.$t('dashboard.recommendationStatus.actionRequired');\r\n }\r\n return this.$t('dashboard.recommendationStatus.unknown');\r\n },\r\n },\r\n methods: {\r\n getFixedCO2EForTenant: waitFor('getTenantMonthlyCO2E', async function getFixedCO2EForTenant(options) {\r\n const usageParams = convertSpendOptionsToQuery(options);\r\n if (!usageParams) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(options.segregateBy, usageParams),\r\n getForecastCO2e(usageParams, options.dateRangeKey),\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(carbonResponse);\r\n this.datasetIndexes = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n this.newChartData = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n this.maxDate = forecastResponse?.maxUsageDate || usageParams.toDate;\r\n this.cummulativeCo2E = carbonResponse.totalCO2E;\r\n this.cummulativeKwH = carbonResponse.totalKwH;\r\n const tm = moment.utc();\r\n const lm = moment.utc().add(-1, 'months');\r\n this.currentTotalCo2E = carbonResponse.monthlyCO2ETotals?.[tm.format('YYYY')]?.[tm.format('MM')] || 0.0;\r\n this.currentTotalKwH = carbonResponse.monthlyKwHTotals?.[tm.format('YYYY')]?.[tm.format('MM')] || 0.0;\r\n this.lastMonthCo2e = carbonResponse.monthlyCO2ETotals?.[lm.format('YYYY')]?.[lm.format('MM')] || 0.0;\r\n this.lastMonthKwH = carbonResponse.monthlyKwHTotals?.[lm.format('YYYY')]?.[lm.format('MM')] || 0.0;\r\n }),\r\n getTagCarbonData: waitFor('loadingTagCarbon', async function loadTagSpend() {\r\n try {\r\n const min = moment.utc().add(-3, 'months').startOf('month').toISOString();\r\n const max = moment.utc().endOf('month').toISOString();\r\n const dims = this.tenantStore.getHierarchy().join(',');\r\n const tagUsageData: ICO2EByTagResult = await ApiV2.http\r\n .get(`/api/report/tagoverview/co2e?min=${min}&max=${max}&dimensions=${dims}`)\r\n .then((resp) => resp.data);\r\n this.tagTableItems = convertCarbonByTagResultToItems(tagUsageData);\r\n this.tagTableDimensions = convertCarbonByTagResultToDimensions(tagUsageData);\r\n } catch (err) {\r\n toastError('There was an issue loading the data.');\r\n this.tagTableItems = [];\r\n this.tagTableDimensions = [];\r\n this.tagChartItems = [];\r\n this.filterPanels = 0;\r\n }\r\n }),\r\n handleDatasetClicked({ index, isOther }) {\r\n if (isOther) {\r\n this.fixedCarbonOptions.topXResults = this.fixedCarbonOptions.topXResults + 10;\r\n } else if (this.fixedCarbonOptions.segregateBy?.startsWith('tags') || false) {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n const tag = `${encodeURIComponent(this.tagKey)}:${encodeURIComponent(datasetGroupId)}`;\r\n this.$router.push(`/emissions/overview/tagkeys/${encodeURIComponent(this.tagKey)}/tag/${tag}/carbon`);\r\n } else {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n this.$router.push(\r\n `/emissions/overview/${this.fixedCarbonOptions.segregateBy}/${datasetGroupId}/carbon`\r\n );\r\n }\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/emissions/overview');\r\n this.$title = this.$t('carbonDashboard.title');\r\n },\r\n getRecommendationSummary: waitFor('getRecommendationSummary', async function getRecommendationSummary() {\r\n if (this.tenantStore.features.includes('Recommendations/View')) {\r\n this.recommendationSummary = await ApiV2.http\r\n .get('/api/recommendations/summary')\r\n .then((r) => r.data.data);\r\n } else {\r\n this.recommendationSummary = {};\r\n }\r\n }),\r\n getRecommendationStatus: waitFor('getRecommendationStatus', async function getRecommendationStatus() {\r\n if (this.tenantStore.features.includes('Recommendations/View')) {\r\n this.recommendationStatus = await ApiV2.http\r\n .get('/api/recommendations/credentialstatus')\r\n .then((r) => r.data);\r\n } else {\r\n this.recommendationStatus = {};\r\n }\r\n }),\r\n handleSavingsClicked() {\r\n const { hasUsageDataset } = useDatasetState(this.tenantStore);\r\n if (hasUsageDataset) {\r\n if (this.recommendationStatus.credentialStatus > 1) {\r\n this.$router.push('/settings');\r\n } else {\r\n this.$router.push('/recommendations');\r\n }\r\n } else {\r\n this.isUsageDatasetWarningOpen = true;\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=3b15f206&\"\nimport script from \"./Overview.vue?vue&type=script&lang=ts&\"\nexport * from \"./Overview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Overview.vue?vue&type=style&index=0&id=3b15f206&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Overview.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('emissionsExplorer.title'),\"icon\":\"insights\",\"extended\":\"\"}},[_c('v-tabs',{attrs:{\"background-color\":\"transparent\",\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(t){return _c('v-tab',{key:t.key,attrs:{\"to\":t.to,\"disabled\":_vm.$wait.is('gettingCarbonRecords')}},[(t.icon)?_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(_vm._s(t.icon))]):_vm._e(),_vm._v(\" \"+_vm._s(t.title)+\" \")],1)}),1)],1),_c('v-container',[_c('content-card',{attrs:{\"title\":_vm.chartTitle,\"title-icon\":\"co2\",\"loading\":_vm.$wait.is('gettingCarbonRecords')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\",\"aria-label\":\"Star explorer tab\",\"title\":\"Star explorer tab\",\"role\":\"button\"},on:{\"click\":function($event){_vm.starred = !_vm.starred}}},[_c('v-icon',{attrs:{\"color\":_vm.starred ? 'yellow' : undefined}},[_vm._v(\"star\")])],1)]},proxy:true}])},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{attrs:{\"loading\":_vm.$wait.is('gettingCarbonRecords'),\"date-supported-keys\":['30d', '60d', '6m', 'custom'],\"hide-segregation\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.carbonOptions),callback:function ($$v) {_vm.carbonOptions=$$v},expression:\"carbonOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.carbonOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{attrs:{\"items\":_vm.groupingItems,\"currency-code\":_vm.tenantStore.currencyCode,\"segregate-by\":_vm.carbonOptions.segregateBy,\"name-header-title\":_vm.currentHeaderName,\"tag-key\":_vm.tagKey}})],1)],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{staticClass:\"my-2\"},[(!_vm.hideExport)?_c('template',{slot:\"title-actions\"},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\"},on:{\"click\":function($event){return _vm.exportCsv()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_download\")]),_vm._v(\" \"+_vm._s(_vm.$t('carbonTable.exportText.btnText'))+\" \")],1)],1):_vm._e(),_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.records,\"loading\":_vm.loading,\"dense\":\"\",\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"items-per-page\":_vm.itemsPerPage,\"hide-default-footer\":_vm.hideDefaultFooter},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event}},scopedSlots:_vm._u([{key:`item.name`,fn:function({ item }){return [(_vm.segregateBy === 'meters')?_c('p',{staticClass:\"pa-0 ma-0\"},[_vm._v(\" \"+_vm._s(item.name)+\" \"),_c('br'),_c('span',{staticClass:\"text-caption grey--text\"},[_vm._v(\" \"+_vm._s(item.unit)+\" \")])]):(item.isOther || _vm.items.noFollow || _vm.disableLinks)?_c('span',[_vm._v(\" \"+_vm._s(item.name))]):(_vm.segregateBy == 'tags')?_c('router-link',{attrs:{\"to\":`/emissions/explore/tagkeys/${encodeURIComponent(_vm.tagKey)}/tag/${encodeURIComponent(\n item.id\n )}/carbon`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")]):_c('router-link',{attrs:{\"to\":`/emissions/explore/${_vm.segregateBy}/${item.id}/carbon`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])]}},{key:`item.totalCO2e`,fn:function({ item }){return [_c('p',{staticClass:\"pa-0 ma-0\"},[_vm._v(\" \"+_vm._s(item.totalCO2e.toFixed(8))+\" t CO2e \"),_c('br'),(!_vm.hideKwh)?_c('span',{staticClass:\"text-caption grey--text\"},[_vm._v(\" \"+_vm._s((item.totalKwH || 0).toFixed(4))+\" kWh \")]):_vm._e()])]}},_vm._l((_vm.monthSlots),function(slot,i){return {key:slot.itemSlotName,fn:function({ item }){return [_c('p',{key:i + '_p',staticClass:\"pa-0 ma-0\"},[_vm._v(\" \"+_vm._s(item[slot.itemValuePropName].toFixed(8))+\" t CO2e \"),_c('br'),(!_vm.hideKwh)?_c('span',{staticClass:\"text-caption grey--text\"},[_vm._v(\" \"+_vm._s((item[slot.itemValuePropName + '_kWh'] || 0).toFixed(4))+\" kWh \")]):_vm._e()])]}}})],null,true)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport moment from '@/lib/moment';\r\nimport Downloader from '@/lib/Downloader';\r\nimport { ISpendParameters, ICO2EResult, ICO2EAndConsumptionGroup, ISpendResult, ISpendAndConsumptionGroup } from '@/models';\r\n\r\nexport interface ICarbonTableItemViewModel {\r\n id: string;\r\n name: string;\r\n totalCO2e: number;\r\n totalKwH: number;\r\n isOther: boolean;\r\n totalConsumption: number;\r\n unit: string;\r\n}\r\n\r\nexport interface ICarbonTableSlotViewModel {\r\n header: string;\r\n year: string;\r\n month: string;\r\n itemSlotName: string;\r\n itemValuePropName: string;\r\n}\r\n\r\nexport interface ICarbonTableRecordsViewModel {\r\n monthSlots: ICarbonTableSlotViewModel[];\r\n records: ICarbonTableItemViewModel[];\r\n}\r\n\r\nexport function convertToEmissionsItemRecords(params:ISpendParameters, response: ISpendResult | null): ICarbonTableRecordsViewModel {\r\n const monthSlots = slotsForMonthColumns(params);\r\n\r\n const records = [];\r\n for (const r of response.groupings) {\r\n const record: ICarbonTableItemViewModel | { [key: string]: number } = {\r\n id: r.id,\r\n name: r.name,\r\n totalCO2e: r.totalCo2e || 0.0,\r\n totalKwH: r.totalKwH || 0.0,\r\n totalConsumption: r.totalConsumption,\r\n isOther: r.isOther,\r\n unit: r.unit || '',\r\n };\r\n for (const slot of monthSlots) {\r\n const monthlyCO2eForYear = (r.monthlyCO2eTotals || {})[slot.year] || {};\r\n const monthlyKwHForYear = (r.monthlyKwHTotals || {})[slot.year] || {};\r\n if (monthlyCO2eForYear) {\r\n record[slot.itemValuePropName] = monthlyCO2eForYear[slot.month] || 0;\r\n record[slot.itemValuePropName + '_kWh'] = monthlyKwHForYear[slot.month] || null;\r\n } else {\r\n record[slot.itemValuePropName] = 0;\r\n record[slot.itemValuePropName + '_kWh'] = null;\r\n }\r\n }\r\n records.push(record);\r\n }\r\n\r\n return { monthSlots, records };\r\n}\r\n\r\nexport function convertToItemRecords(\r\n params: ISpendParameters,\r\n response: ICO2EResult\r\n): ICarbonTableRecordsViewModel {\r\n const monthSlots = slotsForMonthColumns(params);\r\n\r\n const records = [];\r\n for (const r of response.groupings) {\r\n const record: ICarbonTableItemViewModel | { [key: string]: number } = {\r\n id: r.id,\r\n name: r.name,\r\n totalCO2e: r.totalCo2e,\r\n totalKwH: r.totalKwH,\r\n totalConsumption: r.totalConsumption,\r\n isOther: r.isOther,\r\n unit: r.unit || '',\r\n };\r\n for (const slot of monthSlots) {\r\n const monthlyCO2eForYear = (r.monthlyCO2eTotals || {})[slot.year] || {};\r\n const monthlyKwHForYear = (r.monthlyKwHTotals || {})[slot.year] || {};\r\n if (monthlyCO2eForYear) {\r\n record[slot.itemValuePropName] = monthlyCO2eForYear[slot.month] || 0;\r\n record[slot.itemValuePropName + '_kWh'] = monthlyKwHForYear[slot.month] || null;\r\n } else {\r\n record[slot.itemValuePropName] = 0;\r\n record[slot.itemValuePropName + '_kWh'] = null;\r\n }\r\n }\r\n records.push(record);\r\n }\r\n\r\n return { monthSlots, records };\r\n}\r\n\r\nfunction slotsForMonthColumns(params: ISpendParameters): ICarbonTableSlotViewModel[] {\r\n const fromDate = moment.utc(params.fromDate);\r\n const toDate = moment.utc(params.toDate);\r\n const fromMonth = moment.utc(params.fromDate).startOf('month');\r\n const toMonth = moment.utc(params.toDate).startOf('month');\r\n\r\n const slots = [];\r\n let date = fromMonth;\r\n for (let i = 0; !date.isAfter(toMonth); ++i) {\r\n const monthYear = date.format('MMM YYYY');\r\n const endOfMonth = date.endOf('month');\r\n\r\n let partialFromDayOfMonth;\r\n if (fromDate.isAfter(date, 'day')) {\r\n // The filter from date is after the start of this month.\r\n partialFromDayOfMonth = fromDate.format('D');\r\n }\r\n\r\n let partialToDayOfMonth;\r\n if (toDate.isBefore(endOfMonth, 'day')) {\r\n // The filter to date is before the end of this month.\r\n partialToDayOfMonth = toDate.format('D');\r\n }\r\n\r\n let header: string;\r\n if (partialFromDayOfMonth && partialToDayOfMonth) {\r\n // This month is partial on both sides.\r\n header = `${partialFromDayOfMonth}-${partialToDayOfMonth} ${monthYear}`;\r\n } else if (partialFromDayOfMonth) {\r\n // This month is partial, starting somewhere in the middle.\r\n header = `${partialFromDayOfMonth}-${endOfMonth.format('D')} ${monthYear}`;\r\n } else if (partialToDayOfMonth) {\r\n // This month is partial, ending somewhere in the middle.\r\n header = `${date.format('D')}-${partialToDayOfMonth} ${monthYear}`;\r\n } else {\r\n // This is a full month's worth of charges.\r\n header = monthYear;\r\n }\r\n\r\n const slot = {\r\n header,\r\n // Keys for navigating the API response:\r\n year: date.format('YYYY'),\r\n month: date.format('MM'),\r\n // Vue data table slots:\r\n itemSlotName: `item.month${i}`,\r\n itemValuePropName: `month${i}`,\r\n };\r\n slots.push(slot);\r\n date = date.add(1, 'M');\r\n }\r\n return slots;\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Object,\r\n loading: Boolean,\r\n segregateBy: String,\r\n nameHeaderTitle: String,\r\n tagKey: String,\r\n cardTitleText: String,\r\n itemsPerPage: {\r\n type: Number,\r\n default: 10,\r\n },\r\n disableLinks: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n hideDefaultFooter: Boolean,\r\n hideExport: Boolean,\r\n hideKwh: Boolean\r\n },\r\n data() {\r\n return {\r\n sortBy: 'totalCO2e',\r\n sortDesc: true,\r\n };\r\n },\r\n computed: {\r\n headers() {\r\n const headers = [{ text: this.nameHeaderTitle || 'Name', value: 'name' }];\r\n const monthSlots = this.items?.monthSlots || [];\r\n for (const slot of monthSlots) {\r\n headers.push({ text: slot.header, value: slot.itemValuePropName });\r\n }\r\n headers.push({ text: 'Total', value: 'totalCO2e' });\r\n return headers;\r\n },\r\n records() {\r\n return this.items?.records || [];\r\n },\r\n monthSlots() {\r\n return this.items?.monthSlots || [];\r\n },\r\n },\r\n methods: {\r\n exportCsv() {\r\n const headerValues = this.headers.map((i) => i.value);\r\n const csvValues = this.records.map((i) => headerValues.map((k) => i[k]));\r\n csvValues.unshift(this.headers.map((i) => i.text));\r\n Downloader.exportCSV(csvValues, 'usage-by-' + this.segregateBy + '.csv');\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CarbonTable.vue?vue&type=template&id=6f7cd5fc&\"\nimport script from \"./CarbonTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import Dexie, { Table } from 'dexie';\r\nimport { stringToUint, blobToString } from '@/lib/Uint';\r\n\r\nexport interface IKeyedBlobModel {\r\n key: string;\r\n value: Blob;\r\n}\r\n\r\nexport class KeyedBlobsDb extends Dexie {\r\n blobs!: Table;\r\n constructor() {\r\n super('keyedBlobs');\r\n this.version(1).stores({\r\n blobs: 'key',\r\n });\r\n }\r\n\r\n async listBlobsWithPrefix(prefix: string): Promise<[string, Blob][]> {\r\n const blobs = await this.blobs.where('key').startsWith(prefix).toArray();\r\n return blobs.map((b) => [b.key, b.value]);\r\n }\r\n\r\n async getBlob(key: string): Promise {\r\n return await this.blobs.get(key).then((r) => r?.value || null);\r\n }\r\n\r\n async getJson(key:string): Promise {\r\n const blob = await this.getBlob(key);\r\n if (!blob) return null;\r\n const json = await blob.text();\r\n return JSON.parse(json);\r\n }\r\n\r\n async putJson(key:string, data:TType): Promise {\r\n const jsonString = JSON.stringify(data);\r\n const jsonBlob = new Blob([jsonString], { type: 'application/json' });\r\n return this.putBlob(key, jsonBlob);\r\n }\r\n\r\n async putBlob(key: string, value: Blob): Promise {\r\n await this.blobs.put({ key, value }, key);\r\n }\r\n\r\n async listDocsWithPrefix(prefix: string): Promise<[string, TType][]> {\r\n const blobs = await this.listBlobsWithPrefix(prefix);\r\n const docs: [string, TType][] = [];\r\n for (const [key, blob] of blobs) {\r\n const buffer = await blob.arrayBuffer();\r\n const array = new Uint8Array(buffer).toString();\r\n const doc = JSON.parse(array) as TType;\r\n docs.push([key, doc]);\r\n }\r\n return docs;\r\n }\r\n\r\n async getDoc(key: string): Promise {\r\n const blob = await this.getBlob(key);\r\n if (!blob) return null;\r\n const stringBlob = (await blobToString(blob)) as string;\r\n\r\n return JSON.parse(stringBlob);\r\n }\r\n\r\n async putDoc(key: string, doc: TType): Promise {\r\n const array = await stringToUint(JSON.stringify(doc));\r\n const blob = new Blob([array]);\r\n await this.putBlob(key, blob);\r\n }\r\n\r\n async changeDoc(\r\n key: string,\r\n p: { changeFn?: (doc: TType) => TType | void; initFn: () => TType }\r\n ): Promise {\r\n // TODO: Want to use dexie tx's just hitting issue w/ `blob.arrayBuffer` promise.\r\n const { changeFn, initFn } = p;\r\n\r\n let doc1: TType = await this.getDoc(key),\r\n doc2 = doc1;\r\n\r\n let inited = false;\r\n if (!doc1) {\r\n doc1 = initFn();\r\n inited = true;\r\n }\r\n let changed = false;\r\n if (changeFn) {\r\n const result = changeFn(doc1);\r\n if (result) {\r\n doc2 = result;\r\n changed = true;\r\n }\r\n }\r\n if (inited || (doc2 && changed)) {\r\n await this.putDoc(key, doc2 || doc1);\r\n }\r\n const final = doc2 || doc1;\r\n return final;\r\n }\r\n}\r\n\r\nexport default new KeyedBlobsDb();\r\n","import KeyedBlobs from \"@/databases/KeyedBlobsDb\";\r\n\r\nexport interface IUserPreferences {\r\n costExplorerTab?: string | number | null;\r\n starredCostExplorerTab?: string | number | null;\r\n}\r\n\r\nexport const getUserPreferences = async (): Promise => {\r\n return KeyedBlobs.getJson(\"CC:UserPreferences\");\r\n};\r\n\r\nexport const setUserPreferences = async (preferences: IUserPreferences) => {\r\n return KeyedBlobs.putJson(\"CC:UserPreferences\", preferences);\r\n};\r\n","\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n} from '@/components/Domain.Carbon/CarbonBarChart.vue';\r\nimport CarbonTable, { convertToItemRecords } from '@/components/Domain.Carbon/CarbonTable.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n calculateOptionsDescription,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { defineComponent } from 'vue';\r\nimport { Granularity, PluralEntityType } from '@/models';\r\nimport { getCO2e, getForecastCO2e } from '@/lib/Api';\r\nimport { setUserPreferences, getUserPreferences } from '@/lib/UserPreferences';\r\n\r\nconst getSegregateByFromRoute = (route) => {\r\n let path = route.path.toLowerCase();\r\n if (route.params.baseTenantId) {\r\n path = path\r\n .split('/')\r\n .filter((x) => x != route.params.baseTenantId)\r\n .join('/');\r\n }\r\n if (path.startsWith('/emissions/explore/services')) {\r\n return 'services';\r\n } else if (path.startsWith('/emissions/explore/subscriptions')) {\r\n return 'subscriptions';\r\n } else if (path.startsWith('/emissions/explore/cloudaccounts')) {\r\n return 'cloudaccounts';\r\n } else if (path.startsWith('/emissions/explore/products')) {\r\n return 'products';\r\n } else if (path.startsWith('/emissions/explore/tagkeys')) {\r\n return 'tags';\r\n } else if (path.startsWith('/emissions/explore/productcategories')) {\r\n return 'productcategories';\r\n } else {\r\n return 'subscriptions';\r\n }\r\n};\r\n\r\nexport default defineComponent({\r\n components: { CarbonBarChart, SpendUsageOptionsToolbarForm, CarbonTable },\r\n title(ctx) {\r\n return ctx.$t('emissionsExplorer.title');\r\n },\r\n data() {\r\n return {\r\n tab: null,\r\n tagKey: this.$route.params.tagkey,\r\n carbonOptions: {\r\n dateRangeKey: '60d',\r\n granularity: Granularity.daily,\r\n topXResults: 25,\r\n segregateBy: getSegregateByFromRoute(this.$route),\r\n },\r\n carbonRecords: {},\r\n groupingItems: {},\r\n datasetIndexes: {},\r\n newChartData: { labels: [], datasets: [] },\r\n maxDate: undefined,\r\n starred: false,\r\n };\r\n },\r\n watch: {\r\n carbonOptions: {\r\n handler(options) {\r\n if (!options) return;\r\n if (this.$wait.is('gettingCarbonRecords')) return;\r\n this.getCarbonRecords(options);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n $route: {\r\n async handler(route) {\r\n if (!route) return;\r\n this.tagKey = route.params.tagkey;\r\n const newSegregateBy = getSegregateByFromRoute(route);\r\n if (this.carbonOptions.segregateBy !== newSegregateBy) {\r\n this.carbonRecords = null;\r\n this.groupingItems = null;\r\n this.carbonOptions.segregateBy = newSegregateBy;\r\n }\r\n const newTabKey = this.tabKey;\r\n const preferences = await getUserPreferences();\r\n preferences.costExplorerTab = newTabKey;\r\n this.starred = preferences.starredCostExplorerTab === preferences.costExplorerTab;\r\n await setUserPreferences(preferences);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n async starred(isStarred) {\r\n const preferences = await getUserPreferences();\r\n preferences.starredCostExplorerTab = isStarred\r\n ? this.tabKey\r\n : this.tabKey === preferences.starredCostExplorerTab\r\n ? null\r\n : preferences.starredCostExplorerTab;\r\n await setUserPreferences(preferences);\r\n },\r\n tagKey: {\r\n handler(newTagKey, oldTagKey) {\r\n if (!oldTagKey) return;\r\n this.getCarbonRecords(this.carbonOptions);\r\n },\r\n },\r\n },\r\n computed: {\r\n tabKey() {\r\n const newSegregateBy = getSegregateByFromRoute(this.$route);\r\n return newSegregateBy?.startsWith('tags') || false\r\n ? `tagkeys/${encodeURIComponent(this.tagKey)}`\r\n : newSegregateBy.toLowerCase();\r\n },\r\n chartTitle() {\r\n return calculateOptionsDescription(this.carbonOptions, (...params) => this.$t(...params));\r\n },\r\n currentHeaderName() {\r\n return this.headerName(this.carbonOptions.segregateBy);\r\n },\r\n tabs() {\r\n const prefix = this.$route.params.baseTenantId ? `/${this.$route.params.baseTenantId}` : '';\r\n const tabs = [\r\n {\r\n title: this.$t('emissionsExplorer.tabs.products'),\r\n key: 'products',\r\n to: `${prefix}/emissions/explore/products`,\r\n icon: 'shopping_cart',\r\n },\r\n {\r\n title: this.$t('emissionsExplorer.tabs.resources'),\r\n key: 'resources',\r\n to: `${prefix}/emissions/explore/services`,\r\n icon: 'memory',\r\n },\r\n {\r\n title: this.$t('emissionsExplorer.tabs.subscriptions'),\r\n key: 'subscriptions',\r\n to: `${prefix}/emissions/explore/subscriptions`,\r\n icon: 'cloud_queue',\r\n },\r\n {\r\n title: this.$t('emissionsExplorer.tabs.cloudaccounts'),\r\n key: 'cloudaccounts',\r\n to: `${prefix}/emissions/explore/cloudaccounts`,\r\n icon: 'cloud_download',\r\n },\r\n ];\r\n if (this.tenantStore.tagKey1) {\r\n tabs.push({\r\n title: this.tenantStore.tagKey1,\r\n key: this.tenantStore.tagKey1,\r\n to: `${prefix}/emissions/explore/tagkeys/${encodeURIComponent(this.tenantStore.tagKey1)}`,\r\n icon: 'sell',\r\n });\r\n }\r\n if (this.tenantStore.tagKey2) {\r\n tabs.push({\r\n title: this.tenantStore.tagKey2,\r\n key: this.tenantStore.tagKey2,\r\n to: `${prefix}/emissions/explore/tagkeys/${encodeURIComponent(this.tenantStore.tagKey2)}`,\r\n icon: 'sell',\r\n });\r\n }\r\n if (this.tenantStore.tagKey3) {\r\n tabs.push({\r\n title: this.tenantStore.tagKey3,\r\n key: this.tenantStore.tagKey3,\r\n to: `${prefix}/emissions/explore/tagkeys/${encodeURIComponent(this.tenantStore.tagKey3)}`,\r\n icon: 'sell',\r\n });\r\n }\r\n return tabs;\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n handleDialogChange(isOpen) {\r\n const prefix = this.$route.params.baseTenantId ? `/${this.$route.params.baseTenantId}` : '';\r\n if (isOpen) return;\r\n if (this.carbonOptions.segregateBy === PluralEntityType.tags) {\r\n this.$router.push(`${prefix}/emissions/explore/tagkeys/${encodeURIComponent(this.tagKey)}`);\r\n } else {\r\n this.$router.push(`/emissions/explore/${this.carbonOptions.segregateBy}`);\r\n }\r\n this.$title = this.$t('emissionsExplorer.title');\r\n },\r\n headerName(by) {\r\n return this.$t('emissionsExplorer.headers.' + by);\r\n },\r\n getCarbonRecords: waitFor('gettingCarbonRecords', async function getCarbonRecords(options: SpendUsageOptions) {\r\n const params = convertSpendOptionsToQuery(options);\r\n if (!params) return;\r\n const segregateBy = this.carbonOptions.segregateBy as PluralEntityType;\r\n if (segregateBy === PluralEntityType.tags) {\r\n params.tagKeyValue = this.tagKey ? `${this.tagKey}:` : null;\r\n }\r\n const [carbonResponse, projectionResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey),\r\n ]);\r\n const projectionsDataset = convertProjectionsResponseToDataset(projectionResponse);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(carbonResponse);\r\n this.newChartData = {\r\n labels: [...usageDataset.labels, ...projectionsDataset.labels],\r\n datasets: [...usageDataset.datasets, ...projectionsDataset.datasets],\r\n };\r\n this.maxDate = projectionResponse?.maxUsageDate || params.toDate;\r\n this.datasetIndexes = datasetIndexes;\r\n this.groupingItems = convertToItemRecords(params, carbonResponse);\r\n }),\r\n handleDatasetClicked({ index, isOther }) {\r\n if (isOther) {\r\n this.carbonOptions.topXResults = this.carbonOptions.topXResults + 10;\r\n } else if (this.carbonOptions.segregateBy?.startsWith('tags') || false) {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n const tag = `${encodeURIComponent(this.tagKey)}:${encodeURIComponent(datasetGroupId)}`;\r\n this.$router.push(`/emissions/explore/tagkeys/${encodeURIComponent(this.tagKey)}/tag/${tag}/carbon`);\r\n } else {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n this.$router.push(`/emissions/explore/${this.carbonOptions.segregateBy}/${datasetGroupId}/carbon`);\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Explorer.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Explorer.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Explorer.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Explorer.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Explorer.vue?vue&type=template&id=5f2cc739&\"\nimport script from \"./Explorer.vue?vue&type=script&lang=ts&\"\nexport * from \"./Explorer.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Explorer.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport * as ChartFactory from '@/highcharts/MapFactory';\r\nimport { IRegionCO2EResult, IRegionResult } from '@/models';\r\n\r\nexport interface IRegionClickedEventData {\r\n regionName: string;\r\n providerType: string;\r\n}\r\n\r\nexport enum SupportedSlices {\r\n co2e = 'co2e',\r\n kwh = 'kwh',\r\n intensity = 'intensity',\r\n}\r\n\r\nexport const convertRegionResultsToChartSeries = (\r\n costs: IRegionCO2EResult,\r\n regions: IRegionResult[],\r\n type: SupportedSlices\r\n) => {\r\n const regionTotals = costs.data.reduce((agg, val) => {\r\n const key = `${val.providerType}:${val.regionName}`.toUpperCase();\r\n if (type === SupportedSlices.co2e) agg[key] = val.co2e;\r\n else if (type === SupportedSlices.kwh) agg[key] = val.kwH;\r\n else if (type === SupportedSlices.intensity) agg[key] = val.co2e / val.kwH || 0;\r\n return agg;\r\n }, {});\r\n let suffix: string;\r\n if (type === SupportedSlices.co2e) suffix = 'CO2e';\r\n else if (type === SupportedSlices.intensity) suffix = 'intensity';\r\n else if (type === SupportedSlices.kwh) suffix = 'kWh';\r\n const series = Object.values(\r\n regions.reduce((obj, region) => {\r\n const regionTotalKey = `${region.providerType}:${region.name}`.toUpperCase();\r\n if (!regionTotals[regionTotalKey]) return obj;\r\n\r\n const providerType = region.providerType;\r\n const regionData = (obj[providerType] =\r\n obj[providerType] || ChartFactory.createMapSeriesRecord(providerType, suffix));\r\n\r\n if (region.lat) {\r\n regionData.data.push(\r\n ChartFactory.createMapSeriesChildRecord(\r\n region.id,\r\n region.name || 'Unknown',\r\n providerType,\r\n region.lat,\r\n region.long,\r\n regionTotals[regionTotalKey]\r\n )\r\n );\r\n }\r\n return obj;\r\n }, {})\r\n );\r\n series.unshift({\r\n name: 'Countries',\r\n color: '#E0E0E0',\r\n enableMouseTracking: false,\r\n showInLegend: false,\r\n });\r\n return series;\r\n};\r\n\r\nexport default defineComponent({\r\n props: { items: Array, intensity: Boolean },\r\n setup(p, { emit }) {\r\n const FIXED_OPTIONS = ChartFactory.createMapChart({\r\n events: {\r\n pointClicked(eventData) {\r\n const outgoingEventData: IRegionClickedEventData = {\r\n regionName: eventData.name,\r\n providerType: eventData.series.name,\r\n };\r\n emit('click', outgoingEventData);\r\n },\r\n },\r\n });\r\n const standardOptions = ref({ ...FIXED_OPTIONS });\r\n const intensityOptions = ref({ ...FIXED_OPTIONS, colorAxis: [ChartFactory.createCarbonColorAxis(0.00064)] });\r\n const hideForAMoment = ref(false);\r\n watch(\r\n () => p.items,\r\n (items: any) => {\r\n standardOptions.value.series = items;\r\n intensityOptions.value.series = items;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n return { standardOptions, intensityOptions, hideForAMoment };\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('carbonMap.title'),\"icon\":\"location_on\"}}),_c('v-container',[_c('region-chart-card',{attrs:{\"items\":_vm.regionMapData,\"intensity\":_vm.tab === 0},on:{\"click\":function($event){return _vm.handleChartClick($event)}},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',[_vm._v(\"Energy Intensity\")]),_c('v-tab',[_vm._v(\"Energy Consumption\")]),_c('v-tab',[_vm._v(\"Emissions\")])],1)]},proxy:true}])}),_c('regions-carbon-table-card',{staticClass:\"mt-3\",attrs:{\"loading\":_vm.$wait.is(['loadingRegions', 'loadingRegionTotals']),\"items\":_vm.regions}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('chart-card',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.intensity),expression:\"intensity\"}],attrs:{\"chart\":_vm.intensityOptions,\"constructor-type\":\"mapChart\"},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)}),_c('chart-card',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.intensity),expression:\"!intensity\"}],attrs:{\"chart\":_vm.standardOptions,\"constructor-type\":\"mapChart\"},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionCarbonChartCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionCarbonChartCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegionCarbonChartCard.vue?vue&type=template&id=f1a8b5b8&\"\nimport script from \"./RegionCarbonChartCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionCarbonChartCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('content-card',{attrs:{\"title\":_vm.title || _vm.$t('regionsCarbonTableCard.title'),\"caption\":_vm.$t('regionsCarbonTableCard.subtitle')}},[_c('regions-carbon-table',_vm._g(_vm._b({},'regions-carbon-table',_vm.$props,false),_vm.$listeners))],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.items,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc,\"search\":_vm.searchText},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event},\"update:search\":function($event){_vm.searchText=$event}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{staticClass:\"mb-3\",attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-text-field',{staticClass:\"mr-1\",attrs:{\"solo-inverted\":\"\",\"flat\":\"\",\"prepend-inner-icon\":\"search\",\"hide-details\":\"\",\"placeholder\":_vm.$t('regionsCarbonTable.search.placeholder'),\"label\":_vm.$t('regionsCarbonTable.search.title')},model:{value:(_vm.searchText),callback:function ($$v) {_vm.searchText=$$v},expression:\"searchText\"}})],1)]},proxy:true},{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('regionsCarbonTable.noRegions'))+\" \")]},proxy:true},{key:`item.geography`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/emissions/map/geographies/${item.providerType}:${item.geography}/carbon`}},[_vm._v(\" \"+_vm._s(item.geography)+\" \")])]}},{key:`item.name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/emissions/map/regions/${item.providerType}:${item.name}/carbon`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])]}},{key:`item.currentMonthCO2e`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.currentMonthCO2e.toFixed(4))+\" t CO2e \")]}},{key:`item.currentMonthKwH`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.currentMonthKwH.toFixed(4))+\" kWh \")]}},{key:`item.currentMonthIntensity`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(((item.currentMonthCO2e / item.currentMonthKwH) || 0).toFixed(5))+\" \")]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { IRegionCO2EResult, IRegionResult } from '@/models';\r\n\r\nexport const convertRegionResultsToViewItems = (\r\n emissions: IRegionCO2EResult,\r\n regions: IRegionResult[]\r\n): IRegionTableItemViewModel[] => {\r\n const regionTotals = emissions.data.reduce((agg, val) => {\r\n const key = `${val.providerType}:${val.regionName}`.toUpperCase();\r\n agg[key] = { co2e: val.co2e, kwH: val.kwH };\r\n return agg;\r\n }, {});\r\n return regions.map((r) => {\r\n let total = regionTotals[r.id];\r\n if (!total) total = { kwH: 0, co2e: 0 };\r\n return {\r\n ...r,\r\n currentMonthCO2e: total.co2e,\r\n currentMonthKwH: total.kwH,\r\n };\r\n }).filter(r => r.currentMonthCO2e > 0);\r\n};\r\n\r\nexport interface IRegionTableItemViewModel {\r\n geography: string;\r\n name: string;\r\n currentMonthCO2e: number;\r\n currentMonthKwH: number;\r\n providerType: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n items: Array,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const sortedBy = ref('currentMonthCO2e');\r\n const sortedDesc = ref(true);\r\n const itemsPerPage = ref(10);\r\n const searchText = ref(null);\r\n return { sortedBy, sortedDesc, itemsPerPage, searchText };\r\n },\r\n data() {\r\n return {\r\n headers: [\r\n {\r\n text: this.$t('regionsCarbonTable.geography.title'),\r\n value: 'geography',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('name'),\r\n value: 'name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('regionsCarbonTable.currentMonthCO2e.title'),\r\n value: 'currentMonthCO2e',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('regionsCarbonTable.currentMonthKwH.title'),\r\n value: 'currentMonthKwH',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('regionsCarbonTable.currentMonthIntensity.title'),\r\n value: 'currentMonthIntensity',\r\n sortable: false,\r\n },\r\n {\r\n text: this.$t('regionsCarbonTable.providerType.title'),\r\n value: 'providerType',\r\n sortable: true,\r\n },\r\n ],\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RegionsCarbonTable.vue?vue&type=template&id=0d9964de&scoped=true&\"\nimport script from \"./RegionsCarbonTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionsCarbonTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RegionsCarbonTable.vue?vue&type=style&index=0&id=0d9964de&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d9964de\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RegionsCarbonTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport RegionsCarbonTable, { convertRegionResultsToViewItems } from '@/components/Domain.Regions/RegionsCarbonTable.vue';\r\nexport { convertRegionResultsToViewItems };\r\nimport { defineComponent } from 'vue';\r\nexport default defineComponent({\r\n components: { RegionsCarbonTable },\r\n props: { ...RegionsCarbonTable.props, title: String },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTableCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTableCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTableCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionsCarbonTableCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RegionsCarbonTableCard.vue?vue&type=template&id=59d7a465&\"\nimport script from \"./RegionsCarbonTableCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegionsCarbonTableCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RegionsCarbonTableCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport RegionChartCard, {\r\n IRegionClickedEventData,\r\n convertRegionResultsToChartSeries,\r\n SupportedSlices,\r\n} from '@/components/Domain.Regions/RegionCarbonChartCard.vue';\r\nimport RegionsCarbonTableCard, {\r\n convertRegionResultsToViewItems,\r\n} from '@/components/Domain.Regions/RegionsCarbonTableCard.vue';\r\nimport moment from '@/lib/moment';\r\nimport { IRegionCO2EResult, IRegionResult } from '@/models';\r\nimport { defineComponent } from 'vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nexport default defineComponent({\r\n props: ['me'],\r\n components: { RegionChartCard, RegionsCarbonTableCard },\r\n title(ctx) {\r\n return ctx.$t('carbonMap.title');\r\n },\r\n data() {\r\n return {\r\n emissionsResult: null,\r\n regionsResult: null,\r\n tab: 2,\r\n };\r\n },\r\n created() {\r\n this.loadDataForView();\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n regionMapData() {\r\n if (!this.emissionsResult || !this.regionsResult) return [];\r\n const values = [SupportedSlices.intensity, SupportedSlices.kwh, SupportedSlices.co2e];\r\n return convertRegionResultsToChartSeries(this.emissionsResult, this.regionsResult, values[this.tab]);\r\n },\r\n regions() {\r\n if (!this.emissionsResult || !this.regionsResult) return [];\r\n return convertRegionResultsToViewItems(this.emissionsResult, this.regionsResult);\r\n },\r\n },\r\n methods: {\r\n handleChartClick(data: IRegionClickedEventData) {\r\n const { providerType, regionName } = data;\r\n this.$router.push(`/emissions/map/regions/${providerType}:${regionName}`);\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/emissions/map');\r\n this.$title = this.$t('carbonMap.title');\r\n },\r\n async loadDataForView() {\r\n const [regions, costs] = await Promise.all([this.getAllRegions(), this.getRegionTotals()]);\r\n this.regionsResult = regions;\r\n this.emissionsResult = costs;\r\n },\r\n getAllRegions: waitFor('loadingRegions', async function (): Promise {\r\n try {\r\n return await ApiV2.http.get('/api/regions').then((r) => r.data);\r\n } catch (error) {\r\n toastError(this.$t('carbonDashboard.error.loadingRegions'));\r\n }\r\n }),\r\n getRegionTotals: waitFor('loadingRegionTotals', async function (): Promise {\r\n try {\r\n const params = {\r\n min: moment.utc().add(-30, 'days').startOf('day').format(),\r\n max: moment.utc().endOf('day').format(),\r\n };\r\n return await ApiV2.http.get('/api/region/co2e', { params }).then((r) => r.data);\r\n } catch (error) {\r\n toastError(this.$t('carbonDashboard.error.loadingRegionTotals'));\r\n }\r\n }),\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Map.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Map.vue?vue&type=template&id=dec941f4&\"\nimport script from \"./Map.vue?vue&type=script&lang=ts&\"\nexport * from \"./Map.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Map.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('Customers'),\"icon\":\"content_copy\",\"extended\":\"\",\"extension-height\":10}}),_c('widget-grid',[_c('v-flex',{attrs:{\"xs12\":\"\"}},[_c('content-card',{attrs:{\"title\":\"Customers\",\"caption\":`${this.period}`},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('text-date-picker',{attrs:{\"value\":_vm.toDate,\"hide-details\":\"\",\"label\":_vm.$t('views.customersManage.currentperiodending'),\"flat\":\"\",\"outlined\":\"\",\"prepend-icon\":null,\"min\":_vm.minPeriod,\"max\":_vm.maxPeriod,\"type\":\"month\"},model:{value:(_vm.toDate),callback:function ($$v) {_vm.toDate=$$v},expression:\"toDate\"}}),(_vm.tenantStore.hasPermission('CanManageBilling'))?_c('create-customer-dialog',{attrs:{\"loading\":_vm.$wait.is(['getTenantCustomers', 'addTenantCustomer'])},on:{\"http2xx\":_vm.handleSuccessfulCustomerChange},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-spacer'),_c('v-btn',_vm._g({attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add Customer \")],1)],1)]}}],null,false,1803124698)}):_vm._e()]},proxy:true}])},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.customers,\"items-per-page\":15,\"sort-by\":_vm.sortBy,\"loading\":_vm.$wait.is('getTenantCustomers')},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event}},scopedSlots:_vm._u([{key:`item.name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`/customers/manage/${item.id}`}},[_vm._v(_vm._s(item.name))])]}},{key:`item.actions`,fn:function({ item }){return [(!item.IsMe)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"light\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1)],1):_vm._e()]}},{key:`item.lastMonthRevenue`,fn:function({ item }){return [_c('div',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.lastMonthRevenue,_vm.tenantStore.currencyCode)))])]}},{key:`item.lastMonthCost`,fn:function({ item }){return [_c('div',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.lastMonthCost,_vm.tenantStore.currencyCode)))])]}},{key:`item.lastMonthOtherSpend`,fn:function({ item }){return [_c('div',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.lastMonthOtherSpend,_vm.tenantStore.currencyCode))+\" \")])]}},{key:`item.lastMonthMargin`,fn:function({ item }){return [_c('div',{class:item.lastMonthMargin < 0\n ? 'red--text text-right'\n : item.lastMonthMargin > 0\n ? 'green--text text-right'\n : ''},[_vm._v(\" \"+_vm._s(item.lastMonthMargin.toFixed(2))+\"% \")])]}},{key:`item.lastMonthProfit`,fn:function({ item }){return [_c('div',{class:item.lastMonthProfit < 0\n ? 'red--text text-right'\n : item.lastMonthProfit > 0\n ? 'green--text text-right'\n : ''},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.lastMonthProfit,_vm.tenantStore.currencyCode))+\" \")])]}},{key:`body.append`,fn:function(){return [(_vm.customers.length > 0)?_c('tr',[_c('th',[_vm._v(\"Totals\")]),_c('th',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.totalShared))]),_c('th',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalRevenue,_vm.tenantStore.currencyCode)))]),_c('th',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalCost,_vm.tenantStore.currencyCode)))]),(!_vm.tenantStore.hasTenantFeature('HideProfit'))?_c('th',{class:_vm.totalProfit < 0 ? 'text-right red--text' : 'text-right'},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.totalProfit,_vm.tenantStore.currencyCode))+\" \")]):_vm._e(),(!_vm.tenantStore.hasTenantFeature('HideProfit'))?_c('th',{staticClass:\"text-right\"},[_vm._v(\"-\")]):_vm._e(),_c('th',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm.totalOther))]),_c('th',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.totalOtherSpend,_vm.tenantStore.currencyCode)))])]):_vm._e()]},proxy:true}],null,true)})],1)],1)],1),_c('delete-entity-dialog',{attrs:{\"entityType\":\"customer\",\"entityToDelete\":_vm.customerToDelete,\"resourceApi\":\"/api/customers\"},on:{\"http2xx\":_vm.endDeleteAccount},model:{value:(_vm.deleteCustomer),callback:function ($$v) {_vm.deleteCustomer=$$v},expression:\"deleteCustomer\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('createCustomer.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, loading, formId, reset }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('add-customer-button',{attrs:{\"value\":_vm.formData,\"clear\":reset,\"form\":formId,\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCustomerAdd($event))}}})]}}],null,true),model:{value:(_vm.isFormValid),callback:function ($$v) {_vm.isFormValid=$$v},expression:\"isFormValid\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('createCustomer.customerName.label'),\"rules\":[_vm.$rules.required()]},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('currency-combo-box',{attrs:{\"rules\":[ _vm.$rules.required() ]},model:{value:(_vm.displayCurrencyCode),callback:function ($$v) {_vm.displayCurrencyCode=$$v},expression:\"displayCurrencyCode\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('createCustomer.customerIsNotForProfit.label')},model:{value:(_vm.isNotForProfit),callback:function ($$v) {_vm.isNotForProfit=$$v},expression:\"isNotForProfit\"}})],1)]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"value\":_vm.value,\"href\":\"/api/customers\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(_vm._s(_vm.$t('addCustomerButton.submit'))+\" \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"addCustomerButton.errorMessage\": \"There was an error encountered while creating this customer. If everything looks right please contact support.\",\r\n \"addCustomerButton.submit\": \"Submit\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddCustomerButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddCustomerButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddCustomerButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddCustomerButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AddCustomerButton.vue?vue&type=template&id=08ca43c8&\"\nimport script from \"./AddCustomerButton.vue?vue&type=script&lang=js&\"\nexport * from \"./AddCustomerButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AddCustomerButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createCustomer.title\": \"Create Customer\",\r\n \"createCustomer.customerName.label\": \"Customer Name\",\r\n \"createCustomer.successfulAdd\": \"Customer successfully added.\",\r\n \"createCustomer.customerIsNotForProfit.label\": \"Customer is a registered charity or not-for-profit.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCustomerDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCustomerDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCustomerDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCustomerDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateCustomerDialog.vue?vue&type=template&id=7c55012a&\"\nimport script from \"./CreateCustomerDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateCustomerDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateCustomerDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport CreateCustomerDialog from '@/views/CustomersManage/CreateCustomerDialog.vue';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport DeleteEntityDialog from '@/components/Common/DeleteEntityDialog.vue';\r\nimport { useTenantStore } from '../../stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport moment from '@/lib/moment';\r\n\r\nexport function sum(x, y) {\r\n return x + y;\r\n}\r\n\r\nexport default {\r\n title(ctx) {\r\n return ctx.$t('views.customersManage.title');\r\n },\r\n components: {\r\n CreateCustomerDialog,\r\n DeleteEntityDialog,\r\n },\r\n methods: {\r\n getTenantCustomers: waitFor('getTenantCustomers', async function getTenantCustomers() {\r\n let params = undefined; \r\n if(this.toDate) {\r\n params = {params: {startMonth: moment.utc(this.toDate).format(\"YYYY-MM-DD\")}}; \r\n } \r\n this.customers = await ApiV2.http.get(`api/customers`, params).then((r) => r.data);\r\n }),\r\n handleSuccessfulCustomerChange() {\r\n this.getTenantCustomers();\r\n },\r\n startDeleteAccount(customer) { \r\n this.customerToDelete = customer;\r\n this.deleteCustomer = true; \r\n },\r\n endDeleteAccount(flag) { \r\n this.deleteCustomer = flag;\r\n this.getTenantCustomers();\r\n }\r\n },\r\n data() {\r\n return {\r\n customers: [],\r\n sortBy: 'name',\r\n customerToDelete: null,\r\n deleteCustomer: false,\r\n toDate: new Date(),\r\n maxPeriod: moment.utc(new Date()).format(\"YYYY-MM-DD\"),\r\n minPeriod: moment.utc(new Date()).add(-13, 'month').format(\"YYYY-MM-DD\"),\r\n };\r\n },\r\n computed: {\r\n totalShared() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.numberOfSharedAccounts).reduce(sum, 0);\r\n },\r\n totalRevenue() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.lastMonthRevenue).reduce(sum, 0);\r\n },\r\n totalCost() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.lastMonthCost).reduce(sum, 0);\r\n },\r\n totalProfit() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.lastMonthProfit).reduce(sum, 0);\r\n },\r\n totalOther() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.numberOfOtherAccounts).reduce(sum, 0);\r\n },\r\n totalOtherSpend() {\r\n return !this.customers ? 0 : this.customers.map((item) => item.lastMonthOtherSpend).reduce(sum, 0);\r\n },\r\n period() {\r\n return !this.customers ? '' : this.customers.length > 0 ? '(Period ' + this.customers[0].period + ')' : '';\r\n },\r\n numberCustomers() {\r\n if (!this.customers) return 0.0;\r\n return this.customers.length;\r\n },\r\n headers() {\r\n const flagValue = this.tenantStore.hasTenantFeature('HideProfit') ?? false;\r\n const headers = flagValue === false ? [{ // Includes Profit, Revenue and Margin \r\n text: this.$t('views.customersManage.name'),\r\n value: 'name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.sharedAccounts'),\r\n align: 'end',\r\n value: 'numberOfSharedAccounts',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthRevenue'),\r\n align: 'end',\r\n value: 'lastMonthRevenue',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthCost'),\r\n align: 'end',\r\n value: 'lastMonthCost',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.profit'),\r\n align: 'end',\r\n value: 'lastMonthProfit',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthMargin'),\r\n align: 'end',\r\n value: 'lastMonthMargin',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.otherAccounts'),\r\n align: 'end',\r\n value: 'numberOfOtherAccounts',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthOther'),\r\n align: 'end',\r\n value: 'lastMonthOtherSpend',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('actions'),\r\n value: \"actions\",\r\n sortable: false\r\n }] : // No Profit, Revenue and Margin \r\n [{\r\n text: this.$t('views.customersManage.name'),\r\n value: 'name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.sharedAccounts'),\r\n align: 'end',\r\n value: 'numberOfSharedAccounts',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthCost'),\r\n align: 'end',\r\n value: 'lastMonthCost',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.otherAccounts'),\r\n align: 'end',\r\n value: 'numberOfOtherAccounts',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('views.customersManage.lastMonthOther'),\r\n align: 'end',\r\n value: 'lastMonthOtherSpend',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('actions'),\r\n value: \"actions\",\r\n sortable: false\r\n }];\r\n\r\n return headers;\r\n },\r\n ...mapStores(useTenantStore)\r\n },\r\n async created() {\r\n this.getTenantCustomers();\r\n },\r\n watch: {\r\n toDate: {\r\n handler: function() {\r\n this.getTenantCustomers();\r\n }\r\n } \r\n }\r\n} as any;\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersManage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersManage.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersManage.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomersManage.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomersManage.vue?vue&type=template&id=58e634da&\"\nimport script from \"./CustomersManage.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomersManage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomersManage.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('customerManage.title', { customerName: _vm.customer ? _vm.customer.name : '...' }),\"icon\":\"content_copy\",\"extended\":\"\",\"back-to\":\"/customers/manage/\",\"back-to-text\":\"Back to Customers\"}},[_c('v-tabs',{attrs:{\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{key:\"shares\"},[_vm._v(\" Shared Data \")]),_c('v-tab',{key:\"permissions\"},[_vm._v(\" Features \")]),_c('v-tab',{key:\"users\"},[_vm._v(\" Access Management \")])],1)],1),_c('v-container',[_c('v-tabs-items',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab-item',{key:\"shares\"},[_c('shared-data',{attrs:{\"customerId\":_vm.customerId,\"customer\":_vm.customer},on:{\"getTenantCustomers\":function($event){return _vm.getTenantCustomers()},\"loadCustomer\":function($event){return _vm.loadCustomer()}}})],1),_c('v-tab-item',{key:\"permissions\"},[_c('features',{attrs:{\"customerId\":_vm.customerId,\"tenantFeatures\":_vm.tenantFeatures}})],1),_c('v-tab-item',{key:\"users\"},[_c('users',{attrs:{\"customerId\":_vm.customerId,\"customer\":_vm.customer}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('views.users.title'),\"caption\":_vm.$t('views.users.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('users.inviteUserOrGroup'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startCreateAccount()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mail\")])],1),_c('v-list-item-title',[_vm._v(\"Invite new user\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startAddUserGroup()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"person_add\")])],1),_c('v-list-item-title',[_vm._v(\"Grant permissions to group\")])],1)],1)],1)]},proxy:true},{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},[_c('users-table',{attrs:{\"items\":_vm.userItems,\"loading\":_vm.$wait.is('getUsers')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [(!item.IsMe)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[(item.type === 'User')?_c('v-list',{attrs:{\"light\":\"\"}},[(!item.isTenantCreator)?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1):_c('v-list',{attrs:{\"light\":\"\"}},[(!item.isTenantCreator)?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditUserGroup(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteUserGroup(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1)],1):_c('span',[_vm._v(\"N/A\")])]}}],null,true)})],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('set-user-card',{attrs:{\"loading\":_vm.$wait.is('createUser'),\"value\":_vm.userToEdit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),(!_vm.userToEdit)?_c('add-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('createUser'),expression:\"'createUser'\"}],attrs:{\"value\":form,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":`api/customers/${_vm.customerId}/users`},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}}):_c('update-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('createUser'),expression:\"'createUser'\"}],attrs:{\"value\":form,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":`api/customers/${_vm.customerId}/users`},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.createOrUpdateUser),callback:function ($$v) {_vm.$set(_vm.dialogs, \"createOrUpdateUser\", $$v)},expression:\"dialogs.createOrUpdateUser\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('SetUserGroupPermissionsCard',{attrs:{\"value\":_vm.userGroupToEdit,\"loading\":_vm.$wait.is('addingUserGroup'),\"groups\":_vm.userGroups,\"disabled\":_vm.userGroupToEdit ? { groupId: true } : null},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, loading, isValid }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\",\"form\":formId,\"disabled\":loading || !isValid,\"loading\":loading},on:{\"click\":function($event){return _vm.tryAddOrUpdateGroup(form, close)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit \")],1)]}}],null,true)})]}}]),model:{value:(_vm.dialogs.addUserGroupPermission),callback:function ($$v) {_vm.$set(_vm.dialogs, \"addUserGroupPermission\", $$v)},expression:\"dialogs.addUserGroupPermission\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-user-card',{attrs:{\"loading\":_vm.$wait.is('deleteUser'),\"value\":_vm.userToDelete,\"title\":_vm.$t('users.DeleteUserTitle'),\"subtitle\":_vm.$t('users.DeleteUserSubtitle'),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deleteUser'),expression:\"'deleteUser'\"}],attrs:{\"value\":_vm.userToDelete,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":`api/customers/${_vm.customerId}/delegatedusergroups`},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.deleteUser),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteUser\", $$v)},expression:\"dialogs.deleteUser\"}}),_c('DeleteEntityDialog',{attrs:{\"entityToDelete\":_vm.userGroupToRemove,\"entityType\":\"User Group\",\"resourceApi\":`api/customers/${_vm.customerId}/delegatedusergroups`},on:{\"http2xx\":function($event){return _vm.getUsers()}},model:{value:(_vm.dialogs.deleteUserGroup),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteUserGroup\", $$v)},expression:\"dialogs.deleteUserGroup\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setUserCard.title'),\"subtitle\":_vm.$t('setUserCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId }){return [_vm._t(\"actions\",null,{\"form\":_vm.formData,\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":_vm.reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-text-field',{attrs:{\"disabled\":(_vm.disabled && _vm.disabled.Email) || _vm.isEditMode,\"rules\":[_vm.$rules.required(), _vm.$rules.email()],\"required\":\"\",\"label\":_vm.$t('email')},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}}),_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":\"\"},model:{value:(_vm.canRead),callback:function ($$v) {_vm.canRead=$$v},expression:\"canRead\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setUserCard.canRead.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setUserCard.canRead.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canContribute),callback:function ($$v) {_vm.canContribute=$$v},expression:\"canContribute\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setUserCard.canContribute.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setUserCard.canContribute.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canAdminister),callback:function ($$v) {_vm.canAdminister=$$v},expression:\"canAdminister\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setUserCard.canAdminister.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setUserCard.canAdminister.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canManageBilling),callback:function ($$v) {_vm.canManageBilling=$$v},expression:\"canManageBilling\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setUserCard.canManageBilling.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setUserCard.canManageBilling.subtitle')))])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n{\r\n \"en\": {\r\n \"setUserCard.title\": \"Set User Details\",\r\n \"setUserCard.subtitle\": \"Please enter the details for this user. New users will be sent an invite email directly.\",\r\n \"setUserCard.canRead.title\": \"Reader\",\r\n \"setUserCard.canRead.subtitle\": \"Can read all non-administrative data in this tenant.\",\r\n \"setUserCard.canContribute.title\": \"Contributor\",\r\n \"setUserCard.canContribute.subtitle\": \"Can perform non-administrative write functions like setting spend limits and adding annotations.\",\r\n \"setUserCard.canAdminister.title\": \"Administrator\",\r\n \"setUserCard.canAdminister.subtitle\": \"Can read and write administrative data, such as adding users to a tenant and creating new cloud connections.\",\r\n \"setUserCard.canManageBilling.title\": \"Billing Administrator\",\r\n \"setUserCard.canManageBilling.subtitle\": \"Can manage billing functions of the tenant.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetUserCard.vue?vue&type=template&id=7ddd46b3&\"\nimport script from \"./SetUserCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetUserCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetUserCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.items,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:`item.permissions`,fn:function({ item }){return [(!item.permissions)?_c('span',[_vm._v(\"-\")]):_vm._e(),(item.permissions.includes('CanManageBilling'))?_c('span',[_vm._v(\" Billing Administrator \")]):(item.permissions.includes('CanAdminister'))?_c('span',[_vm._v(\" Tenant Administrator \")]):(item.permissions.includes('CanContribute'))?_c('span',[_vm._v(\" Contributor \")]):_c('span',[_vm._v(\" Read-only \")])]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { IUser, IUserGroup } from '@/models';\r\n\r\nexport const convertToUserItems = (users: IUser[], userGroups: IUserGroup[]) => {\r\n const userResp = (users || []).map((u) => ({\r\n id: u.id,\r\n email: u.email,\r\n fullName: u.fullName,\r\n type: 'User',\r\n permissions: u.permissions,\r\n }));\r\n const userGroupResp = (userGroups || []).map((ug) => ({\r\n id: ug.id,\r\n email: null,\r\n fullName: ug.name,\r\n permissions: ug.permissions,\r\n type: 'Group',\r\n }));\r\n return userResp.concat(userGroupResp);\r\n};\r\n\r\nexport default {\r\n props: ['items', 'loading'],\r\n data() {\r\n return {\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n };\r\n },\r\n computed: {\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'fullName',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('type'),\r\n value: 'type',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('permissions'),\r\n value: 'permissions',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('actions'),\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsersTable.vue?vue&type=template&id=6a8de916&scoped=true&\"\nimport script from \"./UsersTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsersTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./UsersTable.vue?vue&type=style&index=0&id=6a8de916&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6a8de916\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"secondary\",\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"email\")]),_vm._v(\"Invite \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddUserButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddUserButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AddUserButton.vue?vue&type=template&id=1ba9b5fc&\"\nimport script from \"./AddUserButton.vue?vue&type=script&lang=js&\"\nexport * from \"./AddUserButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"secondary\",\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateUserButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateUserButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateUserButton.vue?vue&type=template&id=07b55308&\"\nimport script from \"./UpdateUserButton.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateUserButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"error\",\"depressed\":\"\",\"disabled\":!_vm.valid || _vm.loading,\"loading\":_vm.loading,\"form\":_vm.form},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"clear\")]),_vm._v(\"Delete \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteUserButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteUserButton.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DeleteUserButton.vue?vue&type=template&id=a1d6e690&\"\nimport script from \"./DeleteUserButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteUserButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setPermissionsCard.title'),\"subtitle\":_vm.$t('setPermissionsCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId }){return [_vm._t(\"actions\",null,{\"form\":_vm.formData,\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":_vm.reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-select',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.groupId,\"items\":_vm.groups,\"label\":\"Group\",\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.groupId),callback:function ($$v) {_vm.groupId=$$v},expression:\"groupId\"}}),_c('v-list',[_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{attrs:{\"disabled\":\"\"},model:{value:(_vm.canRead),callback:function ($$v) {_vm.canRead=$$v},expression:\"canRead\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canRead.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canRead.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canContribute),callback:function ($$v) {_vm.canContribute=$$v},expression:\"canContribute\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canContribute.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canContribute.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canAdminister),callback:function ($$v) {_vm.canAdminister=$$v},expression:\"canAdminister\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canAdminister.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canAdminister.subtitle')))])],1)],1),_c('v-list-item',[_c('v-list-item-action',[_c('v-switch',{model:{value:(_vm.canManageBilling),callback:function ($$v) {_vm.canManageBilling=$$v},expression:\"canManageBilling\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canManageBilling.title')))]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm.$t('setPermissionsCard.canManageBilling.subtitle')))])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n{\r\n \"en\": {\r\n \"setPermissionsCard.title\": \"Set Permissions\",\r\n \"setPermissionsCard.subtitle\": \"Indicate the level of permissions this entity should have over this tenant.\",\r\n \"setPermissionsCard.canRead.title\": \"Reader\",\r\n \"setPermissionsCard.canRead.subtitle\": \"Can read all non-administrative data in this tenant.\",\r\n \"setPermissionsCard.canContribute.title\": \"Contributor\",\r\n \"setPermissionsCard.canContribute.subtitle\": \"Can perform non-administrative write functions like setting spend limits and adding annotations.\",\r\n \"setPermissionsCard.canAdminister.title\": \"Administrator\",\r\n \"setPermissionsCard.canAdminister.subtitle\": \"Can read and write administrative data, such as adding users to a tenant and creating new cloud connections.\",\r\n \"setPermissionsCard.canManageBilling.title\": \"Billing Administrator\",\r\n \"setPermissionsCard.canManageBilling.subtitle\": \"Can manage billing functions of the tenant.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupPermissionsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupPermissionsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupPermissionsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupPermissionsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetUserGroupPermissionsCard.vue?vue&type=template&id=193b456d&\"\nimport script from \"./SetUserGroupPermissionsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetUserGroupPermissionsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetUserGroupPermissionsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.users.title\": \"Access Management\",\r\n \"views.users.subtitle\": \"The users and groups that have some level of access of this tenant.\",\r\n \"users.inviteUserOrGroup\": \"Add User / Group\",\r\n \"users\": \"Users\",\r\n \"users.DeleteUserTitle\": \"Delete User\",\r\n \"users.DeleteUserSubtitle\": \"This user will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Users.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Users.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Users.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Users.vue?vue&type=template&id=29767b5b&\"\nimport script from \"./Users.vue?vue&type=script&lang=js&\"\nexport * from \"./Users.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Users.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('content-card',{attrs:{\"title\":\"Shared Data\",\"caption\":'The cloud connections you are actively sharing with this customer.'},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanManageBilling'))?{key:\"title-actions\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"to\":_vm.createNewShare}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" New Share \")],1)],1)]},proxy:true}:null],null,true)},[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.customer.sharedDataCloudAccounts,\"items-per-page\":15,\"sort-by\":_vm.sortBy,\"loading\":_vm.$wait.is('getTenantCustomers')},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event}},scopedSlots:_vm._u([{key:`item.rules.currentMarkup.markupPercentage`,fn:function({ item }){return [(item.rules && item.rules.currentMarkup && item.rules.currentMarkup.markupPercentage)?_c('div',{class:item.rules.currentMarkup.markupPercentage < 0\n ? 'red--text text-right'\n : item.rules.currentMarkup.markupPercentage > 0\n ? 'green--text text-right'\n : ''},[_vm._v(\" \"+_vm._s(item.rules.currentMarkup.markupPercentage.toFixed(2))+\"% \")]):_vm._e()]}},{key:`item.current90DayMargin`,fn:function({ item }){return [(item.current90DayMargin)?_c('div',{class:item.current90DayMargin < 0\n ? 'red--text text-right'\n : item.current90DayMargin > 0\n ? 'green--text text-right'\n : ''},[_vm._v(\" \"+_vm._s(item.current90DayMargin.toFixed(2))+\"% \")]):_vm._e()]}},{key:`item.rules.origin`,fn:function({ item }){return [(item.rules && item.rules.origin)?_c('div',[_vm._v(_vm._s(item.rules.origin))]):_c('div',[_vm._v(\"Your Cost\")])]}},{key:`item.Actions`,fn:function({ item }){return [(_vm.tenantStore.hasPermission('CanManageBilling'))?_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{attrs:{\"to\":`/copy/cloudaccounts/${item.parentCloudAccountId}?copy=${item.id}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Edit Share \")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteCopy(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Delete Share \")])],1)],1)],1)],1):_vm._e()]}}],null,true)}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"loading\":_vm.$wait.is('deletingCopy'),\"value\":_vm.copyToDelete,\"title\":_vm.$t('deleteCopyCard.title'),\"subtitle\":_vm.$t('deleteCopyCard.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, clear, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('delete-shared-copy-button',{attrs:{\"cloudAccountId\":_vm.copyToDelete ? _vm.copyToDelete.ParentCloudAccountId : null,\"value\":_vm.copyToDelete,\"valid\":isValid,\"clear\":clear,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.loadCustomer())}}})]}}],null,true)})]}}]),model:{value:(_vm.showDeleteCopy),callback:function ($$v) {_vm.showDeleteCopy=$$v},expression:\"showDeleteCopy\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/metadata/cloudaccounts/${_vm.cloudAccountId}/copies/${(_vm.value || {}).Id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteCloudAccountCopyButton.errorMessage\": \"There was an error encountered while deleting the shared cloud connection. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountCopyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountCopyButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountCopyButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountCopyButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteCloudAccountCopyButton.vue?vue&type=template&id=36bfda8a&\"\nimport script from \"./DeleteCloudAccountCopyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteCloudAccountCopyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteCloudAccountCopyButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","enum TaxonomyType {\r\n manage = 'manage',\r\n settingsAzure = 'settingsAzure',\r\n settingsAzureCloudAccount = 'settingsAzureCloudAccount', \r\n settingsAWS = 'settingsAWS',\r\n settingsAWSCloudAccount = 'settingsAWSCloudAccount', \r\n settingsOracle = 'settingsOracle',\r\n settingsOracleCloudAccount = 'settingsOracleCloudAccount', \r\n settingsSnowflake = 'settingsSnowflake',\r\n settingsSnowflakeCloudAccount = 'settingsSnowflakeCloudAccount',\r\n}\r\n\r\nexport default TaxonomyType;","import { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { defineStore } from 'pinia';\r\n\r\nexport const useCloudAccountNavigationStore = defineStore({\r\n id: 'cloudAccountNavigation',\r\n state: (): ICloudAccountNavigation => ({\r\n taxonomyType: null,\r\n tenantId: null,\r\n cloudAccountId: null\r\n }), \r\n actions: {\r\n updateNavigationSource(navigationDetails :ICloudAccountNavigation) { \r\n this.taxonomyType = navigationDetails.taxonomyType;\r\n this.tenantId = navigationDetails.tenantId;\r\n this.cloudAccountId = navigationDetails.cloudAccountId;\r\n }\r\n },\r\n persist: true \r\n});","\r\nimport DeleteSharedCopyButton from '@/components/Settings.CloudAccounts/DeleteCloudAccountCopyButton.vue';\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\n\r\nexport default {\r\n props: ['customerId', 'customer'],\r\n components: {\r\n DeleteSharedCopyButton,\r\n },\r\n data() {\r\n return {\r\n showDeleteCopy: false,\r\n copyToDelete: null,\r\n sortBy: 'customerName',\r\n };\r\n },\r\n methods: {\r\n getTenantCustomers() {\r\n this.$emit('getTenantCustomers');\r\n },\r\n loadCustomer() {\r\n this.$emit('loadCustomer');\r\n },\r\n startDeleteCopy(item) {\r\n this.copyToDelete = { Name: item.name, Id: item.id, ParentCloudAccountId: item.parentCloudAccountId };\r\n this.showDeleteCopy = true;\r\n },\r\n },\r\n computed: {\r\n createNewShare() {\r\n return `/customers/manage/${this.customerId}/shareddata`;\r\n },\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('customerManage.sharedCloudAccountName'),\r\n value: 'name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('customerManage.sourceCloudAccount'),\r\n value: 'parentCloudAccountName',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('customerManage.origin'),\r\n value: 'rules.origin',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('customerManage.currentMarkup'),\r\n value: 'rules.currentMarkup.markupPercentage',\r\n align: 'end',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('customerManage.actualMargin'),\r\n value: 'current90DayMargin',\r\n align: 'end',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('customerManage.actions'),\r\n value: 'Actions',\r\n align: 'end',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n created() {\r\n const navigationHistory = {\r\n taxonomyType: TaxonomyType.manage,\r\n tenantId: this.customerId,\r\n cloudAccountId: null,\r\n };\r\n const store = useCloudAccountNavigationStore();\r\n store.updateNavigationSource(navigationHistory);\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SharedData.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SharedData.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SharedData.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SharedData.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SharedData.vue?vue&type=template&id=5eed277e&\"\nimport script from \"./SharedData.vue?vue&type=script&lang=ts&\"\nexport * from \"./SharedData.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SharedData.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('content-card',{attrs:{\"title\":\"Features\",\"caption\":'The features this customer has when viewing their usage data.'}},[_c('v-list',_vm._l((_vm.tenantFeatures),function(feature){return _c('v-list-item',{key:feature.featureId},[_c('v-list-item-action',[_c('v-checkbox',{attrs:{\"disabled\":!_vm.tenantStore.hasPermission('CanManageBilling') || _vm.$wait.is(`togglingFeature${feature.featureId}`),\"loading\":_vm.$wait.is(`togglingFeature${feature.featureId}`)},on:{\"change\":function($event){return _vm.toggleFeature(feature.featureId, $event)}},model:{value:(feature.isEnabled),callback:function ($$v) {_vm.$set(feature, \"isEnabled\", $$v)},expression:\"feature.isEnabled\"}})],1),_c('v-list-item-content',[_c('v-list-item-title',{attrs:{\"title\":feature.featureDescription}},[_vm._v(\" \"+_vm._s(feature.featureLabel)+\" \")])],1)],1)}),1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Features.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Features.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Features.vue?vue&type=template&id=1458b22f&\"\nimport script from \"./Features.vue?vue&type=script&lang=js&\"\nexport * from \"./Features.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"customerManage.title\": \"Customer - {customerName}\", \r\n \"customerManage.failedToLoad\": \"There was an issue loading this customer.\" \r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerManage.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerManage.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerManage.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomerManage.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomerManage.vue?vue&type=template&id=88642186&\"\nimport script from \"./CustomerManage.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomerManage.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomerManage.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('nativeCarbonDashboard.title'),\"icon\":\"cc-icon-vendor-azure\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":_vm.$t('nativeCarbonDashboard.titles.currentProjected', { thisMonthName: _vm.thisMonthName })},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.currentTotalCo2E.toFixed(3))+\" t CO2e \")]},proxy:true}])}),_c('title-sheet',{attrs:{\"title\":_vm.$t('nativeCarbonDashboard.titles.previousTotal', { lastMonthName: _vm.lastMonthName })},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.lastMonthCo2e.toFixed(3))+\" t CO2e \")]},proxy:true}])}),(_vm.tenantStore.features.includes('Recommendations/View'))?_c('title-sheet',{staticClass:\"hover_pointer\",attrs:{\"title\":_vm.$t('dashboard.titles.potentialSavings')},nativeOn:{\"click\":function($event){return _vm.handleSavingsClicked()}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s((_vm.recommendationSummary.maximumEstimateImpactEmissions || 0.0).toFixed(4))+\"t CO2e \"),(_vm.recommendationSummary.includesElevatedSavings === true)?_c('span',[_vm._v(\"*\")]):_vm._e()]},proxy:true}],null,false,2720879452)}):_vm._e()],1),_c('content-card',{attrs:{\"title\":_vm.$t('nativeCarbonDashboard.titles.cumulative'),\"caption\":_vm.$t('nativeCarbonDashboard.subtitle'),\"title-icon\":\"co2\",\"loading\":_vm.$wait.is('getTenantMonthlyCO2e')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-select',{staticClass:\"mt-2 mr-2\",staticStyle:{\"width\":\"100px\"},attrs:{\"label\":\"Scope\",\"items\":['Scope1', 'Scope2', 'Scope3'],\"solo-inverted\":\"\"},model:{value:(_vm.scope),callback:function ($$v) {_vm.scope=$$v},expression:\"scope\"}})]},proxy:true}])},[_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.fixedCarbonOptions.granularity,\"hide-kwh\":\"\"},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{attrs:{\"items\":_vm.groupingItems,\"currency-code\":_vm.tenantStore.currencyCode,\"segregate-by\":_vm.fixedCarbonOptions.segregateBy,\"name-header-title\":_vm.$t('nativeCarbonDashboard.titles.cumulative'),\"tag-key\":null,\"hide-kwh\":\"\"}})],1)],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { defineComponent } from 'vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport moment from '@/lib/moment';\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n} from '@/components/Domain.Carbon/CarbonBarChart.vue';\r\nimport CarbonTable, { convertToItemRecords } from '@/components/Domain.Carbon/CarbonTable.vue';\r\nimport { convertSpendOptionsToQuery } from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { Granularity } from '@/models';\r\nimport { getNativeCO2e } from '@/lib/Api';\r\nimport Config from '@/lib/Config';\r\n\r\nexport default defineComponent({\r\n props: ['me'],\r\n title(ctx) {\r\n return ctx.$t('nativeCarbonDashboard.title');\r\n },\r\n components: {\r\n CarbonBarChart,\r\n CarbonTable\r\n },\r\n created() {\r\n this.getFixedCO2EForTenant(this.fixedCarbonOptions);\r\n this.getRecommendationSummary();\r\n this.getRecommendationStatus();\r\n },\r\n data() {\r\n return {\r\n thisMonthName: moment.utc().format('MMMM'),\r\n lastMonthName: moment.utc().add(-1, 'months').format('MMMM'),\r\n\r\n currentTotalCo2E: 0.0,\r\n currentTotalKwH: 0.0,\r\n lastMonthCo2e: 0.0,\r\n lastMonthKwH: 0.0,\r\n\r\n cummulativeCo2E: 0.0,\r\n cummulativeKwH: 0.0,\r\n\r\n scope: 'Scope1',\r\n\r\n fixedCarbonOptions: {\r\n dateRangeKey: '12m',\r\n granularity: Granularity.monthly,\r\n topXResults: 30,\r\n segregateBy: 'subscriptions',\r\n },\r\n newChartData: { datasets: [], labels: [] },\r\n maxDate: undefined,\r\n datasetIndexes: null,\r\n recommendationSummary: {},\r\n recommendationStatus: {},\r\n groupingItems: {},\r\n\r\n supportEmail: Config.get().SUPPORT_EMAIL,\r\n };\r\n },\r\n watch: {\r\n fixedCarbonOptions: {\r\n handler(options) {\r\n if (!options) return;\r\n if (this.$wait.is('getTenantMonthlyCO2E')) return;\r\n this.getFixedCO2EForTenant(options);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n scope: {\r\n handler() {\r\n if (!this.fixedCarbonOptions) return;\r\n if (this.$wait.is('getTenantMonthlyCO2E')) return;\r\n this.getFixedCO2EForTenant(this.fixedCarbonOptions);\r\n },\r\n immediate: false,\r\n }\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n recommendationStatusText() {\r\n if (this.$wait.is('getRecommendationStatus') || !this.recommendationStatus) {\r\n return this.$t('dashboard.recommendationStatus.loading');\r\n }\r\n const value = this.recommendationStatus.credentialStatus;\r\n if (value === undefined) {\r\n return this.$t('dashboard.recommendationStatus.unknown');\r\n }\r\n if (value === 0 || value === 'Unavailable') {\r\n return this.$t('dashboard.recommendationStatus.unavailable');\r\n }\r\n if (value === 1 || value === 'AllGood') {\r\n return this.$t('dashboard.recommendationStatus.allGood');\r\n }\r\n if (value === 2 || value === 'PartiallyGood') {\r\n return this.$t('dashboard.recommendationStatus.partiallyGood');\r\n }\r\n if (value === 3 || value === 'ActionRequired') {\r\n return this.$t('dashboard.recommendationStatus.actionRequired');\r\n }\r\n return this.$t('dashboard.recommendationStatus.unknown');\r\n },\r\n },\r\n methods: {\r\n getFixedCO2EForTenant: waitFor('getTenantMonthlyCO2E', async function getFixedCO2EForTenant(options) {\r\n const usageParams = convertSpendOptionsToQuery(options);\r\n if (!usageParams) return;\r\n const carbonResponse = await getNativeCO2e(options.segregateBy, usageParams, this.scope);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(carbonResponse, true);\r\n this.datasetIndexes = datasetIndexes;\r\n this.newChartData = {\r\n labels: [...usageDataset.labels],\r\n datasets: [...usageDataset.datasets],\r\n };\r\n this.maxDate = usageParams.toDate;\r\n this.cummulativeCo2E = carbonResponse.totalCO2E;\r\n this.cummulativeKwH = carbonResponse.totalKwH;\r\n const tm = moment.utc();\r\n const lm = moment.utc().add(-1, 'months');\r\n this.currentTotalCo2E = carbonResponse.monthlyCO2ETotals?.[tm.format('YYYY')]?.[tm.format('MM')] || 0.0;\r\n this.currentTotalKwH = carbonResponse.monthlyKwHTotals?.[tm.format('YYYY')]?.[tm.format('MM')] || 0.0;\r\n this.lastMonthCo2e = carbonResponse.monthlyCO2ETotals?.[lm.format('YYYY')]?.[lm.format('MM')] || 0.0;\r\n this.lastMonthKwH = carbonResponse.monthlyKwHTotals?.[lm.format('YYYY')]?.[lm.format('MM')] || 0.0;\r\n this.groupingItems = convertToItemRecords(usageParams, carbonResponse);\r\n }),\r\n handleDatasetClicked({ index, isOther }) {\r\n if (isOther) {\r\n this.fixedCarbonOptions.topXResults = this.fixedCarbonOptions.topXResults + 10;\r\n } else if (this.fixedCarbonOptions.segregateBy?.startsWith('tags') || false) {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n const tag = `${encodeURIComponent(this.tagKey)}:${encodeURIComponent(datasetGroupId)}`;\r\n this.$router.push(`/nativeemissions/overview/tagkeys/${encodeURIComponent(this.tagKey)}/tag/${tag}/carbon`);\r\n } else {\r\n const datasetGroupId = this.datasetIndexes[index];\r\n this.$router.push(\r\n `/nativeemissions/overview/${this.fixedCarbonOptions.segregateBy}/${datasetGroupId}/carbon`\r\n );\r\n }\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/nativeemissions/overview');\r\n this.$title = this.$t('nativeCarbonDashboard.title');\r\n },\r\n getRecommendationSummary: waitFor('getRecommendationSummary', async function getRecommendationSummary() {\r\n if (this.tenantStore.features.includes('Recommendations/View')) {\r\n this.recommendationSummary = await ApiV2.http\r\n .get('/api/recommendations/summary')\r\n .then((r) => r.data.data);\r\n } else {\r\n this.recommendationSummary = {};\r\n }\r\n }),\r\n getRecommendationStatus: waitFor('getRecommendationStatus', async function getRecommendationStatus() {\r\n if (this.tenantStore.features.includes('Recommendations/View')) {\r\n this.recommendationStatus = await ApiV2.http\r\n .get('/api/recommendations/credentialstatus')\r\n .then((r) => r.data);\r\n } else {\r\n this.recommendationStatus = {};\r\n }\r\n }),\r\n handleSavingsClicked() {\r\n const { hasUsageDataset } = useDatasetState(this.tenantStore);\r\n if (hasUsageDataset) {\r\n if (this.recommendationStatus.credentialStatus > 1) {\r\n this.$router.push('/settings');\r\n } else {\r\n this.$router.push('/recommendations');\r\n }\r\n } else {\r\n this.isUsageDatasetWarningOpen = true;\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=9a95d252&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&id=9a95d252&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dashboard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('settings.title'),\"icon\":\"settings\",\"extended\":\"\"}},[_c('v-tabs',{attrs:{\"background-color\":\"transparent\",\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tab',{attrs:{\"to\":\"/settings/general\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"dashboard\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.general\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/users\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"key\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.users\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/amazon\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-aws\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.amazon\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/azure\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-azure\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.azure\"))+\" \")],1),(_vm.isGoogleEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/google\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-gcp\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.google\"))+\" \")],1):_vm._e(),(_vm.isAlibabaEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/alibaba\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-alicloud\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.alibaba\"))+\" \")],1):_vm._e(),(_vm.isOracleEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/oracle\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-oci\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.oracle\"))+\" \")],1):_vm._e(),(_vm.isSnowflakeEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/snowflake\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cc-icon-vendor-snowflake\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.snowflake\"))+\" \")],1):_vm._e(),(_vm.isCustomAccountsEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/custom\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"publish\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.custom\"))+\" \")],1):_vm._e(),_c('v-tab',{attrs:{\"to\":\"/settings/groups\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"people\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.groups\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/mailinglists\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"publish\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.mailinglists\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/billing\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"credit_card\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.billing\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/apimanagement\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"vpn_key\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.apimanagement\"))+\" \")],1),(_vm.isTagMappingsEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/tagmappings\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"sell\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.tagmappings\"))+\" \")],1):_vm._e(),(_vm.isActionsEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/actions\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"code\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.actions\"))+\" \")],1):_vm._e(),_c('v-tab',{attrs:{\"to\":\"/settings/fxrates\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"currency_exchange\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.fxrates\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/dimensions\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"sell\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.dimensions\"))+\" \")],1),_c('v-tab',{attrs:{\"to\":\"/settings/webhooks\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"bolt\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.webhooks\"))+\" \")],1),(_vm.isAuditEnabled)?_c('v-tab',{attrs:{\"to\":\"/settings/audit\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"list\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"settings.tabs.audit\"))+\" \")],1):_vm._e()],1)],1),_c('v-container',[_c('router-view',{attrs:{\"cloud-accounts\":_vm.cloudAccounts},on:{\"onCloudAccountsChanged\":_vm.getCloudAccounts}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"settings.title\": \"Settings\",\r\n \"settings.tabs.amazon\": \"Amazon\",\r\n \"settings.tabs.azure\": \"Azure\",\r\n \"settings.tabs.google\": \"Google\",\r\n \"settings.tabs.oracle\": \"Oracle\",\r\n \"settings.tabs.alibaba\": \"Alibaba\",\r\n \"settings.tabs.snowflake\": \"Snowflake\",\r\n \"settings.tabs.users\": \"Access Management\",\r\n \"settings.tabs.groups\": \"Groups\",\r\n \"settings.tabs.general\": \"General\",\r\n \"settings.tabs.billing\": \"Billing\",\r\n \"settings.tabs.apimanagement\": \"Api Keys\",\r\n \"settings.tabs.actions\": \"Actions\",\r\n \"settings.tabs.custom\":\"Custom\",\r\n \"settings.tabs.fxrates\":\"FX Rates\",\r\n \"settings.tabs.tagmappings\": \"Mapping Rules\",\r\n \"settings.tabs.mailinglists\": \"Mailing Lists\",\r\n \"settings.tabs.webhooks\": \"WebHooks\",\r\n \"settings.tabs.dimensions\": \"Dimensions\",\r\n \"settings.tabs.audit\": \"Audit\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndexView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndexView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndexView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./IndexView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./IndexView.vue?vue&type=template&id=73a0f4cb&\"\nimport script from \"./IndexView.vue?vue&type=script&lang=js&\"\nexport * from \"./IndexView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./IndexView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.amazon.title'),\"caption\":_vm.$t('settings.amazon.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('CreateAmazonAccountMenu',{on:{\"input\":function($event){return _vm.handleCreateNewAmazonAccount($event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))+\" \")],1)]}}])})]},proxy:true}])},[_c('amazon-ws-cloud-accounts-table',{attrs:{\"items\":_vm.amazonCloudAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit name\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit currencies\")))])],1)],1),(item.awsAssumeRoleCredential && _vm.supportsRoleBasedAccount && item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccountNew(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"settings.amazon.editNew\")))])],1)],1):_vm._e(),(item.awsIamUsageCredential && item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccountLegacy(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"settings.amazon.editLegacy\")))])],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{on:{\"click\":function($event){return _vm.copyCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"copy cloud connection\")))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"delete\")))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('CreateAmazonWsCloudAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAwsAccount),callback:function ($$v) {_vm.isCreatingAwsAccount=$$v},expression:\"isCreatingAwsAccount\"}}),_c('CreateAmazonAssumeRoleCloudAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAwsRoleBasedAccount),callback:function ($$v) {_vm.isCreatingAwsRoleBasedAccount=$$v},expression:\"isCreatingAwsRoleBasedAccount\"}}),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeletingAwsAccount),callback:function ($$v) {_vm.isDeletingAwsAccount=$$v},expression:\"isDeletingAwsAccount\"}}),_c('UpdateAmazonWsCredentialDialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAwsAccount),callback:function ($$v) {_vm.isEditingAwsAccount=$$v},expression:\"isEditingAwsAccount\"}}),_c('UpdateAmazonAssumeRoleCredentialsDialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAwsRoleBasedAccount),callback:function ($$v) {_vm.isEditingAwsRoleBasedAccount=$$v},expression:\"isEditingAwsRoleBasedAccount\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAwsAccountName),callback:function ($$v) {_vm.isEditingAwsAccountName=$$v},expression:\"isEditingAwsAccountName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-amazon-ws-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAwsAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAwsAccount'),expression:\"'creatingAwsAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Amazon' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-amazon-ws-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setAmazonWsCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" Configure your AWS Credentials. This setup can be a bit involved so we recommend reading our \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/AWS/`}},[_vm._v(\"AWS setup guide \")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n AwsIamUsageCredential: {\n ProviderId: _vm.accessKeyId,\n Token: _vm.secretAccessKey,\n Container: _vm.s3BucketName,\n RegionCode: _vm.regionCode,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.Name,\"rules\":_vm.nameRules,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. AKIAIOSFODNN7EXAMPLE\",\"label\":_vm.$t('setAmazonWsCredentialsCard.accessKeyId'),\"rules\":_vm.accessKeyIdRules,\"counter\":20,\"required\":\"\"},model:{value:(_vm.accessKeyId),callback:function ($$v) {_vm.accessKeyId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"accessKeyId\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY\",\"append-icon\":_vm.showSecretAccessKey ? 'visibility_off' : 'visibility',\"type\":_vm.showSecretAccessKey ? 'text' : 'password',\"label\":_vm.$t('setAmazonWsCredentialsCard.secretAccessKey'),\"rules\":_vm.secretAccessKeyRules,\"counter\":40,\"required\":\"\"},on:{\"click:append\":() => (_vm.showSecretAccessKey = !_vm.showSecretAccessKey)},model:{value:(_vm.secretAccessKey),callback:function ($$v) {_vm.secretAccessKey=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"secretAccessKey\"}}),_c('s3-region-autocomplete',{attrs:{\"label\":_vm.$t('setAmazonWsCredentialsCard.regionCode'),\"rules\":[() => true]},model:{value:(_vm.regionCode),callback:function ($$v) {_vm.regionCode=$$v},expression:\"regionCode\"}}),_c('s3-bucket-autocomplete',{attrs:{\"accessKeyId\":_vm.accessKeyId,\"secretAccessKey\":_vm.secretAccessKey,\"region\":_vm.regionCode,\"label\":_vm.$t('setAmazonWsCredentialsCard.s3BucketName'),\"rules\":_vm.s3BucketNameRules},model:{value:(_vm.s3BucketName),callback:function ($$v) {_vm.s3BucketName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"s3BucketName\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-autocomplete',{attrs:{\"value\":_vm.value,\"items\":_vm.matchingBuckets,\"loading\":_vm.loading,\"search-input\":_vm.search,\"rules\":_vm.rules,\"hide-no-data\":\"\",\"hide-selected\":\"\",\"label\":_vm.label,\"return-object\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event}},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [(!_vm.loading)?_c('v-icon',[_vm._v(\"search\")]):_c('v-progress-circular',{attrs:{\"width\":3,\"size\":\"24\",\"color\":\"primary\",\"indeterminate\":\"\"}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3BucketAutocomplete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3BucketAutocomplete.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./S3BucketAutocomplete.vue?vue&type=template&id=b1d87eb8&\"\nimport script from \"./S3BucketAutocomplete.vue?vue&type=script&lang=js&\"\nexport * from \"./S3BucketAutocomplete.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-autocomplete',{attrs:{\"value\":_vm.value,\"items\":_vm.matchingS3Regions,\"item-text\":\"name\",\"item-value\":\"code\",\"loading\":_vm.loading,\"search-input\":_vm.search,\"rules\":_vm.rules,\"hint\":!_vm.value ? _vm.$t('s3RegionAutocomplete.noRegionHint') : undefined,\"persistent-hint\":\"\",\"hide-no-data\":\"\",\"hide-selected\":\"\",\"label\":_vm.label,\"return-object\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event ? $event.code : null)},\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event}},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [(!_vm.loading)?_c('v-icon',[_vm._v(\"search\")]):_c('v-progress-circular',{attrs:{\"width\":3,\"size\":\"24\",\"color\":\"primary\",\"indeterminate\":\"\"}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"s3RegionAutocomplete.noRegionHint\": \"Please specify if your bucket is in a Chinese region.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3RegionAutocomplete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3RegionAutocomplete.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3RegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./S3RegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./S3RegionAutocomplete.vue?vue&type=template&id=055f8da8&\"\nimport script from \"./S3RegionAutocomplete.vue?vue&type=script&lang=js&\"\nexport * from \"./S3RegionAutocomplete.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./S3RegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setAmazonWsCredentialsCard.title\": \"Set AWS IAM Access Key Credentials\",\r\n \"setAmazonWsCredentialsCard.name.required\": \"An name for this cloud connection is required\",\r\n\r\n \"setAmazonWsCredentialsCard.accessKeyId\": \"Access Key ID\",\r\n \"setAmazonWsCredentialsCard.accessKeyId.required\": \"Access Key ID is required\",\r\n \"setAmazonWsCredentialsCard.accessKeyId.notKeyId\": \"Access Key IDs comprise of 20 alphanumeric uppercase characters\",\r\n\r\n \"setAmazonWsCredentialsCard.regionCode\": \"S3 Region\",\r\n\r\n \"setAmazonWsCredentialsCard.secretAccessKey\": \"Secret Access Key\",\r\n \"setAmazonWsCredentialsCard.secretAccessKey.required\": \"Secret Access Key is required\",\r\n \"setAmazonWsCredentialsCard.secretAccessKey.notSecretKey\": \"Secret Access Keys comprise of 40 upper and lower case characters\",\r\n\r\n \"setAmazonWsCredentialsCard.s3BucketName\": \"S3 Bucket Name (Reports)\",\r\n \"setAmazonWsCredentialsCard.s3BucketName.required\": \"S3 Bucket Name is required\",\r\n \"setAmazonWsCredentialsCard.s3BucketName.notBucketName\": \"The provided key is not a valid S3 bucket name\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAmazonWSCredentialsCard.vue?vue&type=template&id=3190db19&\"\nimport script from \"./SetAmazonWSCredentialsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAmazonWSCredentialsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAmazonWSCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonWSCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetAmazonWSCredentialsDialog.vue?vue&type=template&id=b1d795a8&\"\nimport script from \"./SetAmazonWSCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAmazonWSCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/metadata/cloudaccounts\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createCloudAccountButton.errorMessage\": \"There was an error encountered while creating this cloud connection. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCloudAccountButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCloudAccountButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostCloudAccountButton.vue?vue&type=template&id=3dc894f4&\"\nimport script from \"./PostCloudAccountButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PostCloudAccountButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonWSCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonWSCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAmazonWSCloudAccountDialog.vue?vue&type=template&id=32daa741&\"\nimport script from \"./CreateAmazonWSCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAmazonWSCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SetAmazonAssumeRoleCredentialsDialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAwsAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAwsAccount'),expression:\"'creatingAwsAccount'\"}],attrs:{\"value\":{ ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('SetAmazonAssumeRoleCredentialsCard',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.$t('setAmazonAssumeRoleCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" Configure your AWS Credentials. This setup can be a bit involved so we recommend reading our \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/AWS/`}},[_vm._v(\"AWS setup guide \")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n Type: _vm.cloudAccountType,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n AwsAssumeRoleCredential: {\n ClientDomain: _vm.externalId,\n ProviderId: _vm.roleArn,\n Token: _vm.sessionName,\n Container: _vm.s3BucketName,\n RegionCode: _vm.regionCode,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.Name,\"rules\":[ _vm.$rules.required() ],\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),(_vm.showPax8Option)?_c('v-checkbox',{attrs:{\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.isPax8Format'),\"disabled\":_vm.disabled && _vm.disabled.IsPax8},model:{value:(_vm.isPax8),callback:function ($$v) {_vm.isPax8=$$v},expression:\"isPax8\"}}):_vm._e(),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. arn:aws:iam::123456789012:role/RoleName\",\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.roleArn'),\"rules\":[ _vm.$rules.required(), _vm.$rules.test(/^arn:aws:iam::\\d{12}:role\\/[\\w+=,.@-]{1,64}$/) ],\"counter\":64,\"required\":\"\"},on:{\"change\":function($event){return _vm.tryPrefillExternalId()}},model:{value:(_vm.roleArn),callback:function ($$v) {_vm.roleArn=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"roleArn\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. 123456789012\",\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.externalId'),\"rules\":[ _vm.$rules.required(), _vm.$rules.test(/^[\\w-]{12,36}$/) ],\"counter\":12,\"required\":\"\"},model:{value:(_vm.externalId),callback:function ($$v) {_vm.externalId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"externalId\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. CloudCostAgent\",\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.sessionName'),\"rules\":[ _vm.$rules.required(), _vm.$rules.test(/^[\\w-]{2,64}$/) ],\"counter\":64,\"required\":\"\"},model:{value:(_vm.sessionName),callback:function ($$v) {_vm.sessionName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"sessionName\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.regionCode'),\"rules\":[() => true],\"placeholder\":\"e.g. ap-southeast-2\"},model:{value:(_vm.regionCode),callback:function ($$v) {_vm.regionCode=$$v},expression:\"regionCode\"}}),_c('v-text-field',{attrs:{\"label\":_vm.$t('setAmazonAssumeRoleCredentialsCard.s3BucketName'),\"rules\":_vm.s3BucketNameRules,\"placeholder\":\"e.g. my-usage-bucket\"},model:{value:(_vm.s3BucketName),callback:function ($$v) {_vm.s3BucketName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"s3BucketName\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Config from '@/lib/Config';\r\nimport { defineComponent } from 'vue';\r\nimport { useTenantStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nconst DEFAULT_SESSION_NAME = 'CloudCostAgent';\r\nconst bucketNameRegex = /(?!^(\\d{1,3}\\.){3}\\d{1,3}$)(^[a-z0-9]([a-z0-9-]*(\\.[a-z0-9])?)*$)/;\r\nexport default defineComponent({\r\n props: ['loading', 'value', 'disabled'],\r\n data() {\r\n return {\r\n valid: false,\r\n docsUrl: Config.get().DOCS_URL,\r\n name: '',\r\n useTenantCurrencies: false,\r\n externalId: '',\r\n roleArn: '',\r\n sessionName: DEFAULT_SESSION_NAME,\r\n s3BucketName: '',\r\n isPax8: false,\r\n s3BucketNameRules: [\r\n (v) => !!v || this.$t('setAmazonAssumeRoleCredentialsCard.s3BucketName.required'),\r\n (v) => bucketNameRegex.test(v) || this.$t('setAmazonAssumeRoleCredentialsCard.s3BucketName.notBucketName'),\r\n ],\r\n regionCode: ''\r\n };\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.name = val.name;\r\n this.isPax8 = val.type === 'AmazonPax8';\r\n this.useTenantCurrencies = val.useTenantCurrencies;\r\n if (val.awsAssumeRoleCredential) {\r\n this.externalId = val.awsAssumeRoleCredential.clientDomain;\r\n this.roleArn = val.awsAssumeRoleCredential.providerId;\r\n this.sessionName = val.awsAssumeRoleCredential.token;\r\n this.regionCode = val.awsAssumeRoleCredential.regionCode;\r\n this.s3BucketName = val.awsAssumeRoleCredential.container;\r\n } else {\r\n this.externalId = '';\r\n this.roleArn = '';\r\n this.sessionName = DEFAULT_SESSION_NAME\r\n this.s3BucketName = '';\r\n this.regionCode = '';\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n showPax8Option() {\r\n return this.tenantStore.hasTenantFeature(\"Pax8Isolated\");\r\n },\r\n cloudAccountType() {\r\n return this.isPax8 ? 'AmazonPax8' : 'Amazon';\r\n }\r\n },\r\n methods: {\r\n tryPrefillExternalId() {\r\n if (this.externalId) return;\r\n if (!this.roleArn) return;\r\n if (!this.roleArn.startsWith('arn:aws:iam::')) return;\r\n const [,,,,externalId] = this.roleArn.split(':');\r\n if (!externalId) return;\r\n this.externalId = externalId;\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=template&id=15943cde&\"\nimport script from \"./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAmazonAssumeRoleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetAmazonAssumeRoleCredentialsDialog.vue?vue&type=template&id=85b69f78&\"\nimport script from \"./SetAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAssumeRoleCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAssumeRoleCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAmazonAssumeRoleCloudAccountDialog.vue?vue&type=template&id=71294cdb&\"\nimport script from \"./CreateAmazonAssumeRoleCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAmazonAssumeRoleCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-amazon-ws-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAwsAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAwsAccount'),expression:\"'creatingAwsAccount'\"}],attrs:{\"type\":\"AwsIamUsageCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":`/api/metadata/cloudaccounts/${(_vm.value || {}).id}/${_vm.type}`,\"version\":\"v2\",\"value\":(_vm.value || {})[_vm.type || '']},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putCredentialButton.errorMessage\": \"There was an error encountered while updating the credentials of this cloud connection. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCredentialButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCredentialButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCredentialButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCredentialButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutCredentialButton.vue?vue&type=template&id=443b6f25&\"\nimport script from \"./PutCredentialButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PutCredentialButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutCredentialButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAmazonWSCredentialDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAmazonWSCredentialDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAmazonWSCredentialDialog.vue?vue&type=template&id=6e070c93&\"\nimport script from \"./UpdateAmazonWSCredentialDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAmazonWSCredentialDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SetAmazonAssumeRoleCredentialsDialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAwsAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true, IsPax8: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAwsAccount'),expression:\"'creatingAwsAccount'\"}],attrs:{\"type\":\"AwsAssumeRoleCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAmazonAssumeRoleCredentialsDialog.vue?vue&type=template&id=baf9cb5e&\"\nimport script from \"./UpdateAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAmazonAssumeRoleCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-cloud-account-card',{attrs:{\"loading\":_vm.$wait.is('deleteAccount'),\"value\":_vm.account,\"title\":_vm.$t('deleteCloudAccountDialog.title'),\"subtitle\":_vm.$t('deleteCloudAccountDialog.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deleteAccount'),expression:\"'deleteAccount'\"}],attrs:{\"value\":_vm.account,\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/metadata/cloudaccounts/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteCloudAccountButton.errorMessage\": \"There was an error encountered while deleting this cloud connection. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteCloudAccountButton.vue?vue&type=template&id=0af6d717&\"\nimport script from \"./DeleteCloudAccountButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteCloudAccountButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteCloudAccountDialog.title\": \"Delete Cloud Connection\",\r\n \"deleteCloudAccountDialog.subtitle\": \"Warning: This process is irreversible! Your cloud connection data will be deleted permanently and you will need to re-enter your credentials if you want to see your data again.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCloudAccountDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteCloudAccountDialog.vue?vue&type=template&id=20428412&\"\nimport script from \"./DeleteCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteCloudAccountDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('update-entity-name-card',{attrs:{\"value\":_vm.account,\"loading\":_vm.$wait.is('updatingAccountName')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('patch-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingAccountName'),expression:\"'updatingAccountName'\"}],attrs:{\"value\":_vm.account,\"patches\":[{ op: 'replace', path: 'Name', value: form.Name }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulRename(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"default\",null,{\"isValid\":_vm.valid,\"clear\":reset,\"formId\":formId,\"loading\":_vm.loading,\"form\":{ Name: _vm.entityName }})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"persistent-hint\":\"\",\"label\":_vm.$t('name'),\"required\":\"\"},model:{value:(_vm.entityName),callback:function ($$v) {_vm.entityName=$$v},expression:\"entityName\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntityNameCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntityNameCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateEntityNameCard.vue?vue&type=template&id=01bcfce6&\"\nimport script from \"./UpdateEntityNameCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateEntityNameCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":`/api/metadata/cloudaccounts/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchCloudAccountButton.errorMessage\": \"There was an error encountered while updating this cloud connection. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchCloudAccountButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchCloudAccountButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PatchCloudAccountButton.vue?vue&type=template&id=1fa5a4ec&\"\nimport script from \"./PatchCloudAccountButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PatchCloudAccountButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PatchCloudAccountButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditCloudAccountNameDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditCloudAccountNameDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditCloudAccountNameDialog.vue?vue&type=template&id=4f1f0a32&\"\nimport script from \"./EditCloudAccountNameDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditCloudAccountNameDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-cloud-account-currencies-card',{attrs:{\"value\":_vm.account,\"loading\":_vm.$wait.is('updatingAccountCurrencies')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('patch-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingAccountCurrencies'),expression:\"'updatingAccountCurrencies'\"}],attrs:{\"value\":{ Id: _vm.account ? _vm.account.id : null },\"patches\":[{ op: 'replace', path: 'UseTenantCurrencies', value: form.UseTenantCurrencies }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulRename(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setCloudAccountCurrenciesCard.title'),\"subtitle\":_vm.$t('setCloudAccountCurrenciesCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(formId, reset){return [_vm._t(\"actions\",null,{\"form\":{ UseTenantCurrencies: _vm.useTenantCurrencies },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-alert',{attrs:{\"color\":\"warning\",\"text\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" \"+_vm._s(_vm.$t('setCloudAccountCurrenciesCard.alert'))+\" \")],1),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setCloudAccountCurrenciesCard.title\": \"Set Currency Source\",\r\n \"setCloudAccountCurrenciesCard.subtitle\": \"Change the currency source of this cloud connection.\",\r\n \"setCloudAccountCurrenciesCard.alert\": \"Changes to the currency source of a cloud connection only apply to the current month on.\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCloudAccountCurrenciesCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCloudAccountCurrenciesCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCloudAccountCurrenciesCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetCloudAccountCurrenciesCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetCloudAccountCurrenciesCard.vue?vue&type=template&id=fe8c2d78&\"\nimport script from \"./SetCloudAccountCurrenciesCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetCloudAccountCurrenciesCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetCloudAccountCurrenciesCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditCloudAccountCurrenciesDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditCloudAccountCurrenciesDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditCloudAccountCurrenciesDialog.vue?vue&type=template&id=a2629d62&\"\nimport script from \"./EditCloudAccountCurrenciesDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditCloudAccountCurrenciesDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('amazonWSCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.updateRouteHistory(item)}}},[_c('span',{staticClass:\"primary--text\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")])])]}},{key:`item.AWSConnectionAccessKeyId`,fn:function({ item }){return [_c('span',{class:item.AWSConnectionEnabled ? '' : 'error--text'},[_vm._v(\" \"+_vm._s(item.AWSConnectionAccessKeyId)+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.AWSConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(_vm._s(item.AWSConnectionEnabled ? 'done' : 'error'))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.AWSConnectionEnabled ? _vm.$t('connected') : _vm.$t('amazonWSCloudAccountsTable.disconnectedUsageConnection'))+\" \")])])],1)]}},{key:`item.AWSConnectionExpiry`,fn:function({ item }){return [(!item.AWSConnectionExpiry)?_c('span',[_vm._v(\"-\")]):(item.AWSConnectionExpiry.getFullYear() > 3000)?_c('span',[_vm._v(\"Never\")]):_c('span',{class:item.AWSConnectionExpiry < new Date() ? 'error--text' : ''},[_vm._v(_vm._s(_vm._f(\"calendarFormat\")(item.AWSConnectionExpiry)))])]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\n\r\nexport function amazonCloudAccountTableFilter(ca) {\r\n return ca.providerType === 'Amazon';\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/amazon',\r\n },\r\n },\r\n data() {\r\n return {\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n };\r\n },\r\n computed: {\r\n tableEntities() {\r\n if (!this.items) return [];\r\n return this.items.filter(amazonCloudAccountTableFilter).map((ca) => {\r\n let expiryDate =\r\n ca.awsIamUsageCredential && ca.awsIamUsageCredential.expiryDate\r\n ? new Date(ca.awsIamUsageCredential.expiry)\r\n : null;\r\n // In javascript the getTime value of a date isNaN\r\n if (expiryDate && isNaN(expiryDate.getTime())) {\r\n expiryDate = null;\r\n }\r\n const AWSConnectionAccessKeyId =\r\n ca.awsIamUsageCredential?.providerId ||\r\n ca.awsAssumeRoleCredential?.providerId ||\r\n ca.type === 'SelfReferential'\r\n ? ''\r\n : '';\r\n const AWSConnectionBucketName =\r\n ca.awsIamUsageCredential?.container ||\r\n ca.awsAssumeRoleCredential?.providerId ||\r\n ca.type === 'SelfReferential'\r\n ? ''\r\n : '';\r\n const AWSConnectionEnabled =\r\n ca.awsIamUsageCredential?.valid ||\r\n ca.awsAssumeRoleCredential?.valid ||\r\n ca.type === 'SelfReferential';\r\n return {\r\n Id: ca.id,\r\n Name: ca.name,\r\n AWSConnectionEnabled,\r\n AWSConnectionAccessKeyId,\r\n AWSConnectionBucketName,\r\n AWSConnectionExpiry: expiryDate,\r\n _original: ca,\r\n };\r\n });\r\n },\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'Name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('amazonWSCloudAccountsTable.accessKeyId'),\r\n value: 'AWSConnectionAccessKeyId',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('amazonWSCloudAccountsTable.bucketName'),\r\n value: 'AWSConnectionBucketName',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('amazonWSCloudAccountsTable.expiry'),\r\n value: 'AWSConnectionExpiry',\r\n sortable: true,\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n methods: {\r\n updateRouteHistory(item) {\r\n const navigationHistory: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsAWSCloudAccount,\r\n tenantId: null,\r\n cloudAccountId: item.Id,\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationHistory);\r\n return this.$router.push(`${this.routePrefix}/${item.Id}`);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonWSCloudAccountsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonWSCloudAccountsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonWSCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonWSCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AmazonWSCloudAccountsTable.vue?vue&type=template&id=59343188&scoped=true&\"\nimport script from \"./AmazonWSCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AmazonWSCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AmazonWSCloudAccountsTable.vue?vue&type=style&index=0&id=59343188&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59343188\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AmazonWSCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('PrettyListItemMenu',{attrs:{\"items\":_vm.prettyListItems},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}}],null,true)},[_c('v-list',{attrs:{\"light\":\"\",\"max-width\":\"450\"}},_vm._l((_vm.prettyListItems),function(item,i){return _c('fragment',{key:item.key},[_c('pretty-list-item',{attrs:{\"top\":item.top,\"text\":item.text,\"bottom\":item.bottom,\"light\":true},on:{\"click\":function($event){return _vm.$emit('input', item.key)}}}),(i !== _vm.items.length - 1)?_c('v-divider'):_vm._e()],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-list-item',_vm._g({staticStyle:{\"height\":\"100%\"},attrs:{\"color\":\"primary\"}},_vm.$listeners),[_c('v-list-item-content',[_c('div',{class:`${_vm.light ? 'grey--text' : 'primary--text'} body-2 mb-2 font-weight-light`},[_vm._t(\"top\",function(){return [_vm._v(_vm._s(_vm.top))]})],2),_c('v-list-item-title',{staticClass:\"mb-2\"},[_vm._t(\"default\",function(){return [_c('span',[_vm._v(_vm._s(_vm.text))])]})],2),_c('div',{class:`v-markdown caption ${_vm.light ? 'grey--text' : ''} text--darken-1`},[_vm._t(\"bottom\",function(){return [_c('p',[_vm._v(_vm._s(_vm.bottom))])]})],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PrettyListItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PrettyListItem.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PrettyListItem.vue?vue&type=template&id=48348354&\"\nimport script from \"./PrettyListItem.vue?vue&type=script&lang=js&\"\nexport * from \"./PrettyListItem.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport PrettyListItem from \"@/components/Common/PrettyListItem.vue\";\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport interface IPrettyListItemViewModel {\r\n top: string;\r\n text: string;\r\n bottom: string;\r\n key: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: { items: Array },\r\n components: { PrettyListItem },\r\n computed: {\r\n prettyListItems():IPrettyListItemViewModel[] {\r\n return this.items;\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PrettyListItemMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PrettyListItemMenu.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PrettyListItemMenu.vue?vue&type=template&id=c18db880&\"\nimport script from \"./PrettyListItemMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./PrettyListItemMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport PrettyListItemMenu, {\r\n IPrettyListItemViewModel,\r\n} from \"@/components/Common/PrettyListItemMenu.vue\";\r\nimport { defineComponent } from \"vue\";\r\nimport { CloudCredentialType } from \"@/models\";\r\nimport Config from \"@/lib/Config\";\r\nimport { useTenantStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nexport default defineComponent({\r\n components: { PrettyListItemMenu },\r\n props: {\r\n value: null,\r\n items: {\r\n type: Array,\r\n default: () => [\r\n CloudCredentialType.awsAssumeRoleUsage,\r\n CloudCredentialType.awsIamUsage,\r\n ],\r\n },\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n prettyListItems(): IPrettyListItemViewModel[] {\r\n if (!this.items) return [];\r\n\r\n if (this.tenantStore.hasTenantFeature(\"Pax8Isolated\"))\r\n return new Array({\r\n key: \"AwsAssumeRoleUsage\",\r\n top: this.$t(`createAmazonAccountMenu.AwsPax8AssumeRoleUsage.top`),\r\n text: this.$t(`createAmazonAccountMenu.AwsPax8AssumeRoleUsage.text`),\r\n bottom: this.$t(`createAmazonAccountMenu.AwsPax8AssumeRoleUsage.bottom`)\r\n }); \r\n\r\n return this.items\r\n .filter(\r\n (i:string) =>\r\n i != CloudCredentialType.awsAssumeRoleUsage ||\r\n Config.isFeatureEnabled(\"EnabledAwsAssumeRole\")\r\n )\r\n .map((i: string) => ({\r\n key: i,\r\n top: this.$t(`createAmazonAccountMenu.${i}.top`),\r\n text: this.$t(`createAmazonAccountMenu.${i}.text`),\r\n bottom: this.$t(`createAmazonAccountMenu.${i}.bottom`),\r\n }));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAccountMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAccountMenu.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAmazonAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateAmazonAccountMenu.vue?vue&type=template&id=1b64b181&\"\nimport script from \"./CreateAmazonAccountMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateAmazonAccountMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateAmazonAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CreateAmazonWsCloudAccountDialog from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue\";\r\nimport CreateAmazonAssumeRoleCloudAccountDialog from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue\";\r\nimport UpdateAmazonWsCredentialDialog from \"@/components/Settings.CloudAccounts/Amazon/UpdateAmazonWSCredentialDialog.vue\";\r\nimport UpdateAmazonAssumeRoleCredentialsDialog from \"@/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue\";\r\nimport DeleteCloudAccountDialog from \"@/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue\";\r\nimport EditCloudAccountNameDialog from \"@/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue\";\r\nimport EditCloudAccountCurrenciesDialog from \"@/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue\";\r\nimport AmazonWsCloudAccountsTable, {\r\n amazonCloudAccountTableFilter,\r\n} from \"@/components/Settings.CloudAccounts/Amazon/AmazonWSCloudAccountsTable.vue\";\r\nimport CreateAmazonAccountMenu from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue\";\r\nimport TaxonomyType from \"@/stores/models/TaxonomyType\";\r\nimport { ICloudAccountNavigation } from \"@/stores/models/ICloudAccountNavigation\";\r\nimport { useCloudAccountNavigationStore } from \"@/stores/cloudAccountNavigation\";\r\nimport { useTenantStore } from \"@/stores/tenant\";\r\nimport { mapStores } from \"pinia\";\r\nimport { defineComponent } from \"vue\";\r\nimport { CloudCredentialType } from \"@/models\";\r\nimport Config from '@/lib/Config';\r\n\r\nexport default defineComponent({\r\n props: {\r\n cloudAccounts: Array,\r\n },\r\n components: {\r\n CreateAmazonWsCloudAccountDialog,\r\n CreateAmazonAssumeRoleCloudAccountDialog,\r\n UpdateAmazonWsCredentialDialog,\r\n UpdateAmazonAssumeRoleCredentialsDialog,\r\n DeleteCloudAccountDialog,\r\n AmazonWsCloudAccountsTable,\r\n EditCloudAccountNameDialog,\r\n EditCloudAccountCurrenciesDialog,\r\n CreateAmazonAccountMenu,\r\n },\r\n title() {\r\n return this.$t(\"settings.amazon.title\");\r\n },\r\n data() {\r\n return {\r\n isCreatingAwsAccount: false,\r\n isCreatingAwsRoleBasedAccount: false,\r\n isEditingAwsAccount: false,\r\n isEditingAwsRoleBasedAccount: false,\r\n isEditingAwsAccountName: false,\r\n isEditingAccountCurrencies: false,\r\n isDeletingAwsAccount: false,\r\n focusedAccount: null,\r\n supportsRoleBasedAccount: Config.isFeatureEnabled('EnabledAwsAssumeRole')\r\n };\r\n },\r\n computed: {\r\n amazonCloudAccounts() {\r\n return this.cloudAccounts.filter(amazonCloudAccountTableFilter);\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n handleCreateNewAmazonAccount(\r\n key: CloudCredentialType.awsAssumeRoleUsage | CloudCredentialType.awsIamUsage\r\n ) {\r\n if (key === CloudCredentialType.awsAssumeRoleUsage) {\r\n this.isCreatingAwsRoleBasedAccount = true;\r\n } else if (key === CloudCredentialType.awsIamUsage) {\r\n this.isCreatingAwsAccount = true;\r\n }\r\n },\r\n handleDialogChange(isOpen) {\r\n if (isOpen) return;\r\n this.$router.push(\"/settings/amazon\");\r\n this.$title = this.$t(\"settings.amazon.title\");\r\n },\r\n onCloudAccountsChanged() {\r\n this.$emit(\"onCloudAccountsChanged\");\r\n },\r\n startEditName(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAwsAccountName = true;\r\n },\r\n startEditCurrencies(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAccountCurrencies = true;\r\n },\r\n startEditCloudAccountLegacy(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAwsAccount = true;\r\n },\r\n startEditCloudAccountNew(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAwsRoleBasedAccount = true;\r\n },\r\n copyCloudAccount(item) {\r\n const navigationSource: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsAWS,\r\n tenantId: null,\r\n cloudAccountId: null,\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationSource);\r\n const url = `/copy/cloudaccounts/${item.cloudAccountId}`;\r\n this.$router.push(url);\r\n },\r\n startDeleteAccount(account) {\r\n this.focusedAccount = account;\r\n this.isDeletingAwsAccount = true;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AmazonView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AmazonView.vue?vue&type=template&id=4667a498&\"\nimport script from \"./AmazonView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AmazonView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AmazonView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.azure.title'),\"caption\":_vm.$t('settings.azure.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-cloud-account-menu',{attrs:{\"items\":_vm.cloudAccountTypes},on:{\"input\":function($event){return _vm.startCreateAccount($event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))+\" \")],1)]}}])})]},proxy:true}])},[_c('azure-cloud-accounts-table',{attrs:{\"items\":_vm.azureCloudAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.connectionmenu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[(item.type !== 'SelfReferential' && item.type !== 'Azure')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit usage connection\")))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditArmConnection(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[(item.type !== 'Azure')?_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit enhanced connection\")))]):_vm._e(),(item.type == 'Azure')?_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit connection\")))]):_vm._e()],1)],1)],1)],1)]}},{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit name\")))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"edit currencies\")))])],1)],1),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{on:{\"click\":function($event){return _vm.copyCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"copy cloud connection\")))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t(\"delete\")))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('create-azure-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzureArmAccount),callback:function ($$v) {_vm.isCreatingAzureArmAccount=$$v},expression:\"isCreatingAzureArmAccount\"}}),_c('create-azure-cme-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzureCmeAccount),callback:function ($$v) {_vm.isCreatingAzureCmeAccount=$$v},expression:\"isCreatingAzureCmeAccount\"}}),_c('create-azure-ea-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzureEaAccount),callback:function ($$v) {_vm.isCreatingAzureEaAccount=$$v},expression:\"isCreatingAzureEaAccount\"}}),_c('create-rhipe-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingRhipeAccount),callback:function ($$v) {_vm.isCreatingRhipeAccount=$$v},expression:\"isCreatingRhipeAccount\"}}),_c('CreateAmazonAssumeRoleCloudAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzurePax8Account),callback:function ($$v) {_vm.isCreatingAzurePax8Account=$$v},expression:\"isCreatingAzurePax8Account\"}}),_c('update-azure-arm-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAzureArmAccount),callback:function ($$v) {_vm.isEditingAzureArmAccount=$$v},expression:\"isEditingAzureArmAccount\"}}),_c('update-azure-cme-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAzureCmeAccount),callback:function ($$v) {_vm.isEditingAzureCmeAccount=$$v},expression:\"isEditingAzureCmeAccount\"}}),_c('update-azure-ea-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAzureEaAccount),callback:function ($$v) {_vm.isEditingAzureEaAccount=$$v},expression:\"isEditingAzureEaAccount\"}}),_c('update-rhipe-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingRhipeAccount),callback:function ($$v) {_vm.isEditingRhipeAccount=$$v},expression:\"isEditingRhipeAccount\"}}),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeletingAccount),callback:function ($$v) {_vm.isDeletingAccount=$$v},expression:\"isDeletingAccount\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountName),callback:function ($$v) {_vm.isEditingAccountName=$$v},expression:\"isEditingAccountName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('UpdateAmazonAssumeRoleCredentialsDialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAzurePax8Account),callback:function ($$v) {_vm.isEditingAzurePax8Account=$$v},expression:\"isEditingAzurePax8Account\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('PrettyListItemMenu',{attrs:{\"items\":_vm.prettyListItems},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport PrettyListItemMenu, {\r\n IPrettyListItemViewModel,\r\n} from \"@/components/Common/PrettyListItemMenu.vue\";\r\nimport { defineComponent } from \"vue\";\r\nimport { CloudAccountType } from '@/models';\r\nexport default defineComponent({\r\n components: { PrettyListItemMenu },\r\n props: {\r\n value: null,\r\n items: {\r\n type: Array,\r\n default: () => [\r\n CloudAccountType.azure,\r\n CloudAccountType.azurecme,\r\n CloudAccountType.amazon,\r\n CloudAccountType.google,\r\n CloudAccountType.microsoftCsp,\r\n CloudAccountType.rhipe,\r\n CloudAccountType.vmWare,\r\n CloudAccountType.alibaba,\r\n ],\r\n },\r\n },\r\n computed: {\r\n prettyListItems(): IPrettyListItemViewModel[] {\r\n if (!this.items) return [];\r\n return this.items.map((i: string) => ({\r\n key: i,\r\n top: this.$t(`createCloudAccountMenu.${i}.top`),\r\n text: this.$t(`createCloudAccountMenu.${i}.text`),\r\n bottom: this.$t(`createCloudAccountMenu.${i}.bottom`),\r\n }));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCloudAccountMenu.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCloudAccountMenu.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCloudAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateCloudAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateCloudAccountMenu.vue?vue&type=template&id=8b2db88e&\"\nimport script from \"./CreateCloudAccountMenu.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateCloudAccountMenu.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateCloudAccountMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-arm-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAzureArmAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAzureArmAccount'),expression:\"'creatingAzureArmAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Azure' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-azure-arm-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setAzureArmCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\"Configure your Azure Resource Manager credentials. These credentials correspond to a single Azure AD app that you need to configure in your tenant. You can find more information on how to configure these credentials \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/Azure`}},[_vm._v(\"here \")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n Features: _vm.copyRemoteTags ? 'CopyRemoteTags' : null,\n AzureActiveDirectoryApplicationCredential: {\n ClientDomain: _vm.tenantId,\n ProviderId: _vm.clientId,\n Token: _vm.clientSecret,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.Name,\"rules\":_vm.nameRules,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-checkbox',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('setAzureArmCredentialsCard.copyRemoteTags'),\"disabled\":_vm.disabled && _vm.disabled.CopyRemoteTags},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('setAzureArmCredentialsCard.copyRemoteTags.tooltip')))])])]},proxy:true}]),model:{value:(_vm.copyRemoteTags),callback:function ($$v) {_vm.copyRemoteTags=$$v},expression:\"copyRemoteTags\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.tenantIdRules,\"required\":\"\",\"label\":_vm.$t('setAzureArmCredentialsCard.tenantId')},model:{value:(_vm.tenantId),callback:function ($$v) {_vm.tenantId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"tenantId\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientIdRules,\"counter\":36,\"required\":\"\",\"label\":_vm.$t('setAzureArmCredentialsCard.clientId')},model:{value:(_vm.clientId),callback:function ($$v) {_vm.clientId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientId\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientSecretRules,\"append-icon\":_vm.showClientSecret ? 'visibility_off' : 'visibility',\"type\":_vm.showClientSecret ? 'text' : 'password',\"required\":\"\",\"label\":_vm.$t('setAzureArmCredentialsCard.clientSecret')},on:{\"click:append\":() => (_vm.showClientSecret = !_vm.showClientSecret)},model:{value:(_vm.clientSecret),callback:function ($$v) {_vm.clientSecret=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientSecret\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setAzureArmCredentialsCard.title\": \"Set Azure Credentials\",\r\n \"setAzureArmCredentialsCard.name.required\": \"A name for this cloud connection is required\",\r\n \"setAzureArmCredentialsCard.tenantId\": \"Tenant ID\",\r\n \"setAzureArmCredentialsCard.tenantId.required\": \"Tenant ID is required\",\r\n \"setAzureArmCredentialsCard.tenantId.notGuid\": \"Tenant ID is not a valid GUID\",\r\n \"setAzureArmCredentialsCard.copyRemoteTags\": \"Load Current Azure Tag Hierarchy\",\r\n \"setAzureArmCredentialsCard.copyRemoteTags.tooltip\": \"Do you want to load the current subscription and resource group tags?\",\r\n \"setAzureArmCredentialsCard.clientId\": \"Client ID (App ID)\",\r\n \"setAzureArmCredentialsCard.clientId.required\": \"Client ID is required\",\r\n \"setAzureArmCredentialsCard.clientId.notGuid\": \"Client ID is not a valid GUID\",\r\n \"setAzureArmCredentialsCard.clientSecret\": \"Client Secret\",\r\n \"setAzureArmCredentialsCard.clientSecret.required\": \"Client Secret is required\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAzureARMCredentialsCard.vue?vue&type=template&id=4cfc491a&\"\nimport script from \"./SetAzureARMCredentialsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureARMCredentialsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAzureARMCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetAzureARMCredentialsDialog.vue?vue&type=template&id=990a1640&\"\nimport script from \"./SetAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAzureCloudAccountDialog.vue?vue&type=template&id=7da9f674&\"\nimport script from \"./CreateAzureCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAzureCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-cme-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAzureCmeAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAzureCmeAccount'),expression:\"'creatingAzureCmeAccount'\"}],attrs:{\"value\":{ ...form, Type: 'AzureCme' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-azure-cme-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setAzureCmeCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\"Configure your Azure Resource Manager credentials. These credentials correspond to a single Azure AD app that you need to configure in your tenant. You also need to configure the options for the Azure Cost Management export. More information is available \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/AzureCME`}},[_vm._v(\"here \")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n Features: _vm.copyRemoteTags ? 'CopyRemoteTags' : null,\n AzureEntraApplicationWithStorageCredential: {\n ClientDomain: _vm.tenantId,\n ProviderId: _vm.clientId,\n Token: _vm.clientSecret,\n RegionCode: _vm.storageAccount,\n Container: _vm.container.concat('/', _vm.directoryName, '/', _vm.exportName)\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.Name,\"rules\":_vm.nameRules,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-row',[_c('v-col',[_c('v-checkbox',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}})],1),_c('v-col',[_c('v-checkbox',{staticStyle:{\"width\":\"300px\"},attrs:{\"label\":_vm.$t('setAzureCmeCredentialsCard.copyRemoteTags'),\"disabled\":_vm.disabled && _vm.disabled.CopyRemoteTags},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('setAzureCmeCredentialsCard.copyRemoteTags.tooltip')))])])]},proxy:true}]),model:{value:(_vm.copyRemoteTags),callback:function ($$v) {_vm.copyRemoteTags=$$v},expression:\"copyRemoteTags\"}})],1)],1),_c('v-text-field',{attrs:{\"rules\":_vm.tenantIdRules,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.tenantId')},model:{value:(_vm.tenantId),callback:function ($$v) {_vm.tenantId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"tenantId\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientIdRules,\"counter\":36,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.clientId')},model:{value:(_vm.clientId),callback:function ($$v) {_vm.clientId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientId\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientSecretRules,\"append-icon\":_vm.showClientSecret ? 'visibility_off' : 'visibility',\"type\":_vm.showClientSecret ? 'text' : 'password',\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.clientSecret')},on:{\"click:append\":() => (_vm.showClientSecret = !_vm.showClientSecret)},model:{value:(_vm.clientSecret),callback:function ($$v) {_vm.clientSecret=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientSecret\"}}),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"counter\":24,\"rules\":_vm.storageAccountRules,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.storageAccount')},model:{value:(_vm.storageAccount),callback:function ($$v) {_vm.storageAccount=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"storageAccount\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"counter\":36,\"rules\":_vm.containerRules,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.container')},model:{value:(_vm.container),callback:function ($$v) {_vm.container=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"container\"}})],1)],1),_c('v-row',[_c('v-col',[_c('v-text-field',{attrs:{\"counter\":36,\"rules\":_vm.directoryNameRules,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.directoryName')},model:{value:(_vm.directoryName),callback:function ($$v) {_vm.directoryName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"directoryName\"}})],1),_c('v-col',[_c('v-text-field',{attrs:{\"counter\":36,\"rules\":_vm.exportNameRules,\"required\":\"\",\"label\":_vm.$t('setAzureCmeCredentialsCard.exportName')},model:{value:(_vm.exportName),callback:function ($$v) {_vm.exportName=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"exportName\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setAzureCmeCredentialsCard.title\": \"Set Azure Credentials (Cost Management Export)\", \r\n \"setAzureCmeCredentialsCard.name.required\": \"A name for this cloud connection is required\",\r\n \"setAzureCmeCredentialsCard.tenantId\": \"Tenant ID\",\r\n \"setAzureCmeCredentialsCard.tenantId.required\": \"Tenant ID is required\",\r\n \"setAzureCmeCredentialsCard.tenantId.notGuid\": \"Tenant ID is not a valid GUID\",\r\n \"setAzureCmeCredentialsCard.copyRemoteTags\": \"Load Current Azure Tags\",\r\n \"setAzureCmeCredentialsCard.copyRemoteTags.tooltip\": \"Do you want to load the current subscription and resource group tags?\",\r\n \"setAzureCmeCredentialsCard.clientId\": \"Client ID (App ID)\",\r\n \"setAzureCmeCredentialsCard.storageAccount\": \"Storage Account Name\",\r\n \"setAzureCmeCredentialsCard.storageAccount.required\": \"Storage Account Name is required\", \r\n \"setAzureCmeCredentialsCard.container\": \"Container Name\",\r\n \"setAzureCmeCredentialsCard.container.required\": \"Container Name is required\",\r\n \"setAzureCmeCredentialsCard.directoryName\": \"Directory Name\",\r\n \"setAzureCmeCredentialsCard.directoryName.required\": \"Directory is required\",\r\n \"setAzureCmeCredentialsCard.exportName\": \"Export Name\",\r\n \"setAzureCmeCredentialsCard.exportName.required\": \"Export Name is required\",\r\n \"setAzureCmeCredentialsCard.clientId.required\": \"Client ID is required\",\r\n \"setAzureCmeCredentialsCard.clientId.notGuid\": \"Client ID is not a valid GUID\",\r\n \"setAzureCmeCredentialsCard.clientSecret\": \"Client Secret\",\r\n \"setAzureCmeCredentialsCard.clientSecret.required\": \"Client Secret is required\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAzureCmeCredentialsCard.vue?vue&type=template&id=6e02b8f3&\"\nimport script from \"./SetAzureCmeCredentialsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureCmeCredentialsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAzureCmeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetAzureCmeCredentialsDialog.vue?vue&type=template&id=dc01f500&\"\nimport script from \"./SetAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureCmeCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureCmeCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAzureCmeCloudAccountDialog.vue?vue&type=template&id=7750f8dd&\"\nimport script from \"./CreateAzureCmeCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAzureCmeCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-ea-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAzureEaAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAzureEaAccount'),expression:\"'creatingAzureEaAccount'\"}],attrs:{\"value\":{ ...form, Type: 'AzureEa' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-azure-ea-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setAzureEaCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_c('v-icon',{attrs:{\"color\":\"warning\",\"left\":\"\"}},[_vm._v(\"warning\")]),_vm._v(\" The recommended connection method for Azure enterprise agreements is now to setup Azure ARM credentials instead. The credentials below are from the legacy EA portal which is only active for Azure China tenants and is slowly being phased out. If you still have valid EA Global API keys they will work, but you will not be able to regenerate them. \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n EaPortalApiCredential: { Token: _vm.eaApiKey },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.nameRules,\"disabled\":_vm.disabled && _vm.disabled.Name,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. eyJhbGciOiJ...\",\"append-icon\":_vm.showEaApiKey ? 'visibility_off' : 'visibility',\"type\":_vm.showEaApiKey ? 'text' : 'password',\"label\":_vm.$t('setAzureEaCredentialsCard.eaApiKey'),\"rules\":_vm.eaApiKeyRules,\"required\":\"\"},on:{\"click:append\":() => (_vm.showEaApiKey = !_vm.showEaApiKey)},model:{value:(_vm.eaApiKey),callback:function ($$v) {_vm.eaApiKey=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"eaApiKey\"}}),(_vm.enrollmentNumber)?_c('v-text-field',{attrs:{\"label\":_vm.$t('setAzureEaCredentialsCard.enrollmentNumber'),\"disabled\":\"\"},model:{value:(_vm.enrollmentNumber),callback:function ($$v) {_vm.enrollmentNumber=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"enrollmentNumber\"}}):_vm._e(),(_vm.expiryDate)?_c('v-text-field',{attrs:{\"label\":_vm.$t('setAzureEaCredentialsCard.expiryDate'),\"disabled\":\"\"},model:{value:(_vm.expiryDate),callback:function ($$v) {_vm.expiryDate=$$v},expression:\"expiryDate\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function parseJwt(token) {\r\n try {\r\n return JSON.parse(atob(token.split('.')[1]));\r\n } catch (e) {\r\n return null;\r\n }\r\n}\r\n","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setAzureEaCredentialsCard.title\": \"Set Azure EA Credentials\",\r\n \"setAzureEaCredentialsCard.enrollmentNumber\": \"Enrollment Number\",\r\n \"setAzureEaCredentialsCard.expiryDate\": \"Expiry Date\",\r\n \"setAzureEaCredentialsCard.eaApiKey\": \"EA Api Key\",\r\n \"setAzureEaCredentialsCard.name.required\": \"An name for this cloud connection is required\",\r\n \"setAzureEaCredentialsCard.eaApiKey.required\": \"An ea api key is required for this cloud connection\",\r\n \"setAzureEaCredentialsCard.eaApiKey.parseError\": \"The ea api key supplied is not valid\",\r\n \"setAzureEaCredentialsCard.eaApiKey.expired\": \"The ea api key supplied has expired.\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAzureEaCredentialsCard.vue?vue&type=template&id=1b376528&\"\nimport script from \"./SetAzureEaCredentialsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureEaCredentialsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAzureEaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetAzureEaCredentialsDialog.vue?vue&type=template&id=248dbe00&\"\nimport script from \"./SetAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureEaCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAzureEaCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAzureEaCloudAccountDialog.vue?vue&type=template&id=9bf8d390&\"\nimport script from \"./CreateAzureEaCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAzureEaCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-rhipe-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingRhipeAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingRhipeAccount'),expression:\"'creatingRhipeAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Rhipe' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-rhipe-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setRhipeCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" You can get your client credentials from the \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":\"https://www.prismportal.online/customers\"}},[_vm._v(\"Customer Management \")]),_vm._v(\" page. \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n RhipeApiCredential: { ProviderId: _vm.clientId, Token: _vm.clientSecret },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":_vm.nameRules,\"disabled\":_vm.disabled && _vm.disabled.Name,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientIdRules,\"counter\":36,\"required\":\"\",\"label\":_vm.$t('setRhipeCredentialsCard.clientId')},model:{value:(_vm.clientId),callback:function ($$v) {_vm.clientId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientId\"}}),_c('v-text-field',{attrs:{\"rules\":_vm.clientSecretRules,\"append-icon\":_vm.showClientSecret ? 'visibility_off' : 'visibility',\"type\":_vm.showClientSecret ? 'text' : 'password',\"required\":\"\",\"label\":_vm.$t('setRhipeCredentialsCard.clientSecret')},on:{\"click:append\":() => (_vm.showClientSecret = !_vm.showClientSecret)},model:{value:(_vm.clientSecret),callback:function ($$v) {_vm.clientSecret=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"clientSecret\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"setRhipeCredentialsCard.title\": \"Set Rhipe Client Credentials\",\r\n \"setRhipeCredentialsCard.name.required\": \"An name for this cloud connection is required\",\r\n \"setRhipeCredentialsCard.clientId\": \"Client ID\",\r\n \"setRhipeCredentialsCard.clientId.required\": \"An client ID is required\",\r\n \"setRhipeCredentialsCard.clientId.notGuid\": \"The provided client ID is not a valid guid\",\r\n \"setRhipeCredentialsCard.clientSecret\": \"Client Secret\",\r\n \"setRhipeCredentialsCard.clientSecret.required\": \"An client secret is required\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetRhipeCredentialsCard.vue?vue&type=template&id=67580ed5&\"\nimport script from \"./SetRhipeCredentialsCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetRhipeCredentialsCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetRhipeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetRhipeCredentialsDialog.vue?vue&type=template&id=4cfb3ad8&\"\nimport script from \"./SetRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateRhipeCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateRhipeCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateRhipeCloudAccountDialog.vue?vue&type=template&id=ff6bbabe&\"\nimport script from \"./CreateRhipeCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateRhipeCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-arm-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAzureArmAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAzureArmAccount'),expression:\"'creatingAzureArmAccount'\"}],attrs:{\"type\":\"AzureActiveDirectoryApplicationCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAzureARMCredentialsDialog.vue?vue&type=template&id=39e563f4&\"\nimport script from \"./UpdateAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAzureARMCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-cme-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('updatingAzureCmeAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingAzureCmeAccount'),expression:\"'updatingAzureCmeAccount'\"}],attrs:{\"type\":\"AzureEntraApplicationWithStorageCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAzureCmeCredentialsDialog.vue?vue&type=template&id=c0ee3df8&\"\nimport script from \"./UpdateAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAzureCmeCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-azure-ea-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAzureEaAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAzureEaAccount'),expression:\"'creatingAzureEaAccount'\"}],attrs:{\"type\":\"EaPortalApiCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAzureEaCredentialsDialog.vue?vue&type=template&id=c34672b4&\"\nimport script from \"./UpdateAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAzureEaCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-rhipe-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingRhipeAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingRhipeAccount'),expression:\"'creatingRhipeAccount'\"}],attrs:{\"type\":\"RhipeApiCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateRhipeCredentialsDialog.vue?vue&type=template&id=77e59405&\"\nimport script from \"./UpdateRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateRhipeCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"Name\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc,\"expanded\":_vm.expanded,\"show-expand\":\"\"},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event},\"update:expanded\":function($event){_vm.expanded=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('azureCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:\"expanded-item\",fn:function({ item, headers }){return [_c('td',{attrs:{\"colspan\":headers.length}},[_c('v-simple-table',{staticClass:\"ma-2\",attrs:{\"dense\":\"\"}},[_c('thead',[_c('th'),_c('th',{staticClass:\"text-left\"},[_vm._v(_vm._s(_vm.$t('Connection')))]),_c('th'),_c('th',[_vm._v(_vm._s(_vm.$t('Usage')))]),_c('th',[_vm._v(_vm._s(_vm.$t('azureCloudAccountsTable.enhancedFeatureConnection')))])]),_c('tbody',[_c('tr',[_c('td'),_c('td',{staticClass:\"px-0\"},[_vm._v(\" \"+_vm._s(item.UsageConnectionType1)+\" \")]),_c('td',[(\n item._original.type == 'Azure' &&\n item._original.azureActiveDirectoryApplicationCredential\n )?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.showAzureSubscriptions(item)}}},[_vm._v(_vm._s(_vm.$t('azureCloudAccountsTable.subscriptions')))]):_c('div',{staticClass:\"px-12\"},[_vm._v(\" \")])],1),_c('td',{staticStyle:{\"text-align\":\"center\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.UsageConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(\" \"+_vm._s(item.UsageConnectionEnabled ? 'done' : 'error')+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.UsageConnectionEnabled ? _vm.$t('connected') : _vm.$t('azureCloudAccountsTable.disconnectedUsageConnection')))])])],1),_c('td',{staticStyle:{\"text-align\":\"center\"}},[(item._original.type != 'Azure' && item._original.type != 'AzureCme')?_c('div',[_c('span',[_vm._v(\"-\")])]):_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.EnhancedConnectionEnabled\n ? 'success'\n : item.ARMConnectionTenantId\n ? 'error'\n : 'warning'}},on),[_vm._v(\" \"+_vm._s(item.EnhancedConnectionEnabled ? 'done' : 'error')+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.EnhancedConnectionEnabled ? _vm.$t('connected') : item.ARMConnectionTenantId ? _vm.$t('azureCloudAccountsTable.disconnectedArmConnection') : _vm.$t('azureCloudAccountsTable.unsuppliedArmConnection'))+\" \")])])],1)]),(item.UsageConnectionType2)?_c('tr',[_c('td'),_c('td',{staticClass:\"px-0\"},[_vm._v(\" \"+_vm._s(item.UsageConnectionType2)+\" \")]),_c('td',[(item._original.azureActiveDirectoryApplicationCredential)?_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"x-small\":\"\"},on:{\"click\":function($event){return _vm.showAzureSubscriptions(item)}}},[_vm._v(_vm._s(_vm.$t('azureCloudAccountsTable.subscriptions')))]):_c('div',{staticClass:\"px-12\"},[_vm._v(\" \")])],1),_c('td',{staticStyle:{\"text-align\":\"center\"}},[_c('span',[_vm._v(\"-\")])]),_c('td',{staticStyle:{\"text-align\":\"center\"}},[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.EnhancedConnectionEnabled\n ? 'success'\n : item.ARMConnectionTenantId\n ? 'error'\n : 'warning'}},on),[_vm._v(\" \"+_vm._s(item.EnhancedConnectionEnabled ? 'done' : 'error')+\" \")])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.EnhancedConnectionEnabled ? _vm.$t('connected') : item.ARMConnectionTenantId ? _vm.$t('azureCloudAccountsTable.disconnectedArmConnection') : _vm.$t('azureCloudAccountsTable.unsuppliedArmConnection'))+\" \")])])],1)]):_vm._e()])])],1),_c('td',[_vm._t(\"item.connectionmenu\",null,{\"item\":item._original})],2)]}},{key:`item.Name`,fn:function({ item }){return [_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.updateRouteHistory(item)}}},[_c('span',{staticClass:\"primary--text\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")])])]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('subscriptions-dialog',{attrs:{\"value\":_vm.selectedCredential},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('back-button',{on:{\"click\":function($event){return close()}}})]},proxy:true}],null,true)})]}}]),model:{value:(_vm.showSubscriptions),callback:function ($$v) {_vm.showSubscriptions=$$v},expression:\"showSubscriptions\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('showAzureSubscriptions.title')},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\"Azure subscriptions that are visible to the selected Azure Resource Manager credential. You can find more information on how to configure the Azure AD app credentials \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/Azure`}},[_vm._v(\"here \")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ reset }){return [_vm._t(\"actions\",null,{\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-data-table',{attrs:{\"dense\":\"\",\"loading\":_vm.$wait.is('getSubscriptions'),\"headers\":_vm.headers,\"items\":_vm.subscriptions,\"hide-default-footer\":\"\"},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('showAzureSubscriptions.noSubscriptions'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.Name)+\" \")]}}],null,true)})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n{\r\n \"en\": {\r\n \"showAzureSubscriptions.title\": \"Azure App Credential Subscriptions\",\r\n \"showAzureSubscriptions.subscriptions\": \"Subscriptions\",\r\n \"showAzureSubscriptions.noSubscriptions\": \"No Subscriptions visible.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ShowAzureSubscriptionsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ShowAzureSubscriptionsDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ShowAzureSubscriptionsDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ShowAzureSubscriptionsDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ShowAzureSubscriptionsDialog.vue?vue&type=template&id=adb3f484&\"\nimport script from \"./ShowAzureSubscriptionsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./ShowAzureSubscriptionsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ShowAzureSubscriptionsDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SubscriptionsDialog from '@/components/Settings.CloudAccounts/Azure/ShowAzureSubscriptionsDialog.vue';\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\n\r\nexport function azureCloudAccountTableFilter(ca) {\r\n return ca.providerType === 'Azure';\r\n}\r\n\r\nexport default {\r\n components: {\r\n SubscriptionsDialog,\r\n },\r\n props: {\r\n items: Array,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/azure',\r\n },\r\n },\r\n methods: {\r\n showAzureSubscriptions(item) {\r\n if (\r\n !item._original.azureActiveDirectoryApplicationCredential ||\r\n !item._original.azureActiveDirectoryApplicationCredential.id\r\n ) {\r\n return;\r\n }\r\n\r\n this.selectedCredential = {\r\n cloudAccountId: item._original.cloudAccountId,\r\n credentialId: item._original.azureActiveDirectoryApplicationCredential.id,\r\n };\r\n this.showSubscriptions = true;\r\n },\r\n updateRouteHistory(item) {\r\n const navigationHistory: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsAzureCloudAccount,\r\n tenantId: null,\r\n cloudAccountId: item.Id\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationHistory);\r\n return this.$router.push(`${this.routePrefix}/${item.Id}`);\r\n },\r\n },\r\n computed: {\r\n tableEntities() {\r\n if (!this.items) return [];\r\n const entities = this.items.filter(azureCloudAccountTableFilter).map((ca) => {\r\n const tableEntity: any = {\r\n Id: ca.id,\r\n Name: ca.name,\r\n ARMConnectionTenantId: ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.clientDomain\r\n : false,\r\n _original: ca,\r\n };\r\n switch (ca.type) {\r\n case 'Azure':\r\n tableEntity.UsageConnectionType1 = 'Azure App Credential';\r\n tableEntity.UsageConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n case 'AzureCme':\r\n tableEntity.UsageConnectionType1 = 'Azure App Credential (Cost Management Export)';\r\n tableEntity.UsageConnectionEnabled = ca.azureEntraApplicationWithStorageCredential\r\n ? ca.azureEntraApplicationWithStorageCredential.valid\r\n : false;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n case 'AzureEa':\r\n tableEntity.UsageConnectionType1 = 'Enterprise Agreement';\r\n tableEntity.UsageConnectionType2 = 'Azure App Credential';\r\n tableEntity.UsageConnectionEnabled = ca.eaPortalApiCredential\r\n ? ca.eaPortalApiCredential.valid\r\n : false;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n case 'Rhipe':\r\n tableEntity.UsageConnectionType1 = 'Rhipe Customer';\r\n tableEntity.UsageConnectionType2 = 'Azure App Credential';\r\n tableEntity.UsageConnectionEnabled = ca.rhipeApiCredential\r\n ? ca.rhipeApiCredential.valid\r\n : false;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n case 'AzurePax8':\r\n tableEntity.UsageConnectionType1 = 'Pax8 Assume Role';\r\n tableEntity.UsageConnectionType2 = 'Azure App Credential';\r\n tableEntity.UsageConnectionEnabled = ca.awsAssumeRoleCredential?.valid || false;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n case 'SelfReferential':\r\n tableEntity.UsageConnectionType1 = 'From Partner';\r\n tableEntity.UsageConnectionType2 = 'Azure App Credential';\r\n tableEntity.UsageConnectionEnabled = true;\r\n tableEntity.EnhancedConnectionEnabled = ca.azureActiveDirectoryApplicationCredential\r\n ? ca.azureActiveDirectoryApplicationCredential.valid\r\n : false;\r\n break;\r\n }\r\n return tableEntity;\r\n });\r\n return entities;\r\n },\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'Name',\r\n sortable: true,\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n data() {\r\n return {\r\n expanded: [],\r\n allStatuses: true,\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n showSubscriptions: false,\r\n selectedCredential: {\r\n cloudAccountId: null,\r\n credentialId: null,\r\n },\r\n };\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureCloudAccountsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureCloudAccountsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AzureCloudAccountsTable.vue?vue&type=template&id=2237a5cb&scoped=true&\"\nimport script from \"./AzureCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AzureCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AzureCloudAccountsTable.vue?vue&type=style&index=0&id=2237a5cb&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2237a5cb\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AzureCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CreateCloudAccountMenu from \"@/components/Settings.CloudAccounts/CreateCloudAccountMenu.vue\";\r\nimport CreateAzureCloudAccountDialog from \"@/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue\";\r\nimport CreateAzureCmeCloudAccountDialog from \"@/components/Settings.CloudAccounts/Azure/CreateAzureCmeCloudAccountDialog.vue\";\r\nimport CreateAzureEaCloudAccountDialog from \"@/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue\";\r\nimport CreateRhipeCloudAccountDialog from \"@/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue\";\r\nimport CreateAmazonAssumeRoleCloudAccountDialog from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue\";\r\nimport UpdateAzureArmCredentialsDialog from \"@/components/Settings.CloudAccounts/Azure/UpdateAzureARMCredentialsDialog.vue\";\r\nimport UpdateAzureCmeCredentialsDialog from \"@/components/Settings.CloudAccounts/Azure/UpdateAzureCmeCredentialsDialog.vue\";\r\nimport UpdateAzureEaCredentialsDialog from \"@/components/Settings.CloudAccounts/Azure/UpdateAzureEaCredentialsDialog.vue\";\r\nimport UpdateAmazonAssumeRoleCredentialsDialog from \"@/components/Settings.CloudAccounts/Amazon/UpdateAmazonAssumeRoleCredentialsDialog.vue\";\r\nimport UpdateRhipeCredentialsDialog from \"@/components/Settings.CloudAccounts/Distributors/UpdateRhipeCredentialsDialog.vue\";\r\nimport DeleteCloudAccountDialog from \"@/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue\";\r\nimport EditCloudAccountNameDialog from \"@/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue\";\r\nimport EditCloudAccountCurrenciesDialog from \"@/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue\";\r\nimport AzureCloudAccountsTable, {\r\n azureCloudAccountTableFilter,\r\n} from \"@/components/Settings.CloudAccounts/Azure/AzureCloudAccountsTable.vue\";\r\nimport TaxonomyType from \"@/stores/models/TaxonomyType\";\r\nimport { ICloudAccountNavigation } from \"@/stores/models/ICloudAccountNavigation\";\r\nimport { useCloudAccountNavigationStore } from \"@/stores/cloudAccountNavigation\";\r\nimport { useTenantStore } from \"../../stores/tenant\";\r\nimport { mapStores } from \"pinia\";\r\nimport Config from \"@/lib/Config\";\r\nimport FeatureNames from \"@/lib/FeatureNames\";\r\nimport { CloudAccountType } from \"@/models\";\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n title() {\r\n return this.$t(\"settings.azure.title\");\r\n },\r\n props: {\r\n cloudAccounts: Array,\r\n },\r\n components: {\r\n CreateAzureCloudAccountDialog,\r\n CreateAzureEaCloudAccountDialog,\r\n CreateAzureCmeCloudAccountDialog,\r\n CreateRhipeCloudAccountDialog,\r\n UpdateAzureArmCredentialsDialog,\r\n UpdateAzureCmeCredentialsDialog,\r\n UpdateAzureEaCredentialsDialog,\r\n UpdateRhipeCredentialsDialog,\r\n DeleteCloudAccountDialog,\r\n AzureCloudAccountsTable,\r\n EditCloudAccountNameDialog,\r\n EditCloudAccountCurrenciesDialog,\r\n CreateAmazonAssumeRoleCloudAccountDialog,\r\n UpdateAmazonAssumeRoleCredentialsDialog,\r\n CreateCloudAccountMenu,\r\n },\r\n data() {\r\n const cloudAccountTypes = [CloudAccountType.azure, CloudAccountType.azurecme, CloudAccountType.azureEa];\r\n if (Config.isFeatureEnabled(FeatureNames.rhipeEnabled)) {\r\n cloudAccountTypes.push(CloudAccountType.rhipe);\r\n }\r\n if (Config.isFeatureEnabled(FeatureNames.pax8AzureEnabled)) {\r\n cloudAccountTypes.push(CloudAccountType.azurePax8);\r\n }\r\n return {\r\n isCreatingAzureArmAccount: false,\r\n isEditingAzureArmAccount: false,\r\n\r\n isCreatingAzureCmeAccount: false,\r\n isEditingAzureCmeAccount: false,\r\n\r\n isCreatingAzureEaAccount: false,\r\n isEditingAzureEaAccount: false,\r\n\r\n isCreatingRhipeAccount: false,\r\n isEditingRhipeAccount: false,\r\n\r\n isCreatingAzurePax8Account: false,\r\n isEditingAzurePax8Account: false,\r\n\r\n isEditingAccountName: false,\r\n isEditingAccountCurrencies: false,\r\n isDeletingAccount: false,\r\n focusedAccount: null,\r\n\r\n cloudAccountTypes,\r\n };\r\n },\r\n computed: {\r\n azureCloudAccounts() {\r\n return this.cloudAccounts.filter(azureCloudAccountTableFilter);\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n handleDialogChange(isOpen) {\r\n if (isOpen) return;\r\n this.$router.push(\"/settings/azure\");\r\n this.$title = this.$t(\"settings.azure.title\");\r\n },\r\n onCloudAccountsChanged() {\r\n this.$emit(\"onCloudAccountsChanged\");\r\n },\r\n startCreateAccount(type) {\r\n switch (type) {\r\n case \"Azure\":\r\n this.isCreatingAzureArmAccount = true;\r\n break;\r\n case \"AzureEa\":\r\n this.isCreatingAzureEaAccount = true;\r\n break;\r\n case \"AzureCme\":\r\n this.isCreatingAzureCmeAccount = true;\r\n break; \r\n case \"AzurePax8\":\r\n this.isCreatingAzurePax8Account = true;\r\n break;\r\n case \"Rhipe\":\r\n this.isCreatingRhipeAccount = true;\r\n break;\r\n default:\r\n throw new Error(\"Unsupported Azure type\");\r\n }\r\n },\r\n startEditCloudAccount(account) {\r\n this.focusedAccount = account;\r\n switch (account.type) {\r\n case \"Azure\":\r\n this.isEditingAzureArmAccount = true;\r\n break;\r\n case \"AzureEa\":\r\n this.isEditingAzureEaAccount = true;\r\n break;\r\n case \"AzureCme\":\r\n this.isEditingAzureCmeAccount = true;\r\n break; \r\n case \"AzurePax8\":\r\n this.isEditingAzurePax8Account = true;\r\n break;\r\n case \"Rhipe\":\r\n this.isEditingRhipeAccount = true;\r\n break;\r\n default:\r\n throw new Error(\"Unsupported Azure type\");\r\n }\r\n },\r\n startEditName(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAccountName = true;\r\n },\r\n startEditCurrencies(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAccountCurrencies = true;\r\n },\r\n startDeleteAccount(account) {\r\n this.focusedAccount = account;\r\n this.isDeletingAccount = true;\r\n },\r\n startEditArmConnection(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAzureArmAccount = true;\r\n },\r\n startEditCmeConnection(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAzureCmeAccount = true;\r\n },\r\n copyCloudAccount(item) {\r\n const navigationSource: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsAzure,\r\n tenantId: null,\r\n cloudAccountId: null,\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationSource);\r\n const url = `/copy/cloudaccounts/${item.cloudAccountId}`;\r\n this.$router.push(url);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AzureView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AzureView.vue?vue&type=template&id=2138774c&\"\nimport script from \"./AzureView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AzureView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AzureView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.google.title'),\"caption\":_vm.$t('settings.google.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-google-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)]}}]),model:{value:(_vm.isCreatingGcpAccount),callback:function ($$v) {_vm.isCreatingGcpAccount=$$v},expression:\"isCreatingGcpAccount\"}})]},proxy:true}])},[_c('google-cloud-accounts-table',{attrs:{\"items\":_vm.googleCloudAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit name')))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit currencies')))])],1)],1),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit usage connection')))])],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{attrs:{\"to\":`/copy/cloudaccounts/${item.cloudAccountId}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('copy cloud connection')))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeletingGcpAccount),callback:function ($$v) {_vm.isDeletingGcpAccount=$$v},expression:\"isDeletingGcpAccount\"}}),_c('update-google-json-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingGcpAccount),callback:function ($$v) {_vm.isEditingGcpAccount=$$v},expression:\"isEditingGcpAccount\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingGcpAccountName),callback:function ($$v) {_vm.isEditingGcpAccountName=$$v},expression:\"isEditingGcpAccountName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-google-json-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingGoogleAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingGoogleAccount'),expression:\"'creatingGoogleAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Google' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-google-json-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setGoogleJsonCredentialsCard.title'),\"subtitle\":_vm.$t('setGoogleJsonCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" For a detailed break-down of how to configure and connect your Google Cloud connection please \"),_c('a',{attrs:{\"href\":`${_vm.docsUrl}/Setup/GoogleCloud/`,\"target\":\"_blank\"}},[_vm._v(\" follow these instructions.\")])]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n GoogleJsonUsageCredential: {\n Token: _vm.jsonRulesText,\n ClientDomain: _vm.dataSetId,\n Container: _vm.tableId,\n ProviderId: _vm.projectId,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"disabled\":_vm.disabled && _vm.disabled.Name,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-file-input',{attrs:{\"truncate-length\":\"15\",\"label\":_vm.$t('setGoogleJsonCredentialsCard.jsonCredentials')},on:{\"change\":_vm.handleJsonCredentialsFile}}),_c('v-textarea',{attrs:{\"outlined\":\"\",\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setGoogleJsonCredentialsCard.jsonCredentials')},model:{value:(_vm.jsonRulesText),callback:function ($$v) {_vm.jsonRulesText=$$v},expression:\"jsonRulesText\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setGoogleJsonCredentialsCard.dataSetId')},model:{value:(_vm.dataSetId),callback:function ($$v) {_vm.dataSetId=$$v},expression:\"dataSetId\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"placeholder\":\"e.g. gcp_billing_export_resource_v1_...\",\"label\":_vm.$t('setGoogleJsonCredentialsCard.tableId')},model:{value:(_vm.tableId),callback:function ($$v) {_vm.tableId=$$v},expression:\"tableId\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Config from '@/lib/Config';\r\nexport default {\r\n props: ['loading', 'value', 'disabled'],\r\n data() {\r\n return {\r\n valid: false,\r\n name: '',\r\n useTenantCurrencies: false,\r\n dataSetId: '',\r\n tableId: '',\r\n jsonRulesText: '',\r\n docsUrl: Config.get().DOCS_URL,\r\n };\r\n },\r\n computed: {\r\n projectId() {\r\n if (!this.jsonRulesText) return null;\r\n try {\r\n const jsonRules = JSON.parse(this.jsonRulesText);\r\n return jsonRules['project_id'] || null;\r\n } catch {\r\n return null;\r\n }\r\n },\r\n },\r\n methods: {\r\n async handleJsonCredentialsFile(file: File) {\r\n if (!file) return;\r\n this.jsonRulesText = await file.text();\r\n },\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.name = val.name;\r\n this.useTenantCurrencies = val.useTenantCurrencies;\r\n if (val.googleJsonUsageCredential) {\r\n this.jsonRulesText = val.googleJsonUsageCredential.token;\r\n this.tableId = val.googleJsonUsageCredential.container;\r\n this.dataSetId = val.googleJsonUsageCredential.clientDomain;\r\n } else {\r\n this.jsonRulesText = '';\r\n this.tableId = '';\r\n this.dataSetId = '';\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetGoogleJsonCredentialsCard.vue?vue&type=template&id=7807a29a&\"\nimport script from \"./SetGoogleJsonCredentialsCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetGoogleJsonCredentialsCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetGoogleJsonCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetGoogleJsonCredentialsDialog.vue?vue&type=template&id=0efe726c&\"\nimport script from \"./SetGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateGoogleAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateGoogleAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateGoogleAccountDialog.vue?vue&type=template&id=016cad33&\"\nimport script from \"./CreateGoogleAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateGoogleAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-google-json-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingGoogleAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingGoogleAccount'),expression:\"'creatingGoogleAccount'\"}],attrs:{\"type\":\"GoogleJsonUsageCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateGoogleJsonCredentialsDialog.vue?vue&type=template&id=2f660e20&\"\nimport script from \"./UpdateGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateGoogleJsonCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('googleCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/${item.Id}`}},[_vm._v(\" \"+_vm._s(item.Name))])]}},{key:`item.GoogleProjectId`,fn:function({ item }){return [_c('span',{class:item.GoogleConnectionEnabled ? '' : 'error--text'},[_vm._v(\" \"+_vm._s(item.GoogleProjectId)+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.GoogleConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(_vm._s(item.GoogleConnectionEnabled ? 'done' : 'error'))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.GoogleConnectionEnabled ? _vm.$t('connected') : _vm.$t('googleCloudAccountsTable.disconnectedUsageConnection'))+\" \")])])],1)]}},{key:`item.GoogleConnectionExpiry`,fn:function({ item }){return [(!item.GoogleConnectionExpiry)?_c('span',[_vm._v(\"-\")]):(item.GoogleConnectionExpiry.getFullYear() > 3000)?_c('span',[_vm._v(\"Never\")]):_c('span',{class:item.GoogleConnectionExpiry < new Date() ? 'error--text' : ''},[_vm._v(_vm._s(_vm._f(\"calendarFormat\")(item.GoogleConnectionExpiry)))])]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"googleCloudAccountsTable.projectId\": \"Project ID\",\r\n \"googleCloudAccountsTable.dataSetId\": \"Dataset ID\",\r\n \"googleCloudAccountsTable.expiry\": \"Expiry\",\r\n \"googleCloudAccountsTable.noData\": \"No google cloud connections configured.\",\r\n \"googleCloudAccountsTable.disconnectedUsageConnection\": \"Please update your usage connection with valid credentials\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleCloudAccountsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleCloudAccountsTable.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GoogleCloudAccountsTable.vue?vue&type=template&id=491e31bd&scoped=true&\"\nimport script from \"./GoogleCloudAccountsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./GoogleCloudAccountsTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./GoogleCloudAccountsTable.vue?vue&type=style&index=0&id=491e31bd&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"491e31bd\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GoogleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\":{\r\n \"settings.google.title\": \"Google Cloud Connections\",\r\n \"settings.google.subtitle\": \"All cloud connections importing GCP usage data in this tenant.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GoogleView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GoogleView.vue?vue&type=template&id=a776d052&\"\nimport script from \"./GoogleView.vue?vue&type=script&lang=js&\"\nexport * from \"./GoogleView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GoogleView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.oracle.title'),\"caption\":_vm.$t('settings.oracle.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-oracle-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)]}}]),model:{value:(_vm.isCreatingOciAccount),callback:function ($$v) {_vm.isCreatingOciAccount=$$v},expression:\"isCreatingOciAccount\"}})]},proxy:true}])},[_c('oracle-cloud-accounts-table',{attrs:{\"items\":_vm.oracleCloudAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit name')))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit currencies')))])],1)],1),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit usage connection')))])],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{on:{\"click\":function($event){return _vm.copyCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('copy cloud connection')))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeletingOciAccount),callback:function ($$v) {_vm.isDeletingOciAccount=$$v},expression:\"isDeletingOciAccount\"}}),_c('update-oracle-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingOciAccount),callback:function ($$v) {_vm.isEditingOciAccount=$$v},expression:\"isEditingOciAccount\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingOciAccountName),callback:function ($$v) {_vm.isEditingOciAccountName=$$v},expression:\"isEditingOciAccountName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-oracle-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingOracleAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingOracleAccount'),expression:\"'creatingOracleAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Oracle' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-oracle-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setOracleCredentialsCard.title'),\"subtitle\":_vm.$t('setOracleCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" For a detailed break-down of how to configure and connect your Oracle Cloud connection please \"),_c('a',{attrs:{\"href\":`${_vm.docsUrl}/Setup/OracleCloud/`,\"target\":\"_blank\"}},[_vm._v(\" follow these instructions.\")])]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n OracleCredential: {\n Token: _vm.pemText,\n ClientDomain: _vm.userId,\n Container: _vm.fingerprint,\n ProviderId: _vm.tenancyId,\n RegionCode: _vm.regionId,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"disabled\":_vm.disabled && _vm.disabled.Name,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-file-input',{attrs:{\"truncate-length\":\"15\",\"label\":_vm.$t('setOracleCredentialsCard.pemCredentials')},on:{\"change\":_vm.handleJsonCredentialsFile}}),_c('v-textarea',{attrs:{\"outlined\":\"\",\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setOracleCredentialsCard.pemCredentials')},model:{value:(_vm.pemText),callback:function ($$v) {_vm.pemText=$$v},expression:\"pemText\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"placeholder\":\"e.g. ocid1.tenancy.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"label\":_vm.$t('setOracleCredentialsCard.tenancyId')},model:{value:(_vm.tenancyId),callback:function ($$v) {_vm.tenancyId=$$v},expression:\"tenancyId\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"placeholder\":\"e.g. ocid1.user.oc1..aaaaaaaaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\"label\":_vm.$t('setOracleCredentialsCard.userId')},model:{value:(_vm.userId),callback:function ($$v) {_vm.userId=$$v},expression:\"userId\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"placeholder\":\"e.g. 11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff:00\",\"label\":_vm.$t('setOracleCredentialsCard.fingerprint')},model:{value:(_vm.fingerprint),callback:function ($$v) {_vm.fingerprint=$$v},expression:\"fingerprint\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"placeholder\":\"e.g. ap-melbourne-1\",\"label\":_vm.$t('setOracleCredentialsCard.regionId')},model:{value:(_vm.regionId),callback:function ($$v) {_vm.regionId=$$v},expression:\"regionId\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Config from '@/lib/Config';\r\nexport default {\r\n props: ['loading', 'value', 'disabled'],\r\n data() {\r\n return {\r\n valid: false,\r\n name: '',\r\n useTenantCurrencies: false,\r\n tenancyId: '',\r\n userId: '',\r\n regionId: '',\r\n fingerprint: '',\r\n pemText: '',\r\n docsUrl: Config.get().DOCS_URL,\r\n };\r\n },\r\n methods: {\r\n async handleJsonCredentialsFile(file: File) {\r\n if (!file) return;\r\n this.pemText = await file.text();\r\n },\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.name = val.name;\r\n this.useTenantCurrencies = val.useTenantCurrencies;\r\n if (val.oracleUsageCredential) {\r\n this.tenancyId = val.oracleUsageCredential.providerId;\r\n this.pemText = val.oracleUsageCredential.token;\r\n this.fingerprint = val.oracleUsageCredential.container;\r\n this.userId = val.oracleUsageCredential.clientDomain;\r\n this.regionId = val.oracleUsageCredential.regionCode;\r\n } else {\r\n this.tenancyId = '';\r\n this.pemText = '';\r\n this.fingerprint = '';\r\n this.userId = '';\r\n this.regionId = '';\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetOracleCredentialsCard.vue?vue&type=template&id=069c56a3&\"\nimport script from \"./SetOracleCredentialsCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetOracleCredentialsCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetOracleCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetOracleCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetOracleCredentialsDialog.vue?vue&type=template&id=25900c78&\"\nimport script from \"./SetOracleCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetOracleCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateOracleAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateOracleAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateOracleAccountDialog.vue?vue&type=template&id=4eeeae40&\"\nimport script from \"./CreateOracleAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateOracleAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-oracle-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingOracleAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingOracleAccount'),expression:\"'creatingOracleAccount'\"}],attrs:{\"type\":\"OracleCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateOracleCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateOracleCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateOracleCredentialsDialog.vue?vue&type=template&id=13c41360&\"\nimport script from \"./UpdateOracleCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateOracleCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('oracleCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.updateRouteHistory(item)}}},[_c('span',{staticClass:\"primary--text\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")])])]}},{key:`item.OracleTenancyId`,fn:function({ item }){return [_c('span',{class:item.OracleConnectionEnabled ? '' : 'error--text'},[_vm._v(\" \"+_vm._s(item.OracleTenancyId)+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.OracleConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(_vm._s(item.OracleConnectionEnabled ? 'done' : 'error'))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.OracleConnectionEnabled ? _vm.$t('connected') : _vm.$t('oracleCloudAccountsTable.disconnectedUsageConnection'))+\" \")])])],1)]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\nexport function oracleCloudAccountTableFilter(ca) {\r\n return ca.providerType === 'Oracle';\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/oracle',\r\n },\r\n },\r\n data() {\r\n return {\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n };\r\n },\r\n computed: {\r\n tableEntities() {\r\n if (!this.items) return [];\r\n return this.items.filter(oracleCloudAccountTableFilter).map((ca) => {\r\n return {\r\n Id: ca.id,\r\n Name: ca.name,\r\n OracleConnectionEnabled: ca.oracleUsageCredential\r\n ? ca.oracleUsageCredential.valid\r\n : ca.type === 'SelfReferential',\r\n OracleTenancyId: ca.oracleUsageCredential\r\n ? ca.oracleUsageCredential.providerId.substring(0,40) || ''\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n OracleUserId: ca.oracleUsageCredential\r\n ? ca.oracleUsageCredential.clientDomain.substring(0, 40)\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n _original: ca,\r\n };\r\n });\r\n },\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'Name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('oracleCloudAccountsTable.tenancyId'),\r\n value: 'OracleTenancyId',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('oracleCloudAccountsTable.userId'),\r\n value: 'OracleUserId',\r\n sortable: true,\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n methods: {\r\n updateRouteHistory(item)\r\n {\r\n const navigationHistory: ICloudAccountNavigation = {\r\n taxonomyType : TaxonomyType.settingsOracleCloudAccount,\r\n tenantId : null,\r\n cloudAccountId : item.Id\r\n }; \r\n useCloudAccountNavigationStore().updateNavigationSource(navigationHistory); \r\n return this.$router.push(`${this.routePrefix}/${item.Id}`);\r\n }, \r\n }\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleCloudAccountsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleCloudAccountsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./OracleCloudAccountsTable.vue?vue&type=template&id=7a5afc0e&scoped=true&\"\nimport script from \"./OracleCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./OracleCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./OracleCloudAccountsTable.vue?vue&type=style&index=0&id=7a5afc0e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a5afc0e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./OracleCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CreateOracleAccountDialog from '@/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue';\r\nimport UpdateOracleCredentialsDialog from '@/components/Settings.CloudAccounts/Oracle/UpdateOracleCredentialsDialog.vue';\r\nimport DeleteCloudAccountDialog from '@/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue';\r\nimport EditCloudAccountNameDialog from '@/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue';\r\nimport EditCloudAccountCurrenciesDialog from '@/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue';\r\nimport OracleCloudAccountsTable, {\r\n oracleCloudAccountTableFilter,\r\n} from '@/components/Settings.CloudAccounts/Oracle/OracleCloudAccountsTable.vue';\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n title() {\r\n return this.$t('settings.oracle.title');\r\n },\r\n props: {\r\n cloudAccounts: Array,\r\n },\r\n components: {\r\n OracleCloudAccountsTable,\r\n CreateOracleAccountDialog,\r\n DeleteCloudAccountDialog,\r\n EditCloudAccountNameDialog,\r\n EditCloudAccountCurrenciesDialog,\r\n UpdateOracleCredentialsDialog,\r\n },\r\n data() {\r\n return {\r\n isCreatingOciAccount: false,\r\n isEditingOciAccount: false,\r\n isEditingOciAccountName: false,\r\n isEditingAccountCurrencies: false,\r\n isDeletingOciAccount: false,\r\n focusedAccount: null,\r\n };\r\n },\r\n computed: {\r\n oracleCloudAccounts() {\r\n return this.cloudAccounts.filter(oracleCloudAccountTableFilter);\r\n },\r\n ...mapStores(useTenantStore)\r\n },\r\n methods: {\r\n handleDialogChange(isOpen) {\r\n if (isOpen) return;\r\n this.$router.push('/settings/oracle');\r\n this.$title = this.$t('settings.oracle.title');\r\n },\r\n onCloudAccountsChanged() {\r\n this.$emit('onCloudAccountsChanged');\r\n },\r\n startEditName(account) {\r\n this.focusedAccount = account;\r\n this.isEditingOciAccountName = true;\r\n },\r\n startEditCloudAccount(account) {\r\n this.focusedAccount = account;\r\n this.isEditingOciAccount = true;\r\n },\r\n copyCloudAccount(item)\r\n { \r\n const navigationSource : ICloudAccountNavigation = {\r\n taxonomyType : TaxonomyType.settingsOracle,\r\n tenantId : null,\r\n cloudAccountId : null\r\n }; \r\n useCloudAccountNavigationStore().updateNavigationSource(navigationSource); \r\n const url = `/copy/cloudaccounts/${item.cloudAccountId}`; \r\n this.$router.push(url);\r\n },\r\n startDeleteAccount(account) {\r\n this.focusedAccount = account;\r\n this.isDeletingOciAccount = true;\r\n },\r\n startEditCurrencies(account) {\r\n this.focusedAccount = account;\r\n this.isEditingAccountCurrencies = true;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OracleView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./OracleView.vue?vue&type=template&id=0dfa8afe&\"\nimport script from \"./OracleView.vue?vue&type=script&lang=ts&\"\nexport * from \"./OracleView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./OracleView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.alibaba.title'),\"caption\":_vm.$t('settings.alibaba.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-alibaba-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)]}}]),model:{value:(_vm.isCreatingAccount),callback:function ($$v) {_vm.isCreatingAccount=$$v},expression:\"isCreatingAccount\"}})]},proxy:true}])},[_c('alibaba-cloud-accounts-table',{attrs:{\"items\":_vm.alibabaCloudAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit name')))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit currencies')))])],1)],1),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit usage connection')))])],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{attrs:{\"to\":`/copy/cloudaccounts/${item.cloudAccountId}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('copy cloud connection')))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('update-alibaba-credentials-dialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccount),callback:function ($$v) {_vm.isEditingAccount=$$v},expression:\"isEditingAccount\"}}),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeletingAccount),callback:function ($$v) {_vm.isDeletingAccount=$$v},expression:\"isDeletingAccount\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountName),callback:function ($$v) {_vm.isEditingAccountName=$$v},expression:\"isEditingAccountName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('alibabaCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/${item.Id}`}},[_vm._v(\" \"+_vm._s(item.Name))])]}},{key:`item.AccessKeyId`,fn:function({ item }){return [_c('span',{class:item.ConnectionEnabled ? '' : 'error--text'},[_vm._v(\" \"+_vm._s(item.AccessKeyId)+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.ConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(_vm._s(item.ConnectionEnabled ? 'done' : 'error'))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.ConnectionEnabled ? _vm.$t('connected') : _vm.$t('alibabaCloudAccountsTable.disconnectedUsageConnection'))+\" \")])])],1)]}},{key:`item.RegionCode`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.RegionCode)+\" \")]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport function alibabaCloudAccountTableFilter(ca) {\r\n return ca.providerType === 'Alibaba';\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/alibaba',\r\n },\r\n },\r\n data() {\r\n return {\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n };\r\n },\r\n computed: {\r\n tableEntities() {\r\n if (!this.items) return [];\r\n const alibabaAccounts = this.items.filter(alibabaCloudAccountTableFilter).map((ca) => {\r\n return {\r\n Id: ca.id,\r\n Name: ca.name,\r\n ConnectionEnabled: ca.alibabaUsageCredential\r\n ? ca.alibabaUsageCredential.valid\r\n : ca.type === 'SelfReferential',\r\n AccessKeyId: ca.alibabaUsageCredential\r\n ? ca.alibabaUsageCredential.providerId || ''\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n RegionCode: ca.alibabaUsageCredential\r\n ? ca.alibabaUsageCredential.regionCode\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n _original: ca,\r\n };\r\n });\r\n\r\n return alibabaAccounts;\r\n },\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'Name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('alibabaCloudAccountsTable.accessKeyId'),\r\n value: 'AccessKeyId',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('alibabaCloudAccountsTable.regionCode'),\r\n value: 'RegionCode',\r\n sortable: true,\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaCloudAccountsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaCloudAccountsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AlibabaCloudAccountsTable.vue?vue&type=template&id=cf34da76&scoped=true&\"\nimport script from \"./AlibabaCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlibabaCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AlibabaCloudAccountsTable.vue?vue&type=style&index=0&id=cf34da76&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cf34da76\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AlibabaCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-alibaba-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAlibabaAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('post-cloud-account-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAlibabaAccount'),expression:\"'creatingAlibabaAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Alibaba' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-alibaba-credentials-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setAlibabaCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" Configure your Alibaba Credentials. This setup can be a bit involved so we recommend reading our \"),_c('a',{attrs:{\"target\":\"blank\",\"href\":`${_vm.docsUrl}/Setup/AlibabaCloud/`}},[_vm._v(\"Alibaba setup guide\")]),_vm._v(\". \")]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n Name: _vm.name,\n UseTenantCurrencies: _vm.useTenantCurrencies,\n AlibabaUsageCredential: {\n ProviderId: _vm.accessKeyId,\n Token: _vm.secretAccessKey,\n RegionCode: _vm.regionCode,\n },\n },\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"disabled\":_vm.disabled && _vm.disabled.Name,\"rules\":_vm.nameRules,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. p17LlTZ4Efjwekwe5EXAMPLE\",\"label\":_vm.$t('setAlibabaCredentialsCard.accessKeyId'),\"rules\":_vm.accessKeyIdRules,\"required\":\"\"},model:{value:(_vm.accessKeyId),callback:function ($$v) {_vm.accessKeyId=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"accessKeyId\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"e.g. wJalrXUtnFEMIK7MDENGbPxRfiCYEXAMPLEKEY\",\"append-icon\":_vm.showSecretAccessKey ? 'visibility_off' : 'visibility',\"type\":_vm.showSecretAccessKey ? 'text' : 'password',\"label\":_vm.$t('setAlibabaCredentialsCard.secretAccessKey'),\"rules\":_vm.secretAccessKeyRules,\"required\":\"\"},on:{\"click:append\":() => (_vm.showSecretAccessKey = !_vm.showSecretAccessKey)},model:{value:(_vm.secretAccessKey),callback:function ($$v) {_vm.secretAccessKey=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"secretAccessKey\"}}),_c('alibaba-region-autocomplete',{attrs:{\"label\":_vm.$t('setAlibabaCredentialsCard.regionCode'),\"rules\":[() => true]},model:{value:(_vm.regionCode),callback:function ($$v) {_vm.regionCode=$$v},expression:\"regionCode\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-autocomplete',{attrs:{\"value\":_vm.value,\"items\":_vm.matchingAlibabaRegions,\"item-text\":\"name\",\"item-value\":\"code\",\"loading\":_vm.loading,\"search-input\":_vm.search,\"rules\":_vm.rules,\"hint\":!_vm.value ? _vm.$t('alibabaRegionAutocomplete.noRegionHint') : undefined,\"persistent-hint\":\"\",\"hide-no-data\":\"\",\"hide-selected\":\"\",\"label\":_vm.label,\"return-object\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event ? $event.code : null)},\"update:searchInput\":function($event){_vm.search=$event},\"update:search-input\":function($event){_vm.search=$event}},scopedSlots:_vm._u([{key:\"prepend-inner\",fn:function(){return [(!_vm.loading)?_c('v-icon',[_vm._v(\"search\")]):_c('v-progress-circular',{attrs:{\"width\":3,\"size\":\"24\",\"color\":\"primary\",\"indeterminate\":\"\"}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\nexport const ALIBABA_REGIONS = [\r\n { code: 'cn-qingdao', name: 'Qingdao' },\r\n { code: 'cn-beijing', name: 'Beijing' },\r\n { code: 'cn-zhangjiakou', name: 'Zhangjiakou' },\r\n { code: 'cn-huhehaote', name: 'Hohhot' },\r\n { code: 'cn-wulanchabu', name: 'Ulanqab' },\r\n { code: 'cn-hangzhou', name: 'Hangzhou' },\r\n { code: 'cn-shanghai', name: 'Shanghai' },\r\n { code: 'cn-shenzhen', name: 'Shenzhen' },\r\n { code: 'cn-heyuan', name: 'Heyuan' },\r\n { code: 'cn-guangzhou', name: 'Guangzhou' },\r\n { code: 'cn-chengdu', name: 'Chengdu' },\r\n { code: 'ap-southeast-1', name: 'Sydney'}\r\n];\r\n\r\nexport default {\r\n props: ['value', 'label', 'rules'],\r\n computed: {\r\n matchingAlibabaRegions() {\r\n if (!this.search) return this.allRegions;\r\n return [this.search]\r\n .concat(this.allRegions.filter(b => b.name.startsWith(this.search)))\r\n .filter((value, index, self) => {\r\n return self.findIndex(c => c.code == value.code) === index;\r\n });\r\n }\r\n },\r\n data() {\r\n return {\r\n allRegions: [...ALIBABA_REGIONS],\r\n errored: false,\r\n loading: false,\r\n search: ''\r\n };\r\n }\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaRegionAutocomplete.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaRegionAutocomplete.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaRegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaRegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AlibabaRegionAutocomplete.vue?vue&type=template&id=2c470ca0&\"\nimport script from \"./AlibabaRegionAutocomplete.vue?vue&type=script&lang=ts&\"\nexport * from \"./AlibabaRegionAutocomplete.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AlibabaRegionAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport AlibabaRegionAutocomplete from '@/components/Settings.CloudAccounts/Alibaba/AlibabaRegionAutocomplete.vue';\r\nimport Config from '@/lib/Config';\r\nexport default {\r\n components: { AlibabaRegionAutocomplete },\r\n props: ['loading', 'value', 'disabled'],\r\n data() {\r\n return {\r\n valid: false,\r\n docsUrl: Config.get().DOCS_URL,\r\n name: '',\r\n nameRules: [(v) => !!v || this.$t('setAlibabaCredentialsCard.name.required')],\r\n useTenantCurrencies: false,\r\n accessKeyId: '',\r\n accessKeyIdRules: [(v) => !!v || this.$t('setAlibabaCredentialsCard.accessKeyId.required')],\r\n regionCode: '',\r\n showSecretAccessKey: false,\r\n secretAccessKey: '',\r\n secretAccessKeyRules: [(v) => !!v || this.$t('setAlibabaCredentialsCard.secretAccessKey.required')],\r\n };\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.name = val.name;\r\n this.useTenantCurrencies = val.useTenantCurrencies;\r\n if (val.alibabaUsageCredential) {\r\n this.accessKeyId = val.alibabaUsageCredential.providerId;\r\n this.secretAccessKey = val.alibabaUsageCredential.token;\r\n this.regionCode = val.alibabaUsageCredential.regionCode;\r\n } else {\r\n this.accessKeyId = '';\r\n this.secretAccessKey = '';\r\n this.regionCode = '';\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetAlibabaCredentialsCard.vue?vue&type=template&id=3cadc3a4&\"\nimport script from \"./SetAlibabaCredentialsCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetAlibabaCredentialsCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetAlibabaCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SetAlibabaCredentialsCard from '@/components/Settings.CloudAccounts/Alibaba/SetAlibabaCredentialsCard.vue';\r\nexport default {\r\n props: ['value', 'loading', 'disabled', 'edit'],\r\n components: { SetAlibabaCredentialsCard },\r\n methods: {\r\n open() {\r\n this.$emit('input', true);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetAlibabaCredentialsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetAlibabaCredentialsDialog.vue?vue&type=template&id=e3eb9988&\"\nimport script from \"./SetAlibabaCredentialsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetAlibabaCredentialsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAlibabaCloudAccountDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateAlibabaCloudAccountDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CreateAlibabaCloudAccountDialog.vue?vue&type=template&id=40af7c17&\"\nimport script from \"./CreateAlibabaCloudAccountDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateAlibabaCloudAccountDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-alibaba-credentials-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingAlibabaAccount'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('put-credential-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingAlibabaAccount'),expression:\"'creatingAlibabaAccount'\"}],attrs:{\"type\":\"AlibabaUsageCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAlibabaCredentialsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateAlibabaCredentialsDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./UpdateAlibabaCredentialsDialog.vue?vue&type=template&id=1553feeb&\"\nimport script from \"./UpdateAlibabaCredentialsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateAlibabaCredentialsDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\":{\r\n \"settings.alibaba.title\": \"Alibaba Cloud Connections\",\r\n \"settings.alibaba.subtitle\": \"All cloud connections importing Alibaba Cloud usage data in this tenant.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AlibabaView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AlibabaView.vue?vue&type=template&id=37ae8e10&\"\nimport script from \"./AlibabaView.vue?vue&type=script&lang=js&\"\nexport * from \"./AlibabaView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AlibabaView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.snowflake.title'),\"caption\":_vm.$t('settings.snowflake.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('CreateSnowflakeAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)]}}]),model:{value:(_vm.isCreating),callback:function ($$v) {_vm.isCreating=$$v},expression:\"isCreating\"}})]},proxy:true}])},[_c('SnowflakeAccountTable',{attrs:{\"items\":_vm.snowflakeAccounts,\"loading\":_vm.$wait.is('getCloudAccounts')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit name')))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit currencies')))])],1)],1),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"miscellaneous_services\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit usage connection')))])],1)],1):_vm._e(),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{on:{\"click\":function($event){return _vm.copyCloudAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('copy cloud connection')))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1):_vm._e()],1)],1)]}}],null,true)}),_c('DeleteCloudAccountDialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}}),_c('UpdateSnowflakeCredentialsDialog',{attrs:{\"edit\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditing),callback:function ($$v) {_vm.isEditing=$$v},expression:\"isEditing\"}}),_c('EditCloudAccountNameDialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingName),callback:function ($$v) {_vm.isEditingName=$$v},expression:\"isEditingName\"}}),_c('EditCloudAccountCurrenciesDialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingCurrencies),callback:function ($$v) {_vm.isEditingCurrencies=$$v},expression:\"isEditingCurrencies\"}}),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SetSnowflakeCredentialsDialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingSnowflakeAccount')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('PostCloudAccountButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingSnowflakeAccount'),expression:\"'creatingSnowflakeAccount'\"}],attrs:{\"value\":{ ...form, Type: 'Snowflake' },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('SetSnowflakeCredentialsCard',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){close().then(clear)}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('setSnowflakeCredentialsCard.title'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"subtitle\",fn:function(){return [_vm._v(\" For a detailed break-down of how to configure and connect your Snowflake connection please \"),_c('a',{attrs:{\"href\":`${_vm.docsUrl}/Setup/Snowflake/`,\"target\":\"_blank\"}},[_vm._v(\" follow these instructions.\")])]},proxy:true},{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.formData,\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"disabled\":_vm.disabled && _vm.disabled.Name,\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('useTenantCurrencies'),\"disabled\":_vm.disabled && _vm.disabled.UseTenantCurrencies},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({attrs:{\"icon\":\"\",\"small\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',[_vm._v(\"info\")])],1)]}}])},[_c('span',[_vm._v(_vm._s(_vm.$t('useTenantCurrencies.tooltip')))])])]},proxy:true}]),model:{value:(_vm.useTenantCurrencies),callback:function ($$v) {_vm.useTenantCurrencies=$$v},expression:\"useTenantCurrencies\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setSnowflakeCredentialsCard.organizationName')},model:{value:(_vm.organizationName),callback:function ($$v) {_vm.organizationName=$$v},expression:\"organizationName\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setSnowflakeCredentialsCard.accountName')},model:{value:(_vm.accountName),callback:function ($$v) {_vm.accountName=$$v},expression:\"accountName\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"label\":_vm.$t('setSnowflakeCredentialsCard.userName')},model:{value:(_vm.userName),callback:function ($$v) {_vm.userName=$$v},expression:\"userName\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"type\":\"password\",\"required\":\"\",\"label\":_vm.$t('setSnowflakeCredentialsCard.password')},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport Config from '@/lib/Config';\r\nimport * as M from '@/models';\r\nimport { ref, watch, computed } from 'vue';\r\nexport default {\r\n props: {\r\n loading: Boolean,\r\n value: Object,\r\n disabled: Object,\r\n },\r\n setup(p) {\r\n const valid = ref(false);\r\n const name = ref('');\r\n const useTenantCurrencies = ref(false);\r\n const organizationName = ref('');\r\n const accountName = ref('');\r\n const userName = ref('');\r\n const password = ref('');\r\n const docsUrl = ref(Config.get().DOCS_URL);\r\n\r\n watch(\r\n p.value,\r\n (v: M.ICloudAccountModel | null) => {\r\n if (!v) return;\r\n name.value = v.name;\r\n useTenantCurrencies.value = v.useTenantCurrencies || false;\r\n organizationName.value = v.snowflakeDirectCredential?.clientDomain || '';\r\n accountName.value = v.snowflakeDirectCredential?.container || '';\r\n userName.value = v.snowflakeDirectCredential?.providerId || '';\r\n password.value = v.snowflakeDirectCredential?.token || '';\r\n return true;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n const formData = computed(() => ({\r\n Name: name.value,\r\n UseTenantCurrencies: useTenantCurrencies.value,\r\n SnowflakeDirectCredential: {\r\n Token: password.value,\r\n ClientDomain: organizationName.value,\r\n Container: accountName.value,\r\n ProviderId: userName.value\r\n },\r\n }));\r\n\r\n return {\r\n valid,\r\n name,\r\n useTenantCurrencies,\r\n organizationName,\r\n accountName,\r\n userName,\r\n password,\r\n docsUrl,\r\n formData,\r\n };\r\n }\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetSnowflakeCredentialsCard.vue?vue&type=template&id=2f3db5f1&\"\nimport script from \"./SetSnowflakeCredentialsCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetSnowflakeCredentialsCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetSnowflakeCredentialsCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SetSnowflakeCredentialsCard from '@/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsCard.vue';\r\nexport default {\r\n props: {\r\n value: Boolean,\r\n loading: Boolean,\r\n disabled: Object,\r\n edit: Object,\r\n },\r\n components: { SetSnowflakeCredentialsCard },\r\n setup(_, { emit }) {\r\n const open = () => emit('input', true);\r\n return { open };\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetSnowflakeCredentialsDialog.vue?vue&type=template&id=127bc226&\"\nimport script from \"./SetSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport SetSnowflakeCredentialsDialog from '@/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue';\r\nimport PostCloudAccountButton from '@/components/Settings.CloudAccounts/PostCloudAccountButton.vue';\r\nexport default {\r\n components: { SetSnowflakeCredentialsDialog, PostCloudAccountButton },\r\n props: {\r\n value: Boolean,\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateSnowflakeAccountDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateSnowflakeAccountDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateSnowflakeAccountDialog.vue?vue&type=template&id=1ced375c&\"\nimport script from \"./CreateSnowflakeAccountDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateSnowflakeAccountDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SetSnowflakeCredentialsDialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('updatingSnowflakeCredential'),\"edit\":_vm.edit,\"disabled\":{ ...(_vm.disabled || {}), Name: true, UseTenantCurrencies: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, clear, close }){return [_c('PutCredentialButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingSnowflakeCredential'),expression:\"'updatingSnowflakeCredential'\"}],attrs:{\"type\":\"SnowflakeDirectCredential\",\"value\":{ ..._vm.edit, ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){return _vm.acceptSubmit($event, close)}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport SetSnowflakeCredentialsDialog from '@/components/Settings.CloudAccounts/Snowflake/SetSnowflakeCredentialsDialog.vue';\r\nimport PutCredentialButton from '@/components/Settings.CloudAccounts/PutCredentialButton.vue';\r\nexport default {\r\n components: { SetSnowflakeCredentialsDialog, PutCredentialButton },\r\n props: {\r\n value: Boolean,\r\n edit: Object,\r\n disabled: Object,\r\n },\r\n setup(_, { emit }) {\r\n const acceptSubmit = async ($event: any, close: () => Promise) => {\r\n await close();\r\n emit('http2xx', $event);\r\n };\r\n return { acceptSubmit };\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UpdateSnowflakeCredentialsDialog.vue?vue&type=template&id=5a9dcc5b&\"\nimport script from \"./UpdateSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./UpdateSnowflakeCredentialsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('snowflakeCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.Name`,fn:function({ item }){return [_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.updateRouteHistory(item)}}},[_c('span',{staticClass:\"primary--text\"},[_vm._v(\" \"+_vm._s(item.Name)+\" \")])])]}},{key:`item.OrgName`,fn:function({ item }){return [_c('span',{class:item.ConnectionEnabled ? '' : 'error--text'},[_vm._v(\" \"+_vm._s(item.OrgName)+\" \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"right\":\"\",\"small\":\"\",\"color\":item.ConnectionEnabled ? 'success' : 'error'}},on),[_vm._v(_vm._s(item.ConnectionEnabled ? 'done' : 'error'))])]}}],null,true)},[_c('span',[_vm._v(\" \"+_vm._s(item.ConnectionEnabled ? _vm.$t('connected') : _vm.$t('snowflakeCloudAccountsTable.disconnectedUsageConnection'))+\" \")])])],1)]}},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.menu\",null,{\"item\":item._original})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { ref, computed } from 'vue';\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\nimport * as M from '@/models';\r\n\r\nexport function snowflakeCloudAccountTableFilter(ca: M.ICloudAccountModel) {\r\n return ca.providerType === M.CloudProviderType.snowflake;\r\n}\r\n\r\nexport default {\r\n props: {\r\n items: Array,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/snowflake',\r\n },\r\n },\r\n setup(p) {\r\n const sortedBy = ref('Name');\r\n const sortedDesc = ref(true);\r\n const itemsPerPage = ref(10);\r\n\r\n const tableEntities = computed(() => {\r\n if (!p.items) return [];\r\n return p.items.filter(snowflakeCloudAccountTableFilter).map((ca: M.ICloudAccountModel) => ({\r\n Id: ca.id,\r\n Name: ca.name,\r\n ConnectionEnabled: ca.snowflakeDirectCredential\r\n ? ca.snowflakeDirectCredential.valid\r\n : ca.type === 'SelfReferential',\r\n OrgName: ca.snowflakeDirectCredential\r\n ? ca.snowflakeDirectCredential.clientDomain || ''\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n AccountName: ca.snowflakeDirectCredential\r\n ? ca.snowflakeDirectCredential.container || ''\r\n : ca.type === 'SelfReferential'\r\n ? ''\r\n : '',\r\n _original: ca,\r\n }));\r\n });\r\n\r\n return { sortedBy, sortedDesc, itemsPerPage, tableEntities };\r\n },\r\n computed: {\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('name'),\r\n value: 'Name',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('snowflakeCloudAccountsTable.orgName'),\r\n value: 'OrgName',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('snowflakeCloudAccountsTable.accountName'),\r\n value: 'AccountName',\r\n sortable: true,\r\n },\r\n {\r\n text: 'Actions',\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n },\r\n methods: {\r\n updateRouteHistory(item) {\r\n const navigationHistory: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsSnowflakeCloudAccount,\r\n tenantId: null,\r\n cloudAccountId: item.Id,\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationHistory);\r\n return this.$router.push(`${this.routePrefix}/${item.Id}`);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeAccountTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeAccountTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeAccountTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeAccountTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SnowflakeAccountTable.vue?vue&type=template&id=f4b1a394&scoped=true&\"\nimport script from \"./SnowflakeAccountTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./SnowflakeAccountTable.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SnowflakeAccountTable.vue?vue&type=style&index=0&id=f4b1a394&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f4b1a394\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SnowflakeAccountTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CreateSnowflakeAccountDialog from '@/components/Settings.CloudAccounts/Snowflake/CreateSnowflakeAccountDialog.vue';\r\nimport UpdateSnowflakeCredentialsDialog from '@/components/Settings.CloudAccounts/Snowflake/UpdateSnowflakeCredentialsDialog.vue';\r\nimport DeleteCloudAccountDialog from '@/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue';\r\nimport EditCloudAccountNameDialog from '@/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue';\r\nimport EditCloudAccountCurrenciesDialog from '@/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue';\r\nimport SnowflakeAccountTable, {\r\n snowflakeCloudAccountTableFilter,\r\n} from '@/components/Settings.CloudAccounts/Snowflake/SnowflakeAccountTable.vue';\r\nimport TaxonomyType from '@/stores/models/TaxonomyType';\r\nimport { ICloudAccountNavigation } from '@/stores/models/ICloudAccountNavigation';\r\nimport { useCloudAccountNavigationStore } from '@/stores/cloudAccountNavigation';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { defineComponent, ref, computed } from 'vue';\r\nimport * as M from '@/models';\r\n\r\nexport default defineComponent({\r\n title() {\r\n return this.$t('settings.snowflake.title');\r\n },\r\n props: {\r\n cloudAccounts: Array,\r\n },\r\n components: {\r\n SnowflakeAccountTable,\r\n CreateSnowflakeAccountDialog,\r\n UpdateSnowflakeCredentialsDialog,\r\n DeleteCloudAccountDialog,\r\n EditCloudAccountNameDialog,\r\n EditCloudAccountCurrenciesDialog,\r\n },\r\n setup(p, { emit }) {\r\n const isCreating = ref(false);\r\n const isEditing = ref(false);\r\n const isEditingName = ref(false);\r\n const isEditingCurrencies = ref(false);\r\n const isDeleting = ref(false);\r\n const focusedAccount = ref(null);\r\n\r\n const snowflakeAccounts = computed(() => {\r\n return p.cloudAccounts.filter(snowflakeCloudAccountTableFilter);\r\n });\r\n\r\n const onCloudAccountsChanged = () => {\r\n emit('onCloudAccountsChanged');\r\n };\r\n\r\n const startEditName = (account) => {\r\n focusedAccount.value = account;\r\n isEditingName.value = true;\r\n };\r\n const startEditCloudAccount = (account) => {\r\n focusedAccount.value = account;\r\n isEditing.value = true;\r\n };\r\n const startDeleteAccount = (account) => {\r\n focusedAccount.value = account;\r\n isDeleting.value = true;\r\n };\r\n const startEditCurrencies = (account) => {\r\n focusedAccount.value = account;\r\n isEditingCurrencies.value = true;\r\n };\r\n\r\n return {\r\n isCreating,\r\n isEditing,\r\n isEditingName,\r\n isEditingCurrencies,\r\n isDeleting,\r\n focusedAccount,\r\n snowflakeAccounts,\r\n onCloudAccountsChanged,\r\n startEditName,\r\n startEditCloudAccount,\r\n startDeleteAccount,\r\n startEditCurrencies,\r\n };\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/settings/snowflake');\r\n this.$title = this.$t('settings.snowflake.title');\r\n },\r\n copyCloudAccount(item: M.ICloudAccountModel) {\r\n const navigationSource: ICloudAccountNavigation = {\r\n taxonomyType: TaxonomyType.settingsSnowflake,\r\n tenantId: null,\r\n cloudAccountId: null,\r\n };\r\n useCloudAccountNavigationStore().updateNavigationSource(navigationSource);\r\n const url = `/copy/cloudaccounts/${item.cloudAccountId}`;\r\n this.$router.push(url);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SnowflakeView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SnowflakeView.vue?vue&type=template&id=838c5014&\"\nimport script from \"./SnowflakeView.vue?vue&type=script&lang=ts&\"\nexport * from \"./SnowflakeView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SnowflakeView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title-icon\":\"publish\",\"title\":_vm.$t('settings.custom.title'),\"caption\":\"The custom cloud connections upon which you may upload custom usage data.\"},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.isAdding = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]},proxy:true}])},[_c('custom-cloud-accounts-table',{attrs:{\"loading\":_vm.$wait.is('getCloudAccounts'),\"items\":_vm.customCloudAccounts},scopedSlots:_vm._u([{key:`item.actions`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditName(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit name')))])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCurrencies(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"currency_exchange\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit currencies')))])],1)],1),(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{attrs:{\"to\":`/copy/cloudaccounts/${item.cloudAccountId}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('copy cloud connection')))])],1)],1):_vm._e(),(item.Type !== 'SelfReferential')?_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete_forever\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1):_vm._e()],1)],1)]}}],null,true)})],1),_c('form-dialog',{model:{value:(_vm.isAdding),callback:function ($$v) {_vm.isAdding=$$v},expression:\"isAdding\"}},[_c('create-custom-cloud-account-card',{attrs:{\"loading\":_vm.$wait.is('creatingCustomCloudAccount'),\"title\":\"Create Custom Account\",\"subtitle\":\"Custom cloud connections can be used to programmitically import custom usage.\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ loading, form, formId }){return [_c('back-button',{on:{\"click\":function($event){_vm.isAdding = false}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\",\"form\":formId,\"loading\":loading,\"disabled\":loading,\"depressed\":\"\"},on:{\"click\":function($event){$event.preventDefault();return _vm.createCustomAccount(form)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Submit \")],1)]}}])})],1),_c('delete-cloud-account-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}}),_c('edit-cloud-account-name-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingName),callback:function ($$v) {_vm.isEditingName=$$v},expression:\"isEditingName\"}}),_c('edit-cloud-account-currencies-dialog',{attrs:{\"account\":_vm.focusedAccount},on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isEditingAccountCurrencies),callback:function ($$v) {_vm.isEditingAccountCurrencies=$$v},expression:\"isEditingAccountCurrencies\"}}),_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.items,\"item-key\":\"name\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('customCloudAccountsTable.noData'))+\" \")]},proxy:true},{key:`item.actions`,fn:function({ item }){return [_vm._t(\"item.actions\",null,{\"item\":item})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { ICloudAccountModel } from '@/models';\r\n\r\nexport function customCloudAccountTableFilter(ca: ICloudAccountModel) {\r\n return ca.type === 'Custom';\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n items: Array,\r\n loading: Boolean,\r\n routePrefix: {\r\n type: String,\r\n default: '/settings/custom',\r\n },\r\n },\r\n\r\n setup() {\r\n const headers = ref([\r\n { text: 'Name', value: 'name', sortable: true },\r\n { text: 'Actions', value: 'actions', sortable: false },\r\n ]);\r\n\r\n return {\r\n headers,\r\n sortedBy: 'name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomCloudAccountsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomCloudAccountsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomCloudAccountsTable.vue?vue&type=template&id=3b54bce8&\"\nimport script from \"./CustomCloudAccountsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomCloudAccountsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomCloudAccountsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, computed, ref } from 'vue';\r\nimport { ICloudAccountModel } from '@/models';\r\nimport CustomCloudAccountsTable, {\r\n customCloudAccountTableFilter,\r\n} from '@/components/Settings.CloudAccounts/Custom/CustomCloudAccountsTable.vue';\r\nimport CreateCustomCloudAccountCard from '@/components/Common/UpdateEntityNameCard.vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport DeleteCloudAccountDialog from '@/components/Settings.CloudAccounts/DeleteCloudAccountDialog.vue';\r\nimport EditCloudAccountNameDialog from '@/components/Settings.CloudAccounts/EditCloudAccountNameDialog.vue';\r\nimport EditCloudAccountCurrenciesDialog from '@/components/Settings.CloudAccounts/EditCloudAccountCurrenciesDialog.vue';\r\nimport { useTenantStore } from '../../stores/tenant';\r\n\r\nexport default defineComponent({\r\n components: {\r\n CustomCloudAccountsTable,\r\n CreateCustomCloudAccountCard,\r\n DeleteCloudAccountDialog,\r\n EditCloudAccountNameDialog,\r\n EditCloudAccountCurrenciesDialog,\r\n },\r\n props: { cloudAccounts: Array },\r\n setup(props, { emit }) {\r\n const isAdding = ref(false);\r\n const isEditingName = ref(false);\r\n const isEditingAccountCurrencies = ref(false);\r\n const isDeleting = ref(false);\r\n const onCloudAccountsChanged = () => emit('onCloudAccountsChanged');\r\n const focusedAccount = ref(null);\r\n const customCloudAccounts = computed(() => {\r\n return (props.cloudAccounts || ([] as ICloudAccountModel[])).filter(customCloudAccountTableFilter);\r\n });\r\n const createCustomAccount = waitFor('creatingCustomCloudAccount', async function fn(formData: any) {\r\n await ApiV2.http.post('/api/metadata/cloudaccounts', {\r\n type: 'Custom',\r\n name: formData.Name,\r\n });\r\n onCloudAccountsChanged();\r\n isAdding.value = false;\r\n });\r\n const startEditName = (account: ICloudAccountModel) => {\r\n focusedAccount.value = account;\r\n isEditingName.value = true;\r\n };\r\n const startDeleteAccount = (account: ICloudAccountModel) => {\r\n focusedAccount.value = account;\r\n isDeleting.value = true;\r\n };\r\n const startEditCurrencies = (account: ICloudAccountModel) => {\r\n focusedAccount.value = account;\r\n isEditingAccountCurrencies.value = true;\r\n };\r\n const tenantStore = useTenantStore();\r\n return {\r\n customCloudAccounts,\r\n isAdding,\r\n createCustomAccount,\r\n isEditingName,\r\n isEditingAccountCurrencies,\r\n isDeleting,\r\n focusedAccount,\r\n onCloudAccountsChanged,\r\n startEditName,\r\n startEditCurrencies,\r\n startDeleteAccount,\r\n tenantStore\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomView.vue?vue&type=template&id=525fceb2&\"\nimport script from \"./CustomView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('settings.groups.title'),\"caption\":_vm.$t('settings.groups.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-2\",attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}},{key:\"default\",fn:function({ close }){return [_c('SetUserGroupCard',{attrs:{\"value\":_vm.newUserGroup,\"title\":\"New User Group\",\"subtitle\":\"Create a new user group owned by this tenant.\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ form, isValid, loading, formId }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"form\":formId,\"disabled\":!isValid || loading,\"loading\":loading},on:{\"click\":function($event){_vm.createUserGroup(form).then(() => close())}}},[_vm._v(\" Submit \")])]}}],null,true)})]}}]),model:{value:(_vm.isCreatingGroup),callback:function ($$v) {_vm.isCreatingGroup=$$v},expression:\"isCreatingGroup\"}})]},proxy:true}])},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Description\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Total Members #\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Actions\")])])]),_c('tbody',[_vm._l((_vm.userGroups),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.description))]),_c('td',[_c('ModalListInput',{attrs:{\"value\":item.members,\"display-text\":`${item.membershipCount} members in group`,\"inner-label\":\"Email\",\"title\":`${item.name} Emails`,\"subtitle\":\"The emails that will be delivered to when a report leverages this mailing list.\"},on:{\"input\":function($event){return _vm.updateGroupMembers(item, $event)}}})],1),_c('td',[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.startEditUserGroup(item)}}},[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.startDeleteUserGroup(item)}}},[_c('v-icon',[_vm._v(\"delete\")])],1)],1)])}),(_vm.userGroups.length === 0)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\"There are no user groups\")])]):_vm._e()],2)]),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('SetUserGroupCard',{attrs:{\"value\":_vm.focusGroup,\"title\":\"Edit User Group\",\"subtitle\":\"Update the details of this user group\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ form, isValid, loading, formId }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"form\":formId,\"disabled\":!isValid || loading,\"loading\":loading},on:{\"click\":function($event){_vm.editUserGroup((_vm.focusGroup || {}).id, form).then(() => close())}}},[_vm._v(\" Submit \")])]}}],null,true)})]}}]),model:{value:(_vm.isEditingGroup),callback:function ($$v) {_vm.isEditingGroup=$$v},expression:\"isEditingGroup\"}}),_c('DeleteEntityDialog',{attrs:{\"entityToDelete\":_vm.focusGroup,\"entityType\":\"User Group\",\"resourceApi\":\"/api/metadata/tenant/current/usergroups\"},on:{\"http2xx\":function($event){return _vm.getUserGroups()}},model:{value:(_vm.isDeletingGroup),callback:function ($$v) {_vm.isDeletingGroup=$$v},expression:\"isDeletingGroup\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"default\",null,{\"isValid\":_vm.valid,\"clear\":reset,\"formId\":formId,\"loading\":_vm.loading,\"form\":{ name: _vm.entityName, description: _vm.entityDescription }})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"persistent-hint\":\"\",\"label\":_vm.$t('name'),\"required\":\"\"},model:{value:(_vm.entityName),callback:function ($$v) {_vm.entityName=$$v},expression:\"entityName\"}}),_c('v-textarea',{attrs:{\"rules\":[_vm.$rules.required()],\"persistent-hint\":\"\",\"label\":_vm.$t('description'),\"required\":\"\"},model:{value:(_vm.entityDescription),callback:function ($$v) {_vm.entityDescription=$$v},expression:\"entityDescription\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetUserGroupCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetUserGroupCard.vue?vue&type=template&id=21e2c6d4&\"\nimport script from \"./SetUserGroupCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetUserGroupCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{attrs:{\"value\":_vm.displayText || _vm.readText,\"rules\":_vm.rules || [],\"readonly\":\"\",\"label\":_vm.label,\"tabindex\":\"-1\"},on:{\"click\":function($event){return _vm.open()}},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-icon',_vm._g({attrs:{\"title\":_vm.label}},on),[_vm._v(\"edit\")])]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){return _vm.addItem()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1),_c('v-btn',{attrs:{\"color\":\"secondary\",\"form\":formId,\"disabled\":!_vm.isValid || !_vm.additionalIsValid},on:{\"click\":function($event){$event.preventDefault();close().then(() => _vm.submit())}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Submit \")],1)]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},_vm._l((_vm.items),function(item,i){return _c('v-text-field',{key:i,attrs:{\"label\":_vm.innerLabel,\"rules\":_vm.innerRules || [],\"autofocus\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.deleteItem(i)}}},[_c('v-icon',[_vm._v(\"delete\")])],1)]},proxy:true}],null,true),model:{value:(item.value),callback:function ($$v) {_vm.$set(item, \"value\", $$v)},expression:\"item.value\"}})}),1)]}}]),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, computed, ref, watch } from \"vue\";\r\n\r\nexport interface IItemViewModel {\r\n value: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: {\r\n displayText: String,\r\n value: Array,\r\n label: String,\r\n innerLabel: String,\r\n min: Number,\r\n max: Number,\r\n title: String,\r\n subtitle: String,\r\n rules: Array,\r\n innerRules: Array,\r\n },\r\n setup(p, { emit }) {\r\n const readText = computed(() => {\r\n return p.value?.length ? p.value.join(\",\") : \"\";\r\n });\r\n const items = ref([]);\r\n const isOpen = ref(false);\r\n const isValid = ref(false);\r\n const open = () => {\r\n if (isOpen.value) return;\r\n isOpen.value = true;\r\n };\r\n const close = () => {\r\n if (!isOpen.value) return;\r\n isOpen.value = false;\r\n };\r\n const deleteItem = (i: number) => {\r\n items.value.splice(i, 1);\r\n items.value = [...items.value];\r\n };\r\n const addItem = () => {\r\n items.value.push({ value: \"\" });\r\n };\r\n const submit = () => {\r\n emit(\r\n \"input\",\r\n items.value.map((i) => i.value)\r\n );\r\n };\r\n const additionalIsValid = computed(() => {\r\n if (p.min && items.value.length < p.min) return false;\r\n if (p.max && items.value.length > p.max) return false;\r\n return true;\r\n });\r\n watch(\r\n () => p.value,\r\n (v) => {\r\n if (!v || !v.length) items.value = [{ value: \"\" }];\r\n else items.value = v.map((value: string) => ({ value }));\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n return {\r\n readText,\r\n isOpen,\r\n isValid,\r\n items,\r\n additionalIsValid,\r\n addItem,\r\n deleteItem,\r\n submit,\r\n open,\r\n close,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalListInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModalListInput.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ModalListInput.vue?vue&type=template&id=6b65bfe1&\"\nimport script from \"./ModalListInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./ModalListInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent } from 'vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport SetUserGroupCard from '@/components/Settings.Users/SetUserGroupCard.vue';\r\nimport DeleteEntityDialog from '@/components/Common/DeleteEntityDialog.vue';\r\nimport ModalListInput from '@/components/Common/ModalListInput.vue';\r\n\r\nexport default defineComponent({\r\n title() {\r\n return 'Groups';\r\n },\r\n components: {\r\n SetUserGroupCard,\r\n DeleteEntityDialog,\r\n ModalListInput\r\n },\r\n data() {\r\n return {\r\n userGroups: [],\r\n newUserGroup: { name: '', description: '' },\r\n focusGroup: { id: '', name: '', description: '' },\r\n isCreatingGroup: false,\r\n isEditingGroup: false,\r\n isDeletingGroup: false,\r\n };\r\n },\r\n methods: {\r\n getUserGroups: waitFor('getUserGroups', async function () {\r\n this.userGroups = await ApiV2.http.get('api/metadata/tenant/current/usergroups').then((r) => r.data);\r\n }),\r\n createUserGroup: waitFor('creatingUserGroup', async function (form: { name: string; description: string }) {\r\n await ApiV2.http.post('api/metadata/tenant/current/usergroups', form);\r\n this.getUserGroups();\r\n }),\r\n editUserGroup: waitFor(\r\n 'editingUserGroup',\r\n async function (id: string, form: { name: string; description: string }) {\r\n await ApiV2.http.put(`api/metadata/tenant/current/usergroups/${id}`, form);\r\n this.getUserGroups();\r\n }\r\n ),\r\n startEditUserGroup(userGroup: any) {\r\n this.isEditingGroup = true;\r\n this.focusGroup = userGroup;\r\n },\r\n startDeleteUserGroup(userGroup: any) {\r\n this.isDeletingGroup = true;\r\n this.focusGroup = userGroup;\r\n },\r\n async updateGroupMembers(userGroup:any, emails:string[]) {\r\n await ApiV2.http.put(`api/metadata/tenant/current/usergroups/${userGroup.id}/users`, emails);\r\n this.getUserGroups();\r\n }\r\n },\r\n created() {\r\n this.getUserGroups();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GroupsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GroupsView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GroupsView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GroupsView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GroupsView.vue?vue&type=template&id=273309fe&\"\nimport script from \"./GroupsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./GroupsView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GroupsView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-container',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('views.users.title'),\"caption\":_vm.$t('views.users.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-btn',_vm._g(_vm._b({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},'v-btn',attrs,false),on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('users.inviteUserOrGroup'))+\" \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startCreateAccount()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mail\")])],1),_c('v-list-item-title',[_vm._v(\"Invite new user\")])],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startAddUserGroup()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"person_add\")])],1),_c('v-list-item-title',[_vm._v(\"Grant permissions to group\")])],1)],1)],1)]},proxy:true},{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)},[_c('users-table',{attrs:{\"items\":_vm.userItems,\"loading\":_vm.$wait.is('getUsers')},scopedSlots:_vm._u([{key:`item.menu`,fn:function({ item }){return [(!item.IsMe)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[(item.type === 'User')?_c('v-list',{attrs:{\"light\":\"\"}},[(!item.isTenantCreator)?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAccount(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1):_c('v-list',{attrs:{\"light\":\"\"}},[(!item.isTenantCreator)?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditUserGroup(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteUserGroup(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1)],1):_c('span',[_vm._v(\"N/A\")])]}}],null,true)})],1)],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('set-user-card',{attrs:{\"loading\":_vm.$wait.is('createUser'),\"value\":_vm.userToEdit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),(!_vm.userToEdit)?_c('add-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('createUser'),expression:\"'createUser'\"}],attrs:{\"value\":form,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":_vm.prefix},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}}):_c('update-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('createUser'),expression:\"'createUser'\"}],attrs:{\"value\":form,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":_vm.prefix},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.createOrUpdateUser),callback:function ($$v) {_vm.$set(_vm.dialogs, \"createOrUpdateUser\", $$v)},expression:\"dialogs.createOrUpdateUser\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('SetUserGroupPermissionsCard',{attrs:{\"value\":_vm.userGroupToEdit,\"loading\":_vm.$wait.is('addingUserGroup'),\"groups\":_vm.userGroups,\"disabled\":_vm.userGroupToEdit ? { groupId: true } : null},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, loading, isValid }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"primary\",\"type\":\"submit\",\"form\":formId,\"disabled\":loading || !isValid,\"loading\":loading},on:{\"click\":function($event){return _vm.tryAddOrUpdateGroup(form, close)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit \")],1)]}}],null,true)})]}}]),model:{value:(_vm.dialogs.addUserGroupPermission),callback:function ($$v) {_vm.$set(_vm.dialogs, \"addUserGroupPermission\", $$v)},expression:\"dialogs.addUserGroupPermission\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-user-card',{attrs:{\"loading\":_vm.$wait.is('deleteUser'),\"value\":_vm.userToDelete,\"title\":_vm.$t('users.DeleteUserTitle'),\"subtitle\":_vm.$t('users.DeleteUserSubtitle'),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-user-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deleteUser'),expression:\"'deleteUser'\"}],attrs:{\"value\":_vm.userToDelete,\"clear\":clear,\"valid\":isValid,\"form\":formId,\"prefix\":_vm.prefix},on:{\"http2xx\":function($event){close().then(_vm.getUsers)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.deleteUser),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteUser\", $$v)},expression:\"dialogs.deleteUser\"}}),_c('DeleteEntityDialog',{attrs:{\"entityToDelete\":_vm.userGroupToRemove,\"entityType\":\"User Group\",\"resourceApi\":\"/api/metadata/tenant/current/delegatedusergroups\"},on:{\"http2xx\":function($event){return _vm.getUsers()}},model:{value:(_vm.dialogs.deleteUserGroup),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteUserGroup\", $$v)},expression:\"dialogs.deleteUserGroup\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.users.title\": \"Access Management\",\r\n \"views.users.subtitle\": \"The users and groups that have some level of access of this tenant.\",\r\n \"users.inviteUserOrGroup\": \"Add User / Group\",\r\n \"users\": \"Users\",\r\n \"users.DeleteUserTitle\": \"Delete User\",\r\n \"users.DeleteUserSubtitle\": \"This user will be removed from this tenant. If this was a mistake you can re-invite them and their access will be renewed.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsersView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./UsersView.vue?vue&type=template&id=7c3a4fee&\"\nimport script from \"./UsersView.vue?vue&type=script&lang=js&\"\nexport * from \"./UsersView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./UsersView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm.$t('billingDetails.title')))]),_c('v-card-text',[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',[_c('v-alert',{attrs:{\"outlined\":\"\",\"text\":\"\",\"type\":_vm.billingDetails.color,\"icon\":_vm.billingDetails.icon}},[_vm._v(_vm._s(_vm.billingDetails.description))])],1)],1),(!_vm.tenantStore.hasActiveSubscription && _vm.tenantStore.isSelfService && _vm.selfServiceEnabled)?_c('plan-card'):_vm._e()],1),_c('v-divider'),(_vm.tenantStore.hasActiveSubscription)?_c('v-container',[_c('v-row',[_c('v-col',[(_vm.billingDetails.plan)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(\"Plan overview\")]),_c('v-card-text',[_c('v-row',[_c('v-col',[_vm._v(\"Plan name\")]),_c('v-col',[_vm._v(_vm._s(_vm.billingDetails.plan.planName))])],1),_c('v-row',[_c('v-col',[_vm._v(\"Plan description\")]),_c('v-col',[_vm._v(_vm._s(_vm.billingDetails.plan.planDescription))])],1),(_vm.billingDetails.plan.includedSpendInAud)?_c('v-row',[_c('v-col',[_vm._v(\"Included spend (AUD)\")]),_c('v-col',[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.billingDetails.totalSpendInAud,'AUD'))+\" of \"),_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.billingDetails.plan.includedSpendInAud,'AUD')))]),_c('consumption-bar',{attrs:{\"current-consumption\":(_vm.billingDetails.totalSpendInAud / _vm.billingDetails.plan.includedSpendInAud) * 100}})],1)],1):_vm._e(),(_vm.billingDetails.plan.overagePercentage)?_c('v-row',[_c('v-col',[_vm._v(\"Overage charged at\")]),_c('v-col',[_vm._v(_vm._s(_vm.billingDetails.plan.overagePercentage))])],1):_vm._e()],1)],1):_vm._e()],1),_c('v-col',[(_vm.billingDetails.isSelfService && _vm.selfServiceEnabled)?_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_vm._v(\"Update Details\")]),_c('v-card-text',[_vm._v(\" To change plans, updated your payment details, or cancel your subscription please use the link below. \")]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"primary\",\"loading\":_vm.$wait.is('loadingSession')},on:{\"click\":_vm.loadCustomerPortalSession}},[_vm._v(\" Update Subscription \")])],1)],1):_vm._e()],1)],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export class BillingPlan {\r\n public planName: string;\r\n public planId: number;\r\n public planDescription: string;\r\n public includedSpendInAud?: number;\r\n public overagePercentage?: number;\r\n\r\n constructor(plan: any) {\r\n this.planId = plan.planId;\r\n this.planName = plan.planName;\r\n this.planDescription = plan.planDescription;\r\n this.includedSpendInAud = plan.includedSpendInAud;\r\n this.overagePercentage = plan.overagePercentage;\r\n }\r\n}\r\n\r\nexport class BillingDetailsStatus {\r\n public billingStatus: number;\r\n public remainingDays: any;\r\n public plan?: BillingPlan;\r\n public totalSpendInAud: number;\r\n public isSelfService: boolean;\r\n\r\n constructor(status: any) {\r\n if (status) {\r\n this.billingStatus = status.billingStatus;\r\n this.remainingDays = status.remainingDays;\r\n this.plan = (status.planDetails) ? new BillingPlan(status.planDetails) : null;\r\n this.totalSpendInAud = status.totalSpendInAud;\r\n this.isSelfService = status.isSelfService;\r\n }\r\n }\r\n\r\n get color() {\r\n switch (this.billingStatus) {\r\n case 1: // FREE_TRIAL_COUNTDOWN\r\n return 'warning';\r\n case 2: // FULL_ACCOUNT_BILLED\r\n case 3: // FULL_ACCOUNT_BILLED_PROVIDER\r\n return 'success';\r\n default: // NO_BILLING_AGREEMENT\r\n return 'warning';\r\n }\r\n }\r\n\r\n get icon() {\r\n switch (this.billingStatus) {\r\n case 1: // FREE_TRIAL_COUNTDOWN\r\n return 'watch_later';\r\n case 2: // FULL_ACCOUNT_BILLED\r\n case 3: // FULL_ACCOUNT_BILLED_PROVIDER\r\n return 'check';\r\n case 4: // EXPIRED\r\n default: // NO_BILLING_AGREEMENT\r\n return 'warning';\r\n }\r\n }\r\n\r\n get description() {\r\n let description = \"\";\r\n switch (this.billingStatus) {\r\n case 1: // FREE_TRIAL_COUNTDOWN\r\n description = `You are currently on a free trial which ends in ${this.remainingDays} days.`;\r\n break;\r\n case 2: // FULL_ACCOUNT_BILLED\r\n description = \"Full Account. Monthly Billing.\";\r\n break;\r\n case 3: // FULL_ACCOUNT_BILLED_PROVIDER\r\n description = \"Usage for this account is billed to your provider.\";\r\n break;\r\n case 4: // EXPIRED\r\n description = \"Your billing plan has expired which means no data will be loaded.\";\r\n break;\r\n default: // NO_BILLING_AGREEMENT\r\n description = \"There is no subscription in place for this account which means no data will be loaded.\";\r\n break;\r\n }\r\n\r\n return description;\r\n }\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.maxConsumption)?_c('v-row',[_c('v-col',{staticClass:\"text-left\",attrs:{\"cols\":\"6\"}},[_c('small',[_vm._v(_vm._s(_vm.minConsumption || 0))])]),_c('v-col',{staticClass:\"text-right\",attrs:{\"cols\":\"6\"}},[_c('small',[_vm._v(_vm._s(_vm.maxConsumption))])])],1):_vm._e(),_c('v-progress-linear',{style:(`background-color:${_vm.backgroundColor}`),attrs:{\"background-color\":_vm.predictedColor,\"color\":_vm.currentColor,\"value\":_vm.currentConsumption,\"buffer-value\":_vm.predictedConsumption,\"height\":\"20\",\"rounded\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ value }){return [_c('strong',[_vm._v(_vm._s(Math.ceil(value))+\"%\")])]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, computed } from 'vue';\r\nimport {\r\n VuetifyErrorDarken1,\r\n VuetifyWarningDarken1,\r\n VuetifySuccessDarken1,\r\n VuetifySuccessLighten2,\r\n VuetifyErrorLighten2,\r\n VuetifyWarningLighten2,\r\n} from '@/lib/CssVariables';\r\nexport default defineComponent({\r\n props: {\r\n currentConsumption: Number,\r\n predictedConsumption: { type: Number, default: null },\r\n minConsumption: { type: String, default: null },\r\n maxConsumption: { type: String, default: null },\r\n },\r\n setup(props) {\r\n const currentColor = computed(() => {\r\n if (props.currentConsumption >= 100) {\r\n return VuetifyErrorDarken1;\r\n } else if (props.predictedConsumption >= 100) {\r\n return VuetifyWarningDarken1;\r\n } else {\r\n return VuetifySuccessDarken1;\r\n }\r\n });\r\n const predictedColor = computed(() => {\r\n if (props.currentConsumption >= 100) {\r\n return VuetifyErrorLighten2;\r\n } else if (props.predictedConsumption >= 100) {\r\n return VuetifyWarningLighten2;\r\n } else {\r\n return VuetifySuccessLighten2;\r\n }\r\n });\r\n return {\r\n backgroundColor: '#f0f2f7',\r\n currentColor,\r\n predictedColor,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConsumptionBar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ConsumptionBar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ConsumptionBar.vue?vue&type=template&id=29e610e4&\"\nimport script from \"./ConsumptionBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./ConsumptionBar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":\"Select a plan to start your trial subscription\",\"title-icon\":\"star\",\"loading\":_vm.$wait.is('loadingplans')}},[(!_vm.$wait.is('loadingplans'))?_c('v-container',{attrs:{\"fill-height\":\"\"}},[_c('v-row',{staticClass:\"mb-8\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-btn-toggle',{attrs:{\"mandatory\":\"\"},model:{value:(_vm.isMonthly),callback:function ($$v) {_vm.isMonthly=$$v},expression:\"isMonthly\"}},[_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"value\":true}},[_vm._v(\"Monthly\")]),_c('v-btn',{attrs:{\"small\":\"\",\"outlined\":\"\",\"value\":false}},[_vm._v(\"Yearly\")])],1)],1),_c('v-row',{attrs:{\"fill-height\":\"\"}},_vm._l((_vm.products),function(product){return _c('v-col',{key:product.stripeProductId},[_c('v-card',{attrs:{\"height\":\"100%\"}},[_c('v-card-title',[_vm._v(_vm._s(product.name))]),_c('v-card-text',[(_vm.isMonthly)?_c('v-row',{staticClass:\"ma-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{staticClass:\"text-h3\",attrs:{\"align\":\"center\"}},[_vm._v(\" $\"+_vm._s(product.monthlyPlan.amount)),_c('br'),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"loading\":_vm.$wait.is('redirecting')},on:{\"click\":function($event){return _vm.planSelected(`${product.monthlyPlan.stripePriceId}`)}}},[_vm._v(\"start trial\")])],1)],1):_vm._e(),(!_vm.isMonthly)?_c('v-row',{staticClass:\"ma-4\",attrs:{\"align\":\"center\",\"justify\":\"center\"}},[_c('v-col',{staticClass:\"text-h3\",attrs:{\"align\":\"center\"}},[_vm._v(\" $\"+_vm._s(product.yearlyPlan.amount)),_c('br'),_c('v-btn',{attrs:{\"small\":\"\",\"color\":\"primary\",\"loading\":_vm.$wait.is('redirecting')},on:{\"click\":function($event){return _vm.planSelected(`${product.yearlyPlan.stripePriceId}`)}}},[_vm._v(\"start trial\")])],1)],1):_vm._e(),_c('v-row',[_c('v-col',[_c('ul',_vm._l((product.features),function(value,propertyName){return _c('li',{key:propertyName},[_vm._v(\" \"+_vm._s(propertyName)+\": \"+_vm._s(value)+\" \")])}),0)])],1)],1)],1)],1)}),1),_c('v-row',{staticClass:\"mt-8\"},[_c('v-col',{staticClass:\"text-caption\"},[_vm._v(\"All prices listed in Australian Dollars and exclude GST. Payments are processed by our subscription provider Stripe.\")])],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectPlanCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectPlanCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectPlanCard.vue?vue&type=template&id=b1b96358&\"\nimport script from \"./SelectPlanCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectPlanCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n {\r\n \"en\": {\r\n \"billingDetails.title\": \"Billing details\"\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BillingDetailsView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BillingDetailsView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BillingDetailsView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BillingDetailsView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./BillingDetailsView.vue?vue&type=template&id=26d85ceb&scoped=true&\"\nimport script from \"./BillingDetailsView.vue?vue&type=script&lang=js&\"\nexport * from \"./BillingDetailsView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"26d85ceb\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./BillingDetailsView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-container',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('apiManagement.subTitle'),\"caption\":_vm.$t('apiManagement.caption')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.showGenerateApiKey()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('add'))+\" \")],1)]},proxy:true}])},[_c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.apiKeys,\"item-key\":\"id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc,\"loading-text\":_vm.$t('apiManagement.table.loading')},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('apiManagement.table.noData'))+\" \")]},proxy:true},{key:`item.reference`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.mask)+\" \")]}},{key:`item.permissions`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.permissions ? item.permissions.join(', ') : `${item.impersionationAccountEmail} [Impersonate]`)+\" \")]}},{key:`item.creationDate`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"calendarFormat\")(item.createdDate))+\" \")]}},{key:`item.Actions`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.removeKey(item.id)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('disable')))])],1)],1)],1)],1)]}}],null,true)})],1)],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('generate-api-key-card',{attrs:{\"loading\":_vm.$wait.is('createKey'),\"generatedKey\":_vm.generatedKey},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear }){return [(!_vm.generatedKey)?_c('back-button',{on:{\"click\":function($event){return close()}}}):_vm._e(),_c('v-spacer'),(!_vm.generatedKey)?_c('generate-api-key-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('createKey'),expression:\"'createKey'\"}],attrs:{\"clear\":clear,\"valid\":isValid,\"form\":form},on:{\"http2xx\":_vm.setGenerated}}):_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){close().then(_vm.successfulGenerate)}}},[_vm._v(\" \"+_vm._s(_vm.$t('close'))+\" \")])]}}],null,true)})]}}]),model:{value:(_vm.dialogs.showCreateKey),callback:function ($$v) {_vm.$set(_vm.dialogs, \"showCreateKey\", $$v)},expression:\"dialogs.showCreateKey\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"value\":_vm.keyToDelete,\"loading\":_vm.$wait.is('deletingKey'),\"title\":_vm.$t('apiManagement.deleteDialog.title'),\"subtitle\":_vm.$t('apiManagement.deleteDialog.subtitle'),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('delete-api-key-button',{attrs:{\"apiKeyId\":_vm.keyToDelete,\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(_vm.successfulDelete)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.showDeleteKey),callback:function ($$v) {_vm.$set(_vm.dialogs, \"showDeleteKey\", $$v)},expression:\"dialogs.showDeleteKey\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('generateApiKeyCard.title'),\"subtitle\":_vm.$t('generateApiKeyCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"formId\":formId,\"isValid\":true,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true)},[_vm._v(\" \"+_vm._s(_vm.$t('generateApiKeyCard.ApiKey'))+\" \"),_c('v-textarea',{attrs:{\"outlined\":\"\",\"disabled\":!_vm.generatedKey,\"placeholder\":_vm.$t('generateApiKeyCard.ApiKey.placeholder')},model:{value:(_vm.generatedKey),callback:function ($$v) {_vm.generatedKey=$$v},expression:\"generatedKey\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nexport default {\r\n props: ['loading', 'value', 'disabled', 'valid', 'generatedKey'],\r\n methods: {\r\n copy() {\r\n navigator.clipboard.writeText(this.generatedKey);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GenerateApiKeyCard.vue?vue&type=template&id=72150b01&\"\nimport script from \"./GenerateApiKeyCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./GenerateApiKeyCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GenerateApiKeyCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"secondary\",\"depressed\":\"\",\"loading\":_vm.loading,\"disabled\":!_vm.valid,\"form\":_vm.form},on:{\"click\":function($event){$event.preventDefault();return _vm.submit()}}},[_vm._v(\" \"+_vm._s(_vm.$t('generateApiKeyButton.generateText'))+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"generateApiKeyButton.generateText\": \"Generate\",\r\n \"generateApiKeyButton.error\": \"There was an issue generating an api key.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GenerateApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GenerateApiKeyButton.vue?vue&type=template&id=b134755e&\"\nimport script from \"./GenerateApiKeyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./GenerateApiKeyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GenerateApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":_vm.apiKeyId ? `/api/apikeys/${_vm.apiKeyId}` : null,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteApiKeyButton.errorMessage\": \"There was an issue deleting the api key.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteApiKeyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteApiKeyButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteApiKeyButton.vue?vue&type=template&id=199c5b6d&\"\nimport script from \"./DeleteApiKeyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteApiKeyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteApiKeyButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { getApiKeys } from '@/lib/Api';\r\nimport GenerateApiKeyCard from '@/components/Account.ApiManagement/GenerateApiKeyCard.vue';\r\nimport GenerateApiKeyButton from '@/components/Account.ApiManagement/GenerateApiKeyButton.vue';\r\nimport DeleteApiKeyButton from '@/components/Account.ApiManagement/DeleteApiKeyButton.vue';\r\nimport { toastSuccess } from '@/components/Common/Toast.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t('apiManagement.title');\r\n },\r\n components: {\r\n GenerateApiKeyCard,\r\n GenerateApiKeyButton,\r\n DeleteApiKeyButton,\r\n },\r\n data() {\r\n return {\r\n sortedBy: 'Name',\r\n sortedDesc: true,\r\n itemsPerPage: 10,\r\n loading: true,\r\n dialogs: {\r\n showCreateKey: false,\r\n showDeleteKey: false,\r\n },\r\n apiKeys: [],\r\n profiles: [],\r\n generatedKey: null,\r\n keyToDelete: null,\r\n };\r\n },\r\n methods: {\r\n setGenerated(data) {\r\n this.generatedKey = data.key;\r\n },\r\n removeKey(keyId) {\r\n this.keyToDelete = keyId;\r\n this.dialogs.showDeleteKey = true;\r\n },\r\n showGenerateApiKey() {\r\n this.dialogs.showCreateKey = true;\r\n },\r\n async successfulGenerate() {\r\n this.generatedKey = null;\r\n await this.loadKeys();\r\n },\r\n async successfulDelete() {\r\n toastSuccess(this.$t('apiManagement.deletedKeyToast'));\r\n this.keyToDelete = null;\r\n\r\n await this.loadKeys();\r\n },\r\n async loadKeys() {\r\n this.loading = true;\r\n\r\n try {\r\n const tenantId = this.tenantStore.tenantId;\r\n this.apiKeys = await getApiKeys()\r\n .then((r) => r.filter((a) => a.tenantId === tenantId));\r\n } finally {\r\n this.loading = false;\r\n }\r\n },\r\n },\r\n computed: {\r\n headers() {\r\n return [\r\n {\r\n text: this.$t('apiManagement.table.referenceColumn'),\r\n value: 'reference',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('apiManagement.table.permissions'),\r\n value: 'permissions',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('apiManagement.table.creationDateColumn'),\r\n value: 'creationDate',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t('apiManagement.table.createdByEmail'),\r\n value: 'createdByAccountEmail',\r\n sortable: true\r\n },\r\n {\r\n value: 'Actions',\r\n sortable: false,\r\n },\r\n ];\r\n },\r\n ...mapStores(useTenantStore)\r\n },\r\n async mounted() {\r\n await this.loadKeys();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ApiManagementView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ApiManagementView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ApiManagementView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ApiManagementView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ApiManagementView.vue?vue&type=template&id=cfcd3016&\"\nimport script from \"./ApiManagementView.vue?vue&type=script&lang=ts&\"\nexport * from \"./ApiManagementView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ApiManagementView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-container',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('views.manageTenants.my.title'),\"caption\":_vm.$t('views.manageTenants.my.caption')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.startEditTenant(_vm.tenantToEdit)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"edit\")]),_vm._v(\" \"+_vm._s(_vm.$t('edit'))+\" \")],1)]},proxy:true}])},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('views.manageTenants.tenantId')},model:{value:(_vm.tenantToEdit.id),callback:function ($$v) {_vm.$set(_vm.tenantToEdit, \"id\", $$v)},expression:\"tenantToEdit.id\"}})],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('views.manageTenants.name')},model:{value:(_vm.tenantToEdit.name),callback:function ($$v) {_vm.$set(_vm.tenantToEdit, \"name\", $$v)},expression:\"tenantToEdit.name\"}})],1),_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('views.manageTenants.display.currency')},model:{value:(_vm.tenantToEdit.displayCurrencyCode),callback:function ($$v) {_vm.$set(_vm.tenantToEdit, \"displayCurrencyCode\", $$v)},expression:\"tenantToEdit.displayCurrencyCode\"}})],1),(_vm.tenantStore.features.includes('AllowMpnOverride'))?_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('v-text-field',{attrs:{\"readonly\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('views.manageTenants.display.mpn')},model:{value:(_vm.tenantToEdit.mpnOverride),callback:function ($$v) {_vm.$set(_vm.tenantToEdit, \"mpnOverride\", $$v)},expression:\"tenantToEdit.mpnOverride\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('div',[_vm._v(\"Tag Hierarchy\")]),_c('v-treeview',{attrs:{\"open-all\":\"\",\"items\":_vm.tagHierarchy}})],1)],1)],1),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"value\":_vm.tenantToDelete,\"loading\":_vm.$wait.is('deletingTenant'),\"title\":_vm.$t('views.manageTenants.delete.title'),\"subtitle\":_vm.$t('views.manageTenants.delete.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('delete-tenant-button',{attrs:{\"value\":_vm.tenantToDelete,\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(_vm.goToChoose)}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.deleteTenant),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteTenant\", $$v)},expression:\"dialogs.deleteTenant\"}}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('set-tenant-card',{attrs:{\"value\":_vm.tenantToEdit,\"loading\":_vm.$wait.is('updatingTenant'),\"title\":_vm.$t('views.manageTenants.edit.title'),\"subtitle\":_vm.$t('views.manageTenants.edit.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, form, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('put-tenant-button',{attrs:{\"value\":{ ..._vm.tenantToEdit, ...form },\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(_vm.afterUpdateTenant({ ..._vm.tenantToEdit, ...form }))}}})]}}],null,true)})]}}]),model:{value:(_vm.dialogs.updateTenant),callback:function ($$v) {_vm.$set(_vm.dialogs, \"updateTenant\", $$v)},expression:\"dialogs.updateTenant\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":_vm.value ? `/api/metadata/tenant/${_vm.value.Id}` : null,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteTenantButton.errorMessage\": \"There was an error encountered while deleting this tenant. If everything looks right please contact support so we can help you :)\",\r\n \"deleteTenantButton.unauthorisedMessage\": \"You do not have permission to delete this tenant.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteTenantButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteTenantButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteTenantButton.vue?vue&type=template&id=13cd5e5b&\"\nimport script from \"./DeleteTenantButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteTenantButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.manageTenants.title\": \"General Settings\",\r\n \"views.manageTenants.my.title\": \"General Settings\",\r\n \"views.manageTenants.my.caption\": \"Name, currency and other general settings for this tenant.\",\r\n \"views.manageTenants.edit.button\": \"Edit\",\r\n \"views.manageTenants.name\": \"Name\",\r\n \"views.manageTenants.tenantId\": \"Tenant ID\",\r\n \"views.manageTenants.display.currency\": \"Display Currency\",\r\n \"views.manageTenants.display.mpn\": \"Microsoft Partner Number\",\r\n \"views.manageTenants.edit.title\": \"Update Tenant\",\r\n \"views.manageTenants.edit.subtitle\": \"Update the details of this tenant. FX Rates will be applied on the underlying cloud currencies immediately.\",\r\n \"views.manageTenants.delete.button\": \"Delete\",\r\n \"views.manageTenants.delete.title\": \"Delete Tenant\",\r\n \"views.manageTenants.delete.subtitle\": \"Please consider this carefully before continuing, this action cannot be reversed. You will always be able to create a new tenant and re-import your usage but you will lose all custom tags, spend limits etc. forever.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeneralView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeneralView.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeneralView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GeneralView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GeneralView.vue?vue&type=template&id=b1bdd542&\"\nimport script from \"./GeneralView.vue?vue&type=script&lang=js&\"\nexport * from \"./GeneralView.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GeneralView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{attrs:{\"title-icon\":\"currency_exchange\",\"title\":\"FX Rate Overrides\",\"caption\":\"When configuring a cloud connection you may nominate whether to use the base FX rates or include any overrides supplied on this screen.\"},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-fx-rate-dialog',{on:{\"http2xx\":function($event){return _vm.getTenantCurrencies()}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-2\",attrs:{\"color\":\"secondary\",\"depressed\":\"\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}}]),model:{value:(_vm.isAdding),callback:function ($$v) {_vm.isAdding=$$v},expression:\"isAdding\"}})]},proxy:true}])},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Source\")]),_c('th',[_vm._v(\"Target\")]),_c('th',[_vm._v(\"Rate\")]),_c('th',[_vm._v(\"Effective From\")]),_c('th',[_vm._v(\"Actions\")])])]),_c('tbody',[(_vm.tenantFxRates.length === 0)?_c('tr',[_c('td',{staticStyle:{\"text-align\":\"center\"},attrs:{\"colspan\":\"5\"}},[_vm._v(\"No overrides.\")])]):_vm._e(),_vm._l((_vm.tenantFxRates),function(fx,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(fx.sourceCurrencyCode))]),_c('td',[_vm._v(_vm._s(fx.targetCurrencyCode))]),_c('td',[_vm._v(\"1:\"+_vm._s(fx.fxRate))]),_c('td',[_vm._v(_vm._s(fx.effectiveFromMonth)+\"/\"+_vm._s(fx.effectiveFromYear))]),_c('td',[_c('fx-rate-menu',{attrs:{\"value\":fx},on:{\"http2xx\":_vm.getTenantCurrencies}})],1)])})],2)])],1),_c('content-card',{staticClass:\"mt-4\",attrs:{\"title-icon\":\"price_check\",\"title\":\"System FX Rates\",\"caption\":\"The base set of system-level FX rates which will be used in lieu of any provided overrides.\"}},[_c('v-select',{staticClass:\"mr-2\",staticStyle:{\"max-width\":\"300px\",\"float\":\"left\"},attrs:{\"items\":_vm.priorMonths,\"item-text\":\"text\",\"item-value\":\"value\",\"filled\":\"\",\"dense\":\"\",\"label\":\"Period\"},on:{\"change\":function($event){return _vm.getFixedCurrencies()}},model:{value:(_vm.selectedMonth),callback:function ($$v) {_vm.selectedMonth=$$v},expression:\"selectedMonth\"}}),_c('v-select',{staticStyle:{\"max-width\":\"300px\"},attrs:{\"items\":_vm.currencyCodes,\"filled\":\"\",\"dense\":\"\",\"label\":\"Currency\"},on:{\"change\":function($event){return _vm.getFixedCurrencies()}},model:{value:(_vm.targetCurrencyCode),callback:function ($$v) {_vm.targetCurrencyCode=$$v},expression:\"targetCurrencyCode\"}}),_c('v-simple-table',{staticStyle:{\"clear\":\"left\"}},[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Source\")]),_c('th',[_vm._v(\"Target\")]),_c('th',[_vm._v(\"Rate\")]),_c('th',[_vm._v(\"Effective From\")])])]),_c('tbody',[(_vm.fixedFxRates.length === 0)?_c('tr',[_c('td',{staticStyle:{\"text-align\":\"center\"},attrs:{\"colspan\":\"5\"}},[_vm._v(\"No overrides.\")])]):_vm._e(),_vm._l((_vm.fixedFxRates),function(fx,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(fx.sourceCurrencyCode))]),_c('td',[_vm._v(_vm._s(fx.targetCurrencyCode))]),_c('td',[_vm._v(\"1:\"+_vm._s(fx.fxRate))]),_c('td',[_vm._v(_vm._s(fx.effectiveFromMonth)+\"/\"+_vm._s(fx.effectiveFromYear))])])})],2)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-fx-rate-dialog',{attrs:{\"value\":_vm.value,\"loading\":_vm.$wait.is('creatingFxRate')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, close }){return [_c('create-fx-rate-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingFxRate'),expression:\"'creatingFxRate'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-fx-rate-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"value\":_vm.edit},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":\"Set FX Rate\",\"subtitle\":\"FX Rates are effective from a given period until another FX Rate is provided in the future.\",\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.formData,\"formId\":formId,\"isValid\":_vm.valid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-alert',{attrs:{\"color\":\"warning\",\"text\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" Changes to FX Rates will only take effect as usage is imported. Usage is only imported up to 2 months prior. If you need more control over FX rates please contact support.\")],1),_c('v-select',{attrs:{\"items\":_vm.currencyCodes,\"label\":\"Source Currency\",\"disabled\":_vm.disabled && _vm.disabled.sourceCurrencyCode},model:{value:(_vm.sourceCode),callback:function ($$v) {_vm.sourceCode=$$v},expression:\"sourceCode\"}}),_c('v-select',{attrs:{\"items\":_vm.currencyCodes,\"label\":\"Target Currency\"},model:{value:(_vm.targetCurrencyCode),callback:function ($$v) {_vm.targetCurrencyCode=$$v},expression:\"targetCurrencyCode\"}}),_c('v-text-field',{attrs:{\"type\":\"number\",\"disabled\":_vm.disabled && _vm.disabled.fxRate,\"label\":\"FX Rate\"},model:{value:(_vm.fxRate),callback:function ($$v) {_vm.fxRate=$$v},expression:\"fxRate\"}}),_c('v-subheader',{staticClass:\"px-0\"},[_vm._v(\"Effective From...\")]),_c('v-date-picker',{staticClass:\"pl-0\",attrs:{\"full-width\":\"\",\"landscape\":\"\",\"type\":\"month\",\"disabled\":_vm.disabled && (_vm.disabled.effectiveFromYear || _vm.disabled.effectiveFromMonth)},model:{value:(_vm.effectiveFrom),callback:function ($$v) {_vm.effectiveFrom=$$v},expression:\"effectiveFrom\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetFxRateCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetFxRateCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetFxRateCard.vue?vue&type=template&id=2fa504d4&\"\nimport script from \"./SetFxRateCard.vue?vue&type=script&lang=js&\"\nexport * from \"./SetFxRateCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SetFxRateCard.vue?vue&type=style&index=0&id=2fa504d4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport SetFxRateCard from '@/components/Domain.FxRates/SetFxRateCard.vue';\r\nexport default {\r\n props: ['value', 'loading', 'disabled', 'edit'],\r\n components: { SetFxRateCard },\r\n methods: {\r\n open() {\r\n this.$emit('input', true);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetFxRateDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetFxRateDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetFxRateDialog.vue?vue&type=template&id=466aec19&\"\nimport script from \"./SetFxRateDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetFxRateDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/fxrates/tenant\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createFxRateButton.errorMessage\": \"There was an error encountered while creating this fx rate. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateFxRateButton.vue?vue&type=template&id=7be8b212&\"\nimport script from \"./CreateFxRateButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateFxRateButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SetFxRateDialog from '@/components/Domain.FxRates/SetFxRateDialog.vue';\r\nimport CreateFxRateButton from '@/components/Domain.FxRates/CreateFxRateButton.vue';\r\nexport default {\r\n components: { SetFxRateDialog, CreateFxRateButton },\r\n props: {\r\n value: Boolean,\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFxRateDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateFxRateDialog.vue?vue&type=template&id=498a108c&\"\nimport script from \"./CreateFxRateDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateFxRateDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}])},[_c('v-list',[_c('update-fx-rate-dialog',{attrs:{\"edit\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Edit\")])],1)],1)]}}]),model:{value:(_vm.isUpdating),callback:function ($$v) {_vm.isUpdating=$$v},expression:\"isUpdating\"}}),_c('delete-fx-rate-dialog',{attrs:{\"account\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Delete\")])],1)],1)]}}]),model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('set-fx-rate-dialog',{attrs:{\"value\":_vm.value,\"edit\":_vm.edit,\"loading\":_vm.$wait.is('updatingFxRate'),\"disabled\":{ sourceCurrencyCode: true, targetCurrencyCode: true, effectiveFromYear: true }},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, close }){return [_c('edit-fx-rate-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingFxRate'),expression:\"'updatingFxRate'\"}],attrs:{\"value\":_vm.edit,\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"patches\":[{ op: 'replace', path: 'fxRate', value: form.fxRate }]},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":_vm.url,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchFxRateButton.errorMessage\": \"There was an error encountered while updating this fx rate. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EditFxRateButton.vue?vue&type=template&id=1920dcd1&\"\nimport script from \"./EditFxRateButton.vue?vue&type=script&lang=js&\"\nexport * from \"./EditFxRateButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EditFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SetFxRateDialog from '@/components/Domain.FxRates/SetFxRateDialog.vue';\r\nimport EditFxRateButton from '@/components/Domain.FxRates/EditFxRateButton.vue';\r\nexport default {\r\n components: { SetFxRateDialog, EditFxRateButton },\r\n props: {\r\n value: Boolean,\r\n edit: Object,\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditFxRateDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditFxRateDialog.vue?vue&type=template&id=d788975e&\"\nimport script from \"./EditFxRateDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditFxRateDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-fx-rate-card',{attrs:{\"loading\":_vm.$wait.is('deleteFxRate'),\"value\":_vm.account,\"title\":_vm.$t('deleteFxRateDialog.title'),\"subtitle\":_vm.$t('deleteFxRateDialog.subtitle'),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-fx-rate-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deleteFxRate'),expression:\"'deleteFxRate'\"}],attrs:{\"value\":_vm.account,\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.$emit('http2xx', $event))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":_vm.url,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteFxRateButton.errorMessage\": \"There was an error encountered while deleting this fx rate. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteFxRateButton.vue?vue&type=template&id=61fb7188&\"\nimport script from \"./DeleteFxRateButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteFxRateButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteFxRateButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteFxRateDialog.title\": \"Delete FX Rate\",\r\n \"deleteFxRateDialog.subtitle\": \"Warning: This process is irreversible! Your FX Rate data will be deleted permanently and you will need to re-enter your rates if you want to see your data again. Changes will only take place on the next import.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteFxRateDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteFxRateDialog.vue?vue&type=template&id=584dbb2a&\"\nimport script from \"./DeleteFxRateDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteFxRateDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteFxRateDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from \"vue\";\r\n\r\nexport enum SimpleActionTypes {\r\n addNewTag = \"AddNewTagAction\",\r\n copyValue = \"CopyValue\",\r\n removeTag = \"RemoveTag\",\r\n markup = \"Markup\"\r\n}\r\n\r\nexport default defineComponent({\r\n props: { value: String, label: String },\r\n setup() {\r\n const actionTypes = ref(Object.values(SimpleActionTypes));\r\n return { actionTypes };\r\n },\r\n});\r\n","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FxRateMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FxRateMenu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FxRateMenu.vue?vue&type=template&id=2b12ff72&\"\nimport script from \"./FxRateMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./FxRateMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport CreateFxRateDialog from '@/components/Domain.FxRates/CreateFxRateDialog.vue';\r\nimport FxRateMenu from '@/components/Domain.FxRates/FxRateMenu.vue';\r\nimport CurrencyService from '@/lib/Currencies';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport moment from '@/lib/moment';\r\n\r\nexport default defineComponent({\r\n components: { CreateFxRateDialog, FxRateMenu },\r\n setup() {\r\n const tenantFxRates = ref([]);\r\n const fixedFxRates = ref([]);\r\n const priorMonths = ref(\r\n Array(12)\r\n .fill(null)\r\n .map((_, i) => moment().add(-1 * i, 'months'))\r\n .map((d) => ({ value: d.toDate(), text: d.format(\"MMM 'YY\") }))\r\n );\r\n const targetCurrencyCode = ref(null);\r\n const currencyCodes = ref([]);\r\n const selectedMonth = ref(priorMonths.value[0].value);\r\n const isAdding = ref(false);\r\n const getTenantCurrencies = async () => {\r\n tenantFxRates.value = await ApiV2.http.get('/api/fxrates/tenant').then((r) => r.data);\r\n };\r\n const getFixedCurrencies = async () => {\r\n const year = selectedMonth.value.getFullYear();\r\n const month = selectedMonth.value.getMonth() + 1;\r\n fixedFxRates.value = await ApiV2.http\r\n .get(`/api/fxrates/system/${year}/${month}`, {\r\n params: { targetCurrencyCode: targetCurrencyCode.value },\r\n })\r\n .then((r) => r.data);\r\n };\r\n const getKnownCurrencyCodes = async () => {\r\n currencyCodes.value = await CurrencyService.getAllCurrencyCodes();\r\n };\r\n getKnownCurrencyCodes();\r\n getTenantCurrencies();\r\n getFixedCurrencies();\r\n return {\r\n tenantFxRates,\r\n fixedFxRates,\r\n priorMonths,\r\n selectedMonth,\r\n currencyCodes,\r\n targetCurrencyCode,\r\n getTenantCurrencies,\r\n getFixedCurrencies,\r\n isAdding,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FxRatesView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FxRatesView.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FxRatesView.vue?vue&type=template&id=2575bcf4&\"\nimport script from \"./FxRatesView.vue?vue&type=script&lang=ts&\"\nexport * from \"./FxRatesView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-alert',{attrs:{\"color\":\"info\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"info\")]),_vm._v(\" Mapping rules are a way of transforming records before they are ingested into your tenant. Each rule is applied to every record that enters this tenant, 1 by 1, from top to bottom. Rules are applied at import time, so you will only see your changes take effect during scheduled imports. \")],1),_c('v-expansion-panels',{model:{value:(_vm.panelsState),callback:function ($$v) {_vm.panelsState=$$v},expression:\"panelsState\"}},_vm._l((_vm.mappings),function(mapping,i){return _c('v-expansion-panel',{key:mapping.id},[_c('v-expansion-panel-header',{attrs:{\"hide-actions\":\"\"}},[_c('v-card',{staticClass:\"mb-0 pb-0\",attrs:{\"flat\":\"\"}},[_c('TagMappingHeaderToolbar',{attrs:{\"value\":mapping,\"title\":`Step ${i + 1} - ${mapping.ruleName}`,\"edit\":_vm.panelsState === i},on:{\"input\":function($event){mapping.ruleName = $event.ruleName}},scopedSlots:_vm._u([{key:\"prefix\",fn:function({}){return [_c('v-switch',{staticClass:\"mt-6\",on:{\"input\":function($event){return _vm.handleMappingActiveChange(mapping, $event)}},model:{value:(mapping.isActive),callback:function ($$v) {_vm.$set(mapping, \"isActive\", $$v)},expression:\"mapping.isActive\"}})]}},{key:\"default\",fn:function({}){return [_c('v-btn',{attrs:{\"icon\":\"\"}},[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.isSubmitting || i === 0},on:{\"click\":function($event){$event.stopPropagation();return _vm.moveMappingUpwards(i)}}},[_c('v-icon',[_vm._v(\"arrow_upward\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.isSubmitting || i === _vm.mappings.length - 1},on:{\"click\":function($event){$event.stopPropagation();return _vm.moveMappingDownwards(i)}}},[_c('v-icon',[_vm._v(\"arrow_downward\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.isSubmitting},on:{\"click\":function($event){$event.stopPropagation();return _vm.deleteMapping(i)}}},[_c('v-icon',[_vm._v(\"delete\")])],1)]}}],null,true)})],1)],1),_c('v-expansion-panel-content',{staticStyle:{\"position\":\"relative\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('TagMappingFormCardContent',{attrs:{\"init\":mapping},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, form }){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"block\":\"\",\"disabled\":!isValid || _vm.isSubmitting,\"loading\":_vm.isSubmitting},on:{\"click\":function($event){return _vm.updatedTargetMapping(form)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Submit \")],1)]}}],null,true),model:{value:(_vm.mappingValidity[mapping.id]),callback:function ($$v) {_vm.$set(_vm.mappingValidity, mapping.id, $$v)},expression:\"mappingValidity[mapping.id]\"}})],1)],1)],1)}),1),_c('v-layout',{attrs:{\"justify-center\":\"\",\"align-center\":\"\"}},[_c('v-btn',{staticClass:\"mt-3\",attrs:{\"color\":\"secondary\",\"loading\":_vm.isSubmitting,\"disabled\":_vm.isSubmitting},on:{\"click\":function($event){return _vm.startCreateNewMapping()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add new mapping here\")],1)],1),_c('form-dialog',{attrs:{\"fullscreen\":_vm.isCreatingFullscreen},model:{value:(_vm.isCreatingNewMapping),callback:function ($$v) {_vm.isCreatingNewMapping=$$v},expression:\"isCreatingNewMapping\"}},[_c('v-card',[_c('TagMappingHeaderToolbar',{attrs:{\"value\":{ ..._vm.newMapping, ruleName: _vm.newMappingName },\"edit\":\"\"},on:{\"input\":function($event){_vm.newMappingName = $event.ruleName}},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.isCreatingFullscreen = !_vm.isCreatingFullscreen}}},[_c('v-icon',[_vm._v(_vm._s(_vm.isCreatingFullscreen ? 'fullscreen_exit' : 'fullscreen'))])],1)]},proxy:true}])}),_c('TagMappingFormCardContent',{attrs:{\"init\":_vm.newMapping},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, form }){return [_c('back-button',{on:{\"click\":function($event){_vm.isCreatingNewMapping = false}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!isValid || _vm.isSubmitting,\"loading\":_vm.isSubmitting},on:{\"click\":function($event){return _vm.createPlaceholderMapping(form)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\" Submit \")],1)]}}]),model:{value:(_vm.isNewMappingValid),callback:function ($$v) {_vm.isNewMappingValid=$$v},expression:\"isNewMappingValid\"}})],1)],1),_c('v-dialog',{attrs:{\"scrim\":false,\"persistent\":\"\",\"width\":\"auto\"},model:{value:(_vm.errorOccurred),callback:function ($$v) {_vm.errorOccurred=$$v},expression:\"errorOccurred\"}},[_c('v-card',[_c('v-card-title',[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"error\")]),_vm._v(\" An error occurred\")],1),_c('v-card-text',[_vm._v(\" Unfortunately the last change you made has been lost. Please contact support for help.\")]),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\",\"to\":\"/settings\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" Back \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.isLoading,\"disabled\":_vm.isLoading},on:{\"click\":_vm.resolveError}},[_vm._v(\"Reload\")])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-card-text',{staticClass:\"mt-0 pt-0\"},[_c('v-form',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}},[_c('v-divider',{staticClass:\"mt-2\"}),_c('v-subheader',{staticClass:\"mt-3 ml-0 pl-0\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"checklist\")]),_vm._v(\" Conditions\")],1),_c('v-row',[_vm._l((_vm.conditions),function(condition,i){return _c('fragment',{key:i},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('TagMappingConditionTypeSelect',{attrs:{\"label\":i === 0 ? 'IF' : 'AND'},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.conditions.length <= 1},on:{\"click\":function($event){return _vm.deleteCondition(i)}}},[_c('v-icon',[_vm._v(\"delete\")])],1)]},proxy:true}],null,true),model:{value:(condition.type),callback:function ($$v) {_vm.$set(condition, \"type\", $$v)},expression:\"condition.type\"}})],1),(\n !condition.type.startsWith('Subscription_') &&\n !condition.type.startsWith('CloudAccount_')\n )?_c('v-col',{attrs:{\"cols\":3}},[_c('TagMappingConditionLeftInput',{attrs:{\"type\":condition.type},model:{value:(condition.condition),callback:function ($$v) {_vm.$set(condition, \"condition\", $$v)},expression:\"condition.condition\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":condition.type.startsWith('Subscription_') || condition.type.startsWith('CloudAccount_')\n ? 6\n : 3}},[_c('TagMappingConditionRightInput',{attrs:{\"type\":condition.type},model:{value:(condition.test),callback:function ($$v) {_vm.$set(condition, \"test\", $$v)},expression:\"condition.test\"}})],1)],1)}),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('a',{attrs:{\"href\":\"javascript:;\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.appendCondition()}}},[_vm._v(\"Add a new condition...\")])])],2),_c('v-divider',{staticClass:\"mt-2\"}),_c('v-subheader',{staticClass:\"mt-2 ml-0 pl-0\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"code\")]),_vm._v(\" Actions\")],1),_c('v-row',[_vm._l((_vm.actions),function(action,i){return _c('fragment',{key:i},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('TagMappingActionTypeSelect',{attrs:{\"label\":i === 0 ? 'THEN' : 'AND'},scopedSlots:_vm._u([{key:\"prepend\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":_vm.actions.length <= 1},on:{\"click\":function($event){return _vm.deleteAction(i)}}},[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":i === 0},on:{\"click\":function($event){return _vm.moveActionUpwards(i)}}},[_c('v-icon',[_vm._v(\"arrow_upward\")])],1),_c('v-btn',{attrs:{\"icon\":\"\",\"disabled\":i === _vm.actions.length - 1},on:{\"click\":function($event){return _vm.moveActionDownwards(i)}}},[_c('v-icon',[_vm._v(\"arrow_downward\")])],1)]},proxy:true}],null,true),model:{value:(action.type),callback:function ($$v) {_vm.$set(action, \"type\", $$v)},expression:\"action.type\"}})],1),_c('v-col',{attrs:{\"cols\":action.type !== 'RemoveTag' && action.type !== 'Markup' ? 3 : 6}},[_c('TagMappingActionLeftInput',{attrs:{\"type\":action.type},model:{value:(action.left),callback:function ($$v) {_vm.$set(action, \"left\", $$v)},expression:\"action.left\"}})],1),(action.type !== 'RemoveTag' && action.type !== 'Markup')?_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('TagMappingActionRightInput',{attrs:{\"type\":action.type},model:{value:(action.right),callback:function ($$v) {_vm.$set(action, \"right\", $$v)},expression:\"action.right\"}})],1):_vm._e()],1)}),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('a',{attrs:{\"href\":\"javascript:;\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.appendAction()}}},[_vm._v(\"Add a new action...\")])]),_c('v-col',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('v-checkbox',_vm._g(_vm._b({attrs:{\"label\":\"Stop applying other mapping rules if conditions met\"},model:{value:(_vm.isExitCondition),callback:function ($$v) {_vm.isExitCondition=$$v},expression:\"isExitCondition\"}},'v-checkbox',attrs,false),on))]}}])},[_c('span',[_vm._v(\"When set to true all other mappings from here on will be ignored if the configured condition passes.\")])])],1)],2)],1)],1),_c('v-card-actions',[_vm._t(\"default\",null,{\"isValid\":_vm.value && _vm.conditions.length && _vm.actions.length,\"form\":_vm.form})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-select',{attrs:{\"label\":_vm.label,\"value\":_vm.value,\"items\":_vm.actionTypes,\"hide-details\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`tagMappingActionTypeSelect.${item}.title`))+\" \")]}},{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`tagMappingActionTypeSelect.${item}.title`))+\" \")]}},{key:\"prepend\",fn:function(){return [_vm._t(\"prepend\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionTypeSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionTypeSelect.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingActionTypeSelect.vue?vue&type=template&id=21852100&\"\nimport script from \"./TagMappingActionTypeSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingActionTypeSelect.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingActionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from \"vue\";\r\n\r\nexport enum SimpleConditionTypes {\r\n sourceRowField_insensitive = \"SourceRowField_Insensitive\",\r\n sourceRowField_sensitive = \"SourceRowField_Sensitive\",\r\n\r\n sourceTagKeyValue_insensitive = \"SourceTagKeyValue_Insensitive\",\r\n sourceTagKeyValue_sensitive = \"SourceTagKeyValue_Sensitive\",\r\n\r\n subscription_insensitive = \"Subscription_Insensitive\",\r\n subscription_sensitive = \"Subscription_Sensitive\",\r\n\r\n cloudAccount_Insensitive = \"CloudAccount_Insensitive\",\r\n cloudAccount_Sensitive = \"CloudAccount_Sensitive\"\r\n}\r\n\r\nexport default defineComponent({\r\n props: { label: String, value: String },\r\n setup() {\r\n const conditionTypes = ref(Object.values(SimpleConditionTypes));\r\n return { conditionTypes };\r\n },\r\n});\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-select',{attrs:{\"label\":_vm.label,\"value\":_vm.value,\"items\":_vm.conditionTypes,\"hide-details\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`tagMappingConditionTypeSelect.${item}.title`))+\" \")]}},{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`tagMappingConditionTypeSelect.${item}.title`))+\" \")]}},{key:\"prepend\",fn:function(){return [_vm._t(\"prepend\")]},proxy:true}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionTypeSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionTypeSelect.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingConditionTypeSelect.vue?vue&type=template&id=81ffea76&\"\nimport script from \"./TagMappingConditionTypeSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingConditionTypeSelect.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingConditionTypeSelect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.isFieldType)?_c('v-text-field',{attrs:{\"hide-details\":\"\",\"value\":_vm.value,\"label\":_vm.$t(`tagMappingFormCardContent.${_vm.type}.condition`),\"rules\":[_vm.$rules.required()]},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_c('UsageFieldSelect',{attrs:{\"value\":_vm.value,\"label\":_vm.$t(`tagMappingFormCardContent.${_vm.type}.condition`),\"items\":_vm.supportedTypes,\"hide-details\":\"\",\"rules\":[_vm.$rules.required()]},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-select',{attrs:{\"value\":_vm.value,\"items\":_vm.items || _vm.fieldTypes,\"label\":_vm.label,\"hide-details\":_vm.hideDetails},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"selection\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`usageFieldSelect.${item}.title`))+\" \")]}},{key:\"item\",fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm.$t(`usageFieldSelect.${item}.title`))+\" \")]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport { RawUsageFields } from \"@/models\";\r\n\r\nconst KNOWN_FIELD_TYPES = Object.values(RawUsageFields);\r\n\r\nexport default defineComponent({\r\n props: { value: String, label: String, hideDetails: Boolean, items: Array },\r\n setup() {\r\n const fieldTypes = ref(KNOWN_FIELD_TYPES);\r\n return { fieldTypes };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFieldSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFieldSelect.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFieldSelect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFieldSelect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./UsageFieldSelect.vue?vue&type=template&id=3217edb8&\"\nimport script from \"./UsageFieldSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsageFieldSelect.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./UsageFieldSelect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, computed, ref } from \"vue\";\r\nimport UsageFieldSelect from \"../Domain.Usage/UsageFieldSelect.vue\";\r\nimport { SimpleConditionTypes } from \"./TagMappingConditionTypeSelect.vue\";\r\nimport { RawUsageFields } from \"@/models\";\r\n\r\nexport default defineComponent({\r\n props: { value: String, type: String },\r\n components: { UsageFieldSelect },\r\n setup(p) {\r\n const isFieldType = computed(() => {\r\n return (\r\n p.type === SimpleConditionTypes.sourceRowField_insensitive ||\r\n p.type === SimpleConditionTypes.sourceRowField_sensitive\r\n );\r\n });\r\n const supportedTypes = ref([\r\n RawUsageFields.serviceName,\r\n RawUsageFields.serviceId,\r\n RawUsageFields.resourceName,\r\n RawUsageFields.meterName,\r\n RawUsageFields.meterId,\r\n RawUsageFields.productName,\r\n RawUsageFields.regionName,\r\n RawUsageFields.unit,\r\n RawUsageFields.altServiceName,\r\n RawUsageFields.altServiceId,\r\n ]);\r\n return { isFieldType, supportedTypes };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionLeftInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionLeftInput.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingConditionLeftInput.vue?vue&type=template&id=76ab1f5a&\"\nimport script from \"./TagMappingConditionLeftInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingConditionLeftInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingConditionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ModalListInput',{attrs:{\"value\":_vm.value,\"label\":_vm.$t('tagMappingConditionRightInput.conditionMatches'),\"inner-label\":_vm.$t('tagMappingConditionRightInput.conditionMatch'),\"title\":_vm.$t('tagMappingConditionRightInput.conditionMatches'),\"subtitle\":_vm.$t('tagMappingConditionRightInput.matchesDescription'),\"rules\":[_vm.$rules.required()],\"inner-rules\":[_vm.$rules.required()],\"min\":1},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from \"vue\";\r\nimport ModalListInput from \"@/components/Common/ModalListInput.vue\";\r\n\r\nexport default defineComponent({\r\n props: { value: Array, type: String },\r\n components: { ModalListInput },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionRightInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionRightInput.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingConditionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingConditionRightInput.vue?vue&type=template&id=2ea45d28&\"\nimport script from \"./TagMappingConditionRightInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingConditionRightInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingConditionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{attrs:{\"hide-details\":\"\",\"label\":_vm.$t(`tagMappingActionLeftInput.${_vm.type}.left`),\"value\":_vm.value,\"rules\":[_vm.$rules.required()]},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n props: { type: String, value: String },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionLeftInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionLeftInput.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingActionLeftInput.vue?vue&type=template&id=a4164514&\"\nimport script from \"./TagMappingActionLeftInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingActionLeftInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingActionLeftInput.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-text-field',{attrs:{\"hide-details\":\"\",\"label\":_vm.$t(`tagMappingActionRightInput.${_vm.type}.right`),\"value\":_vm.value,\"rules\":[_vm.$rules.required()]},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n props: { value: String, type: String },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionRightInput.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionRightInput.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingActionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingActionRightInput.vue?vue&type=template&id=596533d0&\"\nimport script from \"./TagMappingActionRightInput.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingActionRightInput.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingActionRightInput.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, watch, ref, computed } from 'vue';\r\nimport { IConditionalActionRuleResult } from '@/models';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { storeToRefs } from 'pinia';\r\nimport TagMappingActionTypeSelect, { SimpleActionTypes } from './TagMappingActionTypeSelect.vue';\r\nimport TagMappingConditionTypeSelect, { SimpleConditionTypes } from './TagMappingConditionTypeSelect.vue';\r\n\r\nimport TagMappingConditionLeftInput from './TagMappingConditionLeftInput.vue';\r\nimport TagMappingConditionRightInput from './TagMappingConditionRightInput.vue';\r\nimport TagMappingActionLeftInput from './TagMappingActionLeftInput.vue';\r\nimport TagMappingActionRightInput from './TagMappingActionRightInput.vue';\r\n\r\ninterface ISimpleConditionViewModel {\r\n type: SimpleConditionTypes;\r\n condition: string;\r\n test: string[];\r\n}\r\n\r\ninterface ISimpleActionViewModel {\r\n type: SimpleActionTypes;\r\n left: string;\r\n right: string;\r\n}\r\n\r\nexport default defineComponent({\r\n props: { value: Boolean, init: Object },\r\n components: {\r\n TagMappingActionTypeSelect,\r\n TagMappingConditionTypeSelect,\r\n TagMappingConditionLeftInput,\r\n TagMappingConditionRightInput,\r\n TagMappingActionLeftInput,\r\n TagMappingActionRightInput,\r\n },\r\n setup(p) {\r\n const actions = ref([]);\r\n const conditions = ref([]);\r\n const isExitCondition = ref(false);\r\n const actionTypes = ref(Object.values(SimpleActionTypes));\r\n const conditionTypes = ref(Object.values(SimpleConditionTypes));\r\n const { tenantId } = storeToRefs(useTenantStore());\r\n\r\n watch(\r\n () => p.init,\r\n (v: IConditionalActionRuleResult | null) => {\r\n const newActions: (ISimpleActionViewModel & { runOrder: number })[] = [];\r\n v.applyMarkupActions?.forEach((a) => {\r\n newActions.push({\r\n type: SimpleActionTypes.markup,\r\n left: a.markup.toString(),\r\n right: '',\r\n runOrder: a.runOrder\r\n });\r\n });\r\n v.addNewTagActions?.forEach((a) => {\r\n newActions.push({\r\n type: SimpleActionTypes.addNewTag,\r\n left: a.newTagKey,\r\n right: a.newTagValue,\r\n runOrder: a.runOrder,\r\n });\r\n });\r\n v.removeTagActions?.forEach((a) => {\r\n newActions.push({\r\n type: SimpleActionTypes.removeTag,\r\n left: a.tagKey,\r\n right: '',\r\n runOrder: a.runOrder,\r\n });\r\n });\r\n v.copyValueToNewTagActions?.forEach((a) => {\r\n newActions.push({\r\n type: SimpleActionTypes.copyValue,\r\n left: a.existingTagKeyToCopy,\r\n right: a.newTagKey,\r\n runOrder: a.runOrder,\r\n });\r\n });\r\n actions.value = newActions.sort((a, b) => a.runOrder - b.runOrder);\r\n const newConditions: ISimpleConditionViewModel[] = [];\r\n v.subscriptionConditions?.forEach((c) => {\r\n newConditions.push({\r\n type: c.matchCase\r\n ? SimpleConditionTypes.subscription_sensitive\r\n : SimpleConditionTypes.subscription_insensitive,\r\n condition: '',\r\n test: c.matchSubscriptionNames,\r\n });\r\n });\r\n v.cloudAccountConditions?.forEach((c) => {\r\n newConditions.push({\r\n type: c.matchCase\r\n ? SimpleConditionTypes.cloudAccount_Sensitive\r\n : SimpleConditionTypes.cloudAccount_Insensitive,\r\n condition: '',\r\n test: c.matchCloudAccountNames\r\n })\r\n });\r\n v.sourceRowFieldConditions?.forEach((c) => {\r\n newConditions.push({\r\n type: c.matchCase\r\n ? SimpleConditionTypes.sourceRowField_sensitive\r\n : SimpleConditionTypes.sourceRowField_insensitive,\r\n condition: c.sourceRowFieldName,\r\n test: c.matchValues,\r\n });\r\n });\r\n v.sourceTagKeyValueConditions?.forEach((c) => {\r\n newConditions.push({\r\n type: c.matchCase\r\n ? SimpleConditionTypes.sourceTagKeyValue_sensitive\r\n : SimpleConditionTypes.sourceTagKeyValue_insensitive,\r\n condition: c.sourceTagKeyName,\r\n test: c.matchValues,\r\n });\r\n });\r\n conditions.value = newConditions;\r\n isExitCondition.value = v.stopProcessingMoreRules;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n const appendCondition = () => {\r\n conditions.value.push({\r\n condition: '',\r\n test: [],\r\n type: SimpleConditionTypes.sourceRowField_insensitive,\r\n });\r\n };\r\n\r\n const deleteCondition = (i: number) => {\r\n if (i > -1) {\r\n conditions.value.splice(i, 1);\r\n conditions.value = [...conditions.value];\r\n }\r\n };\r\n\r\n const appendAction = () => {\r\n actions.value.push({\r\n left: '',\r\n right: '',\r\n type: SimpleActionTypes.addNewTag,\r\n });\r\n };\r\n\r\n const deleteAction = (i: number) => {\r\n if (i > -1) {\r\n actions.value.splice(i, 1);\r\n actions.value = [...actions.value];\r\n }\r\n };\r\n\r\n const moveActionUpwards = (index: number) => {\r\n if (index > 0) {\r\n const target = actions.value[index];\r\n const sibling = actions.value[index - 1];\r\n actions.value[index] = sibling;\r\n actions.value[index - 1] = target;\r\n actions.value = [...actions.value];\r\n }\r\n };\r\n\r\n const moveActionDownwards = async (index: number) => {\r\n if (index < actions.value.length - 1) {\r\n const target = actions.value[index];\r\n const sibling = actions.value[index + 1];\r\n actions.value[index] = sibling;\r\n actions.value[index + 1] = target;\r\n actions.value = [...actions.value];\r\n }\r\n };\r\n\r\n const form = computed(() => {\r\n const data: IConditionalActionRuleResult = {\r\n id: p.init?.id,\r\n isActive: p.init?.isActive || true,\r\n ruleDescription: p.init?.ruleDescription,\r\n ruleName: p.init?.ruleName,\r\n ruleOrder: p.init?.ruleOrder,\r\n tenantId: tenantId.value,\r\n stopProcessingMoreRules: isExitCondition.value,\r\n addNewTagActions: [],\r\n copyValueToNewTagActions: [],\r\n removeTagActions: [],\r\n sourceRowFieldConditions: [],\r\n sourceTagKeyValueConditions: [],\r\n subscriptionConditions: [],\r\n applyMarkupActions: [],\r\n cloudAccountConditions: [],\r\n };\r\n actions.value.forEach((a, i) => {\r\n if (a.type === SimpleActionTypes.addNewTag) {\r\n data.addNewTagActions.push({\r\n newTagKey: a.left,\r\n newTagValue: a.right,\r\n runOrder: i,\r\n });\r\n } else if (a.type === SimpleActionTypes.copyValue) {\r\n data.copyValueToNewTagActions.push({\r\n existingTagKeyToCopy: a.left,\r\n newTagKey: a.right,\r\n runOrder: i,\r\n });\r\n } else if (a.type === SimpleActionTypes.removeTag) {\r\n data.removeTagActions.push({\r\n tagKey: a.left,\r\n runOrder: i,\r\n });\r\n } else if (a.type === SimpleActionTypes.markup) {\r\n data.applyMarkupActions.push({\r\n markup: Number(a.left),\r\n runOrder: i,\r\n });\r\n }\r\n });\r\n conditions.value.forEach((c) => {\r\n if (\r\n c.type === SimpleConditionTypes.sourceRowField_insensitive ||\r\n c.type === SimpleConditionTypes.sourceRowField_sensitive\r\n ) {\r\n data.sourceRowFieldConditions.push({\r\n matchCase: c.type === SimpleConditionTypes.sourceRowField_sensitive,\r\n matchValues: c.test,\r\n sourceRowFieldName: c.condition,\r\n });\r\n } else if (\r\n c.type === SimpleConditionTypes.sourceTagKeyValue_insensitive ||\r\n c.type === SimpleConditionTypes.sourceTagKeyValue_sensitive\r\n ) {\r\n data.sourceTagKeyValueConditions.push({\r\n matchCase: c.type === SimpleConditionTypes.sourceTagKeyValue_sensitive,\r\n matchValues: c.test,\r\n sourceTagKeyName: c.condition,\r\n });\r\n } else if (\r\n c.type === SimpleConditionTypes.subscription_insensitive ||\r\n c.type === SimpleConditionTypes.subscription_sensitive\r\n ) {\r\n data.subscriptionConditions.push({\r\n matchCase: c.type === SimpleConditionTypes.subscription_sensitive,\r\n matchSubscriptionNames: c.test,\r\n });\r\n } else if (\r\n c.type === SimpleConditionTypes.cloudAccount_Insensitive ||\r\n c.type === SimpleConditionTypes.cloudAccount_Sensitive\r\n ) {\r\n data.cloudAccountConditions.push({\r\n matchCase: c.type === SimpleConditionTypes.cloudAccount_Sensitive,\r\n matchCloudAccountNames: c.test,\r\n });\r\n }\r\n });\r\n return data;\r\n });\r\n\r\n return {\r\n actions,\r\n conditions,\r\n isExitCondition,\r\n actionTypes,\r\n conditionTypes,\r\n form,\r\n appendCondition,\r\n deleteCondition,\r\n appendAction,\r\n deleteAction,\r\n moveActionUpwards,\r\n moveActionDownwards,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingFormCardContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingFormCardContent.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingFormCardContent.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingFormCardContent.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagMappingFormCardContent.vue?vue&type=template&id=72c4574a&\"\nimport script from \"./TagMappingFormCardContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingFormCardContent.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagMappingFormCardContent.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"},scopedSlots:_vm._u([(!_vm.edit)?{key:\"extension\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.mapping.ruleDescription)+\" \")]},proxy:true}:null],null,true)},[_vm._t(\"prefix\"),(!_vm.edit)?_c('v-toolbar-title',[_vm._v(\" \"+_vm._s(_vm.title || _vm.mapping.ruleName))]):_c('v-text-field',{staticClass:\"v-toolbar__title\",attrs:{\"label\":\"Rule Name\",\"prepend-inner-icon\":\"edit\",\"value\":_vm.mapping.ruleName,\"autofocus\":\"\",\"hide-details\":\"\"},on:{\"click\":function($event){$event.stopPropagation();},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"space\",32,$event.key,[\" \",\"Spacebar\"]))return null;$event.preventDefault();},\"input\":function($event){return _vm.$emit('input', { ..._vm.mapping, ruleName: $event })}}}),_c('v-spacer'),_vm._t(\"default\",null,{\"value\":_vm.value})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, computed } from \"vue\";\r\nimport { IConditionalActionRuleResult } from \"@/models\";\r\n\r\nexport default defineComponent({\r\n props: { value: Object, edit: Boolean, title: String },\r\n setup(p) {\r\n const mapping = computed(() => p.value as IConditionalActionRuleResult | null);\r\n return { mapping };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingHeaderToolbar.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappingHeaderToolbar.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TagMappingHeaderToolbar.vue?vue&type=template&id=ef9b7d8a&\"\nimport script from \"./TagMappingHeaderToolbar.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappingHeaderToolbar.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { getAllTagMappings, createTagMapping, deleteTagMapping, updateTagMapping, reorderTagMappings } from '@/lib/Api';\r\nimport * as M from '@/models';\r\nimport TagMappingFormCardContent from '@/components/Domain.Tags/TagMappingFormCardContent.vue';\r\nimport TagMappingHeaderToolbar from '@/components/Domain.Tags/TagMappingHeaderToolbar.vue';\r\nimport { toastError, toastSuccess } from '@/components/Common/Toast.vue';\r\n\r\nexport default defineComponent({\r\n components: { TagMappingFormCardContent, TagMappingHeaderToolbar },\r\n setup() {\r\n const panelsState = ref(null);\r\n const mappings = ref([]);\r\n const mappingValidity = ref<{ [id: string]: boolean }>({});\r\n const isSubmitting = ref(false);\r\n const isLoading = ref(true);\r\n const isCreatingNewMapping = ref(false);\r\n const isCreatingFullscreen = ref(false);\r\n const newMapping = ref(null);\r\n const newMappingName = ref('New Rule');\r\n const isNewMappingValid = ref(false);\r\n const errorOccurred = ref(false);\r\n getAllTagMappings().then((r) => {\r\n try {\r\n mappings.value = r;\r\n isLoading.value = false;\r\n } catch (err) {\r\n toastError('There was an error loading your mappings');\r\n }\r\n });\r\n const resolveError = async () => {\r\n try {\r\n isLoading.value = true;\r\n mappings.value = await getAllTagMappings();\r\n errorOccurred.value = false;\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n const startCreateNewMapping = () => {\r\n isCreatingNewMapping.value = true;\r\n newMappingName.value = 'New Rule';\r\n newMapping.value = {\r\n id: -1 * Math.ceil(Math.random() * 1000),\r\n isActive: true,\r\n ruleName: newMappingName.value,\r\n ruleDescription: 'Empty',\r\n ruleOrder: mappings.value.length + 1,\r\n stopProcessingMoreRules: false,\r\n tenantId: null,\r\n sourceTagKeyValueConditions: [{ sourceTagKeyName: '', matchCase: false, matchValues: [] }],\r\n addNewTagActions: [{ newTagKey: '', newTagValue: '', runOrder: 0 }],\r\n };\r\n };\r\n const createPlaceholderMapping = async (mapping: M.IConditionalActionRuleResult) => {\r\n try {\r\n isSubmitting.value = true;\r\n const newResult = await createTagMapping({\r\n ...mapping,\r\n ruleName: newMappingName.value,\r\n });\r\n mappings.value = [...mappings.value, newResult];\r\n } catch {\r\n errorOccurred.value = true;\r\n } finally {\r\n isCreatingNewMapping.value = false;\r\n isSubmitting.value = false;\r\n }\r\n };\r\n const updatedTargetMapping = async (mapping: M.IConditionalActionRuleResult) => {\r\n try {\r\n isSubmitting.value = true;\r\n await updateTagMapping(mapping.id, mapping);\r\n toastSuccess('Mapping successfully updated');\r\n } catch {\r\n errorOccurred.value = true;\r\n } finally {\r\n isSubmitting.value = false;\r\n }\r\n };\r\n const moveMappingUpwards = async (index: number) => {\r\n if (index > 0) {\r\n try {\r\n isSubmitting.value = true;\r\n const target = mappings.value[index];\r\n const sibling = mappings.value[index - 1];\r\n mappings.value[index] = sibling;\r\n sibling.ruleOrder = index;\r\n mappings.value[index - 1] = target;\r\n target.ruleOrder = index - 1;\r\n mappings.value = [...mappings.value];\r\n await reorderTagMappings(mappings.value);\r\n } catch {\r\n errorOccurred.value = true;\r\n } finally {\r\n isSubmitting.value = false;\r\n }\r\n }\r\n };\r\n const moveMappingDownwards = async (index: number) => {\r\n if (index < mappings.value.length - 1) {\r\n try {\r\n isSubmitting.value = true;\r\n const target = mappings.value[index];\r\n const sibling = mappings.value[index + 1];\r\n mappings.value[index] = sibling;\r\n sibling.ruleOrder = index;\r\n mappings.value[index + 1] = target;\r\n target.ruleOrder = index + 1;\r\n mappings.value = [...mappings.value];\r\n await reorderTagMappings(mappings.value);\r\n } catch {\r\n errorOccurred.value = true;\r\n } finally {\r\n isSubmitting.value = false;\r\n }\r\n }\r\n };\r\n const deleteMapping = async (index: number) => {\r\n if (index > -1) {\r\n try {\r\n isSubmitting.value = true;\r\n const [deletedTag] = mappings.value.splice(index, 1);\r\n mappings.value = [...mappings.value];\r\n if (deletedTag) {\r\n await deleteTagMapping(deletedTag.id);\r\n toastSuccess('Mapping successfully deleted');\r\n }\r\n } catch {\r\n errorOccurred.value = true;\r\n } finally {\r\n isSubmitting.value = false;\r\n }\r\n }\r\n };\r\n const handleMappingActiveChange = async (mapping: M.IConditionalActionRuleResult, isActive: boolean) => {\r\n try {\r\n mapping.isActive = isActive;\r\n await updateTagMapping(mapping.id, mapping);\r\n toastSuccess(`Mapping ${mapping.ruleName} is ${isActive ? 'active' : 'inactive'}`);\r\n } catch {\r\n mapping.isActive = !isActive;\r\n toastError('Error toggling active state of mapping');\r\n }\r\n };\r\n return {\r\n panelsState,\r\n mappings,\r\n isCreatingNewMapping,\r\n createPlaceholderMapping,\r\n startCreateNewMapping,\r\n mappingValidity,\r\n newMappingName,\r\n moveMappingUpwards,\r\n moveMappingDownwards,\r\n deleteMapping,\r\n updatedTargetMapping,\r\n newMapping,\r\n isSubmitting,\r\n isNewMappingValid,\r\n errorOccurred,\r\n resolveError,\r\n handleMappingActiveChange,\r\n isLoading,\r\n isCreatingFullscreen,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagMappings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TagMappings.vue?vue&type=template&id=22f89733&\"\nimport script from \"./TagMappings.vue?vue&type=script&lang=ts&\"\nexport * from \"./TagMappings.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('content-card',{attrs:{\"title-icon\":\"mail\",\"title\":\"Mailing Lists\"},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [(_vm.loading)?_c('v-progress-circular',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"indeterminate\":\"\"}}):_vm._e(),_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.startCreateList()}}},[_c('v-icon',{attrs:{\"start\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Create Mailing List \")],1)]},proxy:true}])},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Mailing List Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Emails\")])])]),_c('tbody',[(!_vm.mailingLists.length)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"2\"}},[_vm._v(\"There are no mailing lists yet.\")])]):_vm._e(),_vm._l((_vm.mailingLists),function(ml,i){return _c('tr',{key:i},[_c('td',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(ml.name)+\" \"),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.startEditingList(ml)}}},[_c('v-icon',[_vm._v(\"edit\")])],1)],1),_c('td',{staticClass:\"text-left\"},[_c('ModalListInput',{attrs:{\"value\":ml.emails,\"inner-label\":\"Email\",\"title\":`${ml.name} Emails`,\"subtitle\":\"The emails that will be delivered to when a report leverages this mailing list.\"},on:{\"input\":function($event){return _vm.updateMailingListEmails(ml, $event)}}})],1)])})],2)]),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('update-entity-name-card',{attrs:{\"value\":_vm.targetMailingList,\"loading\":_vm.$wait.is('updatingSubscriptionName')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"secondary\",\"depressed\":\"\",\"disabled\":!isValid || loading,\"loading\":loading,\"form\":formId},on:{\"click\":function($event){$event.preventDefault();close().then(() => _vm.submitNameForm(form))}}},[_vm._t(\"default\",function(){return [_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit\")]})],2)]}}],null,true)})]}}]),model:{value:(_vm.isCreatingOrEditing),callback:function ($$v) {_vm.isCreatingOrEditing=$$v},expression:\"isCreatingOrEditing\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { getMailingLists, createMailingList, putMailingList } from '@/lib/Api';\r\nimport ModalListInput from '@/components/Common/ModalListInput.vue';\r\nimport UpdateEntityNameCard from '@/components/Common/UpdateEntityNameCard.vue';\r\n\r\ninterface IMailingListViewModel {\r\n id: number;\r\n name: string;\r\n emails: string[];\r\n}\r\n\r\nexport default defineComponent({\r\n components: { ModalListInput, UpdateEntityNameCard },\r\n setup() {\r\n const mailingLists = ref([]);\r\n const isCreatingOrEditing = ref(false);\r\n const targetMailingList = ref>({});\r\n const loading = ref(false);\r\n const getPageData = async () => {\r\n try {\r\n loading.value = true;\r\n mailingLists.value = await getMailingLists();\r\n } finally {\r\n loading.value = false;\r\n }\r\n };\r\n getPageData();\r\n const submitNameForm = async (data: { Name: string }) => {\r\n try {\r\n loading.value = true;\r\n if (targetMailingList.value.id) {\r\n await putMailingList({\r\n id: targetMailingList.value.id,\r\n name: data.Name,\r\n emails: targetMailingList.value.emails || [],\r\n });\r\n } else {\r\n await createMailingList({\r\n id: -1,\r\n name: data.Name,\r\n emails: [],\r\n });\r\n }\r\n } finally {\r\n loading.value = false;\r\n }\r\n await getPageData();\r\n };\r\n const updateMailingListEmails = async (ml: IMailingListViewModel, emails: string[]) => {\r\n try {\r\n loading.value = true;\r\n ml.emails = emails;\r\n await putMailingList(ml);\r\n } finally {\r\n loading.value = false;\r\n }\r\n await getPageData();\r\n };\r\n const startCreateList = () => {\r\n targetMailingList.value = {};\r\n isCreatingOrEditing.value = true;\r\n };\r\n const startEditingList = (body: IMailingListViewModel) => {\r\n targetMailingList.value = body;\r\n isCreatingOrEditing.value = true;\r\n };\r\n return {\r\n mailingLists,\r\n getPageData,\r\n isCreatingOrEditing,\r\n targetMailingList,\r\n submitNameForm,\r\n startCreateList,\r\n startEditingList,\r\n loading,\r\n updateMailingListEmails,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MailingLists.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MailingLists.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./MailingLists.vue?vue&type=template&id=293cd7b8&\"\nimport script from \"./MailingLists.vue?vue&type=script&lang=ts&\"\nexport * from \"./MailingLists.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('content-card',{attrs:{\"title-icon\":\"bolt\",\"title\":_vm.$t('views.webhooks.title')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('create-webhook-dialog',{on:{\"http2xx\":function($event){return _vm.getPageData()}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mr-3\",attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',{attrs:{\"start\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}}]),model:{value:(_vm.isAdding),callback:function ($$v) {_vm.isAdding=$$v},expression:\"isAdding\"}})]},proxy:true}])},[_c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.webhooks,\"item-key\":\"id\"},scopedSlots:_vm._u([{key:`item.Actions`,fn:function({ item }){return [(!item.IsMe)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"light\":\"\"}},[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditing(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1)],1)],1):_vm._e()]}},{key:`item.url`,fn:function({ item }){return [_c('div',{staticClass:\"truncate-text\"},[_vm._v(_vm._s(item.url))])]}},{key:`item.enabled`,fn:function({ item }){return [(item.enabled)?_c('v-icon',{attrs:{\"color\":\"green\"}},[_vm._v(\"check_circle\")]):_c('v-icon',{attrs:{\"color\":\"red\"}},[_vm._v(\"cancel\")])]}}],null,true)}),_c('edit-webhook-dialog',{attrs:{\"webhook\":_vm.targetWebhook},on:{\"http2xx\":function($event){return _vm.getPageData()}},model:{value:(_vm.isEditing),callback:function ($$v) {_vm.isEditing=$$v},expression:\"isEditing\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('webhook-card-dialog',{attrs:{\"value\":_vm.value,\"webhook\":_vm.webhook,\"loading\":_vm.$wait.is('creatingWebhook')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, close }){return [_c('create-webhook-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingWebhook'),expression:\"'creatingWebhook'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCreation($event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('set-webhook-card',{attrs:{\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"init\":_vm.webhook},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, isValid, clear, formId }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_vm._t(\"actions\",null,{\"form\":form,\"formId\":formId,\"isValid\":isValid,\"clear\":clear,\"close\":close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":\"Webhook\",\"subtitle\":\"Webhooks allow the sending of alerts to an external system.\",\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.form,\"formId\":formId,\"isValid\":_vm.isValid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"rules\":[ _vm.$rules.required(), _vm.nameExistsRule ],\"required\":\"\",\"label\":\"Name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-text-field',{attrs:{\"rules\":[ _vm.$rules.required() ],\"label\":\"Url\"},model:{value:(_vm.url),callback:function ($$v) {_vm.url=$$v},expression:\"url\"}}),_c('v-checkbox',{attrs:{\"label\":\"Enabled\"},model:{value:(_vm.enabled),callback:function ($$v) {_vm.enabled=$$v},expression:\"enabled\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { computed, ref, onMounted } from 'vue';\r\nimport { getAllTenantWebhookNames } from '@/lib/Api';\r\nimport { IWebhookGetPutModel } from '@/models';\r\nexport default {\r\n props: { loading: Boolean, init: Object },\r\n setup(props) {\r\n const id = ref(props.init?.id || -1);\r\n const name = ref(props.init?.name || '');\r\n const currentName = ref(name.value || '');\r\n const url = ref(props.init?.url || '');\r\n const enabled = ref(props.init?.enabled || true);\r\n const isValid = ref(false);\r\n\r\n const existingNames = ref([]);\r\n const nameExistsRule = (value: string) => {\r\n return currentName.value == name.value || !existingNames.value.includes(value)\r\n ? true\r\n : \"This name already exists.\";\r\n };\r\n\r\n onMounted(async () => {\r\n existingNames.value = await getAllTenantWebhookNames();\r\n });\r\n\r\n const form = computed(() => {\r\n return {\r\n id: id.value,\r\n name: name.value,\r\n url: url.value,\r\n enabled: enabled.value,\r\n lastcalled: '',\r\n } as IWebhookGetPutModel\r\n });\r\n\r\n return {\r\n id,\r\n name,\r\n url,\r\n enabled,\r\n isValid,\r\n form,\r\n existingNames,\r\n nameExistsRule\r\n };\r\n },\r\n watch: {\r\n 'init.id': function (newVal, oldVal) {\r\n this.id = newVal;\r\n },\r\n 'init.name': function (newVal, oldVal) {\r\n this.name = newVal;\r\n },\r\n 'init.url': function (newVal, oldVal) {\r\n this.url = newVal;\r\n },\r\n 'init.enabled': function (newVal, oldVal) {\r\n this.enabled = newVal;\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetWebhookCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetWebhookCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SetWebhookCard.vue?vue&type=template&id=5a2e5f04&\"\nimport script from \"./SetWebhookCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetWebhookCard.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SetWebhookCard.vue?vue&type=style&index=0&id=5a2e5f04&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport SetWebhookCard from '@/components/Domain.Webhooks/SetWebhookCard.vue';\r\nexport default {\r\n props: { value: Boolean, loading: Boolean, disabled: Boolean, webhook: Object },\r\n components: { SetWebhookCard: SetWebhookCard },\r\n methods: {\r\n open() {\r\n this.$emit('input', true);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhookCardDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhookCardDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WebhookCardDialog.vue?vue&type=template&id=75da8e9e&\"\nimport script from \"./WebhookCardDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebhookCardDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/webhooks\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createWebhookButton.errorMessage\": \"There was an error encountered while creating this webhook. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateWebhookButton.vue?vue&type=template&id=c27d20f4&\"\nimport script from \"./CreateWebhookButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateWebhookButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport WebhookCardDialog from '@/components/Domain.Webhooks/WebhookCardDialog.vue';\r\nimport CreateWebhookButton from '@/components/Domain.Webhooks/CreateWebhookButton.vue';\r\nimport { toastSuccess } from '@/components/Common/Toast.vue';\r\nexport default {\r\n components: { WebhookCardDialog, CreateWebhookButton },\r\n props: {\r\n value: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n webhook: {\r\n type: Object,\r\n default: null,\r\n },\r\n },\r\n methods: {\r\n handleSuccessfulCreation(form) {\r\n toastSuccess(this.$t('createWebhookDialog.events.successfulCreation', { webhookName: form.name }));\r\n this.$emit('http2xx', form);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookDialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateWebhookDialog.vue?vue&type=template&id=c1cf0150&\"\nimport script from \"./CreateWebhookDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateWebhookDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('webhook-card-dialog',{attrs:{\"value\":_vm.value,\"webhook\":_vm.webhook,\"loading\":_vm.$wait.is('editingWebhook')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"actions\",fn:function({ form, formId, isValid, loading, close }){return [_c('edit-webhook-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('editingWebhook'),expression:\"'editingWebhook'\"}],attrs:{\"value\":{ ...form, id: _vm.webhook.id },\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCreation(form))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":`/api/webhooks/${(_vm.value || {}).id}`,\"value\":_vm.value,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"editWebhookButton.errorMessage\": \"There was an error encountered while editing this webhook. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EditWebhookButton.vue?vue&type=template&id=d9daddda&\"\nimport script from \"./EditWebhookButton.vue?vue&type=script&lang=js&\"\nexport * from \"./EditWebhookButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EditWebhookButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport WebhookCardDialog from '@/components/Domain.Webhooks/WebhookCardDialog.vue';\r\nimport EditWebhookButton from '@/components/Domain.Webhooks/EditWebhookButton.vue';\r\nimport { toastSuccess } from '@/components/Common/Toast.vue';\r\nexport default {\r\n components: { WebhookCardDialog, EditWebhookButton },\r\n props: {\r\n value: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n webhook: {\r\n type: Object,\r\n default: null,\r\n },\r\n },\r\n methods: {\r\n handleSuccessfulCreation(form) {\r\n toastSuccess(this.$t('editWebhookDialog.events.successfulUpdates', { webhookName: form.name }));\r\n this.$emit('http2xx', form);\r\n this.$emit('editComplete');\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookDialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EditWebhookDialog.vue?vue&type=template&id=3f1dce81&\"\nimport script from \"./EditWebhookDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditWebhookDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EditWebhookDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { getWebhooks, getWebhook } from '@/lib/Api';\r\nimport CreateWebhookDialog from '@/components/Domain.Webhooks/CreateWebhookDialog.vue';\r\nimport EditWebhookDialog from '@/components/Domain.Webhooks/EditWebhookDialog.vue';\r\n\r\ninterface IWebhookViewModel {\r\n id: number;\r\n name: string;\r\n url: string;\r\n lastcalled: string;\r\n enabled: boolean;\r\n}\r\n\r\nexport default defineComponent({\r\n computed: {\r\n headers() {\r\n return [\r\n {\r\n text: this.$t(\"name\"),\r\n value: \"name\",\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t(\"views.webhooks.url\"),\r\n value: \"url\",\r\n sortable: false,\r\n width: '650px'\r\n },\r\n {\r\n text: this.$t(\"views.webhooks.lastcalled\"),\r\n value: \"lastCalled\",\r\n sortable: false,\r\n },\r\n {\r\n text: this.$t(\"views.webhooks.enabled\"),\r\n value: \"enabled\",\r\n sortable: false,\r\n },\r\n {\r\n text: this.$t('actions'),\r\n value: \"Actions\",\r\n sortable: false\r\n }\r\n ];\r\n },\r\n },\r\n components: { CreateWebhookDialog, EditWebhookDialog },\r\n setup() {\r\n const webhooks = ref([]);\r\n const isEditing = ref(false);\r\n const isAdding = ref(false);\r\n const targetWebhook = ref>({});\r\n const loading = ref(false);\r\n const getPageData = async () => {\r\n try {\r\n loading.value = true;\r\n webhooks.value = await getWebhooks();\r\n } finally {\r\n loading.value = false;\r\n }\r\n };\r\n getPageData();\r\n const startEditing = async (body: IWebhookViewModel) => {\r\n targetWebhook.value = await getWebhook(body.id);\r\n isEditing.value = true;\r\n };\r\n return {\r\n webhooks,\r\n getPageData,\r\n isEditing,\r\n targetWebhook,\r\n startEditing,\r\n loading,\r\n isAdding,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhooksView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhooksView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhooksView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WebhooksView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./WebhooksView.vue?vue&type=template&id=39c6caa2&\"\nimport script from \"./WebhooksView.vue?vue&type=script&lang=ts&\"\nexport * from \"./WebhooksView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./WebhooksView.vue?vue&type=style&index=0&id=39c6caa2&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./WebhooksView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('views.dimensions.title'),\"caption\":_vm.$t('views.dimensions.caption')}},[_c('EntitySearchAutocomplete',{attrs:{\"multiple\":true,\"types\":['TagKey'],\"label\":\"Search for tag key to promote...\"},scopedSlots:_vm._u([{key:\"append-outer\",fn:function(){return [_c('v-btn',{attrs:{\"disabled\":!_vm.newEntities.length},on:{\"click\":function($event){return _vm.tryPromoteTagKeys()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"publish\")]),_vm._v(\" Promote\")],1)]},proxy:true}]),model:{value:(_vm.newEntities),callback:function ($$v) {_vm.newEntities=$$v},expression:\"newEntities\"}}),_c('v-list',[(!_vm.configuredDimensions.length)?_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"info\")])],1),_c('v-list-item-title',[_vm._v(\" There are no configured dimensions yet. \")])],1):_vm._e(),_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Dimension #\")]),_c('th',[_vm._v(\"Source Tag\")]),_c('th',[_vm._v(\"Label\")]),_c('th')])]),_c('tbody',[(_vm.configuredDimensions.length === 0)?_c('tr',[_c('td',{staticStyle:{\"text-align\":\"center\"},attrs:{\"colspan\":\"4\"}},[_vm._v(\"No dimensions.\")])]):_vm._e(),_vm._l((_vm.configuredDimensions),function(d,i){return _c('tr',{key:i},[(d)?_c('td',[_vm._v(\"#\"+_vm._s(i + 1))]):_vm._e(),(d)?_c('td',[_vm._v(_vm._s(d.tagKey))]):_vm._e(),(d)?_c('td',[_vm._v(_vm._s(d.label))]):_vm._e(),(d)?_c('td',{staticClass:\"text-right\"},[(d.pinned)?_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.tryUnpin(d.tagKey)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"push_pin\")]),_vm._v(\" Unpin \")],1):_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){return _vm.tryPin(d.tagKey)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"push_pin\")]),_vm._v(\" Pin \")],1),_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"red\"},on:{\"click\":function($event){return _vm.tryDemote(d.tagKey)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"unpublished\")]),_vm._v(\" Demote \")],1)],1):_vm._e()])})],2)])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, computed } from 'vue';\r\nimport EntitySearchAutocomplete, { ISearchEntityViewModel } from '@/components/Common/EntitySearchAutocomplete.vue';\r\nimport { useTenantStore, storeToRefs } from '@/stores';\r\nimport { disableDimension, enableDimension, pinDimension, unpinDimension } from '@/lib/Api';\r\n\r\nexport default defineComponent({\r\n components: { EntitySearchAutocomplete },\r\n setup() {\r\n const newEntities = ref([]);\r\n const tenantStore = useTenantStore();\r\n const { dimensions } = storeToRefs(tenantStore);\r\n\r\n const configuredDimensions = computed(() => {\r\n if (!dimensions.value) return [];\r\n return Object.values(dimensions.value);\r\n });\r\n const tryDemote = async (dim: string) => {\r\n if (window.confirm(`Are you sure you want to demote ${dim}`)) {\r\n await disableDimension(dim);\r\n await tenantStore.loadTenant();\r\n }\r\n };\r\n const tryUnpin = async (dim: string) => {\r\n if (window.confirm(`Are you sure you want to unpin ${dim}`)) {\r\n await unpinDimension(dim);\r\n await tenantStore.loadTenant();\r\n }\r\n };\r\n const tryPromoteTagKeys = async () => {\r\n for (const key of newEntities.value) {\r\n await enableDimension(key.Id);\r\n }\r\n newEntities.value = [];\r\n await tenantStore.loadTenant();\r\n };\r\n const tryPin = async (dim: string) => {\r\n await pinDimension(dim);\r\n await tenantStore.loadTenant();\r\n };\r\n return { newEntities, dimensions, configuredDimensions, tryDemote, tryPromoteTagKeys, tryUnpin, tryPin };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DimensionsView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DimensionsView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DimensionsView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DimensionsView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DimensionsView.vue?vue&type=template&id=b12faa8c&scoped=true&\"\nimport script from \"./DimensionsView.vue?vue&type=script&lang=ts&\"\nexport * from \"./DimensionsView.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DimensionsView.vue?vue&type=style&index=0&id=b12faa8c&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b12faa8c\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DimensionsView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-container',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('content-card',{attrs:{\"title\":\"Audit Log\"}},[_c('v-select',{attrs:{\"label\":\"Show audit records for user:\",\"items\":_vm.users,\"item-text\":\"fullName\",\"item-value\":\"email\",\"variant\":\"outlined\"},on:{\"change\":function($event){return _vm.getAuditing()}},model:{value:(_vm.filterUserEmail),callback:function ($$v) {_vm.filterUserEmail=$$v},expression:\"filterUserEmail\"}}),_c('v-data-table',{staticClass:\"elevation-1\",attrs:{\"headers\":_vm.headers,\"items\":_vm.auditLog,\"item-key\":\"id\",\"loading\":_vm.loading,\"loading-text\":\"Loading...\",\"show-expand\":\"\",\"single-expand\":_vm.singleExpand},scopedSlots:_vm._u([{key:`item.startDate`,fn:function({ item }){return [_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('span',_vm._g({},on),[_vm._v(_vm._s(new Date(item.startDate).toLocaleString()))])]}}],null,true)},[_c('span',[_vm._v(_vm._s(item.startDate))])])]}},{key:\"expanded-item\",fn:function({ headers, item }){return [_c('td',{attrs:{\"colspan\":headers.length}},[_vm._v(\" Record id: \"+_vm._s(item.id)+\" \")])]}}],null,true)})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from 'vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { User } from '@auth0/auth0-spa-js';\r\n\r\nexport default defineComponent({\r\n title() {\r\n return 'Audit';\r\n },\r\n components: {\r\n },\r\n data() {\r\n return {\r\n users: [] as User[],\r\n headers: [\r\n {\r\n text: this.$t(\"startdate\"),\r\n value: 'startDate',\r\n sortable: true,\r\n },\r\n {\r\n text: this.$t(\"eventtype\"),\r\n value: 'eventType'\r\n },\r\n {\r\n text: this.$t(\"environment\"),\r\n value: 'environment'\r\n },\r\n {\r\n text: this.$t(\"duration\"),\r\n value: 'duration',\r\n sortable: false\r\n },\r\n {\r\n text: this.$t(\"status\"),\r\n value: 'responseStatus'\r\n },\r\n {\r\n text: '',\r\n value: 'data-table-expand'\r\n }\r\n ],\r\n auditLog: [],\r\n filterUserEmail: null,\r\n loading: false,\r\n singleExpand: false\r\n };\r\n },\r\n methods: {\r\n getAuditing: waitFor('getAuditing', async function () {\r\n console.log(this.filterUserEmail);\r\n this.loading = true;\r\n\r\n try {\r\n const logs = await ApiV2.http.get(`/api/auditing?email=${this.filterUserEmail}`).then((r) => r.data);\r\n this.auditLog = logs;\r\n } finally {\r\n this.loading = false;\r\n }\r\n }),\r\n getUsers: waitFor('getUsers', async function () {\r\n const users = await ApiV2.http.get(`api/metadata/tenants/current/allusers`).then((r) => r.data);\r\n\r\n this.users = users;\r\n }),\r\n },\r\n created() {\r\n this.getUsers();\r\n },\r\n});\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuditView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuditView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuditView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuditView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AuditView.vue?vue&type=template&id=9cd3fa5c&\"\nimport script from \"./AuditView.vue?vue&type=script&lang=ts&\"\nexport * from \"./AuditView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AuditView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"value\":true,\"no-click-animation\":\"\",\"persistent\":\"\",\"max-width\":\"400\",\"scrollable\":\"\",\"hide-overlay\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly}},[_c('choose-tenant-card',{attrs:{\"loading\":_vm.$wait.is(['loadingProfiles', 'choosingProfile']),\"items\":_vm.accountStore.tenants,\"hide-create\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, loading }){return [_c('v-btn',{attrs:{\"to\":\"/logout\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"login\")]),_vm._v(\" \"+_vm._s(_vm.$t('views.chooseProfile.logout'))+\" \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"form\":formId,\"disabled\":!isValid || loading,\"loading\":loading,\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleChooseEvent(form.tenantId)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(_vm._s(_vm.$t('views.chooseProfile.login')))],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"loading\":_vm.loading,\"title\":_vm.title || _vm.$t('chooseTenantCard.title.default'),\"subtitle\":_vm.subtitle || _vm.items.length > 0 ? _vm.$t('chooseTenantCard.subtitle.default') : _vm.$t('chooseTenantCard.subtitle.none'),\"lazy-validation\":false},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"isValid\":!!_vm.tenantId && _vm.valid,\"clear\":reset,\"form\":{ tenantId: _vm.tenantId },\"formId\":formId,\"loading\":_vm.loading})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-skeleton-loader',{attrs:{\"loading\":_vm.loading,\"type\":\"list-item@4\"}},[(_vm.items.length > 0)?_c('tenant-radio-group',{attrs:{\"tenants\":_vm.items,\"hide-create\":_vm.hideCreate,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.tenantId),callback:function ($$v) {_vm.tenantId=$$v},expression:\"tenantId\"}}):_c('empty-state',{attrs:{\"icon\":\"warning\",\"message\":_vm.$t('chooseTenantCard.contact')}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"href\":`mailto:${_vm.mailToAddress}`,\"text\":\"\"}},[_vm._v(_vm._s(_vm.mailToAddress))])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-list',[_c('v-radio-group',{staticClass:\"pa-0 ma-0\",attrs:{\"value\":_vm.value,\"hide-details\":\"\",\"rules\":_vm.rules},on:{\"input\":function($event){return _vm.$emit('input', $event)}}},[_vm._t(\"prepend\"),(!_vm.hideCreate)?_c('v-list-item',{on:{\"click\":function($event){return _vm.$refs.createDialog.open()}}},[_c('v-list-item-action',[_c('v-icon',[_vm._v(\"add\")])],1),_c('v-list-item-content',[_vm._v(_vm._s(_vm.$t('tenantRadioGroup.create-button')))])],1):_vm._e(),_c('v-divider'),_vm._l((_vm.tenants),function(tenant,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){return _vm.$emit('input', tenant.tenantId)}}},[[_c('v-list-item-action',[_c('v-radio',{attrs:{\"value\":tenant.tenantId,\"color\":\"primary\"}})],1),_c('v-list-item-content',[_vm._v(_vm._s(tenant.tenantName))])]],2)}),_vm._t(\"append\")],2),_c('create-tenant-dialog',{ref:\"createDialog\",on:{\"created\":_vm.handleCreation}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function(props){return [_vm._t(\"activator\",null,null,props)]}}],null,true),model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('set-tenant-card',{attrs:{\"loading\":_vm.$wait.is('creatingTenant'),\"title\":_vm.$t('views.createTenantDialog.title'),\"subtitle\":_vm.$t('views.createTenantDialog.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear }){return [_c('back-button',{on:{\"click\":function($event){_vm.show = false}}}),_c('v-spacer'),_c('post-tenant-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingTenant'),expression:\"'creatingTenant'\"}],attrs:{\"value\":{ ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":_vm.onSubmit}})]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/metadata/tenant/current/children\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postTenantButton.errorMessage\": \"There was an error encountered while creating this tenant. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostTenantButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostTenantButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostTenantButton.vue?vue&type=template&id=48b70ecb&\"\nimport script from \"./PostTenantButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PostTenantButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.createTenantDialog.title\": \"Create Tenant\",\r\n \"views.createTenantDialog.subtitle\": \"The tenant you create here will be charged under your current billing agreement unless other arrangements are made specifically.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateTenantDialog.vue?vue&type=template&id=42f4df05&\"\nimport script from \"./CreateTenantDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateTenantDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateTenantDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"tenantRadioGroup.create-button\": \"Create Tenant\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantRadioGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantRadioGroup.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantRadioGroup.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TenantRadioGroup.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TenantRadioGroup.vue?vue&type=template&id=5d9571a0&scoped=true&\"\nimport script from \"./TenantRadioGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./TenantRadioGroup.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TenantRadioGroup.vue?vue&type=style&index=0&id=5d9571a0&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d9571a0\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TenantRadioGroup.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"chooseTenantCard.title.default\": \"Choose Tenant\", \r\n \"chooseTenantCard.subtitle.default\": \"Please choose a tenant\",\r\n \"chooseTenantCard.subtitle.none\": \"No tenants available\",\r\n \"chooseTenantCard.contact\": \"Please contact support\"\r\n } \r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenantCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenantCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ChooseTenantCard.vue?vue&type=template&id=18f512bf&\"\nimport script from \"./ChooseTenantCard.vue?vue&type=script&lang=js&\"\nexport * from \"./ChooseTenantCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ChooseTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.chooseProfile.title\": \"Choose Profile\",\r\n \"views.chooseProfile.logout\": \"Logout\",\r\n \"views.chooseProfile.login\": \"Choose\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Choose.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Choose.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Choose.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Choose.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Choose.vue?vue&type=template&id=4f9d9b46&\"\nimport script from \"./Choose.vue?vue&type=script&lang=js&\"\nexport * from \"./Choose.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Choose.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"value\":true,\"no-click-animation\":\"\",\"persistent\":\"\",\"max-width\":\"800\",\"scrollable\":\"\",\"hide-overlay\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly,\"loading\":_vm.$wait.is('creatingTenant')}},[_c('create-tenant-card',{scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, clear }){return [_c('v-btn',{attrs:{\"to\":\"/logout\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"login\")]),_vm._v(\" \"+_vm._s(_vm.$t('views.selfService.createTenant.logout'))+\" \")],1),_c('v-spacer'),_c('post-create-tenant-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingTenant'),expression:\"'creatingTenant'\"}],attrs:{\"value\":{ ...form },\"clear\":clear,\"valid\":isValid,\"form\":formId},on:{\"http2xx\":_vm.tenantCreated}})]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.$t('selfservice.createTenant.title')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":{\n CustomerName: _vm.name,\n BillingEmailAddress: _vm.billingEmail,\n DisplayCurrencyCode: _vm.displayCurrencyCode,\n },\"formId\":formId,\"isValid\":_vm.valid,\"clear\":reset})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required()],\"required\":\"\",\"autofocus\":\"\",\"label\":_vm.$t('selfservice.createTenant.name')},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-text-field',{attrs:{\"rules\":[_vm.$rules.required(), _vm.$rules.email()],\"required\":\"\",\"label\":_vm.$t('selfservice.createTenant.billingEmail')},model:{value:(_vm.billingEmail),callback:function ($$v) {_vm.billingEmail=$$v},expression:\"billingEmail\"}}),_c('currency-combo-box',{attrs:{\"rules\":[_vm.$rules.required()]},model:{value:(_vm.displayCurrencyCode),callback:function ($$v) {_vm.displayCurrencyCode=$$v},expression:\"displayCurrencyCode\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n {\r\n \"en\": {\r\n \"selfservice.createTenant.title\": \"Create a new Customer Account\",\r\n \"selfservice.createTenant.name\": \"Customer Name\",\r\n \"selfservice.createTenant.billingEmail\": \"Billing Email Address\"\r\n }\r\n }\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateTenantCard.vue?vue&type=template&id=0fb7474c&\"\nimport script from \"./CreateTenantCard.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateTenantCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateTenantCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/billing/selfservice/tenant\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postCreateTenantButton.errorMessage\": \"There was an error encountered while creating this tenant. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCreateTenantButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCreateTenantButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCreateTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostCreateTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostCreateTenantButton.vue?vue&type=template&id=984e9294&\"\nimport script from \"./PostCreateTenantButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PostCreateTenantButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostCreateTenantButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"views.selfService.createTenant.logout\": \"Logout\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenant.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenant.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenant.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateTenant.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateTenant.vue?vue&type=template&id=78f5ccea&\"\nimport script from \"./CreateTenant.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateTenant.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateTenant.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"value\":true,\"no-click-animation\":\"\",\"persistent\":\"\",\"max-width\":\"800\",\"scrollable\":\"\",\"hide-overlay\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly}},[_c('plan-card')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectPlan.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectPlan.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SelectPlan.vue?vue&type=template&id=809e0342&\"\nimport script from \"./SelectPlan.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectPlan.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('resourceExplorer.title'),\"icon\":\"insights\",\"extended\":\"\",\"needs-filters\":\"\"}},[_c('v-tabs',{attrs:{\"background-color\":\"transparent\",\"align-with-title\":\"\"},model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},_vm._l((_vm.tabs),function(t){return _c('v-tab',{key:t.key,attrs:{\"to\":t.to,\"disabled\":_vm.$wait.is('gettingUsageRecords')}},[(t.icon)?_c('v-icon',{attrs:{\"small\":\"\",\"left\":\"\"}},[_vm._v(_vm._s(t.icon))]):_vm._e(),_vm._v(\" \"+_vm._s(t.title)+\" \")],1)}),1)],1),_c('v-container',[_c('form-dialog',{attrs:{\"width\":300},scopedSlots:_vm._u([{key:\"activator\",fn:function(activatorBindings){return [_vm._t(\"activator\",null,null,activatorBindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('resourceExplorer.rangeSelectedDialog.dialogTitle'),\"subtitle\":_vm.trendDialogSubtitle}},[_c('v-list',[_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Total for period\")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.currentRangeEvent?.rangeTotal,_vm.tenantStore.currencyCode)))])],1)],1),_c('v-list-item',[_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Average for period\")]),_c('v-list-item-subtitle',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.avgTotal,_vm.tenantStore.currencyCode)))])],1)],1),_c('v-list-item',[_c('v-list-item-content',[_c('v-btn',{attrs:{\"block\":\"\",\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.processRangeEvent()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"analytics\")]),_vm._v(\" Go to Trends \")],1),_c('v-spacer')],1)],1)],1),[_c('back-button',{on:{\"click\":function($event){return close()}}})]],2)]}}],null,true),model:{value:(_vm.rangeSelectedDialog),callback:function ($$v) {_vm.rangeSelectedDialog=$$v},expression:\"rangeSelectedDialog\"}}),_c('form-dialog',{attrs:{\"width\":500},scopedSlots:_vm._u([{key:\"activator\",fn:function(activatorBindings){return [_vm._t(\"activator\",null,null,activatorBindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('resourceExplorer.annotationDialog.dialogTitle'),\"subtitle\":_vm.annotationDialogSubtitle}},[_c('annotations-timeline',{attrs:{\"annotations\":_vm.selectedAnnotations,\"allowEdit\":false,\"showNavigate\":true,\"showProduct\":true}}),[_c('back-button',{on:{\"click\":function($event){return close()}}})]],2)]}}],null,true),model:{value:(_vm.annotationDialog),callback:function ($$v) {_vm.annotationDialog=$$v},expression:\"annotationDialog\"}}),_c('content-card',{attrs:{\"title\":_vm.chartTitle,\"title-icon\":\"savings\",\"loading\":_vm.$wait.is('gettingUsageRecords')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{attrs:{\"icon\":\"\",\"aria-label\":\"Star explorer tab\",\"title\":\"Star explorer tab\",\"role\":\"button\"},on:{\"click\":function($event){_vm.starred = !_vm.starred}}},[_c('v-icon',{attrs:{\"color\":_vm.starred ? 'yellow' : undefined}},[_vm._v(\"star\")])],1)]},proxy:true}])},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{attrs:{\"loading\":_vm.$wait.is('gettingUsageRecords'),\"date-supported-keys\":['30d', '60d', '6m', 'custom'],\"hide-segregation\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.usageOptions),callback:function ($$v) {_vm.usageOptions=$$v},expression:\"usageOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"annotations\":_vm.annotations,\"granularity\":_vm.usageOptions.granularity,\"allow-range-selection\":true},on:{\"click\":_vm.handleDatasetClicked,\"onRangeSelection\":_vm.onRangeSelection}})],1),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{attrs:{\"items\":_vm.groupingItems,\"currency-code\":_vm.tenantStore.currencyCode,\"segregate-by\":_vm.usageOptions.segregateBy,\"name-header-title\":_vm.currentHeaderName,\"tag-key\":_vm.tagKey,\"unitOfDisplay\":_vm.unitOfDisplay}})],1),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-container',{staticClass:\"d-flex flex-row-reverse\",attrs:{\"fluid\":\"\"}},[_c('v-radio-group',{attrs:{\"row\":\"\"},on:{\"change\":function($event){return _vm.unitChanged()}},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}},[_c('v-radio',{attrs:{\"label\":\"Cost\",\"value\":_vm.displayOptions.cost}}),_c('v-radio',{attrs:{\"label\":\"Consumption\",\"value\":_vm.displayOptions.consumption}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \r\nimport { defineComponent } from 'vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n props: {\r\n value: String,\r\n },\r\n data() {\r\n return {\r\n selectedValue: this.value ?? UnitOfDisplay.cost,\r\n displayOptions: UnitOfDisplay\r\n };\r\n },\r\n methods: {\r\n unitChanged() {\r\n this.$emit('input', this.selectedValue); \r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageUnitToggle.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageUnitToggle.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpendUsageUnitToggle.vue?vue&type=template&id=04e32bd2&\"\nimport script from \"./SpendUsageUnitToggle.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsageUnitToggle.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-skeleton-loader',{attrs:{\"loading\":_vm.loading,\"type\":\"list-item@6\"}},[(_vm.annotations.length > 0)?_c('v-timeline',{attrs:{\"align-top\":\"\",\"dense\":\"\",\"clipped\":\"\"}},_vm._l((_vm.allAnnotations),function(annotation){return _c('v-timeline-item',{key:annotation.id},[_c('v-card',{attrs:{\"flat\":\"\",\"outlined\":\"\"}},[_c('v-card-text',[_c('p',[_vm._v(_vm._s(annotation.text))]),(annotation.serviceName && _vm.showProduct)?_c('p',{staticClass:\"caption text-xs-center grey--text\"},[_vm._v(_vm._s(annotation.serviceName))]):_vm._e(),_c('div',{staticClass:\"d-flex justify-space-between\"},[_c('div',{staticStyle:{\"align-content\":\"end\"}},[(_vm.showNavigate)?_c('router-link',{attrs:{\"to\":`/explore/services/${annotation.serviceId}/annotations`}},[_vm._v(\" \"+_vm._s(_vm.$t('view'))+\" ► \")]):_vm._e()],1),_c('div',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(annotation.annotationCreatedBy)+\" \"),_c('v-spacer'),_vm._v(\" \"+_vm._s(annotation.date)+\" \"),(_vm.allowEdit)?_c('v-menu',{attrs:{\"offset-y\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',{attrs:{\"light\":\"\"}},[(annotation.isEditable)?_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditAnnotation(annotation)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('edit')))])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteAnnotation(annotation)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('delete')))])],1)],1)],1)],1):_vm._e()],1)])])],1)],1)}),1):_c('empty-state',{attrs:{\"icon\":\"history\",\"message\":_vm.$t('annotationsTimeline.noAnnotations')}},[_vm._t(\"no-data\")],2),_c('delete-annotation-dialog',{attrs:{\"annotation\":_vm.annotationToDelete},on:{\"http2xx\":_vm.onAnnotationChangeSuccess},model:{value:(_vm.dialogs.deleteAnnotation),callback:function ($$v) {_vm.$set(_vm.dialogs, \"deleteAnnotation\", $$v)},expression:\"dialogs.deleteAnnotation\"}}),_c('edit-annotation-dialog',{attrs:{\"annotation\":_vm.annotationToEdit},on:{\"http2xx\":_vm.onAnnotationChangeSuccess},model:{value:(_vm.dialogs.editAnnotation),callback:function ($$v) {_vm.$set(_vm.dialogs, \"editAnnotation\", $$v)},expression:\"dialogs.editAnnotation\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-annotation-card',{attrs:{\"loading\":_vm.$wait.is('deleteAnnotation'),\"value\":_vm.annotation,\"title\":_vm.$t('deleteAnnotationDialog.deleteAnnotationTitle'),\"subtitle\":_vm.$t('deleteAnnotationDialog.deleteAnnotationSubtitle'),\"simple\":true},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-annotation-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deleteAnnotation'),expression:\"'deleteAnnotation'\"}],attrs:{\"annotationId\":_vm.annotation.id,\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.handleDeleteSuccess($event))}}})]}}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":_vm.annotationId ? `/api/annotations/${_vm.annotationId}` : null,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteAnnotationButton.errorMessage\": \"There was an error encountered while deleting this annotation. If anything does not look right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteAnnotationButton.vue?vue&type=template&id=6598a4c5&\"\nimport script from \"./DeleteAnnotationButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteAnnotationButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteAnnotationDialog.deleteAnnotationTitle\": \"Delete Annotation\",\r\n \"deleteAnnotationDialog.deleteAnnotationSubtitle\": \"This action is not reversable, you will need to add a new annotation.\",\r\n \"deleteAnnotationDialog.successfulDelete\": \"Annotation successfully deleted.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteAnnotationDialog.vue?vue&type=template&id=1f8f6fa4&\"\nimport script from \"./DeleteAnnotationDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteAnnotationDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('edit-annotation-card',{attrs:{\"loading\":_vm.$wait.is('editAnnotation'),\"value\":_vm.annotation,\"title\":_vm.$t('editAnnotationDialog.editAnnotationTitle'),\"subtitle\":_vm.$t('editAnnotationDialog.editAnnotationSubtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading, form, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('edit-annotation-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('editAnnotation'),expression:\"'editAnnotation'\"}],attrs:{\"value\":{ ...form },\"clear\":clear,\"annotationId\":_vm.annotation.id,\"valid\":isValid,\"loading\":loading,\"form\":formId},on:{\"http2xx\":function($event){close().then(() => _vm.handleEditSuccess($event))}}})]}}],null,true)})]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId }){return [_vm._t(\"actions\",null,{\"isValid\":_vm.valid,\"clear\":_vm.resetForm,\"formId\":formId,\"loading\":_vm.loading,\"form\":{ Text: _vm.annotation, AnnotationDate: _vm.annotationDate }})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('annotationCard.annotationDate'),\"value\":_vm.annotationDate},model:{value:(_vm.annotationDate),callback:function ($$v) {_vm.annotationDate=$$v},expression:\"annotationDate\"}}),_c('div',{staticClass:\"pt-2\"},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"rules\":[ _vm.$rules.required(), _vm.$rules.maxLength(500) ],\"label\":_vm.$t('annotationCard.annotation'),\"value\":_vm.annotation,\"persistent-hint\":\"\",\"rows\":\"8\",\"required\":\"\"},model:{value:(_vm.annotation),callback:function ($$v) {_vm.annotation=$$v},expression:\"annotation\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n{\r\n \"en\": {\r\n \"annotationCard.annotation\": \"Annotation\", \r\n \"annotationCard.annotationDate\": \"Annotation Date\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AnnotationCard.vue?vue&type=template&id=367ded48&\"\nimport script from \"./AnnotationCard.vue?vue&type=script&lang=js&\"\nexport * from \"./AnnotationCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AnnotationCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"href\":_vm.annotationId ? `/api/annotations/${_vm.annotationId}` : null,\"value\":_vm.getPatchChanges(),\"isJsonPatch\":\"\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(_vm._s(_vm.$t('patchAnnotationsButton.text'))+\" \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchAnnotationsButton.text\": \"Edit Annotation\",\r\n \"patchAnnotationsButton.errorMessage\": \"There was an error encountered while updating this annotation. If anything does not look right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EditAnnotationButton.vue?vue&type=template&id=d1d4a0ae&\"\nimport script from \"./EditAnnotationButton.vue?vue&type=script&lang=js&\"\nexport * from \"./EditAnnotationButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EditAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"editAnnotationDialog.editAnnotationTitle\": \"Edit Annotation\",\r\n \"editAnnotationDialog.editAnnotationSubtitle\": \"Edit annotation for this service.\",\r\n \"editAnnotationDialog.successfulEdit\": \"Annotation successfully updated.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EditAnnotationDialog.vue?vue&type=template&id=ec4827ee&\"\nimport script from \"./EditAnnotationDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditAnnotationDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EditAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"annotationsTimeline.noAnnotations\": \"There are no annotations here yet.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationsTimeline.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationsTimeline.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationsTimeline.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnnotationsTimeline.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AnnotationsTimeline.vue?vue&type=template&id=76a5f414&\"\nimport script from \"./AnnotationsTimeline.vue?vue&type=script&lang=js&\"\nexport * from \"./AnnotationsTimeline.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AnnotationsTimeline.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"resourceExplorer.title\": \"Cost Explorer\",\r\n \"resourceExplorer.tabs.productcategories\": \"Product Categories\",\r\n \"resourceExplorer.tabs.resources\": \"Services\",\r\n \"resourceExplorer.tabs.subscriptions\": \"Subscriptions\",\r\n \"resourceExplorer.tabs.cloudproviders\": \"Cloud Providers\",\r\n \"resourceExplorer.tabs.cloudaccounts\": \"Cloud Connections\",\r\n \"resourceExplorer.tabs.products\": \"Products\",\r\n \"resourceExplorer.headers.productCategories\": \"Product Category\",\r\n \"resourceExplorer.headers.subscriptions\": \"Subscription Name\",\r\n \"resourceExplorer.headers.cloudAccounts\": \"Cloud Connection Name\",\r\n \"resourceExplorer.headers.products\": \"Product Name\",\r\n \"resourceExplorer.headers.services\": \"Service Name\",\r\n \"resourceExplorer.headers.tags\": \"Tag Value\",\r\n \"resourceExplorer.toast.navigationError\": \"Detailed information not yet available for this dimension\",\r\n \"resourceExplorer.rangeSelectedDialog.dialogTitle\": \"Range Information\",\r\n \"resourceExplorer.annotationDialog.dialogTitle\": \"Annotations\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=4fc8f128&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showServiceDialog),callback:function ($$v) {_vm.showServiceDialog=$$v},expression:\"showServiceDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedService,\"loading\":_vm.$wait.is('loadingServices')},on:{\"input\":function($event){return Object.assign(_vm.selectedService, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"servicesDialog.serviceNotFound\": \"There is no remaining reference to this service within the last 13 months of usage.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=8e9df7b4&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"md\":\"8\",\"cols\":\"12\"}},[_c('v-card-title',{staticClass:\"mb-4 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Service\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.serviceName : '...')+\" \"),(_vm.tenantStore.hasPermission('CanContribute'))?_c('service-manage-menu',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_vm._e()],1),(_vm.value)?_c('v-card-subtitle',{staticClass:\"my-0 pt-0 pb-2\"},[_c('service-metadata-chips',{attrs:{\"value\":_vm.value}})],1):_vm._e()],1),_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('cost-summary-widget',{attrs:{\"actual-total\":_vm.forecast.actualTotal,\"projected-total\":_vm.forecast.projectedTotal,\"past-total\":_vm.forecast.pastTotal,\"currency-code\":_vm.tenantStore.currencyCode,\"spend-limit\":_vm.value ? _vm.value.monthlySpendLimit : 0}})],1)],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-badge',{attrs:{\"color\":\"secondary\",\"dot\":\"\",\"value\":tab.key === 'annotations' && _vm.value && _vm.value.annotationCount > 0}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"trending_up\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.projectedTotal,_vm.currencyCode))+\" \")]),_c('v-list-item-subtitle',{staticClass:\"grey--text\"},[_vm._v(\" projected \"+_vm._s(_vm._f(\"dateFormat\")(new Date(),'MMMM'))+\" \")])],1)],1),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"history\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.pastTotal,_vm.currencyCode))+\" \")]),_c('v-list-item-subtitle',{staticClass:\"grey--text\"},[_vm._v(\" vs. \"+_vm._s(_vm._f(\"dateFormat\")(_vm.oneMonthAgo,'MMMM'))+\" total \")])],1)],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-list',{attrs:{\"dense\":\"\"}},[_c('v-list-item',[_c('v-list-item-icon',[(_vm.percentageOf >= 100)?_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"error\")]):(_vm.percentageOf > 90)?_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]):_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[(!_vm.spendLimit)?_c('fragment',[_c('v-list-item-title',[_c('span',{attrs:{\"data-testid\":\"spendLimit\"}},[_vm._v(\"N/A\")])]),_c('v-list-item-subtitle',{staticClass:\"grey--text\"},[_vm._v(\" spend limit \")])],1):_c('fragment',[_c('v-list-item-title',[_c('span',{attrs:{\"data-testid\":\"spendLimit\"}},[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.spendLimit,_vm.currencyCode)))])]),_c('v-list-item-subtitle',{staticClass:\"grey--text\"},[_vm._v(\" spend limit \")])],1)],1)],1),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"update\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.actualTotal,_vm.currencyCode))+\" \")]),_c('v-list-item-subtitle',{staticClass:\"grey--text\"},[_vm._v(\" \"+_vm._s(_vm._f(\"dateFormat\")(new Date(),'MMMM'))+\" so far \")])],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CostSummaryWidget.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CostSummaryWidget.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CostSummaryWidget.vue?vue&type=template&id=62e43f2a&\"\nimport script from \"./CostSummaryWidget.vue?vue&type=script&lang=js&\"\nexport * from \"./CostSummaryWidget.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Subscription\"}}),_vm._v(\" Subscription: \"+_vm._s(_vm.value.subscriptionName)+\" \")],1),_vm._l((_vm.value.regionNames || []),function(regionName,i){return _c('v-chip',{key:i,staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"place\")]),_vm._v(\" \"+_vm._s(regionName)+\" \")],1)}),(_vm.value.remoteId && _vm.value.remoteId.startsWith('/subscriptions'))?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"color\":\"blue\",\"outlined\":\"\",\"label\":\"\",\"href\":`https://portal.azure.com/#resource${_vm.value.remoteId}`,\"target\":\"_top\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"insert_link\")]),_vm._v(\" \"+_vm._s(_vm.$t('serviceMetadataChips.viewInAzure'))+\" \")],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"serviceMetadataChips.viewInAzure\": \"View in Azure\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceMetadataChips.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceMetadataChips.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ServiceMetadataChips.vue?vue&type=template&id=014d2faf&\"\nimport script from \"./ServiceMetadataChips.vue?vue&type=script&lang=js&\"\nexport * from \"./ServiceMetadataChips.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ServiceMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",function(){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"x-small\":\"\",\"depressed\":\"\"}},bindings.on),[_vm._v(\" manage\"),_c('v-icon',{attrs:{\"right\":\"\",\"x-small\":\"\"}},[_vm._v(\"menu_open\")])],1)]},null,bindings)]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.isEditingSpendLimit = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('serviceManageMenu.editSpendLimit'))+\" \")])],1)],1)],1)],1),_c('edit-service-spend-limit-dialog',{attrs:{\"service\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.isEditingSpendLimit),callback:function ($$v) {_vm.isEditingSpendLimit=$$v},expression:\"isEditingSpendLimit\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"600\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ open }){return [_c('update-entity-spend-limit-card',{attrs:{\"value\":_vm.service,\"loading\":_vm.$wait.is('updateServiceSpendLimit')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return open()}}}),_c('v-spacer'),_c('patch-service-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updateServiceSpendLimit'),expression:\"'updateServiceSpendLimit'\"}],attrs:{\"value\":_vm.service,\"patches\":[{ op: 'replace', path: 'monthlySpendLimit', value: form.monthlySpendLimit }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":_vm.handleSuccessfulSpendLimit}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-card',{attrs:{\"title\":_vm.title,\"subtitle\":_vm.subtitle,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"default\",null,{\"isValid\":_vm.valid,\"clear\":reset,\"formId\":formId,\"loading\":_vm.loading,\"form\":{ monthlySpendLimit: Number(_vm.monthlySpendLimit) }})]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"type\":\"number\",\"persistent-hint\":\"\",\"label\":_vm.$t('updateEntitySpendLimitCard.monthlySpendLimit.title'),\"required\":\"\"},model:{value:(_vm.monthlySpendLimit),callback:function ($$v) {_vm.monthlySpendLimit=$$v},expression:\"monthlySpendLimit\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"updateEntitySpendLimitCard.monthlySpendLimit.title\": \"Monthly Spend Limit\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntitySpendLimitCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntitySpendLimitCard.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntitySpendLimitCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UpdateEntitySpendLimitCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./UpdateEntitySpendLimitCard.vue?vue&type=template&id=4cad3f73&\"\nimport script from \"./UpdateEntitySpendLimitCard.vue?vue&type=script&lang=js&\"\nexport * from \"./UpdateEntitySpendLimitCard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./UpdateEntitySpendLimitCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":`/api/metadata/services/${(_vm.value || {}).serviceId}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchServiceButton.errorMessage\": \"There was an error encountered while patching this service. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchServiceButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchServiceButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchServiceButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchServiceButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PatchServiceButton.vue?vue&type=template&id=079b98c1&\"\nimport script from \"./PatchServiceButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PatchServiceButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PatchServiceButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditServiceSpendLimitDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditServiceSpendLimitDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditServiceSpendLimitDialog.vue?vue&type=template&id=71800aa0&\"\nimport script from \"./EditServiceSpendLimitDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditServiceSpendLimitDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"serviceManageMenu.editSpendLimit\": \"Set Spend Limit\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceManageMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceManageMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ServiceManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ServiceManageMenu.vue?vue&type=template&id=35f7b366&\"\nimport script from \"./ServiceManageMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./ServiceManageMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ServiceManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CostSummaryWidget from '@/components/Domain.Usage/CostSummaryWidget.vue';\r\nimport ServiceMetadataChips from '@/components/Domain.Services/ServiceMetadataChips.vue';\r\nimport ServiceManageMenu from '@/components/Domain.Services/ServiceManageMenu.vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport moment from '@/lib/moment';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { defineComponent, computed, ref } from 'vue';\r\n\r\nexport default defineComponent({\r\n components: { ServiceMetadataChips, ServiceManageMenu, CostSummaryWidget },\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: {\r\n default: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() => {\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n return [\r\n hasUsageDataset ? { key: 'usage', icon: 'insights', text: 'views.dialogService.tabs.usage' } : null,\r\n hasEmissionsDataset ? { key: 'carbon', icon: 'co2', text: 'views.dialogService.tabs.carbon' } : null,\r\n { key: 'tags', icon: 'sell', text: 'views.dialogService.tabs.tags' },\r\n { key: 'virtualtags', icon: 'sell', text: 'views.dialogService.tabs.virtualtags' },\r\n { key: 'annotations', icon: 'chat', text: 'views.dialogService.tabs.annotations' },\r\n hasUsageDataset ? { key: 'raw', icon: 'visibility', text: 'views.dialogService.tabs.raw' } : null,\r\n ].filter((t) => t);\r\n });\r\n const forecast = ref({\r\n actualTotal: 0,\r\n projectedTotal: 0,\r\n pastTotal: 0,\r\n });\r\n return { tab, tabs, tenantStore, forecast };\r\n },\r\n methods: {\r\n loadServiceProjections: waitFor('loadingSvcForecast', async function loadServiceProjections(id) {\r\n const toDate = moment.utc().endOf('month');\r\n const params = { toDate: toDate.format(), serviceIds: [id].join(), granularity: 'Daily' };\r\n const response = await ApiV2.http\r\n .get('/api/forecast', { params })\r\n .catch((err) => {\r\n if (err.response.status === 400) return { data: {} };\r\n throw err;\r\n })\r\n .then((r) => r.data);\r\n const year = toDate.format('YYYY');\r\n const month = toDate.format('MM');\r\n const previousDate = moment.utc().subtract(1, 'months').endOf('month');\r\n const prevYear = previousDate.format('YYYY');\r\n const prevMonth = previousDate.format('MM');\r\n this.forecast.actualTotal = response.monthlySpendTotals?.[year]?.[month] || 0;\r\n this.forecast.projectedTotal =\r\n this.forecast.actualTotal + response.monthlyForecastTotals?.[year]?.[month] || 0;\r\n this.forecast.pastTotal = response.monthlySpendTotals?.[prevYear]?.[prevMonth] || 0;\r\n }),\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.loadServiceProjections(val.serviceId);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=13230f51&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('add-annotation-dialog',{attrs:{\"serviceId\":_vm.serviceId},on:{\"http2xx\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.annotations.length > 0 && _vm.tenantStore.hasPermission('CanContribute')),expression:\"annotations.length > 0 && tenantStore.hasPermission('CanContribute')\"}],staticClass:\"ml-3\",attrs:{\"color\":\"secondary\",\"fab\":\"\",\"depressed\":\"\",\"small\":\"\"}},on),[_c('v-icon',[_vm._v(\"add\")])],1)]}}]),model:{value:(_vm.dialogs.isAddingAnnotation),callback:function ($$v) {_vm.$set(_vm.dialogs, \"isAddingAnnotation\", $$v)},expression:\"dialogs.isAddingAnnotation\"}})],1),_c('annotations-timeline',{attrs:{\"annotations\":_vm.annotations,\"serviceId\":_vm.serviceId,\"allowEdit\":true,\"loading\":_vm.loading || _vm.$wait.is(['getAnnotations'])},on:{\"onAnnotationChangeSuccess\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(_vm.tenantStore.hasPermission('CanContribute'))?_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.dialogs.isAddingAnnotation = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1):_vm._e()]},proxy:true}])}),(_vm.hasMore)?_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"small\":\"\",\"depressed\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.loadMore()}}},[_vm._v(\" \"+_vm._s(_vm.$t('annotations.loadMoreButton'))+\" \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('add-annotation-card',{attrs:{\"loading\":_vm.$wait.is('isAddingAnnotation'),\"title\":_vm.$t('addAnnotationDialog.addAnnotationTitle'),\"subtitle\":_vm.$t('addAnnotationDialog.addAnnotationSubtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, loading, form, clear }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('add-annotation-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('isAddingAnnotation'),expression:\"'isAddingAnnotation'\"}],attrs:{\"value\":{ ...form, cloudAccountId: _vm.cloudAccountId, subscriptionId: _vm.subscriptionId, serviceId: _vm.serviceId },\"clear\":clear,\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulAnnotationChange($event))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":`/api/annotations`,\"value\":_vm.value,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(_vm._s(_vm.$t('postAnnotationsButton.text'))+\" \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postAnnotationsButton.text\": \"Add Annotation\",\r\n \"postAnnotationsButton.errorMessage\": \"There was an error encountered while creating this annotation. If anything does not look right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AddAnnotationButton.vue?vue&type=template&id=4b8c86a6&\"\nimport script from \"./AddAnnotationButton.vue?vue&type=script&lang=js&\"\nexport * from \"./AddAnnotationButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AddAnnotationButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"addAnnotationDialog.addAnnotationTitle\": \"Add Annotation\",\r\n \"addAnnotationDialog.addAnnotationSubtitle\": \"Add a new annotation for this entity\",\r\n \"addAnnotationDialog.successfulAdd\": \"Annotation successfully added.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AddAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AddAnnotationDialog.vue?vue&type=template&id=57ed49ce&\"\nimport script from \"./AddAnnotationDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./AddAnnotationDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AddAnnotationDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Annotations.vue?vue&type=template&id=6593ac4d&\"\nimport script from \"./Annotations.vue?vue&type=script&lang=js&\"\nexport * from \"./Annotations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"border\":\"left\",\"text\":\"\",\"type\":\"info\",\"elevation\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('serviceDialog.tags.sourceDescription'))+\" \")]),_c('tag-form',{attrs:{\"loading\":_vm.loading || _vm.$wait.is('getServiceTags'),\"value\":_vm.formData,\"hide-create\":\"\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-form',{staticClass:\"mt-3\",attrs:{\"value\":_vm.value ? _vm.value.valid : true},on:{\"input\":function($event){_vm.$emit('input', { ...(_vm.value || {}), valid: $event })}}},[_c('v-skeleton-loader',{attrs:{\"loading\":_vm.loading,\"type\":\"list-item@6\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [(!_vm.value || !_vm.value.data)?_c('empty-state',{attrs:{\"icon\":\"warning\",\"message\":\"There was an error processing this form.\"}}):(!_vm.value.data.length)?_c('empty-state',{attrs:{\"icon\":\"warning\",\"message\":_vm.$t('tagForm.noTags')}},[(!_vm.hideCreate)?_c('v-btn',{attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.addNewTag()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('tagForm.newTag'))+\" \")],1):_vm._e()],1):_c('fragment',[_vm._l((_vm.value.data),function(tag,i){return _c('v-row',{key:i},[_c('v-col',{attrs:{\"cols\":\"5\"}},[_c('tag-key-autocomplete',{attrs:{\"disabled\":!tag.Sources ||\n !tag.Sources.length ||\n tag.Sources.length > 1 ||\n tag.Sources[0] !== 'CloudControl'},on:{\"input\":function($event){return _vm.$emit('input', _vm.value)}},model:{value:(tag.Key),callback:function ($$v) {_vm.$set(tag, \"Key\", $$v)},expression:\"tag.Key\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('tag-value-autocomplete',{attrs:{\"tag-key\":tag.Key,\"disabled\":!tag.Sources ||\n !tag.Sources.length ||\n tag.Sources.length > 1 ||\n tag.Sources[0] !== 'CloudControl'},on:{\"input\":function($event){return _vm.$emit('input', _vm.value)}},model:{value:(tag.Value),callback:function ($$v) {_vm.$set(tag, \"Value\", $$v)},expression:\"tag.Value\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn',{staticClass:\"mt-3\",attrs:{\"icon\":\"\",\"color\":\"error\",\"disabled\":!tag.Sources ||\n !tag.Sources.length ||\n tag.Sources.length > 1 ||\n tag.Sources[0] !== 'CloudControl'},on:{\"click\":function($event){return _vm.deleteTag(tag, i)}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"5\"}},[(!_vm.hideCreate)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\",\"block\":\"\"},on:{\"click\":function($event){return _vm.addNewTag()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('tagForm.newTag'))+\" \")],1):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_vm._t(\"default\")],2)],1)],2)]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('entity-search-autocomplete',_vm._b({attrs:{\"filled\":\"\",\"types\":['Tag'],\"value\":_vm.tagValueEntity,\"label\":_vm.$t('tagValueAutocomplete.tagValue.label'),\"prepend-icon\":null,\"search-prefix\":_vm.tagKey ? _vm.tagKey + ':' : null,\"hide-details\":\"\",\"support-create\":\"\"},on:{\"input\":_vm.handleTagValueSelection}},'entity-search-autocomplete',_vm.$props,false))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"tagValueAutocomplete.tagValue.label\": \"Value\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagValueAutocomplete.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagValueAutocomplete.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagValueAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagValueAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagValueAutocomplete.vue?vue&type=template&id=5193e019&\"\nimport script from \"./TagValueAutocomplete.vue?vue&type=script&lang=js&\"\nexport * from \"./TagValueAutocomplete.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagValueAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"tagForm.tagKey.title\": \"Key\",\r\n \"tagForm.tagValue.title\": \"Value\",\r\n \"tagForm.newTag\": \"New Tag\",\r\n \"tagForm.noTags\": \"You do not currently have any tags here\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagForm.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagForm.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagForm.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagForm.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagForm.vue?vue&type=template&id=136fb078&\"\nimport script from \"./TagForm.vue?vue&type=script&lang=js&\"\nexport * from \"./TagForm.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagForm.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"serviceDialog.tags.sourceDescription\": \"The tags visible here are sourced from the last 60 days of usage records for this service. To update the tags of this service, please tag the corresponding resource in the source cloud provider. We recommend utilizing resource policies where appropriate to speed this up.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecordTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecordTags.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecordTags.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecordTags.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./RecordTags.vue?vue&type=template&id=53878f86&\"\nimport script from \"./RecordTags.vue?vue&type=script&lang=js&\"\nexport * from \"./RecordTags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./RecordTags.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"border\":\"left\",\"text\":\"\",\"type\":\"warning\",\"elevation\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('serviceDialog.virtualTags.sourceDescription'))+\" \")]),_c('virtual-tag-table',{attrs:{\"loading\":_vm.$wait.is(['getServiceVirtualTags', 'addServiceTag']),\"items\":_vm.virtualTags},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, form, loading, reset }){return [_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!isValid || loading,\"loading\":loading,\"form\":formId,\"text\":\"\"},on:{\"click\":function($event){_vm.addServiceTag(form).then(reset)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}},{key:\"item\",fn:function({ item }){return [_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\",\"loading\":_vm.$wait.is('deleteServiceTag')},on:{\"click\":function($event){return _vm.deleteServiceTag(item)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"delete\")]),_vm._v(\" Drop \")],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-form',{ref:\"form\",attrs:{\"id\":_vm.formId},model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Tag Key\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Tag Value\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Period\")]),_c('th')])]),_c('tbody',[(_vm.tenantStore.hasPermission('CanContribute'))?_c('tr',[_c('td',[_c('v-text-field',{staticClass:\"py-3\",attrs:{\"rules\":[_vm.$rules.required()],\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.newTagKey),callback:function ($$v) {_vm.newTagKey=$$v},expression:\"newTagKey\"}})],1),_c('td',[_c('v-text-field',{staticClass:\"py-3\",attrs:{\"rules\":[_vm.$rules.required()],\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\"},model:{value:(_vm.newTagValue),callback:function ($$v) {_vm.newTagValue=$$v},expression:\"newTagValue\"}})],1),_c('td',[_c('v-select',{staticClass:\"py-3\",attrs:{\"rules\":[_vm.$rules.required()],\"hide-details\":\"\",\"outlined\":\"\",\"dense\":\"\",\"items\":_vm.supportedPeriods,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.newTagPeriod),callback:function ($$v) {_vm.newTagPeriod=$$v},expression:\"newTagPeriod\"}})],1),_c('td',[_vm._t(\"default\",null,{\"formId\":_vm.formId,\"reset\":_vm.reset,\"resetValidation\":_vm.resetValidation,\"isValid\":_vm.isValid,\"form\":_vm.newTag,\"loading\":_vm.loading})],2)]):_vm._e(),_vm._l((_vm.items),function(item,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(item.tagKey))]),_c('td',[_vm._v(_vm._s(item.tagValue))]),_c('td',[_vm._v(_vm._s(`${item.month} / ${item.year}`))]),_c('td',[_vm._t(\"item\",null,{\"item\":item})],2)])}),(!_vm.items || _vm.items.length === 0)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\" \"+_vm._s(_vm.$t('virtualTagsTable.noRecords'))+\" \")])]):_vm._e()],2)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"virtualTagsTable.noRecords\": \"There are no virtual tags configured for this service.\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTagTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTagTable.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTagTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTagTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./VirtualTagTable.vue?vue&type=template&id=1eccb7b8&scoped=true&\"\nimport script from \"./VirtualTagTable.vue?vue&type=script&lang=js&\"\nexport * from \"./VirtualTagTable.vue?vue&type=script&lang=js&\"\nimport style0 from \"./VirtualTagTable.vue?vue&type=style&index=0&id=1eccb7b8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1eccb7b8\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./VirtualTagTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"serviceDialog.virtualTags.sourceDescription\": \"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\r\n \"serviceDialog.virtualTags.errorCreating\": \"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\r\n \"serviceDialog.virtualTags.successCreating\": \"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\r\n \"serviceDialog.virtualTags.errorDeleting\": \"There was an error deleting this virtual tag. Please refresh this page and try again.\",\r\n \"serviceDialog.virtualTags.successDeleting\": \"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./VirtualTags.vue?vue&type=template&id=86a6570c&\"\nimport script from \"./VirtualTags.vue?vue&type=script&lang=js&\"\nexport * from \"./VirtualTags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getServiceUsage'),\"hide-search\":\"\"},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getServiceUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"filter_alt\")]),_vm._l((_vm.value),function(filter){return _c('v-chip',{key:filter.id,staticClass:\"mx-1\",attrs:{\"outlined\":\"\",\"close\":\"\",\"label\":\"\"},on:{\"click:close\":function($event){return _vm.dropFilter(filter)}}},[_c('v-icon',{attrs:{\"left\":\"\"}}),_vm._v(\" \"+_vm._s(_vm._f(\"truncate\")(filter.name,20))+\" \")],1)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from \"vue\";\r\nimport VueI18n from \"vue-i18n\";\r\n\r\nVue.use(VueI18n);\r\n\r\nconst i18nRules = {\r\n en: {\r\n \"validation.required\": \"Required\",\r\n \"validation.invalid\": \"Invalid\",\r\n \"validation.maxLength\": \"Must be {num} or less characters\",\r\n \"validation.minLength\": \"Must be {num} or more characters\",\r\n \"validation.email\": \"Must be a valid email\",\r\n \"validation.time\": \"Must be a valid time (hh:mm)\",\r\n \"validation.multipleOf\": \"Increments of {num}\",\r\n \"validation.max\": \"Must be {num} or less\",\r\n \"validation.min\": \"Must be {num} or more\",\r\n \"validation.doesNotMatch\": \"Does not match\",\r\n \"validation.containsDigit\": \"Must contain a digit\",\r\n \"validation.containsLower\": \"Must contain a lowercase character\",\r\n \"validation.containsUpper\": \"Must contain an uppercase character\",\r\n \"validation.containsSpecialChar\":\r\n \"Must contain a special character like -+_!@#$%^&*.,?\",\r\n \"validation.regex\": \"Does not meet all requirements for this input\",\r\n },\r\n};\r\n\r\nconst i8nShared = {\r\n en: {\r\n \"shared.meterInformationNotSupported\":\r\n \"Drill down into Meter usage is not currently supported.\",\r\n },\r\n};\r\n\r\nexport const i18n = new VueI18n({\r\n locale: \"en\",\r\n silentTranslationWarn: true,\r\n messages: {\r\n en: {\r\n ...i18nRules.en,\r\n ...i8nShared.en,\r\n name: \"Name\",\r\n useTenantCurrencies: \"Apply tenant FX overrides\",\r\n \"useTenantCurrencies.tooltip\":\r\n \"In lieu of any overrides tenants will apply a core set of static FX rates updated monthly. To update the overrides navigate to the FX rates tab in the settings page.\",\r\n edit: \"Edit\",\r\n type: \"Type\",\r\n none: \"None\",\r\n description: \"Description\",\r\n back: \"Back\",\r\n permissions: \"Permissions\",\r\n delete: \"Delete\",\r\n view: \"View\",\r\n disable: \"Disable\",\r\n close: \"Close\",\r\n create: \"Create\",\r\n connected: \"Connected\",\r\n \"cloud accounts\": \"Cloud Connections\",\r\n \"azure accounts\": \"Azure Accounts\",\r\n \"amazon accounts\": \"Amazon Accounts\",\r\n \"alibaba accounts\": \"Alibaba Accounts\",\r\n \"usage connection\": \"Usage Connection\",\r\n \"arm connection\": \"ARM Connection\",\r\n \"edit name\": \"Edit Name\",\r\n \"edit currencies\": \"Edit FX Rates\",\r\n \"contact us\": \"Contact Us\",\r\n \"all azure accounts\": \"All Azure accounts\",\r\n \"all amazon accounts\": \"All Amazon accounts\",\r\n \"all alibaba accounts\": \"All Alibaba accounts\",\r\n \"edit enhanced connection\": \"Edit Enhanced Connection\",\r\n \"edit usage connection\": \"Edit Usage Connection\",\r\n \"edit connection\": \"Edit Connection\",\r\n \"copy cloud account\": \"Copy Cloud Connection\",\r\n expiry: \"Expiry\",\r\n email: \"Email\",\r\n administrator: \"Administrator\",\r\n role: \"Role\",\r\n actions: \"Actions\",\r\n login: \"Login\",\r\n password: \"Password\",\r\n \"old password\": \"Old Password\",\r\n \"confirm password\": \"Confirm Password\",\r\n company: \"Company\",\r\n \"spendUsageChartCard.customDateTextFormat\":\r\n \"Usage by {segregatedBy} ({fromDate} - {toDate})\",\r\n \"spendUsageChartCard.fixedDateTextFormat\":\r\n \"{granularity} usage by {segregateBy} (Last {total} {granularityName})\",\r\n \"spendUsageChartCard.products.title\": \"Products\",\r\n \"spendUsageChartCard.productcategories.title\": \"Categories\",\r\n \"spendUsageChartCard.cloudproviders.title\": \"Cloud Providers\",\r\n \"spendUsageChartCard.services.title\": \"Services\",\r\n \"spendUsageChartCard.subscriptions.title\": \"Subscriptions\",\r\n \"spendUsageChartCard.meters.title\": \"Meters\",\r\n \"spendUsageChartCard.cloudaccounts.title\": \"Cloud Connections\",\r\n \"spendUsageChartCard.regions.title\": \"Regions\",\r\n \"spendUsageChartCard.tags.title\": \"Tags\",\r\n },\r\n ja: {\r\n name: \"名前\",\r\n edit: \"を編集\",\r\n none: \"なし\",\r\n back: \"戻る\",\r\n delete: \"削除する\",\r\n create: \"つくる\",\r\n \"cloud accounts\": \"統合\",\r\n \"azure accounts\": \"Azure統合\",\r\n \"amazon accounts\": \"Amazon統合\",\r\n \"usage connection\": \"消費接続\",\r\n \"arm connection\": \"ARM接続\",\r\n },\r\n },\r\n});\r\n","\r\nimport { toastInfo } from '@/components/Common/Toast.vue';\r\nimport { i18n } from '@/i18n';\r\nimport { ISpendParameters, CloudProviderType, EntityType } from '@/models';\r\nimport { appendValueToCommaString } from '@/lib';\r\n\r\nexport interface IChipViewModel {\r\n id: string;\r\n name: string;\r\n type: EntityType;\r\n}\r\n\r\nexport function filterUsageParamsByFilterChips(chips: IChipViewModel[], params: ISpendParameters) {\r\n const cloneParams = { ...params };\r\n chips.forEach((f) => {\r\n if (f.type === EntityType.service) {\r\n cloneParams.serviceIds = appendValueToCommaString(params.serviceIds, f.id);\r\n } else if (f.type === EntityType.subscription) {\r\n cloneParams.subscriptionIds = appendValueToCommaString(params.subscriptionIds, f.id);\r\n } else if (f.type === EntityType.cloudAccount) {\r\n cloneParams.cloudAccountIds = appendValueToCommaString(params.cloudAccountIds, f.id);\r\n } else if (f.type === EntityType.product) {\r\n cloneParams.productIds = appendValueToCommaString(params.productIds, f.id);\r\n } else if (f.type === EntityType.productCategory) {\r\n const categoryName = f.id\r\n .split(':')\r\n .reverse()\r\n .find((x: string) => x);\r\n cloneParams.productCategories = appendValueToCommaString(params.productCategories, `\"${categoryName}\"`);\r\n } else if (f.type === EntityType.region) {\r\n const [providerType, regionName] = f.id.split(':');\r\n cloneParams.providerType = providerType as CloudProviderType;\r\n cloneParams.regionNames = appendValueToCommaString(params.regionNames, regionName);\r\n } else if (f.type == EntityType.tag) {\r\n cloneParams.tagKeyValues = appendValueToCommaString(params.tagKeyValues, f.id)\r\n } else if (f.type == EntityType.geography) {\r\n cloneParams.geographyNames = appendValueToCommaString(params.geographyNames, f.name);\r\n } else if (f.type == EntityType.cloudProvider) {\r\n cloneParams.providerType = appendValueToCommaString(params.providerType, f.name);\r\n } else if (f.type == EntityType.customView) {\r\n cloneParams.savedViewId = appendValueToCommaString(params.savedViewId, f.id);\r\n }\r\n });\r\n return cloneParams;\r\n}\r\n\r\nexport function handleSeriesClicked(chips: IChipViewModel[], series) {\r\n if (series.metaType === EntityType.meter) {\r\n toastInfo(i18n.t('shared.meterInformationNotSupported'));\r\n } else if (!chips.find((v) => v.id === series.metaId && v.type === series.metaType)) {\r\n chips.push({\r\n id: series.metaId,\r\n name: series.name,\r\n type: series.metaType,\r\n });\r\n }\r\n}\r\n\r\nexport default {\r\n props: {\r\n value: Array,\r\n },\r\n methods: {\r\n dropFilter(filter) {\r\n const filtersWithoutFilter = this.value.filter((i) => i != filter);\r\n this.$emit('input', filtersWithoutFilter);\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFilterChips.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UsageFilterChips.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./UsageFilterChips.vue?vue&type=template&id=1d90e452&\"\nimport script from \"./UsageFilterChips.vue?vue&type=script&lang=ts&\"\nexport * from \"./UsageFilterChips.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore, mapStores } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, IServiceMetaResult, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n }\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.meters})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.meter, EntityType.product]);\r\n const segregationSupportedKeys = ref([PluralEntityType.meters, PluralEntityType.products]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getServiceUsage', async () => {\r\n const { serviceId } = p.value as IServiceMetaResult;\r\n const options: SpendUsageOptions = { ...spendOptions.value, serviceId };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, usageResponse, options.costView);\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, serviceId: undefined };\r\n filterStore.setFilter(options);\r\n })\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getServiceUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=6ce2394a&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getServiceCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getServiceCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, onUnmounted, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, IServiceMetaResult } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.meters})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.meter, EntityType.tag]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.meters,\r\n PluralEntityType.tags,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getServiceCO2e\", async () => {\r\n const { serviceId } = p.value as IServiceMetaResult;\r\n const options: SpendUsageOptions = { ...spendOptions.value, serviceId };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey),\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getServiceCO2e\")) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, serviceId: undefined };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=fd2d24d8&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc,\"headers\":_vm.headers,\"items\":_vm.records,\"single-expand\":\"\",\"expanded\":_vm.expanded,\"item-key\":\"i\",\"show-expand\":\"\"},on:{\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event},\"update:expanded\":function($event){_vm.expanded=$event}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-spacer'),_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\",\"left\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"depressed\":\"\",\"color\":\"secondary\"}},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"download\")]),_vm._v(\" Export \")],1)]}}])},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadAsCsv()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"table_chart\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Download to CSV\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.downloadAsJson()}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"data_object\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Download to JSON\")])],1)],1)],1)],1)],1)]},proxy:true},{key:`item.cost`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.cost,item.currency))+\" \")]}},{key:`item.unitsConsumed`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.unitsConsumed.toFixed(2))+\" x \"+_vm._s(item.unit)+\" \")]}},{key:`item.chargeDate`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"calendarFormat\")(item.chargeDate))+\" \")]}},{key:\"expanded-item\",fn:function({ headers, item }){return [_c('td',{attrs:{\"colspan\":headers.length}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Metadata\")]),_c('th',[_vm._v(\"Tags\")])])]),_c('tbody',[_c('tr',[_c('td',_vm._l((item.metaData || {}),function(v,k){return _c('v-chip',{key:k,staticClass:\"ma-1\",attrs:{\"small\":\"\",\"label\":\"\"}},[_vm._v(\" \"+_vm._s(`${k}:${v}`)+\" \")])}),1),_c('td',_vm._l((item.tags || {}),function(v,k){return _c('v-chip',{key:k,staticClass:\"ma-1\",attrs:{\"small\":\"\",\"label\":\"\"}},[_vm._v(\" \"+_vm._s(`${k}:${v}`)+\" \")])}),1)])])])],1)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { defineComponent, ref } from 'vue';\r\nimport Downloader from '@/lib/Downloader';\r\nimport { IRawUsageRecord } from '@/models';\r\nexport default defineComponent({\r\n props: ['value', 'loading'],\r\n setup() {\r\n const records = ref([]);\r\n const headers = [\r\n ['chargeDate', 'Charge Date'],\r\n ['cost', 'Cost'],\r\n ['unitsConsumed', 'Consumption'],\r\n ['meterName', 'Meter Name'],\r\n ['regionName', 'Region'],\r\n ].map(([value, text]) => ({\r\n text,\r\n align: 'left',\r\n sortable: true,\r\n value,\r\n }));\r\n const sortBy = ref('chargeDate');\r\n const sortDesc = ref(true);\r\n const getServiceRawRecords = waitFor('gettingRawRecords', async function getFn(serviceId: string) {\r\n const rawRecords: IRawUsageRecord[] = await ApiV2.http\r\n .get(`/api/raw/services/${serviceId}`)\r\n .then((r) => r.data);\r\n records.value = rawRecords.map((val, i) => ({ ...val, i }));\r\n });\r\n const downloadAsJson = () => {\r\n Downloader.exportJSON(records.value, 'Usage.json');\r\n };\r\n const downloadAsCsv = () => {\r\n const csvHeaders = [\r\n 'chargeDate',\r\n 'cost',\r\n 'currency',\r\n 'unit',\r\n 'unitsConsumed',\r\n 'meterId',\r\n 'meterName',\r\n 'resourceName',\r\n 'regionName',\r\n 'productName',\r\n 'tags',\r\n 'metaData',\r\n ];\r\n const values = records.value.map((i) =>\r\n csvHeaders.map((h) => {\r\n if (h === 'metaData' || h === 'tags') {\r\n return Object.entries(i[h])\r\n .map(([k, v]) => `${k}:${v}`)\r\n .join('|');\r\n } else {\r\n return i[h];\r\n }\r\n })\r\n );\r\n Downloader.exportCSV([csvHeaders, ...values], 'Usage.csv');\r\n };\r\n return { records, getServiceRawRecords, headers, expanded: [], sortBy, sortDesc, downloadAsJson, downloadAsCsv };\r\n },\r\n watch: {\r\n value: {\r\n handler(svc) {\r\n if (!svc) return;\r\n this.getServiceRawRecords(svc.serviceId);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawUsage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RawUsage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RawUsage.vue?vue&type=template&id=44e92c43&\"\nimport script from \"./RawUsage.vue?vue&type=script&lang=ts&\"\nexport * from \"./RawUsage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showSubscriptionDialog),callback:function ($$v) {_vm.showSubscriptionDialog=$$v},expression:\"showSubscriptionDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedSubscription,\"loading\":_vm.$wait.is('loadingSubscriptions')},on:{\"input\":function($event){return Object.assign(_vm.selectedSubscription, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"subscriptionsDialog.subscriptionNotFound\": \"There is no remaining reference to this subscription within the last 13 months of usage.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=7865b5d4&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"md\":\"8\",\"cols\":\"12\"}},[_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Subscription\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.subscriptionName : '...')+\" \"),(_vm.tenantStore.hasPermission('CanContribute'))?_c('subscription-manage-menu',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_vm._e(),_c('v-spacer')],1),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" Vendor Subscription Id: \"+_vm._s(_vm.value ? _vm.value.remoteId : '...')+\" \")]),(_vm.value)?_c('v-card-subtitle',{staticClass:\"my-0 pt-0 pb-2\"},[_c('subscription-metadata-chips',{attrs:{\"value\":_vm.value}})],1):_vm._e()],1),_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('cost-summary-widget',{attrs:{\"actual-total\":_vm.forecast.actualTotal,\"projected-total\":_vm.forecast.projectedTotal,\"past-total\":_vm.forecast.pastTotal,\"currency-code\":_vm.tenantStore.currencyCode,\"spend-limit\":_vm.value ? _vm.value.monthlySpendLimit : 0}})],1)],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-badge',{attrs:{\"color\":\"secondary\",\"dot\":\"\",\"value\":tab.key === 'annotations' && _vm.value && _vm.value.annotationCount > 0}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",function(){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"x-small\":\"\",\"depressed\":\"\"}},bindings.on),[_vm._v(\" manage\"),_c('v-icon',{attrs:{\"right\":\"\",\"x-small\":\"\"}},[_vm._v(\"menu_open\")])],1)]},null,bindings)]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.isEditingSpendLimit = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionManageMenu.editSpendLimit'))+\" \")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){_vm.isEditingName = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionManageMenu.editName'))+\" \")])],1)],1)],1)],1),_c('edit-subscription-name-dialog',{attrs:{\"subscription\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.isEditingName),callback:function ($$v) {_vm.isEditingName=$$v},expression:\"isEditingName\"}}),_c('edit-subscription-spend-limit-dialog',{attrs:{\"subscription\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.isEditingSpendLimit),callback:function ($$v) {_vm.isEditingSpendLimit=$$v},expression:\"isEditingSpendLimit\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('update-entity-name-card',{attrs:{\"value\":_vm.legacySubscriptionModel,\"loading\":_vm.$wait.is('updatingSubscriptionName')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('patch-subscription-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingSubscriptionName'),expression:\"'updatingSubscriptionName'\"}],attrs:{\"value\":_vm.subscription,\"patches\":[{ op: 'replace', path: 'subscriptionName', value: form.Name }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulRename(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":`/api/metadata/subscriptions/${(_vm.value || {}).subscriptionId}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchSubscriptionButton.errorMessage\": \"There was an error encountered while patching this subscription. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchSubscriptionButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchSubscriptionButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchSubscriptionButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchSubscriptionButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PatchSubscriptionButton.vue?vue&type=template&id=0cae40e1&\"\nimport script from \"./PatchSubscriptionButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PatchSubscriptionButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PatchSubscriptionButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditSubscriptionNameDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditSubscriptionNameDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditSubscriptionNameDialog.vue?vue&type=template&id=5acd3e3a&\"\nimport script from \"./EditSubscriptionNameDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditSubscriptionNameDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"600\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ open }){return [_c('update-entity-spend-limit-card',{attrs:{\"value\":_vm.subscription,\"loading\":_vm.$wait.is('updateSubscriptionSpendLimit')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return open()}}}),_c('v-spacer'),_c('patch-subscription-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updateSubscriptionSpendLimit'),expression:\"'updateSubscriptionSpendLimit'\"}],attrs:{\"value\":_vm.subscription,\"patches\":[{ op: 'replace', path: 'monthlySpendLimit', value: form.monthlySpendLimit }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":_vm.handleSuccessfulSpendLimit}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditSubscriptionSpendLimitDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditSubscriptionSpendLimitDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditSubscriptionSpendLimitDialog.vue?vue&type=template&id=01e7d682&\"\nimport script from \"./EditSubscriptionSpendLimitDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditSubscriptionSpendLimitDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"subscriptionManageMenu.editSpendLimit\": \"Set Spend Limit\",\r\n \"subscriptionManageMenu.editName\": \"Edit Name\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionManageMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionManageMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SubscriptionManageMenu.vue?vue&type=template&id=6e325745&\"\nimport script from \"./SubscriptionManageMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./SubscriptionManageMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SubscriptionManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\",\"alt\":\"Cloud Connection\"}},[_c('cloud-provider-type-icon',{attrs:{\"size\":\"20\",\"left\":\"\",\"value\":_vm.value.cloudProviderType}}),_vm._v(\" Cloud Connection: \"+_vm._s(_vm.value.cloudAccountName)+\" \")],1),(_vm.value.offerId)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"shopping_cart\")]),_vm._v(\" OfferId: \"+_vm._s(_vm.value.offerId)+\" \")],1):_vm._e(),(_vm.value.domain)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"domain\")]),_vm._v(\" Domain: \"+_vm._s(_vm.value.domain)+\" \")],1):_vm._e(),(_vm.value.customerName)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"person\")]),_vm._v(\" Customer: \"+_vm._s(_vm.value.customerName)+\" \")],1):_vm._e(),(_vm.value.remoteId && _vm.value.cloudProviderType === 'Azure')?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\",\"color\":\"blue\",\"href\":`https://portal.azure.com/#${_vm.value.domain ? `${_vm.value.domain}/` : ''}resource/subscriptions/${\n _vm.value.remoteId\n }`,\"target\":\"_top\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"insert_link\")]),_vm._v(\" \"+_vm._s(_vm.$t('subscriptionMetadataChips.viewInAzure'))+\" \")],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n {\r\n \"en\": {\r\n \"subscriptionMetadataChips.viewInAzure\": \"View in Azure\"\r\n }\r\n }\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionMetadataChips.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionMetadataChips.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SubscriptionMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SubscriptionMetadataChips.vue?vue&type=template&id=d4f0fa10&\"\nimport script from \"./SubscriptionMetadataChips.vue?vue&type=script&lang=js&\"\nexport * from \"./SubscriptionMetadataChips.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SubscriptionMetadataChips.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport CostSummaryWidget from '@/components/Domain.Usage/CostSummaryWidget.vue';\r\nimport SubscriptionManageMenu from '@/components/Domain.Subscriptions/SubscriptionManageMenu.vue';\r\nimport SubscriptionMetadataChips from '@/components/Domain.Subscriptions/SubscriptionMetadataChips.vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport moment from '@/lib/moment';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { defineComponent, computed, ref } from 'vue';\r\n\r\nexport default defineComponent({\r\n components: { CostSummaryWidget, SubscriptionManageMenu, SubscriptionMetadataChips },\r\n props: {\r\n value: Object,\r\n loading: {\r\n default: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() => {\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n return [\r\n hasUsageDataset\r\n ? { key: 'usage', icon: 'insights', text: 'views.dialogSubscription.tabs.usage' }\r\n : null,\r\n hasEmissionsDataset\r\n ? { key: 'carbon', icon: 'co2', text: 'views.dialogSubscription.tabs.carbon' }\r\n : null,\r\n { key: 'virtualtags', icon: 'sell', text: 'views.dialogSubscription.tabs.virtualtags' },\r\n hasUsageDataset\r\n ? { key: 'trends', icon: 'compare_arrows', text: 'views.dialogSubscription.tabs.trends' }\r\n : null,\r\n { key: 'annotations', icon: 'chat', text: 'views.dialogSubscription.tabs.annotations' },\r\n ].filter((t) => t);\r\n });\r\n const forecast = ref({\r\n actualTotal: 0,\r\n projectedTotal: 0,\r\n pastTotal: 0,\r\n });\r\n\r\n return { tabs, tab, forecast, tenantStore };\r\n },\r\n methods: {\r\n loadSubscriptionProjections: waitFor('loadingSubForecast', async function loadSubscriptionProjections(id) {\r\n const toDate = moment.utc().endOf('month');\r\n const params = { toDate: toDate.format(), subscriptionIds: [id].join(), granularity: 'Daily' };\r\n const response = await ApiV2.http\r\n .get('/api/forecast', { params })\r\n .catch((err) => {\r\n if (err.response.status === 400) return { data: {} };\r\n throw err;\r\n })\r\n .then((r) => r.data);\r\n const year = toDate.format('YYYY');\r\n const month = toDate.format('MM');\r\n const previousDate = moment.utc().subtract(1, 'months').endOf('month');\r\n const prevYear = previousDate.format('YYYY');\r\n const prevMonth = previousDate.format('MM');\r\n this.forecast.actualTotal = response.monthlySpendTotals?.[year]?.[month] || 0;\r\n this.forecast.projectedTotal =\r\n this.forecast.actualTotal + response.monthlyForecastTotals?.[year]?.[month] || 0;\r\n this.forecast.pastTotal = response.monthlySpendTotals?.[prevYear]?.[prevMonth] || 0;\r\n }),\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.loadSubscriptionProjections(val.subscriptionId);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=73c300ed&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('usage-comparison-options-toolbar',{attrs:{\"loading\":_vm.$wait.is('loadServiceComparisons'),\"segregate-types\":['products', 'services']},on:{\"input\":function($event){return _vm.loadServiceComparisons()}},model:{value:(_vm.configuration),callback:function ($$v) {_vm.configuration=$$v},expression:\"configuration\"}}),(_vm.configuration.segregateBy === 'services')?_c('service-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):(_vm.configuration.segregateBy === 'products')?_c('product-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Trends.vue?vue&type=template&id=2a861cb7&\"\nimport script from \"./Trends.vue?vue&type=script&lang=js&\"\nexport * from \"./Trends.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getSubscriptionUsage'),\"hide-search\":\"\"},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getSubscriptionUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, ISubscriptionMetaResult, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageTable,\r\n SpendUsageUnitToggle,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n },\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({ segregateBy: PluralEntityType.productCategories });\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.tag,EntityType.region,EntityType.geography,]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.productCategories,\r\n PluralEntityType.products,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getSubscriptionUsage', async () => {\r\n const { subscriptionId } = p.value as ISubscriptionMetaResult;\r\n const options: SpendUsageOptions = { ...spendOptions.value, subscriptionIds: [subscriptionId] };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getSubscriptionUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, subscriptionIds: [] };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=3938b676&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getSubscriptionCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getSubscriptionCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, onUnmounted, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport {\r\n EntityType,\r\n PluralEntityType,\r\n ISubscriptionMetaResult,\r\n} from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.products})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.tag]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.services\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getSubscriptionCO2e\", async () => {\r\n const { subscriptionId } = p.value as ISubscriptionMetaResult;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n subscriptionIds: [subscriptionId],\r\n };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey),\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getSubscriptionCO2e\")) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, subscriptionIds: [] };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=3d605b75&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('add-annotation-dialog',{attrs:{\"subscriptionId\":_vm.subscriptionId},on:{\"http2xx\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.annotations.length > 0 && _vm.tenantStore.hasPermission('CanContribute')),expression:\"annotations.length > 0 && tenantStore.hasPermission('CanContribute')\"}],staticClass:\"ml-3\",attrs:{\"color\":\"secondary\",\"fab\":\"\",\"depressed\":\"\",\"small\":\"\"}},on),[_c('v-icon',[_vm._v(\"add\")])],1)]}}]),model:{value:(_vm.dialogs.isAddingAnnotation),callback:function ($$v) {_vm.$set(_vm.dialogs, \"isAddingAnnotation\", $$v)},expression:\"dialogs.isAddingAnnotation\"}})],1),_c('annotations-timeline',{attrs:{\"annotations\":_vm.annotations,\"subscriptionId\":_vm.subscriptionId,\"allowEdit\":true,\"loading\":_vm.loading || _vm.$wait.is(['getAnnotations'])},on:{\"onAnnotationChangeSuccess\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"no-data\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.dialogs.isAddingAnnotation = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]},proxy:true}:null],null,true)}),(_vm.hasMore)?_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"small\":\"\",\"depressed\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.loadMore()}}},[_vm._v(\" \"+_vm._s(_vm.$t('annotations.loadMoreButton'))+\" \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Annotations.vue?vue&type=template&id=35060a38&\"\nimport script from \"./Annotations.vue?vue&type=script&lang=js&\"\nexport * from \"./Annotations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"border\":\"left\",\"text\":\"\",\"type\":\"warning\",\"elevation\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('subscriptionDialog.virtualTags.sourceDescription'))+\" \")]),_c('virtual-tag-table',{attrs:{\"loading\":_vm.$wait.is(['getSubscriptionAccountVirtualTags', 'addSubscriptionTag']),\"items\":_vm.virtualTags},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, form, loading, reset }){return [_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!isValid || loading,\"loading\":loading,\"form\":formId,\"text\":\"\"},on:{\"click\":function($event){_vm.addSubscriptionTag(form).then(reset)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}},{key:\"item\",fn:function({ item }){return [_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\",\"loading\":_vm.$wait.is('deleteSubscriptionTag')},on:{\"click\":function($event){return _vm.deleteSubscriptionTag(item)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"delete\")]),_vm._v(\" Drop \")],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"subscriptionDialog.virtualTags.sourceDescription\": \"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\r\n \"subscriptionDialog.virtualTags.errorCreating\": \"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\r\n \"subscriptionDialog.virtualTags.successCreating\": \"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\r\n \"subscriptionDialog.virtualTags.errorDeleting\": \"There was an error deleting this virtual tag. Please refresh this page and try again.\",\r\n \"subscriptionDialog.virtualTags.successDeleting\": \"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./VirtualTags.vue?vue&type=template&id=73cb437e&\"\nimport script from \"./VirtualTags.vue?vue&type=script&lang=js&\"\nexport * from \"./VirtualTags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showProductDialog),callback:function ($$v) {_vm.showProductDialog=$$v},expression:\"showProductDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedProduct,\"loading\":_vm.$wait.is('loadingProducts')},on:{\"input\":function($event){return Object.assign(_vm.selectedProduct, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref } from 'vue';\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showProductDialog = ref(false);\r\n const showProductId = ref(null);\r\n const selectedProduct = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showProductDialog.value = false;\r\n showProductId.value = null;\r\n selectedProduct.value = null;\r\n }\r\n emit('input', isOpen);\r\n };\r\n\r\n const loadProductDetails = waitFor('loadingProducts', async function (id: string) {\r\n try {\r\n selectedProduct.value = await ApiV2.http.get(`/api/metadata/products/${id}`).then((r) => r.data);\r\n this.$title = selectedProduct.value.productName;\r\n } catch (err) {\r\n toastError(this.$t('productDialog.productNotFound'));\r\n tryCloseDialog(false);\r\n }\r\n });\r\n\r\n return {\r\n showProductDialog,\r\n showProductId,\r\n selectedProduct,\r\n tryCloseDialog,\r\n loadProductDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showProductId === to.params.productId) return;\r\n this.showProductId = to.params.productId || null;\r\n this.showProductDialog = !!this.showProductId;\r\n if (this.selectedProduct && this.selectedProduct.productId === this.showProductId) return;\r\n if (!this.showProductId) return;\r\n this.loadProductDetails(this.showProductId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=fd4a1b02&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Product\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.productName : '...')+\" \"),(_vm.tenantStore.hasPermission('CanContribute'))?_c('product-manage-menu',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_vm._e()],1),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.cloudProviderType : '...')+\" \")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",function(){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"x-small\":\"\",\"depressed\":\"\"}},bindings.on),[_vm._v(\" manage\"),_c('v-icon',{attrs:{\"right\":\"\",\"x-small\":\"\"}},[_vm._v(\"menu_open\")])],1)]},null,bindings)]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.isEditingSpendLimit = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('productManageMenu.editSpendLimit'))+\" \")])],1)],1)],1)],1),_c('edit-product-spend-limit-dialog',{attrs:{\"product\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.isEditingSpendLimit),callback:function ($$v) {_vm.isEditingSpendLimit=$$v},expression:\"isEditingSpendLimit\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"600\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ open }){return [_c('update-entity-spend-limit-card',{attrs:{\"value\":_vm.product,\"loading\":_vm.$wait.is('updateProductSpendLimit')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return open()}}}),_c('v-spacer'),_c('patch-product-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updateProductSpendLimit'),expression:\"'updateProductSpendLimit'\"}],attrs:{\"value\":_vm.product,\"patches\":[{ op: 'replace', path: 'monthlySpendLimit', value: form.monthlySpendLimit }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":_vm.handleSuccessfulSpendLimit}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":`/api/metadata/products/${(_vm.value || {}).productId}`},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchProductButton.errorMessage\": \"There was an error encountered while patching this product. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchProductButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchProductButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchProductButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchProductButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PatchProductButton.vue?vue&type=template&id=26729526&\"\nimport script from \"./PatchProductButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PatchProductButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PatchProductButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditProductSpendLimitDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditProductSpendLimitDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditProductSpendLimitDialog.vue?vue&type=template&id=93247788&\"\nimport script from \"./EditProductSpendLimitDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditProductSpendLimitDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"productManageMenu.editSpendLimit\": \"Set Spend Limit\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductManageMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductManageMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ProductManageMenu.vue?vue&type=template&id=73727542&\"\nimport script from \"./ProductManageMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./ProductManageMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ProductManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, computed } from 'vue';\r\nimport ProductManageMenu from '@/components/Domain.Products/ProductManageMenu.vue';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\n\r\nexport default defineComponent({\r\n components: { ProductManageMenu },\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() => {\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n return [\r\n hasUsageDataset ? { key: 'usage', icon: 'insights', text: 'views.dialogProduct.tabs.usage' } : null,\r\n hasEmissionsDataset ? { key: 'carbon', icon: 'co2', text: 'views.dialogProduct.tabs.carbon' } : null,\r\n hasUsageDataset ?{ key: 'trends', icon: 'compare_arrows', text: 'views.dialogProduct.tabs.trends' } : null,\r\n ].filter((t) => t);\r\n });\r\n\r\n return { tab, tabs, tenantStore };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=eccc3eca&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getProductUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity,\"allow-range-selection\":true},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getProductUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, IProductModel, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\n\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n }\r\n },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.services})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.subscription, EntityType.tag, EntityType.geography, EntityType.cloudProvider]);\r\n const segregationSupportedKeys = ref([PluralEntityType.services, PluralEntityType.meters]);\r\n const loadTabUsage = async () =>\r\n await whilst('getProductUsage', async () => {\r\n const { productId } = p.value as IProductModel;\r\n const options: SpendUsageOptions = { ...spendOptions.value, productId };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, usageResponse, options.costView);\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getProductUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, productId: undefined };\r\n filterStore.setFilter(options);\r\n })\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=9af313ee&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getProductCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getProductCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, onUnmounted, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, IProductModel } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.services})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getProductCO2e\", async () => {\r\n const { productId } = p.value as IProductModel;\r\n const options: SpendUsageOptions = { ...spendOptions.value, productId };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey)\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getProductCO2e\")) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n \r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, productId: undefined };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=a308da6e&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('usage-comparison-options-toolbar',{attrs:{\"loading\":_vm.$wait.is('loadServiceComparisons'),\"segregate-types\":['services']},on:{\"input\":function($event){return _vm.loadServiceComparisons()}},model:{value:(_vm.configuration),callback:function ($$v) {_vm.configuration=$$v},expression:\"configuration\"}}),_c('service-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { waitFor } from \"@/plugins/vue-wait\";\r\nimport { getTrends } from \"@/lib/Api\";\r\nimport { PluralEntityType } from \"@/models\";\r\nimport ServiceComparisonsTable from \"@/components/Domain.Services/ServiceComparisonsTable.vue\";\r\nimport UsageComparisonOptionsToolbar from \"@/components/Domain.Usage/UsageComparisonOptionsToolbar.vue\";\r\nimport { defineComponent, ref } from \"vue\";\r\nimport { useTenantStore } from \"@/stores/tenant\";\r\n\r\nexport default defineComponent({\r\n components: { ServiceComparisonsTable, UsageComparisonOptionsToolbar },\r\n props: {\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup(props) {\r\n const comparisons = ref([]);\r\n const configuration = ref({\r\n segregateBy: PluralEntityType.services,\r\n period: \"month\",\r\n toDate: new Date(),\r\n });\r\n const loadServiceComparisons = waitFor(\r\n \"loadServiceComparisons\",\r\n async function loadServiceComparisonsFn() {\r\n if (!props.value) return;\r\n const params = {\r\n productIds: props.value.productInd,\r\n period: configuration.value.period,\r\n toDate: configuration.value.toDate.toISOString(),\r\n };\r\n const segregateBy = configuration.value.segregateBy as\r\n | PluralEntityType.services\r\n | PluralEntityType.products;\r\n const response = await getTrends(segregateBy, params);\r\n comparisons.value = response.entities;\r\n }\r\n );\r\n\r\n const tenantStore = useTenantStore();\r\n\r\n return {\r\n comparisons,\r\n configuration,\r\n loadServiceComparisons,\r\n tenantStore,\r\n };\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.loadServiceComparisons();\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Trends.vue?vue&type=template&id=41d276f2&\"\nimport script from \"./Trends.vue?vue&type=script&lang=ts&\"\nexport * from \"./Trends.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showRegionDialog),callback:function ($$v) {_vm.showRegionDialog=$$v},expression:\"showRegionDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedRegion,\"loading\":_vm.$wait.is('loadingRegions')},on:{\"input\":function($event){return Object.assign(_vm.selectedRegion, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref } from 'vue';\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showRegionDialog = ref(false);\r\n const showRegionId = ref(null);\r\n const selectedRegion = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showRegionDialog.value = false;\r\n showRegionId.value = null;\r\n selectedRegion.value = null;\r\n }\r\n emit('input', isOpen);\r\n };\r\n\r\n const loadRegionDetails = waitFor('loadingRegions', async function (id: string) {\r\n try {\r\n selectedRegion.value = await ApiV2.http.get(`/api/regions/${id}`).then((r) => r.data);\r\n this.$title = selectedRegion.value.name;\r\n } catch (err) {\r\n toastError(this.$t('regionDialog.regionNotFound'));\r\n tryCloseDialog(false);\r\n }\r\n });\r\n\r\n return {\r\n showRegionDialog,\r\n showRegionId,\r\n selectedRegion,\r\n tryCloseDialog,\r\n loadRegionDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showRegionId === to.params.regionId) return;\r\n this.showRegionId = to.params.regionId || null;\r\n this.showRegionDialog = !!this.showRegionId;\r\n if (this.selectedRegion && this.selectedRegion.regionId === this.showRegionId) return;\r\n if (!this.showRegionId) return;\r\n this.loadRegionDetails(this.showRegionId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=0c1f138e&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Region\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.name : '...')+\" \")],1),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.providerType : '...')+\" \")]),(_vm.value)?_c('v-card-subtitle',{staticClass:\"my-0 pt-0 pb-2\"},[_c('region-metadata-chips',{attrs:{\"value\":_vm.value}})],1):_vm._e(),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"place\")]),_vm._v(\" Geography: \"+_vm._s(_vm.value.geography)+\" \")],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionMetadataChips.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RegionMetadataChips.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RegionMetadataChips.vue?vue&type=template&id=757c2286&\"\nimport script from \"./RegionMetadataChips.vue?vue&type=script&lang=js&\"\nexport * from \"./RegionMetadataChips.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, computed } from 'vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport RegionMetadataChips from '@/components/Domain.Regions/RegionMetadataChips.vue';\r\n\r\nexport default defineComponent({\r\n components: { RegionMetadataChips },\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() =>\r\n [\r\n { key: 'usage', icon: 'insights', text: 'views.dialogRegion.tabs.usage' },\r\n tenantStore.hasTenantFeature('EmissionsAndEnergy')\r\n ? { key: 'carbon', icon: 'co2', text: 'views.dialogRegion.tabs.carbon' }\r\n : null,\r\n ].filter((t) => t)\r\n );\r\n return { tab, tabs, tenantStore };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=4d1117bb&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getRegionUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getRegionUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, IRegionResult, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.products})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.subscription, EntityType.tag]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getRegionUsage', async () => {\r\n const { name, geography } = p.value as IRegionResult;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n regionName: name,\r\n geographyName: geography,\r\n };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, {\r\n reportType: UsageReportTypes.charges,\r\n });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getRegionUsage')) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=76a91313&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getRegionCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getRegionCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, ref, watch } from \"vue\";\r\nimport { getCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, IRegionResult, Granularity } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const spendOptions = ref({\r\n dateRangeKey: \"60d\",\r\n forecastRangeKey: '7d',\r\n granularity: Granularity.daily,\r\n topXResults: 10,\r\n segregateBy: PluralEntityType.products,\r\n });\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getRegionCO2e\", async () => {\r\n const { name, geography } = p.value as IRegionResult;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n regionName: name,\r\n geographyName: geography,\r\n };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n newChartData.value = {\r\n labels: [...usageDataset.labels],\r\n datasets: [...usageDataset.datasets],\r\n };\r\n maxDate.value = params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getRegionCO2e\")) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=54712734&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showProductCategoryDialog),callback:function ($$v) {_vm.showProductCategoryDialog=$$v},expression:\"showProductCategoryDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedProductCategory,\"loading\":false},on:{\"input\":function($event){return Object.assign(_vm.selectedProductCategory, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { IProductCategoryModel } from '@/models';\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showProductCategoryDialog = ref(false);\r\n const showProductCategoryId = ref(null);\r\n const selectedProductCategory = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showProductCategoryDialog.value = false;\r\n showProductCategoryId.value = null;\r\n selectedProductCategory.value = null;\r\n }\r\n emit('input', isOpen);\r\n };\r\n\r\n const loadProductCategoryDetails = function (id: string) {\r\n const productCategoryName = id\r\n .split(':')\r\n .reverse()\r\n .find((x: string) => x);\r\n selectedProductCategory.value = { productCategoryName };\r\n this.$title = productCategoryName;\r\n };\r\n\r\n return {\r\n showProductCategoryDialog,\r\n showProductCategoryId,\r\n selectedProductCategory,\r\n tryCloseDialog,\r\n loadProductCategoryDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showProductCategoryId === to.params.productCategoryId) return;\r\n this.showProductCategoryId = to.params.productCategoryId || null;\r\n this.showProductCategoryDialog = !!this.showProductCategoryId;\r\n if (\r\n this.selectedProductCategory &&\r\n this.selectedProductCategory.productCategoryId === this.showProductCategoryId\r\n )\r\n return;\r\n if (!this.showProductCategoryId) return;\r\n this.loadProductCategoryDetails(this.showProductCategoryId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=38ad2012&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"ProductCategory\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.productCategoryName : '...')+\" \")],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tabs = [\r\n { key: 'usage', icon: 'insights', text: 'views.dialogProductCategory.tabs.usage' }\r\n ];\r\n return { tab, tabs };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=12e27ceb&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getProductUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getProductUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore, mapStores } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n CostView,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, IProductCategoryModel, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n },\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({ segregateBy: PluralEntityType.products });\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.product,\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.tag,\r\n EntityType.region,\r\n EntityType.geography,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getProductUsage', async () => {\r\n const { productCategoryName } = p.value as IProductCategoryModel;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n productCategory: `\"${productCategoryName}\"`,\r\n };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getProductUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=5e912376&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showCloudProviderDialog),callback:function ($$v) {_vm.showCloudProviderDialog=$$v},expression:\"showCloudProviderDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedCloudProvider,\"loading\":false},on:{\"input\":function($event){return Object.assign(_vm.selectedCloudProvider, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport { CloudProviderType } from \"@/models\";\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showCloudProviderDialog = ref(false);\r\n const showCloudProviderId = ref(null);\r\n const selectedCloudProvider = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showCloudProviderDialog.value = false;\r\n showCloudProviderId.value = null;\r\n selectedCloudProvider.value = null;\r\n }\r\n emit(\"input\", isOpen);\r\n };\r\n\r\n const loadCloudProviderDetails = function (id: string) {\r\n selectedCloudProvider.value = id as CloudProviderType;\r\n this.$title = id;\r\n };\r\n\r\n return {\r\n showCloudProviderDialog,\r\n showCloudProviderId,\r\n selectedCloudProvider,\r\n tryCloseDialog,\r\n loadCloudProviderDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showCloudProviderId === to.params.cloudProviderId) return;\r\n this.showCloudProviderId = to.params.cloudProviderId || null;\r\n this.showCloudProviderDialog = !!this.showCloudProviderId;\r\n if (\r\n this.selectedCloudProvider &&\r\n this.selectedCloudProvider.cloudProviderId === this.showCloudProviderId\r\n )\r\n return;\r\n if (!this.showCloudProviderId) return;\r\n this.loadCloudProviderDetails(this.showCloudProviderId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=039bedcb&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"CloudProvider\"}}),_vm._v(\" \"+_vm._s(_vm.value || \"...\")+\" \")],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from \"vue\";\r\n\r\nexport default defineComponent({\r\n props: {\r\n me: Object,\r\n value: String,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tabs = [\r\n { key: \"usage\", icon: \"insights\", text: \"views.dialogCloudProvider.tabs.usage\" },\r\n ];\r\n return { tab, tabs };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=12cd7531&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getCloudProviderUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getCloudProviderUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, CloudProviderType, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n },\r\n },\r\n props: { value: String, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({ segregateBy: PluralEntityType.products });\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.product,\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getCloudProviderUsage', async () => {\r\n const cloudProviderType = p.value as CloudProviderType;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n providerType: cloudProviderType,\r\n };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n });\r\n\r\n const handleDatasetClicked = ({ isOther, name, datasetGroupId }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else if (!Array.isArray(spendOptions.value.segregateBy)) {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getCloudProviderUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, providerType: undefined };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=ac9ed0ae&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showGeographyDialog),callback:function ($$v) {_vm.showGeographyDialog=$$v},expression:\"showGeographyDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedGeography,\"loading\":false},on:{\"input\":function($event){return Object.assign(_vm.selectedGeography, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { CloudProviderType, IGeographyModel } from '@/models';\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showGeographyDialog = ref(false);\r\n const showGeographyId = ref(null);\r\n const selectedGeography = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showGeographyDialog.value = false;\r\n showGeographyId.value = null;\r\n selectedGeography.value = null;\r\n }\r\n emit('input', isOpen);\r\n };\r\n\r\n const loadGeographyDetails = function (id: string) {\r\n const [providerType, geographyName] = id.split(':') as [CloudProviderType, string];\r\n selectedGeography.value = { providerType, geographyName };\r\n this.$title = geographyName;\r\n };\r\n\r\n return {\r\n showGeographyDialog,\r\n showGeographyId,\r\n selectedGeography,\r\n tryCloseDialog,\r\n loadGeographyDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showGeographyId === to.params.geographyId) return;\r\n this.showGeographyId = to.params.geographyId || null;\r\n this.showGeographyDialog = !!this.showGeographyId;\r\n if (this.selectedGeography && this.selectedGeography.geographyId === this.showGeographyId) return;\r\n if (!this.showGeographyId) return;\r\n this.loadGeographyDetails(this.showGeographyId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=77d47473&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Geography\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.geographyName : '...')+\" \")],1),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.providerType : '...')+\" \")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent , computed} from 'vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\n\r\nexport default defineComponent({\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() =>\r\n [\r\n { key: 'usage', icon: 'insights', text: 'views.dialogGeography.tabs.usage' },\r\n tenantStore.hasTenantFeature('EmissionsAndEnergy')\r\n ? { key: 'carbon', icon: 'co2', text: 'views.dialogGeography.tabs.carbon' }\r\n : null,\r\n ].filter((t) => t)\r\n );\r\n return { tab, tabs };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=2b9f759a&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getGeographyUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getGeographyUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, IGeographyModel, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.regions});\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.subscription, EntityType.tag]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.regions,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getGeographyUsage', async () => {\r\n const { geographyName, providerType } = p.value as IGeographyModel;\r\n const options: SpendUsageOptions = { ...spendOptions.value, geographyName, providerType };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, {\r\n reportType: UsageReportTypes.charges,\r\n });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n });\r\n\r\n const handleDatasetClicked = ({ isOther, name, datasetGroupId }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getGeographyUsage')) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=71acae02&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getGeographyCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getGeographyCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, IGeographyModel, Granularity } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const spendOptions = ref({\r\n dateRangeKey: \"60d\",\r\n forecastRangeKey: '7d',\r\n granularity: Granularity.daily,\r\n topXResults: 10,\r\n segregateBy: PluralEntityType.regions,\r\n });\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.service,\r\n EntityType.subscription,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.regions,\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getGeographyCO2e\", async () => {\r\n const { geographyName, providerType } = p.value as IGeographyModel;\r\n const options: SpendUsageOptions = {\r\n ...spendOptions.value,\r\n geographyName,\r\n providerType,\r\n };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey)\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getGeographyCO2e\")) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=5c0a59be&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showTagDialog),callback:function ($$v) {_vm.showTagDialog=$$v},expression:\"showTagDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedTag,\"loading\":_vm.$wait.is('loadingTag')},on:{\"input\":function($event){return Object.assign(_vm.selectedTag, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { defineComponent, ref } from 'vue';\r\nimport { ITagMetadataResult } from '@/models';\r\n\r\nexport default defineComponent({\r\n setup(_, { emit }) {\r\n const showTagDialog = ref(false);\r\n const showTagId = ref(null);\r\n const selectedTag = ref(null);\r\n\r\n const tryCloseDialog = (isOpen: boolean) => {\r\n if (!isOpen) {\r\n showTagDialog.value = false;\r\n showTagId.value = null;\r\n selectedTag.value = null;\r\n }\r\n emit('input', isOpen);\r\n };\r\n\r\n const loadTagDetails = async (id: string) => {\r\n selectedTag.value = await ApiV2.http.get(`/api/metadata/tagkeyvalue/${id}`).then((r) => r.data);\r\n };\r\n\r\n return {\r\n showTagDialog,\r\n showTagId,\r\n selectedTag,\r\n tryCloseDialog,\r\n loadTagDetails,\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n // Need to handle routes that are Envionrment:Blah or Blah\r\n if (!to.params.tagId) {\r\n this.showTagId = null;\r\n return;\r\n }\r\n const tagIdParts:string[] = (to.params.tagId || '').split(':');\r\n const tagKeyPart = tagIdParts.length === 1 ? to.params.tagkey : (tagIdParts[0] || to.params.tagkey);\r\n const tagValuePart = tagIdParts.length === 1 ? to.params.tagId : tagIdParts.slice(1).join(':');\r\n const referencedTagKeyValue = `${tagKeyPart}:${tagValuePart}`;\r\n if (this.showTagId === referencedTagKeyValue) return;\r\n this.showTagId = referencedTagKeyValue || null;\r\n this.showTagDialog = !!this.showTagId;\r\n if (this.selectedTag && this.selectedTag.tagKeyValue === this.showTagId) return;\r\n if (!this.showTagId) return;\r\n this.loadTagDetails(this.showTagId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=484be868&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"TagKey\"}}),_vm._v(\" \"+_vm._s(_vm.tagName)+\" \"),(_vm.tenantStore.hasPermission('CanContribute'))?_c('tag-key-value-manage-menu',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}}}):_vm._e()],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":{\n path: tab.key,\n query: _vm.$route.query,\n }}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",function(){return [_c('v-btn',_vm._g({staticClass:\"ml-2\",attrs:{\"x-small\":\"\",\"depressed\":\"\"}},bindings.on),[_vm._v(\" manage\"),_c('v-icon',{attrs:{\"right\":\"\",\"x-small\":\"\"}},[_vm._v(\"menu_open\")])],1)]},null,bindings)]}}],null,true),model:{value:(_vm.isOpen),callback:function ($$v) {_vm.isOpen=$$v},expression:\"isOpen\"}},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){_vm.isEditingSpendLimit = true}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('tagKeyValueManageMenu.editSpendLimit'))+\" \")])],1)],1),(!_vm.isDimension)?_c('v-list-item',{on:{\"click\":_vm.tryPromoteToDimension}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"publish\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('tagKeyValueManageMenu.promoteToDimension'))+\" \")])],1)],1):_c('v-list-item',{on:{\"click\":_vm.tryDemoteToTagKey}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"unpublished\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('tagKeyValueManageMenu.demoteToTagKey'))+\" \")])],1)],1)],1)],1),_c('edit-tag-key-value-spend-limit-dialog',{attrs:{\"tagkeyvalue\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('input', $event)}},model:{value:(_vm.isEditingSpendLimit),callback:function ($$v) {_vm.isEditingSpendLimit=$$v},expression:\"isEditingSpendLimit\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"600\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ open }){return [_c('update-entity-spend-limit-card',{attrs:{\"value\":_vm.tagkeyvalue,\"loading\":_vm.$wait.is('updateTagKeyValueSpendLimit')},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return open()}}}),_c('v-spacer'),_c('patch-tag-key-value-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updateTagKeyValueSpendLimit'),expression:\"'updateTagKeyValueSpendLimit'\"}],attrs:{\"value\":_vm.tagkeyvalue,\"patches\":[{ op: 'replace', path: 'monthlySpendLimit', value: form.monthlySpendLimit }],\"form\":formId,\"clear\":() => {},\"valid\":isValid,\"loading\":loading},on:{\"http2xx\":_vm.handleSuccessfulSpendLimit}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-patch-button',_vm._g(_vm._b({attrs:{\"value\":_vm.patches,\"href\":`/api/metadata/tagkeyvalue/${(_vm.value || {}).tagKeyValue}`},on:{\"http4xx\":_vm.onError}},'http-patch-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"patchTagButton.errorMessage\": \"There was an error encountered while patching this tag keyvalue. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchTagKeyValueButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchTagKeyValueButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchTagKeyValueButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PatchTagKeyValueButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PatchTagKeyValueButton.vue?vue&type=template&id=46fb1c4e&\"\nimport script from \"./PatchTagKeyValueButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PatchTagKeyValueButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PatchTagKeyValueButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditTagKeyValueSpendLimitDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditTagKeyValueSpendLimitDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditTagKeyValueSpendLimitDialog.vue?vue&type=template&id=1379ba5e&\"\nimport script from \"./EditTagKeyValueSpendLimitDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./EditTagKeyValueSpendLimitDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"tagKeyValueManageMenu.editSpendLimit\": \"Set Spend Limit\",\r\n \"tagKeyValueManageMenu.promoteToDimension\": \"Promote to Dimension!\",\r\n \"tagKeyValueManageMenu.demoteToTagKey\": \"Demote to Tag Key!\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyValueManageMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyValueManageMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyValueManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagKeyValueManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TagKeyValueManageMenu.vue?vue&type=template&id=18d462e5&\"\nimport script from \"./TagKeyValueManageMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./TagKeyValueManageMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TagKeyValueManageMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, computed } from 'vue';\r\nimport TagKeyValueManageMenu from '@/components/Domain.Tags/TagKeyValueManageMenu.vue';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\n\r\nexport default defineComponent({\r\n components: { TagKeyValueManageMenu },\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() => {\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n return [\r\n hasUsageDataset ? { key: 'usage', icon: 'insights', text: 'views.dialogTag.tabs.usage' } : null,\r\n hasUsageDataset ? { key: 'trends', icon: 'compare_arrows', text: 'views.dialogTag.tabs.trends' } : null,\r\n hasEmissionsDataset ? { key: 'carbon', icon: 'co2', text: 'views.dialogTag.tabs.carbon' } : null,\r\n ].filter((t) => t);\r\n });\r\n return { tab, tabs, tenantStore };\r\n },\r\n computed: {\r\n tagName() {\r\n return (this.value?.tagKeyValue ?? \"...\").replace(\"(Blanks)\",\"\");\r\n }\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=18a8d8d5&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"},scopedSlots:_vm._u([(_vm.filters.length > 1)?{key:\"extension\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true)},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getTagUsage'),\"hide-search\":_vm.filters.length > 1},scopedSlots:_vm._u([{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}]),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getTagUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, ITagMetadataResult, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n }\r\n },\r\n watch: {\r\n $route: {\r\n handler(url) {\r\n url.query.tagKeyValues?.split(',').forEach((tkv : string) => {\r\n this.filters.push({ type: EntityType.tag, name: tkv, id: tkv });\r\n });\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.productCategories})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.service, EntityType.subscription, EntityType.region, EntityType.geography, EntityType.cloudProvider]);\r\n const segregationSupportedKeys = ref([PluralEntityType.services, PluralEntityType.meters]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getTagUsage', async () => {\r\n const { tagKeyValue } = p.value as ITagMetadataResult;\r\n const options: SpendUsageOptions = { ...spendOptions.value, tagKeyValue };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, usageResponse, options.costView);\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else if (!Array.isArray(spendOptions.value.segregateBy)) {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getTagUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, tagKeyValue: undefined };\r\n filterStore.setFilter(options);\r\n })\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore,\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=2525fa48&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"},scopedSlots:_vm._u([(_vm.filters.length > 1)?{key:\"extension\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true)},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getTagCO2e'),\"hide-search\":_vm.filters.length > 1},scopedSlots:_vm._u([{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}]),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getTagCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, onUnmounted, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, ITagMetadataResult } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n watch: {\r\n $route: {\r\n handler(url) {\r\n url.query.tagKeyValues?.split(',').forEach((tkv : string) => {\r\n this.filters.push({ type: EntityType.tag, name: tkv, id: tkv });\r\n });\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.products})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.service,\r\n EntityType.subscription,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.services,\r\n PluralEntityType.meters,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getTagCO2e\", async () => {\r\n const { tagKeyValue } = p.value as ITagMetadataResult;\r\n const options: SpendUsageOptions = { ...spendOptions.value, tagKeyValue };\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey),\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getTagCO2e\")) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, tagKeyValue: undefined };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=4e7393d6&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[(_vm.filters.length > 0)?_c('AdditionalFiltersNotSupported',{attrs:{\"filters\":_vm.filters,\"tag-key-value\":_vm.tagKeyValue}}):_vm._e(),_c('usage-comparison-options-toolbar',{attrs:{\"filters\":_vm.filters,\"loading\":_vm.$wait.is('loadSpendComparisons'),\"segregate-types\":['services', 'products']},on:{\"input\":function($event){return _vm.loadSpendComparisons()}},model:{value:(_vm.configuration),callback:function ($$v) {_vm.configuration=$$v},expression:\"configuration\"}}),(_vm.configuration.segregateBy === 'services')?_c('service-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):(_vm.configuration.segregateBy === 'products')?_c('product-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"border\":\"left\",\"colored-border\":\"\",\"type\":\"warning\",\"text\":\"\",\"dismissible\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_vm._v(\" Only showing trends for \"),_c('code',[_vm._v(_vm._s(_vm.tagKeyValue.tagKeyValue))]),_c('v-spacer'),_vm._v(\" Trends does not currently support additional filters \"),_c('code',[_vm._v(_vm._s(_vm.filterText))]),_c('v-spacer'),(_vm.showSupportEmail)?_c('span',[_vm._v(\" Use the support button to let us know if you would like to see this feature added \")]):_vm._e()],1),(_vm.showSupportEmail)?_c('v-col',{staticClass:\"shrink\"},[_c('v-btn',{attrs:{\"href\":`mailto:${_vm.supportEmail}?subject=Feature request: additional filters`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Support \")],1)],1):_vm._e()],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { computed, defineComponent, PropType } from 'vue';\r\nimport { ITagMetadataResult } from '@/models';\r\nimport { IChipViewModel } from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport Config from '@/lib/Config';\r\n\r\nexport default defineComponent({\r\n props: {\r\n filters: {\r\n type: Object as PropType,\r\n required: true\r\n },\r\n tagKeyValue: {\r\n type: Object as PropType,\r\n required: true\r\n }\r\n },\r\n setup(props) {\r\n const filterText = computed(() => {\r\n return props.filters.map((item: IChipViewModel) => item.id.split(\":\")[0]).join(\", \");\r\n })\r\n\r\n return {\r\n filterText,\r\n supportEmail: Config.get().SUPPORT_EMAIL,\r\n showSupportEmail: Config.isFeatureEnabled('ShowSupportButton') && Config.get().SUPPORT_EMAIL,\r\n };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AdditionalFiltersNotSupported.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AdditionalFiltersNotSupported.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AdditionalFiltersNotSupported.vue?vue&type=template&id=2774807a&\"\nimport script from \"./AdditionalFiltersNotSupported.vue?vue&type=script&lang=ts&\"\nexport * from \"./AdditionalFiltersNotSupported.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport ServiceComparisonsTable from '@/components/Domain.Services/ServiceComparisonsTable.vue';\r\nimport ProductComparisonsTable from '@/components/Domain.Products/ProductComparisonsTable.vue';\r\nimport UsageComparisonOptionsToolbar from '@/components/Domain.Usage/UsageComparisonOptionsToolbar.vue';\r\nimport { defineComponent, ref } from 'vue';\r\nimport { useTenantStore } from '../../stores/tenant';\r\nimport { EntityType, ITagMetadataResult } from '@/models';\r\nimport { IChipViewModel } from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport AdditionalFiltersNotSupported from '@/views/Dialog.Tag/AdditionalFiltersNotSupported.vue';\r\n\r\nexport default defineComponent({\r\n computed: {\r\n EntityType() {\r\n return EntityType\r\n }\r\n },\r\n components: { AdditionalFiltersNotSupported, ServiceComparisonsTable, ProductComparisonsTable, UsageComparisonOptionsToolbar },\r\n props: {\r\n value: Object,\r\n loading: Boolean,\r\n },\r\n setup(props) {\r\n const filters = ref([]);\r\n const comparisons = ref([]);\r\n const configuration = ref({ segregateBy: 'services', period: 'month', toDate: new Date() });\r\n const tagKeyValue = ref();\r\n const loadSpendComparisons = waitFor('loadSpendComparisons', async function loadSpendComparisonsFn() {\r\n if (!props.value) return;\r\n tagKeyValue.value = props.value as ITagMetadataResult;\r\n const params = {\r\n tagKeyValue: tagKeyValue.value.tagKeyValue,\r\n orderBy: 'delta',\r\n period: configuration.value.period,\r\n toDate: configuration.value.toDate.toISOString(),\r\n };\r\n const response = await ApiV2.http\r\n .get(`/api/cost-explorer/${configuration.value.segregateBy}`, { params })\r\n .then((r) => r.data);\r\n comparisons.value = response.entities;\r\n });\r\n const tenantStore = useTenantStore();\r\n\r\n return { comparisons, configuration, filters, loadSpendComparisons, tagKeyValue, tenantStore };\r\n },\r\n watch: {\r\n $route: {\r\n handler(url) {\r\n url.query.tagKeyValues?.split(',').forEach((tkv : string) => {\r\n this.filters.push({ type: EntityType.tag, name: tkv, id: tkv });\r\n });\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.loadSpendComparisons();\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Trends.vue?vue&type=template&id=4e9e9744&\"\nimport script from \"./Trends.vue?vue&type=script&lang=ts&\"\nexport * from \"./Trends.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showCloudAccountDialog),callback:function ($$v) {_vm.showCloudAccountDialog=$$v},expression:\"showCloudAccountDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedCloudAccount,\"loading\":_vm.$wait.is('loadingCloudAccount')},on:{\"input\":function($event){return Object.assign(_vm.selectedCloudAccount, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"cloudAccountDialog.cloudAccountNotFound\": \"We could not find reference to this cloud connection within this tenant.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=7eea4759&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"md\":\"8\",\"cols\":\"12\"}},[_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_c('cloud-provider-type-icon',{attrs:{\"left\":\"\",\"value\":_vm.value ? _vm.value.providerType : ''}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.name : '...')+\" \")],1),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.$t('views.dialogCloudAccount.accountType', { type: _vm.value ? _vm.value.type : '...' }))+\" \")])],1),_c('v-col',{attrs:{\"md\":\"4\",\"cols\":\"12\"}},[_c('cost-summary-widget',{attrs:{\"actual-total\":_vm.forecast.actualTotal,\"projected-total\":_vm.forecast.projectedTotal,\"past-total\":_vm.forecast.pastTotal,\"currency-code\":_vm.tenantStore.currencyCode,\"spend-limit\":_vm.value ? _vm.value.monthlySpendLimit : null}})],1)],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport CostSummaryWidget from '@/components/Domain.Usage/CostSummaryWidget.vue';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport moment from '@/lib/moment';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { defineComponent, computed, ref } from 'vue';\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n if (ctx.value) {\r\n return ctx.value.Name;\r\n } else {\r\n return ctx.$t('views.dialogCloudAccount.title');\r\n }\r\n },\r\n components: { CostSummaryWidget },\r\n props: {\r\n value: Object,\r\n loading: {\r\n default: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() => {\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n return [\r\n hasUsageDataset\r\n ? { key: 'usage', icon: 'insights', text: 'views.dialogCloudAccount.tabs.usage' }\r\n : null,\r\n hasEmissionsDataset\r\n ? { key: 'carbon', icon: 'co2', text: 'views.dialogCloudAccount.tabs.carbon' }\r\n : null,\r\n hasUsageDataset\r\n ? { key: 'trends', icon: 'compare_arrows', text: 'views.dialogCloudAccount.tabs.trends' }\r\n : null,\r\n { key: 'virtualtags', icon: 'sell', text: 'views.dialogCloudAccount.tabs.virtualtags' },\r\n { key: 'annotations', icon: 'forum', text: 'views.dialogCloudAccount.tabs.annotations' },\r\n hasUsageDataset\r\n ? { key: 'copies', icon: 'content_copy', text: 'views.dialogCloudAccount.tabs.copies' }\r\n : null,\r\n ].filter((t) => t);\r\n });\r\n const isEditingName = ref(false);\r\n const forecast = ref({\r\n actualTotal: 0,\r\n projectedTotal: 0,\r\n pastTotal: 0,\r\n });\r\n return { tab, tabs, tenantStore, isEditingName, forecast };\r\n },\r\n methods: {\r\n loadAccountProjections: waitFor('loadingAccountForecast', async function loadAccountProjections(id) {\r\n const toDate = moment.utc().endOf('month');\r\n const params = { toDate: toDate.format(), cloudAccountIds: [id].join(), granularity: 'Daily' };\r\n const response = await ApiV2.http\r\n .get('/api/forecast', { params })\r\n .catch((err) => {\r\n if (err.response.status === 400) return { data: {} };\r\n throw err;\r\n })\r\n .then((r) => r.data);\r\n const year = toDate.format('YYYY');\r\n const month = toDate.format('MM');\r\n const previousDate = moment.utc().subtract(1, 'months').endOf('month');\r\n const prevYear = previousDate.format('YYYY');\r\n const prevMonth = previousDate.format('MM');\r\n this.forecast.actualTotal = (response.monthlySpendTotals[year] || {})[month] || 0;\r\n this.forecast.projectedTotal =\r\n this.forecast.actualTotal + (response.monthlyForecastTotals[year] || {})[month] || 0;\r\n this.forecast.pastTotal = (response.monthlySpendTotals[prevYear] || {})[prevMonth] || 0;\r\n }),\r\n },\r\n watch: {\r\n value: {\r\n handler(val) {\r\n if (!val) return;\r\n this.loadAccountProjections(val.id);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=301f23b6&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"pt-5\"},[_c('cloud-account-copies-table',{attrs:{\"loading\":_vm.$wait.is('getAccountCopies'),\"items\":_vm.copies},scopedSlots:_vm._u([(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?{key:\"top\",fn:function(){return [_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"to\":`/copy/cloudaccounts/${_vm.value ? _vm.value.cloudAccountId : ''}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"content_copy\")]),_vm._v(\" \"+_vm._s(_vm.$t('dialogCloudAccount.copyCloudAccount'))+\" \")],1)],1)]},proxy:true}:null,{key:`item.Actions`,fn:function({ item }){return [_c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[(_vm.tenantStore.hasTenantFeature('CopyCloudAccount'))?_c('v-list-item',{attrs:{\"to\":`/copy/cloudaccounts/${_vm.value ? _vm.value.cloudAccountId : ''}?copy=${item.Id}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Edit Share \")])],1)],1):_vm._e(),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteCopy(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" Delete Share \")])],1)],1)],1)],1)]}}],null,true)}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"loading\":_vm.$wait.is('deletingCopy'),\"value\":_vm.copyToDelete,\"title\":_vm.$t('deleteCopyCard.title'),\"subtitle\":_vm.$t('deleteCopyCard.subtitle')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, clear, formId, loading }){return [_c('back-button',{on:{\"click\":close}}),_c('v-spacer'),_c('delete-cloud-account-copy-button',{attrs:{\"cloudAccountId\":_vm.value ? _vm.value.cloudAccountId : null,\"value\":_vm.copyToDelete,\"valid\":isValid,\"clear\":clear,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.getAccountCopies(_vm.value.cloudAccountId))}}})]}}],null,true)})]}}]),model:{value:(_vm.showDeleteCopy),callback:function ($$v) {_vm.showDeleteCopy=$$v},expression:\"showDeleteCopy\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"loading\":_vm.loading,\"headers\":_vm.headers,\"items\":_vm.tableEntities,\"item-key\":\"Id\",\"items-per-page\":_vm.itemsPerPage,\"sort-by\":_vm.sortedBy,\"sort-desc\":_vm.sortedDesc},on:{\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"update:sortBy\":function($event){_vm.sortedBy=$event},\"update:sort-by\":function($event){_vm.sortedBy=$event},\"update:sortDesc\":function($event){_vm.sortedDesc=$event},\"update:sort-desc\":function($event){_vm.sortedDesc=$event}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [_vm._t(\"top\")]},proxy:true},{key:`item.Actions`,fn:function({ item }){return [_vm._t(\"item.Actions\",null,{\"item\":item})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"cloudAccountCopiesTable.customerName\": \"Customer Name\",\r\n \"cloudAccountCopiesTable.sharedCloudAccountName\": \"Shared Cloud Connection Name\",\r\n \"cloudAccountCopiesTable.markupPercentage\": \"Markup Percentage\",\r\n \"cloudAccountCopiesTable.tagAllocations\": \"Tags\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudAccountCopiesTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudAccountCopiesTable.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudAccountCopiesTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloudAccountCopiesTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CloudAccountCopiesTable.vue?vue&type=template&id=caee0898&\"\nimport script from \"./CloudAccountCopiesTable.vue?vue&type=script&lang=js&\"\nexport * from \"./CloudAccountCopiesTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CloudAccountCopiesTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteCopyCard.title\": \"Delete Copy\",\r\n \"deleteCopyCard.subtitle\": \"Warning: This process is irreversible! The copy cloud connection data will be deleted permanently and you will need to re-copy your account if you want to see your data again.\",\r\n \"dialogCloudAccount.copyCloudAccount\": \"Share Cloud Connection\"\r\n } \r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Copies.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Copies.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Copies.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Copies.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Copies.vue?vue&type=template&id=37ab0b8c&\"\nimport script from \"./Copies.vue?vue&type=script&lang=js&\"\nexport * from \"./Copies.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Copies.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('add-annotation-dialog',{attrs:{\"cloudAccountId\":_vm.cloudAccountId},on:{\"http2xx\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.annotations.length > 0 && _vm.tenantStore.hasPermission('CanContribute')),expression:\"annotations.length > 0 && tenantStore.hasPermission('CanContribute')\"}],staticClass:\"ml-3\",attrs:{\"color\":\"secondary\",\"fab\":\"\",\"depressed\":\"\",\"small\":\"\"}},on),[_c('v-icon',[_vm._v(\"add\")])],1)]}}]),model:{value:(_vm.dialogs.isAddingAnnotation),callback:function ($$v) {_vm.$set(_vm.dialogs, \"isAddingAnnotation\", $$v)},expression:\"dialogs.isAddingAnnotation\"}})],1),_c('annotations-timeline',{attrs:{\"annotations\":_vm.annotations,\"cloudAccountId\":_vm.cloudAccountId,\"allowEdit\":true,\"loading\":_vm.loading || _vm.$wait.is(['getAnnotations'])},on:{\"onAnnotationChangeSuccess\":_vm.handleSuccessfulAnnotationChange},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"no-data\",fn:function(){return [_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.dialogs.isAddingAnnotation = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]},proxy:true}:null],null,true)}),(_vm.hasMore)?_c('div',{staticClass:\"text-center\"},[_c('v-btn',{staticClass:\"mt-2\",attrs:{\"small\":\"\",\"depressed\":\"\",\"text\":\"\"},on:{\"click\":function($event){return _vm.loadMore()}}},[_vm._v(\" \"+_vm._s(_vm.$t('annotations.loadMoreButton'))+\" \")])],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Annotations.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Annotations.vue?vue&type=template&id=d73246e8&\"\nimport script from \"./Annotations.vue?vue&type=script&lang=js&\"\nexport * from \"./Annotations.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getAccountUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),(_vm.showUnitToggle)?_c('SpendUsageUnitToggle',{attrs:{\"value\":_vm.unitOfDisplay},model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getAccountUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, onUnmounted, ref, watch } from 'vue';\r\nimport { getUsage, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, ICloudAccountModel, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageUnitToggle,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n computed: {\r\n showUnitToggle() {\r\n return this.filterStore.$state.options.segregateBy == PluralEntityType.meters;\r\n }\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.subscriptions})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.subscription,\r\n EntityType.service,\r\n EntityType.product,\r\n EntityType.tag,\r\n EntityType.region,\r\n EntityType.geography,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.productCategories,\r\n PluralEntityType.subscriptions,\r\n PluralEntityType.services,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getAccountUsage', async () => {\r\n const { cloudAccountId } = p.value as ICloudAccountModel;\r\n const options: SpendUsageOptions = { ...spendOptions.value, cloudAccountId };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getUsage(segregateBy, params),\r\n getForecast(params, options.dateRangeKey, options.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n \r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate;\r\n\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, usageResponse, options.costView);\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else if (!Array.isArray(spendOptions.value.segregateBy)) {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getAccountUsage')) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, cloudAccountId: undefined };\r\n filterStore.setFilter(options);\r\n })\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n maxDate,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n filterStore\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=f1ee4a44&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('usage-comparison-options-toolbar',{staticClass:\"mt-3\",attrs:{\"loading\":_vm.$wait.is('loadServiceComparisons'),\"segregate-types\":['services', 'products']},on:{\"input\":function($event){return _vm.loadServiceComparisons()}},model:{value:(_vm.configuration),callback:function ($$v) {_vm.configuration=$$v},expression:\"configuration\"}}),(_vm.configuration.segregateBy === 'services')?_c('service-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):(_vm.configuration.segregateBy === 'products')?_c('product-comparisons-table',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Trends.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Trends.vue?vue&type=template&id=52ef91dc&\"\nimport script from \"./Trends.vue?vue&type=script&lang=js&\"\nexport * from \"./Trends.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-alert',{staticClass:\"mt-3\",attrs:{\"border\":\"left\",\"text\":\"\",\"type\":\"warning\",\"elevation\":\"0\"}},[_vm._v(\" \"+_vm._s(_vm.$t('virtualTags.sourceDescription'))+\" \")]),_c('virtual-tag-table',{attrs:{\"loading\":_vm.$wait.is(['getCloudAccountVirtualTags', 'addCloudAccountVirtualTag']),\"items\":_vm.virtualTags},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid, formId, form, loading, reset }){return [_c('v-btn',{attrs:{\"color\":\"primary\",\"disabled\":!isValid || loading,\"loading\":loading,\"form\":formId,\"text\":\"\"},on:{\"click\":function($event){_vm.addCloudAccountVirtualTag(form).then(reset)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}},{key:\"item\",fn:function({ item }){return [_c('v-btn',{attrs:{\"text\":\"\",\"color\":\"error\",\"loading\":_vm.$wait.is('deleteCloudAccountVirtualTag')},on:{\"click\":function($event){return _vm.deleteCloudAccountVirtualTag(item)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"delete\")]),_vm._v(\" Drop \")],1)]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"virtualTags.sourceDescription\": \"Virtual tags are a stop gap solution that should be used sparingly. Best practices dictate tagging your consumption in the cloud vendor of choice instead. However, in the cases where historical spend has not been tagged properly you can use virtual tags to cover untracked spend.\",\r\n \"virtualTags.errorCreating\": \"There was an error creating this virtual tag. Please check that there are no conflicting tag keys already on this service.\",\r\n \"virtualTags.successCreating\": \"Your virtual tag has been successfully created. These rules will be applied during the next import at the end of the day.\",\r\n \"virtualTags.errorDeleting\": \"There was an error deleting this virtual tag. Please refresh this page and try again.\",\r\n \"virtualTags.successDeleting\": \"Your virtual tag has been successfully deleted for this period. This update in rules will be applied during the next import at the end of the day.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./VirtualTags.vue?vue&type=template&id=fce3c79c&\"\nimport script from \"./VirtualTags.vue?vue&type=script&lang=js&\"\nexport * from \"./VirtualTags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./VirtualTags.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getAccountCO2e')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.tableItems,\"loading\":_vm.wait.is('getAccountCO2e'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from \"@/stores\";\r\nimport CarbonBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n ReverseLookup,\r\n IClickEvent,\r\n} from \"@/components/Domain.Carbon/CarbonBarChart.vue\";\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from \"@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue\";\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from \"@/components/Domain.Usage/UsageFilterChips.vue\";\r\nimport CarbonTable, {\r\n convertToItemRecords,\r\n ICarbonTableRecordsViewModel,\r\n} from \"@/components/Domain.Carbon/CarbonTable.vue\";\r\nimport { toastError } from \"@/components/Common/Toast.vue\";\r\nimport { defineComponent, onUnmounted, ref, watch } from \"vue\";\r\nimport { getCO2e, getForecastCO2e } from \"@/lib/Api\";\r\nimport { fromPlural } from \"@/models/EntityType\";\r\nimport { EntityType, PluralEntityType, ICloudAccountModel } from \"@/models\";\r\nimport { i18n } from \"@/i18n\";\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n CarbonTable,\r\n CarbonBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.products})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const tableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.subscription,\r\n EntityType.service,\r\n EntityType.product,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.products,\r\n PluralEntityType.subscriptions,\r\n PluralEntityType.services,\r\n ]);\r\n\r\n let reverseLookup: ReverseLookup | null = null;\r\n const loadTabUsage = async () =>\r\n await whilst(\"getAccountCO2e\", async () => {\r\n const { cloudAccountId } = p.value as ICloudAccountModel;\r\n const options: SpendUsageOptions = { ...spendOptions.value, cloudAccountId };\r\n const segregateBy = options.segregateBy as PluralEntityType;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [carbonResponse, forecastResponse] = await Promise.all([\r\n getCO2e(segregateBy, params),\r\n getForecastCO2e(params, options.dateRangeKey)\r\n ]);\r\n const [usageDataset, datasetIndexes] = convertCO2eResponseToDatasets(\r\n carbonResponse\r\n );\r\n reverseLookup = datasetIndexes;\r\n const forecastDataset = convertProjectionsResponseToDataset(forecastResponse);\r\n newChartData.value = {\r\n labels: [...usageDataset.labels, ...forecastDataset.labels],\r\n datasets: [...usageDataset.datasets, ...forecastDataset.datasets],\r\n };\r\n maxDate.value = forecastResponse?.maxUsageDate || params.toDate;\r\n tableItems.value = convertToItemRecords(params, carbonResponse);\r\n });\r\n\r\n const handleDatasetClicked = ({ index, isOther, name }: IClickEvent) => {\r\n const datasetGroupId = reverseLookup[index];\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t(\"shared.meterInformationNotSupported\"));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is(\"getAccountCO2e\")) return;\r\n filterStore.setFilter(spendOptions.value);\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n onUnmounted(() => {\r\n const options: SpendUsageOptions = { ...spendOptions.value, cloudAccountId: undefined };\r\n filterStore.setFilter(options);\r\n });\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n tableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Carbon.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Carbon.vue?vue&type=template&id=70e77308&\"\nimport script from \"./Carbon.vue?vue&type=script&lang=ts&\"\nexport * from \"./Carbon.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showDialog),callback:function ($$v) {_vm.showDialog=$$v},expression:\"showDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedEntity,\"loading\":_vm.$wait.is('loadingEntity')},on:{\"input\":function($event){return Object.assign(_vm.selectedEntity, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"reservationDialog.reservationsNotFound\": \"There is no reference to this reservation currently. This may happen in rare circumstances, please check back in a few minutes.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=34d3e50d&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=js&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{attrs:{\"md\":\"8\",\"cols\":\"12\"}},[_c('v-card-title',{staticClass:\"mb-4 pb-0\"},[_c('entity-type-icon',{attrs:{\"left\":\"\",\"value\":\"Reservation\"}}),_vm._v(\" \"+_vm._s(_vm.value ? _vm.value.commitmentId : '...')+\" \")],1),(_vm.value)?_c('v-card-subtitle',{staticClass:\"my-0 pt-0 pb-2\"},[_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('cloud-provider-type-icon',{attrs:{\"size\":\"20\",\"left\":\"\",\"value\":_vm.value.cloudProviderType}}),_vm._v(\" Connection: \"+_vm._s(_vm.value.cloudAccountName)+\" \")],1),(_vm.value && _vm.value.scope)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"store\")]),_vm._v(\" Scope: \"+_vm._s(_vm.value.scope)+\" \")],1):_vm._e(),(_vm.value && _vm.value.paymentOption)?_c('v-chip',{staticClass:\"mr-1\",attrs:{\"outlined\":\"\",\"label\":\"\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"credit_card\")]),_vm._v(\" Payment: \"+_vm._s(_vm.value.paymentOption)+\" \")],1):_vm._e()],1):_vm._e()],1)],1),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-badge',{attrs:{\"color\":\"secondary\",\"dot\":\"\",\"value\":tab.key === 'annotations' && _vm.value && _vm.value.annotationCount > 0}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { defineComponent, computed } from 'vue';\r\n\r\nexport default defineComponent({\r\n props: {\r\n me: Object,\r\n value: Object,\r\n loading: {\r\n default: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup() {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() =>\r\n [\r\n { key: 'usage', icon: 'insights', text: 'views.dialogReservation.tabs.usage' },\r\n ].filter((t) => t)\r\n );\r\n return { tab, tabs, tenantStore };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=9c5f9e46&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getUsage'),\"hide-search\":\"\"},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs, useFilterStore } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n CostView,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { getUsage } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport { EntityType, PluralEntityType, ISpendUsageTableRecordsViewModel } from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\n\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const filterStore = useFilterStore();\r\n filterStore.setFilter({segregateBy: PluralEntityType.services, costView: CostView.Utilized})\r\n const spendOptions = ref(filterStore.options);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([EntityType.meter, EntityType.product]);\r\n const segregationSupportedKeys = ref([PluralEntityType.meters, PluralEntityType.products]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getServiceUsage', async () => {\r\n const { reservationId } = p.value;\r\n const options: SpendUsageOptions = { ...spendOptions.value, reservationId };\r\n if (Array.isArray(options.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = options.segregateBy;\r\n let params = convertSpendOptionsToQuery(options);\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const usageResponse = await getUsage(segregateBy, params);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, {\r\n reportType: UsageReportTypes.charges,\r\n }); \r\n newChartData.value = {\r\n labels: [...usageDataset.labels],\r\n datasets: [...usageDataset.datasets],\r\n };\r\n maxDate.value = usageResponse.maxDate || params.toDate\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n options.costView\r\n );\r\n });\r\n\r\n const handleDatasetClicked = ({ datasetGroupId, isOther, name }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getUsage')) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n unitOfDisplay,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=165b7c95&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"value\":true,\"no-click-animation\":\"\",\"persistent\":\"\",\"max-width\":\"400\",\"scrollable\":\"\",\"hide-overlay\":\"\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly}},[_c('form-card',{attrs:{\"title\":\"AWS Marketplace\",\"subtitle\":\"Welcome from the AWS Marketplace!\",\"loading\":_vm.loading}},[(!_vm.isAuthenticated)?_c('v-alert',{attrs:{\"text\":\"\"}},[_vm._v(\" We have received a request to manage a CloudCtrl x AWS Marketplace subscription on your behalf. To continue you will need to authenticate with CloudCtrl first. \"),_c('br'),_c('br'),_vm._v(\" If you already have a CloudCtrl account you can login, otherwise please register below: \"),_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"info\",\"block\":\"\"},on:{\"click\":function($event){return _vm.startLogin()}}},[_vm._v(\" Login \")]),_c('v-btn',{staticClass:\"mt-2\",attrs:{\"color\":\"info\",\"block\":\"\"},on:{\"click\":function($event){return _vm.startRegister()}}},[_vm._v(\" Register \")])],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Auth0Client } from '@auth0/auth0-spa-js';\r\nimport Config from '@/lib/Config';\r\n\r\nconst config = Config.get();\r\n\r\nconst instance = new Auth0Client({\r\n domain: config.AUTH0_DOMAIN,\r\n clientId: config.AUTH0_CLIENTID,\r\n authorizationParams: {\r\n audience: config.AUTH0_AUDIENCE,\r\n redirect_uri: window.location.origin\r\n }\r\n});\r\n\r\nconst initialize = async ({ onRedirectCallback }: { onRedirectCallback: (returnTo: string) => void }) => {\r\n if (window.location.search.includes('code=') && window.location.search.includes('state=')) {\r\n const { appState } = await instance.handleRedirectCallback();\r\n onRedirectCallback(appState?.returnTo || window.location.pathname);\r\n }\r\n\r\n if (!await instance.isAuthenticated()) {\r\n await loginWithRedirect({});\r\n }\r\n}\r\n\r\nconst loginWithRedirect = async (options: any) => {\r\n await instance.loginWithRedirect({ appState: { returnTo: window.location.pathname }, ...options });\r\n}\r\n\r\nconst getTokenSilently = async () => {\r\n try {\r\n return await instance.getTokenSilently();\r\n } catch (error) {\r\n instance.loginWithRedirect({});\r\n }\r\n}\r\n\r\nconst isAuthenticated = async () => {\r\n return await instance.isAuthenticated();\r\n}\r\n\r\nconst logoutWithRedirect = async () => {\r\n await instance.logout({ logoutParams: { returnTo: window.location.origin }});\r\n}\r\n\r\nconst getUser = () => {\r\n return instance.getUser();\r\n}\r\n\r\nexport default {\r\n instance,\r\n initialize,\r\n isAuthenticated,\r\n getTokenSilently,\r\n getUser,\r\n loginWithRedirect,\r\n logoutWithRedirect\r\n};","import { PublicClientApplication, LogLevel, InteractionRequiredAuthError } from '@azure/msal-browser';\r\nimport Config from '@/lib/Config';\r\n\r\nconst config = Config.get();\r\n\r\nconst scopes = ['user.read'];\r\n\r\nconst loginRequest = { scopes };\r\n\r\nconst msalConfig = {\r\n auth: {\r\n clientId: config.MSAL_CLIENTID,\r\n authority: config.MSAL_AUTHORITY,\r\n redirectUri: window.location.origin,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: false,\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback: (level, message, containsPii) => {\r\n if (containsPii) {\r\n return;\r\n }\r\n switch (level) {\r\n case LogLevel.Error:\r\n console.error(message);\r\n return;\r\n case LogLevel.Info:\r\n console.info(message);\r\n return;\r\n case LogLevel.Verbose:\r\n console.debug(message);\r\n return;\r\n case LogLevel.Warning:\r\n console.warn(message);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst instance = new PublicClientApplication(msalConfig);\r\n\r\nconst initialize = async ({ onRedirectCallback }: { onRedirectCallback: (returnTo: string) => void }) => {\r\n await instance.initialize();\r\n\r\n await instance.handleRedirectPromise();\r\n await loginWithRedirect({});\r\n\r\n onRedirectCallback(null)\r\n}\r\n\r\nconst loginWithRedirect = async (options: any) => {\r\n const accounts = instance.getAllAccounts();\r\n if (accounts.length === 0) {\r\n instance.loginRedirect({ ...loginRequest, ...options });\r\n } else {\r\n instance.setActiveAccount(accounts[0]);\r\n }\r\n}\r\n\r\nconst getTokenSilently = async () => {\r\n try {\r\n const response = await instance.acquireTokenSilent(loginRequest);\r\n return response.idToken;\r\n } catch (error) {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n instance.loginRedirect(loginRequest);\r\n }\r\n }\r\n}\r\n\r\nconst isAuthenticated = async () => {\r\n return instance.getActiveAccount() != null;\r\n}\r\n\r\nconst logoutWithRedirect = async () => {\r\n const account = instance.getActiveAccount();\r\n if (account) {\r\n await instance.logoutRedirect({ account, postLogoutRedirectUri: window.location.origin });\r\n } else {\r\n console.warn('No active account found. Cannot log out.');\r\n }\r\n}\r\n\r\nconst getUser = async () => {\r\n const account = instance.getActiveAccount();\r\n if (account) {\r\n return { \r\n name: account.name,\r\n email: account.username,\r\n };\r\n }\r\n}\r\n\r\nexport default {\r\n instance,\r\n initialize,\r\n isAuthenticated,\r\n getTokenSilently,\r\n getUser,\r\n loginWithRedirect,\r\n logoutWithRedirect\r\n};\r\n","import auth0Client from \"./auth0\";\r\nimport msalClient from \"./msal\";\r\nimport Config from '@/lib/Config';\r\nimport Vue from 'vue';\r\nimport { PublicClientApplication } from '@azure/msal-browser';\r\nimport { Auth0Client } from '@auth0/auth0-spa-js';\r\n\r\nconst DEFAULT_REDIRECT_CALLBACK = s => window.history.replaceState({}, document.title, window.location.pathname);\r\n\r\nconst client =\r\n Config.isFeatureEnabled('UseMsalAuthentication') ? msalClient : auth0Client;\r\n\r\nexport interface IAuthVue {\r\n getTokenSilently(): Promise;\r\n loginWithRedirect(o: any): Promise;\r\n logoutWithRedirect(): Promise;\r\n}\r\n\r\nexport interface IAuthVueData {\r\n loading: boolean;\r\n isAuthenticated: boolean;\r\n user: Record;\r\n client: null | Auth0Client | PublicClientApplication;\r\n error: null | Error;\r\n}\r\n\r\nlet instance: Vue & IAuthVue & IAuthVueData | null = null;\r\n\r\nexport const getInstance = () => instance;\r\n\r\nexport const useAuth = ({\r\n onRedirectCallback = DEFAULT_REDIRECT_CALLBACK\r\n}) => {\r\n if (instance) return instance;\r\n\r\n instance = new Vue({\r\n data(): IAuthVueData {\r\n return {\r\n loading: true,\r\n isAuthenticated: false,\r\n user: {},\r\n client: null,\r\n error: null\r\n };\r\n },\r\n methods: {\r\n getTokenSilently: () => client.getTokenSilently(),\r\n loginWithRedirect: (options: any) => client.loginWithRedirect(options),\r\n logoutWithRedirect: () => client.logoutWithRedirect()\r\n },\r\n /** Use this lifecycle method to instantiate the SDK client */\r\n async created() {\r\n try {\r\n this.client = client;\r\n await client.initialize({ onRedirectCallback });\r\n } catch (error) {\r\n this.error = error;\r\n } finally {\r\n this.isAuthenticated = await client.isAuthenticated();\r\n this.user = await client.getUser();\r\n this.loading = false;\r\n }\r\n }\r\n });\r\n \r\n return instance;\r\n}\r\n\r\nexport const AuthPlugin = {\r\n install(vue, options) {\r\n vue.prototype.$auth = useAuth(options);\r\n }\r\n};","\r\nimport { defineComponent } from 'vue';\r\nimport Config from '@/lib/Config';\r\nimport AuthClient from '@/lib/Auth';\r\nimport { getInstance } from '@/plugins/auth';\r\nexport default defineComponent({\r\n data: () => ({\r\n isAuthenticated: false,\r\n loading: false,\r\n supportEmail: Config.get().SUPPORT_EMAIL,\r\n }),\r\n methods: {\r\n async startLogin() {\r\n const auth = getInstance();\r\n await auth.loginWithRedirect({\r\n provider: ''\r\n });\r\n },\r\n async startRegister() {\r\n const auth = getInstance();\r\n await auth.loginWithRedirect({\r\n provider: '',\r\n screen_hint: 'signup'\r\n });\r\n },\r\n },\r\n watch: {\r\n $route: {\r\n immediate: true,\r\n deep: true,\r\n async handler(route) {\r\n this.isAuthenticated = AuthClient.isAuthenticated;\r\n localStorage.setItem('aws-marketplace-token', route.query.token);\r\n\r\n if (this.isAuthenticated) {\r\n await this.$router.push('/choose');\r\n } else {\r\n AuthClient.tenantId = null;\r\n }\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AWSMarketplace.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AWSMarketplace.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AWSMarketplace.vue?vue&type=template&id=26b7c959&\"\nimport script from \"./AWSMarketplace.vue?vue&type=script&lang=ts&\"\nexport * from \"./AWSMarketplace.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('page-header',{attrs:{\"title\":_vm.$t('copyCloudAccount.index.title', { cloudAccountName: _vm.cloudAccountName }),\"icon\":\"content_copy\"}}),_c('v-stepper',{staticClass:\"elevation-0\",model:{value:(_vm.currentStep),callback:function ($$v) {_vm.currentStep=$$v},expression:\"currentStep\"}},[_c('v-stepper-header',_vm._l((['chooseTenant', 'pricing', 'filters', 'finish']),function(val,i){return _c('fragment',{key:i},[_c('v-stepper-step',{attrs:{\"complete\":_vm.currentStep > i + 1,\"step\":i + 1,\"color\":\"secondary\"}},[_vm._v(_vm._s(_vm.$t(`copyCloudAccount.steps.${val}`)))]),_c('v-divider')],1)}),1),_c('v-container',[_c('v-container',[_c('router-view',{attrs:{\"cloudAccount\":_vm.cloudAccount,\"cloudAccounts\":_vm.cloudAccounts,\"tenants\":_vm.tenants,\"editing\":_vm.editing,\"loading\":_vm.$wait.is(['loadingCopyConfiguration', 'loadingCloudAccounts', 'loadingTenants'])},on:{\"changeCloudAccountId\":function($event){return _vm.changeCloudAccount($event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ isValid }){return [_c('back-button',{attrs:{\"route\":\"\"}}),_c('v-spacer'),(_vm.currentStep !== 4)?_c('v-btn',{attrs:{\"disabled\":!isValid,\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.$router.push(_vm.nextStepRoute)}}},[_vm._v(\" Continue \")]):_c('v-btn',{attrs:{\"disabled\":!isValid || _vm.$wait.is('submittingCopyCloudAccount'),\"loading\":_vm.$wait.is('submittingCopyCloudAccount'),\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.submitConfiguration()}}},[_vm._v(\" Submit \")])]}}]),model:{value:(_vm.copyConfiguration),callback:function ($$v) {_vm.copyConfiguration=$$v},expression:\"copyConfiguration\"}})],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"copyCloudAccount.index.title\": \"Sharing {cloudAccountName}\",\r\n \"copyCloudAccount.steps.chooseTenant\": \"Share Details\",\r\n \"copyCloudAccount.steps.pricing\": \"Pricing\",\r\n \"copyCloudAccount.steps.filters\": \"Filters\",\r\n \"copyCloudAccount.steps.finish\": \"Finish\",\r\n \"copyCloudAccount.success.added\": \"Shared cloud connection into customer\",\r\n \"copyCloudAccount.success.updated\": \"Updated shared cloud connection rules\"\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=33a860a9&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":_vm.$t('copyCloudAccount.chooseTenant.title'),\"caption\":_vm.$t('copyCloudAccount.chooseTenant.caption'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"default\",null,{\"isValid\":_vm.value.tenant.id && _vm.cloudAccount})]},proxy:true}],null,true)},[_c('v-select',{attrs:{\"value\":_vm.cloudAccount ? _vm.cloudAccount.id : null,\"items\":_vm.cloudAccounts,\"disabled\":_vm.editing,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":\"Cloud Connection\"},on:{\"input\":function($event){return _vm.$emit('changeCloudAccountId', $event)}}}),_c('v-checkbox',{attrs:{\"label\":_vm.$t('copyCloudAccount.chooseTenant.share')},model:{value:(_vm.value.shareParentConnection),callback:function ($$v) {_vm.$set(_vm.value, \"shareParentConnection\", $$v)},expression:\"value.shareParentConnection\"}}),_c('v-select',{attrs:{\"value\":_vm.value.tenant.id,\"items\":_vm.tenants,\"disabled\":_vm.editing,\"item-value\":\"tenantId\",\"item-text\":\"tenantName\",\"label\":\"Customer\"},on:{\"input\":function($event){return _vm.$emit('input', { ..._vm.value, tenant: { ..._vm.value.tenant, id: $event } })}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"copyCloudAccount.chooseTenant.title\": \"Sharing\",\r\n \"copyCloudAccount.chooseTenant.caption\": \"Choose the cloud connection to copy into which customer.\",\r\n \"copyCloudAccount.chooseTenant.share\": \"Share cloud connection credentials for enhanced services e.g. Recommendations and reservations.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenant.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenant.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenant.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChooseTenant.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ChooseTenant.vue?vue&type=template&id=6891b377&\"\nimport script from \"./ChooseTenant.vue?vue&type=script&lang=js&\"\nexport * from \"./ChooseTenant.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ChooseTenant.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":_vm.$t('copyCloudAccount.finish.title'),\"caption\":_vm.$t('copyCloudAccount.finish.caption'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"default\",null,{\"isValid\":!!_vm.value.name})]},proxy:true}],null,true)},[_c('v-text-field',{attrs:{\"value\":_vm.value.name,\"label\":_vm.$t('copyCloudAccount.finish.name.label')},on:{\"input\":function($event){return _vm.$emit('input', { ..._vm.value, name: $event })}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"copyCloudAccount.finish.title\": \"Finish\",\r\n \"copyCloudAccount.finish.caption\": \"Finally what would you like to call the shared cloud connection.\",\r\n \"copyCloudAccount.finish.name.label\": \"Shared cloud connection name\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finish.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finish.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finish.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Finish.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Finish.vue?vue&type=template&id=53b4a53f&\"\nimport script from \"./Finish.vue?vue&type=script&lang=js&\"\nexport * from \"./Finish.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Finish.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":_vm.$t('copyCloudAccount.pricing.title'),\"caption\":_vm.$t('copyCloudAccount.pricing.caption'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"default\",null,{\"isValid\":!(_vm.absoluteMarkupCheck && _vm.value.rules.currentMarkup === null)})]},proxy:true}],null,true)},[_c('v-form',[_c('v-container',{attrs:{\"fluid\":\"\",\"wrap\":\"\"}},[_c('v-skeleton-loader',{attrs:{\"loading\":_vm.loading,\"type\":\"list-item@6\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('fragment',[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-checkbox',{model:{value:(_vm.value.useTenantCurrencies),callback:function ($$v) {_vm.$set(_vm.value, \"useTenantCurrencies\", $$v)},expression:\"value.useTenantCurrencies\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('span',{staticStyle:{\"line-height\":\"63px !important\"}},[_vm._v(_vm._s(_vm.$t('copyCloudAccount.pricing.useTenantCurrencies')))])])],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}},[(_vm.prices.length === 1)?_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('div',_vm._g({},on),[_c('v-checkbox',{attrs:{\"disabled\":\"\"},model:{value:(_vm.editSelectedPrice),callback:function ($$v) {_vm.editSelectedPrice=$$v},expression:\"editSelectedPrice\"}})],1)]}}],null,false,29335597)},[_c('span',[_vm._v(_vm._s(_vm.$t('copyCloudAccount.pricing.baseCostOnly')))])]):_c('v-checkbox',{model:{value:(_vm.editSelectedPrice),callback:function ($$v) {_vm.editSelectedPrice=$$v},expression:\"editSelectedPrice\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-select',{attrs:{\"items\":_vm.prices,\"item-value\":\"id\",\"item-text\":\"name\",\"label\":_vm.$t('copyCloudAccount.pricing.initialPrice'),\"disabled\":!_vm.editSelectedPrice},on:{\"input\":function($event){return _vm.$emit('input', { ..._vm.value, rules: { ..._vm.value.rules, origin: $event } })}},model:{value:(_vm.value.rules.origin),callback:function ($$v) {_vm.$set(_vm.value.rules, \"origin\", $$v)},expression:\"value.rules.origin\"}})],1)],1),(_vm.isActionsEnabled)?_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-checkbox',{model:{value:(_vm.setScriptId),callback:function ($$v) {_vm.setScriptId=$$v},expression:\"setScriptId\"}})],1),_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('v-select',{attrs:{\"items\":_vm.scripts,\"item-value\":\"actionId\",\"item-text\":\"actionName\",\"label\":\"Action\",\"disabled\":!_vm.setScriptId},on:{\"input\":function($event){return _vm.$emit('input', { ..._vm.value, scriptId: $event })}},model:{value:(_vm.scriptId),callback:function ($$v) {_vm.scriptId=$$v},expression:\"scriptId\"}})],1)],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-checkbox',{model:{value:(_vm.absoluteMarkupCheck),callback:function ($$v) {_vm.absoluteMarkupCheck=$$v},expression:\"absoluteMarkupCheck\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"disabled\":!_vm.absoluteMarkupCheck,\"type\":\"number\",\"label\":_vm.$t('copyCloudAccount.pricing.markupPercent')},on:{\"input\":function($event){return _vm.$emit('input', {\n ..._vm.value,\n rules: { ..._vm.value.rules, markupPercentage: $event },\n })}},model:{value:(_vm.value.rules.currentMarkup.markupPercentage),callback:function ($$v) {_vm.$set(_vm.value.rules.currentMarkup, \"markupPercentage\", $$v)},expression:\"value.rules.currentMarkup.markupPercentage\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('copyCloudAccount.pricing.effectiveFrom'),\"outlined\":\"\",\"noTitle\":true,\"type\":\"month\",\"disabled\":!_vm.absoluteMarkupCheck ||\n !(_vm.value.rules.currentMarkup && _vm.value.rules.currentMarkup.id == -1)},model:{value:(_vm.value.rules.currentMarkup.effectiveFromDate),callback:function ($$v) {_vm.$set(_vm.value.rules.currentMarkup, \"effectiveFromDate\", $$v)},expression:\"value.rules.currentMarkup.effectiveFromDate\"}})],1)],1),_vm._l((_vm.value.rules.futureMarkups),function(markup,i){return _c('v-row',{key:i},[_c('v-col',{attrs:{\"cols\":\"1\"}}),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-text-field',{attrs:{\"disabled\":!_vm.absoluteMarkupCheck,\"type\":\"number\",\"label\":_vm.$t('copyCloudAccount.pricing.markupPercent')},on:{\"input\":function($event){return _vm.$emit('input', {\n ..._vm.value,\n rules: { ..._vm.value.rules, markupPercentage: $event },\n })}},model:{value:(markup.markupPercentage),callback:function ($$v) {_vm.$set(markup, \"markupPercentage\", $$v)},expression:\"markup.markupPercentage\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('copyCloudAccount.pricing.effectiveFrom'),\"outlined\":\"\",\"noTitle\":true,\"type\":\"month\",\"disabled\":!_vm.absoluteMarkupCheck,\"min\":_vm.lastMonthString},model:{value:(markup.effectiveFromDate),callback:function ($$v) {_vm.$set(markup, \"effectiveFromDate\", $$v)},expression:\"markup.effectiveFromDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"1\"}},[_c('v-btn',{staticClass:\"mt-3\",attrs:{\"icon\":\"\",\"color\":\"error\"},on:{\"click\":function($event){return _vm.deleteMarkup(markup, i)}}},[_c('v-icon',[_vm._v(\"close\")])],1)],1)],1)}),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"text\":\"\",\"block\":\"\",\"disabled\":!_vm.absoluteMarkupCheck},on:{\"click\":function($event){return _vm.addNewMarkup()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" \"+_vm._s(_vm.$t('copyCloudAccount.pricing.newMarkup'))+\" \")],1)],1)],1)],2)]},proxy:true}])})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport moment from '@/lib/moment';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport Config from '@/lib/Config';\r\nconst isCloudAccountActionsEnabled = Config.isFeatureEnabled('CloudAccountActions');\r\nimport { useTenantStore } from '../../stores/tenant';\r\nimport { mapStores } from 'pinia';\r\n\r\nexport default {\r\n props: {\r\n value: Object,\r\n cloudAccount: Object,\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n },\r\n },\r\n data() {\r\n return {\r\n editSelectedPrice: false,\r\n absoluteMarkupCheck: false,\r\n lastMonth: moment.utc().startOf('month').subtract(1, 'months').toDate(),\r\n lastMonthString: moment.utc().startOf('month').subtract(1, 'months').toISOString(),\r\n nextMonth: moment.utc().startOf('month').add(1, 'months').toDate(),\r\n setScriptId: false,\r\n scriptId: null,\r\n scripts: [],\r\n };\r\n },\r\n created() {\r\n this.getActions();\r\n },\r\n methods: {\r\n addNewMarkup() {\r\n if (!this.value || !this.value.rules.futureMarkups) return;\r\n const maxDate =\r\n this.value.rules.futureMarkups.length > 0\r\n ? new Date(\r\n Math.max(\r\n ...this.value.rules.futureMarkups.map((el) => {\r\n return new Date(el.effectiveFromDate);\r\n })\r\n )\r\n )\r\n : this.nextMonth;\r\n this.value.rules.futureMarkups.push({\r\n id: -1,\r\n markupPercentage: this.value.rules.currentMarkup.markupPercentage,\r\n effectiveFromDate:\r\n this.value.rules.futureMarkups.length > 0\r\n ? moment(maxDate).add(1, 'months').toDate()\r\n : this.nextMonth,\r\n });\r\n this.$emit('input', this.value);\r\n },\r\n deleteMarkup(markup, index) {\r\n if (!this.value || !this.value.rules.futureMarkups) return;\r\n this.value.rules.futureMarkups = this.value.rules.futureMarkups.filter((_, i) => i !== index);\r\n this.$emit('input', this.value);\r\n },\r\n getActions: waitFor('gettingActionScripts', async function () {\r\n this.scripts = await ApiV2.http.get('/api/actions').then((r) => r.data);\r\n }),\r\n },\r\n watch: {\r\n value: {\r\n handler() {\r\n if (!this.value || !this.value.tenant.id) {\r\n this.absoluteMarkupCheck = false;\r\n } else {\r\n const rules = this.value.rules;\r\n this.absoluteMarkupCheck =\r\n this.absoluteMarkupCheck || (rules.currentMarkup !== null && rules.currentMarkup.id);\r\n this.editSelectedPrice = this.editSelectedPrice || rules.origin != null;\r\n if (!this.value.rules.currentMarkup) this.value.rules.currentMarkup = {};\r\n if (this.absoluteMarkupCheck && rules.currentMarkup !== null && !rules.currentMarkup.id) {\r\n rules.currentMarkup.id = -1;\r\n }\r\n this.scriptId = this.value.scriptId;\r\n this.setScriptId = !!this.value.scriptId;\r\n }\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n absoluteMarkupCheck(val) {\r\n this.value.rules.absoluteMarkupCheck = val;\r\n },\r\n editSelectedPrice(val) {\r\n if (!val && this.value.rules) this.value.rules.origin = null;\r\n },\r\n },\r\n computed: {\r\n prices() {\r\n const prices = [{ id: null, name: 'Base Cost' }];\r\n if (this.cloudAccount && this.cloudAccount.pricingOrigin) {\r\n this.cloudAccount.pricingOrigin.forEach((origin) => {\r\n prices.push({ id: origin, name: origin });\r\n });\r\n }\r\n return prices;\r\n },\r\n isActionsEnabled() {\r\n return isCloudAccountActionsEnabled && this.tenantStore.hasTenantFeature('CloudAccountActions');\r\n },\r\n ...mapStores(useTenantStore),\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PricingRules.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PricingRules.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PricingRules.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PricingRules.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PricingRules.vue?vue&type=template&id=64d4ea85&\"\nimport script from \"./PricingRules.vue?vue&type=script&lang=ts&\"\nexport * from \"./PricingRules.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PricingRules.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('content-card',{attrs:{\"title\":_vm.$t('copyCloudAccount.tags.title'),\"caption\":_vm.$t('copyCloudAccount.tags.caption'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"default\",null,{\"isValid\":_vm.tags.valid})]},proxy:true}],null,true)},[_c('tag-form',{attrs:{\"loading\":_vm.$wait.is('loadingTags')},model:{value:(_vm.tags),callback:function ($$v) {_vm.tags=$$v},expression:\"tags\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"copyCloudAccount.tags.title\": \"Filter by Tags\",\r\n \"copyCloudAccount.tags.caption\": \"You may optionally filter the usage in the copied cloud connection to only include spend, services or subscriptions with the given tags. The evaluation of these tags is an OR, i.e. if any of these tag conditions are met copy.\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tags.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tags.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tags.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Tags.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Tags.vue?vue&type=template&id=1bbe2c91&\"\nimport script from \"./Tags.vue?vue&type=script&lang=js&\"\nexport * from \"./Tags.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Tags.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"fill-height text-center\"},[_c('v-row',[_c('v-col',[_c('header',{staticClass:\"text-h3\"},[_vm._v(_vm._s(_vm.$t('notFound.title')))]),_c('p',[_vm._v(_vm._s(_vm.$t('notFound.message')))]),_c('v-btn',{attrs:{\"outlined\":\"\"}},[_c('router-link',{attrs:{\"to\":\"/overview\"}},[_vm._v(_vm._s(_vm.$t('notFound.back')))])],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=29bc3520&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NotFound.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"1200\",\"scrollable\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},on:{\"input\":_vm.tryCloseDialog},model:{value:(_vm.showCustomViewDialog),callback:function ($$v) {_vm.showCustomViewDialog=$$v},expression:\"showCustomViewDialog\"}},[_c('router-view',{attrs:{\"value\":_vm.selectedCustomView,\"loading\":_vm.$wait.is('loadingCustomView')},on:{\"input\":function($event){return Object.assign(_vm.selectedCustomView, $event)}}},[_c('back-button',{on:{\"click\":function($event){return _vm.tryCloseDialog(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from 'vue';\r\nimport { getCustomView } from '@/lib/Api';\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nexport default defineComponent({\r\n data() {\r\n return {\r\n showCustomViewDialog: false,\r\n showCustomViewId: null,\r\n selectedCustomView: null,\r\n };\r\n },\r\n methods: {\r\n tryCloseDialog(isOpen) {\r\n if (!isOpen) {\r\n this.showCustomViewDialog = false;\r\n this.showCustomViewId = null;\r\n this.selectedCustomView = null;\r\n }\r\n this.$emit('input', isOpen);\r\n },\r\n loadCustomViewDetail: waitFor('loadingCustomView', async function (id:string) {\r\n try {\r\n this.selectedCustomView = await getCustomView(id);\r\n this.$title = this.selectedCustomView.name;\r\n } catch (err) {\r\n toastError(this.$t('customViewDialog.customViewNotFound'));\r\n this.tryCloseDialog(false);\r\n }\r\n }),\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (this.showCustomViewId === to.params.customViewId) return;\r\n this.showCustomViewId = to.params.customViewId || null;\r\n this.showCustomViewDialog = !!this.showCustomViewId;\r\n if (this.selectedCustomView && this.selectedCustomView.Id === this.showCustomViewId) return;\r\n if (!this.showCustomViewId) return;\r\n this.loadCustomViewDetail(this.showCustomViewId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Dialog.vue?vue&type=template&id=74b00826&\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Dialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_vm._v(\" \"+_vm._s(_vm.customView ? _vm.customView.name : '...')+\" \")]),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.customView ? _vm.customView.filterDescription : '...')+\" \")]),_c('v-tabs',{model:{value:(_vm.tab),callback:function ($$v) {_vm.tab=$$v},expression:\"tab\"}},[_c('v-tabs-slider'),_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)})],2),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.value,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { defineComponent, computed, ref } from 'vue';\r\nimport { ICustomViewResult } from '@/models';\r\nexport default defineComponent({\r\n title(ctx) {\r\n if (ctx.value) {\r\n return ctx.value.Name;\r\n } else {\r\n return ctx.$t('views.dialogCustomView.title');\r\n }\r\n },\r\n props: {\r\n value: Object,\r\n loading: {\r\n default: false,\r\n type: Boolean,\r\n },\r\n },\r\n setup(p) {\r\n const tab: string = null;\r\n const tenantStore = useTenantStore();\r\n const tabs = computed(() =>\r\n [\r\n { key: 'usage', icon: 'insights', text: 'views.dialogCustomView.tabs.usage' },\r\n ].filter((t) => t)\r\n );\r\n const isEditingName = ref(false);\r\n const customView = computed(() => {\r\n return p.value as ICustomViewResult; \r\n });\r\n return { tab, tabs, tenantStore, isEditingName, customView };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=24cd9d26&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('SpendUsageOptionsToolbarForm',{staticClass:\"my-2\",attrs:{\"search-supported-types\":_vm.searchSupportedTypes,\"segregation-supported-keys\":_vm.segregationSupportedKeys,\"loading\":_vm.wait.is('getAccountUsage')},scopedSlots:_vm._u([(_vm.filters.length)?{key:\"workspace\",fn:function(){return [_c('UsageFilterChips',{model:{value:(_vm.filters),callback:function ($$v) {_vm.filters=$$v},expression:\"filters\"}})]},proxy:true}:null],null,true),model:{value:(_vm.spendOptions),callback:function ($$v) {_vm.spendOptions=$$v},expression:\"spendOptions\"}})],1),_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}}),_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('getAccountUsage'),\"segregate-by\":_vm.spendOptions.segregateBy,\"currency-code\":_vm.currencyCode}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs } from '@/stores';\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport SpendUsageOptionsToolbarForm, {\r\n SpendUsageOptions,\r\n CostView,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport UsageFilterChips, {\r\n filterUsageParamsByFilterChips,\r\n IChipViewModel,\r\n} from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { getSpend, getForecast } from '@/lib/Api';\r\nimport { fromPlural } from '@/models/EntityType';\r\nimport {\r\n EntityType,\r\n PluralEntityType,\r\n ICustomViewResult,\r\n Granularity,\r\n ISpendUsageTableRecordsViewModel,\r\nSpendFieldNames,\r\n} from '@/models';\r\nimport { i18n } from '@/i18n';\r\nimport { appendValueToCommaString } from '@/lib';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nexport default defineComponent({\r\n components: {\r\n SpendUsageOptionsToolbarForm,\r\n UsageFilterChips,\r\n SpendUsageTable,\r\n SpendUsageBarChart,\r\n },\r\n props: { value: Object, loading: Boolean },\r\n setup(p) {\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const spendOptions = ref({\r\n dateRangeKey: '6m',\r\n forecastRangeKey: '3m',\r\n granularity: Granularity.monthly,\r\n topXResults: 10,\r\n segregateBy: PluralEntityType.productCategories,\r\n });\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const searchSupportedTypes = ref([\r\n EntityType.subscription,\r\n EntityType.service,\r\n EntityType.product,\r\n EntityType.tag,\r\n ]);\r\n const segregationSupportedKeys = ref([\r\n PluralEntityType.productCategories,\r\n PluralEntityType.subscriptions,\r\n PluralEntityType.services,\r\n ]);\r\n\r\n const loadTabUsage = async () =>\r\n await whilst('getAccountUsage', async () => {\r\n const view = p.value as ICustomViewResult;\r\n let params = convertSpendOptionsToQuery(spendOptions.value);\r\n if (view.cloudAccountIds.length) {\r\n params.cloudAccountIds = appendValueToCommaString(\r\n params.cloudAccountIds,\r\n view.cloudAccountIds.map((a) => a.id)\r\n );\r\n }\r\n if (view.cloudProviderTypes.length) {\r\n params.providerType = appendValueToCommaString(params.providerType, view.cloudProviderTypes);\r\n }\r\n if (view.geographies.length) {\r\n params.geographyNames = appendValueToCommaString(params.geographyNames, view.geographies);\r\n }\r\n if (view.productCategories.length) {\r\n params.productCategories = appendValueToCommaString(\r\n params.productCategories,\r\n view.productCategories.map((p) => `\"${p}\"`)\r\n );\r\n }\r\n if (view.regions.length) {\r\n params.regionNames = appendValueToCommaString(params.regionNames, view.regions);\r\n }\r\n if (view.subscriptionIds) {\r\n params.subscriptionIds = appendValueToCommaString(\r\n params.subscriptionIds,\r\n view.subscriptionIds.map((s) => s.id)\r\n );\r\n }\r\n if (view.sysProductIds) {\r\n params.productIds = appendValueToCommaString(\r\n params.productIds,\r\n view.sysProductIds.map((p) => p.id)\r\n );\r\n }\r\n if (view.sysServiceIds) {\r\n params.serviceIds = appendValueToCommaString(\r\n params.serviceIds,\r\n view.sysServiceIds.map((s) => s.id)\r\n );\r\n }\r\n if (view.tagKeyValues) {\r\n params.tagKeyValue = appendValueToCommaString(params.tagKeyValue, view.tagKeyValues);\r\n }\r\n if (view.tagKeys) {\r\n // TODO\r\n }\r\n if (Array.isArray(spendOptions.value.segregateBy)) throw new Error('Multiple segregations unsupported!');\r\n const segregateBy = spendOptions.value.segregateBy;\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getSpend({ ...params, segregateBy, fields: [ SpendFieldNames.Charges ] }),\r\n getForecast(params, spendOptions.value.dateRangeKey, spendOptions.value.forecastRangeKey),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, { reportType: UsageReportTypes.charges });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n spendOptions.value.costView\r\n );\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate\r\n });\r\n\r\n const handleDatasetClicked = ({ isOther, name, datasetGroupId }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else if (!Array.isArray(spendOptions.value.segregateBy)) {\r\n filters.value.push({ id: datasetGroupId, name, type: fromPlural(spendOptions.value.segregateBy) as EntityType });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getAccountUsage')) return;\r\n loadTabUsage();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n searchSupportedTypes,\r\n segregationSupportedKeys,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n currencyCode,\r\n wait: { is },\r\n maxDate\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Usage.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Usage.vue?vue&type=template&id=4a25a15e&\"\nimport script from \"./Usage.vue?vue&type=script&lang=ts&\"\nexport * from \"./Usage.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('customReports.title'),\"icon\":\"insert_chart_outlined\",\"extended\":\"\",\"extension-height\":10}},[(_vm.tenantStore.hasPermission('CanContribute'))?_c('v-btn',{attrs:{\"color\":\"secondary\",\"fab\":\"\",\"absolute\":\"\",\"depressed\":\"\",\"bottom\":\"\",\"large\":\"\",\"right\":\"\",\"to\":\"/create/custom/reports\"}},[_c('v-icon',[_vm._v(\"addchart\")])],1):_vm._e()],1),_c('v-container',{staticClass:\"mt-7\",attrs:{\"fluid\":\"\"}},[_c('content-card',{attrs:{\"title\":_vm.$t('customReports.title'),\"caption\":_vm.$t('customReports.subtitle')}},[_c('reports-table',{attrs:{\"items\":_vm.savedReports},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"item\",fn:function({ item }){return [_c('report-menu',{attrs:{\"value\":item},on:{\"http2xx\":_vm.loadReports}})]}}:null],null,true)})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.reportName'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.createdDate'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.dateRangeKey'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.segregatedBy'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.nextRun'))+\" \")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\" \"+_vm._s(_vm.$t('reportsTable.headers.actions'))+\" \")])])]),(_vm.items.length > 0)?_c('tbody',_vm._l((_vm.items || []),function(item){return _c('tr',{key:item.id},[_c('td',[_c('router-link',{attrs:{\"to\":`/custom/reports/${item.id}`}},[_vm._v(_vm._s(item.name))])],1),_c('td',[_vm._v(_vm._s(_vm._f(\"calendarFormatFromUtc\")(item.createdDate)))]),_c('td',[_vm._v(_vm._s(_vm.$t(`dateRangeSelect.key_${item.dateRangeKey}.title`)))]),_c('td',_vm._l(((item.segregateBy || '').split(',')),function(s){return _c('span',{key:s},[_vm._v(\" \"+_vm._s(s.startsWith('tags/') ? s : _vm.$t(`segregationSelect.${s}.title`))+\"; \")])}),0),(item.schedule && item.schedule.nextRun)?_c('td',[_vm._v(_vm._s(_vm._f(\"calendarFormat\")(item.schedule.nextRun)))]):_c('td',[_vm._v(\"Not Scheduled\")]),_c('td',[_vm._t(\"item\",null,{\"item\":item})],2)])}),0):_c('tbody',[_c('tr',[_c('td',{staticStyle:{\"text-align\":\"center\"},attrs:{\"colspan\":\"6\"}},[_vm._v(\" \"+_vm._s(_vm.loading ? 'Loading...' : 'There are no reports yet')+\" \")])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent } from \"vue\"\r\n\r\nexport default defineComponent({\r\n props: {\r\n items: {\r\n type: Array,\r\n default: null,\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false,\r\n }\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ReportsTable.vue?vue&type=template&id=992f0656&\"\nimport script from \"./ReportsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ReportsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}])},[_c('v-list',[_c('v-list-item',{attrs:{\"to\":`/edit/custom/reports/${_vm.value ? _vm.value.id : _vm.value}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('reportMenu.edit')))])],1)],1),_c('v-list-item',{attrs:{\"to\":`/clone/custom/reports/${_vm.value ? _vm.value.id : _vm.value}`}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"content_copy\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('reportMenu.clone')))])],1)],1),_c('delete-report-dialog',{attrs:{\"report\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('reportMenu.delete')))])],1)],1)]}}]),model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"title\":_vm.$t('deleteReportDialog.title'),\"subtitle\":_vm.$t('deleteReportDialog.subtitle'),\"value\":{ name: _vm.report.name },\"loading\":_vm.$wait.is('deletingReport')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-report-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deletingReport'),expression:\"'deletingReport'\"}],attrs:{\"value\":_vm.report,\"form\":formId,\"clear\":clear,\"loading\":loading,\"valid\":isValid},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulDeletion(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/savedreports/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteReportButton.errorMessage\": \"There was an error encountered while deleting this report. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteReportButton.vue?vue&type=template&id=54e17166&\"\nimport script from \"./DeleteReportButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteReportButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteReportButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteReportDialog.events.successfulDeletion\": \"Successfully deleted the report '{reportName}'\",\r\n \"deleteReportDialog.title\": \"Delete Report\",\r\n \"deleteReportDialog.subtitle\": \"Please enter the name of this report to delete it\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteReportDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteReportDialog.vue?vue&type=template&id=0a1b0ee0&\"\nimport script from \"./DeleteReportDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteReportDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteReportDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"reportMenu.edit\": \"Edit\",\r\n \"reportMenu.delete\": \"Delete\",\r\n \"reportMenu.clone\": \"Clone\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ReportMenu.vue?vue&type=template&id=2a6e298c&\"\nimport script from \"./ReportMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./ReportMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ReportMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ReportsTable from '@/components/Domain.Reports/ReportsTable.vue';\r\nimport ReportMenu from '@/components/Domain.Reports/ReportMenu.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { getSavedReports } from '@/lib/Api';\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n data() {\r\n return { isShowingReport: false, savedReports: [], isCreating: false };\r\n },\r\n components: { ReportsTable, ReportMenu },\r\n created() {\r\n this.loadReports();\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n loadReports: waitFor('loadingReports', async function loadingReports() {\r\n try {\r\n this.savedReports = await getSavedReports();\r\n } catch (err) {\r\n toastError(this.$t('customReports.failedToLoad'));\r\n }\r\n }),\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReports.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReports.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReports.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReports.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomReports.vue?vue&type=template&id=232f6d90&\"\nimport script from \"./CustomReports.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomReports.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomReports.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('customReport.title', { reportName: _vm.report ? _vm.report.name : '...' }),\"icon\":\"insert_chart_outlined\"}}),_c('v-toolbar',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"to\":\"/custom/reports\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" \"+_vm._s(_vm.$t('customReport.backButtonText'))+\" \")],1),_c('v-spacer'),(_vm.wait.is('loadingReportUsage'))?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_vm._e(),(_vm.tenantStore.hasPermission('CanContribute'))?_c('v-btn',{staticClass:\"ml-2\",attrs:{\"outlined\":\"\",\"to\":`/edit/custom/reports/${_vm.report ? _vm.report.id : ''}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"edit\")]),_vm._v(\" \"+_vm._s(_vm.$t('customReport.editButtonText'))+\" \")],1):_vm._e()],1),_c('v-container',{staticClass:\"pt-0\"},[(_vm.wasTruncatedTo && _vm.wasTruncatedTo > 0)?_c('v-alert',{attrs:{\"color\":\"error\",\"dense\":\"\",\"text\":\"\"}},[_c('v-row',{attrs:{\"align\":\"center\"}},[_c('v-col',{staticClass:\"grow\"},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"error\"}},[_vm._v(\"error\")]),_vm._v(\" The result of this query was too large to be presented in full. \")],1),_c('v-col',{staticClass:\"shrink\"},[_c('v-dialog',{attrs:{\"max-width\":\"600\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({},on),[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Email Full Result\")],1)]}}],null,false,3780547499),model:{value:(_vm.isMailing),callback:function ($$v) {_vm.isMailing=$$v},expression:\"isMailing\"}},[_c('v-card',[_c('v-card-title',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Deliver Email\")],1),_c('v-card-subtitle',[_vm._v(\"Deliver the full results of this saved report to the emails in the selected mailing list \")]),_c('v-card-text',[_c('v-form',[_c('v-select',{attrs:{\"label\":\"Mailing List\",\"items\":_vm.mailingLists,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.selectedMailingListId),callback:function ($$v) {_vm.selectedMailingListId=$$v},expression:\"selectedMailingListId\"}})],1)],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.isMailing = false}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" Close\")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":!_vm.selectedMailingListId},on:{\"click\":function($event){return _vm.deliverReportToMailingList()}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"mail\")]),_vm._v(\" Send\")],1)],1)],1)],1)],1)],1)],1):_vm._e(),(_vm.showChart)?[(_vm.dataset === 'Usage')?_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.report ? _vm.report.granularity : 'Daily'}}):_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.report ? _vm.report.granularity : 'Daily'}})]:_c('v-alert',{attrs:{\"dense\":\"\",\"text\":\"\",\"type\":\"info\"}},[_vm._v(\" Reports with more than one field do not currently have charting enabled. \")]),(_vm.dataset === 'Usage')?_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"loading\":_vm.wait.is('loadingReportUsage'),\"segregate-by\":_vm.report ? _vm.report.segregateBy : 'services',\"currency-code\":_vm.currencyCode,\"prefix\":`/custom/reports/${_vm.report ? _vm.report.id : ''}`,\"hide-intelligence\":\"\"}}):_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.emissionsTableItems,\"loading\":_vm.wait.is('loadingReportUsage'),\"segregate-by\":_vm.report ? _vm.report.segregateBy : 'services',\"currency-code\":_vm.currencyCode,\"prefix\":`/custom/reports/${_vm.report ? _vm.report.id : ''}`,\"hide-intelligence\":\"\"}})],2),_c('router-view',{on:{\"input\":_vm.handleDialogChange}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport SpendUsageBarChart, {\r\n convertUsageResponseToDatasets,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport CarbonBarChart, { convertUsageResponseToEmissionsDatasets } from '@/components/Domain.Carbon/CarbonBarChart.vue';\r\nimport CarbonTable, {\r\n ICarbonTableRecordsViewModel,\r\n convertToEmissionsItemRecords,\r\n} from '@/components/Domain.Carbon/CarbonTable.vue';\r\nimport { useTenantStore, useWaitStore, storeToRefs } from '@/stores';\r\nimport {\r\n ISavedReportResult,\r\n ISpendUsageTableRecordsViewModel,\r\n generateSpendParametersFromReport,\r\n IMailingListGetPutModel,\r\n SpendFieldNames,\r\n PluralEntityType,\r\n} from '@/models';\r\nimport { defineComponent, ref } from 'vue';\r\nimport { getSpend, getMailingLists, deliverSavedReport } from '@/lib/Api';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\n\r\nexport default defineComponent({\r\n components: { SpendUsageTable, SpendUsageBarChart, CarbonBarChart, CarbonTable },\r\n setup() {\r\n const tenantStore = useTenantStore();\r\n const { currencyCode } = storeToRefs(tenantStore);\r\n const { is, whilst } = useWaitStore();\r\n\r\n const reportId = ref();\r\n const report = ref(null);\r\n const usageTableItems = ref(null);\r\n const emissionsTableItems = ref(null);\r\n\r\n const isUpdating = ref(false);\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const maxDate = ref(null);\r\n const showChart = ref(false);\r\n const dataset = ref('Usage');\r\n\r\n const isMailing = ref(false);\r\n const wasTruncatedTo = ref(null);\r\n const selectedMailingListId = ref(null);\r\n const mailingLists = ref([]);\r\n\r\n getMailingLists().then((m) => (mailingLists.value = m));\r\n\r\n const deliverReportToMailingList = async () => {\r\n if (!reportId.value) return;\r\n if (!selectedMailingListId.value) return;\r\n isMailing.value = false;\r\n await deliverSavedReport(reportId.value, [], selectedMailingListId.value);\r\n };\r\n\r\n const loadReportUsage = async () => {\r\n await whilst('loadingReportUsage', async () => {\r\n const options = report.value;\r\n if (!options) return;\r\n dataset.value = report.value.dataset || 'Usage';\r\n\r\n const params = generateSpendParametersFromReport(options);\r\n const costViews = (options.costViews || ['Actual']);\r\n const usageParams = {\r\n ...params,\r\n segregateBy: options.segregateBy,\r\n };\r\n maxDate.value = params.toDate\r\n wasTruncatedTo.value = null;\r\n const fields =\r\n dataset.value === 'Usage' ? [SpendFieldNames.Charges] : [SpendFieldNames.CO2e, SpendFieldNames.kWh];\r\n const results = await Promise.all(\r\n costViews.map((cv) => getSpend({ ...usageParams, costView: cv, fields }))\r\n );\r\n if (options.segregateBy.split(',').length < 2 && costViews.length < 2) {\r\n const datasets = results.map((r, i) => {\r\n if ((r.limitedSet || 0) > (wasTruncatedTo.value || 0)) {\r\n wasTruncatedTo.value = r.limitedSet;\r\n }\r\n const costView = costViews[i];\r\n const labelSuffix = costView === 'Actual' ? 'Actual Spend' : 'Utilized Spend';\r\n const stackGroup = costView.toLowerCase();\r\n if (dataset.value === 'Usage') {\r\n return convertUsageResponseToDatasets(r, {\r\n labelSuffix,\r\n stackGroup,\r\n reportType: UsageReportTypes.charges,\r\n });\r\n } else {\r\n const [x] = convertUsageResponseToEmissionsDatasets(r);\r\n return x;\r\n }\r\n });\r\n newChartData.value = {\r\n labels: datasets.map((d) => d.labels).reduce((a, b) => [...a, ...b], []),\r\n datasets: datasets.map((d) => d.datasets).reduce((a, b) => [...a, ...b], []),\r\n };\r\n showChart.value = true;\r\n } else {\r\n newChartData.value = { labels: [], datasets: [] };\r\n showChart.value = false;\r\n }\r\n if (dataset.value === 'Usage') {\r\n const segregateByParts = options.segregateBy.split(',');\r\n const segregateBy =\r\n segregateByParts.length > 1\r\n ? (segregateByParts as PluralEntityType[])\r\n : (segregateByParts[0] as PluralEntityType);\r\n const records = results.map((r, i) => {\r\n const costView = costViews[i];\r\n return SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, r, costView);\r\n });\r\n usageTableItems.value = records[0];\r\n usageTableItems.value.records = records.map((r) => r.records).reduce((a, b) => [...a, ...b], []);\r\n } else {\r\n const records = results.map((r) => {\r\n return convertToEmissionsItemRecords(params, r);\r\n });\r\n emissionsTableItems.value = records[0];\r\n emissionsTableItems.value.records = records\r\n .map((r) => r.records)\r\n .reduce((a, b) => [...a, ...b], []);\r\n }\r\n });\r\n };\r\n const loadReport = async () => {\r\n await whilst('loadingReport', async () => {\r\n report.value = await ApiV2.http.get(`/api/savedreports/${reportId.value}`).then((r) => r.data);\r\n });\r\n await loadReportUsage();\r\n };\r\n\r\n return {\r\n reportId,\r\n report,\r\n usageTableItems,\r\n currencyCode,\r\n isUpdating,\r\n loadReportUsage,\r\n loadReport,\r\n wait: { is, whilst },\r\n newChartData,\r\n showChart,\r\n tenantStore,\r\n dataset,\r\n emissionsTableItems,\r\n wasTruncatedTo,\r\n selectedMailingListId,\r\n mailingLists,\r\n isMailing,\r\n deliverReportToMailingList,\r\n maxDate,\r\n };\r\n },\r\n\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (!to) return;\r\n this.reportId = to.params.id;\r\n this.loadReport();\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n title(ctx) {\r\n return ctx.report ? ctx.report.name : 'Report';\r\n },\r\n methods: {\r\n handleSeriesClicked(meta) {\r\n this.$router.push(`/explore/${this.report.segregateBy}/${meta.metaId}/usage`);\r\n },\r\n handleDialogChange(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push(`/custom/reports/${this.report ? this.report.id : ''}`);\r\n this.$title = this.report ? this.report.name : 'Report';\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReport.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReport.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomReport.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomReport.vue?vue&type=template&id=5be5b4b3&\"\nimport script from \"./CustomReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomReport.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":\"Create Report\",\"icon\":\"add\"}}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticStyle:{\"max-width\":\"80em\",\"margin\":\"auto\"}},[_c('ReportCard',{scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, loading }){return [_c('v-spacer'),_c('PostReportButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingReport'),expression:\"'creatingReport'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){return _vm.handleSuccessfulCreation($event)}}})]}}])})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.$t('savedReportConfigCard.title'),\"subtitle\":_vm.$t('savedReportConfigCard.subtitle'),\"loading\":_vm.loading,\"lazy-validation\":false},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.form,\"formId\":formId,\"isValid\":_vm.isValid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"autofocus\":\"\",\"rules\":[_vm.$rules.required()],\"label\":_vm.$t('savedReportConfigCard.reportName.title'),\"placeholder\":_vm.$t('savedReportConfigCard.reportName.placeholder')},model:{value:(_vm.reportName),callback:function ($$v) {_vm.reportName=$$v},expression:\"reportName\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('v-select',{attrs:{\"items\":['Daily', 'Monthly'],\"label\":\"Granularity\"},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[_c('date-range-select',{model:{value:(_vm.dateRangeKey),callback:function ($$v) {_vm.dateRangeKey=$$v},expression:\"dateRangeKey\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"4\"}},[(_vm.dateRangeKey == 'custom')?_c('text-date-picker',{attrs:{\"range\":\"\"},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}}):_vm._e()],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"4\"}},[_c('v-switch',{attrs:{\"label\":\"Use Predefined View\"},model:{value:(_vm.usePredefinedView),callback:function ($$v) {_vm.usePredefinedView=$$v},expression:\"usePredefinedView\"}})],1),(_vm.usePredefinedView)?_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_c('v-select',{attrs:{\"items\":_vm.views,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Select Predefined View\"},model:{value:(_vm.selectedView),callback:function ($$v) {_vm.selectedView=$$v},expression:\"selectedView\"}})],1):_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"8\"}},[_c('entity-search-autocomplete',{attrs:{\"label\":_vm.$t('savedReportConfigCard.filters.title'),\"placeholder\":_vm.$t('savedReportConfigCard.filters.placeholder'),\"multiple\":true},model:{value:(_vm.searchEntities),callback:function ($$v) {_vm.searchEntities=$$v},expression:\"searchEntities\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('fieldset',{staticClass:\"pl-3\",staticStyle:{\"height\":\"400px\",\"overflow-y\":\"scroll\"}},[_c('legend',[_vm._v(\"Field to Include\")]),_vm._l((_vm.availableFieldsToInclude),function(field){return _c('v-checkbox',{key:field.id,attrs:{\"hide-details\":\"\",\"label\":field.name,\"value\":field.id},model:{value:(_vm.fieldsToInclude),callback:function ($$v) {_vm.fieldsToInclude=$$v},expression:\"fieldsToInclude\"}})})],2)]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('fieldset',{staticClass:\"pl-3\",staticStyle:{\"height\":\"400px\"}},[_c('legend',[_vm._v(\"Tags to Include\")]),_vm._l((_vm.availableTagsToInclude),function(key){return _c('v-checkbox',{key:key,attrs:{\"hide-details\":\"\",\"label\":key,\"value\":key},model:{value:(_vm.tagSelections),callback:function ($$v) {_vm.tagSelections=$$v},expression:\"tagSelections\"}})}),_c('form-dialog',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({staticClass:\"mt-2\",attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]}}]),model:{value:(_vm.isAddingTag),callback:function ($$v) {_vm.isAddingTag=$$v},expression:\"isAddingTag\"}},[_c('form-card',{attrs:{\"title\":\"Add Tag\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('back-button',{on:{\"click\":function($event){_vm.isAddingTag = false}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){$event.preventDefault();return _vm.addTag(_vm.tagSearch)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" Add \")],1)]},proxy:true}])},[_c('entity-search-autocomplete',{attrs:{\"types\":['TagKey'],\"label\":\"Search for tag...\"},model:{value:(_vm.tagSearch),callback:function ($$v) {_vm.tagSearch=$$v},expression:\"tagSearch\"}})],1)],1)],2)]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('fieldset',{staticClass:\"pl-3\",staticStyle:{\"height\":\"400px\",\"overflow-y\":\"scroll\"}},[_c('legend',[_vm._v(\"Values\")]),_c('v-radio-group',{staticClass:\"mt-0\",model:{value:(_vm.dataset),callback:function ($$v) {_vm.dataset=$$v},expression:\"dataset\"}},_vm._l((_vm.datasets),function(d){return _c('v-radio',{key:d.id,staticClass:\"mt-2\",attrs:{\"value\":d.id,\"label\":d.name}})}),1),_c('v-checkbox',{staticClass:\"mt-0\",attrs:{\"hide-details\":\"\",\"label\":\"SUM(Actual)\",\"value\":\"Actual\"},model:{value:(_vm.costViews),callback:function ($$v) {_vm.costViews=$$v},expression:\"costViews\"}}),_c('v-checkbox',{attrs:{\"hide-details\":\"\",\"label\":\"SUM(Utilization)\",\"value\":\"Utilized\"},model:{value:(_vm.costViews),callback:function ($$v) {_vm.costViews=$$v},expression:\"costViews\"}})],1)]),_c('v-col',{attrs:{\"cols\":\"12\",\"md\":\"6\"}},[_c('fieldset',{staticClass:\"pl-3\",staticStyle:{\"height\":\"400px\",\"overflow-y\":\"scroll\"}},[_c('legend',[_vm._v(\"Schedule\")]),(!_vm.tenantStore.hasTenantFeature('ScheduledReports'))?_c('v-alert',{staticClass:\"mt-2\",attrs:{\"color\":\"warning\",\"text\":\"\"}},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" Scheduled reports have not been enabled for this tenant. \")],1):_c('div',[_c('v-list-item',[_c('v-list-item-content',[_c('v-switch',{attrs:{\"label\":_vm.$t('savedReportConfigCard.deliverInEmail.title')},model:{value:(_vm.deliverInEmail),callback:function ($$v) {_vm.deliverInEmail=$$v},expression:\"deliverInEmail\"}})],1),_c('v-list-item-action',[_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.deliverInEmail},on:{\"click\":function($event){_vm.isViewingSchedule = true}}},[_vm._v(\"Edit\")])],1)],1),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"mail\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.recipients.join(', '))+\" \")]),_c('v-list-item-subtitle',[_vm._v(\" Recipients \")])],1)],1),_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"schedule\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.frequency === 'Days' ? 'Daily' : _vm.frequency === 'Weeks' ? 'Weekly' : 'Monthly')+\", \"+_vm._s(_vm.timeOfDay)+\":00 \")]),_c('v-list-item-subtitle',[_vm._v(\"Frequency \")])],1)],1)],1)],1)])],1)],1),_c('form-dialog',{model:{value:(_vm.isViewingSchedule),callback:function ($$v) {_vm.isViewingSchedule=$$v},expression:\"isViewingSchedule\"}},[_c('form-card',{attrs:{\"title\":\"Schedule\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('back-button',{on:{\"click\":function($event){_vm.isViewingSchedule = false}}})]},proxy:true}])},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('emails-autocomplete',{attrs:{\"label\":_vm.$t('savedReportConfigCard.recipients.title'),\"disabled\":!_vm.deliverInEmail},model:{value:(_vm.recipients),callback:function ($$v) {_vm.recipients=$$v},expression:\"recipients\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('savedReportConfigCard.scheduledStartDate.title'),\"disabled\":!_vm.deliverInEmail},model:{value:(_vm.schedulingStartDate),callback:function ($$v) {_vm.schedulingStartDate=$$v},expression:\"schedulingStartDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('text-date-picker',{attrs:{\"label\":_vm.$t('savedReportConfigCard.scheduledEndDate.title'),\"disabled\":!_vm.deliverInEmail},model:{value:(_vm.schedulingEndDate),callback:function ($$v) {_vm.schedulingEndDate=$$v},expression:\"schedulingEndDate\"}})],1),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-radio-group',{attrs:{\"row\":\"\"},model:{value:(_vm.frequency),callback:function ($$v) {_vm.frequency=$$v},expression:\"frequency\"}},[_c('v-radio',{attrs:{\"label\":_vm.$t('savedReportConfigCard.days.title'),\"value\":\"Days\",\"disabled\":!_vm.deliverInEmail}}),_c('v-radio',{attrs:{\"label\":_vm.$t('savedReportConfigCard.weeks.title'),\"value\":\"Weeks\",\"disabled\":!_vm.deliverInEmail}}),_c('v-radio',{attrs:{\"label\":_vm.$t('savedReportConfigCard.months.title'),\"value\":\"Months\",\"disabled\":!_vm.deliverInEmail}})],1)],1),(_vm.frequency === 'Weeks')?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-select',{attrs:{\"label\":_vm.$t('savedReportConfigCard.selectedDaysOfWeek.title'),\"items\":_vm.daysOfWeek,\"multiple\":\"\",\"chips\":\"\"},model:{value:(_vm.selectedDaysOfWeek),callback:function ($$v) {_vm.selectedDaysOfWeek=$$v},expression:\"selectedDaysOfWeek\"}})],1):_vm._e(),(_vm.frequency === 'Months')?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"label\":_vm.$t('savedReportConfigCard.monthlyFrequency.title'),\"disabled\":!_vm.deliverInEmail},model:{value:(_vm.monthlyFrequencyValue),callback:function ($$v) {_vm.monthlyFrequencyValue=$$v},expression:\"monthlyFrequencyValue\"}})],1):_vm._e(),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('v-slider',{staticClass:\"mt-4\",attrs:{\"label\":\"Time\",\"thumb-color\":\"secondary darken-1\",\"min\":0,\"max\":23,\"step\":1,\"thumb-size\":30,\"thumb-label\":\"always\",\"disabled\":!_vm.deliverInEmail},scopedSlots:_vm._u([{key:\"thumb-label\",fn:function({ value }){return [_vm._v(\" \"+_vm._s(value === 0 ? '12am' : value === 12 ? 'Noon' : value < 12 ? `${value}am` : `${value - 12}pm`)+\" \")]}}]),model:{value:(_vm.timeOfDay),callback:function ($$v) {_vm.timeOfDay=$$v},expression:\"timeOfDay\"}})],1),_c('v-col',{attrs:{\"cols\":\"6\"}},[_c('timezone-select',{attrs:{\"disabled\":true},model:{value:(_vm.timezone),callback:function ($$v) {_vm.timezone=$$v},expression:\"timezone\"}})],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-select',{attrs:{\"value\":_vm.value,\"items\":_vm.dateRanges,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":_vm.$t('dateRangeSelect.label'),\"hide-details\":_vm.hideDetails,\"solo\":_vm.solo,\"flat\":_vm.flat,\"filled\":_vm.filled},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"dateRangeSelect.label\": \"Date range\",\r\n \"dateRangeSelect.key_30d.title\": \"Last 30 days\",\r\n \"dateRangeSelect.key_60d.title\": \"Last 60 days\",\r\n \"dateRangeSelect.key_90d.title\": \"Last 90 days\",\r\n \"dateRangeSelect.key_lastMonth.title\": \"Last month\",\r\n \"dateRangeSelect.key_thisMonth.title\": \"This month\",\r\n \"dateRangeSelect.key_6m.title\": \"Last 6 months\",\r\n \"dateRangeSelect.key_13m.title\": \"All usage\",\r\n \"dateRangeSelect.key_all.title\": \"All usage\",\r\n \"dateRangeSelect.key_custom.title\": \"Custom\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeSelect.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeSelect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateRangeSelect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DateRangeSelect.vue?vue&type=template&id=7d51394e&\"\nimport script from \"./DateRangeSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./DateRangeSelect.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DateRangeSelect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('fragment',[_c('v-select',{attrs:{\"value\":_vm.value,\"label\":\"Timezone\",\"items\":_vm.items,\"item-text\":\"name\",\"item-value\":\"value\",\"disabled\":_vm.disabled},on:{\"input\":function($event){return _vm.$emit('input', $event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimezoneSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TimezoneSelect.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TimezoneSelect.vue?vue&type=template&id=62aec50a&\"\nimport script from \"./TimezoneSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./TimezoneSelect.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-autocomplete',{attrs:{\"value\":_vm.value,\"label\":_vm.label || _vm.$t('emailsAutocomplete.label'),\"items\":_vm.items,\"search-input\":_vm.searchText,\"clearable\":\"\",\"prepend-icon\":\"email\",\"hide-details\":_vm.hideDetails,\"hide-selected\":\"\",\"multiple\":\"\",\"chips\":\"\",\"disabled\":_vm.disabled},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"update:searchInput\":function($event){_vm.searchText=$event},\"update:search-input\":function($event){_vm.searchText=$event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(_vm.isValidEmail(_vm.searchText))?_c('v-list-item',{on:{\"click\":function($event){return _vm.addEmail(_vm.searchText)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"add\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('emailsAutocomplete.createPrompt'))+\" \")])],1):(!_vm.searchText)?_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"info\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('emailsAutocomplete.pleaseTypePrompt'))+\" \")])],1):_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")])],1),_c('v-list-item-title',[_vm._v(\" \"+_vm._s(_vm.$t('emailsAutocomplete.notValidEmail'))+\" \")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\r\n * Helpful validation functions that work directly with vuetify's form element validation.\r\n * NOTE: You should turn on lazy validatation in your form e.g. \r\n *\r\n * Installation (main.ts):\r\n * import './plugins/validation';\r\n * Vue.use(VueFragment);\r\n *\r\n * Usage:\r\n * :rules=\"[$rules.required(), $rules.maxLength(50)]\"\r\n *\r\n * Or, with custom messages:\r\n * :rules=\"[$rules.required('Name is required'), $rules.maxLength(50, 'Name must be less than 50 characters')]\"\r\n *\r\n * Conditionally required:\r\n * :rules=\"[$rules.requiredIf(() => someProp > 10), $rules.maxLength(50)]\"\r\n *\r\n * Can handle async validation:\r\n * (element)\r\n * $refs.myfield, message: 'OPTIONALMESSAGE', method: someAsyncValidator})]\"\r\n * >\r\n * (async validation method)\r\n * async someAsyncValidator(val) { return await this.someFunc(val); }\r\n */\r\n\r\nimport { i18n } from '../i18n';\r\n\r\nexport const emailRegex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\nconst timeRegex = /^[012]?[0-9]:[0-5][0-9]$/;\r\nconst digitRegex = /(?=.*\\d)/;\r\nconst upperCaseRegex = /(?=.*[A-Z])/;\r\nconst lowerCaseRegex = /(?=.*[a-z])/;\r\nconst specialCharRegex = /(?=.*[-+_!@#$%^&*.,?])/;\r\n\r\nexport interface IAsyncValidator {\r\n component: any;\r\n method: any;\r\n message?: string;\r\n}\r\n\r\nexport default {\r\n install(Vue: any) {\r\n Vue.prototype.$rules = {\r\n required(message?: string) {\r\n return (v?: string) => !!v || message || i18n.t('validation.required');\r\n },\r\n requiredIf(getter: any, message?: string) {\r\n return (v?: string) => !getter() || !!v || message || i18n.t('validation.required');\r\n },\r\n requiredLength(num: number, message?: string) {\r\n return Vue.prototype.$rules.maxLength(num, message) || Vue.prototype.$rules.minLength(num, message);\r\n },\r\n maxLength(num: number, message?: string) {\r\n return (v?: string | string[]) => (v || '').length <= num || message || i18n.t('validation.maxLength', { num });\r\n },\r\n minLength(num: number, message?: string) {\r\n return (v?: string | string[]) => (v || '').length >= num || message || i18n.t('validation.minLength', { num });\r\n },\r\n email(message?: string) {\r\n return (v?: string) => !v || emailRegex.test(v) || message || i18n.t('validation.email');\r\n },\r\n time(message?: string) {\r\n return (v?: string) => !v || timeRegex.test(v) || message || i18n.t('validation.time');\r\n },\r\n multipleOf(num: number, message?: string) {\r\n return (v?: number) => !v || (v || 0) % num == 0 || message || i18n.t('validation.multipleOf');\r\n },\r\n max(num: number, message?: string) {\r\n return (v?: number) => (v || 0) <= num || message || i18n.t('validation.max', { num });\r\n },\r\n min(num: number, message?: string) {\r\n return (v?: number) => (v || 0) >= num || message || i18n.t('validation.min', { num });\r\n },\r\n custom(fn: any, message?: string) {\r\n return () => !fn() || message || i18n.t('validation.invalid');\r\n },\r\n equalTo(comparisonValue: any, message?: string) {\r\n return (v?: any) => comparisonValue === v || message || i18n.t('validation.doesNotMatch');\r\n },\r\n containsDigit(message?: string) {\r\n return (v?: string) => !v || digitRegex.test(v) || message || i18n.t('validation.containsDigit');\r\n },\r\n containsLowercase(message?: string) {\r\n return (v?: string) => !v || lowerCaseRegex.test(v) || message || i18n.t('validation.containsLower');\r\n },\r\n containsUppercase(message?: string) {\r\n return (v?: string) => !v || upperCaseRegex.test(v) || message || i18n.t('validation.containsUpper');\r\n },\r\n containsSpecialCharacter(message?: string) {\r\n return (v?: string) => !v || specialCharRegex.test(v) || message || i18n.t('validation.containsSpecialChar');\r\n },\r\n test(regex:RegExp, message?: string) {\r\n return (v?:string) => !v || regex.test(v) || message || i18n.t('validation.regex');\r\n },\r\n\r\n /**\r\n * @description Create an async validator e.g. $rules.asyncValidator({component:() => $refs.REFNAME, message: 'OPTIONALMESSAGE', method: someAsyncValidator})\r\n * @param {IAsyncValidator} validator Model defining async validator behaviour. Validator method: e.g. async someAsyncValidator(val) { return await this.someFunc(val); }\r\n * @returnType {Function}\r\n */\r\n asyncValidator(validator: IAsyncValidator) {\r\n const message = validator.message || i18n.t('validation.invalid');\r\n\r\n let myValue = true;\r\n\r\n setTimeout(() => {\r\n validator.component().rules.push(() => myValue || message);\r\n }, 1);\r\n\r\n let running = false;\r\n return (v: any) => {\r\n if (running) {\r\n return true;\r\n }\r\n running = true;\r\n (async () => {\r\n myValue = await validator.method(v);\r\n validator.component().validate();\r\n running = false;\r\n })();\r\n return true;\r\n };\r\n }\r\n };\r\n }\r\n};\r\n","\r\nimport { emailRegex } from '@/plugins/validation';\r\n\r\nexport default {\r\n props: { value: Array, hideDetails: Boolean, disabled: Boolean, label: String },\r\n data() {\r\n return { items: [...(this.value || [])], searchText: null };\r\n },\r\n methods: {\r\n isValidEmail(searchText) {\r\n return emailRegex.test(searchText);\r\n },\r\n addEmail(searchText) {\r\n this.items.push(searchText);\r\n this.$emit('input', [...this.value, searchText]);\r\n this.searchText = null;\r\n },\r\n },\r\n};\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailsAutocomplete.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailsAutocomplete.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailsAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmailsAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./EmailsAutocomplete.vue?vue&type=template&id=1f16286d&\"\nimport script from \"./EmailsAutocomplete.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmailsAutocomplete.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./EmailsAutocomplete.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { watch, computed, toRefs, reactive } from 'vue';\r\nimport { defineComponent } from 'vue';\r\nimport DateRangeSelect from '@/components/Domain.Usage/DateRangeSelect.vue';\r\nimport TimezoneSelect from '@/components/Common/TimezoneSelect.vue';\r\nimport EmailsAutocomplete from '@/components/Common/EmailsAutocomplete.vue';\r\nimport { ISearchEntityViewModel } from '@/components/Common/EntitySearchAutocomplete.vue';\r\nimport moment from '@/lib/moment';\r\nimport AuthClient from '@/lib/Auth';\r\nimport { Granularity, PluralEntityType, ISavedReportResult } from '@/models';\r\nimport DateKey from '@/lib/DateKey';\r\nimport { useTenantStore, useDatasetState } from '@/stores/tenant';\r\nimport { getCustomViews } from '@/lib/Api';\r\n\r\nexport default defineComponent({\r\n components: { DateRangeSelect, TimezoneSelect, EmailsAutocomplete },\r\n props: {\r\n loading: Boolean,\r\n value: Object,\r\n },\r\n setup(props) {\r\n const tenantStore = useTenantStore();\r\n const { hasUsageDataset, hasEmissionsDataset } = useDatasetState(tenantStore);\r\n\r\n const state = reactive({\r\n isCreatingSchedule: false,\r\n reportId: null,\r\n reportName: null,\r\n isValid: false,\r\n dateRangeKey: '30d',\r\n topXResults: 10,\r\n dates: [],\r\n searchEntities: [],\r\n schedulingStartDate: new Date(),\r\n schedulingEndDate: moment().add(1, 'years').toDate(),\r\n deliverInEmail: false,\r\n recipients: [AuthClient.userEmail],\r\n frequency: 'Days',\r\n timeOfDay: 0,\r\n timezone: 0,\r\n monthlyFrequencyValue: 1,\r\n selectedDaysOfWeek: ['Monday'],\r\n daysOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\r\n granularity: Granularity.daily,\r\n usePredefinedView: false,\r\n views: [],\r\n selectedView: null,\r\n isViewingSchedule: false,\r\n tagSelections: [],\r\n costViews: ['Actual'],\r\n dataset: 'Usage',\r\n datasets: [\r\n hasUsageDataset ? { name: 'Usage', id: 'Usage' } : null,\r\n hasEmissionsDataset ? { name: 'Energy & Emissions', id: 'EnergyAndEmissions' } : null,\r\n ].filter(r => r),\r\n availableTagsToInclude: [],\r\n fieldsToInclude: [],\r\n availableFieldsToInclude: [\r\n { name: 'Cloud Vendor', id: PluralEntityType.cloudProviders },\r\n { name: 'Subscription Name', id: PluralEntityType.subscriptions },\r\n { name: 'Product Category', id: PluralEntityType.productCategories },\r\n { name: 'Product Name', id: PluralEntityType.products },\r\n { name: 'Service', id: PluralEntityType.services },\r\n { name: 'Meter', id: PluralEntityType.meters },\r\n { name: 'Geography', id: PluralEntityType.geographies },\r\n { name: 'Region', id: PluralEntityType.regions },\r\n ],\r\n tagSearch: null,\r\n isAddingTag: false,\r\n });\r\n\r\n getCustomViews().then((v) => (state.views = v));\r\n\r\n watch(\r\n () => [tenantStore.tagKey1, tenantStore.tagKey2, tenantStore.tagKey3],\r\n ([tagKey1, tagKey2, tagKey3]) => {\r\n if (state.availableTagsToInclude.length) return;\r\n state.availableTagsToInclude = [tagKey1, tagKey2, tagKey3].filter((t) => t);\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => props.value,\r\n (val: ISavedReportResult | null | undefined) => {\r\n if (!val) return;\r\n state.reportId = val.id;\r\n state.reportName = val.name;\r\n state.dateRangeKey = val.dateRangeKey;\r\n\r\n const dateRangeKey = new DateKey(state.dateRangeKey);\r\n const fromDate = val.fromDate ? new Date(val.fromDate) : null;\r\n const toDate = val.toDate ? new Date(val.toDate) : null;\r\n state.dates = dateRangeKey.getEffectiveDateRange(fromDate, toDate);\r\n\r\n state.topXResults = val.topXResults || 10;\r\n state.searchEntities = (val.filters || []).map((r) => ({\r\n Id: r.id,\r\n Name: r.name,\r\n Type: r.type,\r\n }));\r\n state.costViews = val.costViews || ['Actual'];\r\n\r\n state.granularity = val.granularity;\r\n state.usePredefinedView = !!val.savedViewId;\r\n state.selectedView = val.savedViewId || null;\r\n const segregateByParts = val.segregateBy.split(',');\r\n state.fieldsToInclude = segregateByParts.filter((s) => !s.startsWith('tags/'));\r\n state.tagSelections = segregateByParts\r\n .filter((s) => s.startsWith('tags/'))\r\n .map((s) => s.substring('tags/'.length));\r\n\r\n const allTags = [...state.availableTagsToInclude, ...state.tagSelections];\r\n state.availableTagsToInclude = allTags.filter((value, index) => allTags.indexOf(value) === index);\r\n state.dataset = val.dataset || 'Usage';\r\n\r\n if (val.schedule) {\r\n state.deliverInEmail = true;\r\n state.frequency = val.schedule.frequency;\r\n state.recipients = val.schedule.recipients;\r\n state.schedulingStartDate = moment(val.schedule.effectiveFrom).toDate();\r\n state.schedulingEndDate = moment(val.schedule.effectiveTo).toDate();\r\n state.timeOfDay = val.schedule.scheduledHour;\r\n state.monthlyFrequencyValue = val.schedule.scheduledDay;\r\n state.timezone = 0;\r\n state.selectedDaysOfWeek = val.schedule.daysOfWeek;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n watch(\r\n () => state.dateRangeKey,\r\n (key) => {\r\n if (key === 'custom') return;\r\n const dateRangeKey = new DateKey(key);\r\n state.dates = dateRangeKey.getEffectiveDateRange(null, null);\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const form = computed(() => {\r\n const segregateBy = (state.fieldsToInclude || [])\r\n .concat((state.tagSelections || []).map((t) => `tags/${t}`))\r\n .join(',');\r\n const formData: Partial = {\r\n name: state.reportName,\r\n dateRangeKey: state.dateRangeKey,\r\n topXResults: state.topXResults,\r\n fromDate: state.dates[0] || null,\r\n toDate: state.dates[1] || new Date(),\r\n segregateBy,\r\n filters: (state.searchEntities || []).map((e) => ({\r\n id: e.Id,\r\n name: e.Name,\r\n type: e.Type,\r\n })),\r\n schedule: null,\r\n savedViewId: state.usePredefinedView ? state.selectedView : null,\r\n granularity: state.granularity,\r\n costViews: state.costViews || ['Actual'],\r\n dataset: state.dataset\r\n };\r\n if (state.deliverInEmail) {\r\n formData.schedule = {\r\n frequency: state.frequency,\r\n recipients: state.recipients,\r\n effectiveFrom: state.schedulingStartDate.toISOString(),\r\n effectiveTo: state.schedulingEndDate.toISOString(),\r\n scheduledHour: state.timeOfDay,\r\n scheduledDay: state.monthlyFrequencyValue,\r\n timezoneOffset: state.timezone,\r\n daysOfWeek: state.selectedDaysOfWeek,\r\n subject: null,\r\n messageBody: null,\r\n scheduleId: null,\r\n };\r\n }\r\n return formData;\r\n });\r\n\r\n const addTag = (tag: ISearchEntityViewModel) => {\r\n if (!state.availableTagsToInclude.includes(tag.Id)) state.availableTagsToInclude.push(tag.Id);\r\n state.isAddingTag = false;\r\n };\r\n\r\n return { ...toRefs(state), form, tenantStore, addTag };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReportCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ReportCard.vue?vue&type=template&id=04389e22&\"\nimport script from \"./ReportCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./ReportCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ReportCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/savedreports\",\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners),[_vm._v(\" \"+_vm._s(_vm.$t('postReportButton.saveAndView'))+\" \")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"postReportButton.errorMessage\": \"There was an error encountered while creating this report. If everything looks right please contact support so we can help you :)\",\r\n \"postReportButton.saveAndView\": \"Save and View\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostReportButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostReportButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostReportButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PostReportButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PostReportButton.vue?vue&type=template&id=1745226e&\"\nimport script from \"./PostReportButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PostReportButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PostReportButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent } from \"vue\";\r\nimport ReportCard from \"@/components/Domain.Reports/ReportCard.vue\";\r\nimport PostReportButton from \"@/components/Domain.Reports/PostReportButton.vue\";\r\n\r\nexport default defineComponent({\r\n components: { ReportCard, PostReportButton },\r\n methods: {\r\n handleSuccessfulCreation($event:any) {\r\n this.$router.push(`/custom/reports/${$event.id}`);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CreateReport.vue?vue&type=template&id=245f8e26&\"\nimport script from \"./CreateReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./CreateReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":`Edit ${_vm.report ? _vm.report.name : 'Report'}`,\"icon\":\"edit\"}}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticStyle:{\"max-width\":\"80em\",\"margin-right\":\"auto\"}},[_c('ReportCard',{attrs:{\"value\":_vm.report},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, loading }){return [_c('v-spacer'),_c('PutReportButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingReport'),expression:\"'creatingReport'\"}],attrs:{\"value\":{ ...form, id: _vm.report.id },\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){return _vm.handleSuccessfulCreation($event)}}})]}}])})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":`/api/savedreports/${(_vm.value || {}).id}`,\"value\":_vm.value,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putReportButton.errorMessage\": \"There was an error encountered while updating this report. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutReportButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutReportButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutReportButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutReportButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutReportButton.vue?vue&type=template&id=393186d2&\"\nimport script from \"./PutReportButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PutReportButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutReportButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport ReportCard from \"@/components/Domain.Reports/ReportCard.vue\";\r\nimport PutReportButton from \"@/components/Domain.Reports/PutReportButton.vue\";\r\nimport { getSavedReport } from \"@/lib/Api\";\r\nimport { Route } from \"vue-router\";\r\nimport { ISavedReportResult } from \"@/models\";\r\n\r\nexport default defineComponent({\r\n components: { ReportCard, PutReportButton },\r\n setup() {\r\n const report = ref(null);\r\n return { report };\r\n },\r\n watch: {\r\n $route: {\r\n async handler(route: Route) {\r\n this.report = await getSavedReport(route.params.id);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n handleSuccessfulCreation($event:any) {\r\n this.$router.push(`/custom/reports/${$event.id}`);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EditReport.vue?vue&type=template&id=5254dc7c&\"\nimport script from \"./EditReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./EditReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":`Clone ${_vm.report ? _vm.report.name : 'Report'}`,\"icon\":\"content_copy\"}}),_c('v-container',{attrs:{\"fluid\":\"\"}},[_c('div',{staticStyle:{\"max-width\":\"80em\",\"margin\":\"auto\"}},[_c('ReportCard',{attrs:{\"value\":_vm.report},scopedSlots:_vm._u([{key:\"actions\",fn:function({ form, formId, isValid, loading }){return [_c('v-spacer'),_c('post-report-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingReport'),expression:\"'creatingReport'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){return _vm.handleSuccessfulCreation($event)}}})]}}])})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport ReportCard from \"@/components/Domain.Reports/ReportCard.vue\";\r\nimport PostReportButton from \"@/components/Domain.Reports/PostReportButton.vue\";\r\nimport { getSavedReport } from \"@/lib/Api\";\r\nimport { Route } from \"vue-router\";\r\nimport { ISavedReportResult } from \"@/models\";\r\n\r\nexport default defineComponent({\r\n components: { ReportCard, PostReportButton },\r\n setup() {\r\n const report = ref(null);\r\n return { report };\r\n },\r\n watch: {\r\n $route: {\r\n async handler(route: Route) {\r\n this.report = await getSavedReport(route.params.id);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n methods: {\r\n handleSuccessfulCreation($event:any) {\r\n this.$router.push(`/custom/reports/${$event.id}`);\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloneReport.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CloneReport.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CloneReport.vue?vue&type=template&id=3c7488c8&\"\nimport script from \"./CloneReport.vue?vue&type=script&lang=ts&\"\nexport * from \"./CloneReport.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('customViews.title'),\"icon\":\"table_view\",\"extended\":\"\",\"extension-height\":10}}),_c('v-container',[_c('content-card',{attrs:{\"title\":_vm.$t('customViews.title'),\"caption\":_vm.$t('customViews.subtitle')},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [(_vm.tenantStore.hasPermission('CanContribute'))?_c('PostCustomViewDialog',{on:{\"http2xx\":function($event){return _vm.loadReports()}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',[_vm._v(\"add\")]),_vm._v(\" Create \")],1)]}}],null,false,294327437),model:{value:(_vm.isCreating),callback:function ($$v) {_vm.isCreating=$$v},expression:\"isCreating\"}}):_vm._e()]},proxy:true}])},[_c('CustomViewsTable',{attrs:{\"items\":_vm.customViews,\"loading\":_vm.customViewsLoading},on:{\"http2xx\":_vm.loadReports},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"item\",fn:function({ item }){return [_c('CustomViewMenu',{attrs:{\"value\":item},on:{\"http2xx\":_vm.loadReports}})]}}:null],null,true)})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.records,\"item-key\":\"id\",\"mobile-breakpoint\":\"0\",\"page\":_vm.currentPage,\"items-per-page\":_vm.itemsPerPage,\"loading-text\":_vm.$t('customViewsTable.loading'),\"loading\":_vm.loading,\"disable-sort\":true},on:{\"update:page\":function($event){_vm.currentPage=$event},\"update:itemsPerPage\":function($event){_vm.itemsPerPage=$event},\"update:items-per-page\":function($event){_vm.itemsPerPage=$event},\"page-count\":function($event){_vm.pageCount = $event}},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('customViewsTable.noCustomViews'))+\" \")]},proxy:true},{key:`item.name`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/${item.id}`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])]}},{key:`item.filterDescription`,fn:function({ item }){return [_c('small',[_vm._v(_vm._s(item.filterDescription))])]}},{key:`item.loading`,fn:function({ item }){return [(item.lastMonthActual === undefined)?_c('v-col',[_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"width\":3,\"size\":20,\"color\":\"primary\"}})],1):_vm._e()]}},{key:`item.lastMonthActual`,fn:function({ item }){return [(item.lastMonthActual === undefined)?_c('v-col',[_vm._v(\"-\")]):_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.lastMonthActual || 0,item.currencyCode)))])]}},{key:`item.currentMonthForecast`,fn:function({ item }){return [(item.currentMonthForecast === undefined)?_c('v-col',[_vm._v(\"-\")]):_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.currentMonthForecast || 0,item.currencyCode)))])]}},{key:`item.last12Weeks`,fn:function({ item }){return [(item.last12Weeks === undefined)?_c('v-col',[_vm._v(\"-\")]):_c('v-col',{staticClass:\"text-right\"},[_c('v-sparkline',{attrs:{\"value\":item.last12Weeks,\"auto-draw\":\"\"}})],1)]}},{key:`item.forecastDeltaSpend`,fn:function({ item }){return [(item.forecastDeltaSpend === undefined)?_c('v-col',[_vm._v(\"-\")]):_c('v-col',[_vm._v(_vm._s(_vm._f(\"currency\")(item.forecastDeltaSpend,item.currencyCode))+\" \"),_c('comparison-icon',{attrs:{\"value\":item.currentMonthForecast,\"compare\":item.lastMonthActual,\"right\":\"\"}}),_vm._v(\" \"+_vm._s((item.forecastDeltaPercentage * 100).toFixed(2))+\"% \")],1)]}},{key:`item.budgetStatus`,fn:function({ item }){return [(item.budgetStatus == 2)?_c('v-col',{staticClass:\"error--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"info\")])],1):(item.budgetStatus == 1)?_c('v-col',{staticClass:\"warning--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"info\")])],1):(item.budgetStatus == 0)?_c('v-col',{staticClass:\"success--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"success\"}},[_vm._v(\"info\")])],1):_c('v-col',{staticClass:\"text-center\"},[_c('v-col',[_vm._v(\"n/a\")])],1)]}},{key:`item.actions`,fn:function({ item }){return [_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditCustomView(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Edit\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteCustomView(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Delete\")])],1)],1)],1)],1)]}}],null,true)}),_c('PutCustomViewDialog',{attrs:{\"customView\":_vm.focusedCustomView},on:{\"editComplete\":_vm.handleEditComplete,\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},model:{value:(_vm.isEditingCustomView),callback:function ($$v) {_vm.isEditingCustomView=$$v},expression:\"isEditingCustomView\"}}),_c('DeleteCustomViewDialog',{attrs:{\"customView\":_vm.focusedCustomView},on:{\"deleteComplete\":_vm.handleDeleteComplete,\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},model:{value:(_vm.isDeletingCustomView),callback:function ($$v) {_vm.isDeletingCustomView=$$v},expression:\"isDeletingCustomView\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"title\":_vm.$t('deleteCustomViewDialog.title'),\"subtitle\":_vm.$t('deleteCustomViewDialog.subtitle'),\"value\":{ name: _vm.customView?.name },\"loading\":_vm.$wait.is('deletingCustomView'),\"warning-text\":_vm.$t('deleteCustomViewDialog.warningText')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-customView-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deletingCustomView'),expression:\"'deletingCustomView'\"}],attrs:{\"value\":_vm.customView,\"form\":formId,\"clear\":clear,\"loading\":loading,\"valid\":isValid},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulDeletion(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/customViews/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n {\r\n \"en\": {\r\n \"deleteCustomViewButton.errorMessage\": \"There was an error encountered while deleting this custom view. If everything looks right please contact support so we can help you :)\"\r\n }\r\n }\r\n \r\n \r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteCustomViewButton.vue?vue&type=template&id=7d66ec4f&\"\nimport script from \"./DeleteCustomViewButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteCustomViewButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteCustomViewDialog.events.successfulDeletion\": \"Successfully deleted the custom view '{customViewName}'\",\r\n \"deleteCustomViewDialog.title\": \"Delete Custom View\",\r\n \"deleteCustomViewDialog.subtitle\": \"Please enter the name of this custom view to delete it.\",\r\n \"deleteCustomViewDialog.warningText\": \"Deleting this custom view will also delete all associated budgets if any.\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteCustomViewDialog.vue?vue&type=template&id=4ce692bc&\"\nimport script from \"./DeleteCustomViewDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteCustomViewDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('customView-card-dialog',{attrs:{\"value\":_vm.value,\"customView\":_vm.customView,\"loading\":_vm.$wait.is('updatingCustomView')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ form, formId, isValid, loading, close }){return [_c('put-customView-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('updatingCustomView'),expression:\"'updatingCustomView'\"}],attrs:{\"value\":{ ...form, id: _vm.customView.id },\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCreation(form))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-put-button',_vm._g(_vm._b({attrs:{\"href\":`/api/customViews/${(_vm.value || {}).id}`,\"value\":_vm.value,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-put-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putCustomViewButton.errorMessage\": \"There was an error encountered while updating this custom view. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutCustomViewButton.vue?vue&type=template&id=1d95da88&\"\nimport script from \"./PutCustomViewButton.vue?vue&type=script&lang=js&\"\nexport * from \"./PutCustomViewButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutCustomViewButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"putCustomViewDialog.events.successfulUpdates\": \"Successfully updated the customView '{customViewName}'\"\r\n }\r\n}\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PutCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PutCustomViewDialog.vue?vue&type=template&id=3ee41043&\"\nimport script from \"./PutCustomViewDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./PutCustomViewDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PutCustomViewDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { getCustomView } from '@/lib/Api';\r\nimport { computed, defineComponent, ref } from 'vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { ICustomViewSummaryResult } from '@/models';\r\nimport DeleteCustomViewDialog from '@/components/Domain.CustomViews/DeleteCustomViewDialog.vue';\r\nimport PutCustomViewDialog from '@/components/Domain.CustomViews/PutCustomViewDialog.vue';\r\n\r\nexport default defineComponent({\r\n components: { PutCustomViewDialog, DeleteCustomViewDialog },\r\n data() {\r\n return {\r\n currentPage: 1,\r\n pageCount: 0,\r\n itemsPerPage: 10,\r\n indexDictionary: {},\r\n };\r\n },\r\n props: {\r\n items: {\r\n type: Array,\r\n default: null,\r\n },\r\n loading: Boolean,\r\n routePrefix: {\r\n type: String,\r\n default: '/customviews',\r\n },\r\n },\r\n setup(p) {\r\n const focusedCustomView = ref(null);\r\n\r\n const records = computed(() => {\r\n if (!p.items) return [];\r\n return p.items.map((b: ICustomViewSummaryResult) => ({ ...b }));\r\n });\r\n\r\n const isEditingCustomView = ref(false);\r\n const startEditCustomView = (customView: ICustomViewSummaryResult) => {\r\n isEditingCustomView.value = true;\r\n focusedCustomView.value = customView;\r\n };\r\n\r\n const isDeletingCustomView = ref(false);\r\n const startDeleteCustomView = (customView: ICustomViewSummaryResult) => {\r\n isDeletingCustomView.value = true;\r\n focusedCustomView.value = customView;\r\n };\r\n\r\n return {\r\n records,\r\n startDeleteCustomView,\r\n isDeletingCustomView,\r\n focusedCustomView,\r\n isEditingCustomView,\r\n startEditCustomView,\r\n };\r\n },\r\n computed: {\r\n headers() {\r\n return [\r\n { text: this.$t('customViewsTable.name'), value: 'name' },\r\n { text: this.$t('customViewsTable.filters'), value: 'filterDescription' },\r\n { text: '', value: 'loading', width: '10', sortable: false },\r\n { text: this.$t('customViewsTable.history'), value: 'last12Weeks', width: '150' },\r\n { text: this.$t('customViewsTable.lastMonth'), value: 'lastMonthActual', align: 'right' },\r\n { text: this.$t('customViewsTable.currentMonth'), value: 'currentMonthForecast', align: 'right' },\r\n { text: this.$t('customViewsTable.difference'), value: 'forecastDeltaSpend', align: 'center' },\r\n { text: this.$t('customViewsTable.budgets'), value: 'budgetStatus', align: 'center' },\r\n { text: this.$t('customViewsTable.actions'), value: 'actions', align: 'center', width: '5 %' },\r\n ];\r\n },\r\n },\r\n watch: {\r\n currentPage(newValue) {\r\n this.loadExtraDataForCurrentPage(newValue, this.itemsPerPage);\r\n },\r\n itemsPerPage(newItemsPerPage) {\r\n this.loadExtraDataForCurrentPage(this.currentPage, newItemsPerPage);\r\n },\r\n loading: {\r\n deep: true,\r\n immediate: true,\r\n handler(val) {\r\n if (!val) {\r\n this.indexDictionary = {};\r\n this.records.forEach((item, index) => {\r\n this.indexDictionary[item.id] = index;\r\n });\r\n this.loadExtraDataForCurrentPage(this.currentPage, this.itemsPerPage);\r\n }\r\n },\r\n },\r\n },\r\n methods: {\r\n handleEditComplete() {\r\n this.isEditingCustomView = false;\r\n this.focusedCustomView = null;\r\n },\r\n handleDeleteComplete() {\r\n this.isDeletingCustomView = false;\r\n this.focusedCustomView = null;\r\n },\r\n loadExtraDataForCurrentPage(currentPage, itemsPerPage) {\r\n const startIdx = (currentPage - 1) * itemsPerPage;\r\n const endIdx = startIdx + itemsPerPage;\r\n const itemsOnCurrentPage = this.records.slice(startIdx, endIdx);\r\n if (!this.loading) {\r\n this.loadDetailedData(itemsOnCurrentPage);\r\n }\r\n },\r\n async loadDetailedData(updatedItems) {\r\n try {\r\n const promises = updatedItems\r\n .filter((item) => !item.lastMonthActual)\r\n .map((item) => getCustomView(item.id));\r\n\r\n if (promises.length == 0) return;\r\n const extraDataArray = await Promise.all(promises);\r\n\r\n extraDataArray.forEach((additionalData) => {\r\n if (additionalData) {\r\n const itemIndex = this.indexDictionary[additionalData.id];\r\n if (itemIndex !== undefined) {\r\n this.$set(this.records[itemIndex], 'currencyCode', additionalData.currencyCode);\r\n this.$set(this.records[itemIndex], 'last12Weeks', additionalData.last12Weeks);\r\n this.$set(this.records[itemIndex], 'lastMonthActual', additionalData.lastMonthActual);\r\n this.$set(\r\n this.records[itemIndex],\r\n 'currentMonthForecast',\r\n additionalData.currentMonthForecast\r\n );\r\n this.$set(this.records[itemIndex], 'forecastDeltaSpend', additionalData.forecastDeltaSpend);\r\n this.$set(\r\n this.records[itemIndex],\r\n 'forecastDeltaPercentage',\r\n additionalData.forecastDeltaPercentage\r\n );\r\n this.$set(this.records[itemIndex], 'budgetStatus', additionalData.budgetStatus);\r\n }\r\n }\r\n });\r\n } catch (error) {\r\n toastError(this.$t('customViewsTable.failedToLoad'));\r\n }\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomViewsTable.vue?vue&type=template&id=3348ea04&\"\nimport script from \"./CustomViewsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomViewsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomViewsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}])},[_c('v-list',[_c('DeleteCustomViewDialog',{attrs:{\"customView\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('customViewMenu.delete')))])],1)],1)]}}]),model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"customViewMenu.delete\": \"Delete\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViewMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomViewMenu.vue?vue&type=template&id=9693f186&\"\nimport script from \"./CustomViewMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./CustomViewMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomViewMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport CustomViewsTable from '@/components/Domain.CustomViews/CustomViewsTable.vue';\r\nimport CustomViewMenu from '@/components/Domain.CustomViews/CustomViewMenu.vue';\r\nimport PostCustomViewDialog from '@/components/Domain.CustomViews/PostCustomViewDialog.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport { mapStores } from 'pinia';\r\nimport { getCustomViews } from '@/lib/Api';\r\nimport { defineComponent } from 'vue';\r\n\r\nexport default defineComponent({\r\n data() {\r\n return { isShowingReport: false, customViews: [], isCreating: false, customViewsLoading: true };\r\n },\r\n components: { CustomViewsTable, CustomViewMenu, PostCustomViewDialog },\r\n created() {\r\n this.loadReports();\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n methods: {\r\n loadReports: waitFor('loadingCustomViews', async function loadingReports() {\r\n try {\r\n this.customViewsLoading = true;\r\n this.customViews = await getCustomViews();\r\n this.customViewsLoading = false;\r\n } catch (err) {\r\n toastError(this.$t('customViews.failedToLoad'));\r\n }\r\n }),\r\n handleDialogClose(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/customviews');\r\n this.$title = this.$t('customViews.title');\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViews.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViews.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViews.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomViews.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomViews.vue?vue&type=template&id=402487cc&\"\nimport script from \"./CustomViews.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomViews.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomViews.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('customView.title', { customviewName: _vm.selectedCustomView ? _vm.selectedCustomView.name : '...' }),\"icon\":\"table_view\"}}),_c('v-toolbar',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"to\":\"/customviews\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" \"+_vm._s(_vm.$t('customView.backButtonText'))+\" \")],1),_c('v-spacer'),(_vm.wait.is('loadingCustomView'))?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_vm._e()],1),_c('v-container',{staticClass:\"pt-3\"},[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":_vm.$t('customView.currentMonth', { thisMonthName: _vm.thisMonthName }),\"subtitle\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.selectedCustomView ? _vm.selectedCustomView.currentMonthForecast : 0,_vm.currencyCode))+\" \")]},proxy:true},{key:\"subtitle\",fn:function(){return [_c('span',{class:_vm.percentageDownFromLastMonth < 0 ? 'success--text' : 'error--text'},[_c('comparison-icon',{attrs:{\"value\":_vm.selectedCustomView ? _vm.selectedCustomView.currentMonthForecast : 0,\"compare\":_vm.selectedCustomView ? _vm.selectedCustomView.lastMonthActual : 0}}),_vm._v(\" \"+_vm._s(_vm.$t(_vm.percentageDownFromLastMonth < 0 ? \"customView.lessThan\" : \"customView.moreThan\", { percentage: _vm.percentageDownFromLastMonth, month: _vm.lastMonthName }))+\" \")],1)]},proxy:true}])}),_c('title-sheet',{attrs:{\"title\":_vm.$t('customView.lastMonth', { lastMonthName: _vm.lastMonthName }),\"subtitle\":_vm.lastMonthSubtitle},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(_vm.selectedCustomView ? _vm.selectedCustomView.lastMonthActual : 0,_vm.currencyCode))+\" \")]},proxy:true}])}),_c('title-sheet',{attrs:{\"title\":_vm.$t('customView.budgets'),\"subtitle\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 2)?_c('span',{staticClass:\"error--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"info\")])],1):(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 1)?_c('span',{staticClass:\"warning--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"info\")])],1):(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 0)?_c('span',{staticClass:\"success--text text-center\"},[_c('v-icon',{attrs:{\"color\":\"success\"}},[_vm._v(\"info\")])],1):_c('span',{staticClass:\"text-center\"},[_c('span',[_vm._v(\"n/a\")])])]},proxy:true},{key:\"subtitle\",fn:function(){return [(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 2)?_c('span',{staticClass:\"error--text text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('customView.budgetExceedsActual'))+\" \")]):(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 1)?_c('span',{staticClass:\"warning--text text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('customView.budgetExceedsForecast'))+\" \")]):(_vm.selectedCustomView && _vm.selectedCustomView.budgetStatus == 0)?_c('span',{staticClass:\"success--text text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('customView.budgetAllGood'))+\" \")]):_c('span',{staticClass:\"text-center\"},[_vm._v(\" \"+_vm._s(_vm.$t('customView.budgetNotAvailable'))+\" \")])]},proxy:true}])})],1),_c('v-card',{staticClass:\"mx-auto\",attrs:{\"loading\":_vm.loading}},[_c('template',{slot:\"progress\"},[_c('v-progress-linear',{attrs:{\"color\":\"primary\",\"height\":\"10\",\"indeterminate\":\"\"}})],1),_c('v-card-title',{staticClass:\"mb-0 pb-0\"},[_vm._v(\" \"+_vm._s(_vm.selectedCustomView ? _vm.selectedCustomView.name : '...')+\" \")]),_c('v-card-subtitle',{staticClass:\"mt-0 pt-0\"},[_vm._v(\" \"+_vm._s(_vm.selectedCustomView ? _vm.selectedCustomView.filterDescription : '...')+\" \")]),_c('v-tabs',{model:{value:(_vm.selectedTab),callback:function ($$v) {_vm.selectedTab=$$v},expression:\"selectedTab\"}},_vm._l((_vm.tabs),function(tab){return _c('v-tab',{key:tab.key,attrs:{\"to\":tab.key}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(_vm._s(tab.icon))]),_vm._v(\" \"+_vm._s(_vm.$t(tab.text))+\" \")],1)}),1),_c('v-divider'),_c('v-card-text',[_c('router-view',{attrs:{\"value\":_vm.selectedCustomView,\"loading\":_vm.loading}})],1),_c('v-divider'),_c('v-card-actions',[_vm._t(\"default\")],2)],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { useTenantStore, useWaitStore, storeToRefs } from '@/stores';\r\nimport { defineComponent, computed, ref } from 'vue';\r\nimport { ICustomViewResult } from '@/models';\r\nimport { getCustomView } from '@/lib/Api';\r\nimport { formatCurrency } from \"@/lib/Currencies\";\r\nimport moment from \"@/lib/moment\";\r\n\r\nexport default defineComponent({\r\n data() {\r\n return {\r\n selectedTab: 'overview',\r\n thisMonthName: moment.utc().format(\"MMMM\"),\r\n lastMonthName: moment.utc().add(-1, \"months\").format(\"MMMM\"),\r\n creditsLastMonth: 0.0,\r\n }\r\n },\r\n computed: {\r\n percentageDownFromLastMonth() {\r\n if (!this.selectedCustomView) return 0;\r\n return (-1 * (100 - (100 / this.selectedCustomView.lastMonthActual) * this.selectedCustomView.currentMonthForecast)).toFixed(2);\r\n },\r\n lastMonthSubtitle() {\r\n const lastMonth = moment.utc().add(-1, \"months\");\r\n const nocreditsTxt = `${lastMonth.format(\"MMMM\")} 1-${lastMonth.daysInMonth()}`;\r\n const creditsValue = formatCurrency(\r\n this.creditsLastMonth,\r\n this.currencyCode\r\n );\r\n return this.creditsLastMonth > 0\r\n ? this.$t(\"customView.titles.creditsLastMonth\", { credits: creditsValue })\r\n : nocreditsTxt;\r\n },\r\n },\r\n setup() {\r\n const tabs = computed(() =>\r\n [\r\n { key: 'overview', icon: 'insights', text: 'customView.overview' },\r\n { key: 'usage', icon: 'insights', text: 'customView.usage' }\r\n ].filter((t) => t)\r\n );\r\n\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const customViewId = ref();\r\n const selectedCustomView = ref(null);\r\n\r\n const loadCustomView = async () => {\r\n await whilst('loadingCustomView', async () => {\r\n selectedCustomView.value = await getCustomView(customViewId.value);\r\n });\r\n };\r\n\r\n return {\r\n tabs,\r\n customViewId,\r\n selectedCustomView,\r\n currencyCode,\r\n loadCustomView,\r\n wait: { is, whilst }\r\n };\r\n },\r\n methods: {\r\n\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (!to) return;\r\n this.customViewId = to.params.id;\r\n this.loadCustomView();\r\n this.loading = false;\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CustomView.vue?vue&type=template&id=703aa252&\"\nimport script from \"./CustomView.vue?vue&type=script&lang=ts&\"\nexport * from \"./CustomView.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CustomView.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('v-container',[_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('customView.overview.yearInReview'),\"title-icon\":\"savings\",\"loading\":_vm.$wait.is('getTenantMonthlyUsage'),\"caption\":_vm.$t('customView.overview.monthAverage', {\n total: _vm.averageMonthlySpend.value.toFixed(2),\n currency: _vm.tenantStore.currencyCode,\n })}},[_c('SpendUsageBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"granularity\":_vm.spendOptions.granularity},on:{\"click\":_vm.handleDatasetClicked}})],1),_c('content-card',{staticClass:\"pb-1 mt-3\",attrs:{\"title\":_vm.$t('customView.budgets.subTitle'),\"caption\":_vm.$t('customView.budgets.caption')}},[_c('BudgetsTable',{attrs:{\"loading\":_vm.wait.is('gettingBudgets'),\"items\":_vm.budgets,\"route-prefix\":\"/budgets\"},on:{\"http2xx\":function($event){return _vm.loadBudgets()}}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.records,\"item-key\":\"id\",\"mobile-breakpoint\":\"0\",\"loading-text\":_vm.$t('budgetsTable.loadingBudgets'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('budgetsTable.noBudgets'))+\" \")]},proxy:true},{key:`item.name`,fn:function({ item }){return [_c('span',[_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/details/${item.id}`}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])],1),_c('br'),(item.currentPeriodEndDate)?_c('small',[_vm._v(_vm._s(item.budgetPeriodString)+\" - \"+_vm._s(Math.ceil(item.daysLeftInPeriod))+\" days left\")]):_vm._e()]}},{key:`item.amount`,fn:function({ item }){return [_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.amount,item.currencyCode)))])]}},{key:`item.view`,fn:function({ item }){return [_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/customviews/${item.customView.id}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"table_view\")]),_vm._v(\" \"+_vm._s(item.customView.name)+\" \")],1)]}},{key:`item.progress`,fn:function({ item }){return [_c('consumption-bar',{attrs:{\"current-consumption\":item.currentPercentage || 0,\"predicted-consumption\":item.projectedPercentage || 0,\"max-consumption\":_vm._f(\"currency\")(item.amount,item.currencyCode),\"min-consumption\":_vm._f(\"currency\")(0,item.currencyCode)}})]}},{key:`item.actual`,fn:function({ item }){return [_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.currentSpend || 0,item.currencyCode)))])]}},{key:`item.projections`,fn:function({ item }){return [(item.currentSpend > item.amount)?_c('v-col',{staticClass:\"error--text text-right\"},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"error\")]),_c('small',[_vm._v(_vm._s(item.forecastString))])],1):(item.projectedSpend > item.amount)?_c('v-col',{staticClass:\"warning--text text-right\"},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]),_c('small',[_vm._v(_vm._s(item.forecastString))])],1):_c('v-col',{staticClass:\"text-right\"},[_c('small',[_vm._v(_vm._s(item.forecastString))])])]}},(_vm.tenantStore.hasPermission('CanContribute'))?{key:`item.actions`,fn:function({ item }){return [_c('DeleteBudgetDialog',{attrs:{\"budget\":item},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"delete\")])],1)]}}],null,true),model:{value:(item.isDeleting),callback:function ($$v) {_vm.$set(item, \"isDeleting\", $$v)},expression:\"item.isDeleting\"}})]}}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"title\":_vm.$t('deleteBudgetDialog.title'),\"subtitle\":_vm.$t('deleteBudgetDialog.subtitle'),\"value\":{ name: _vm.budget.name },\"loading\":_vm.$wait.is('deletingBudget')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('DeleteBudgetButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deletingBudget'),expression:\"'deletingBudget'\"}],attrs:{\"value\":_vm.budget,\"form\":formId,\"clear\":clear,\"loading\":loading,\"valid\":isValid},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulDeletion(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/budgets/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n {\r\n \"en\": {\r\n \"deleteBudgetButton.errorMessage\": \"There was an error encountered while deleting this budget. If everything looks right please contact support so we can help you :)\"\r\n }\r\n }\r\n \r\n \r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteBudgetButton.vue?vue&type=template&id=1f3a9bdf&\"\nimport script from \"./DeleteBudgetButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteBudgetButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteBudgetButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deleteBudgetDialog.events.successfulDeletion\": \"Successfully deleted the budget '{name}'\",\r\n \"deleteBudgetDialog.title\": \"Delete Budget\",\r\n \"deleteBudgetDialog.subtitle\": \"Please enter the name of this budget to delete it\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeleteBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeleteBudgetDialog.vue?vue&type=template&id=395f4970&\"\nimport script from \"./DeleteBudgetDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeleteBudgetDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeleteBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { computed, defineComponent } from 'vue';\r\nimport ConsumptionBar from '@/components/Common/ConsumptionBar.vue';\r\nimport DeleteBudgetDialog from '@/components/Domain.Budgets/DeleteBudgetDialog.vue';\r\nimport { IBudgetResult } from '@/models';\r\nimport { mapStores } from 'pinia';\r\nimport { useTenantStore } from '@/stores';\r\n\r\nexport default defineComponent({\r\n components: { ConsumptionBar, DeleteBudgetDialog },\r\n props: {\r\n items: Array,\r\n loading: Boolean,\r\n routePrefix: {\r\n type: String,\r\n default: '/budgets',\r\n },\r\n },\r\n setup(p) {\r\n const records = computed(() => {\r\n if (!p.items) return [];\r\n return p.items.map((b: IBudgetResult) => ({ ...b, isDeleting: false }));\r\n });\r\n return { records };\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n headers() {\r\n return [\r\n { text: this.$t('budgetsTable.name'), value: 'name' },\r\n { text: this.$t('budgetsTable.view'), value: 'view', width: '20%' }, \r\n { text: this.$t('budgetsTable.progress'), value: 'progress', align: 'center', width: '25%' },\r\n { text: this.$t('budgetsTable.amount'), value: 'amount', align: 'right' },\r\n { text: this.$t('budgetsTable.actual'), value: 'actual', align: 'right' },\r\n { text: this.$t('budgetsTable.projections'), value: 'projections', align: 'right' },\r\n { text: this.$t('budgetsTable.actions'), value: 'actions', align: 'center', width: '5 %' },\r\n ];\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetsTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetsTable.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./BudgetsTable.vue?vue&type=template&id=76357a0b&\"\nimport script from \"./BudgetsTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./BudgetsTable.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./BudgetsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport SpendUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n IClickEvent,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageBarChart.vue';\r\nimport {\r\n SpendUsageOptions,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport { filterUsageParamsByFilterChips, IChipViewModel } from '@/components/Domain.Usage/UsageFilterChips.vue';\r\nimport { toastError } from '@/components/Common/Toast.vue';\r\nimport BudgetsTable from '@/components/Domain.Budgets/BudgetsTable.vue';\r\nimport {\r\n PluralEntityType,\r\n ICustomViewResult,\r\n Granularity,\r\n IBudgetResult,\r\n ISpendUsageTableRecordsViewModel,\r\n SpendFieldNames,\r\n} from '@/models';\r\nimport EntityType, { fromPlural } from '@/models/EntityType';\r\nimport { useTenantStore, useWaitStore, storeToRefs } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport { getSpend, getForecast } from '@/lib/Api';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { i18n } from '@/i18n';\r\nimport * as Api from '@/lib/Api';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\n\r\nexport default defineComponent({\r\n data() {\r\n return { isShowingReport: false, customViews: [], isCreating: false, customViewsLoading: true };\r\n },\r\n components: { SpendUsageBarChart, BudgetsTable },\r\n props: { value: Object, loading: Boolean },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n routePrefix() {\r\n return `/customViews/${this.value.id}`;\r\n },\r\n },\r\n setup(p) {\r\n const budgets = ref([]);\r\n const loadBudgets = async () =>\r\n await whilst('gettingBudgets', async function () {\r\n const view = p.value as ICustomViewResult;\r\n budgets.value = await Api.getCustomViewBudgets(view.id);\r\n });\r\n\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const { is, whilst } = useWaitStore();\r\n const spendOptions = ref({\r\n dateRangeKey: '13m',\r\n forecastRangeKey: '3m',\r\n granularity: Granularity.monthly,\r\n topXResults: 10,\r\n });\r\n const newChartData = ref({ labels: [], datasets: [] });\r\n const usageTableItems = ref(null);\r\n const filters = ref([]);\r\n const averageMonthlySpend = { value: 0.0 };\r\n const maxDate = ref(null);\r\n const loadTabUsage = async () =>\r\n await whilst('getAccountUsage', async () => {\r\n const view = p.value as ICustomViewResult;\r\n let params = convertSpendOptionsToQuery(spendOptions.value);\r\n const segregateBy = spendOptions.value.segregateBy as PluralEntityType;\r\n params = filterUsageParamsByFilterChips(filters.value, params);\r\n if (!params) return;\r\n const [usageResponse, projectionsResponse] = await Promise.all([\r\n getSpend({\r\n ...params,\r\n savedViewId: view.id,\r\n segregateBy: spendOptions.value.segregateBy,\r\n fields: [SpendFieldNames.Charges],\r\n }),\r\n getForecast(\r\n { ...params, savedViewId: view.id },\r\n spendOptions.value.dateRangeKey,\r\n spendOptions.value.forecastRangeKey\r\n ),\r\n ]);\r\n const usageDataset = convertUsageResponseToDatasets(usageResponse, {\r\n reportType: UsageReportTypes.charges,\r\n });\r\n const forecastDataset = convertProjectionsResponseToDataset(projectionsResponse);\r\n newChartData.value = {\r\n labels: [...forecastDataset.labels, ...usageDataset.labels],\r\n datasets: [...forecastDataset.datasets, ...usageDataset.datasets],\r\n };\r\n usageTableItems.value = SpendUsageTableFunctions.convertToItemRecords(\r\n params,\r\n segregateBy,\r\n usageResponse,\r\n spendOptions.value.costView\r\n );\r\n averageMonthlySpend.value = usageResponse.recordAverage || 0.0;\r\n maxDate.value = projectionsResponse?.maxUsageDate || params.toDate;\r\n });\r\n\r\n const handleDatasetClicked = ({ isOther, name, datasetGroupId }: IClickEvent) => {\r\n if (isOther) {\r\n spendOptions.value.topXResults = spendOptions.value.topXResults + 10;\r\n } else if (spendOptions.value.segregateBy === PluralEntityType.meters) {\r\n toastError(i18n.t('shared.meterInformationNotSupported'));\r\n } else {\r\n filters.value.push({\r\n id: datasetGroupId,\r\n name,\r\n type: fromPlural(spendOptions.value.segregateBy) as EntityType,\r\n });\r\n }\r\n };\r\n\r\n watch(\r\n () => [p.value, spendOptions.value, filters.value],\r\n () => {\r\n if (!p.value || !spendOptions.value || is('getAccountUsage')) return;\r\n loadTabUsage();\r\n loadBudgets();\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return {\r\n spendOptions,\r\n newChartData,\r\n usageTableItems,\r\n filters,\r\n loadTabUsage,\r\n handleDatasetClicked,\r\n averageMonthlySpend,\r\n currencyCode,\r\n wait: { is },\r\n budgets,\r\n loadBudgets,\r\n maxDate,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Overview.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Overview.vue?vue&type=template&id=7b76b14e&\"\nimport script from \"./Overview.vue?vue&type=script&lang=ts&\"\nexport * from \"./Overview.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Overview.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.pageTitle,\"icon\":\"price_check\"}}),_c('v-container',[_c('title-sheets',[((_vm.tenantStore.hasTenantFeature('Budgets')))?_c('title-sheet',{attrs:{\"title\":_vm.$t('budgets.titles.totalBudgets')}},[_vm._v(\" \"+_vm._s(_vm.budgets.length + _vm.spendLimits.length)+\" \")]):_c('title-sheet',{attrs:{\"title\":_vm.$t('budgets.titles.totalSpendLimits')}},[_vm._v(\" \"+_vm._s(_vm.spendLimits.length)+\" \")]),_c('title-sheet',{attrs:{\"title\":_vm.$t('budgets.titles.totalProjectedAbove')}},[_vm._v(\" \"+_vm._s(_vm.totalProjectedAbove)+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"color\":_vm.totalProjectedAbove === 0 ? 'success' : 'warning'}},[_vm._v(\" \"+_vm._s(_vm.totalProjectedAbove === 0 ? 'done' : 'warning')+\" \")])],1),_c('title-sheet',{attrs:{\"title\":_vm.$t('budgets.titles.totalActuallyAbove')}},[_vm._v(\" \"+_vm._s(_vm.totalActuallyAbove)+\" \"),_c('v-icon',{attrs:{\"right\":\"\",\"color\":_vm.totalActuallyAbove === 0 ? 'success' : 'error'}},[_vm._v(\" \"+_vm._s(_vm.totalActuallyAbove === 0 ? 'done' : 'error')+\" \")])],1)],1),((_vm.tenantStore.hasTenantFeature('Budgets')))?_c('content-card',{staticClass:\"pb-1\",attrs:{\"title\":_vm.$t('budgets.subTitle'),\"caption\":_vm.$t('budgets.caption')},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"title-actions\",fn:function(){return [_c('CreateBudgetDialog',{on:{\"http2xx\":function($event){_vm.loadBudgets(_vm.tenantStore.hasTenantFeature('Budgets'))}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',[_vm._v(\"add\")]),_vm._v(\" Create \")],1)]}}],null,false,294327437),model:{value:(_vm.isCreating),callback:function ($$v) {_vm.isCreating=$$v},expression:\"isCreating\"}})]},proxy:true}:null],null,true)},[_c('BudgetsTable',{attrs:{\"loading\":_vm.wait.is('gettingBudgets'),\"items\":_vm.budgets,\"route-prefix\":\"/budgets\"},on:{\"http2xx\":function($event){_vm.loadBudgets(_vm.tenantStore.hasTenantFeature('Budgets'))}}})],1):_vm._e(),_c('content-card',{staticClass:\"pb-1 mt-3\",attrs:{\"title\":_vm.$t('budgets.spendlimits.title'),\"caption\":_vm.$t('budgets.spendlimits.caption')},scopedSlots:_vm._u([(_vm.tenantStore.hasPermission('CanContribute'))?{key:\"title-actions\",fn:function(){return [_c('SetSpendLimitSelectorDialog',{on:{\"http2xx\":function($event){return _vm.loadSpendLimits()}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"color\":\"secondary\"}},on),[_c('v-icon',[_vm._v(\"add\")]),_vm._v(\" Create \")],1)]}}],null,false,294327437),model:{value:(_vm.isCreatingLimit),callback:function ($$v) {_vm.isCreatingLimit=$$v},expression:\"isCreatingLimit\"}})]},proxy:true}:null],null,true)},[_c('SpendLimitsTable',{attrs:{\"loading\":_vm.wait.is('gettingSpendLimits'),\"items\":_vm.spendLimits,\"route-prefix\":\"/budgets\"},on:{\"http2xx\":function($event){return _vm.loadSpendLimits()}}})],1)],1),_c('router-view',{attrs:{\"route-prefix\":\"/budgets\"},on:{\"input\":_vm.handleDialogClose}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('SetBudgetDialog',{attrs:{\"value\":_vm.value,\"budget\":_vm.budget,\"loading\":_vm.$wait.is('creatingBudget')},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ form, formId, isValid, loading, close }){return [_c('CreateBudgetButton',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('creatingBudget'),expression:\"'creatingBudget'\"}],attrs:{\"value\":form,\"clear\":() => {},\"valid\":isValid,\"form\":formId,\"loading\":loading},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulCreation($event))}}})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"activator\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('SetBudgetCard',{attrs:{\"value\":_vm.budget,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function(actionBindings){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_vm._t(\"default\",null,null,{...actionBindings, close})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-card',{attrs:{\"title\":_vm.title || _vm.$t('setBudgetCard.title'),\"subtitle\":_vm.subtitle || _vm.$t('setBudgetCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset }){return [_vm._t(\"actions\",null,{\"form\":_vm.form,\"formId\":formId,\"isValid\":_vm.isValid,\"loading\":_vm.loading,\"clear\":reset})]}}],null,true),model:{value:(_vm.isValid),callback:function ($$v) {_vm.isValid=$$v},expression:\"isValid\"}},[_c('v-text-field',{attrs:{\"label\":\"Name\"},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}}),_c('v-select',{attrs:{\"items\":_vm.periods,\"item-text\":\"text\",\"item-value\":\"id\",\"label\":\"Period\"},model:{value:(_vm.period),callback:function ($$v) {_vm.period=$$v},expression:\"period\"}}),_c('text-date-picker',{attrs:{\"label\":\"Start Date\"},model:{value:(_vm.periodStartDate),callback:function ($$v) {_vm.periodStartDate=$$v},expression:\"periodStartDate\"}}),_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"Amount\"},model:{value:(_vm.amount),callback:function ($$v) {_vm.amount=$$v},expression:\"amount\"}}),_c('v-text-field',{attrs:{\"type\":\"number\",\"label\":\"Growth Rate\",\"prefix\":\"%\"},model:{value:(_vm.growthRatePercentage),callback:function ($$v) {_vm.growthRatePercentage=$$v},expression:\"growthRatePercentage\"}}),_c('v-select',{attrs:{\"items\":_vm.customViews,\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Custom View\"},model:{value:(_vm.customViewId),callback:function ($$v) {_vm.customViewId=$$v},expression:\"customViewId\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, computed } from 'vue';\r\nimport { BudgetPeriod, ICustomViewResult } from '@/models';\r\nimport { getCustomViews } from '@/lib/Api';\r\nexport default defineComponent({\r\n props: { title: String, subtitle: String, loading: Boolean },\r\n setup() {\r\n const isValid = ref(false);\r\n const name = ref('');\r\n const period = ref(BudgetPeriod.Monthly);\r\n const periods = ref([\r\n { id: BudgetPeriod.Weekly, text: 'Weekly' },\r\n { id: BudgetPeriod.Monthly, text: 'Monthly' },\r\n { id: BudgetPeriod.Quarterly, text: 'Quarterly' },\r\n { id: BudgetPeriod.Yearly, text: 'Yearly' },\r\n ]);\r\n const periodStartDate = ref(new Date());\r\n const amount = ref(0);\r\n const growthRatePercentage = ref(0.0);\r\n const customViewId = ref('');\r\n const customViews = ref([]);\r\n getCustomViews().then((v) => (customViews.value = v));\r\n const form = computed(() => ({\r\n name: name.value,\r\n period: period.value,\r\n periodStartDate: periodStartDate.value,\r\n amount: amount.value,\r\n growthRatePercentage: growthRatePercentage.value,\r\n customViewId: customViewId.value,\r\n }));\r\n return {\r\n isValid,\r\n period,\r\n periodStartDate,\r\n amount,\r\n growthRatePercentage,\r\n customViewId,\r\n customViews,\r\n periods,\r\n name,\r\n form,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetCard.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetCard.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetCard.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetBudgetCard.vue?vue&type=template&id=2b9b64e9&\"\nimport script from \"./SetBudgetCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetBudgetCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetBudgetCard.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetBudgetDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SetBudgetDialog.vue?vue&type=template&id=78a5e919&\"\nimport script from \"./SetBudgetDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./SetBudgetDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-post-button',_vm._g(_vm._b({attrs:{\"href\":\"/api/budgets\",\"value\":_vm.value,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-post-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createBudgetButton.errorMessage\": \"There was an error encountered while updating this budget. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateButtonButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateButtonButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateButtonButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateButtonButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateButtonButton.vue?vue&type=template&id=38dc8b75&\"\nimport script from \"./CreateButtonButton.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateButtonButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateButtonButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"createBudgetDialog.events.successfulCreation\": \"Successfully created the budget '{name}'\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateBudgetDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateBudgetDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CreateBudgetDialog.vue?vue&type=template&id=63721e4f&\"\nimport script from \"./CreateBudgetDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./CreateBudgetDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CreateBudgetDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-data-table',{attrs:{\"headers\":_vm.headers,\"items\":_vm.items,\"item-key\":\"id\",\"mobile-breakpoint\":\"0\",\"loading-text\":_vm.$t('spendLimitsTable.loadingLimits'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.$t('spendLimitsTable.noLimits'))+\" \")]},proxy:true},{key:`item.name`,fn:function({ item }){return [_c('div',{staticClass:\"nowrap\"},[(item.type == 'Service')?_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/services/${item.service.id}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"memory\")]),_vm._v(\" \"+_vm._s(item.service.name)+\" \")],1):(item.type == 'Subscription')?_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/subscriptions/${item.subscription.id}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"cloud_queue\")]),_vm._v(\" \"+_vm._s(item.subscription.name)+\" \")],1):(item.type == 'Product')?_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/products/${item.product.id}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"shopping_cart\")]),_vm._v(\" \"+_vm._s(item.product.name)+\" \")],1):(item.type === 'TagKeyValue')?_c('router-link',{attrs:{\"to\":`${_vm.routePrefix}/tagkeys/${item.tagKeyValue.tagKey}/tag/${item.tagKeyValue.id}`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"sell\")]),_vm._v(\" \"+_vm._s(item.tagKeyValue.name)+\" \")],1):_c('span',[_vm._v(\" Error: Unknown type - \"+_vm._s(item.type)+\" \")])],1)]}},{key:`item.progress`,fn:function({ item }){return [_c('consumption-bar',{attrs:{\"current-consumption\":item.currentPercentage,\"predicted-consumption\":item.projectedPercentage,\"max-consumption\":_vm._f(\"currency\")(item.limit,item.currencyCode),\"min-consumption\":_vm._f(\"currency\")(0,item.currencyCode)}})]}},{key:`item.limit`,fn:function({ item }){return [_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.limit,item.currencyCode)))])]}},{key:`item.actual`,fn:function({ item }){return [_c('v-col',{staticClass:\"text-right\"},[_vm._v(_vm._s(_vm._f(\"currency\")(item.currentFigure || 0,item.currencyCode)))])]}},{key:`item.projections`,fn:function({ item }){return [(item.currentFigure > item.limit)?_c('v-col',{staticClass:\"error--text text-right\"},[_c('v-icon',{attrs:{\"color\":\"error\"}},[_vm._v(\"error\")]),_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.projectedFigure - item.limit || 0,item.currencyCode))+\" \"),_c('small',[_vm._v(\"over budget\")])],1):(item.projectedFigure > item.limit)?_c('v-col',{staticClass:\"warning--text text-right\"},[_c('v-icon',{attrs:{\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.projectedFigure - item.limit || 0,item.currencyCode))+\" \"),_c('small',[_vm._v(\"over budget\")])],1):(item.projectedFigure <= item.limit)?_c('v-col',{staticClass:\"text-right\"},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.limit - item.projectedFigure || 0,item.currencyCode))+\" \"),_c('small',[_vm._v(\"under budget\")])]):_vm._e()]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"spendLimitsTable.noLimits\": \"There are no spend limits yet.\",\r\n \"spendLimitsTable.loadingLimits\": \"Loading spending limits\",\r\n \"spendLimitsTable.progress\": \"Progress\",\r\n \"spendLimitsTable.projections\": \"Forecast\",\r\n \"spendLimitsTable.actual\": \"Current Spend\",\r\n \"spendLimitsTable.limit\": \"Spend Limit Amount\"\r\n\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendLimitsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendLimitsTable.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendLimitsTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendLimitsTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SpendLimitsTable.vue?vue&type=template&id=ce9dd34a&\"\nimport script from \"./SpendLimitsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./SpendLimitsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SpendLimitsTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('form-dialog',{attrs:{\"value\":_vm.value,\"max-width\":\"600\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(activatorBindings){return [_vm._t(\"default\",null,null,activatorBindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('spentLimitSelectorCard.title'),\"subtitle\":_vm.$t('spendLimitSelectorCard.subtitle'),\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"actions\",fn:function({ formId, reset, loading }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('v-btn',{attrs:{\"type\":\"submit\",\"color\":\"secondary\",\"depressed\":\"\",\"disabled\":!_vm.valid || loading || !_vm.searchEntity || _vm.monthlySpendLimit === null,\"loading\":loading,\"form\":formId},on:{\"click\":function($event){$event.preventDefault();return _vm.submitFn(reset, close)}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"done\")]),_vm._v(\"Submit \")],1)]}}],null,true),model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('entity-search-autocomplete',{attrs:{\"multiple\":false,\"autofocus\":\"\",\"label\":_vm.$t('spendLimitSelectorCard.searchEntity.title'),\"placeholder\":_vm.$t('spendLimitSelectorCard.searchEntity.placeholder'),\"types\":['Service', 'Subscription', 'Tag', 'Product'],\"rules\":[_vm.$rules.required()]},model:{value:(_vm.searchEntity),callback:function ($$v) {_vm.searchEntity=$$v},expression:\"searchEntity\"}}),_c('v-text-field',{attrs:{\"type\":\"number\",\"persistent-hint\":\"\",\"label\":_vm.$t('spentLimitSelectorCard.monthlySpendLimit.title'),\"rules\":[_vm.$rules.required()],\"required\":\"\"},model:{value:(_vm.monthlySpendLimit),callback:function ($$v) {_vm.monthlySpendLimit=$$v},expression:\"monthlySpendLimit\"}})],1)]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { ISearchEntityViewModel } from '@/components/Common/EntitySearchAutocomplete.vue';\r\nimport { EntityType } from '@/models';\r\nimport { toastError, toastSuccess } from '@/components/Common/Toast.vue';\r\n\r\nexport default defineComponent({\r\n props: { value: Boolean },\r\n setup(_, { emit }) {\r\n const searchEntity = ref(null);\r\n const monthlySpendLimit = ref(null);\r\n const valid = ref(false);\r\n const loading = ref(false);\r\n const submitFn = async (resetFn: () => void, closeFn: () => Promise) => {\r\n try {\r\n if (!searchEntity.value) return;\r\n if (!monthlySpendLimit.value) return;\r\n\r\n let url: string | null = null;\r\n switch (searchEntity.value.Type) {\r\n case EntityType.product:\r\n url = `/api/metadata/products/${searchEntity.value.Id}`;\r\n break;\r\n case EntityType.service:\r\n url = `/api/metadata/services/${searchEntity.value.Id}`;\r\n break;\r\n case EntityType.subscription:\r\n url = `/api/metadata/subscriptions/${searchEntity.value.Id}`;\r\n break;\r\n case EntityType.tag:\r\n url = `/api/metadata/tagkeyvalue/${searchEntity.value.Id}`;\r\n break;\r\n default:\r\n return;\r\n }\r\n loading.value = true;\r\n await ApiV2.http.patch(url, [\r\n { op: 'replace', path: 'monthlySpendLimit', value: monthlySpendLimit.value },\r\n ]);\r\n toastSuccess(`Successfully updated the the spend limit for ${searchEntity.value.Name}`);\r\n resetFn();\r\n emit('http2xx');\r\n await closeFn();\r\n } catch (err) {\r\n toastError('There was an unexpected error creating this spend limit.');\r\n } finally {\r\n loading.value = false;\r\n }\r\n };\r\n return { valid, loading, searchEntity, monthlySpendLimit, submitFn };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSpentLimitSelectorDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSpentLimitSelectorDialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSpentLimitSelectorDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SetSpentLimitSelectorDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./SetSpentLimitSelectorDialog.vue?vue&type=template&id=96cebe96&\"\nimport script from \"./SetSpentLimitSelectorDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./SetSpentLimitSelectorDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./SetSpentLimitSelectorDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { useWaitStore, useTenantStore } from '@/stores';\r\nimport { defineComponent, ref, computed } from 'vue';\r\nimport { mapStores } from 'pinia';\r\nimport * as Api from '@/lib/Api';\r\nimport { IBudgetResult, ISpendLimitMetaResult } from '@/models';\r\nimport BudgetsTable from '@/components/Domain.Budgets/BudgetsTable.vue';\r\nimport CreateBudgetDialog from '@/components/Domain.Budgets/CreateBudgetDialog.vue';\r\nimport SpendLimitsTable from '@/components/Domain.SpendLimits/SpendLimitsTable.vue';\r\nimport SetSpendLimitSelectorDialog from '@/components/Domain.SpendLimits/SetSpentLimitSelectorDialog.vue';\r\n\r\nexport default defineComponent({\r\n components: { BudgetsTable, CreateBudgetDialog, SpendLimitsTable, SetSpendLimitSelectorDialog },\r\n title(ctx) {\r\n return ctx.tenantStore.hasTenantFeature('Budgets')\r\n ? ctx.$t('budgets.basl_title')\r\n : ctx.$t('budgets.sl_title');\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n pageTitle() {\r\n return this.tenantStore.hasTenantFeature('Budgets')\r\n ? this.$t('budgets.basl_title')\r\n : this.$t('budgets.sl_title');\r\n }\r\n },\r\n created() {\r\n this.loadBudgets(this.tenantStore.hasTenantFeature('Budgets'));\r\n this.loadSpendLimits();\r\n },\r\n setup() {\r\n const { is, whilst } = useWaitStore();\r\n const loading = ref(false);\r\n const isCreating = ref(false);\r\n const isCreatingLimit = ref(false);\r\n const budgets = ref([]);\r\n const spendLimits = ref([]);\r\n const loadBudgets = async (hasPermission) => {\r\n if(hasPermission === false) return;\r\n await whilst('gettingBudgets', async function () {\r\n budgets.value = await Api.getAllBudgets();\r\n });\r\n };\r\n const loadSpendLimits = async () => {\r\n await whilst('gettingSpendLimits', async function () {\r\n spendLimits.value = await Api.getAllSpendLimits();\r\n });\r\n }; \r\n const totalProjectedAbove = computed(() => {\r\n return (\r\n budgets.value.filter((l) => l.projectedPercentage >= 100).length +\r\n spendLimits.value.filter((l) => l.projectedPercentage >= 100).length\r\n );\r\n });\r\n const totalActuallyAbove = computed(() => {\r\n return (\r\n budgets.value.filter((l) => l.currentPercentage >= 100).length +\r\n spendLimits.value.filter((l) => l.currentPercentage >= 100).length\r\n );\r\n });\r\n return {\r\n budgets,\r\n spendLimits,\r\n loadBudgets,\r\n loadSpendLimits,\r\n wait: { is },\r\n totalProjectedAbove,\r\n totalActuallyAbove,\r\n loading,\r\n isCreating,\r\n isCreatingLimit\r\n };\r\n },\r\n methods: {\r\n handleDialogClose(isOpen: boolean) {\r\n if (isOpen) return;\r\n this.$router.push('/budgets');\r\n this.$title = this.tenantStore.hasTenantFeature('Budgets')\r\n ? this.$t('budgets.basl_title')\r\n : this.$t('budgets.sl_title');\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Budgets.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Budgets.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Budgets.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Budgets.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Budgets.vue?vue&type=template&id=7cbd23e4&\"\nimport script from \"./Budgets.vue?vue&type=script&lang=ts&\"\nexport * from \"./Budgets.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Budgets.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('budgetdetails.title', { budgetName: _vm.budget ? _vm.budget.name : '...' }),\"icon\":\"price_check\"}}),_c('v-toolbar',{attrs:{\"color\":\"transparent\",\"flat\":\"\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"to\":\"/budgets\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" \"+_vm._s(_vm.$t('budgetdetails.backButton'))+\" \")],1),_c('v-spacer'),(_vm.wait.is('gettingBudget'))?_c('v-progress-circular',{attrs:{\"indeterminate\":\"\",\"color\":\"primary\"}}):_vm._e()],1),(_vm.budget)?_c('v-container',[_c('v-row',[_c('v-col',[_c('v-card',{attrs:{\"height\":\"340\"}},[_c('v-card-title',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.budget.amount,_vm.budget.currencyCode))+\" / \"+_vm._s(_vm.budget.budgetPeriodString))]),(_vm.budget.currentPeriodEndDate)?_c('v-card-subtitle',[_vm._v(\" The current period \"+_vm._s(_vm._f(\"calendarFormatFromUtc\")(_vm.budget.currentPeriodStartDate))+\" - \"+_vm._s(_vm._f(\"calendarFormatFromUtc\")(_vm.budget.currentPeriodEndDate))+\" has \"),_c('b',[_vm._v(_vm._s(Math.ceil(_vm.budget.daysLeftInPeriod))+\" days left\")])]):_vm._e(),_c('v-card-text',{staticClass:\"d-flex justify-center align-center p10\"},[_c('v-progress-circular',{attrs:{\"size\":200,\"width\":25,\"value\":_vm.budget.progressPercentage,\"color\":\"teal\"}},[_c('strong',[_vm._v(_vm._s(Math.ceil(_vm.budget.daysLeftInPeriod))+\" days left\")])])],1)],1)],1),_c('v-col',[_c('v-card',{attrs:{\"height\":\"340\"}},[_c('v-card-title',[_vm._v(\"Spend to date\")]),(_vm.budget.currentPeriodEndDate)?_c('v-card-subtitle',[_vm._v(\" Spend to date is currently \"),_c('b',[_vm._v(_vm._s(_vm.budget.currentPercentage)+\"%\")]),_vm._v(\" of the \"),_c('b',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.budget.amount,_vm.budget.currencyCode)))]),_vm._v(\" budget. \")]):_vm._e(),_c('v-card-text',{staticClass:\"d-flex justify-center align-center p10\"},[_c('v-progress-circular',{attrs:{\"size\":200,\"width\":25,\"value\":_vm.budget.currentPercentage,\"color\":_vm.budget.currentPercentage >= 100 ? 'red' : 'green'}},[_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.budget.currentSpend,_vm.budget.currencyCode)))])])],1)],1)],1),_c('v-col',[_c('v-card',{attrs:{\"height\":\"340\"}},[_c('v-card-title',[_vm._v(\"Projected Spend\")]),(_vm.budget.currentPeriodEndDate)?_c('v-card-subtitle',[_vm._v(\" Currently projecting spend to be \"),_c('span',{class:_vm.budget.projectedPercentage >= 100 ? 'warning--text' : ''},[_vm._v(_vm._s(_vm.budget.forecastString))])]):_vm._e(),_c('v-card-text',{staticClass:\"d-flex justify-center align-center p10\"},[_c('v-progress-circular',{attrs:{\"rotate\":360,\"size\":200,\"width\":25,\"value\":_vm.budget.projectedPercentage,\"color\":_vm.budget.projectedPercentage >= 100 ? 'orange' : 'purple'}},[_c('strong',[_vm._v(_vm._s(_vm._f(\"currency\")(_vm.budget.projectedSpend,_vm.budget.currencyCode)))])])],1)],1)],1)],1)],1):_vm._e(),(_vm.budget)?_c('v-container',[_c('v-card',[_c('v-card-title',[_vm._v(\" \"+_vm._s(_vm.$t('budgetdetails.chartTitle')))]),_c('v-card-text',[_c('budget-history-chart',{attrs:{\"data\":_vm.chartDatasets}}),_c('br'),_c('v-data-table',{staticClass:\"p10\",attrs:{\"items\":_vm.budget.budgetSeries || [],\"headers\":_vm.headers,\"footer-props\":{\n itemsPerPageOptions: [25, 50, -1],\n }},scopedSlots:_vm._u([{key:\"no-data\",fn:function(){return [(!_vm.budget.budgetSeries)?_c('div',[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"query_builder\")]),_vm._v(\"Waiting for data\")],1):_c('div',[_c('v-icon',{attrs:{\"color\":\"warning\",\"left\":\"\"}},[_vm._v(\"warning\")]),_c('span',{staticClass:\"warning--text\"},[_vm._v(\"There is no data currently for this budget\")])],1)]},proxy:true},{key:`item.period`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(item.period)+\" \")]}},{key:`item.amount`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.budgetedCost,_vm.budget.currencyCode))+\" \")]}},{key:`item.actual`,fn:function({ item }){return [_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.actualCost,_vm.budget.currencyCode))+\" \")]}},{key:`item.variancedollars`,fn:function({ item }){return [_c('v-chip',{attrs:{\"color\":_vm.getColor(item.varianceCost)}},[_vm._v(\" \"+_vm._s(_vm._f(\"currency\")(item.varianceCost,_vm.budget.currencyCode))+\" \")])]}},{key:`item.variancepercent`,fn:function({ item }){return [_c('comparison-icon',{attrs:{\"value\":item.actualCost,\"compare\":item.budgetedCost,\"right\":\"\"}}),_vm._v(\" \"+_vm._s((item.variancePercentage * 100).toFixed(2))+\"% \")]}}],null,true)})],1)],1)],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IBudgetResult } from '@/models';\r\nimport * as CssVariables from '@/lib/CssVariables';\r\nimport { ChartData, Chart, ChartDataset } from 'chart.js/auto'\r\nimport annotationPlugin from 'chartjs-plugin-annotation';\r\nimport { formatCurrency } from '@/lib/Currencies';\r\n\r\nimport './dayJsAdapter';\r\nimport htmlLegendPlugin from './legendPlugin';\r\n\r\nChart.register(annotationPlugin);\r\n\r\nconst PROJECTIONS_DATASET_ORDER = 99999;\r\n\r\nexport interface IBudgetSeriesDatapoint {\r\n x: string;\r\n y: number;\r\n}\r\n\r\nexport const convertBudgetResultResponseToDatasets = (budgetResult: IBudgetResult | null): ChartData<'bar' | 'line', IBudgetSeriesDatapoint[], string> => {\r\n const datasets: ChartDataset<'bar' | 'line', IBudgetSeriesDatapoint[]>[] = [];\r\n const labels: string[] = [];\r\n const budgetDataSet: ChartDataset<'bar', IBudgetSeriesDatapoint[]> = {\r\n data: [],\r\n label: `Budget Amount`,\r\n backgroundColor: 'teal',\r\n borderColor: 'white',\r\n borderWidth: 1,\r\n normalized: true,\r\n maxBarThickness: 40\r\n };\r\n const actualDataSet: ChartDataset<'line', IBudgetSeriesDatapoint[]> = {\r\n type: 'line',\r\n data: [],\r\n label: `Actual Spend`,\r\n backgroundColor: 'orange',\r\n borderColor: 'orange',\r\n borderWidth: 1,\r\n normalized: true,\r\n };\r\n \r\n (budgetResult?.budgetSeries || []).forEach((g) => {\r\n labels.push(g.period);\r\n budgetDataSet.data.push({x: g.period, y: g.budgetedCost})\r\n actualDataSet.data.push({x: g.period, y: g.actualCost})\r\n });\r\n datasets.push(actualDataSet);\r\n datasets.push(budgetDataSet);\r\n return {\r\n labels,\r\n datasets\r\n };\r\n};\r\n\r\nexport interface IClickEvent {\r\n index: number;\r\n name: string;\r\n isOther: boolean;\r\n datasetGroupId: string;\r\n}\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n}\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions, containerId: string): Chart => {\r\n const { currencyCode } = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastLines = style.getPropertyValue(CssVariables.ContrastLinesVariable);\r\n const contrastText = style.getPropertyValue(CssVariables.ContrastTextVariable);\r\n const chart = new Chart(chartItem, {\r\n type: 'bar',\r\n data: {\r\n labels: [],\r\n datasets: []\r\n },\r\n options: {\r\n borderColor: 'rgba(0,0, 0, 0)',\r\n plugins: {\r\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n // @ts-ignore\r\n htmlLegend: {\r\n // ID of the container to put the legend in\r\n containerID: containerId,\r\n },\r\n title: {\r\n display: false,\r\n },\r\n legend: {\r\n display: false,\r\n labels: {\r\n color: contrastText\r\n },\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(item) {\r\n return [item.dataset.label];\r\n },\r\n afterLabel(item) {\r\n const dataset = item.dataset;\r\n const points: IBudgetSeriesDatapoint[] = dataset.data as any;\r\n const hoverPoint: IBudgetSeriesDatapoint = points[item.dataIndex];\r\n return [\r\n `${formatCurrency(hoverPoint.y, currencyCode)}`\r\n ]\r\n },\r\n },\r\n mode: 'point'\r\n },\r\n annotation: {\r\n annotations: []\r\n }\r\n },\r\n interaction: {\r\n intersect: true,\r\n mode: 'dataset'\r\n },\r\n onHover(event, [element]) {\r\n let newCursor = 'default';\r\n if (element) {\r\n const dataset = chart.data.datasets[element.datasetIndex];\r\n if (dataset && dataset.order !== PROJECTIONS_DATASET_ORDER) {\r\n newCursor = 'pointer';\r\n }\r\n }\r\n (event.native.target as HTMLElement).style.cursor = newCursor;\r\n },\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n scales: {\r\n x: {\r\n type: \"category\",\r\n stacked: false,\r\n ticks: {\r\n color: contrastText\r\n },\r\n grid: {\r\n color: 'rgba(0, 0, 0, 0)'\r\n },\r\n axis: 'x',\r\n },\r\n y: {\r\n type: 'linear',\r\n ticks: {\r\n color: contrastText,\r\n callback(value: number) {\r\n return formatCurrency(value, currencyCode);\r\n }\r\n },\r\n grid: {\r\n color: contrastLines\r\n },\r\n min: 0,\r\n axis: 'y',\r\n title: {\r\n text: `Budget (${currencyCode})`,\r\n color: contrastText,\r\n display: true\r\n },\r\n stack: 'y',\r\n display: true,\r\n }\r\n }\r\n },\r\n plugins: [htmlLegendPlugin]\r\n });\r\n return chart;\r\n};","\r\n import { defineComponent, ref, onMounted, watch } from \"vue\";\r\n import { useTenantStore, storeToRefs } from \"@/stores\";\r\n import createBudgetHistoryChart, {\r\n convertBudgetResultResponseToDatasets,\r\n } from \"@/chartjs/createBudgetHistoryChart\";\r\n\r\n export { convertBudgetResultResponseToDatasets };\r\n \r\n export default defineComponent({\r\n props: {\r\n data: Object,\r\n },\r\n setup(p) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.style.height = \"400px\";\r\n canvas.value.classList.add('chart-canvas');\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = '400px';\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n\r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n\r\n const chart = createBudgetHistoryChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n \"$vuetify.theme.dark\": {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n });\r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetHistoryChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetHistoryChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BudgetHistoryChart.vue?vue&type=template&id=bc989e90&\"\nimport script from \"./BudgetHistoryChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./BudgetHistoryChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { useWaitStore } from '@/stores';\r\nimport { defineComponent, ref } from 'vue';\r\nimport * as Api from '@/lib/Api';\r\nimport { IBudgetResult } from '@/models';\r\nimport BudgetHistoryChart, {\r\n convertBudgetResultResponseToDatasets,\r\n} from '@/components/Domain.Budgets/BudgetHistoryChart.vue';\r\n\r\nexport default defineComponent({\r\n components: { BudgetHistoryChart },\r\n title(ctx) {\r\n return ctx.$t('budgetdetails.title', { budgetName: this.budget ? this.budget.name : '...' });\r\n },\r\n setup() {\r\n const budgetId = ref();\r\n const { is, whilst } = useWaitStore();\r\n const budget = ref();\r\n const chartDatasets = ref({ labels: [], datasets: [] });\r\n const loadBudget = async () =>\r\n await whilst('gettingBudget', async function () {\r\n budget.value = await Api.getBudget(budgetId.value);\r\n chartDatasets.value = convertBudgetResultResponseToDatasets(budget.value);\r\n });\r\n return {\r\n budgetId,\r\n budget,\r\n loadBudget,\r\n wait: { is, whilst },\r\n chartDatasets,\r\n };\r\n },\r\n methods: {\r\n getColor(variance) {\r\n if (variance < 0) return 'green';\r\n else if (variance == 0) return 'orange';\r\n else return 'red';\r\n },\r\n },\r\n watch: {\r\n $route: {\r\n handler(to) {\r\n if (!to) return;\r\n this.budgetId = to.params.id;\r\n this.loadBudget();\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n computed: {\r\n headers() {\r\n const headers = [\r\n { text: this.$t('budgetdetails.table.period'), value: 'period', sortable: false },\r\n { text: this.$t('budgetdetails.table.amount'), value: 'amount', sortable: false },\r\n { text: this.$t('budgetdetails.table.actual'), value: 'actual', sortable: false },\r\n { text: this.$t('budgetdetails.table.varianceamount'), value: 'variancedollars', sortable: false },\r\n { text: this.$t('budgetdetails.table.variancepercentage'), value: 'variancepercent', sortable: false },\r\n ];\r\n return headers;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetDetails.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetDetails.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BudgetDetails.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./BudgetDetails.vue?vue&type=template&id=18403441&\"\nimport script from \"./BudgetDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./BudgetDetails.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./BudgetDetails.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-main',[_c('page-header',{attrs:{\"sticky\":\"\",\"title\":_vm.$t('views.gptChats.title'),\"icon\":\"psychology\",\"flip-icon\":\"\",\"small\":\"\"}}),_c('v-skeleton-loader',{attrs:{\"loading\":_vm.$wait.is('getChat'),\"type\":\"list-item-avatar@4\"}},[_c('div',{staticStyle:{\"min-height\":\"calc(100vh - 270px)\",\"margin-bottom\":\"50px\"}},[_c('v-alert',{staticClass:\"mb-2\",attrs:{\"type\":\"info\",\"text\":\"\"}},[_vm._v(\" This chat is powered by OpenAI ChatGPT. User discretion is advised when acting on feedback from this model. \")]),_c('chat-conversation',{attrs:{\"chat\":_vm.currentChat},on:{\"ask\":$event => _vm.ask($event)}})],1),_c('v-card',{staticClass:\"mb-0 chat-window\",attrs:{\"tile\":\"\",\"elevation\":\"10\"}},[_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.$wait.is('addChatMessage', 'getChat'),\"indeterminate\":\"\"}}),_c('v-card-text',{staticClass:\"px-5 pt-3 pb-0\"},[_c('v-textarea',{attrs:{\"disabled\":_vm.disableChat,\"auto-grow\":\"\",\"rows\":\"2\",\"label\":_vm.disableChat ? 'This conversation is too old, please start a new one' : 'Type a question',\"clearable\":\"\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;$event.preventDefault();return _vm.submitAndRefresh()}},model:{value:(_vm.chatMessage),callback:function ($$v) {_vm.chatMessage=$$v},expression:\"chatMessage\"}})],1),_c('v-card-actions',[_c('v-btn',{attrs:{\"type\":\"submit\"},on:{\"click\":function($event){_vm.showChatsDialog = true}}},[_vm._v(\"View Previous Chats\")]),(_vm.currentChat)?_c('gpt-create',{attrs:{\"noNav\":\"\",\"text\":\"\",\"entityId\":_vm.currentChat.entityId,\"entityType\":_vm.currentChat.entityType},on:{\"created\":_vm.chatCreated}}):_vm._e(),_c('v-spacer'),_c('v-btn',{attrs:{\"disabled\":_vm.disableChat || !_vm.chatMessage,\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){return _vm.submitAndRefresh()}}},[_vm._v(\"Send\")])],1)],1)],1),_c('chats-dialog',{attrs:{\"show\":_vm.showChatsDialog,\"chats\":_vm.chats,\"loading\":_vm.$wait.is('getChats')},on:{\"close\":function($event){_vm.showChatsDialog = false},\"select\":$event => _vm.selectChat($event.chatId),\"sample\":function($event){return _vm.startNew()}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[(_vm.enabled)?[(_vm.text)?_c('v-btn',{on:{\"click\":function($event){_vm.show=true}}},[_vm._v(\" Start new Chat \")]):_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.show=true}}},[_c('v-icon',{staticClass:\"flip-x\",attrs:{\"color\":\"tertiary\"}},[_vm._v(\"psychology\")])],1),_c('v-dialog',{attrs:{\"max-width\":\"400\",\"scrollable\":\"\",\"persistent\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.loading,\"indeterminate\":\"\"}}),_c('v-card-text',{staticClass:\"px-5 pt-3 pb-0\"},[(!_vm.loading)?_c('p',[_vm._v(\" If you choose to proceed, you will commence a Cloud Intelligence chat about this resource, powered by GPT. \")]):_c('p',[_vm._v(\" Starting chat... \")])]),_c('v-card-actions',[_c('v-spacer'),_c('v-btn',{staticClass:\"ma-5\",on:{\"click\":function($event){return _vm.close()}}},[_vm._v(_vm._s(_vm.loading ? 'Close' : 'Cancel'))]),(!_vm.loading)?_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){return _vm.go()}}},[_vm._v(\"Start Chat\")]):_vm._e()],1)],1)],1)]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { IGptChatOverviewResult } from '@/models/GptChatModels'\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { useRouter } from 'vue-router/composables';\r\nimport FeatureNames from \"@/lib/FeatureNames\";\r\nimport { useTenantStore } from '@/stores/tenant';\r\n\r\nexport default defineComponent({\r\n props: { entityType: String, entityId: String, text: Boolean, noNav: Boolean },\r\n setup(p, { emit }) {\r\n const show = ref(false);\r\n const loading = ref(false);\r\n const router = useRouter();\r\n const tenantStore = useTenantStore();\r\n const enabled = ref(tenantStore.hasTenantFeature(FeatureNames.enableCloudIntelligence));\r\n \r\n const go = async () => {\r\n loading.value = true;\r\n const response = await ApiV2.http\r\n .post(`/api/gpt`, {entityId: p.entityId, entityType: p.entityType} as IGptChatOverviewResult)\r\n .then((r) => r.data);\r\n \r\n //on return:\r\n if (show.value) {\r\n //user didn't 'Close'\r\n if (!p.noNav) router.push(`/cloud-intelligence/?chatId=${response.chatId}`);\r\n emit('created', response);\r\n }\r\n } \r\n\r\n return {\r\n enabled,\r\n show, \r\n loading,\r\n go,\r\n tenantStore,\r\n close: () => {show.value = false; loading.value = false;}\r\n };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptCreate.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptCreate.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GptCreate.vue?vue&type=template&id=23ea7d49&\"\nimport script from \"./GptCreate.vue?vue&type=script&lang=ts&\"\nexport * from \"./GptCreate.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import dayjs from 'dayjs';\r\n\r\nexport const checkExpiredChat = (createdAtUtc: Date | string) => {\r\n return dayjs(new Date()).add(-7, 'day').isAfter(dayjs(createdAtUtc).local());\r\n}","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.chat)?_c('v-list',{staticClass:\"ma-8 py-0\"},_vm._l((_vm.chat.messages),function(message,i){return _c('v-list-item',{key:i,class:{'user-message': message.isUser, 'px-8': true, 'py-5': true}},[_c('v-list-item-icon',[(!!message.isUser)?_c('v-avatar',{attrs:{\"size\":40,\"color\":\"grey lighten-4\"}},[_c('img',{attrs:{\"src\":_vm.gravatarUrl,\"alt\":\"avatar\",\"aria-label\":\"User profile picture\",\"title\":\"User profile picture\",\"role\":\"presentation\"}})]):_c('v-avatar',{attrs:{\"size\":40,\"color\":\"primary darken-2\"}},[_c('v-icon',{staticStyle:{\"transform\":\"scaleX(-1)\"},attrs:{\"color\":\"white\",\"size\":34}},[_vm._v(\"psychology\")])],1)],1),_c('chat-message-content',{attrs:{\"message\":message,\"chatName\":_vm.chat.conversationName},on:{\"ask\":$event => _vm.ask($event)}})],1)}),1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.questionList)?_c('v-list-item-content',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_c('p',[_vm._v(\"You may ask questions about \"+_vm._s(_vm.chatName)+\", or select a suggested question:\")]),_c('v-list',{attrs:{\"dense\":\"\"}},_vm._l((_vm.questionList),function(question,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){return _vm.ask(question)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"live_help\")])],1),_c('v-list-item-content',[_c('div',{domProps:{\"innerHTML\":_vm._s(question)}})]),_c('v-list-item-action',[_c('v-btn',{attrs:{\"x-small\":\"\"}},[_vm._v(\"ask\")])],1)],1)}),1)],1):_c('v-list-item-content',[_c('div',{staticStyle:{\"white-space\":\"pre-wrap\"},domProps:{\"innerHTML\":_vm._s(_vm.format(_vm.message.message))}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, computed, PropType } from 'vue';\r\nimport { IGptChatMessage } from '@/models/GptChatModels'\r\n\r\nexport default defineComponent({\r\n props: { message: Object as PropType, chatName: String },\r\n setup(p, { emit }) {\r\n const questionList = computed(() => {\r\n if (p.message.isUser) return null;\r\n const matches = /(\\[[\\s\\S]*\\])/g.exec(p.message.message);\r\n\r\n if (!matches || !matches[1]) return null; \r\n\r\n const questions = (JSON.parse(matches[1]) as Array).map(x => format(x));\r\n return questions\r\n });\r\n\r\n const ask = (question:string) => {\r\n emit('ask', question);\r\n };\r\n\r\n const format = (message: string | any) => {\r\n if (typeof message !== 'string') return message;\r\n\r\n return message\r\n .replaceAll('&', '&')\r\n .replaceAll('<', '<')\r\n .replaceAll('>', '>')\r\n .replaceAll('\"', '"')\r\n .replaceAll(\"'\", ''')\r\n .replace(/```([^`]+)```/g, \"
$1
\")\r\n .replace(/`([^`]+)`/, \"$1\");\r\n \r\n }\r\n\r\n return { questionList, ask, format };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatMessageContent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatMessageContent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatMessageContent.vue?vue&type=template&id=4dc77240&\"\nimport script from \"./ChatMessageContent.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatMessageContent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ChatMessageContent.vue?vue&type=style&index=0&id=4dc77240&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, getCurrentInstance, computed, PropType } from 'vue';\r\nimport MD5 from '@/lib/MD5';\r\nimport ChatMessageContent from './ChatMessageContent.vue';\r\nimport { IGptChatConversationResult } from '@/models/GptChatModels'\r\n\r\nconst AVATAR_SIZE = 40;\r\n\r\nexport default defineComponent({\r\n props: { chat: Object as PropType },\r\n components: {ChatMessageContent},\r\n setup(p, { emit }) {\r\n const gravatarUrl = computed(() => {\r\n const email = (getCurrentInstance() as any).proxy.$auth.user.email;\r\n if (!email) return \"http://www.gravatar.com/avatar/?d=identicon\";\r\n const md5 = MD5(email.toLowerCase());\r\n return `//www.gravatar.com/avatar/${md5}?s=${AVATAR_SIZE}`;\r\n });\r\n\r\n const ask = (question:string) => {\r\n emit('ask', question);\r\n };\r\n\r\n return { gravatarUrl, ask };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatConversation.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatConversation.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChatConversation.vue?vue&type=template&id=fc2dd564&\"\nimport script from \"./ChatConversation.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatConversation.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"max-width\":\"900\",\"scrollable\":\"\",\"persistent\":\"\",\"transition\":\"dialog-bottom-transition\",\"fullscreen\":_vm.$vuetify.breakpoint.xsOnly},model:{value:(_vm.show),callback:function ($$v) {_vm.show=$$v},expression:\"show\"}},[_c('v-card',[_c('v-progress-linear',{staticClass:\"ma-0\",attrs:{\"active\":_vm.loading,\"indeterminate\":\"\"}}),_c('v-card-text',{staticClass:\"px-5 pt-3 pb-0\"},[(_vm.chats)?_c('v-list',_vm._l((_vm.chats),function(item,i){return _c('v-list-item',{key:i,on:{\"click\":function($event){return _vm.select(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"forum\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(item.name))]),_c('v-list-item-subtitle',[_c('v-chip',{staticClass:\"px-1\",attrs:{\"label\":\"\",\"x-small\":\"\"}},[_vm._v(\"as of \"+_vm._s(_vm._f(\"calendarFormatFromUtc\")(item.createdAtUtc)))])],1)],1),_c('v-list-item-action',[_c('v-list-item-action-text',[(_vm.checkExpiredChat(item.createdAtUtc))?_c('v-icon',{staticClass:\"mr-2\",attrs:{\"small\":\"\"}},[_vm._v(\"lock\")]):_vm._e(),_vm._v(_vm._s(_vm._f(\"calendarFormatFromUtc\")(item.lastUpdatedUtc)))],1)],1)],1)}),1):_vm._e(),((!_vm.chats || !_vm.chats.length) && !_vm.loading)?_c('empty-state',{attrs:{\"icon\":\"warning\",\"message\":_vm.$t('chatsDialog.noChatsYet')}}):_vm._e()],1),_c('v-card-actions',[_c('v-btn',{staticClass:\"ma-5\",on:{\"click\":function($event){return _vm.sample()}}},[_vm._v(\"Start a sample chat\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"type\":\"submit\"},on:{\"click\":function($event){return _vm.close()}}},[_vm._v(\"Close\")])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, PropType } from 'vue';\r\nimport { IGptChatOverviewResult} from '@/models/GptChatModels'\r\nimport { checkExpiredChat } from \"./Shared\"\r\n\r\nexport default defineComponent({\r\n props: { chats: Array as PropType, show: Boolean, loading: Boolean },\r\n setup(p, { emit }) {\r\n\r\n const sample = () => {\r\n emit('sample');\r\n };\r\n \r\n const close = () => {\r\n emit('close');\r\n };\r\n\r\n const select = (chat) => {\r\n emit('select', chat);\r\n emit('close');\r\n };\r\n \r\n return {\r\n checkExpiredChat,\r\n close,\r\n select,\r\n sample\r\n };\r\n }\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatsDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatsDialog.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatsDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ChatsDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ChatsDialog.vue?vue&type=template&id=90b596e2&\"\nimport script from \"./ChatsDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./ChatsDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ChatsDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport GptCreate from \"@/components/Domain.GptChat/GptCreate.vue\";\r\nimport { waitFor } from '@/plugins/vue-wait';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { defineComponent } from \"vue\";\r\nimport { checkExpiredChat } from \"@/components/Domain.GptChat/Shared\"\r\nimport ChatConversation from '@/components/Domain.GptChat/ChatConversation.vue';\r\nimport ChatsDialog from '@/components/Domain.GptChat/ChatsDialog.vue';\r\nimport { \r\n IGptChatOverviewResult, \r\n IGptChatConversationResult, \r\n IGptChatMessageResult\r\n} from '@/models/GptChatModels'\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t('views.gptChats.title');\r\n },\r\n components: {ChatConversation, ChatsDialog, GptCreate},\r\n async mounted() {\r\n const chatId = this.$route.query.chatId\r\n this.getChats(chatId);\r\n },\r\n data() {\r\n return {\r\n email: (this as any).$auth.user.email as string,\r\n showChatsDialog: false,\r\n chats: [] as Array,\r\n currentChat: null as IGptChatConversationResult,\r\n chatMessage: \"\"\r\n };\r\n },\r\n computed: {\r\n disableChat() {\r\n if (this.currentChat == null) return true;\r\n return checkExpiredChat(this.currentChat.createdAtUtc);\r\n }\r\n },\r\n methods: {\r\n ask(question:string) {\r\n this.chatMessage = question;\r\n this.submitAndRefresh();\r\n },\r\n\r\n chatCreated(chat:IGptChatOverviewResult) {\r\n this.getChats(chat.chatId);\r\n },\r\n\r\n getChats: waitFor('getChats', async function getChats(chatId: string | null) {\r\n if (this.currentChat == null && !chatId) this.showChatsDialog = true;\r\n const response = await ApiV2.http.get(`/api/gpt/`).then((r) => r.data);\r\n this.chats = response;\r\n\r\n if (chatId) {\r\n await this.selectChat(chatId);\r\n }\r\n }),\r\n\r\n selectChat: waitFor('getChat', async function selectChat(chatId : string) {\r\n this.$router.replace({ query: {chatId: chatId} })\r\n this.showChatsDialog = false;\r\n const response = await ApiV2.http\r\n .get(`/api/gpt/${chatId}`)\r\n .then((r) => r.data);\r\n this.currentChat = response;\r\n this.chatMessage = \"\";\r\n this.scrollDown();\r\n }),\r\n\r\n submitAndRefresh: waitFor('addChatMessage', async function addChatMessage() {\r\n const chatId = this.currentChat?.chatId;\r\n const message = this.chatMessage;\r\n\r\n this.currentChat.messages.push({isUser: true, message: message});\r\n this.currentChat = {...this.currentChat};\r\n\r\n this.chatMessage = \"\";\r\n this.scrollDown();\r\n\r\n const response = await ApiV2.http\r\n .post(`/api/gpt/${chatId}/message`, {\r\n chatId: chatId,\r\n question: message\r\n })\r\n .then((r) => r.data)\r\n .catch(() => ({chatId: '', message: \"There was an error! Please try again.\"}));\r\n\r\n this.currentChat.messages.push(response.message);\r\n this.currentChat = {...this.currentChat};\r\n this.scrollDown();\r\n }),\r\n\r\n scrollDown() {\r\n this.$vuetify.goTo(999999)\r\n }\r\n }\r\n})\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptChats.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptChats.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptChats.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GptChats.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GptChats.vue?vue&type=template&id=aefb6866&scoped=true&\"\nimport script from \"./GptChats.vue?vue&type=script&lang=ts&\"\nexport * from \"./GptChats.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GptChats.vue?vue&type=style&index=0&id=aefb6866&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aefb6866\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GptChats.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('gettingStarted.title'),\"icon\":\"savings\"}}),_c('v-stepper',{staticClass:\"elevation-0\",model:{value:(_vm.e1),callback:function ($$v) {_vm.e1=$$v},expression:\"e1\"}},[_c('v-stepper-header',[_c('v-stepper-step',{attrs:{\"color\":\"secondary\",\"complete\":_vm.e1 > 1,\"step\":\"1\"}},[_vm._v(\" Cloud Connections \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"secondary\",\"complete\":_vm.e1 > 2,\"step\":\"2\"}},[_vm._v(\" Users \")]),_c('v-divider'),_c('v-stepper-step',{attrs:{\"color\":\"secondary\",\"step\":\"3\"}},[_vm._v(\" Finish \")])],1),_c('v-stepper-items',[_c('v-stepper-content',{attrs:{\"step\":\"1\"}},[_c('v-container',[_c('content-card',{attrs:{\"title\":\"Configure Cloud Connections\",\"caption\":\"Configure your cloud connection connections to view your cloud consumption in this tenant\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"to\":\"/settings\",\"text\":\"\"}},[_vm._v(\" Skip Setup \"),_c('v-icon',{attrs:{\"right\":\"\"}},[_vm._v(\"start\")])],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"disabled\":_vm.configuredTypes.length === 0},on:{\"click\":function($event){_vm.e1 = 2}}},[_vm._v(\" Next! \")])]},proxy:true}])},[_c('v-row',_vm._l((_vm.cloudAccountTypes),function(caType){return _c('v-col',{key:caType,attrs:{\"cols\":\"12\",\"sm\":\"6\",\"lg\":\"4\"}},[_c('v-list',{style:(_vm.configuredTypes.includes(caType)\n ? 'border-color:var(--v-primary-base)'\n : ''),attrs:{\"outlined\":\"\",\"rounded\":\"\",\"height\":\"200\"}},[(caType === 'Amazon')?_c('CreateAmazonAccountMenu',{on:{\"input\":function($event){return _vm.handleCreateNewAmazonAccount($event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on, attrs }){return [_c('pretty-list-item',_vm._g(_vm._b({attrs:{\"text\":_vm.$t(`gettingStarted.${caType}.text`),\"bottom\":_vm.$t(`gettingStarted.${caType}.bottom`),\"icon\":\"done\"},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [(_vm.configuredTypes.includes(caType))?_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"done_all\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(`gettingStarted.${caType}.top`))+\" \")]},proxy:true}],null,true)},'pretty-list-item',attrs,false),on))]}}],null,true)}):_c('pretty-list-item',{attrs:{\"text\":_vm.$t(`gettingStarted.${caType}.text`),\"bottom\":_vm.$t(`gettingStarted.${caType}.bottom`),\"icon\":\"done\"},on:{\"click\":function($event){return _vm.onClickAccountType(caType)}},scopedSlots:_vm._u([{key:\"top\",fn:function(){return [(_vm.configuredTypes.includes(caType))?_c('v-icon',{attrs:{\"color\":\"primary\"}},[_vm._v(\"done_all\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(`gettingStarted.${caType}.top`))+\" \")]},proxy:true}],null,true)})],1)],1)}),1)],1)],1)],1),_c('v-stepper-content',{attrs:{\"step\":\"2\"}},[_c('users-view',{scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.e1 = 1}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"arrow_back\")]),_vm._v(\" Back \")],1),_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.e1 = 3}}},[_vm._v(\" Next! \")])]},proxy:true}])})],1),_c('v-stepper-content',{attrs:{\"step\":\"3\"}},[_c('v-container',[_c('content-card',{attrs:{\"title\":\"You're all set!\",\"caption\":\"Your cloud connections are currently importing usage data and you will see figures the moment the import has completed. \"}},[_c('v-list',[_c('v-subheader',[_vm._v(\"When usage is ready you can visit...\")]),_c('v-list-item',{attrs:{\"to\":\"/settings\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"settings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Settings\")]),_c('v-list-item-subtitle',[_vm._v(\"Update any of the configuration you made during this getting started process.\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/finance\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"savings\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Dashboard\")]),_c('v-list-item-subtitle',[_vm._v(\"See at a glance your spend for the past 12 months\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/explore\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"insights\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Cost Explorer\")]),_c('v-list-item-subtitle',[_vm._v(\"Get a granular view of your usage in any slice for any available period.\")])],1)],1),_c('v-list-item',{attrs:{\"to\":\"/trends\"}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"analytics\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Trends\")]),_c('v-list-item-subtitle',[_vm._v(\"Compare any available time periods to reason about changes in spend.\")])],1)],1)],1)],1)],1)],1)],1)],1),_c('CreateAmazonAssumeRoleCloudAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAwsAccountNew),callback:function ($$v) {_vm.isCreatingAwsAccountNew=$$v},expression:\"isCreatingAwsAccountNew\"}}),_c('CreateAmazonWSCloudAccountDialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAwsAccountLegacy),callback:function ($$v) {_vm.isCreatingAwsAccountLegacy=$$v},expression:\"isCreatingAwsAccountLegacy\"}}),_c('create-azure-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzureArmAccount),callback:function ($$v) {_vm.isCreatingAzureArmAccount=$$v},expression:\"isCreatingAzureArmAccount\"}}),_c('create-azure-ea-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAzureEaAccount),callback:function ($$v) {_vm.isCreatingAzureEaAccount=$$v},expression:\"isCreatingAzureEaAccount\"}}),_c('create-rhipe-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingRhipeAccount),callback:function ($$v) {_vm.isCreatingRhipeAccount=$$v},expression:\"isCreatingRhipeAccount\"}}),_c('create-google-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingGcpAccount),callback:function ($$v) {_vm.isCreatingGcpAccount=$$v},expression:\"isCreatingGcpAccount\"}}),_c('create-alibaba-cloud-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingAlibabaAccount),callback:function ($$v) {_vm.isCreatingAlibabaAccount=$$v},expression:\"isCreatingAlibabaAccount\"}}),_c('create-oracle-account-dialog',{on:{\"http2xx\":_vm.onCloudAccountsChanged},model:{value:(_vm.isCreatingOracleAccount),callback:function ($$v) {_vm.isCreatingOracleAccount=$$v},expression:\"isCreatingOracleAccount\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from \"vue\";\r\nimport { CloudAccountType, CloudCredentialType } from \"@/models\";\r\nimport ApiV2 from \"@/lib/ApiV2\";\r\nimport Config from \"@/lib/Config\";\r\nimport FeatureNames from \"@/lib/FeatureNames\";\r\nimport PrettyListItem from \"@/components/Common/PrettyListItem.vue\";\r\nimport CreateOracleAccountDialog from \"@/components/Settings.CloudAccounts/Oracle/CreateOracleAccountDialog.vue\";\r\nimport CreateAmazonWSCloudAccountDialog from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonWSCloudAccountDialog.vue\";\r\nimport CreateAmazonAssumeRoleCloudAccountDialog from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonAssumeRoleCloudAccountDialog.vue\";\r\nimport CreateAmazonAccountMenu from \"@/components/Settings.CloudAccounts/Amazon/CreateAmazonAccountMenu.vue\";\r\nimport CreateAzureCloudAccountDialog from \"@/components/Settings.CloudAccounts/Azure/CreateAzureCloudAccountDialog.vue\";\r\nimport CreateAzureEaCloudAccountDialog from \"@/components/Settings.CloudAccounts/Azure/CreateAzureEaCloudAccountDialog.vue\";\r\nimport CreateRhipeCloudAccountDialog from \"@/components/Settings.CloudAccounts/Distributors/CreateRhipeCloudAccountDialog.vue\";\r\nimport CreateAlibabaCloudAccountDialog from \"@/components/Settings.CloudAccounts/Alibaba/CreateAlibabaCloudAccountDialog.vue\";\r\nimport CreateGoogleAccountDialog from \"@/components/Settings.CloudAccounts/Google/CreateGoogleAccountDialog.vue\";\r\nimport UsersView from \"@/views/Settings/UsersView.vue\";\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t(\"gettingStarted.title\");\r\n },\r\n components: {\r\n PrettyListItem,\r\n CreateOracleAccountDialog,\r\n CreateAmazonWSCloudAccountDialog,\r\n CreateAmazonAssumeRoleCloudAccountDialog,\r\n CreateAzureCloudAccountDialog,\r\n CreateAzureEaCloudAccountDialog,\r\n CreateRhipeCloudAccountDialog,\r\n CreateAlibabaCloudAccountDialog,\r\n CreateAmazonAccountMenu,\r\n CreateGoogleAccountDialog,\r\n UsersView,\r\n },\r\n setup() {\r\n const configuredTypes = ref([]);\r\n\r\n const loadCloudAccountTypes = async () => {\r\n const cloudAccounts = await ApiV2.http\r\n .get(\"/api/metadata/cloudaccounts\")\r\n .then((r) => r.data);\r\n const cloudAccountTypes = cloudAccounts\r\n .map((a) => a.type)\r\n .filter((value, index, self) => self.indexOf(value) === index);\r\n configuredTypes.value = cloudAccountTypes;\r\n };\r\n\r\n const onCloudAccountsChanged = () => {\r\n loadCloudAccountTypes();\r\n };\r\n\r\n loadCloudAccountTypes();\r\n\r\n const isCreatingAwsAccountNew = ref(false);\r\n const isCreatingAwsAccountLegacy = ref(false);\r\n const isCreatingAzureArmAccount = ref(false);\r\n const isCreatingAzureEaAccount = ref(false);\r\n const isCreatingRhipeAccount = ref(false);\r\n const isCreatingGcpAccount = ref(false);\r\n const isCreatingAlibabaAccount = ref(false);\r\n const isCreatingOracleAccount = ref(false);\r\n\r\n const handleCreateNewAmazonAccount = (\r\n key: CloudCredentialType.awsAssumeRoleUsage | CloudCredentialType.awsIamUsage\r\n ) => {\r\n if (key === CloudCredentialType.awsAssumeRoleUsage) {\r\n isCreatingAwsAccountNew.value = true;\r\n } else if (key === CloudCredentialType.awsIamUsage) {\r\n isCreatingAwsAccountLegacy.value = true;\r\n }\r\n };\r\n\r\n const onClickAccountType = (type: string) => {\r\n switch (type) {\r\n case CloudAccountType.azure:\r\n isCreatingAzureArmAccount.value = true;\r\n break;\r\n case CloudAccountType.azureEa:\r\n isCreatingAzureEaAccount.value = true;\r\n break;\r\n case CloudAccountType.rhipe:\r\n isCreatingRhipeAccount.value = true;\r\n break;\r\n case CloudAccountType.amazon:\r\n isCreatingAwsAccountLegacy.value = true;\r\n break;\r\n case CloudAccountType.google:\r\n isCreatingGcpAccount.value = true;\r\n break;\r\n case CloudAccountType.alibaba:\r\n isCreatingAlibabaAccount.value = true;\r\n break;\r\n case CloudAccountType.oracle:\r\n isCreatingOracleAccount.value = true;\r\n break;\r\n }\r\n };\r\n\r\n const cloudAccountTypes = ref([\r\n CloudAccountType.azure,\r\n CloudAccountType.amazon,\r\n CloudAccountType.google,\r\n CloudAccountType.alibaba,\r\n CloudAccountType.oracle,\r\n ]);\r\n\r\n if (Config.isFeatureEnabled(FeatureNames.rhipeEnabled)) {\r\n cloudAccountTypes.value.push(CloudAccountType.rhipe);\r\n }\r\n\r\n return {\r\n e1: ref(1),\r\n cloudAccountTypes,\r\n configuredTypes,\r\n isCreatingAwsAccountLegacy,\r\n isCreatingAwsAccountNew,\r\n isCreatingAzureArmAccount,\r\n isCreatingAzureEaAccount,\r\n isCreatingRhipeAccount,\r\n isCreatingGcpAccount,\r\n isCreatingAlibabaAccount,\r\n isCreatingOracleAccount,\r\n onCloudAccountsChanged,\r\n onClickAccountType,\r\n handleCreateNewAmazonAccount,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GettingStarted.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./GettingStarted.vue?vue&type=template&id=3e3c34d8&\"\nimport script from \"./GettingStarted.vue?vue&type=script&lang=ts&\"\nexport * from \"./GettingStarted.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./GettingStarted.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t('watchdogDashboard.title'),\"icon\":\"visibility\",\"needs-filters\":\"\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":\"Critical Risks\",\"subtitle\":\"Past 24 hours\"}},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"error\"}},[_vm._v(\"error\")]),_vm._v(\" \"+_vm._s(_vm.criticalCount)+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Potential Risks\",\"subtitle\":\"Past 24 hours\"}},[_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"warning\"}},[_vm._v(\"warning\")]),_vm._v(\" \"+_vm._s(_vm.warningCount)+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Active Policies\"}},[_c('div',{staticStyle:{\"height\":\"62px\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"security\")]),_vm._v(\" \"+_vm._s(_vm.policiesActive))],1)])],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":\"All Policies\",\"title-icon\":\"security\"},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-3\",attrs:{\"color\":\"secondary\",\"depressed\":\"\",\"to\":\"/new/watchdog\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"add\")]),_vm._v(\" New Policy \")],1)]},proxy:true}])},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Policy Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Dimension\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Severity\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Schedule\")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"Last Run\")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"Records\")]),_c('th',[_vm._v(\"Actions\")])])]),_c('tbody',[(!_vm.policies.length)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\"There are no configured policies\")])]):_vm._e(),_vm._l((_vm.policies),function(item,i){return _c('tr',{key:i},[_c('td',[_c('router-link',{attrs:{\"to\":`/watchdog/${item.id}`}},[_vm._v(\" \"+_vm._s(item.policyName)+\" \")])],1),_c('td',[_vm._v(_vm._s(item.dimension))]),_c('td',[_vm._v(_vm._s(item.severity))]),_c('td',[_vm._v(_vm._s(item.schedule))]),(item.lastRun)?_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(_vm._f(\"calendarFormat\")(item.lastRun)))]):_c('td',{staticClass:\"text-center\"},[_vm._v(\"-\")]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(item.lastRunRecordCount))]),_c('td',[_c('policy-menu',{attrs:{\"value\":item},on:{\"http2xx\":_vm.loadPageData}})],1)])})],2)])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-menu',{attrs:{\"offset-y\":\"\",\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}])},[_c('v-list',[_c('router-link',{attrs:{\"to\":`/watchdog/${_vm.value.id}/edit`}},[_c('v-list-item',[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('policyMenu.edit')))])],1)],1)],1),_c('delete-policy-dialog',{attrs:{\"policy\":_vm.value},on:{\"http2xx\":function($event){return _vm.$emit('http2xx', $event)}},scopedSlots:_vm._u([{key:\"default\",fn:function({ on }){return [_c('v-list-item',_vm._g({},on),[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(_vm._s(_vm.$t('policyMenu.delete')))])],1)],1)]}}]),model:{value:(_vm.isDeleting),callback:function ($$v) {_vm.isDeleting=$$v},expression:\"isDeleting\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('form-dialog',{attrs:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event)}},scopedSlots:_vm._u([{key:\"activator\",fn:function(bindings){return [_vm._t(\"default\",null,null,bindings)]}},{key:\"default\",fn:function({ close }){return [_c('delete-entity-card',{attrs:{\"title\":_vm.$t('deletePolicyDialog.title'),\"subtitle\":_vm.$t('deletePolicyDialog.subtitle'),\"value\":{ name: _vm.policy.policyName },\"loading\":_vm.$wait.is('deletingPolicy')},scopedSlots:_vm._u([{key:\"actions\",fn:function({ isValid, formId, clear, loading, form }){return [_c('back-button',{on:{\"click\":function($event){return close()}}}),_c('v-spacer'),_c('delete-policy-button',{directives:[{name:\"wait-while\",rawName:\"v-wait-while\",value:('deletingPolicy'),expression:\"'deletingPolicy'\"}],attrs:{\"value\":_vm.policy,\"form\":formId,\"clear\":clear,\"loading\":loading,\"valid\":isValid},on:{\"http2xx\":function($event){close().then(() => _vm.handleSuccessfulDeletion(form))}}})]}}],null,true)})]}}],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('http-delete-button',_vm._g(_vm._b({attrs:{\"href\":`/api/policies/${(_vm.value || {}).id}`,\"version\":\"v2\"},on:{\"http4xx\":_vm.onError}},'http-delete-button',_vm.$props,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deletePolicyButton.errorMessage\": \"There was an error encountered while deleting this policy. If everything looks right please contact support so we can help you :)\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyButton.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyButton.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyButton.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeletePolicyButton.vue?vue&type=template&id=75648419&\"\nimport script from \"./DeletePolicyButton.vue?vue&type=script&lang=js&\"\nexport * from \"./DeletePolicyButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeletePolicyButton.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"deletePolicyDialog.events.successfulDeletion\": \"Successfully deleted the policy '{policyName}'\",\r\n \"deletePolicyDialog.title\": \"Delete Policy\",\r\n \"deletePolicyDialog.subtitle\": \"Please enter the name of this policy to delete it\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyDialog.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DeletePolicyDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./DeletePolicyDialog.vue?vue&type=template&id=da8f4460&\"\nimport script from \"./DeletePolicyDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./DeletePolicyDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./DeletePolicyDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\n\r\n\r\n{\r\n \"en\": {\r\n \"policyMenu.delete\": \"Delete\",\r\n \"policyMenu.edit\": \"Edit\"\r\n }\r\n}\r\n\r\n\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PolicyMenu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PolicyMenu.vue?vue&type=script&lang=js&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PolicyMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PolicyMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PolicyMenu.vue?vue&type=template&id=abf12b10&\"\nimport script from \"./PolicyMenu.vue?vue&type=script&lang=js&\"\nexport * from \"./PolicyMenu.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PolicyMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { useTenantStore, useWaitStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport { listPolicies, listAllResults, getPolicySummary } from '@/lib/Api';\r\nimport PolicyMenu from '@/components/Domain.Policies/PolicyMenu.vue';\r\n\r\ntype Severity = 'Critical' | 'Warning' | 'Information';\r\n\r\ninterface IRecentResult {\r\n id: number;\r\n policyName: string;\r\n policyId: number;\r\n count: number;\r\n severity: Severity;\r\n lastRun: Date;\r\n}\r\n\r\ninterface IPolicyResult {\r\n id: number;\r\n policyName: string;\r\n dimension: string;\r\n severity: Severity;\r\n schedule: string;\r\n lastRun?: Date;\r\n lastRunRecordCount: number;\r\n}\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t('watchdogDashboard.title');\r\n },\r\n components: { PolicyMenu },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n setup() {\r\n const { is } = useWaitStore();\r\n const criticalCount = ref(0);\r\n const warningCount = ref(0);\r\n const policiesActive = ref(0);\r\n const recentResultCount = ref(0);\r\n const policies = ref([]);\r\n const loadPageData = async () => {\r\n const [policiesResp, resultsResp, summaryResp ] = await Promise.all([\r\n listPolicies(),\r\n listAllResults(),\r\n getPolicySummary(),\r\n ]);\r\n policies.value = policiesResp.map((p) => ({\r\n id: p.id,\r\n severity: p.severity as Severity,\r\n policyName: p.name,\r\n dimension: p.dimension.label,\r\n schedule: p.schedule?.description || 'Unknown',\r\n lastRun: p.lastRun,\r\n lastRunRecordCount: p.lastRunRecordCount\r\n }));\r\n criticalCount.value = summaryResp.totalCritical;\r\n policiesActive.value = summaryResp.totalPolicies;\r\n warningCount.value = summaryResp.totalWarning;\r\n recentResultCount.value = summaryResp.totalResultCount;\r\n\r\n };\r\n loadPageData();\r\n return {\r\n criticalCount,\r\n warningCount,\r\n policiesActive,\r\n policies,\r\n recentResultCount,\r\n loadPageData,\r\n wait: { is },\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=8556483c&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Index.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.policyName || _vm.$t('viewPolicy.title'),\"icon\":\"security\",\"needs-filters\":\"\",\"back-to\":\"/watchdog\",\"back-to-text\":\"Back to Dashboard\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":\"Policy Level\",\"subtitle\":`Hits on this policy are considered to be ${_vm.policyLevel}`}},[(_vm.policyLevel === 'Information')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"info\"}},[_vm._v(\"info\")]):(_vm.policyLevel === 'Warning')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"warning\"}},[_vm._v(\"warning\")]):(_vm.policyLevel === 'Error' || _vm.policyLevel === 'Critical')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"error\"}},[_vm._v(\"error\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.policyLevel)+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Dimension\",\"subtitle\":`Grouped by dimension '${_vm.dimension}'`}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"tag\")]),_vm._v(\" \"+_vm._s(_vm.dimension)+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Schedule\",\"subtitle\":_vm.scheduleDescription}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"schedule\")]),_vm._v(\" \"+_vm._s(_vm.schedule === 'PostImport' || _vm.schedule === 'EveryImport' ? 'Every Import' : _vm.schedule)+\" \")],1)],1),_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.strategySummary)+\" \")])])],1),(_vm.deltaStrategyDesc)?_c('v-card',{staticClass:\"alert-info mt-3\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.customViewDescription)+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription1(_vm.deltaStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription2(_vm.deltaStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription3(_vm.deltaStrategyDesc))+\" \")])])],1):_vm._e(),(_vm.newSpendStrategyDesc)?_c('v-card',{staticClass:\"alert-info mt-3\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.customViewDescription)+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription1(_vm.newSpendStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription2(_vm.newSpendStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription3(_vm.newSpendStrategyDesc))+\" \")])])],1):_vm._e(),(_vm.newAccountStrategyDesc)?_c('v-card',{staticClass:\"alert-info mt-3\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.customViewDescription)+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription1(_vm.newAccountStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription2(_vm.newAccountStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription3(_vm.newAccountStrategyDesc))+\" \")])])],1):_vm._e(),(_vm.regionalSpendStrategyDesc)?_c('v-card',{staticClass:\"alert-info mt-3\",attrs:{\"flat\":\"\"}},[_c('v-card-subtitle',[_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.customViewDescription)+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription1(_vm.regionalSpendStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription2(_vm.regionalSpendStrategyDesc))+\" \")]),_c('h2',{staticClass:\"subtitle-1 flex-grow-1\"},[_vm._v(\" \"+_vm._s(_vm.policyDescription3(_vm.regionalSpendStrategyDesc))+\" \")])])],1):_vm._e(),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":\"Recent Results\",\"title-icon\":\"schedule\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Policy Name\")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"Result Count\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Severity\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Ran At\")]),_c('th',{staticClass:\"text-center\"},[_vm._v(\"Download\")])])]),_c('tbody',[(!_vm.recentResults.length)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"5\"}},[_vm._v(\"There are no recent runs\")])]):_vm._e(),_vm._l((_vm.recentResults),function(item,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(item.policyName))]),_c('td',{staticClass:\"text-center\"},[_vm._v(_vm._s(item.count))]),_c('td',[_vm._v(_vm._s(item.severity))]),_c('td',[_vm._v(_vm._s(_vm._f(\"calendarFormat\")(item.lastRun)))]),_c('td',{staticClass:\"text-center\"},[_c('v-btn',{on:{\"click\":function($event){return _vm.downloadPage(item.id, item.policyId)}}},[_c('v-icon',[_vm._v(\"download\")]),_vm._v(\" Download \")],1)],1)])})],2)])],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":\"Recipients\",\"title-icon\":\"email\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Mailing List Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Recipient Addresses\")])])]),_c('tbody',[(!_vm.mailingList)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\"There is no assigned mailing list\")])]):_c('tr',[_c('td',[_vm._v(_vm._s(_vm.mailingList.name))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.mailingList.emails)+\" \")])])])])],1),_c('content-card',{staticClass:\"mt-3\",attrs:{\"title\":\"Webhooks\",\"title-icon\":\"bolt\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Webhook Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Url\")])])]),_c('tbody',[(!_vm.webhook)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\"There is no assigned webhook\")])]):_c('tr',[_c('td',[_vm._v(_vm._s(_vm.webhook.name))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.webhook.url)+\" \")])])])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { useTenantStore, useWaitStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport { getPolicy, listPolicyResults, putMailingList, getPolicyResultUrl } from '@/lib/Api';\r\n\r\ntype Severity = 'Critical' | 'Warning' | 'Information';\r\n\r\ninterface IRecentResult {\r\n id: number;\r\n policyName: string;\r\n policyId: number;\r\n count: number;\r\n severity: Severity;\r\n lastRun: Date;\r\n}\r\n\r\ninterface IMailingListViewModel {\r\n id: number;\r\n name: string;\r\n emails: string[];\r\n}\r\n\r\ninterface IWebhookViewModel {\r\n id: number;\r\n name: string;\r\n url: string;\r\n}\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t('viewPolicy.title');\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n methods:{\r\n policyDescription1(description: string) {\r\n if (description != null) return description.split('\\r\\n')[0];\r\n else return '';\r\n },\r\n policyDescription2(description: string) {\r\n if (description != null) return description.split('\\r\\n')[1];\r\n else return '';\r\n },\r\n policyDescription3(description: string) {\r\n if (description != null) return description.split('\\r\\n')[2];\r\n else return '';\r\n },\r\n },\r\n setup() {\r\n const { is } = useWaitStore();\r\n const loading = ref(false);\r\n const policyName = ref('');\r\n const policyLevel = ref('');\r\n const customViewDescription = ref('');\r\n const deltaStrategyDesc = ref('');\r\n const strategySummary = ref('');\r\n const newSpendStrategyDesc = ref('');\r\n const newAccountStrategyDesc = ref('');\r\n const regionalSpendStrategyDesc = ref('');\r\n const dimension = ref('');\r\n const schedule = ref('');\r\n const scheduleDescription = ref('');\r\n const recentResults = ref([]);\r\n const mailingList = ref();\r\n const webhook = ref();\r\n const loadPageData = async (id: number) => {\r\n const [policyResp, resultsResp] = await Promise.all([getPolicy(id), listPolicyResults(id)]);\r\n policyName.value = policyResp.name;\r\n policyLevel.value = policyResp.severity;\r\n policyResp.description;\r\n customViewDescription.value = policyResp.customView?.filterDescription || 'All Tenant Spend';\r\n deltaStrategyDesc.value = policyResp.deltaSpendStrategy?.description;\r\n newSpendStrategyDesc.value = policyResp.newSpendStrategy?.description;\r\n newAccountStrategyDesc.value = policyResp.newAccountStrategy?.description; \r\n regionalSpendStrategyDesc.value = policyResp.regionalSpendStrategy?.description;\r\n strategySummary.value = policyResp.strategySummary;\r\n dimension.value = policyResp.dimension.label;\r\n schedule.value = policyResp.schedule.frequency;\r\n scheduleDescription.value = policyResp.schedule.description;\r\n recentResults.value = resultsResp.map((r) => ({\r\n id: r.id,\r\n policyName: policyName.value,\r\n policyId: id,\r\n dimension: r.dimensionLabel,\r\n schedule: r.scheduleDescription,\r\n count: r.resultCount,\r\n lastRun: r.ranAt,\r\n severity: policyLevel.value as Severity,\r\n }));\r\n\r\n if (policyResp.mailingList) {\r\n mailingList.value = {\r\n id: policyResp.mailingList.id,\r\n name: policyResp.mailingList.name,\r\n emails: policyResp.mailingList.emails,\r\n };\r\n }\r\n\r\n if (policyResp.webhook) {\r\n webhook.value = {\r\n id: policyResp.webhook.id,\r\n name: policyResp.webhook.name,\r\n url: policyResp.webhook.url,\r\n };\r\n }\r\n };\r\n const downloadPage = async (id: number, policyId: number) => {\r\n const { downloadUrl } = await getPolicyResultUrl(policyId, id);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.setAttribute('download', `${policyName.value}_page.csv`);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n return {\r\n policyName,\r\n policyLevel,\r\n customViewDescription,\r\n strategySummary,\r\n deltaStrategyDesc,\r\n newSpendStrategyDesc,\r\n newAccountStrategyDesc,\r\n regionalSpendStrategyDesc,\r\n dimension,\r\n schedule,\r\n recentResults,\r\n mailingList,\r\n webhook,\r\n loadPageData,\r\n downloadPage,\r\n scheduleDescription,\r\n wait: { is },\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(val) {\r\n if (!val) return;\r\n if (!val.params.id) return;\r\n this.loadPageData(Number(val.params.id));\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicy.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ViewPolicy.vue?vue&type=template&id=2f3e15e1&\"\nimport script from \"./ViewPolicy.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewPolicy.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ViewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.policyName || _vm.$t('viewPolicy.title'),\"icon\":\"security\",\"needs-filters\":\"\",\"back-to\":`/watchdog/${_vm.policyId}`,\"back-to-text\":\"Back to Policy\"}}),_c('v-container',[_c('title-sheets',[_c('title-sheet',{attrs:{\"title\":\"Last Scheduled Execution\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"schedule\")]),_vm._v(\" \"+_vm._s(_vm._f(\"calendarFormat\")(_vm.policyRunTime))+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Severity\"}},[(_vm.policyLevel === 'Information')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"info\"}},[_vm._v(\"info\")]):(_vm.policyLevel === 'Warning')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"warning\"}},[_vm._v(\"warning\")]):(_vm.policyLevel === 'Error')?_c('v-icon',{attrs:{\"left\":\"\",\"color\":\"error\"}},[_vm._v(\"error\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.policyLevel)+\" \")],1),_c('title-sheet',{attrs:{\"title\":\"Total Records\"}},[_vm._v(\" \"+_vm._s(_vm.results.map((r) => r.recordCount).reduce((a, b) => a + b, 0))+\" \")])],1),_c('content-card',{attrs:{\"title\":\"Results\",\"title-icon\":\"schedule\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Page Number\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Results in page\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Actions\")])])]),_c('tbody',[(!_vm.results.length)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"4\"}},[_vm._v(\"There are no recent runs\")])]):_vm._e(),_vm._l((_vm.results),function(item,i){return _c('tr',{key:i},[_c('td',[_vm._v(\"Page #\"+_vm._s(item.id))]),_c('td',[_vm._v(_vm._s(item.recordCount)+\" records\")]),_c('td',[_c('v-btn',{on:{\"click\":function($event){return _vm.downloadPage(item.id)}}},[_c('v-icon',[_vm._v(\"download\")]),_vm._v(\" Download \")],1)],1)])})],2)])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref } from 'vue';\r\nimport { useTenantStore, useWaitStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport { getPolicy, listPolicyResults, getMailingList, getPolicyResultUrl } from '@/lib/Api';\r\n\r\ninterface IResultItem {\r\n id: number;\r\n recordCount: number;\r\n}\r\n\r\nexport default defineComponent({\r\n title(ctx) {\r\n return ctx.$t('viewPolicy.title');\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n },\r\n setup() {\r\n const { is } = useWaitStore();\r\n const policyId = ref(0);\r\n const resultId = ref(0);\r\n const policyName = ref('');\r\n const policyLevel = ref('');\r\n const policyRunTime = ref(new Date());\r\n const dimension = ref('');\r\n const emailsSent = ref(3);\r\n const results = ref([]);\r\n const loadPageData = async (id: number, rid: number) => {\r\n const [policyResp, resultsResp] = await Promise.all([getPolicy(id), listPolicyResults(id)]);\r\n policyId.value = id;\r\n resultId.value = rid;\r\n policyName.value = policyResp.name;\r\n policyLevel.value = policyResp.severity;\r\n dimension.value = policyResp.dimension.label;\r\n const result = resultsResp.find((r) => r.id === rid);\r\n if (result) {\r\n policyRunTime.value = result.ranAt;\r\n results.value = Object.entries(result.resultPages).map(([id, recordCount]) => ({\r\n id: Number(id),\r\n recordCount,\r\n }));\r\n }\r\n const emails = policyResp.schedule.emailNotifyList.split(',');\r\n if (policyResp.mailingList) {\r\n const res = await getMailingList(policyResp.mailingList.id);\r\n const allEmails = new Set([...emails, ...res.emails]);\r\n emailsSent.value = allEmails.size;\r\n } else {\r\n emailsSent.value = emails.length;\r\n }\r\n };\r\n const downloadPage = async (index: number) => {\r\n const { downloadUrl } = await getPolicyResultUrl(policyId.value, resultId.value);\r\n const link = document.createElement('a');\r\n link.href = downloadUrl;\r\n link.setAttribute('download', `${policyName.value}_page${index}.csv`);\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n };\r\n return {\r\n policyName,\r\n policyLevel,\r\n policyId,\r\n policyRunTime,\r\n dimension,\r\n emailsSent,\r\n results,\r\n loadPageData,\r\n downloadPage,\r\n wait: { is },\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(val) {\r\n if (!val) return;\r\n if (!val.params.id) return;\r\n this.loadPageData(Number(val.params.id), Number(val.params.rid));\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicyRun.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicyRun.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicyRun.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ViewPolicyRun.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ViewPolicyRun.vue?vue&type=template&id=01efca72&\"\nimport script from \"./ViewPolicyRun.vue?vue&type=script&lang=ts&\"\nexport * from \"./ViewPolicyRun.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ViewPolicyRun.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.$t((_vm.editId > 0 ? 'editPolicy.title' : 'newPolicy.title')),\"icon\":\"add\",\"needs-filters\":\"\",\"back-to\":\"/watchdog\",\"back-to-text\":\"Back to Dashboard\"}}),_c('v-container',[_c('content-card',{attrs:{\"title\":\"Policy Details\"}},[_c('v-form',{model:{value:(_vm.formValid),callback:function ($$v) {_vm.formValid=$$v},expression:\"formValid\"}},[(!_vm.isLoading && !_vm.dimensions.length)?_c('v-alert',{attrs:{\"color\":\"error\"}},[_vm._v(\" This tenant does not have any dimensions yet! \")]):_vm._e(),(!_vm.isLoading && !_vm.mailingLists.length)?_c('v-alert',{attrs:{\"color\":\"error\"}},[_vm._v(\" Watchdog policies require a mailing list. Please go to \"),_c('router-link',{attrs:{\"to\":`/settings/mailinglists`}},[_vm._v(\"settings\")]),_vm._v(\" to create a mailing list. \")],1):_vm._e(),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"8\"}},[_c('v-text-field',{staticClass:\"py-1\",attrs:{\"label\":\"Policy Name\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.policyName),callback:function ($$v) {_vm.policyName=$$v},expression:\"policyName\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Severity\",\"items\":_vm.policyLevels,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.policyLevel),callback:function ($$v) {_vm.policyLevel=$$v},expression:\"policyLevel\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Dimension\",\"items\":_vm.dimensions,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.dimension),callback:function ($$v) {_vm.dimension=$$v},expression:\"dimension\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.customViews,\"label\":\"Custom View\",\"clearable\":\"\"},model:{value:(_vm.customViewId),callback:function ($$v) {_vm.customViewId=$$v},expression:\"customViewId\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Line Item Type\",\"items\":_vm.lineItemTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.lineItemType),callback:function ($$v) {_vm.lineItemType=$$v},expression:\"lineItemType\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Strategy\",\"items\":_vm.strategies,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.strategy),callback:function ($$v) {_vm.strategy=$$v},expression:\"strategy\"}})],1)],1),(_vm.strategy == 'AverageSpend')?_c('fieldset',{staticClass:\"pa-3\"},[_c('legend',[_vm._v(\"Delta Average Spend By Dimension\")]),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Delta %\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinDeltaPercent),callback:function ($$v) {_vm.triggerMinDeltaPercent=$$v},expression:\"triggerMinDeltaPercent\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Delta Amount\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinDeltaAmount),callback:function ($$v) {_vm.triggerMinDeltaAmount=$$v},expression:\"triggerMinDeltaAmount\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Calculate Average Over (Days)\",\"type\":\"number\",\"rules\":[_vm.$rules.required(), _vm.$rules.max(90), _vm.$rules.min(10)]},model:{value:(_vm.averageOverDays),callback:function ($$v) {_vm.averageOverDays=$$v},expression:\"averageOverDays\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.granularities,\"label\":\"Comparison Granularity\"},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Look-back Period\",\"items\":_vm.comparisonPeriodTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.comparisonPeriod),callback:function ($$v) {_vm.comparisonPeriod=$$v},expression:\"comparisonPeriod\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.lookBackPeriodLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.countComparisonPeriod),callback:function ($$v) {_vm.countComparisonPeriod=$$v},expression:\"countComparisonPeriod\"}})],1)],1)],1):_vm._e(),(_vm.strategy == 'DeltaSpend')?_c('fieldset',{staticClass:\"pa-3\"},[_c('legend',[_vm._v(\"Delta Spend By Dimension\")]),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Delta %\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinDeltaPercent),callback:function ($$v) {_vm.triggerMinDeltaPercent=$$v},expression:\"triggerMinDeltaPercent\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Delta Amount\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinDeltaAmount),callback:function ($$v) {_vm.triggerMinDeltaAmount=$$v},expression:\"triggerMinDeltaAmount\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.granularities,\"label\":\"Comparison Granularity\"},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Look-back Period\",\"items\":_vm.comparisonPeriodTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.comparisonPeriod),callback:function ($$v) {_vm.comparisonPeriod=$$v},expression:\"comparisonPeriod\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.lookBackPeriodLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.countComparisonPeriod),callback:function ($$v) {_vm.countComparisonPeriod=$$v},expression:\"countComparisonPeriod\"}})],1)],1)],1):_vm._e(),(_vm.strategy == 'NewSpend')?_c('fieldset',{staticClass:\"pa-3\"},[_c('legend',[_vm._v(\"Introduced Spend By Dimension\")]),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum New Amount\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinNewAmount),callback:function ($$v) {_vm.triggerMinNewAmount=$$v},expression:\"triggerMinNewAmount\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Comparison Type\",\"items\":_vm.compareTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.compareType),callback:function ($$v) {_vm.compareType=$$v},expression:\"compareType\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.granularities,\"disabled\":\"\",\"label\":\"Comparison Granularity\"},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Look-back Period\",\"items\":_vm.comparisonPeriodTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.comparisonPeriod),callback:function ($$v) {_vm.comparisonPeriod=$$v},expression:\"comparisonPeriod\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.lookBackPeriodLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.countComparisonPeriod),callback:function ($$v) {_vm.countComparisonPeriod=$$v},expression:\"countComparisonPeriod\"}})],1)],1)],1):_vm._e(),(_vm.strategy == 'NewAccount')?_c('fieldset',{staticClass:\"pa-3\"},[_c('legend',[_vm._v(\"New Account By Dimension\")]),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum New Amount\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinNewAmount),callback:function ($$v) {_vm.triggerMinNewAmount=$$v},expression:\"triggerMinNewAmount\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"items\":_vm.granularities,\"disabled\":\"\",\"label\":\"Comparison Granularity\"},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Look-back Period\",\"items\":_vm.comparisonPeriodTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.comparisonPeriod),callback:function ($$v) {_vm.comparisonPeriod=$$v},expression:\"comparisonPeriod\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.lookBackPeriodLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.countComparisonPeriod),callback:function ($$v) {_vm.countComparisonPeriod=$$v},expression:\"countComparisonPeriod\"}})],1)],1)],1):_vm._e(),(_vm.strategy == 'RegionalSpend')?_c('fieldset',{staticClass:\"pa-3\"},[_c('legend',[_vm._v(\"Multi Region Spend By Dimension\")]),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Usage Amount\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinUsageAmount),callback:function ($$v) {_vm.triggerMinUsageAmount=$$v},expression:\"triggerMinUsageAmount\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Minimum Region Count\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.triggerMinRegionCount),callback:function ($$v) {_vm.triggerMinRegionCount=$$v},expression:\"triggerMinRegionCount\"}})],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Look-back Period\",\"items\":_vm.comparisonPeriodTypes,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.comparisonPeriod),callback:function ($$v) {_vm.comparisonPeriod=$$v},expression:\"comparisonPeriod\"}})],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.lookBackPeriodLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.countComparisonPeriod),callback:function ($$v) {_vm.countComparisonPeriod=$$v},expression:\"countComparisonPeriod\"}})],1)],1)],1):_vm._e(),_c('v-row',{staticClass:\"py-1 mt-3\"},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{attrs:{\"label\":\"Schedule Frequency\",\"items\":_vm.schedules,\"rules\":[_vm.$rules.required()]},model:{value:(_vm.schedule),callback:function ($$v) {_vm.schedule=$$v},expression:\"schedule\"}})],1),(_vm.schedule !== 'EveryImport')?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":\"Schedule Frequency Quantity\",\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.scheduleFreqQty),callback:function ($$v) {_vm.scheduleFreqQty=$$v},expression:\"scheduleFreqQty\"}})],1):_vm._e(),(_vm.schedule !== 'EveryImport')?_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-text-field',{attrs:{\"label\":_vm.scheduleDayLabel,\"type\":\"number\",\"rules\":[_vm.$rules.required()]},model:{value:(_vm.scheduleDay),callback:function ($$v) {_vm.scheduleDay=$$v},expression:\"scheduleDay\"}})],1):_vm._e()],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{staticClass:\"py-1\",attrs:{\"items\":_vm.mailingLists,\"label\":\"Mailing List\",\"clearable\":\"\"},model:{value:(_vm.mailingList),callback:function ($$v) {_vm.mailingList=$$v},expression:\"mailingList\"}})],1)],1),_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('v-select',{staticClass:\"py-1\",attrs:{\"items\":_vm.webhooks,\"label\":\"Webhook\",\"clearable\":\"\"},model:{value:(_vm.webhook),callback:function ($$v) {_vm.webhook=$$v},expression:\"webhook\"}})],1)],1),_c('v-row',{staticClass:\"py-1 mt-3\"},[_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"6\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){return _vm.back()}}},[_c('v-icon',[_vm._v(\"chevron_left\")]),_vm._v(\" Back \")],1)],1),_c('v-col',{staticClass:\"py-1\",attrs:{\"cols\":\"6\"}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"disabled\":!_vm.formValid || _vm.isSubmitting,\"loading\":_vm.isSubmitting,\"block\":\"\",\"depressed\":\"\"},on:{\"click\":function($event){_vm.trySubmitForm().then(() => _vm.back())}}},[_c('v-icon',[_vm._v(\"done\")]),_vm._v(\" \"+_vm._s(_vm.editId > 0 ? 'Update' : 'Submit')+\" \")],1)],1)],1)],1)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { useTenantStore, useWaitStore } from '@/stores';\r\nimport { mapStores } from 'pinia';\r\nimport { IDeltaSpendStrategyModel, INewSpendStrategyModel, INewAccountStrategyModel, IRegionalSpendStrategyModel, IAverageSpendStrategyModel, CostView } from '@/models/IPolicyModel'\r\nimport {\r\n createPolicy,\r\n putPolicy,\r\n listDimensions,\r\n getMailingLists,\r\n getCustomViews,\r\n getPolicy,\r\n listPolicyResults,\r\n getWebhooks\r\n} from '@/lib/Api';\r\nimport ContentCard from '@/components/Common/ContentCard.vue';\r\n\r\ninterface IListItem {\r\n value: string;\r\n text: string;\r\n}\r\n\r\nexport default defineComponent({\r\n components: { ContentCard },\r\n title(ctx) {\r\n return ctx.$t('newPolicy.title');\r\n },\r\n computed: {\r\n ...mapStores(useTenantStore),\r\n scheduleDayLabel() {\r\n if (this.schedule === 'EveryImport') return '';\r\n return this.schedule === 'Weekly' ? 'Schedule Day of the Week (Sunday = 0)' : 'Schedule Day of the Month';\r\n },\r\n lookBackPeriodLabel() {\r\n if (!this.comparisonPeriod) return '';\r\n return this.comparisonPeriod === 'Day' ? 'Look-back Days' : this.comparisonPeriod === 'Week' ? 'Look-back Weeks' : 'Look-back Months';\r\n },\r\n },\r\n methods: {\r\n back() {\r\n this.$router.push('/watchdog');\r\n },\r\n },\r\n setup() {\r\n const { is } = useWaitStore();\r\n const formValid = ref(false);\r\n\r\n const editId = ref(0);\r\n\r\n const policyName = ref('');\r\n const policyLevel = ref('Critical');\r\n const policyLevels = ref([\r\n { value: 'Critical', text: 'Critical' },\r\n { value: 'Warning', text: 'Warning' },\r\n { value: 'Information', text: 'Informational' },\r\n ]);\r\n const dimension = ref('');\r\n const dimensions = ref([]);\r\n const strategy = ref('');\r\n const strategies = ref([\r\n { value: 'AverageSpend', text: 'Delta Average Spend By Dimension' },\r\n { value: 'DeltaSpend', text: 'Delta Spend By Dimension' },\r\n { value: 'NewSpend', text: 'Introduced Spend By Dimension' },\r\n { value: 'NewAccount', text: 'New Account By Dimension' },\r\n { value: 'RegionalSpend', text: 'Multi Region Spend By Dimension' }\r\n ]);\r\n const compareType = ref('Product');\r\n const compareTypes = ref([\r\n { value: 'Product', text: 'Products' },\r\n { value: 'ProductCategory', text: 'Product Categories' },\r\n { value: 'Region', text: 'Regions' }\r\n ]);\r\n const granularity = ref('Day');\r\n const granularities = ref([\r\n { value: 'Day', text: 'Day' },\r\n { value: 'Week', text: 'Week' },\r\n { value: 'Month', text: 'Month' },\r\n ])\r\n const countComparisonPeriod = ref(1);\r\n const comparisonPeriod = ref('Day');\r\n const comparisonPeriodTypes = ref([\r\n { value: 'Day', text: 'Day(s)' },\r\n { value: 'Week', text: 'Week(s)' },\r\n { value: 'Month', text: 'Month(s)' },\r\n ]);\r\n const lineItemType = ref('UsagePlusFees');\r\n const lineItemTypes = ref([\r\n { value: 'UsageOnly', text: 'Usage Only' },\r\n { value: 'UsagePlusFees', text: 'Usage + Fees' },\r\n { value: 'FeesOnly', text: 'Fees Only' }\r\n ]);\r\n const triggerMinDeltaPercent = ref(20);\r\n const triggerMinDeltaAmount = ref(100);\r\n const averageOverDays = ref(30);\r\n const triggerMinNewAmount = ref(100);\r\n const triggerMinUsageAmount = ref(1000);\r\n const triggerMinRegionCount = ref(3);\r\n const scheduleFreqQty = ref(1);\r\n const scheduleDay = ref(1);\r\n const schedule = ref('EveryImport');\r\n const schedules = ref([\r\n { value: 'EveryImport', text: 'Twice daily @ 00:00 UTC & 12:00 UTC' },\r\n { value: 'Weekly', text: 'Weekly' },\r\n { value: 'Monthly', text: 'Monthly' },\r\n ]);\r\n const mailingList = ref(null);\r\n const mailingLists = ref([]);\r\n const emailRecipients = ref([]);\r\n\r\n const webhook = ref(null);\r\n const webhooks = ref([]);\r\n\r\n const customViewId = ref(null);\r\n const customViews = ref([]);\r\n\r\n const isLoading = ref(false);\r\n const loadPageData = async () => {\r\n try {\r\n isLoading.value = true;\r\n const [dims, mls, cvs, whs] = await Promise.all([listDimensions(), getMailingLists(), getCustomViews(), getWebhooks()]);\r\n dimensions.value = dims.map((d) => ({\r\n value: d.id.toString(),\r\n text: d.label,\r\n }));\r\n mailingLists.value = mls.map((m) => ({\r\n value: m.id.toString(),\r\n text: m.name,\r\n }));\r\n customViews.value = cvs.map((cv) => ({\r\n value: cv.id,\r\n text: cv.name,\r\n }));\r\n webhooks.value = whs.map((wh) => ({\r\n value: wh.id.toString(),\r\n text: wh.name,\r\n }));\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n loadPageData();\r\n const isSubmitting = ref(false);\r\n const trySubmitForm = async () => {\r\n try {\r\n isSubmitting.value = true;\r\n let averageSpendStrategy: IAverageSpendStrategyModel;\r\n let deltaSpendStrategy: IDeltaSpendStrategyModel;\r\n let newSpendStrategy: INewSpendStrategyModel;\r\n let newAccountStrategy: INewAccountStrategyModel;\r\n let regionalSpendStrategy: IRegionalSpendStrategyModel;\r\n if (strategy.value == \"AverageSpend\") {\r\n newSpendStrategy = null;\r\n regionalSpendStrategy = null;\r\n deltaSpendStrategy = null;\r\n newAccountStrategy = null;\r\n averageSpendStrategy = {\r\n comparePeriod: comparisonPeriod.value,\r\n comparePeriodQuantity: countComparisonPeriod.value,\r\n granularity: granularity.value,\r\n averageOverDays: averageOverDays.value,\r\n triggerMinDeltaAmount: triggerMinDeltaAmount.value,\r\n triggerMinDeltaPercent: triggerMinDeltaPercent.value,\r\n description: null,\r\n lineItemType: lineItemType.value,\r\n };\r\n }\r\n\r\n if (strategy.value == \"DeltaSpend\") {\r\n newSpendStrategy = null;\r\n regionalSpendStrategy = null;\r\n newAccountStrategy = null;\r\n deltaSpendStrategy = {\r\n comparePeriod: comparisonPeriod.value,\r\n comparePeriodQuantity: countComparisonPeriod.value,\r\n granularity: granularity.value,\r\n serviceName: null,\r\n triggerMinDeltaAmount: triggerMinDeltaAmount.value,\r\n triggerMinDeltaPercent: triggerMinDeltaPercent.value,\r\n description: null,\r\n lineItemType: lineItemType.value,\r\n };\r\n }\r\n\r\n if (strategy.value == \"NewSpend\") {\r\n deltaSpendStrategy = null;\r\n regionalSpendStrategy = null;\r\n newAccountStrategy = null;\r\n newSpendStrategy = {\r\n compareType: compareType.value,\r\n comparePeriod: comparisonPeriod.value,\r\n comparePeriodQuantity: countComparisonPeriod.value,\r\n granularity: granularity.value,\r\n triggerMinNewAmount: triggerMinNewAmount.value,\r\n description: null,\r\n lineItemType: lineItemType.value,\r\n };\r\n }\r\n\r\n if (strategy.value == \"NewAccount\") {\r\n deltaSpendStrategy = null;\r\n regionalSpendStrategy = null;\r\n newSpendStrategy = null;\r\n newAccountStrategy = {\r\n comparePeriod: comparisonPeriod.value,\r\n comparePeriodQuantity: countComparisonPeriod.value,\r\n triggerMinNewAmount: triggerMinNewAmount.value,\r\n description: null,\r\n lineItemType: lineItemType.value,\r\n };\r\n }\r\n\r\n if (strategy.value == \"RegionalSpend\") {\r\n deltaSpendStrategy = null;\r\n newSpendStrategy = null;\r\n newAccountStrategy = null;\r\n regionalSpendStrategy = {\r\n comparePeriod: comparisonPeriod.value,\r\n comparePeriodQuantity: countComparisonPeriod.value,\r\n triggerMinUsageAmount: triggerMinUsageAmount.value,\r\n triggerMinRegionCount: triggerMinRegionCount.value,\r\n description: null,\r\n lineItemType: lineItemType.value,\r\n };\r\n }\r\n\r\n const policyRequest = {\r\n createdDate: new Date(),\r\n dimension: { id: Number(dimension.value), label: '', tagKey: '', index: 0 },\r\n id: editId.value > 0 ? editId.value : 0,\r\n name: policyName.value,\r\n severity: policyLevel.value,\r\n strategySummary: null,\r\n description: null,\r\n lastRun: null,\r\n lastRunRecordCount: 0,\r\n updatedDate: new Date(),\r\n lineItemType: null,\r\n deltaSpendStrategy: deltaSpendStrategy,\r\n newSpendStrategy: newSpendStrategy,\r\n regionalSpendStrategy: regionalSpendStrategy,\r\n averageSpendStrategy: averageSpendStrategy,\r\n newAccountStrategy: newAccountStrategy,\r\n schedule: {\r\n id: 0,\r\n description: '',\r\n emailNotifyList: emailRecipients.value.join(','),\r\n frequency: schedule.value,\r\n frequencyQuantity: scheduleFreqQty.value,\r\n nextScheduled: new Date(),\r\n day: scheduleDay.value,\r\n },\r\n mailingList: {\r\n id: mailingList.value,\r\n name: '',\r\n emails: [],\r\n },\r\n customView: {\r\n id: customViewId.value ?? -1,\r\n },\r\n webhook: {\r\n id: webhook.value ?? -1,\r\n }\r\n }\r\n\r\n if (editId.value > 0)\r\n return await putPolicy(policyRequest);\r\n else\r\n return await createPolicy(policyRequest);\r\n } finally {\r\n isSubmitting.value = false;\r\n }\r\n };\r\n\r\n const loadPolicyDataForEdit = async (id: number) => {\r\n const [policyResp, resultsResp] = await Promise.all([getPolicy(id), listPolicyResults(id)]);\r\n\r\n policyName.value = policyResp.name;\r\n policyLevel.value = policyResp.severity;\r\n customViewId.value = policyResp.customView?.id;\r\n dimension.value = policyResp.dimension?.id.toString();\r\n schedule.value = policyResp.schedule.frequency;\r\n scheduleFreqQty.value = policyResp.schedule.frequencyQuantity;\r\n scheduleDay.value = policyResp.schedule.day;\r\n mailingList.value = policyResp.mailingList?.id.toString();\r\n webhook.value = policyResp.webhook?.id.toString();\r\n\r\n if (policyResp.newSpendStrategy) {\r\n strategy.value = \"NewSpend\";\r\n lineItemType.value = policyResp.newSpendStrategy.lineItemType;\r\n triggerMinNewAmount.value = policyResp.newSpendStrategy.triggerMinNewAmount;\r\n compareType.value = policyResp.newSpendStrategy.compareType;\r\n granularity.value = policyResp.newSpendStrategy.granularity;\r\n comparisonPeriod.value = policyResp.newSpendStrategy.comparePeriod;\r\n countComparisonPeriod.value = policyResp.newSpendStrategy.comparePeriodQuantity;\r\n }\r\n else if (policyResp.newAccountStrategy) {\r\n strategy.value = \"NewAccount\";\r\n lineItemType.value = policyResp.newAccountStrategy.lineItemType;\r\n triggerMinNewAmount.value = policyResp.newAccountStrategy.triggerMinNewAmount;\r\n comparisonPeriod.value = policyResp.newAccountStrategy.comparePeriod;\r\n countComparisonPeriod.value = policyResp.newAccountStrategy.comparePeriodQuantity;\r\n }\r\n else if (policyResp.regionalSpendStrategy) {\r\n strategy.value = \"RegionalSpend\";\r\n lineItemType.value = policyResp.regionalSpendStrategy.lineItemType;\r\n triggerMinUsageAmount.value = policyResp.regionalSpendStrategy.triggerMinUsageAmount;\r\n triggerMinRegionCount.value = policyResp.regionalSpendStrategy.triggerMinRegionCount;\r\n comparisonPeriod.value = policyResp.regionalSpendStrategy.comparePeriod;\r\n countComparisonPeriod.value = policyResp.regionalSpendStrategy.comparePeriodQuantity;\r\n }\r\n else if (policyResp.deltaSpendStrategy) {\r\n strategy.value = \"DeltaSpend\";\r\n lineItemType.value = policyResp.deltaSpendStrategy.lineItemType;\r\n triggerMinDeltaPercent.value = policyResp.deltaSpendStrategy.triggerMinDeltaPercent;\r\n triggerMinDeltaAmount.value = policyResp.deltaSpendStrategy.triggerMinDeltaAmount;\r\n granularity.value = policyResp.deltaSpendStrategy.granularity;\r\n comparisonPeriod.value = policyResp.deltaSpendStrategy.comparePeriod;\r\n countComparisonPeriod.value = policyResp.deltaSpendStrategy.comparePeriodQuantity;\r\n }\r\n else if (policyResp.averageSpendStrategy) {\r\n strategy.value = \"AverageSpend\";\r\n lineItemType.value = policyResp.averageSpendStrategy.lineItemType;\r\n averageOverDays.value = policyResp.averageSpendStrategy.averageOverDays;\r\n triggerMinDeltaPercent.value = policyResp.averageSpendStrategy.triggerMinDeltaPercent;\r\n triggerMinDeltaAmount.value = policyResp.averageSpendStrategy.triggerMinDeltaAmount;\r\n granularity.value = policyResp.averageSpendStrategy.granularity;\r\n comparisonPeriod.value = policyResp.averageSpendStrategy.comparePeriod;\r\n countComparisonPeriod.value = policyResp.averageSpendStrategy.comparePeriodQuantity;\r\n }\r\n };\r\n\r\n return {\r\n formValid,\r\n policyName,\r\n policyLevel,\r\n policyLevels,\r\n dimension,\r\n dimensions,\r\n strategy,\r\n strategies,\r\n compareType,\r\n compareTypes,\r\n scheduleFreqQty,\r\n scheduleDay,\r\n schedule,\r\n schedules,\r\n granularity,\r\n granularities,\r\n countComparisonPeriod,\r\n comparisonPeriod,\r\n comparisonPeriodTypes,\r\n lineItemType,\r\n lineItemTypes,\r\n triggerMinDeltaPercent,\r\n triggerMinDeltaAmount,\r\n averageOverDays,\r\n triggerMinNewAmount,\r\n triggerMinUsageAmount,\r\n triggerMinRegionCount,\r\n mailingList,\r\n mailingLists,\r\n webhook,\r\n webhooks,\r\n emailRecipients,\r\n isSubmitting,\r\n editId,\r\n trySubmitForm,\r\n loadPolicyDataForEdit,\r\n isLoading,\r\n customViewId,\r\n customViews,\r\n wait: { is },\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n handler(val) {\r\n if (!val) return;\r\n if (!val.params.id) return;\r\n\r\n this.editId = Number(val.params.id);\r\n this.loadPolicyDataForEdit(this.editId);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewPolicy.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewPolicy.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NewPolicy.vue?vue&type=template&id=701ba4d0&\"\nimport script from \"./NewPolicy.vue?vue&type=script&lang=ts&\"\nexport * from \"./NewPolicy.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NewPolicy.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import { v4 } from 'uuid';\r\nimport { PartialPick } from '@/lib';\r\nimport { ISavedReportResultParams, PluralEntityType } from '@/models';\r\n\r\nexport interface Identified {\r\n id: string;\r\n}\r\n\r\nexport interface Named {\r\n name: string;\r\n}\r\n\r\nexport interface Described {\r\n description: string;\r\n}\r\n\r\nexport interface Position {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface Rectangle {\r\n w: number;\r\n h: number;\r\n}\r\n\r\nexport interface Typed {\r\n type: TType;\r\n}\r\n\r\nexport interface GridWidget extends Identified, Named, Position, Rectangle {\r\n config: TConfig;\r\n}\r\n\r\nexport interface Grid extends Identified, Named, Described {\r\n elements: {\r\n [id: string]: TElementType;\r\n };\r\n}\r\n\r\nexport enum WidgetTypes {\r\n legacyChart = 'legacyChart',\r\n\r\n columnChart = 'columnChart',\r\n lineChart = 'lineChart',\r\n table = 'table',\r\n trends = 'trends',\r\n singleStatistic = 'singleStatistic',\r\n pieChart = 'pieChart',\r\n recommendations = 'recommendations',\r\n\r\n note = 'note',\r\n\r\n embed = 'embed'\r\n}\r\n\r\nexport enum ChartTypes {\r\n usageChart = 'usageChart',\r\n emissionsChart = 'emissionsChart',\r\n}\r\n\r\nexport interface INoteWidgetData {\r\n title: string;\r\n subtitle: string;\r\n bodyText: string;\r\n color: string;\r\n}\r\n\r\nexport interface IEmbedWidgetData {\r\n urlTitle: string;\r\n url: string;\r\n}\r\n\r\nexport interface ITrendsWidgetData {\r\n toDate: string | null;\r\n dateRangeKey: string;\r\n segregateBy: PluralEntityType.products | PluralEntityType.services;\r\n renderType?: 'chart' | 'table';\r\n}\r\n\r\nexport interface IRecommendationsWidgetData {\r\n categories: string[] | null;\r\n classifications: string[] | null;\r\n providerTypes: string[] | null;\r\n namespaces: string[] | null;\r\n recommendationIds: string[] | null;\r\n}\r\n\r\nexport interface ISpendUsageWidgetData extends ISavedReportResultParams {\r\n includeAnnotations?:boolean;\r\n}\r\n\r\nexport type UsageReportWidget = Typed<\r\n| WidgetTypes.legacyChart\r\n| WidgetTypes.columnChart\r\n| WidgetTypes.lineChart\r\n| WidgetTypes.singleStatistic\r\n| WidgetTypes.table\r\n| WidgetTypes.pieChart\r\n> &\r\nGridWidget;\r\n\r\nexport type NoteWidget = Typed & GridWidget;\r\n\r\nexport type EmbedWidget = Typed & GridWidget;\r\n\r\nexport type TrendsWidget = Typed & GridWidget;\r\n\r\nexport type RecommendationWidget = Typed & GridWidget;\r\n\r\n// If you want a new type of configuration for a widget, add an | keyed by type.\r\nexport type CCWidget = UsageReportWidget | NoteWidget | EmbedWidget | TrendsWidget | RecommendationWidget;\r\n\r\nexport type CCGrid = Grid;\r\n\r\nexport const initGrid = (p: { name: string; description:string; prefix?: string }): CCGrid => {\r\n const { name, prefix, description } = p;\r\n return {\r\n id: prefix ? `${prefix}:${v4()}` : v4(),\r\n name: name,\r\n description: description,\r\n elements: {},\r\n };\r\n};\r\n\r\nexport const patchGridFn = (p: PartialPick, grid: CCGrid): CCGrid => {\r\n Object.keys(p).forEach((k) => {\r\n if (p[k] !== undefined) {\r\n grid[k] = p[k];\r\n }\r\n });\r\n\r\n return grid;\r\n};\r\n\r\nexport const addGridElement = (widget: CCWidget, grid: CCGrid): CCGrid => {\r\n const isExisting = grid.elements[widget.id];\r\n if (isExisting) throw new Error('Grid element already exists!');\r\n grid.elements[widget.id] = widget;\r\n return grid;\r\n};\r\n\r\nexport const patchGridElement = (\r\n id: string,\r\n p: PartialPick,\r\n grid: CCGrid\r\n): CCGrid => {\r\n const element = grid.elements[id];\r\n if (element) {\r\n Object.keys(p).forEach((k) => {\r\n if (p[k] !== undefined) {\r\n element[k] = p[k];\r\n }\r\n });\r\n }\r\n\r\n return grid;\r\n};\r\n\r\nexport const removeGridElement = (id: string, grid: CCGrid): CCGrid => {\r\n delete grid.elements[id];\r\n return grid;\r\n};\r\n\r\nexport const reshapeGridElements = (\r\n dimensions: (Partial & Identified)[],\r\n grid: CCGrid\r\n): CCGrid => {\r\n if (!dimensions?.length) return;\r\n dimensions.forEach((d) => {\r\n const element = grid.elements[d.id];\r\n if (element) {\r\n if (d.h !== undefined) {\r\n element.h = d.h;\r\n }\r\n if (d.w !== undefined) {\r\n element.w = d.w;\r\n }\r\n if (d.x !== undefined) {\r\n element.x = d.x;\r\n }\r\n if (d.y !== undefined) {\r\n element.y = d.y;\r\n }\r\n } else {\r\n console.error('not found');\r\n }\r\n });\r\n\r\n return grid;\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":\"Custom Dashboards\",\"icon\":\"dashboard\"}}),_c('v-container',[_c('content-card',{attrs:{\"title\":\"Custom Dashboards\",\"caption\":\"All configured custom dashboards for this tenant.\",\"title-icon\":\"dashboard\"},scopedSlots:_vm._u([{key:\"title-actions\",fn:function(){return [_c('v-btn',{staticClass:\"mr-2\",attrs:{\"color\":\"secondary\",\"flat\":\"\",\"loading\":_vm.isSaveNetworkLoading,\"disabled\":_vm.isSaveNetworkLoading},on:{\"click\":function($event){_vm.isPuttingDashboard = true}}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"create\")]),_vm._v(\" Create \")],1)]},proxy:true}])},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\"},[_vm._v(\"Name\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Description\")]),_c('th',{staticClass:\"text-left\"},[_vm._v(\"Actions\")])])]),_c('tbody',[(!_vm.dashboards || !_vm.dashboards.length)?_c('tr',[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":\"3\"}},[_vm._v(\"There are no dashboards currently\")])]):_vm._e(),_vm._l((_vm.dashboards),function(item){return _c('tr',{key:item.name},[_c('td',[_c('router-link',{attrs:{\"to\":`/dashboarding/${item.id}`}},[_vm._v(_vm._s(item.name))])],1),_c('td',[_vm._v(_vm._s(item.description))]),_c('td',[_c('v-menu',{scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('v-btn',_vm._g({attrs:{\"icon\":\"\"}},on),[_c('v-icon',[_vm._v(\"more_vert\")])],1)]}}],null,true)},[_c('v-list',[_c('v-list-item',{on:{\"click\":function($event){return _vm.startEditDashboard(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Edit\")])],1)],1),_c('v-list-item',{on:{\"click\":function($event){return _vm.startDeleteDashboard(item)}}},[_c('v-list-item-icon',[_c('v-icon',[_vm._v(\"delete\")])],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Delete\")])],1)],1)],1)],1)],1)])})],2)])],1)],1),_c('form-dialog',{model:{value:(_vm.isPuttingDashboard),callback:function ($$v) {_vm.isPuttingDashboard=$$v},expression:\"isPuttingDashboard\"}},[_c('form-card',{attrs:{\"title\":\"Create Dashboard\",\"subtitle\":\"Creates a new custom dashboard\",\"loading\":_vm.isSaveNetworkLoading},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-btn',{on:{\"click\":function($event){_vm.isPuttingDashboard = false}}},[_vm._v(\"Back\")]),_c('v-spacer'),_c('v-btn',{attrs:{\"loading\":_vm.isSaveNetworkLoading,\"disabled\":!_vm.isCreateFormValid || _vm.isSaveNetworkLoading},on:{\"click\":function($event){return _vm.handlePutDashboard()}}},[_vm._v(\"Submit\")])]},proxy:true}]),model:{value:(_vm.isCreateFormValid),callback:function ($$v) {_vm.isCreateFormValid=$$v},expression:\"isCreateFormValid\"}},[_c('v-text-field',{attrs:{\"label\":\"Dashboard Name\"},model:{value:(_vm.newDashboardName),callback:function ($$v) {_vm.newDashboardName=$$v},expression:\"newDashboardName\"}}),_c('v-textarea',{attrs:{\"label\":\"Dashboard Description\"},model:{value:(_vm.newDashboardDesc),callback:function ($$v) {_vm.newDashboardDesc=$$v},expression:\"newDashboardDesc\"}})],1)],1),_c('delete-entity-dialog',{attrs:{\"entityType\":\"dashboard\",\"entityToDelete\":_vm.focusedDashboard,\"resourceApi\":\"/api/dashboards\"},on:{\"http2xx\":function($event){return _vm.handleDeleted()}},model:{value:(_vm.isDeletingDashboard),callback:function ($$v) {_vm.isDeletingDashboard=$$v},expression:\"isDeletingDashboard\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { defineStore } from 'pinia';\r\nimport { ref } from 'vue';\r\nimport KeyedBlobsDb from '../databases/KeyedBlobsDb';\r\nimport { v4 } from 'uuid';\r\nimport * as G from '../merge/Grid';\r\nimport { ISavedReportResultParams } from '@/models';\r\n\r\nexport const useGridStore = defineStore('grid', () => {\r\n const currentDocKey = ref(null);\r\n\r\n const gridDoc = ref(null);\r\n const cachedPositionalUpdates = ref<{ [elementId: string]: G.Position }>({});\r\n const cachedSizingUpdates = ref<{ [elementId: string]: G.Rectangle }>({});\r\n\r\n const load = async (key?: string) => {\r\n if (key) currentDocKey.value = key;\r\n await initAndCommitCurrent();\r\n };\r\n\r\n const putGrid = async (key: string, doc: G.CCGrid) => {\r\n gridDoc.value = await KeyedBlobsDb.changeDoc(key, {\r\n initFn: () => doc,\r\n changeFn: () => {\r\n /* Do nothing */\r\n },\r\n });\r\n };\r\n\r\n const initAndCommitGrid = async (id: string, p?: { fn?: (grid) => G.CCGrid; name?: string, description?: string }) => {\r\n const { fn, name, description } = p || {};\r\n return await KeyedBlobsDb.changeDoc(id, {\r\n initFn: () => G.initGrid({ name: name || 'Unnamed Grid', description: description || 'A grid of usage components' }),\r\n changeFn: fn,\r\n });\r\n };\r\n\r\n const initAndCommitCurrent = async (p?: { fn?: (grid) => G.CCGrid; name?: string, description?:string }) => {\r\n gridDoc.value = await initAndCommitGrid(currentDocKey.value, p);\r\n return gridDoc.value;\r\n };\r\n\r\n const addFeedElement = async (\r\n name: string,\r\n type: G.WidgetTypes,\r\n config: ISavedReportResultParams | G.INoteWidgetData | G.IEmbedWidgetData | G.ITrendsWidgetData | G.IRecommendationsWidgetData,\r\n pos: G.Position & G.Rectangle\r\n ) => {\r\n const id = v4();\r\n const { h, w, x, y } = pos;\r\n const element = (grid) => {\r\n if (type === G.WidgetTypes.note) {\r\n if ('title' in config) {\r\n return G.addGridElement({ id, h, w, x, y, type, config, name }, grid)\r\n } else {\r\n throw new Error('Unsupported configuration for note widget');\r\n }\r\n } else if (type === G.WidgetTypes.embed) {\r\n if ('url' in config) {\r\n return G.addGridElement({ id, h, w, x, y, type, config, name }, grid)\r\n } else {\r\n throw new Error('Unsupported configuration for embed widget');\r\n }\r\n } else if (type === G.WidgetTypes.trends) {\r\n const trendConfig = config as G.ITrendsWidgetData;\r\n return G.addGridElement({ id, h, w, x, y, type, config: trendConfig, name }, grid)\r\n } else if (type === G.WidgetTypes.recommendations) {\r\n const recommendationConfig = config as G.IRecommendationsWidgetData;\r\n return G.addGridElement({ id, h, w, x, y, type, config: recommendationConfig, name }, grid)\r\n } else {\r\n const savedReportsParams = config as ISavedReportResultParams;\r\n if ('title' in config) {\r\n throw new Error('Note widget configuration supplied to standard widget');\r\n } else if ('urlTitle' in config) {\r\n throw new Error('Embed widget configuration supplied to standard widget');\r\n } \r\n else {\r\n return G.addGridElement({ id, h, w, x, y, type, config: savedReportsParams, name }, grid) \r\n }\r\n }\r\n };\r\n await initAndCommitCurrent({ fn: element });\r\n };\r\n\r\n const updateGridName = async (id: string, name: string) => {\r\n return await initAndCommitGrid(id, { fn: (grid) => G.patchGridFn({ name }, grid), name });\r\n };\r\n\r\n const updateFeedElement = async (\r\n id: string,\r\n name: string,\r\n type: G.WidgetTypes,\r\n config: ISavedReportResultParams | G.INoteWidgetData | G.IEmbedWidgetData | G.IRecommendationsWidgetData\r\n ) => {\r\n const fn = (grid) => {\r\n if (type === G.WidgetTypes.note) {\r\n if ('title' in config) {\r\n return G.patchGridElement(\r\n id,\r\n {\r\n name,\r\n type,\r\n config,\r\n },\r\n grid\r\n );\r\n } else {\r\n throw new Error('Unsupported configuration for note widget');\r\n }\r\n } else if (type === G.WidgetTypes.embed) {\r\n if ('urlTitle' in config) {\r\n return G.patchGridElement(\r\n id,\r\n {\r\n name,\r\n type,\r\n config,\r\n },\r\n grid\r\n );\r\n } else {\r\n throw new Error('Unsupported configuration for embed widget');\r\n }\r\n } else if (type === G.WidgetTypes.trends) {\r\n const trendConfig = config as G.ITrendsWidgetData;\r\n return G.patchGridElement(\r\n id,\r\n {\r\n name,\r\n type,\r\n config: trendConfig,\r\n },\r\n grid\r\n );\r\n } else if (type === G.WidgetTypes.recommendations) {\r\n const recommendationConfig = config as G.IRecommendationsWidgetData;\r\n return G.patchGridElement(\r\n id,\r\n {\r\n name,\r\n type,\r\n config: recommendationConfig,\r\n },\r\n grid\r\n );\r\n } else {\r\n if ('title' in config) {\r\n throw new Error('Note widget configuration supplied to standard widget');\r\n } else if ('urlTitle' in config) {\r\n throw new Error('Embed widget configuration supplied to standard widget');\r\n } \r\n else {\r\n const reportConfig = config as ISavedReportResultParams;\r\n return G.patchGridElement(\r\n id,\r\n {\r\n name,\r\n type,\r\n config: reportConfig,\r\n },\r\n grid\r\n );\r\n }\r\n }\r\n }\r\n return await initAndCommitCurrent({ fn, name });\r\n };\r\n\r\n const removeGridElement = async (nodeId: string) => {\r\n const fn = (grid) => G.removeGridElement(nodeId, grid);\r\n return await initAndCommitCurrent({ fn });\r\n };\r\n\r\n const commitCachedValues = async () => {\r\n const positional: { [id: string]: Partial & G.Identified } = {};\r\n Object.entries(cachedPositionalUpdates.value).forEach(([id, v]) => {\r\n positional[id] = { id, x: v.x, y: v.y };\r\n });\r\n Object.entries(cachedSizingUpdates.value).forEach(([id, s]) => {\r\n const val = positional[id] || { id };\r\n val.w = s.w;\r\n val.h = s.h;\r\n positional[id] = val;\r\n });\r\n const fn = (grid) => G.reshapeGridElements(Object.values(positional), grid);\r\n const result = await initAndCommitCurrent({ fn });\r\n cachedPositionalUpdates.value = {};\r\n cachedSizingUpdates.value = {};\r\n return result;\r\n };\r\n\r\n return {\r\n currentDocKey,\r\n gridDoc,\r\n cachedPositionalUpdates,\r\n cachedSizingUpdates,\r\n commitCachedValues,\r\n load,\r\n addFeedElement,\r\n updateFeedElement,\r\n removeGridElement,\r\n initAndCommitCurrent,\r\n initAndCommitGrid,\r\n putGrid,\r\n updateGridName,\r\n };\r\n});\r\n","\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { ICustomDashboardModel } from '@/models';\r\nimport { listCustomDashboards, createCustomDashboard, putCustomDashboard } from '@/lib/Api';\r\nimport { useGridStore } from '@/stores/grid';\r\nimport * as G from '@/merge/Grid';\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const gridStore = useGridStore();\r\n const dashboards = ref([]);\r\n const isPuttingDashboard = ref(false);\r\n const isCreateFormValid = ref(true);\r\n const isSaveNetworkLoading = ref(false);\r\n const newDashboardName = ref('');\r\n const newDashboardDesc = ref('');\r\n const focusedDashboard = ref(null);\r\n\r\n const loadViewState = async () => {\r\n dashboards.value = await listCustomDashboards();\r\n };\r\n loadViewState();\r\n\r\n const handlePutDashboard = async () => {\r\n //\r\n try {\r\n isSaveNetworkLoading.value = true;\r\n const name = newDashboardName.value;\r\n const description = newDashboardDesc.value;\r\n if (focusedDashboard.value) {\r\n const grid = await gridStore.updateGridName(focusedDashboard.value.id, name);\r\n await putCustomDashboard(\r\n focusedDashboard.value.id,\r\n { name, description },\r\n grid\r\n );\r\n focusedDashboard.value.name = name;\r\n focusedDashboard.value.description = description;\r\n } else {\r\n const doc = G.initGrid({ name, description });\r\n const result = await createCustomDashboard(\r\n {\r\n description: newDashboardDesc.value,\r\n name: newDashboardName.value,\r\n },\r\n doc\r\n );\r\n await gridStore.putGrid(result.id, doc);\r\n dashboards.value = [...dashboards.value, result];\r\n }\r\n focusedDashboard.value = null;\r\n isPuttingDashboard.value = false;\r\n } finally {\r\n isSaveNetworkLoading.value = false;\r\n }\r\n };\r\n\r\n const startEditDashboard = (dash: ICustomDashboardModel) => {\r\n isPuttingDashboard.value = true;\r\n focusedDashboard.value = dash;\r\n };\r\n\r\n watch(focusedDashboard, (d) => {\r\n newDashboardName.value = d?.name || null;\r\n newDashboardDesc.value = d?.description || null;\r\n });\r\n\r\n const isDeletingDashboard = ref(false);\r\n const startDeleteDashboard = (dash: ICustomDashboardModel) => {\r\n isDeletingDashboard.value = true;\r\n focusedDashboard.value = dash;\r\n };\r\n\r\n const handleDeleted = () => {\r\n focusedDashboard.value = null;\r\n loadViewState();\r\n };\r\n\r\n return {\r\n dashboards,\r\n isSaveNetworkLoading,\r\n isCreateFormValid,\r\n isPuttingDashboard,\r\n focusedDashboard,\r\n newDashboardDesc,\r\n newDashboardName,\r\n handlePutDashboard,\r\n startEditDashboard,\r\n isDeletingDashboard,\r\n startDeleteDashboard,\r\n loadViewState,\r\n handleDeleted,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=699e2263&\"\nimport script from \"./Index.vue?vue&type=script&lang=ts&\"\nexport * from \"./Index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('fragment',[_c('page-header',{attrs:{\"title\":_vm.pageTitle,\"icon\":\"dashboard\",\"back-to\":\"/dashboarding\",\"extended\":\"\",\"extension-height\":10}},[_c('v-btn',{attrs:{\"color\":\"secondary\",\"fab\":\"\",\"absolute\":\"\",\"depressed\":\"\",\"bottom\":\"\",\"large\":\"\",\"right\":\"\"},on:{\"click\":function($event){return _vm.startCreate()}}},[_c('v-icon',[_vm._v(\"addchart\")])],1)],1),_c('Grid',{staticClass:\"mt-7\",attrs:{\"gridId\":_vm.$route.params.id},on:{\"onEdit\":_vm.onEditReportWidget,\"onDelete\":_vm.onDeleteWidget}}),_c('WidgetGridFormDialog',{attrs:{\"config\":_vm.focusedWidget},scopedSlots:_vm._u([{key:\"actions\",fn:function({ config, widgetName, widgetType }){return [_c('v-spacer'),_c('v-btn',{attrs:{\"color\":\"secondary\"},on:{\"click\":function($event){return _vm.handleSave(widgetName, widgetType, config)}}},[_vm._v(\" Submit \")])]}}]),model:{value:(_vm.isPutting),callback:function ($$v) {_vm.isPutting=$$v},expression:\"isPutting\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('grid-layout',{attrs:{\"layout\":_vm.layout,\"col-num\":2,\"row-height\":30,\"is-draggable\":true,\"is-resizable\":true,\"is-mirrored\":false,\"responsive\":false,\"vertical-compact\":true,\"margin\":[10, 10],\"use-css-transforms\":true},on:{\"update:layout\":function($event){_vm.layout=$event}}},_vm._l((_vm.layout),function(item){return _c('grid-item',{key:item.id,attrs:{\"x\":item.x,\"y\":item.y,\"w\":item.w,\"h\":item.h,\"i\":item.id},on:{\"moved\":_vm.handleMoved,\"move\":_vm.handleMoved,\"resize\":_vm.handleResized,\"resized\":_vm.handleResized}},[_c('GridWidget',{attrs:{\"config\":item.config,\"name\":item.name,\"type\":item.type},on:{\"onDelete\":function($event){return _vm.onDeleteWidget(item)},\"onEdit\":function($event){return _vm.onEditWidget(item)}},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('v-spacer'),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.onEditWidget(item)}}},[_c('v-icon',[_vm._v(\"edit\")])],1),_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.onDeleteWidget(item)}}},[_c('v-icon',[_vm._v(\"delete\")])],1)]},proxy:true}],null,true)})],1)}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.type === 'columnChart')?_c('ColumnChartGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'lineChart')?_c('LineChartGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'table')?_c('TableGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'pieChart')?_c('PieChartGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'note')?_c('TextualGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'embed')?_c('EmbedGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'trends')?_c('ComparisonChartGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):(_vm.type === 'recommendations')?_c('RecommendationsGridWidget',{attrs:{\"name\":_vm.name,\"config\":_vm.config,\"hide-actions\":_vm.hideActions},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_vm._t(\"actions\")]},proxy:true}],null,true)}):_c('div',[_vm._v(\"Unknown widget type \"+_vm._s(_vm.type))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"loading\":_vm.isLoadingUsage}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"savings\")]),_vm._v(\" \"+_vm._s(_vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),(_vm.segregations && _vm.segregations.length > 1)?_c('v-tabs',{model:{value:(_vm.focusedSegregation),callback:function ($$v) {_vm.focusedSegregation=$$v},expression:\"focusedSegregation\"}},_vm._l((_vm.segregations),function(t){return _c('v-tab',{key:t,attrs:{\"tab-value\":t}},[_vm._v(\" \"+_vm._s(t)+\" \")])}),1):_vm._e(),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\",\"width\":\"100%\"}},[(_vm.dataset === 'Usage')?[_c('SpendUsageBarChart',{attrs:{\"data\":_vm.newChartData,\"annotations\":_vm.annotations,\"granularity\":_vm.usageOptions.granularity,\"allowRangeSelection\":true,\"height\":\"100%\"},on:{\"onRangeSelection\":_vm.onRangeSelection,\"click\":_vm.handleDatasetClicked}})]:[_c('CarbonBarChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"annotations\":_vm.annotations,\"granularity\":_vm.usageOptions.granularity,\"height\":\"100%\"},on:{\"click\":_vm.handleDatasetClicked}})]],2),[_c('div',{staticClass:\"text-center pa-4\"},[_c('form-dialog',{attrs:{\"width\":500},scopedSlots:_vm._u([{key:\"activator\",fn:function(activatorBindings){return [_vm._t(\"activator\",null,null,activatorBindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('annotationDialog.dialogTitle'),\"subtitle\":_vm.annotationDialogSubtitle}},[_c('annotations-timeline',{attrs:{\"annotations\":_vm.selectedAnnotations,\"allowEdit\":false,\"showNavigate\":true,\"showProduct\":true}}),[_c('back-button',{on:{\"click\":function($event){return close()}}})]],2)]}}],null,true),model:{value:(_vm.annotationDialog),callback:function ($$v) {_vm.annotationDialog=$$v},expression:\"annotationDialog\"}})],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, watch, computed } from 'vue';\r\nimport {\r\n calculateOptionsDescription,\r\n convertSpendOptionsToQuery,\r\n} from '../../Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport SpendUsageBarChart, {\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n UsageReportTypes,\r\n convertAnnotatesToAnnotations,\r\n} from '../../Domain.Usage/SpendUsageBarChart.vue';\r\nimport CarbonBarChart, { convertUsageResponseToEmissionsDatasets } from '../../Domain.Carbon/CarbonBarChart.vue';\r\nimport hash from 'object-hash';\r\nimport { useFilterStore } from '@/stores';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { getSpend } from '@/lib/Api';\r\nimport { ChartDataset, Point } from 'chart.js';\r\nimport { generateSpendUsageOptionsFromReport, Granularity, PluralEntityType, SpendFieldNames } from '@/models';\r\nimport moment from '@/lib/moment';\r\nimport { Annotation } from '@/models/Annotation';\r\nimport AnnotationsTimeline from '../../Domain.Annotations/AnnotationsTimeline.vue';\r\nimport { ISpendUsageWidgetData } from '@/merge/Grid';\r\n\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n components: { SpendUsageBarChart, CarbonBarChart, AnnotationsTimeline },\r\n data() {\r\n return {\r\n selectedAnnotations: [],\r\n annotationDialog: false,\r\n };\r\n },\r\n setup(props, context) {\r\n const filterStore = useFilterStore();\r\n\r\n const usageOptions = ref({\r\n ...filterStore.options,\r\n });\r\n\r\n const focusedSegregation = ref(0);\r\n const segregations = ref([]);\r\n const dataset = ref('Usage');\r\n const costViews = ref(['Actual', 'Amortized', 'Utilized']);\r\n const includeAnnotations = ref(false);\r\n\r\n const handleDatasetClicked = () => {\r\n //emit('onEdit');\r\n };\r\n\r\n const newChartData = ref({\r\n labels: [] as string[],\r\n datasets: [] as ChartDataset<'bar' | 'line', Point[]>[],\r\n });\r\n const maxDate = ref(undefined);\r\n\r\n const lastHash = ref(null);\r\n const annotations = ref([]);\r\n const createdAnnotations = ref();\r\n const isLoadingUsage = ref(false);\r\n\r\n const loadUsage = async (\r\n toTrends: (searchParams: URLSearchParams) => void,\r\n onAnnotationSelection: (annotations: Annotation[], xMin: number, xMax: number) => void\r\n ) => {\r\n if (isLoadingUsage.value) return;\r\n const optionsHash = hash([usageOptions.value, dataset.value, costViews.value, includeAnnotations.value]);\r\n if (lastHash.value === optionsHash) return;\r\n lastHash.value = optionsHash;\r\n\r\n try {\r\n isLoadingUsage.value = true;\r\n const params = convertSpendOptionsToQuery(usageOptions.value);\r\n if (!params) return;\r\n const spendParams = { ...params, segregateBy: usageOptions.value.segregateBy };\r\n\r\n const fields =\r\n dataset.value === 'Usage' ? [SpendFieldNames.Charges] : [SpendFieldNames.CO2e, SpendFieldNames.kWh];\r\n\r\n const results = await Promise.all(\r\n costViews.value.map((cv) => getSpend({ ...spendParams, costView: cv, fields }))\r\n );\r\n\r\n let chartLabels = [];\r\n let chartDatasets = [];\r\n\r\n maxDate.value = params.toDate;\r\n\r\n if (dataset.value === 'Usage') {\r\n const datasets = results.map((r, i) => {\r\n const costView = costViews.value[i];\r\n const labelSuffix = costView === 'Actual' ? 'Actual' : 'Utilized';\r\n const stackGroup = costView.toLowerCase();\r\n return convertUsageResponseToDatasets(r, {\r\n labelSuffix,\r\n stackGroup,\r\n reportType: UsageReportTypes.charges,\r\n });\r\n });\r\n chartLabels = datasets.map((d) => d.labels).reduce((a, b) => [...a, ...b], []);\r\n chartDatasets = datasets.map((d) => d.datasets).reduce((a, b) => [...a, ...b], []);\r\n } else {\r\n const datasets = results.map((r, i) => {\r\n const costView = costViews.value[i];\r\n const labelSuffix = costView === 'Actual' ? 'Actual' : 'Utilized';\r\n const stackGroup = costView.toLowerCase();\r\n return convertUsageResponseToEmissionsDatasets(r, {\r\n labelSuffix,\r\n stackGroup,\r\n });\r\n });\r\n chartLabels = datasets.map((d) => d[0].labels).reduce((a, b) => [...a, ...b], []);\r\n chartDatasets = datasets.map((d) => d[0].datasets).reduce((a, b) => [...a, ...b], []);\r\n }\r\n\r\n newChartData.value = {\r\n labels: chartLabels,\r\n datasets: chartDatasets,\r\n } as any;\r\n\r\n if (includeAnnotations.value) {\r\n createdAnnotations.value = await ApiV2.http\r\n .get(`/api/annotations`, {\r\n params: {\r\n fromDate: params.fromDate,\r\n toDate: params.toDate,\r\n cloudAccountIds: params.cloudAccountIds,\r\n subscriptionIds: params.subscriptionIds,\r\n serviceIds: params.serviceIds,\r\n tagKeyValue: params.tagKeyValue,\r\n },\r\n })\r\n .then((r) => r.data);\r\n\r\n const anno = convertAnnotatesToAnnotations(\r\n createdAnnotations.value,\r\n chartDatasets,\r\n usageOptions.value.granularity as Granularity,\r\n (xMin, xMax) => {\r\n onAnnotationSelection(createdAnnotations.value, xMin, xMax);\r\n }\r\n );\r\n\r\n const spikeEventsResponse = await ApiV2.http\r\n .get(`/api/events?eventType=SpikeEventAlert`, { params })\r\n .catch((err) => {\r\n if (err.response.status === 400) return { data: {} };\r\n throw err;\r\n })\r\n .then((r) => r.data);\r\n\r\n const spikes = convertEventsToAnnotations(spikeEventsResponse, (xMin, xMax) => {\r\n const toDate = new Date(xMax);\r\n const numDaysBetween = Math.ceil((xMax - xMin) / (1000 * 3600 * 24));\r\n const period = `${numDaysBetween}d`;\r\n const segregateBy = usageOptions.value.segregateBy === 'services' ? 'services' : 'products';\r\n const searchParams = new URLSearchParams({\r\n toDate: toDate.toISOString(),\r\n period,\r\n segregateBy,\r\n });\r\n toTrends(searchParams);\r\n });\r\n\r\n annotations.value = [...anno, ...spikes];\r\n } else {\r\n createdAnnotations.value = [];\r\n annotations.value = [];\r\n }\r\n } finally {\r\n isLoadingUsage.value = false;\r\n }\r\n };\r\n\r\n watch(\r\n () => props.config,\r\n (opt) => {\r\n if (!opt) return;\r\n const report = opt as ISpendUsageWidgetData;\r\n segregations.value = (report.segregateBy || '').split(',').filter((a) => a);\r\n const params = generateSpendUsageOptionsFromReport(report);\r\n const segregateBy = segregations.value[focusedSegregation.value] as PluralEntityType;\r\n usageOptions.value = { ...params, segregateBy };\r\n dataset.value = report.dataset || 'Usage';\r\n costViews.value = report.costViews || ['Actual'];\r\n includeAnnotations.value = report.includeAnnotations || false;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n watch(\r\n () => focusedSegregation.value,\r\n (v) => {\r\n const segregateBy = segregations.value[v] as PluralEntityType;\r\n if (usageOptions.value.segregateBy !== segregateBy) {\r\n usageOptions.value = { ...usageOptions.value, segregateBy };\r\n }\r\n },\r\n { immediate: false }\r\n );\r\n const loadTriggers = computed(() => {\r\n return [usageOptions.value, dataset.value, costViews.value];\r\n });\r\n\r\n return {\r\n usageOptions,\r\n handleDatasetClicked,\r\n annotations,\r\n newChartData,\r\n loadUsage,\r\n isLoadingUsage,\r\n focusedSegregation,\r\n segregations,\r\n lastHash,\r\n loadTriggers,\r\n dataset,\r\n createdAnnotations,\r\n maxDate,\r\n };\r\n },\r\n methods: {\r\n toTrends(searchParams: URLSearchParams) {\r\n this.$router.push(`/trends?${searchParams.toString()}`);\r\n },\r\n onRangeSelection(event: { xMax: number; xMin: number }) {\r\n const toDate = new Date(event.xMax);\r\n toDate.setHours(0, 0, 0, 0);\r\n\r\n const numDaysBetween = Math.ceil((event.xMax - event.xMin) / (1000 * 3600 * 24));\r\n const period = `${numDaysBetween}d`;\r\n const segregateBy = this.usageOptions.value.segregateBy === 'services' ? 'services' : 'products';\r\n const searchParams = new URLSearchParams({\r\n toDate: toDate.toISOString(),\r\n period,\r\n segregateBy,\r\n });\r\n this.toTrends(searchParams);\r\n },\r\n onAnnotationSelection(annotations: Annotation[], xMin: number, xMax: number) {\r\n const toDate = new Date(xMax).getTime();\r\n const fromDate = new Date(xMin).getTime();\r\n this.selectedAnnotations = annotations.filter((x) => {\r\n const date = new Date(x.annotationDate).getTime();\r\n return date >= fromDate && date <= toDate;\r\n });\r\n this.annotationDialog = true;\r\n },\r\n },\r\n watch: {\r\n loadTriggers: {\r\n handler() {\r\n this.loadUsage(this.toTrends, this.onAnnotationSelection);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n chartTitle() {\r\n return this.name || calculateOptionsDescription(this.usageOptions, (...params) => this.$t(...params));\r\n },\r\n annotationDialogSubtitle() {\r\n if (this.selectedAnnotations && this.selectedAnnotations.length > 0) {\r\n const dates = this.selectedAnnotations\r\n .map((x) => {\r\n const date = new Date(x.annotationDate);\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n })\r\n .sort((a, b) => a.getTime() - b.getTime());\r\n\r\n const start = moment(dates[0]);\r\n const end = moment(dates[dates.length - 1]);\r\n if (start.isSame(end)) {\r\n return start.format('MMMM DD');\r\n }\r\n return `${start.format('MMMM DD')} - ${end.format('MMMM DD')}`;\r\n }\r\n return undefined;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColumnChartGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColumnChartGridWidget.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColumnChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColumnChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ColumnChartGridWidget.vue?vue&type=template&id=2055e840&scoped=true&\"\nimport script from \"./ColumnChartGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./ColumnChartGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ColumnChartGridWidget.vue?vue&type=style&index=0&id=2055e840&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2055e840\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ColumnChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\"}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"savings\")]),_vm._v(\" \"+_vm._s(_vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),(_vm.segregations && _vm.segregations.length > 1)?_c('v-tabs',{model:{value:(_vm.focusedSegregation),callback:function ($$v) {_vm.focusedSegregation=$$v},expression:\"focusedSegregation\"}},_vm._l((_vm.segregations),function(t){return _c('v-tab',{key:t,attrs:{\"tab-value\":t}},[_vm._v(\" \"+_vm._s(t)+\" \")])}),1):_vm._e(),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\"}},[(_vm.dataset === 'Usage')?[_c('SpendUsageLineChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"annotations\":_vm.annotations,\"granularity\":_vm.usageOptions.granularity,\"height\":\"100%\"},on:{\"click\":_vm.handleDatasetClicked}})]:[_c('CarbonLineChart',{attrs:{\"max-date\":_vm.maxDate,\"data\":_vm.newChartData,\"annotations\":_vm.annotations,\"granularity\":_vm.usageOptions.granularity,\"height\":\"100%\"},on:{\"click\":_vm.handleDatasetClicked}})]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, onMounted, watch } from 'vue';\r\nimport { useTenantStore, storeToRefs } from '@/stores';\r\nimport createUsageBarChart, {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n IClickEvent,\r\n UsageReportTypes,\r\n IUsageDatapoint,\r\n} from '@/chartjs/createUsageBarChart';\r\nimport { Granularity } from '@/models';\r\nexport {\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n IClickEvent,\r\n IUsageDatapoint,\r\n UsageReportTypes,\r\n};\r\n\r\nexport default defineComponent({\r\n props: {\r\n granularity: String,\r\n data: Object,\r\n annotations: Array,\r\n height: String,\r\n maxDate: String\r\n },\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n \r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.classList.add('chart-canvas');\r\n if (p.height === '100%') {\r\n canvas.value.classList.add('fill-height-srsly');\r\n root.value.classList.add('fill-height');\r\n canvasContainer.value.classList.add('fill-height-srsly');\r\n } else {\r\n canvas.value.style.height = p.height || '400px';\r\n }\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = p.height || '400px';\r\n \r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n\r\n const chart = createUsageBarChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n granularity: p.granularity as Granularity.daily | Granularity.monthly,\r\n onClick(event) {\r\n emit('click', event);\r\n },\r\n allowRangeSelection: false,\r\n type: 'line',\r\n maxDate: p.maxDate\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.options.plugins.annotation.annotations = p.annotations || [];\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n watch(\r\n () => p.annotations,\r\n () => renderChart(),\r\n { immediate: false, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n '$vuetify.theme.dark': {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageLineChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsageLineChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpendUsageLineChart.vue?vue&type=template&id=120a7396&\"\nimport script from \"./SpendUsageLineChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsageLineChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, onMounted, watch } from 'vue';\r\nimport createEmissionBarChart, {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToEmissionsDatasets,\r\n IClickEvent,\r\n ReverseLookup,\r\n} from '@/chartjs/createEmissionBarChart';\r\nimport { Granularity } from '@/models';\r\nexport {\r\n convertCO2eResponseToDatasets,\r\n convertProjectionsResponseToDataset,\r\n convertUsageResponseToEmissionsDatasets,\r\n IClickEvent,\r\n ReverseLookup,\r\n};\r\n\r\nexport default defineComponent({\r\n props: {\r\n granularity: String,\r\n data: Object,\r\n height: String,\r\n maxDate: String,\r\n hideKwh: Boolean\r\n },\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const legend = ref(null);\r\n const canvasContainer = ref(null);\r\n\r\n const renderChart = () => {\r\n if (!p.data) return;\r\n if (!root.value) return;\r\n root.value.innerHTML = \"\";\r\n root.value.classList.add('chart-container');\r\n\r\n canvasContainer.value = document.createElement('div');\r\n canvasContainer.value.classList.add('chart-canvas-container');\r\n \r\n canvas.value = document.createElement(\"canvas\");\r\n canvas.value.classList.add('chart-canvas');\r\n if (p.height === '100%') {\r\n canvas.value.classList.add('fill-height-srsly');\r\n root.value.classList.add('fill-height');\r\n canvasContainer.value.classList.add('fill-height-srsly');\r\n } else {\r\n canvas.value.style.height = p.height || '400px';\r\n }\r\n\r\n legend.value = document.createElement('div');\r\n legend.value.id = Math.floor(Math.random() * 1000000).toString();\r\n legend.value.innerHTML =\"\";\r\n legend.value.classList.add('chart-legend');\r\n legend.value.style.maxHeight = p.height || '400px';\r\n\r\n \r\n canvasContainer.value.appendChild(canvas.value);\r\n root.value.appendChild(canvasContainer.value);\r\n root.value.appendChild(legend.value);\r\n const chart = createEmissionBarChart(canvas.value, {\r\n granularity: p.granularity as Granularity.daily | Granularity.monthly,\r\n onClick(event) {\r\n emit('click', event);\r\n },\r\n type: 'line',\r\n maxDate: p.maxDate,\r\n hideKwh: p.hideKwh || false\r\n },\r\n legend.value.id);\r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n onMounted(() => {\r\n renderChart();\r\n });\r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n return { root, canvas, renderChart };\r\n },\r\n watch: {\r\n '$vuetify.theme.dark': {\r\n handler() {\r\n this.renderChart();\r\n },\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonLineChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CarbonLineChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CarbonLineChart.vue?vue&type=template&id=4cd73a4c&\"\nimport script from \"./CarbonLineChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarbonLineChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent, ref, watch, computed } from 'vue';\r\nimport {\r\n calculateOptionsDescription,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport SpendUsageLineChart, {\r\n convertUsageResponseToDatasets,\r\n convertEventsToAnnotations,\r\n UsageReportTypes,\r\n} from '@/components/Domain.Usage/SpendUsageLineChart.vue';\r\nimport CarbonLineChart, {\r\n convertUsageResponseToEmissionsDatasets,\r\n} from '@/components/Domain.Carbon/CarbonLineChart.vue';\r\nimport { useFilterStore } from '@/stores';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { getSpend } from '@/lib/Api';\r\nimport { ChartDataset, Point } from 'chart.js';\r\nimport { ISpendUsageWidgetData } from '@/merge/Grid';\r\nimport { generateSpendUsageOptionsFromReport, PluralEntityType, SpendFieldNames } from '@/models';\r\nimport hash from 'object-hash';\r\n\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n components: { SpendUsageLineChart, CarbonLineChart },\r\n setup(props) {\r\n const filterStore = useFilterStore();\r\n\r\n const usageOptions = ref({\r\n ...filterStore.options,\r\n });\r\n\r\n const focusedSegregation = ref(0);\r\n const segregations = ref([]);\r\n const dataset = ref('Usage');\r\n const costViews = ref(['Actual', 'Amortized', 'Utilized']);\r\n const includeAnnotations = ref(false);\r\n\r\n watch(\r\n () => props.config,\r\n (opt) => {\r\n if (!opt) return;\r\n const report = opt as ISpendUsageWidgetData;\r\n segregations.value = (report.segregateBy || '').split(',');\r\n const params = generateSpendUsageOptionsFromReport(report);\r\n const segregateBy = segregations.value[focusedSegregation.value] as PluralEntityType;\r\n usageOptions.value = { ...params, segregateBy };\r\n dataset.value = report.dataset || 'Usage';\r\n costViews.value = report.costViews || ['Actual'];\r\n includeAnnotations.value = report.includeAnnotations || false;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n watch(\r\n () => focusedSegregation.value,\r\n (v) => {\r\n const segregateBy = segregations.value[v] as PluralEntityType;\r\n if (usageOptions.value.segregateBy !== segregateBy) {\r\n usageOptions.value = { ...usageOptions.value, segregateBy };\r\n }\r\n },\r\n { immediate: false }\r\n );\r\n\r\n const handleDatasetClicked = () => {\r\n //emit('onEdit');\r\n };\r\n\r\n const newChartData = ref({\r\n labels: [] as string[],\r\n datasets: [] as ChartDataset<'bar' | 'line', Point[]>[],\r\n });\r\n const maxDate = ref(null);\r\n\r\n const lastHash = ref(null);\r\n const annotations = ref([]);\r\n const isLoadingUsage = ref(false);\r\n const loadUsage = async (toTrends: (searchParams: URLSearchParams) => void) => {\r\n if (isLoadingUsage.value) return;\r\n const optionsHash = hash([usageOptions.value, dataset.value, costViews.value, includeAnnotations.value]);\r\n if (lastHash.value === optionsHash) return;\r\n lastHash.value = optionsHash;\r\n\r\n try {\r\n isLoadingUsage.value = true;\r\n const params = convertSpendOptionsToQuery(usageOptions.value);\r\n if (!params) return;\r\n\r\n maxDate.value = params.toDate;\r\n const fields =\r\n dataset.value === 'Usage' ? [SpendFieldNames.Charges] : [SpendFieldNames.CO2e, SpendFieldNames.kWh];\r\n\r\n const results = await Promise.all(\r\n costViews.value.map((cv) =>\r\n getSpend({ ...params, costView: cv, segregateBy: usageOptions.value.segregateBy, fields })\r\n )\r\n );\r\n\r\n if (dataset.value === 'Usage') {\r\n const datasets = results.map((r, i) => {\r\n const costView = costViews.value[i];\r\n const labelSuffix = costView === 'Actual' ? 'Actual Spend' : 'Utilized Spend';\r\n const stackGroup = costView.toLowerCase();\r\n return convertUsageResponseToDatasets(r, {\r\n labelSuffix,\r\n stackGroup,\r\n reportType: UsageReportTypes.charges,\r\n });\r\n });\r\n newChartData.value = {\r\n labels: datasets.map((d) => d.labels).reduce((a, b) => [...a, ...b], []),\r\n datasets: datasets.map((d) => d.datasets).reduce((a, b) => [...a, ...b], []),\r\n } as any;\r\n } else {\r\n const datasets = results.map((r, i) => {\r\n const costView = costViews.value[i];\r\n const labelSuffix = costView === 'Actual' ? 'Actual Spend' : 'Utilized Spend';\r\n const stackGroup = costView.toLowerCase();\r\n return convertUsageResponseToEmissionsDatasets(r, { labelSuffix, stackGroup });\r\n });\r\n newChartData.value = {\r\n labels: datasets.map((d) => d[0].labels).reduce((a, b) => [...a, ...b], []),\r\n datasets: datasets.map((d) => d[0].datasets).reduce((a, b) => [...a, ...b], []),\r\n } as any;\r\n }\r\n\r\n if (includeAnnotations.value) {\r\n const spikeEventsResponse = await ApiV2.http\r\n .get(`/api/events?eventType=SpikeEventAlert`, { params })\r\n .catch((err) => {\r\n if (err.response.status === 400) return { data: {} };\r\n throw err;\r\n })\r\n .then((r) => r.data);\r\n\r\n annotations.value = convertEventsToAnnotations(spikeEventsResponse, (xMin, xMax) => {\r\n const toDate = new Date(xMax);\r\n const numDaysBetween = Math.ceil((xMax - xMin) / (1000 * 3600 * 24));\r\n const period = `${numDaysBetween}d`;\r\n const segregateBy = usageOptions.value.segregateBy === 'services' ? 'services' : 'products';\r\n const searchParams = new URLSearchParams({\r\n toDate: toDate.toISOString(),\r\n period,\r\n segregateBy,\r\n });\r\n toTrends(searchParams);\r\n });\r\n } else {\r\n annotations.value = [];\r\n }\r\n } finally {\r\n isLoadingUsage.value = false;\r\n }\r\n };\r\n const loadTriggers = computed(() => {\r\n return [usageOptions.value, dataset.value, costViews.value];\r\n });\r\n\r\n return {\r\n usageOptions,\r\n handleDatasetClicked,\r\n annotations,\r\n newChartData,\r\n loadUsage,\r\n isLoadingUsage,\r\n focusedSegregation,\r\n segregations,\r\n lastHash,\r\n dataset,\r\n loadTriggers,\r\n maxDate,\r\n };\r\n },\r\n methods: {\r\n toTrends(searchParams: URLSearchParams) {\r\n this.$router.push(`/trends?${searchParams.toString()}`);\r\n },\r\n },\r\n watch: {\r\n loadTriggers: {\r\n handler() {\r\n this.loadUsage(this.toTrends);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n chartTitle() {\r\n return this.name || calculateOptionsDescription(this.usageOptions, (...params) => this.$t(...params));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LineChartGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./LineChartGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LineChartGridWidget.vue?vue&type=template&id=22ca530e&scoped=true&\"\nimport script from \"./LineChartGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./LineChartGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LineChartGridWidget.vue?vue&type=style&index=0&id=22ca530e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"22ca530e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"loading\":_vm.isLoadingUsage}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"savings\")]),_vm._v(\" \"+_vm._s(_vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\"}},[(_vm.usageOptions && _vm.segregateBy === 'meters')?_c('SpendUsageUnitToggle',{model:{value:(_vm.unitOfDisplay),callback:function ($$v) {_vm.unitOfDisplay=$$v},expression:\"unitOfDisplay\"}}):_vm._e(),(_vm.dataset === 'Usage')?_c('SpendUsageTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.usageTableItems,\"segregate-by\":_vm.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay,\"domLayout\":null}}):_c('CarbonTable',{staticClass:\"mt-3\",attrs:{\"items\":_vm.emissionsTableItems,\"segregate-by\":_vm.segregateBy,\"currency-code\":_vm.currencyCode,\"unitOfDisplay\":_vm.unitOfDisplay,\"domLayout\":null}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, watch, computed } from 'vue';\r\nimport {\r\n calculateOptionsDescription,\r\n convertSpendOptionsToQuery,\r\n} from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\nimport SpendUsageTable from '@/components/Domain.Usage/SpendUsageTable.vue';\r\nimport CarbonTable, {\r\n convertToEmissionsItemRecords,\r\n ICarbonTableRecordsViewModel\r\n} from '@/components/Domain.Carbon/CarbonTable.vue';\r\nimport { useFilterStore, storeToRefs, useTenantStore } from '@/stores';\r\nimport { getSpend } from '@/lib/Api';\r\nimport {\r\n generateSpendUsageOptionsFromReport,\r\n ISavedReportResultParams,\r\n ISpendUsageTableRecordsViewModel,\r\n} from '@/models';\r\nimport { UnitOfDisplay } from '@/enums/UnitOfDisplay.enum';\r\nimport SpendUsageUnitToggle from '@/components/Domain.Usage/SpendUsageUnitToggle.vue';\r\nimport { SpendUsageTableFunctions } from '@/components/Domain.Usage/SpendUsageTableFunctions';\r\nimport hash from 'object-hash';\r\n\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n components: { SpendUsageTable, CarbonTable, SpendUsageUnitToggle },\r\n setup(props, { emit }) {\r\n const filterStore = useFilterStore();\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n\r\n const usageOptions = ref({\r\n ...filterStore.options,\r\n });\r\n\r\n const unitOfDisplay = ref(UnitOfDisplay.cost);\r\n const usageTableItems = ref(null);\r\n const emissionsTableItems = ref(null);\r\n const dataset = ref('Usage');\r\n const costViews = ref(['Actual', 'Amortized', 'Utilized']);\r\n\r\n watch(\r\n () => props.config,\r\n (opt) => {\r\n if (!opt) return;\r\n const params = generateSpendUsageOptionsFromReport(opt as ISavedReportResultParams);\r\n usageOptions.value = params;\r\n dataset.value = opt.dataset || 'Usage';\r\n costViews.value = (opt.costViews || ['Actual']);\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n const handleDatasetClicked = () => {\r\n //emit('onEdit');\r\n };\r\n\r\n const segregateBy = computed(() => {\r\n if (!usageOptions.value) return '';\r\n if (Array.isArray(usageOptions.value.segregateBy))\r\n return usageOptions.value.segregateBy.join(',');\r\n return usageOptions.value.segregateBy || '';\r\n });\r\n\r\n const lastHash = ref(null);\r\n const isLoadingUsage = ref(false);\r\n const loadUsage = async () => {\r\n if (isLoadingUsage.value) return;\r\n const optionsHash = hash([ usageOptions.value, dataset.value, costViews.value ]);\r\n if (lastHash.value === optionsHash) return;\r\n lastHash.value = optionsHash;\r\n \r\n try {\r\n isLoadingUsage.value = true;\r\n const params = convertSpendOptionsToQuery(usageOptions.value);\r\n if (!params) return;\r\n\r\n const segregateBy = usageOptions.value.segregateBy;\r\n const results = await Promise.all(costViews.value.map(costView => getSpend({ ...params, costView, segregateBy })));\r\n\r\n if (dataset.value === 'Usage') {\r\n const records = results.map((r, i) => {\r\n const costView = costViews[i];\r\n return SpendUsageTableFunctions.convertToItemRecords(params, segregateBy, r, costView);\r\n });\r\n usageTableItems.value = records[0];\r\n usageTableItems.value.records = records.map((r) => r.records).reduce((a, b) => [...a, ...b], []);\r\n } else {\r\n const records = results.map(r => {\r\n return convertToEmissionsItemRecords(params, r);\r\n });\r\n emissionsTableItems.value = records[0];\r\n emissionsTableItems.value.records = records.map(r => r.records).reduce((a, b) => [...a, ...b], []);\r\n }\r\n\r\n } finally {\r\n isLoadingUsage.value = false;\r\n }\r\n };\r\n\r\n const loadTriggers = computed(() => {\r\n return [ usageOptions.value, dataset.value, costViews.value ];\r\n });\r\n\r\n return {\r\n usageOptions,\r\n handleDatasetClicked,\r\n loadUsage,\r\n isLoadingUsage,\r\n usageTableItems,\r\n emissionsTableItems,\r\n currencyCode,\r\n unitOfDisplay,\r\n dataset,\r\n loadTriggers,\r\n segregateBy\r\n };\r\n },\r\n methods: {\r\n toTrends(searchParams: URLSearchParams) {\r\n this.$router.push(`/trends?${searchParams.toString()}`);\r\n },\r\n },\r\n watch: {\r\n loadTriggers: {\r\n handler() {\r\n this.loadUsage(this.toTrends);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n chartTitle() {\r\n return this.name || calculateOptionsDescription(this.usageOptions, (...params) => this.$t(...params));\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TableGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TableGridWidget.vue?vue&type=template&id=43e55e9f&scoped=true&\"\nimport script from \"./TableGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./TableGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./TableGridWidget.vue?vue&type=style&index=0&id=43e55e9f&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"43e55e9f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"loading\":_vm.isLoadingUsage}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"pie_chart\")]),_vm._v(\" \"+_vm._s(_vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),(_vm.segregations && _vm.segregations.length > 1)?_c('v-tabs',{model:{value:(_vm.focusedSegregation),callback:function ($$v) {_vm.focusedSegregation=$$v},expression:\"focusedSegregation\"}},_vm._l((_vm.segregations),function(t){return _c('v-tab',{key:t,attrs:{\"tab-value\":t}},[_vm._v(\" \"+_vm._s(t)+\" \")])}),1):_vm._e(),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\",\"width\":\"100%\"}},[_c('SpendUsagePieChart',{attrs:{\"data\":_vm.pieChartData,\"height\":\"100%\"},on:{\"click\":_vm.handleDatasetClicked}})],1),_c('div',{staticClass:\"text-center pa-4\"},[_c('form-dialog',{attrs:{\"width\":500},scopedSlots:_vm._u([{key:\"activator\",fn:function(activatorBindings){return [_vm._t(\"activator\",null,null,activatorBindings)]}},{key:\"default\",fn:function({ close }){return [_c('form-card',{attrs:{\"title\":_vm.$t('annotationDialog.dialogTitle'),\"subtitle\":_vm.annotationDialogSubtitle}},[_c('annotations-timeline',{attrs:{\"annotations\":_vm.selectedAnnotations,\"allowEdit\":false,\"showNavigate\":true,\"showProduct\":true}}),[_c('back-button',{on:{\"click\":function($event){return close()}}})]],2)]}}],null,true),model:{value:(_vm.annotationDialog),callback:function ($$v) {_vm.annotationDialog=$$v},expression:\"annotationDialog\"}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{ref:\"root\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import * as CssVariables from \"@/lib/CssVariables\";\r\nimport { Chart } from \"chart.js/auto\";\r\nimport { LEGACY_COLORS_RGB } from './legacy'\r\nimport { formatCurrency } from '@/lib/Currencies';\r\n\r\nexport interface IClickEvent {\r\n index: number;\r\n name: string;\r\n isOther: boolean;\r\n datasetGroupId: string;\r\n}\r\n\r\nexport interface IOptions {\r\n currencyCode: string;\r\n onClick?: (event: IClickEvent) => void;\r\n}\r\n\r\nfunction colorize(opaque, hover, ctx) {\r\n const v = ctx.parsed;\r\n const c = v < -50\r\n ? \"#D60000\"\r\n : v < 0\r\n ? \"#F46300\"\r\n : v < 50\r\n ? \"#0358B6\"\r\n : \"#44DE28\";\r\n\r\n //const opacity = hover ? 1 - Math.abs(v / 150) - 0.2 : 1 - Math.abs(v / 150);\r\n\r\n return c;\r\n}\r\n\r\nfunction hoverColorize(ctx) {\r\n return colorize(false, true, ctx);\r\n}\r\n\r\nimport { ChartData } from \"chart.js\";\r\nimport { ISpendAndConsumptionGroup, ISpendResult } from \"@/models\";\r\n\r\nexport function convertUsageToPieDataset(\r\n usageResult: ISpendResult | null,\r\n reportType: \"spend\" | \"charges\" | \"credits\" = \"spend\",\r\n): ChartData<\"pie\", number[], string> {\r\n if (!usageResult || !usageResult.groupings?.length) {\r\n return { labels: [], datasets: [] };\r\n }\r\n\r\n const valueFn = {\r\n spend: (g: ISpendAndConsumptionGroup) => g.total,\r\n charges: (g: ISpendAndConsumptionGroup) => g.totalCharges,\r\n credits: () => 0\r\n }[reportType];\r\n\r\n const labels: string[] = [];\r\n const data: number[] = [];\r\n const backgroundColor: string[] = [];\r\n\r\n usageResult.groupings.forEach((g, i) => {\r\n const label = g.name || \"All Usage\";\r\n labels.push(label);\r\n data.push(valueFn(g));\r\n backgroundColor.push(\r\n g.isOther\r\n ? \"#87db79\" // or pattern if you're using it\r\n : `rgb(${LEGACY_COLORS_RGB[i % LEGACY_COLORS_RGB.length]})`,\r\n );\r\n });\r\n\r\n return {\r\n labels,\r\n datasets: [\r\n {\r\n data,\r\n backgroundColor,\r\n borderColor: \"white\",\r\n borderWidth: 1,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nexport default (chartItem: HTMLCanvasElement, options: IOptions): Chart => {\r\n const { currencyCode } = options;\r\n const style = getComputedStyle(chartItem);\r\n const contrastText = style.getPropertyValue(\r\n CssVariables.ContrastTextVariable,\r\n );\r\n const chart = new Chart(chartItem, {\r\n type: \"pie\",\r\n data: {\r\n datasets: [],\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n labels: {\r\n color: contrastText,\r\n }\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label(context) {\r\n const value = context.parsed;\r\n const label = context.label || '';\r\n return `${label}: ${formatCurrency(value, currencyCode)}`;\r\n },\r\n },\r\n bodyColor: contrastText,\r\n titleColor: contrastText,\r\n },\r\n }\r\n }\r\n });\r\n return chart;\r\n};\r\n","\r\n import { defineComponent, ref, onMounted, watch } from 'vue';\r\n import createUsagePieChart, { IClickEvent, convertUsageToPieDataset } from '@/chartjs/createPieChart';\r\n import { useTenantStore, storeToRefs } from '@/stores';\r\n \r\n export { IClickEvent, convertUsageToPieDataset };\r\n \r\n export default defineComponent({\r\n props: {\r\n data: Object,\r\n height: String,\r\n },\r\n emits: ['click'],\r\n setup(p, { emit }) {\r\n const root = ref(null);\r\n const canvas = ref(null);\r\n const { currencyCode } = storeToRefs(useTenantStore());\r\n \r\n const renderChart = () => {\r\n if (!p.data || !root.value) return;\r\n \r\n root.value.innerHTML = '';\r\n canvas.value = document.createElement('canvas');\r\n canvas.value.classList.add('chart-canvas');\r\n \r\n if (p.height === '100%') {\r\n canvas.value.classList.add('fill-height-srsly');\r\n root.value.classList.add('fill-height');\r\n } else {\r\n canvas.value.style.height = p.height || '400px';\r\n }\r\n \r\n root.value.appendChild(canvas.value);\r\n \r\n const chart = createUsagePieChart(canvas.value, {\r\n currencyCode: currencyCode.value,\r\n onClick(event: IClickEvent) {\r\n emit('click', event);\r\n }\r\n });\r\n \r\n chart.data = p.data as any;\r\n chart.update();\r\n };\r\n \r\n onMounted(() => renderChart());\r\n \r\n watch(\r\n () => p.data,\r\n () => renderChart(),\r\n { immediate: true, deep: true }\r\n );\r\n \r\n return { root, canvas };\r\n },\r\n });\r\n ","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsagePieChart.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpendUsagePieChart.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SpendUsagePieChart.vue?vue&type=template&id=194d1906&\"\nimport script from \"./SpendUsagePieChart.vue?vue&type=script&lang=ts&\"\nexport * from \"./SpendUsagePieChart.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n import { defineComponent, ref, computed, watch } from 'vue';\r\n import SpendUsagePieChart, {\r\n convertUsageToPieDataset,\r\n IClickEvent,\r\n } from '@/components/Domain.Usage/SpendUsagePieChart.vue';\r\n import { useFilterStore } from '@/stores';\r\n import {\r\n calculateOptionsDescription,\r\n convertSpendOptionsToQuery,\r\n } from '@/components/Domain.Usage/SpendUsageOptionsToolbarForm.vue';\r\n import { getSpend } from '@/lib/Api';\r\n import ApiV2 from '@/lib/ApiV2';\r\n import hash from 'object-hash';\r\n import { ChartData } from 'chart.js';\r\n import moment from '@/lib/moment';\r\n import {\r\n generateSpendUsageOptionsFromReport,\r\n ISavedReportResultParams,\r\n SpendFieldNames,\r\n PluralEntityType,\r\n } from '@/models';\r\n import { UsageReportTypes } from '@/chartjs/createUsageBarChart';\r\n import { Annotation } from '@/models/Annotation';\r\n import AnnotationsTimeline from '@/components/Domain.Annotations/AnnotationsTimeline.vue';\r\n import { ISpendUsageWidgetData } from '@/merge/Grid'\r\n \r\n export default defineComponent({\r\n props: {\r\n config: Object,\r\n name: String,\r\n hideActions: Boolean,\r\n },\r\n components: {\r\n SpendUsagePieChart,\r\n AnnotationsTimeline,\r\n },\r\n data() {\r\n return {\r\n selectedAnnotations: [],\r\n annotationDialog: false,\r\n };\r\n },\r\n setup(props) {\r\n const filterStore = useFilterStore();\r\n \r\n const usageOptions = ref({ ...filterStore.options });\r\n const segregations = ref([]);\r\n const focusedSegregation = ref(0);\r\n const pieChartData = ref | null>(null);\r\n const costViews = ref(['Actual']);\r\n const dataset = ref('Usage'); // placeholder, kept for symmetry\r\n const includeAnnotations = ref(false);\r\n const isLoadingUsage = ref(false);\r\n const lastHash = ref(null);\r\n const createdAnnotations = ref([]);\r\n const annotations = ref([]);\r\n const maxDate = ref(null);\r\n \r\n const handleDatasetClicked = (event: IClickEvent) => {\r\n // emit or handle pie slice click here\r\n console.log('Pie slice clicked', event);\r\n };\r\n \r\n const loadUsage = async () => {\r\n if (isLoadingUsage.value) return;\r\n const currentHash = hash([usageOptions.value, costViews.value, includeAnnotations.value]);\r\n if (lastHash.value === currentHash) return;\r\n \r\n lastHash.value = currentHash;\r\n isLoadingUsage.value = true;\r\n \r\n try {\r\n const params = convertSpendOptionsToQuery(usageOptions.value);\r\n if (!params) return;\r\n \r\n const spendParams = {\r\n ...params,\r\n segregateBy: usageOptions.value.segregateBy,\r\n fields: [SpendFieldNames.Charges],\r\n };\r\n \r\n const response = await getSpend(spendParams);\r\n pieChartData.value = convertUsageToPieDataset(response, UsageReportTypes.charges);\r\n maxDate.value = response?.maxDate || params.toDate;\r\n \r\n if (includeAnnotations.value) {\r\n createdAnnotations.value = await ApiV2.http\r\n .get('/api/annotations', { params })\r\n .then((r) => r.data);\r\n \r\n // You can implement convertAnnotatesToPieAnnotations if desired (optional)\r\n // annotations.value = convertAnnotatesToPieAnnotations(...);\r\n } else {\r\n createdAnnotations.value = [];\r\n annotations.value = [];\r\n }\r\n } finally {\r\n isLoadingUsage.value = false;\r\n }\r\n };\r\n \r\n // Update usage options when config changes\r\n watch(\r\n () => props.config,\r\n (opt) => {\r\n if (!opt) return;\r\n const report = opt as ISpendUsageWidgetData;\r\n segregations.value = (report.segregateBy || '').split(',').filter(Boolean);\r\n const params = generateSpendUsageOptionsFromReport(report);\r\n const segregateBy = segregations.value[focusedSegregation.value] as PluralEntityType;\r\n usageOptions.value = { ...params, segregateBy };\r\n costViews.value = report.costViews || ['Actual'];\r\n includeAnnotations.value = report.includeAnnotations || false;\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n \r\n // React to focused segregation changes\r\n watch(\r\n () => focusedSegregation.value,\r\n (v) => {\r\n const segregateBy = segregations.value[v] as PluralEntityType;\r\n if (usageOptions.value.segregateBy !== segregateBy) {\r\n usageOptions.value = { ...usageOptions.value, segregateBy };\r\n }\r\n }\r\n );\r\n \r\n const loadTriggers = computed(() => [usageOptions.value, costViews.value]);\r\n \r\n return {\r\n usageOptions,\r\n handleDatasetClicked,\r\n pieChartData,\r\n annotations,\r\n isLoadingUsage,\r\n focusedSegregation,\r\n segregations,\r\n dataset,\r\n costViews,\r\n lastHash,\r\n loadTriggers,\r\n maxDate,\r\n createdAnnotations,\r\n loadUsage\r\n };\r\n },\r\n methods: {\r\n toTrends(searchParams: URLSearchParams) {\r\n this.$router.push(`/trends?${searchParams.toString()}`);\r\n },\r\n onAnnotationSelection(annotations: Annotation[], xMin: number, xMax: number) {\r\n const to = new Date(xMax).getTime();\r\n const from = new Date(xMin).getTime();\r\n this.selectedAnnotations = annotations.filter((x) => {\r\n const date = new Date(x.annotationDate).getTime();\r\n return date >= from && date <= to;\r\n });\r\n this.annotationDialog = true;\r\n },\r\n },\r\n watch: {\r\n loadTriggers: {\r\n handler() {\r\n this.loadUsage(this.toTrends, this.onAnnotationSelection);\r\n },\r\n immediate: true,\r\n },\r\n },\r\n computed: {\r\n chartTitle() {\r\n return this.name || calculateOptionsDescription(this.usageOptions, (...params) => this.$t(...params));\r\n },\r\n annotationDialogSubtitle() {\r\n if (this.selectedAnnotations?.length > 0) {\r\n const dates = this.selectedAnnotations\r\n .map((x) => {\r\n const date = new Date(x.annotationDate);\r\n date.setHours(0, 0, 0, 0);\r\n return date;\r\n })\r\n .sort((a, b) => a.getTime() - b.getTime());\r\n const start = moment(dates[0]);\r\n const end = moment(dates[dates.length - 1]);\r\n return start.isSame(end) ? start.format('MMMM DD') : `${start.format('MMMM DD')} - ${end.format('MMMM DD')}`;\r\n }\r\n return undefined;\r\n },\r\n },\r\n });\r\n ","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PieChartGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PieChartGridWidget.vue?vue&type=script&lang=ts&\"","import mod from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PieChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@intlify/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PieChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PieChartGridWidget.vue?vue&type=template&id=2e0d98a8&scoped=true&\"\nimport script from \"./PieChartGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./PieChartGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./PieChartGridWidget.vue?vue&type=style&index=0&id=2e0d98a8&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e0d98a8\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PieChartGridWidget.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"color\":_vm.textData ? _vm.textData.color : undefined,\"light\":\"\"}},[_c('v-card-title',{class:_vm.textData ? `${_vm.textData.color} darken-1` : 'darken-1'},[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"sticky_note_2\")]),_vm._v(\" \"+_vm._s(_vm.textData.title || _vm.name || 'Note Widget')+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),(_vm.textData && _vm.textData.subtitle)?_c('v-card-subtitle',{class:_vm.textData ? `${_vm.textData.color} darken-1` : 'darken-1'},[_vm._v(\" \"+_vm._s(_vm.textData.subtitle)+\" \")]):_vm._e(),(_vm.textData && _vm.textData.bodyText)?_c('v-card-text',{staticClass:\"pa-4 subtitle-1\"},[_vm._v(\" \"+_vm._s(_vm.textData.bodyText)+\" \")]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, computed } from 'vue'\r\nimport { INoteWidgetData } from '@/merge/Grid';\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n setup(p) {\r\n const textData = computed(() => {\r\n return p.config as INoteWidgetData | null | undefined;\r\n })\r\n return { textData }\r\n }\r\n})\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextualGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextualGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TextualGridWidget.vue?vue&type=template&id=5a7fd1fe&\"\nimport script from \"./TextualGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./TextualGridWidget.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\"}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.cardTitle)+\" \")])]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\"}},[_c('iframe',{staticClass:\"embedContainer\",attrs:{\"src\":_vm.embedData.url}})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { IEmbedWidgetData } from '@/merge/Grid';\r\nimport { defineComponent, computed } from 'vue';\r\n\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n components: { },\r\n setup(props) {\r\n const embedData = computed(() => {\r\n return props.config as IEmbedWidgetData | null | undefined;\r\n })\r\n return { embedData }\r\n },\r\n methods: {\r\n },\r\n watch: {\r\n },\r\n computed: {\r\n cardTitle() {\r\n return this.name;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmbedGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EmbedGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./EmbedGridWidget.vue?vue&type=template&id=183d3c8d&scoped=true&\"\nimport script from \"./EmbedGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./EmbedGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./EmbedGridWidget.vue?vue&type=style&index=0&id=183d3c8d&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"183d3c8d\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"loading\":_vm.isLoading}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"analytics\")]),_vm._v(\" \"+_vm._s(_vm.name || _vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\"}},[(_vm.isLoading)?_c('v-progress-linear',{attrs:{\"indeterminate\":\"\"}}):(!_vm.config || !_vm.config.renderType || _vm.config.renderType === 'chart')?_c('TrendBarChart',{attrs:{\"data\":_vm.trendDatasets,\"height\":\"100%\"},on:{\"click\":_vm.handleChartClick}}):(_vm.config.segregateBy === 'services')?_c('ServiceComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.config.segregateBy === 'products')?_c('ProductComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.config.segregateBy === 'subscriptions')?_c('SubscriptionComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):(_vm.config.segregateBy === 'cloudAccounts')?_c('CloudAccountComparisonsTable',{attrs:{\"items\":_vm.comparisons,\"currency\":_vm.tenantStore.currencyCode,\"route-prefix\":\"/trends\"}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, watch, computed } from 'vue';\r\nimport { getTrends } from '@/lib/Api';\r\nimport TrendBarChart, {\r\n convertProductCompareResultToDatasets,\r\n convertServiceCompareResultToDatasets,\r\n convertCloudAccountCompareResultToDatasets,\r\n convertSubscriptionCompareResultToDatasets,\r\n ITrendsDatapoint,\r\n} from '@/components/Domain.Usage/TrendBarChart.vue';\r\nimport { PluralEntityType } from '@/models';\r\nimport { ITrendsWidgetData } from '@/merge/Grid';\r\nimport { ChartData } from 'chart.js/auto';\r\nimport ServiceComparisonsTable from '@/components/Domain.Services/ServiceComparisonsTable.vue';\r\nimport ProductComparisonsTable from '@/components/Domain.Products/ProductComparisonsTable.vue';\r\nimport SubscriptionComparisonsTable from '@/components/Domain.Subscriptions/SubscriptionComparisonsTable.vue';\r\nimport CloudAccountComparisonsTable from '@/components/Settings.CloudAccounts/CloudAccountComparisonsTable.vue';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport hash from 'object-hash';\r\n\r\nexport default defineComponent({\r\n props: {\r\n name: String,\r\n hideActions: Boolean,\r\n config: {\r\n type: Object,\r\n required: true,\r\n },\r\n },\r\n components: {\r\n TrendBarChart,\r\n ServiceComparisonsTable,\r\n ProductComparisonsTable,\r\n SubscriptionComparisonsTable,\r\n CloudAccountComparisonsTable,\r\n },\r\n setup(props) {\r\n const isLoading = ref(false);\r\n const trendDatasets = ref>({ labels: [], datasets: [] });\r\n const comparisons = ref([]);\r\n const tenantStore = useTenantStore();\r\n\r\n const lastHash = ref(null);\r\n const fetchTrends = async () => {\r\n if (!props.config) return;\r\n if (isLoading.value) return;\r\n const trendsConfig = props.config as ITrendsWidgetData;\r\n const optionsHash = hash([props.config.segregateBy, trendsConfig]);\r\n if (lastHash.value === optionsHash) return;\r\n lastHash.value = optionsHash;\r\n isLoading.value = true;\r\n try {\r\n const result = await getTrends(props.config.segregateBy, {\r\n period: trendsConfig.dateRangeKey,\r\n toDate: trendsConfig.toDate || new Date().toISOString(),\r\n });\r\n switch (props.config.segregateBy) {\r\n case PluralEntityType.products:\r\n trendDatasets.value = convertProductCompareResultToDatasets(result as any) as any;\r\n break;\r\n case PluralEntityType.services:\r\n trendDatasets.value = convertServiceCompareResultToDatasets(result as any) as any;\r\n break;\r\n case PluralEntityType.subscriptions:\r\n trendDatasets.value = convertSubscriptionCompareResultToDatasets(result as any) as any;\r\n break;\r\n case PluralEntityType.cloudAccounts:\r\n trendDatasets.value = convertCloudAccountCompareResultToDatasets(result as any) as any;\r\n break;\r\n }\r\n comparisons.value = result.entities || [];\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n\r\n watch(() => props.config, fetchTrends, { immediate: true, deep: true });\r\n\r\n const chartTitle = computed(() => `Trends - ${props.config.dateRangeKey}`);\r\n\r\n const handleChartClick = (event) => {\r\n console.log('Chart clicked', event);\r\n };\r\n\r\n return {\r\n isLoading,\r\n trendDatasets,\r\n chartTitle,\r\n handleChartClick,\r\n comparisons,\r\n tenantStore,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComparisonChartGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ComparisonChartGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ComparisonChartGridWidget.vue?vue&type=template&id=3678cf0f&scoped=true&\"\nimport script from \"./ComparisonChartGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./ComparisonChartGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ComparisonChartGridWidget.vue?vue&type=style&index=0&id=3678cf0f&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3678cf0f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-card',{staticClass:\"flexcard\",attrs:{\"flat\":\"\",\"height\":\"100%\",\"loading\":_vm.isLoading}},[_c('v-card-title',[_c('div',[_c('h2',{staticClass:\"title\"},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"savings\")]),_vm._v(\" \"+_vm._s(_vm.chartTitle)+\" \")],1)]),(!_vm.hideActions)?_c('v-layout',{attrs:{\"row\":\"\",\"justify-end\":\"\"}},[_vm._t(\"actions\")],2):_vm._e()],1),_c('v-card-text',{staticClass:\"fill-height\",staticStyle:{\"overflow\":\"hidden\"}},[_c('v-simple-table',[_c('thead',[_c('tr',[_c('th',[_vm._v(\"Category\")]),_c('th',[_vm._v(\"Recommendation\")]),_c('th',[_vm._v(\"Count\")]),_c('th',[_vm._v(\"Cost Impact\")])])]),_c('tbody',_vm._l((_vm.recommendations),function(r,i){return _c('tr',{key:i},[_c('td',[_vm._v(_vm._s(r.category))]),_c('td',[_vm._v(_vm._s(r.name))]),_c('td',[_vm._v(_vm._s(r.resultCount))]),_c('td',[_vm._v(\"$\"+_vm._s(r.savings))])])}),0)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport ApiV2 from '@/lib/ApiV2';\r\nimport { IRecommendationsWidgetData } from '@/merge/Grid';\r\nimport hash from 'object-hash';\r\nexport default defineComponent({\r\n props: { config: Object, name: String, hideActions: Boolean },\r\n setup(props) {\r\n const recommendations = ref<\r\n { id: string; name: string; category: string; resultCount: number; savings: number }[]\r\n >([]);\r\n\r\n const isLoading = ref(false);\r\n const lastHash = ref(null);\r\n const loadRecommendations = async (d: IRecommendationsWidgetData) => {\r\n if (isLoading.value) return;\r\n const optionsHash = hash([ d.categories, d.providerTypes ]);\r\n if (lastHash.value === optionsHash) return;\r\n lastHash.value = optionsHash;\r\n\r\n const query = new URLSearchParams();\r\n\r\n if (d.categories?.length) {\r\n d.categories.forEach((c) => query.append('categories', c));\r\n }\r\n\r\n if (d.providerTypes?.length) {\r\n d.providerTypes.forEach((p) => query.append('providerTypes', p));\r\n }\r\n\r\n try {\r\n isLoading.value = true;\r\n\r\n const recommendationResponse = await ApiV2.http\r\n .get(`/api/recommendations?${query.toString()}`)\r\n .then((r) => r.data);\r\n\r\n recommendations.value = recommendationResponse.recommendations\r\n .sort((a, b) => b.results.length - a.results.length)\r\n .map((r: any) => ({\r\n id: r.id,\r\n name: r.name,\r\n category: r.category,\r\n resultCount: r.results.length,\r\n savings: r.maximumEstimateImpact,\r\n }));\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n\r\n watch(\r\n () => props.config,\r\n (opt) => {\r\n if (!opt) return;\r\n loadRecommendations(opt as any);\r\n },\r\n { immediate: true, deep: true }\r\n );\r\n\r\n return { recommendations, isLoading };\r\n },\r\n computed: {\r\n chartTitle() {\r\n return this.name || 'Recommendations';\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationsGridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RecommendationsGridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RecommendationsGridWidget.vue?vue&type=template&id=18b75ee2&scoped=true&\"\nimport script from \"./RecommendationsGridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./RecommendationsGridWidget.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./RecommendationsGridWidget.vue?vue&type=style&index=0&id=18b75ee2&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"18b75ee2\",\n null\n \n)\n\nexport default component.exports","\r\nimport { defineComponent } from 'vue';\r\nimport ColumnChartGridWidget from './ColumnChartGridWidget.vue';\r\nimport LineChartGridWidget from './LineChartGridWidget.vue';\r\nimport TableGridWidget from './TableGridWidget.vue';\r\nimport PieChartGridWidget from './PieChartGridWidget.vue';\r\nimport TextualGridWidget from './TextualGridWidget.vue';\r\nimport EmbedGridWidget from './EmbedGridWidget.vue';\r\nimport ComparisonChartGridWidget from './ComparisonChartGridWidget.vue';\r\nimport RecommendationsGridWidget from './RecommendationsGridWidget.vue';\r\nexport default defineComponent({\r\n components: {\r\n ColumnChartGridWidget,\r\n LineChartGridWidget,\r\n TableGridWidget,\r\n PieChartGridWidget,\r\n TextualGridWidget,\r\n EmbedGridWidget,\r\n ComparisonChartGridWidget,\r\n RecommendationsGridWidget,\r\n },\r\n props: { name: String, type: String, config: Object, hideActions: Boolean },\r\n});\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GridWidget.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./GridWidget.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./GridWidget.vue?vue&type=template&id=3c1ffca2&\"\nimport script from \"./GridWidget.vue?vue&type=script&lang=ts&\"\nexport * from \"./GridWidget.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport VueGridLayout from 'vue-grid-layout';\r\nimport { defineComponent, ref, watch } from 'vue';\r\nimport { storeToRefs } from '@/stores';\r\nimport { useGridStore } from '@/stores/grid';\r\nimport GridWidget from './Widgets/GridWidget.vue';\r\nimport { CCWidget } from '@/merge/Grid';\r\n\r\nexport type IGridLayoutItem = CCWidget & { i: string; }\r\n\r\nexport default defineComponent({\r\n props: { gridId: String },\r\n components: {\r\n GridLayout: VueGridLayout.GridLayout,\r\n GridItem: VueGridLayout.GridItem,\r\n GridWidget: GridWidget,\r\n },\r\n setup(_, { emit }) {\r\n const gridStore = useGridStore();\r\n const { gridDoc, cachedPositionalUpdates, cachedSizingUpdates } = storeToRefs(gridStore);\r\n const layout = ref([]);\r\n\r\n watch(\r\n () => gridDoc.value,\r\n (d) => {\r\n if (!d?.elements) return;\r\n const elements = Object.entries(d.elements);\r\n if (!elements.length) {\r\n layout.value = [];\r\n } else {\r\n layout.value = elements.map(([k, v]) => {\r\n const pos = cachedPositionalUpdates.value[k] || { x: v.x, y: v.y };\r\n const rect = cachedSizingUpdates.value[k] || { w: v.w, h: v.h };\r\n return {\r\n ...pos,\r\n ...rect,\r\n id: v.id,\r\n i: v.id,\r\n name: v.name,\r\n type: v.type,\r\n config: v.config,\r\n } as IGridLayoutItem;\r\n });\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n const handleMoved = (i: string, newX: number, newY: number) => {\r\n cachedPositionalUpdates.value[i] = { x: newX, y: newY };\r\n };\r\n const handleResized = (i: string, newX: number, newY: number) => {\r\n cachedSizingUpdates.value[i] = { w: newY, h: newX };\r\n };\r\n const handleEditClicked = (item: IGridLayoutItem) => {\r\n emit('onEdit', item);\r\n };\r\n\r\n const handleDeleteClicked = (item: IGridLayoutItem) => {\r\n emit('onDelete', item);\r\n };\r\n return {\r\n layout,\r\n handleMoved,\r\n handleResized,\r\n gridDoc,\r\n cachedPositionalUpdates,\r\n cachedSizingUpdates,\r\n onDeleteWidget: handleDeleteClicked,\r\n onEditWidget: handleEditClicked,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Grid.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Grid.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Grid.vue?vue&type=template&id=2a98841c&\"\nimport script from \"./Grid.vue?vue&type=script&lang=ts&\"\nexport * from \"./Grid.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('v-dialog',{attrs:{\"value\":_vm.value,\"width\":1200,\"height\":800,\"scrollable\":\"\"},on:{\"input\":function($event){return _vm.$emit('input', $event)}}},[_c('v-card',{attrs:{\"height\":850}},[_c('v-card-text',{staticClass:\"pa-0\"},[_c('v-container',{staticClass:\"fill-height py-0\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"fill-height\"},[_c('v-col',{staticStyle:{\"background\":\"#293748\"},attrs:{\"cols\":\"4\"}},[_c('v-toolbar',{attrs:{\"flat\":\"\",\"color\":\"transparent\"}},[_c('v-icon',{attrs:{\"left\":\"\"}},[_vm._v(\"settings\")]),_vm._v(\" Widget Configuration\")],1),_c('div',{staticClass:\"px-2\"},[_c('v-text-field',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Title\"},model:{value:(_vm.widgetName),callback:function ($$v) {_vm.widgetName=$$v},expression:\"widgetName\"}}),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"View\",\"items\":_vm.availableChartTypes,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.chartType),callback:function ($$v) {_vm.chartType=$$v},expression:\"chartType\"}}),(_vm.chartType === 'note')?[_c('v-text-field',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Subtitle\"},model:{value:(_vm.widgetSubtitle),callback:function ($$v) {_vm.widgetSubtitle=$$v},expression:\"widgetSubtitle\"}}),_c('v-textarea',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Text Body\"},model:{value:(_vm.widgetBodyText),callback:function ($$v) {_vm.widgetBodyText=$$v},expression:\"widgetBodyText\"}})]:(_vm.chartType === 'embed')?[_c('v-text-field',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"URL\"},model:{value:(_vm.widgetUrl),callback:function ($$v) {_vm.widgetUrl=$$v},expression:\"widgetUrl\"}})]:(_vm.chartType === 'trends')?[_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Render Type\",\"items\":_vm.trendRenderTypes},model:{value:(_vm.trendRenderType),callback:function ($$v) {_vm.trendRenderType=$$v},expression:\"trendRenderType\"}}),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Granularity\",\"items\":_vm.granularities},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}}),_c('DateRangeSelect',{attrs:{\"filled\":true,\"flat\":true},model:{value:(_vm.dateRangeKey),callback:function ($$v) {_vm.dateRangeKey=$$v},expression:\"dateRangeKey\"}}),_c('TextDatePicker',{attrs:{\"filled\":true,\"flat\":true},model:{value:(_vm.toDate),callback:function ($$v) {_vm.toDate=$$v},expression:\"toDate\"}}),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Granularity\",\"items\":_vm.trendSegregations},model:{value:(_vm.trendSegregateBy),callback:function ($$v) {_vm.trendSegregateBy=$$v},expression:\"trendSegregateBy\"}})]:(_vm.chartType === 'recommendations')?[_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Cloud Providers\",\"multiple\":\"\",\"items\":_vm.availableCloudProviders},model:{value:(_vm.selectedCloudProviders),callback:function ($$v) {_vm.selectedCloudProviders=$$v},expression:\"selectedCloudProviders\"}}),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Categories\",\"multiple\":\"\",\"items\":_vm.availableCategories},model:{value:(_vm.selectedCategories),callback:function ($$v) {_vm.selectedCategories=$$v},expression:\"selectedCategories\"}})]:[_c('v-row',{attrs:{\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"pr-1\",attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Dataset\",\"items\":_vm.availableDatasets,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.dataset),callback:function ($$v) {_vm.dataset=$$v},expression:\"dataset\"}})],1),_c('v-col',{staticClass:\"pl-1\",attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Cost View\",\"items\":_vm.availableCostViews,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.costViewSelection),callback:function ($$v) {_vm.costViewSelection=$$v},expression:\"costViewSelection\"}})],1),_c('v-col',{staticClass:\"pr-1\",attrs:{\"cols\":\"6\"}},[_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"label\":\"Granularity\",\"readonly\":_vm.chartType === 'pieChart',\"disabled\":_vm.chartType === 'pieChart',\"items\":_vm.granularities},model:{value:(_vm.granularity),callback:function ($$v) {_vm.granularity=$$v},expression:\"granularity\"}})],1),_c('v-col',{staticClass:\"pl-1\",attrs:{\"cols\":\"6\"}},[_c('DateRangeSelect',{attrs:{\"filled\":true,\"flat\":true,\"items\":_vm.dateRangeOptions},model:{value:(_vm.dateRangeKey),callback:function ($$v) {_vm.dateRangeKey=$$v},expression:\"dateRangeKey\"}})],1),(_vm.dateRangeKey === 'custom')?_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('TextDatePicker',{attrs:{\"range\":true,\"filled\":true,\"flat\":true},model:{value:(_vm.dates),callback:function ($$v) {_vm.dates=$$v},expression:\"dates\"}})],1):_vm._e()],1),_c('v-select',{attrs:{\"items\":_vm.filters,\"filled\":\"\",\"flat\":\"\",\"item-text\":\"name\",\"item-value\":\"id\",\"label\":\"Filters\"},model:{value:(_vm.selectedFilterId),callback:function ($$v) {_vm.selectedFilterId=$$v},expression:\"selectedFilterId\"}}),(_vm.selectedFilterId === '$FixedFilters')?_c('EntitySearchAutocomplete',{attrs:{\"types\":_vm.supportedSearchTypes,\"multiple\":true,\"filled\":\"\",\"flat\":\"\"},model:{value:(_vm.searchEntities),callback:function ($$v) {_vm.searchEntities=$$v},expression:\"searchEntities\"}}):_vm._e(),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"multiple\":\"\",\"label\":\"Fields\",\"items\":_vm.availableFieldsToInclude,\"item-text\":\"name\",\"item-value\":\"id\"},model:{value:(_vm.fieldsToInclude),callback:function ($$v) {_vm.fieldsToInclude=$$v},expression:\"fieldsToInclude\"}}),_c('v-select',{attrs:{\"filled\":\"\",\"flat\":\"\",\"multiple\":\"\",\"label\":\"Tags\",\"items\":_vm.availableTagsToInclude},model:{value:(_vm.tagSelections),callback:function ($$v) {_vm.tagSelections=$$v},expression:\"tagSelections\"}}),_c('v-checkbox',{attrs:{\"label\":\"Include Annotations\"},model:{value:(_vm.includeAnnotations),callback:function ($$v) {_vm.includeAnnotations=$$v},expression:\"includeAnnotations\"}})]],2)],1),_c('v-col',{staticStyle:{\"height\":\"100%\"},attrs:{\"cols\":\"8\"}},[_c('GridWidget',{attrs:{\"type\":_vm.chartType,\"hide-actions\":true,\"config\":_vm.currentWidgetConfig,\"name\":_vm.widgetName}})],1)],1)],1)],1),_c('v-card-actions',{staticStyle:{\"background-color\":\"#263241\"}},[_vm._t(\"actions\",null,{\"config\":_vm.currentWidgetConfig,\"widgetName\":_vm.widgetName,\"widgetType\":_vm.chartType})],2)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\nimport { defineComponent, ref, computed, watch } from 'vue';\r\nimport GridWidget from './Widgets/GridWidget.vue';\r\nimport DateRangeSelect from '@/components/Domain.Usage/DateRangeSelect.vue';\r\nimport TextDatePicker from '@/components/Common/TextDatePicker.vue';\r\nimport EntitySearchAutocomplete, { ISearchEntityViewModel } from '../Common/EntitySearchAutocomplete.vue';\r\nimport { Granularity, PluralEntityType, EntityType, ICustomViewResult, CloudProviderType } from '@/models';\r\nimport { useTenantStore } from '@/stores/tenant';\r\nimport {\r\n CCWidget,\r\n WidgetTypes,\r\n INoteWidgetData,\r\n IEmbedWidgetData,\r\n ITrendsWidgetData,\r\n IRecommendationsWidgetData,\r\n ISpendUsageWidgetData,\r\n} from '@/merge/Grid';\r\nimport DateKey from '@/lib/DateKey';\r\nimport { getCustomViews } from '@/lib/Api';\r\n\r\nconst FIXED_FILTER_ID = '$FixedFilters';\r\nconst UNFILTERED_ID = '$AllUsage';\r\n\r\nexport default defineComponent({\r\n components: { GridWidget, DateRangeSelect, TextDatePicker, EntitySearchAutocomplete },\r\n props: { value: Boolean, config: Object },\r\n setup(props) {\r\n const tenantStore = useTenantStore();\r\n const widgetName = ref('');\r\n const widgetSubtitle = ref('');\r\n const widgetBodyText = ref('');\r\n const widgetUrl = ref('');\r\n const isValid = ref(false);\r\n const chartType = ref(WidgetTypes.columnChart);\r\n const trendRenderType = ref<'chart' | 'table'>('chart');\r\n const trendRenderTypes = ref([\r\n { value: 'chart', text: 'Chart' },\r\n { value: 'table', text: 'Table' },\r\n ]);\r\n const availableChartTypes = ref([\r\n { id: WidgetTypes.columnChart, name: 'Column Chart' },\r\n { id: WidgetTypes.lineChart, name: 'Line Chart' },\r\n { id: WidgetTypes.table, name: 'Table' },\r\n { id: WidgetTypes.pieChart, name: 'Pie Chart' },\r\n { id: WidgetTypes.note, name: 'Text / Note' },\r\n { id: WidgetTypes.embed, name: 'Embedded' },\r\n { id: WidgetTypes.trends, name: 'Trends' },\r\n { id: WidgetTypes.recommendations, name: 'Recommendations' },\r\n ]);\r\n const dateRangeKey = ref('30d');\r\n const topXResults = ref(10);\r\n const dates = ref([]);\r\n const views = ref([]);\r\n const searchEntities = ref([]);\r\n const granularity = ref(Granularity.daily);\r\n const granularities = ref([Granularity.daily, Granularity.monthly]);\r\n const selectedFilterId = ref(null);\r\n const fieldsToInclude = ref([]);\r\n const tagSelections = ref([]);\r\n const usePredefinedView = ref(false);\r\n const includeAnnotations = ref(false);\r\n const availableFieldsToInclude = ref([\r\n { name: 'Cloud Vendor', id: PluralEntityType.cloudProviders },\r\n { name: 'Subscription Name', id: PluralEntityType.subscriptions },\r\n { name: 'Product Category', id: PluralEntityType.productCategories },\r\n { name: 'Product Name', id: PluralEntityType.products },\r\n { name: 'Service', id: PluralEntityType.services },\r\n { name: 'Meter', id: PluralEntityType.meters },\r\n { name: 'Region', id: PluralEntityType.regions },\r\n ]);\r\n const availableTagsToInclude = ref([]);\r\n const dataset = ref<'Emissions' | 'Usage'>('Usage');\r\n const availableDatasets = ref(['Usage', 'Emissions']);\r\n const costViewSelection = ref('Actual');\r\n const availableCostViews = ref([\r\n { name: 'SUM(Actual)', id: 'Actual' },\r\n { name: 'SUM(Utilization)', id: 'Utilized' },\r\n { name: 'SUM(Actual) & SUM(Utilization)', id: 'Actual+Utilized' },\r\n ]);\r\n const trendSegregateBy = ref(PluralEntityType.products);\r\n const trendSegregations = ref([\r\n { value: PluralEntityType.products, text: 'Products' },\r\n { value: PluralEntityType.services, text: 'Services' },\r\n { value: PluralEntityType.subscriptions, text: 'Subscriptions' },\r\n { value: PluralEntityType.cloudAccounts, text: 'Cloud Connections' },\r\n ]);\r\n const supportedSearchTypes = ref([\r\n EntityType.customView,\r\n EntityType.cloudProvider,\r\n EntityType.productCategory,\r\n EntityType.geography,\r\n EntityType.region,\r\n EntityType.product,\r\n EntityType.cloudAccount,\r\n EntityType.tag,\r\n EntityType.subscription,\r\n EntityType.service,\r\n ]);\r\n const toDate = ref(new Date());\r\n\r\n const selectedCloudProviders = ref([CloudProviderType.azure, CloudProviderType.amazon]);\r\n const availableCloudProviders = ref([\r\n { value: CloudProviderType.azure, text: 'Azure' },\r\n { value: CloudProviderType.amazon, text: 'Amazon' },\r\n ]);\r\n\r\n const availableCategories = ref([\r\n 'Cache',\r\n 'CDN',\r\n 'Compute',\r\n 'Cost',\r\n 'Database',\r\n 'EventHub',\r\n 'Logic',\r\n 'Network',\r\n 'Performance',\r\n 'Sql',\r\n 'Storage',\r\n 'Web',\r\n ]);\r\n const selectedCategories = ref(availableCategories.value);\r\n\r\n getCustomViews().then((v) => (views.value = v));\r\n\r\n watch(chartType, (t,o) => {\r\n if (!o) return;\r\n if (t === WidgetTypes.pieChart) {\r\n granularity.value = Granularity.monthly\r\n } \r\n });\r\n\r\n const filters = computed(() => {\r\n return [\r\n { id: UNFILTERED_ID, name: 'Unfiltered / Raw' },\r\n { id: FIXED_FILTER_ID, name: 'Fixed Filters' },\r\n ...views.value.map((v) => ({ id: v.id, name: `Custom View - ${v.name}` })),\r\n ];\r\n });\r\n\r\n const dateRangeOptions = computed(() => {\r\n if (chartType.value === WidgetTypes.trends) {\r\n return ['1d', '2d', '3d', '5d', '7d', '14d', '30d', '1m'];\r\n }\r\n return ['30d', '60d', '90d', 'lastMonth', 'thisMonth', '6m', '13m', 'custom'];\r\n });\r\n\r\n watch(\r\n () => selectedFilterId.value,\r\n (f) => {\r\n usePredefinedView.value = f !== UNFILTERED_ID && f !== FIXED_FILTER_ID;\r\n },\r\n { immediate: true }\r\n );\r\n\r\n const currentWidgetConfig = computed<\r\n ISpendUsageWidgetData | INoteWidgetData | IEmbedWidgetData | ITrendsWidgetData | IRecommendationsWidgetData\r\n >(() => {\r\n if (chartType.value === WidgetTypes.note) {\r\n const textConfig: INoteWidgetData = {\r\n bodyText: widgetBodyText.value,\r\n title: widgetName.value,\r\n subtitle: widgetSubtitle.value,\r\n color: 'yellow',\r\n };\r\n return textConfig;\r\n }\r\n\r\n if (chartType.value === WidgetTypes.embed) {\r\n const embedConfig: IEmbedWidgetData = {\r\n url: widgetUrl.value,\r\n urlTitle: widgetName.value,\r\n };\r\n return embedConfig;\r\n }\r\n\r\n if (chartType.value === WidgetTypes.trends) {\r\n const trendConfig: ITrendsWidgetData = {\r\n toDate:\r\n toDate.value.toDateString() === new Date().toDateString() ? null : toDate.value.toISOString(),\r\n dateRangeKey: dateRangeKey.value,\r\n segregateBy: trendSegregateBy.value,\r\n renderType: trendRenderType.value,\r\n };\r\n return trendConfig;\r\n }\r\n\r\n if (chartType.value === WidgetTypes.recommendations) {\r\n const recommendationConfig: IRecommendationsWidgetData = {\r\n categories:\r\n selectedCategories.value.length === availableCategories.value.length ||\r\n selectedCategories.value.length === 0\r\n ? null\r\n : selectedCategories.value,\r\n providerTypes:\r\n selectedCloudProviders.value.length === availableCloudProviders.value.length ||\r\n selectedCloudProviders.value.length === 0\r\n ? null\r\n : selectedCloudProviders.value,\r\n classifications: null,\r\n namespaces: null,\r\n recommendationIds: null,\r\n };\r\n return recommendationConfig;\r\n }\r\n\r\n const segregateBy = (fieldsToInclude.value || [])\r\n .concat((tagSelections.value || []).map((t) => `tags/${t}`))\r\n .join(',');\r\n const filters = searchEntities.value || [];\r\n const formData: ISpendUsageWidgetData = {\r\n dateRangeKey: dateRangeKey.value,\r\n topXResults: topXResults.value,\r\n segregateBy,\r\n filters:\r\n selectedFilterId.value === FIXED_FILTER_ID\r\n ? filters.map((e) => ({\r\n id: e.Id,\r\n name: e.Name,\r\n type: e.Type as EntityType,\r\n }))\r\n : [],\r\n savedViewId: usePredefinedView.value ? selectedFilterId.value : null,\r\n fromDate: dates.value[0]?.toISOString() || null,\r\n toDate: (dates.value[1] || new Date()).toISOString(),\r\n granularity: granularity.value,\r\n costViews:\r\n costViewSelection.value === 'Actual+Utilized' ? ['Actual', 'Utilized'] : [costViewSelection.value],\r\n dataset: dataset.value,\r\n includeAnnotations: includeAnnotations.value,\r\n };\r\n return formData;\r\n });\r\n\r\n watch(\r\n () => [tenantStore.tagKey1, tenantStore.tagKey2, tenantStore.tagKey3],\r\n ([tagKey1, tagKey2, tagKey3]) => {\r\n if (availableTagsToInclude.value.length) return;\r\n availableTagsToInclude.value = [tagKey1, tagKey2, tagKey3].filter((t) => t);\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => props.config,\r\n (cfg) => {\r\n if (!cfg) {\r\n // reset fields\r\n widgetName.value = '';\r\n widgetSubtitle.value = '';\r\n widgetBodyText.value = '';\r\n\r\n widgetUrl.value = '';\r\n\r\n dateRangeKey.value = '30d';\r\n dates.value = [];\r\n topXResults.value = 10;\r\n searchEntities.value = [];\r\n costViewSelection.value = 'Actual';\r\n granularity.value = Granularity.daily;\r\n usePredefinedView.value = false;\r\n selectedFilterId.value = null;\r\n fieldsToInclude.value = [];\r\n tagSelections.value = [];\r\n availableTagsToInclude.value = [];\r\n dataset.value = 'Usage';\r\n trendSegregateBy.value = PluralEntityType.products;\r\n\r\n chartType.value = WidgetTypes.columnChart;\r\n\r\n return;\r\n }\r\n\r\n const widget = cfg as CCWidget;\r\n if (widget.type === WidgetTypes.note) {\r\n widgetName.value = widget.name;\r\n widgetSubtitle.value = widget.config.subtitle || null;\r\n widgetBodyText.value = widget.config.bodyText || null;\r\n } else if (widget.type === WidgetTypes.embed) {\r\n widgetName.value = widget.name;\r\n widgetUrl.value = widget.config.url || null;\r\n } else if (widget.type === WidgetTypes.trends) {\r\n dateRangeKey.value = widget.config.dateRangeKey;\r\n toDate.value = widget.config.toDate ? new Date(widget.config.toDate) : new Date();\r\n trendSegregateBy.value = widget.config.segregateBy || PluralEntityType.products;\r\n trendRenderType.value = widget.config.renderType || 'chart';\r\n } else if (widget.type === WidgetTypes.recommendations) {\r\n selectedCategories.value = widget.config.categories || availableCategories.value;\r\n selectedCloudProviders.value =\r\n widget.config.providerTypes || availableCloudProviders.value.map((i) => i.value);\r\n } else {\r\n widgetName.value = widget.name;\r\n dateRangeKey.value = widget.config.dateRangeKey;\r\n\r\n const dateKey = new DateKey(dateRangeKey.value);\r\n const fromDate = widget.config.fromDate ? new Date(widget.config.fromDate) : null;\r\n const toDate = widget.config.toDate ? new Date(widget.config.toDate) : null;\r\n dates.value = dateKey.getEffectiveDateRange(fromDate, toDate);\r\n\r\n topXResults.value = widget.config.topXResults || 10;\r\n searchEntities.value = (widget.config.filters || []).map((r, i) => ({\r\n Id: r.id,\r\n Name: r.name,\r\n Type: r.type as EntityType,\r\n Description: r.name,\r\n EntityIndex: i,\r\n Provider: null,\r\n }));\r\n costViewSelection.value =\r\n widget.config.costViews.length > 1 ? 'Actual+Utilized' : widget.config.costViews[0] || 'Actual';\r\n\r\n granularity.value = widget.type === WidgetTypes.pieChart ? Granularity.monthly : widget.config.granularity;\r\n usePredefinedView.value = !!widget.config.savedViewId;\r\n if (usePredefinedView.value) {\r\n selectedFilterId.value = widget.config.savedViewId || null;\r\n } else if (searchEntities.value.length) {\r\n selectedFilterId.value = FIXED_FILTER_ID;\r\n } else {\r\n selectedFilterId.value = UNFILTERED_ID;\r\n }\r\n\r\n const segregateByParts = widget.config.segregateBy.split(',');\r\n fieldsToInclude.value = segregateByParts.filter((s) => !s.startsWith('tags/'));\r\n tagSelections.value = segregateByParts\r\n .filter((s) => s.startsWith('tags/'))\r\n .map((s) => s.substring('tags/'.length));\r\n\r\n const allTags = [...availableTagsToInclude.value, ...tagSelections.value];\r\n availableTagsToInclude.value = allTags.filter((value, index) => allTags.indexOf(value) === index);\r\n dataset.value = (widget.config.dataset || 'Usage') as any;\r\n includeAnnotations.value = widget.config.includeAnnotations || false;\r\n }\r\n\r\n chartType.value = widget.type;\r\n },\r\n { immediate: true }\r\n );\r\n\r\n return {\r\n widgetName,\r\n widgetSubtitle,\r\n widgetUrl,\r\n widgetBodyText,\r\n isValid,\r\n dateRangeKey,\r\n topXResults,\r\n dates,\r\n searchEntities,\r\n granularity,\r\n granularities,\r\n selectedFilterId,\r\n fieldsToInclude,\r\n tagSelections,\r\n availableFieldsToInclude,\r\n availableTagsToInclude,\r\n dataset,\r\n chartType,\r\n usePredefinedView,\r\n availableChartTypes,\r\n costViewSelection,\r\n currentWidgetConfig,\r\n availableCostViews,\r\n availableDatasets,\r\n filters,\r\n views,\r\n supportedSearchTypes,\r\n trendSegregateBy,\r\n trendSegregations,\r\n toDate,\r\n trendRenderType,\r\n trendRenderTypes,\r\n selectedCloudProviders,\r\n availableCloudProviders,\r\n selectedCategories,\r\n availableCategories,\r\n dateRangeOptions,\r\n includeAnnotations,\r\n };\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WidgetGridFormDialog.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./WidgetGridFormDialog.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./WidgetGridFormDialog.vue?vue&type=template&id=78948fa4&\"\nimport script from \"./WidgetGridFormDialog.vue?vue&type=script&lang=ts&\"\nexport * from \"./WidgetGridFormDialog.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport { computed, defineComponent, ref } from 'vue';\r\nimport { storeToRefs } from '@/stores';\r\nimport { useGridStore } from '@/stores/grid';\r\nimport Grid from '@/components/Grid/Grid.vue';\r\nimport { CCWidget, WidgetTypes } from '@/merge/Grid';\r\nimport { ISavedReportResultParams } from '@/models';\r\nimport { getCustomDashboardDoc, putCustomDashboard } from '@/lib/Api';\r\nimport WidgetGridFormDialog from '@/components/Grid/WidgetGridFormDialog.vue';\r\nexport default defineComponent({\r\n components: { Grid, WidgetGridFormDialog },\r\n setup() {\r\n const gridStore = useGridStore();\r\n const { gridDoc, currentDocKey } = storeToRefs(gridStore);\r\n const pageTitle = computed(() => {\r\n return gridDoc?.value?.name || '...';\r\n });\r\n const onDeleteWidget = async (w: CCWidget) => {\r\n await gridStore.removeGridElement(w.id);\r\n };\r\n const addReportWidget = async (\r\n name: string,\r\n widgetType: WidgetTypes,\r\n r: ISavedReportResultParams | null | undefined\r\n ) => {\r\n if (!r) return;\r\n isPutting.value = false;\r\n await gridStore.addFeedElement(name, widgetType, r, { x: 0, y: 0, w: 12, h: 14 });\r\n };\r\n const updateReportWidget = async (\r\n name: string,\r\n widgetType: WidgetTypes,\r\n r: ISavedReportResultParams | null | undefined\r\n ) => {\r\n if (!r) return;\r\n isPutting.value = false;\r\n await gridStore.updateFeedElement(focusedWidget.value.id, name, widgetType, r);\r\n focusedWidget.value = null;\r\n \r\n };\r\n const handleSave = async (\r\n name: string,\r\n widgetType: WidgetTypes,\r\n r: ISavedReportResultParams | null | undefined\r\n ) => {\r\n if (focusedWidget.value) {\r\n await updateReportWidget(name, widgetType, r);\r\n } else {\r\n await addReportWidget(name, widgetType, r);\r\n }\r\n\r\n if (gridDoc.value) {\r\n const doc = gridDoc.value;\r\n await putCustomDashboard(currentDocKey.value, { name: doc.name, description: doc.description }, doc);\r\n }\r\n };\r\n const hitSave = async () => {\r\n const doc = await gridStore.commitCachedValues();\r\n await putCustomDashboard(currentDocKey.value, { name: doc.name, description: doc.description }, doc);\r\n };\r\n const focusedWidget = ref(null);\r\n const isPutting = ref(false);\r\n const onEditReportWidget = (w: CCWidget) => {\r\n isPutting.value = true;\r\n focusedWidget.value = w;\r\n };\r\n const load = async (id:string) => {\r\n const doc = await getCustomDashboardDoc(id);\r\n await gridStore.putGrid(id, doc);\r\n await gridStore.load(id);\r\n };\r\n const startCreate = () => {\r\n isPutting.value = true;\r\n focusedWidget.value = null;\r\n }\r\n return {\r\n load,\r\n addReportWidget,\r\n hitSave,\r\n isPutting,\r\n onEditReportWidget,\r\n onDeleteWidget,\r\n handleSave,\r\n focusedWidget,\r\n pageTitle,\r\n startCreate\r\n };\r\n },\r\n watch: {\r\n $route: {\r\n async handler(newRoute, oldRoute) {\r\n if (oldRoute && oldRoute.name === 'customdashboard') {\r\n await this.hitSave();\r\n }\r\n await this.load(newRoute.params.id);\r\n },\r\n immediate: true,\r\n deep: true,\r\n },\r\n },\r\n async beforeDestroy() {\r\n await this.hitSave();\r\n },\r\n});\r\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=5e862c7f&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=ts&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { getInstance } from './index';\r\n\r\nexport const authGuard = (to, from, next) => {\r\n const auth = getInstance();\r\n\r\n const fn = () => {\r\n // If the user is authenticated, continue with the route\r\n if (auth.isAuthenticated) {\r\n return next();\r\n }\r\n\r\n // Otherwise, log in\r\n auth.loginWithRedirect({ appState: { returnTo: to.fullPath } });\r\n };\r\n\r\n // If loading has already finished, check our auth state using `fn()`\r\n if (!auth.loading) {\r\n return fn();\r\n }\r\n\r\n // Watch for the loading property to change before we check isAuthenticated\r\n auth.$watch('loading', loading => {\r\n if (loading === false) {\r\n return fn();\r\n }\r\n });\r\n};\r\n","import Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\nimport MainView from \"@/views/MainView.vue\";\r\nimport FinanceDashboard from \"@/views/FinanceDashboard.vue\";\r\nimport TrendsDashboard from \"@/views/TrendsDashboard.vue\";\r\nimport ReservationsDashboard from \"@/views/ReservationsDashboard.vue\";\r\nimport RecommendationsView from \"@/views/Recommendations.vue\";\r\nimport KubernetesDashboard from \"@/views/KubernetesDashboard.vue\";\r\nimport Passthrough from \"@/views/Passthrough.vue\";\r\n\r\nimport TagDashboardView from \"@/views/Reports/TagOverview.vue\";\r\nimport CustomersUsageView from \"@/views/Reports/CustomersUsage.vue\";\r\nimport RegionOverviewView from \"@/views/Reports/RegionOverview.vue\";\r\n\r\nimport CarbonOverview from \"@/views/CarbonFootprint/Overview.vue\";\r\nimport CarbonExplorer from \"@/views/CarbonFootprint/Explorer.vue\";\r\nimport CarbonMap from \"@/views/CarbonFootprint/Map.vue\";\r\n\r\nimport CustomersManageView from \"@/views/CustomersManage/CustomersManage.vue\";\r\nimport CustomerManageView from \"@/views/CustomersManage/CustomerManage.vue\";\r\nimport AzureEmissionsDashboard from \"@/views/AzureEmissions/Dashboard.vue\";\r\n\r\nimport Settings from \"@/views/Settings/IndexView.vue\";\r\nimport Amazon from \"@/views/Settings/AmazonView.vue\";\r\nimport Azure from \"@/views/Settings/AzureView.vue\";\r\nimport Google from \"@/views/Settings/GoogleView.vue\";\r\nimport Oracle from \"@/views/Settings/OracleView.vue\";\r\nimport Alibaba from \"@/views/Settings/AlibabaView.vue\";\r\nimport Snowflake from \"@/views/Settings/SnowflakeView.vue\";\r\nimport Custom from \"@/views/Settings/CustomView.vue\";\r\nimport Groups from \"@/views/Settings/GroupsView.vue\";\r\nimport Users from \"@/views/Settings/UsersView.vue\";\r\nimport BillingDetails from \"@/views/Settings/BillingDetailsView.vue\";\r\nimport ApiManagementView from \"@/views/Settings/ApiManagementView.vue\";\r\nimport General from \"@/views/Settings/GeneralView.vue\";\r\nconst Actions = () =>\r\n import(\r\n /* webpackChunkName: \"actions\" */ \"@/views/Settings/ActionsView.vue\"\r\n );\r\nimport FxRates from \"@/views/Settings/FxRatesView.vue\";\r\nimport TagMappings from \"@/views/Settings/TagMappings.vue\";\r\nimport MailingLists from \"@/views/Settings/MailingLists.vue\";\r\nimport Webhooks from \"@/views/Settings/WebhooksView.vue\";\r\nimport Dimensions from \"@/views/Settings/DimensionsView.vue\";\r\nimport Audit from \"@/views/Settings/AuditView.vue\";\r\n\r\nimport ChooseView from \"@/views/Auth/Choose.vue\";\r\n\r\nimport SelfServiceTenantCreate from \"@/views/SelfService/CreateTenant.vue\";\r\nimport SelfServicePlans from \"@/views/SelfService/SelectPlan.vue\";\r\nimport ResourceExplorerIndex from \"@/views/ResourceExplorer/Index.vue\";\r\n\r\nimport ServiceDialog from \"@/views/Dialog.Service/Dialog.vue\";\r\nimport ServiceDialogIndex from \"@/views/Dialog.Service/Index.vue\";\r\nimport ServiceDialogAnnotations from \"@/views/Dialog.Service/Annotations.vue\";\r\nimport ServiceDialogRecordTags from \"@/views/Dialog.Service/RecordTags.vue\";\r\nimport ServiceDialogVirtualTags from \"@/views/Dialog.Service/VirtualTags.vue\";\r\nimport ServiceDialogUsage from \"@/views/Dialog.Service/Usage.vue\";\r\nimport ServiceDialogCarbon from \"@/views/Dialog.Service/Carbon.vue\";\r\nimport ServiceDialogRawUsage from \"@/views/Dialog.Service/RawUsage.vue\";\r\n\r\nimport SubscriptionDialog from \"@/views/Dialog.Subscription/Dialog.vue\";\r\nimport SubscriptionDialogIndex from \"@/views/Dialog.Subscription/Index.vue\";\r\nimport SubscriptionDialogTrends from \"@/views/Dialog.Subscription/Trends.vue\";\r\nimport SubscriptionDialogUsage from \"@/views/Dialog.Subscription/Usage.vue\";\r\nimport SubscriptionDialogCarbon from \"@/views/Dialog.Subscription/Carbon.vue\";\r\nimport SubscriptionDialogAnnotations from \"@/views/Dialog.Subscription/Annotations.vue\";\r\nimport SubscriptionDialogVirtualTags from \"@/views/Dialog.Subscription/VirtualTags.vue\";\r\n\r\nimport ProductDialog from \"@/views/Dialog.Product/Dialog.vue\";\r\nimport ProductDialogIndex from \"@/views/Dialog.Product/Index.vue\";\r\nimport ProductDialogUsage from \"@/views/Dialog.Product/Usage.vue\";\r\nimport ProductDialogCarbon from \"@/views/Dialog.Product/Carbon.vue\";\r\nimport ProductDialogTrends from \"@/views/Dialog.Product/Trends.vue\";\r\n\r\nimport RegionDialog from \"@/views/Dialog.Region/Dialog.vue\";\r\nimport RegionDialogIndex from \"@/views/Dialog.Region/Index.vue\";\r\nimport RegionDialogUsage from \"@/views/Dialog.Region/Usage.vue\";\r\nimport RegionDialogCarbon from \"@/views/Dialog.Region/Carbon.vue\";\r\n\r\nimport ProductCategoryDialog from \"@/views/Dialog.ProductCategory/Dialog.vue\";\r\nimport ProductCategoryDialogIndex from \"@/views/Dialog.ProductCategory/Index.vue\";\r\nimport ProductCategoryDialogUsage from \"@/views/Dialog.ProductCategory/Usage.vue\";\r\n\r\nimport CloudProviderDialog from \"@/views/Dialog.CloudProvider/Dialog.vue\";\r\nimport CloudProviderDialogIndex from \"@/views/Dialog.CloudProvider/Index.vue\";\r\nimport CloudProviderDialogUsage from \"@/views/Dialog.CloudProvider/Usage.vue\";\r\n\r\nimport GeographyDialog from \"@/views/Dialog.Geography/Dialog.vue\";\r\nimport GeographyDialogIndex from \"@/views/Dialog.Geography/Index.vue\";\r\nimport GeographyDialogUsage from \"@/views/Dialog.Geography/Usage.vue\";\r\nimport GeographyDialogCarbon from \"@/views/Dialog.Geography/Carbon.vue\";\r\n\r\nimport TagDialog from \"@/views/Dialog.Tag/Dialog.vue\";\r\nimport TagDialogIndex from \"@/views/Dialog.Tag/Index.vue\";\r\nimport TagDialogUsage from \"@/views/Dialog.Tag/Usage.vue\";\r\nimport TagDialogCarbon from \"@/views/Dialog.Tag/Carbon.vue\";\r\nimport TagDialogTrends from \"@/views/Dialog.Tag/Trends.vue\";\r\n\r\nimport CloudAccountDialog from \"@/views/Dialog.CloudAccount/Dialog.vue\";\r\nimport CloudAccountDialogIndex from \"@/views/Dialog.CloudAccount/Index.vue\";\r\nimport CloudAccountDialogCopies from \"@/views/Dialog.CloudAccount/Copies.vue\";\r\nimport CloudAccountDialogAnnotations from \"@/views/Dialog.CloudAccount/Annotations.vue\";\r\nimport CloudAccountDialogUsage from \"@/views/Dialog.CloudAccount/Usage.vue\";\r\nimport CloudAccountDialogTrends from \"@/views/Dialog.CloudAccount/Trends.vue\";\r\nimport CloudAccountDialogVirtualTags from \"@/views/Dialog.CloudAccount/VirtualTags.vue\";\r\nimport CloudAccountDialogCarbon from \"@/views/Dialog.CloudAccount/Carbon.vue\";\r\n\r\nimport ReservationDialog from \"@/views/Dialog.Reservation/Dialog.vue\";\r\nimport ReservationDialogIndex from \"@/views/Dialog.Reservation/Index.vue\";\r\nimport ReservationDialogUsage from \"@/views/Dialog.Reservation/Usage.vue\";\r\n\r\nimport AWSMarketplace from '@/views/AWSMarketplace.vue';\r\n\r\nconst ActionDialog = () =>\r\n import(\r\n /* webpackChunkName: \"actions\" */ \"@/views/Dialog.Action/Dialog.vue\"\r\n );\r\nconst ActionDialogIndex = () =>\r\n import(/* webpackChunkName: \"actions\" */ \"@/views/Dialog.Action/Index.vue\");\r\nconst ActionDialogVersions = () =>\r\n import(\r\n /* webpackChunkName: \"actions\" */ \"@/views/Dialog.Action/Versions.vue\"\r\n );\r\nconst ActionDialogAccounts = () =>\r\n import(\r\n /* webpackChunkName: \"actions\" */ \"@/views/Dialog.Action/CloudAccounts.vue\"\r\n );\r\n\r\nconst ActionIndex = () =>\r\n import(/* webpackChunkName: \"actions\" */ \"@/views/Action/Index.vue\");\r\nconst ActionDevelop = () =>\r\n import(/* webpackChunkName: \"actions\" */ \"@/views/Action/Develop.vue\");\r\nconst ActionVersions = () =>\r\n import(/* webpackChunkName: \"actions\" */ \"@/views/Action/Versions.vue\");\r\nconst ActionCloudAccounts = () =>\r\n import(\r\n /* webpackChunkName: \"actions\" */ \"@/views/Action/CloudAccounts.vue\"\r\n );\r\n\r\nimport CopyCloudAccountIndex from \"@/views/CopyCloudAccount/Index.vue\";\r\nimport CopyCloudAccountChooseTenant from \"@/views/CopyCloudAccount/ChooseTenant.vue\";\r\nimport CopyCloudAccountFinish from \"@/views/CopyCloudAccount/Finish.vue\";\r\nimport CopyCloudAccountPricingRules from \"@/views/CopyCloudAccount/PricingRules.vue\";\r\nimport CopyCloudAccountTags from \"@/views/CopyCloudAccount/Tags.vue\";\r\nimport NotFound from \"@/views/NotFound.vue\";\r\n\r\nimport CustomViewDialog from \"@/views/Dialog.CustomView/Dialog.vue\";\r\nimport CustomViewDialogIndex from \"@/views/Dialog.CustomView/Index.vue\";\r\nimport CustomViewDialogUsage from \"@/views/Dialog.CustomView/Usage.vue\";\r\n\r\nimport CustomReports from \"@/views/Reports/CustomReports.vue\";\r\nimport CustomReport from \"@/views/Reports/CustomReport.vue\";\r\nimport CreateReport from \"@/views/Reports/CreateReport.vue\";\r\nimport EditReport from \"@/views/Reports/EditReport.vue\";\r\nimport CloneReport from \"@/views/Reports/CloneReport.vue\";\r\nimport CustomViews from \"@/views/CustomViews/CustomViews.vue\";\r\nimport CustomView from \"@/views/CustomViews/CustomView.vue\";\r\nimport CustomViewOverview from \"@/views/CustomViews/Overview.vue\";\r\nimport Budgets from \"@/views/Budgets/Budgets.vue\";\r\nimport BudgetDetails from \"@/views/Budgets/BudgetDetails.vue\";\r\n\r\nimport GptChats from \"@/views/Intelligence/GptChats.vue\";\r\nimport GettingStarted from \"@/views/GettingStarted.vue\";\r\n\r\nimport WatchdogDashboard from \"@/views/Watchdog/Index.vue\";\r\nimport WatchdogViewPolicy from \"@/views/Watchdog/ViewPolicy.vue\";\r\nimport WatchdogViewPolicyRun from \"@/views/Watchdog/ViewPolicyRun.vue\";\r\nimport WatchdogNewPolicy from \"@/views/Watchdog/NewPolicy.vue\";\r\n\r\nimport CustomDashboardsIndex from \"@/views/CustomDashboards/Index.vue\";\r\nimport CustomDashboardsDashboard from \"@/views/CustomDashboards/Dashboard.vue\";\r\n\r\nimport EventBus from \"@/lib/EventBus\";\r\nimport AuthClient from \"@/lib/Auth\";\r\nimport Config from \"@/lib/Config\";\r\n\r\nimport { getInstance } from '@/plugins/auth';\r\nimport { getUserPreferences } from \"@/lib/UserPreferences\";\r\nimport { authGuard } from '@/plugins/auth/authGuard';\r\n\r\nVue.use(VueRouter);\r\n\r\nexport const PATH_RESOURCES = {\r\n names: {\r\n confirm: \"confirm\",\r\n logout: \"logout\",\r\n settings: \"settings\",\r\n choose: \"choose\",\r\n dash: \"dash\",\r\n trends: \"trends\",\r\n groups: \"groups\",\r\n reservations: \"reservations\",\r\n customersUsageDashboard: \"customersUsageDashboard\",\r\n customersManage: \"customersManage\",\r\n customerManage: \"customerManage\",\r\n createEditSharedData: \"createEditSharedData\",\r\n recommendations: \"recommendations\",\r\n tagoverview: \"tagoverview\",\r\n regionoverview: \"regionoverview\",\r\n copyCloudAccount: \"copy-cloudaccount\",\r\n billingdetails: \"billingdetails\",\r\n powerBiReport: \"powerbireport\",\r\n cloudAccounts: \"cloudaccounts\",\r\n users: \"users\",\r\n tenants: \"tenants\",\r\n actions: \"actions\",\r\n fxrates: \"fxrates\",\r\n resources: \"resources\",\r\n ApiManagement: \"apiManagement\",\r\n createTenant: \"create-tenant\",\r\n reports: \"reports\",\r\n selfServiceCreate: \"selfservice-create\",\r\n selfServicePlans: \"selfservice-plans\",\r\n },\r\n};\r\n\r\nconst serviceDialogChildRoutes = [\r\n {\r\n path: \"\",\r\n component: Passthrough,\r\n },\r\n {\r\n path: \":serviceId\",\r\n component: ServiceDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n {\r\n path: \"usage\",\r\n component: ServiceDialogUsage,\r\n },\r\n { path: \"annotations\", component: ServiceDialogAnnotations },\r\n { path: \"tags\", component: ServiceDialogRecordTags },\r\n { path: \"virtualtags\", component: ServiceDialogVirtualTags },\r\n { path: \"raw\", component: ServiceDialogRawUsage },\r\n { path: \"carbon\", component: ServiceDialogCarbon },\r\n ],\r\n },\r\n];\r\n\r\nconst subscriptionDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":subscriptionId\",\r\n component: SubscriptionDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: SubscriptionDialogUsage },\r\n { path: \"carbon\", component: SubscriptionDialogCarbon },\r\n { path: \"trends\", component: SubscriptionDialogTrends },\r\n { path: \"annotations\", component: SubscriptionDialogAnnotations },\r\n { path: \"virtualtags\", component: SubscriptionDialogVirtualTags },\r\n ],\r\n },\r\n];\r\n\r\nconst cloudProviderDialogChildRoutes = [\r\n {\r\n path: \"\",\r\n component: Passthrough,\r\n },\r\n {\r\n path: \":cloudProviderId\",\r\n component: CloudProviderDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: CloudProviderDialogUsage },\r\n ],\r\n },\r\n];\r\n\r\nconst cloudAccountDialogChildRoutes = [\r\n {\r\n path: \"\",\r\n component: CloudAccountDialog,\r\n children: [\r\n {\r\n path: \":cloudAccountId\",\r\n component: CloudAccountDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: CloudAccountDialogUsage },\r\n { path: \"trends\", component: CloudAccountDialogTrends },\r\n { path: \"copies\", component: CloudAccountDialogCopies },\r\n {\r\n path: \"annotations\",\r\n component: CloudAccountDialogAnnotations,\r\n },\r\n {\r\n path: \"virtualtags\",\r\n component: CloudAccountDialogVirtualTags,\r\n },\r\n { path: \"carbon\", component: CloudAccountDialogCarbon },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst actionDialogChildRoutes = [\r\n {\r\n path: \"\",\r\n component: ActionDialog,\r\n children: [\r\n {\r\n path: \":actionId\",\r\n component: ActionDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"versions\" },\r\n { path: \"versions\", component: ActionDialogVersions },\r\n { path: \"accounts\", component: ActionDialogAccounts },\r\n ],\r\n },\r\n ],\r\n },\r\n];\r\n\r\nconst productDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":productId\",\r\n component: ProductDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: ProductDialogUsage },\r\n { path: \"carbon\", component: ProductDialogCarbon },\r\n { path: \"trends\", component: ProductDialogTrends },\r\n ],\r\n },\r\n];\r\n\r\nconst reservationDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":reservationId\",\r\n component: ReservationDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: ReservationDialogUsage },\r\n ],\r\n },\r\n];\r\n\r\nconst customViewDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":customViewId\",\r\n component: CustomViewDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: CustomViewDialogUsage },\r\n ],\r\n },\r\n];\r\n\r\nconst regionDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":regionId\",\r\n component: RegionDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: RegionDialogUsage },\r\n { path: \"carbon\", component: RegionDialogCarbon },\r\n ],\r\n },\r\n];\r\n\r\nconst geographyDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":geographyId\",\r\n component: GeographyDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: GeographyDialogUsage },\r\n { path: \"carbon\", component: GeographyDialogCarbon },\r\n ],\r\n },\r\n];\r\n\r\nconst productCategoryDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \":productCategoryId\",\r\n component: ProductCategoryDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: ProductCategoryDialogUsage },\r\n ],\r\n },\r\n];\r\n\r\nconst tagDialogChildRoutes = [\r\n { path: \"\", component: Passthrough },\r\n {\r\n path: \"tag/:tagId\",\r\n component: TagDialogIndex,\r\n children: [\r\n { path: \"\", redirect: \"usage\" },\r\n { path: \"usage\", component: TagDialogUsage },\r\n { path: \"carbon\", component: TagDialogCarbon },\r\n { path: \"trends\", component: TagDialogTrends },\r\n ],\r\n },\r\n];\r\n\r\nconst copyCloudAccountChildRoutes = [\r\n { path: \"\", redirect: \"chooseTenant\" },\r\n {\r\n path: \"chooseTenant\",\r\n component: CopyCloudAccountChooseTenant,\r\n meta: { step: 1 },\r\n },\r\n {\r\n path: \"pricingRules\",\r\n component: CopyCloudAccountPricingRules,\r\n meta: { step: 2 },\r\n },\r\n { path: \"tags\", component: CopyCloudAccountTags, meta: { step: 3 } },\r\n { path: \"finish\", component: CopyCloudAccountFinish, meta: { step: 4 } },\r\n];\r\n\r\nconst standardEntityDialogSuffixes = [\r\n {\r\n path: \"services\",\r\n component: ServiceDialog,\r\n children: serviceDialogChildRoutes,\r\n },\r\n {\r\n path: \"subscriptions\",\r\n component: SubscriptionDialog,\r\n children: subscriptionDialogChildRoutes,\r\n },\r\n {\r\n path: \"cloudaccounts\",\r\n component: CloudAccountDialog,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"cloudproviders\",\r\n component: CloudProviderDialog,\r\n children: cloudProviderDialogChildRoutes,\r\n },\r\n {\r\n path: \"products\",\r\n component: ProductDialog,\r\n children: productDialogChildRoutes,\r\n },\r\n {\r\n path: \"regions\",\r\n component: RegionDialog,\r\n children: regionDialogChildRoutes,\r\n },\r\n {\r\n path: \"geographies\",\r\n component: GeographyDialog,\r\n children: geographyDialogChildRoutes,\r\n },\r\n {\r\n path: \"tagkeys/:tagkey\",\r\n component: TagDialog,\r\n children: tagDialogChildRoutes,\r\n },\r\n {\r\n path: \"productcategories\",\r\n component: ProductCategoryDialog,\r\n children: productCategoryDialogChildRoutes,\r\n },\r\n {\r\n path: \"customviews\",\r\n component: CustomViewDialog,\r\n children: customViewDialogChildRoutes,\r\n },\r\n {\r\n path: \"reservation\",\r\n component: ReservationDialog,\r\n children: reservationDialogChildRoutes,\r\n },\r\n];\r\n\r\nconst mainViewChildren = [\r\n {\r\n path: \"\",\r\n redirect: Config.isFeatureEnabled(\"Dataset.Usage\")\r\n ? \"finance\"\r\n : \"emissions/overview\",\r\n },\r\n {\r\n path: \"overview\",\r\n redirect: Config.isFeatureEnabled(\"Dataset.Usage\")\r\n ? \"finance\"\r\n : \"emissions/overview\",\r\n },\r\n { path: \"dashboarding\", component: CustomDashboardsIndex },\r\n {\r\n path: \"dashboarding/:id\",\r\n name: \"customdashboard\",\r\n component: CustomDashboardsDashboard,\r\n },\r\n {\r\n path: \"finance\",\r\n name: PATH_RESOURCES.names.dash,\r\n component: FinanceDashboard,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"emissions/overview\",\r\n name: \"emissions\",\r\n component: CarbonOverview,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"emissions/explore\",\r\n name: \"emissionsexplore\",\r\n component: CarbonExplorer,\r\n children: [\r\n {\r\n path: \"\",\r\n beforeEnter: async (to, from, next) => {\r\n const userPreferences = await getUserPreferences();\r\n\r\n let lastTab = userPreferences?.starredCostExplorerTab ||\r\n userPreferences?.costExplorerTab ||\r\n \"products\";\r\n if (\r\n lastTab === \"productcategories\" ||\r\n lastTab === \"cloudproviders\"\r\n ) {\r\n lastTab = \"products\";\r\n }\r\n next({ path: `/emissions/explore/${lastTab}` });\r\n },\r\n },\r\n ...standardEntityDialogSuffixes,\r\n {\r\n path: \"*\",\r\n redirect: \"products\",\r\n },\r\n ],\r\n },\r\n {\r\n path: \"emissions/map\",\r\n name: \"emissionsmap\",\r\n component: CarbonMap,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"trends\",\r\n name: PATH_RESOURCES.names.trends,\r\n component: TrendsDashboard,\r\n children: [\r\n { path: \"/\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"budgets\",\r\n component: Budgets,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"budgets/details/:id\",\r\n component: BudgetDetails,\r\n },\r\n {\r\n path: \"watchdog\",\r\n component: WatchdogDashboard,\r\n },\r\n {\r\n path: \"watchdog/:id\",\r\n component: WatchdogViewPolicy,\r\n },\r\n {\r\n path: \"watchdog/:id/edit\",\r\n component: WatchdogNewPolicy,\r\n },\r\n {\r\n path: \"watchdog/:id/run/:rid\",\r\n component: WatchdogViewPolicyRun,\r\n },\r\n {\r\n path: \"new/watchdog\",\r\n component: WatchdogNewPolicy,\r\n },\r\n {\r\n path: \"kubernetes\",\r\n component: KubernetesDashboard,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"reservations\",\r\n name: PATH_RESOURCES.names.reservations,\r\n component: ReservationsDashboard,\r\n children: [\r\n {\r\n path: \"\",\r\n component: ReservationDialog,\r\n children: [...reservationDialogChildRoutes],\r\n },\r\n ],\r\n },\r\n {\r\n path: \"custom/reports\",\r\n name: \"customreports\",\r\n component: CustomReports,\r\n },\r\n {\r\n path: \"create/custom/reports\",\r\n component: CreateReport,\r\n },\r\n {\r\n path: \"edit/custom/reports/:id\",\r\n component: EditReport,\r\n },\r\n {\r\n path: \"clone/custom/reports/:id\",\r\n component: CloneReport,\r\n },\r\n {\r\n path: \"custom/reports/:id\",\r\n name: \"customreport\",\r\n component: CustomReport,\r\n children: [\r\n { path: \"\", component: Passthrough },\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"copies/usage\",\r\n redirect: \"customers/usage\",\r\n },\r\n {\r\n path: \"azureemissions\",\r\n name: \"azureemissions\",\r\n component: AzureEmissionsDashboard\r\n },\r\n {\r\n path: \"customers/usage\",\r\n name: PATH_RESOURCES.names.customersUsageDashboard,\r\n component: CustomersUsageView,\r\n },\r\n {\r\n path: \"customers/manage\",\r\n name: PATH_RESOURCES.names.customersManage,\r\n component: CustomersManageView,\r\n },\r\n {\r\n path: \"customers/manage/:id\",\r\n name: PATH_RESOURCES.names.customerManage,\r\n component: CustomerManageView,\r\n },\r\n {\r\n path: \"customers/manage/:tenantId/shareddata\",\r\n name: PATH_RESOURCES.names.createEditSharedData,\r\n component: CopyCloudAccountIndex,\r\n children: copyCloudAccountChildRoutes,\r\n },\r\n {\r\n path: \"recommendations\",\r\n name: PATH_RESOURCES.names.recommendations,\r\n component: RecommendationsView,\r\n },\r\n {\r\n path: \"tagoverview\",\r\n name: PATH_RESOURCES.names.tagoverview,\r\n component: TagDashboardView,\r\n children: [\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"regionoverview\",\r\n name: PATH_RESOURCES.names.regionoverview,\r\n component: RegionOverviewView,\r\n children: [\r\n ...standardEntityDialogSuffixes,\r\n ],\r\n },\r\n {\r\n path: \"getting-started\",\r\n name: \"gettingstarted\",\r\n component: GettingStarted,\r\n },\r\n {\r\n path: \"cloud-intelligence\",\r\n name: \"gptChats\",\r\n component: GptChats,\r\n meta: { hideMain: true },\r\n },\r\n {\r\n path: \"copy/cloudaccounts/:cloudAccountId\",\r\n name: PATH_RESOURCES.names.copyCloudAccount,\r\n component: CopyCloudAccountIndex,\r\n children: copyCloudAccountChildRoutes,\r\n },\r\n {\r\n path: \"actions/:actionId\",\r\n name: \"actionDetails\",\r\n component: ActionIndex,\r\n children: [\r\n { path: \"\", redirect: \"develop\" },\r\n { path: \"develop\", component: ActionDevelop },\r\n { path: \"accounts\", component: ActionCloudAccounts },\r\n { path: \"versions\", component: ActionVersions },\r\n ],\r\n },\r\n {\r\n path: \"customviews\",\r\n name: \"customViews\",\r\n component: CustomViews,\r\n },\r\n {\r\n path: \"customviews/:id\",\r\n name: \"customview\",\r\n component: CustomView,\r\n children: [\r\n { path: \"\", redirect: \"overview\" },\r\n { path: \"overview\", component: CustomViewOverview },\r\n { path: \"usage\", component: CustomViewDialogUsage },\r\n ],\r\n },\r\n {\r\n path: \"settings\",\r\n name: PATH_RESOURCES.names.settings,\r\n component: Settings,\r\n children: [\r\n { path: \"\", redirect: \"general\" },\r\n {\r\n path: \"amazon\",\r\n component: Amazon,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"azure\",\r\n component: Azure,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"google\",\r\n component: Google,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"oracle\",\r\n component: Oracle,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"alibaba\",\r\n component: Alibaba,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"snowflake\",\r\n component: Snowflake,\r\n children: cloudAccountDialogChildRoutes,\r\n },\r\n {\r\n path: \"custom\",\r\n component: Custom,\r\n },\r\n {\r\n path: \"users\",\r\n name: PATH_RESOURCES.names.users,\r\n component: Users,\r\n },\r\n {\r\n path: \"groups\",\r\n name: PATH_RESOURCES.names.groups,\r\n component: Groups\r\n },\r\n {\r\n path: \"billing\",\r\n name: PATH_RESOURCES.names.billingdetails,\r\n component: BillingDetails,\r\n },\r\n {\r\n path: \"apimanagement\",\r\n name: PATH_RESOURCES.names.ApiManagement,\r\n component: ApiManagementView,\r\n },\r\n {\r\n path: \"general\",\r\n name: PATH_RESOURCES.names.tenants,\r\n component: General,\r\n },\r\n {\r\n path: \"actions\",\r\n name: PATH_RESOURCES.names.actions,\r\n component: Actions,\r\n children: actionDialogChildRoutes,\r\n },\r\n {\r\n path: \"fxrates\",\r\n name: PATH_RESOURCES.names.fxrates,\r\n component: FxRates,\r\n },\r\n {\r\n path: \"tagmappings\",\r\n name: \"tagmappings\",\r\n component: TagMappings,\r\n },\r\n {\r\n path: \"mailinglists\",\r\n name: \"mailinglists\",\r\n component: MailingLists,\r\n },\r\n {\r\n path: \"webhooks\",\r\n name: \"webhooks\",\r\n component: Webhooks,\r\n },\r\n {\r\n path: \"dimensions\",\r\n name: \"dimensions\",\r\n component: Dimensions,\r\n },\r\n {\r\n path: \"audit\",\r\n name: \"audit\",\r\n component: Audit,\r\n }\r\n ],\r\n },\r\n {\r\n path: \"resources\",\r\n redirect: \"explore\",\r\n },\r\n {\r\n path: \"services\",\r\n redirect: \"/explore/services\",\r\n },\r\n {\r\n path: \"explore\",\r\n name: \"explore\",\r\n component: ResourceExplorerIndex,\r\n children: [\r\n {\r\n path: \"\",\r\n beforeEnter: async (to, from, next) => {\r\n const userPreferences = await getUserPreferences();\r\n const lastTab = userPreferences?.starredCostExplorerTab ||\r\n userPreferences?.costExplorerTab ||\r\n \"products\";\r\n next({ path: `/explore/${lastTab}` });\r\n },\r\n },\r\n ...standardEntityDialogSuffixes,\r\n {\r\n path: \"tagkeys/:tag/key\",\r\n component: Passthrough,\r\n },\r\n {\r\n path: \"*\",\r\n redirect: \"products\",\r\n },\r\n ],\r\n },\r\n {\r\n path: \"404\",\r\n name: \"Error404\",\r\n component: NotFound,\r\n meta: { allowNoTenant: true },\r\n },\r\n];\r\n\r\nconst router = new VueRouter({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: \"/login\",\r\n name: \"login\",\r\n meta: { allowNoTenant: true, allowAnonymous: true },\r\n async beforeEnter(to, from, next) {\r\n const auth = getInstance();\r\n await auth.loginWithRedirect({\r\n provider: ''\r\n });\r\n },\r\n },\r\n {\r\n path: \"/register\",\r\n redirect: \"/login\",\r\n meta: { allowNoTenant: true, allowAnonymous: true },\r\n },\r\n {\r\n path: \"/logout\",\r\n name: PATH_RESOURCES.names.logout,\r\n meta: { allowNoTenant: true, allowAnonymous: true },\r\n async beforeEnter(to, from, next) {\r\n const auth = getInstance();\r\n EventBus.$emit(\"$identity.authenticated\", false);\r\n await auth.logoutWithRedirect();\r\n next(\"/\");\r\n },\r\n },\r\n {\r\n path: \"/choose\",\r\n name: PATH_RESOURCES.names.choose,\r\n component: ChooseView,\r\n meta: { allowNoTenant: true },\r\n },\r\n {\r\n path: \"/selfservice/create\",\r\n name: PATH_RESOURCES.names.selfServiceCreate,\r\n component: SelfServiceTenantCreate,\r\n meta: { allowNoTenant: true },\r\n async beforeEnter(to, from, next) {\r\n if (!Config.isSelfServiceEnabled()) {\r\n next(\"/\");\r\n } else {\r\n next();\r\n }\r\n },\r\n },\r\n {\r\n path: \"/awsmarketplace\",\r\n component: AWSMarketplace,\r\n meta: { allowNoTenant: true, allowAnonymous: true },\r\n },\r\n {\r\n path: \"/selfservice/plans\",\r\n name: PATH_RESOURCES.names.selfServicePlans,\r\n component: SelfServicePlans,\r\n },\r\n {\r\n path: \"/\",\r\n component: MainView,\r\n children: mainViewChildren,\r\n },\r\n {\r\n path: \"/:baseTenantId\",\r\n component: MainView,\r\n children: mainViewChildren,\r\n },\r\n {\r\n path: \"*\",\r\n redirect: \"/404\",\r\n },\r\n ],\r\n});\r\n\r\nfunction uuidValidate(uuid:string):boolean {\r\n return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(uuid);\r\n}\r\n\r\nrouter.beforeEach(async (to, from, next) => {\r\n if (to.matched.some((r) => r.path === \"/404\")) {\r\n // todo: log 404 somewhere\r\n }\r\n\r\n // Apply the tenant Id in the path\r\n if (to.params.baseTenantId) {\r\n // if it is not valid force move to root\r\n if (uuidValidate(to.params.baseTenantId)) {\r\n AuthClient.tenantId = to.params.baseTenantId;\r\n } else {\r\n next(\"/\");\r\n return;\r\n }\r\n } else if (\r\n to.meta?.allowNoTenant !== true && AuthClient.tenantId &&\r\n !to.fullPath.includes(AuthClient.tenantId)\r\n ) {\r\n next(`/${AuthClient.tenantId}${to.fullPath}`);\r\n return;\r\n }\r\n\r\n\r\n // Check for tenant context first, even if unauthenticated as next block will then force login.\r\n if (!AuthClient.tenantId && to.meta?.allowNoTenant !== true) {\r\n next(\"/choose\");\r\n return;\r\n }\r\n\r\n if (to.meta?.allowAnonymous !== true) {\r\n authGuard(to, from, next);\r\n return;\r\n }\r\n\r\n next();\r\n return;\r\n});\r\nexport default router;\r\n","import Vue from 'vue';\r\nimport Config from '@/lib/Config';\r\nimport router from '@/plugins/router';\r\nimport { v4 } from 'uuid';\r\nimport { ApplicationInsights, IConfiguration, IConfig } from '@microsoft/applicationinsights-web';\r\n\r\nlet correlationId: string;\r\n\r\nfunction nextCorrelationId() {\r\n correlationId = v4();\r\n}\r\n\r\nconst appInsightsKey = Config.get().APP_INSIGHTS_KEY;\r\nlet appInsights: ApplicationInsights;\r\n\r\nif (appInsightsKey) {\r\n const appInsightsConfig: IConfiguration & IConfig = {\r\n instrumentationKey: appInsightsKey,\r\n disableFetchTracking: false,\r\n enableCorsCorrelation: true,\r\n enableAutoRouteTracking: true,\r\n correlationHeaderExcludedDomains: ['cloudctrl.au.auth0.com', 'auth.cloudctrl.com.au', 'fonts.googleapis.com', 'spendmanager.au.auth0.com']\r\n };\r\n const telemetryInitializer = envelope => {\r\n envelope.data.cloudCtrlCorrelationId = correlationId;\r\n };\r\n appInsights = new ApplicationInsights({ config: appInsightsConfig });\r\n appInsights.loadAppInsights();\r\n appInsights.addTelemetryInitializer(telemetryInitializer);\r\n}\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n nextCorrelationId();\r\n next();\r\n});\r\n\r\nexport default router;\r\n","/* tslint:disable:no-console */\r\n\r\nimport { register } from 'register-service-worker';\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready() {\r\n console.log(\r\n 'App is being served from cache by a service worker.\\n' +\r\n 'For more details, visit https://goo.gl/AFskqB',\r\n );\r\n },\r\n registered() {\r\n console.log('Service worker has been registered.');\r\n },\r\n cached() {\r\n console.log('Content has been cached for offline use.');\r\n },\r\n updatefound() {\r\n console.log('New content is downloading.');\r\n },\r\n updated() {\r\n console.log('New content is available; please refresh.');\r\n },\r\n offline() {\r\n console.log('No internet connection found. App is running in offline mode.');\r\n },\r\n error(error) {\r\n console.error('Error during service worker registration:', error);\r\n },\r\n });\r\n}\r\n","import Vue from 'vue';\r\nimport App from '@/App.vue';\r\nimport Config from '@/lib/Config';\r\nimport '@/plugins/vuetify';\r\nimport '@/plugins/highcharts';\r\nimport '@/plugins/currency';\r\nimport '@/plugins/dateFormatting';\r\nimport '@/plugins/common';\r\nimport '@/plugins/directives';\r\nimport router from '@/plugins/router';\r\nimport '@/plugins/tracking';\r\nimport { AuthPlugin } from '@/plugins/auth';\r\n\r\nimport ValidationModule from '@/plugins/validation';\r\nimport '@/registerServiceWorker';\r\nimport vuetify from '@/plugins/vuetify';\r\nimport '@/scss/main.scss';\r\nimport VueWait from 'vue-wait';\r\nimport Vuelidate from 'vuelidate';\r\nimport { i18n } from '@/i18n';\r\nimport VuePageTitle from 'vue-page-title';\r\nimport { Plugin as VueFragment } from 'vue-fragment';\r\nimport VueTruncate from 'vue-truncate-filter';\r\nimport { createPinia, PiniaVuePlugin } from 'pinia';\r\nimport piniaPluginPersistedState from \"pinia-plugin-persistedstate\"\r\n\r\nVue.config.productionTip = false;\r\n\r\nVue.use(AuthPlugin, {\r\n onRedirectCallback: async (redirectUrl) => {\r\n await router.push(redirectUrl ? redirectUrl : window.location.pathname);\r\n }\r\n});\r\nVue.use(Vuelidate);\r\nVue.use(VueWait);\r\nVue.use(VueFragment);\r\nVue.use(ValidationModule);\r\nVue.use(VuePageTitle, { router, suffix: `- ${Config.get().APP_NAME}` });\r\nVue.use(VueTruncate);\r\nVue.use(PiniaVuePlugin);\r\nconst pinia = createPinia();\r\npinia.use(piniaPluginPersistedState);\r\n\r\nnew Vue({\r\n router,\r\n vuetify,\r\n i18n,\r\n render: h => h(App),\r\n wait: new VueWait(),\r\n pinia\r\n}).$mount('#app');\r\n\r\n","import Vue from \"vue\";\r\nimport VueWait from \"vue-wait\";\r\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\r\n//@ts-ignore\r\nimport { waitFor, } from \"vue-wait\";\r\nVue.use(VueWait);\r\n\r\nconst START_EVENT = 'start';\r\nconst STOP_EVENT = 'stop';\r\nVue.directive('wait-while', {\r\n bind(_, binding, vnode: any) {\r\n const instance = vnode.context.__$waitInstance;\r\n vnode.child.$on(START_EVENT, () => instance.start(binding.value));\r\n vnode.child.$on(STOP_EVENT, () => instance.end(binding.value));\r\n },\r\n update(_, binding, vnode: any) {\r\n const instance = vnode.context.__$waitInstance;\r\n if (vnode.data?.props) {\r\n vnode.data.props['loading'] = instance.is(binding.value);\r\n }\r\n }\r\n});\r\n\r\nexport const startStop = (emit: (event: string) => void, func: any, forceSync = false): any => {\r\n if (typeof func !== 'function') {\r\n return func;\r\n }\r\n if (forceSync === true) {\r\n return (...args: any[]) => {\r\n try {\r\n emit(START_EVENT);\r\n return func.apply(this as any, args);\r\n } finally {\r\n emit(STOP_EVENT);\r\n }\r\n };\r\n }\r\n return async (...args: any[]) => {\r\n try {\r\n emit(START_EVENT);\r\n return await func.apply(this, args);\r\n } finally {\r\n emit(STOP_EVENT);\r\n }\r\n };\r\n};\r\n\r\nexport const wait = new VueWait();\r\n\r\ntype AsyncWaitFunction = (...args: any) => Promise;\r\ntype WaitFunction = (...args: any) => any;\r\nexport const compositionWaitFor = (bindTo:any, waiter: string, callback: T): T => {\r\n return (waitFor.bind(bindTo))(waiter, callback);\r\n};\r\nexport const compositionWaitIs = (bindTo:any, key:string):boolean => {\r\n return false;\r\n}\r\n\r\nexport { waitFor };\r\n","export const evaluate = (text) => {\r\n const module = {}; // Create a local module object\r\n return eval(text); // Execute the text\r\n}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"js/\" + (chunkId === 107 ? \"actions\" : chunkId) + \"-legacy.\" + {\"15\":\"f0cd4e04\",\"107\":\"3b18b3bb\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"cloudctrl:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcloudctrl\"] = self[\"webpackChunkcloudctrl\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(2724); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["module","exports","Component","options","__i18n","push","_Ctor","attrs","type","_vm","form","block","_v","staticRenderFns","props","href","clear","default","valid","color","outlined","version","data","loading","methods","submit","Api","response","component","render","value","headers","timeout","model","show","expression","toastError","EventBus","toastSuccess","toastInfo","text","created","this","onError","onSuccess","onInfo","destroyed","activeTab","callback","key","_c","staticClass","on","testJson","resultJson","_self","style","noop","name","diffEditor","Boolean","width","String","Number","height","original","language","theme","Object","editorMounted","Function","editorBeforeMount","watch","deep","handler","editor","updateOptions","_getValue","_setValue","getModel","modified","monaco","$nextTick","layout","computed","test","mounted","initMonaco","beforeDestroy","dispose","assign","_editorBeforeMount","$el","_setModel","_editorMounted","_getEditor","modifiedEditor","originalModel","modifiedModel","setModel","setValue","getValue","onDidUpdateDiff","event","_emitChange","onDidChangeModelContent","$emit","DEFAULT_SCRIPT_TEXT","DEFAULT_SCRIPT_TEST_JSON","DEFAULT_VS_OPTIONS","readonly","automaticLayout","defineComponent","components","MonacoEditor","setup","docsUrl","Config","DOCS_URL","ref","scriptOptions","testJsonOptions","resultOptions","readOnly","runTest","inputs","vm","factory","Promise","resolve","reject","beforeTransform","context","err","newRecords","records","record","transformRecord","newRecord","afterTransform","lastRecords","lastly","JSON","stringify","FlowType","DeliveryType","title","subtitle","scopedSlots","fn","actionBindings","isValid","knownScriptTypes","knownDeliveryTypes","actionName","scriptText","DEFAULT_SCRIPT_NAME","KNOWN_SCRIPT_TYPES","id","disabled","KNOWN_DELIVERY_TYPES","ActionScriptInput","init","actionType","importUsageTransformation","deliveryType","script","priceStreamRules","formData","val","immediate","config","ApiV2Client","instance","axios","baseURL","API_2_URL","axiosRetry","retryDelay","retries","API_MAX_RETRY_COUNT","interceptors","request","use","cfg","Vue","token","Authorization","AuthClient","error","status","localStorage","getItem","setItem","removeItem","tenantId","user","email","ConfigClient","window","$cloudctrl","featureName","get","FEATURES","includes","isFeatureEnabled","document","domain","UserPoolId","COGNITO_USERPOOLID","ClientId","COGNITO_CLIENTID","CognitoUrl","COGNITO_DOMAIN","AzureIDPName","COGNITO_AZUREIDP","eventBus","showChineseFooter","staticStyle","Toast","dialog","Vuetify","DEFAULT_THEME","customThemes","darkThemePreference","dark","matchMedia","matches","documentElement","setProperty","icons","iconfont","proj4","fillFactory","Highcharts","HighchartsMapModule","HighchartsCustomWorld","HighchartsVue","formatCurrency","code","isNaN","toLocaleString","undefined","currency","CurrencyService","currencies","then","c","getAllCurrencies","r","map","all","symbolIndex","findIndex","symbol","dayjs","calendar","local","sameElse","format","logoImageSrc","route","navigateToStep","handleClick","titleIcon","caption","_e","light","CardBase","_u","_l","keys","$scopedSlots","slot","scope","_t","chart","constructorType","entityType","formId","close","reset","entityName","warningText","checkToDelete","$t","nameConfirmation","checkToDeleteRules","nameConfirmationRules","resourceApi","url","ApiV2","delete","entityToDelete","DeleteEntityCard","DeleteEntityButton","getEntities","SpendFieldNames","Granularity","_s","message","proxy","preventDefault","resetValidation","UniqueIdentifier","replace","Math","random","v","toString","lazyValidation","FormCardActions","FormCardTitle","open","fullscreen","toolbarColor","toggleDrawer","$router","flipIcon","icon","sheetColor","extended","extensionHeight","hideNavbtn","small","backTo","backToText","sticky","needsFilters","toggleFiltersDrawer","isJsonPatch","jsonPatchHeaders","description","iconColor","right","compare","upGood","left","iconValue","prependIcon","hideDetails","dense","flat","multiple","chips","filled","rules","handleInput","searchText","queryEntitiesWithCurrentQuery","disableSaveCustomView","createDummyEntity","item","CloudProviderType","EntityType","PluralEntityType","CloudAccountType","toPlural","cloudAccount","cloudAccounts","cloudProvider","cloudProviders","service","services","subscription","subscriptions","tag","tags","tagKey","tagKeys","region","regions","product","products","productCategory","productCategories","geography","geographies","meter","meters","fromPlural","Array","isArray","t","CloudCredentialType","RawUsageFields","BudgetType","BudgetPeriod","CostView","SpendUsageTableConstants","consumptionKeySuffix","slotDateFormat","utc","advancedFormat","granularityForDateRange","range","length","dayDifference","moment","diff","DateKey","granularity","total","isCustom","endsWith","substring","fromDate","toDate","toDateMoment","filter","relativeFrom","add","endDate","endOf","startDate","startOf","unique","index","self","indexOf","appendValueToCommaString","inputArray","separator","split","concat","join","generateSpendUsageOptionsFromReport","dateKey","dateRangeKey","Date","dates","getEffectiveDateRange","p","topXResults","savedViewId","forecastRangeKey","subscriptionIds","serviceIds","cloudAccountIds","productIds","regionNames","geographyNames","filters","forEach","i","productId","cloudAccountId","serviceId","regionName","geographyName","tagKeyValue","providerType","segregatedBy","segregateBy","generateSpendParametersFromReport","toISOString","topBy","tagKeyValues","reservationId","customView","$wait","is","$event","bindings","directives","rawName","handleSuccessfulCreation","_setup","filterTypes","convert","m","Id","Name","createEntity","Description","Provider","Type","EntityIndex","sysProductIds","sysServiceIds","cloudProviderTypes","createFilters","currentFilters","array","elementInArray","find","element","removeFilter","getCloudAccounts","getSubscriptions","subscriptionId","getProducts","getServices","getRegions","getGeographies","getProductCategories","getProviderTypes","cloudProviderType","values","getTagKeyValues","getTagKeys","existingTag","allFilterTypes","shouldHaveCloudAccountFilters","shouldHaveSubscriptionFilters","shouldHaveProductFilters","shouldHaveServiceFilters","shouldHaveRegionFilters","shouldHaveGeographyFilters","shouldHaveProductCategoryFilters","shouldHaveProviderTypeFilters","providerTypes","shouldHaveTagFilters","shouldHaveTagKeyFilters","newVal","oldVal","displayFilterTypes","CustomViewCard","_g","_b","$props","$listeners","CustomViewCardDialog","PostCustomViewButton","customViewName","stringToUint","string","blob","stringToBlob","blobToUint8Array","Blob","reader","FileReader","onload","Uint8Array","target","result","onerror","readAsArrayBuffer","blobToString","readAsText","getUsage","params","toLowerCase","getSpend","fields","getForecast","forecastDuration","forecastUnit","match","unit","parseInt","Models","monthsToAdd","ceil","daysToAdd","catch","console","maxUsageDate","forecasts","reduce","max","usageDate","getNativeCO2e","groupings","g","kwH","getCO2e","getForecastCO2e","getTagUsage","min","dimensions","getAllTagKeys","getTrends","getTrendsSummary","getCustomerSummary","getMissingCo2eReport","getSavedReports","getSavedReport","getCustomViews","getCustomView","getApiKeys","getAllTagMappings","deleteTagMapping","updateTagMapping","createTagMapping","reorderTagMappings","models","getAllSpendLimits","getAllBudgets","getCustomViewBudgets","getBudget","createPolicy","policyModel","putPolicy","listPolicies","listAllResults","getPolicy","listPolicyResults","getPolicySummary","listDimensions","getAllTenantWebhookNames","getWebhooks","getMailingLists","getWebhook","createMailingList","body","putMailingList","getMailingList","getPolicyResultUrl","policyId","resultId","deliverSavedReport","reportId","emails","mailingListId","mailingList","listCustomDashboards","createCustomDashboard","doc","docString","docBinary","file","FormData","append","putCustomDashboard","putResponse","getCustomDashboardDoc","responseType","uint8Array","parse","enableDimension","dimensionKey","disableDimension","pinDimension","unpinDimension","convertToViewModel","e","provider","entityIndex","convertToSpendUsageOptions","cv","types","label","autofocus","solo","soloInverted","searchPrefix","supportCreate","selection","set","items","spendUsageOptions","PostCustomViewDialog","autoCompleteId","create","isCreating","toAdd","x","old","queryEntities","queryString","page","pageSize","start","searchParams","URLSearchParams","searchQuery","searchItems","ids","Set","d","has","end","handleSaveCustomView","loadReports","waitFor","customViewsLoading","customViews","loadingReports","size","$$v","save","optional","noTitle","menu","datePickerFormValue","renderedDateString","useMain","$route","AppLogoImage","BackButton","Card","ChartCard","DeleteEntityDialog","EmptyState","FormCard","FormDialog","PageHeader","HttpPatchButton","HttpPostButton","HttpDeleteButton","HttpPutButton","FigureCard","WidgetGrid","Chart","TitleSheet","TitleSheets","ComparisonIcon","EntitySearchAutocomplete","EntityTypeIcon","CloudProviderTypeIcon","TextDatePicker","ConditionalVMain","bind","_","binding","vnode","__$waitInstance","child","$on","FeatureNames","selectedSearchEntity","showSupportEmail","supportEmail","drawer","level","activeUserAlert","tenantStore","isSupportDialogOpen","selected","menuItems","LAST_TENANT_KEY","useDatasetState","hasGranularTogglesFeature","hasTenantFeature","hasUsageDataset","hasEmissionsDataset","useTenantStore","defineStore","state","getInitialTenant","getters","feature","features","hasPermission","permission","permissions","actions","changeTenantContext","loadTenant","loadTenantStatus","isTenantSelected","tenantSummary","setTenantDetails","$patch","newTenantString","$state","setTenantDetailsFromV1","newTenantData","tagKey1","tagHeirarchy","tagKey2","tagKey3","getHierarchy","initialTenantString","initialTenant","tenantName","currencyCode","customerId","numberOfActiveAccounts","lastImportStartedDate","lastImportCompletedDate","lastUsageDateForTenant","isSelfService","hasActiveSubscription","hasActiveImports","activeUserAlerts","hasInvalidCredentials","expandReports","expandOptimizations","expandPricing","mapStores","hasCostAndUsageToggle","hasEmissionsAndEnergyFeature","hasCustomReportsFeature","to","hasKubernetesFeature","hasAzureEmissions","hasRecommendationsViewFeature","hasBudgetsFeature","hasSpendLimitsFeature","hasWatchdogFeature","hasTagOverviewFeature","hasGridFeature","hasCopyCloudAccountFeature","stopPropagation","isEditingNotifications","tableEntities","sortedDesc","$set","onValueChanged","post","EmailSubscriptionCheckbox","sortable","allStatuses","sortedBy","itemsPerPage","h","a","b","f","k","l","n","substr","q","s","charCodeAt","fromCharCode","ProfileTenantsTable","profiles","gravatarUrl","toggleDarkTheme","loadProfiles","isMenuOpen","useAccountStore","tenants","numTenants","ctx","loadAccountTenants","NavMenuList","NavTenantMenuList","NavUserMenuList","clearInterval","toggleFilters","onAuthentication","getMe","getCredentialStatus","credentialTypes","getTenantSummary","getTenantStatus","me","shouldAlwaysBeDark","groupedActiveImports","activeImports","month","year","groupedByYear","months","accounts","rangeEnd","monthRanges","rangeStart","cloudAccountName","displayText","percentageDownFromLastMonth","expectedThisMonth","percentage","lastMonthName","lastMonthSubtitle","nativeOn","handleSavingsClicked","handleUpdateDateRange","newChartData","usageOptions","handleDatasetClicked","tagTableItems","dialogs","updateTenant","iconTooltip","integrationType","iconType","_setupProxy","useWaitStore","waits","stop","splice","whilst","warn","useFilterStore","getInitialFilter","setFilter","fetchSelectedSearchEntity","entities","qs","searchType","fetchSubscriptionById","fetchCloudAccountById","fetchServiceById","persist","afterRestore","store","entity","subscriptionName","typeDescription","serviceName","initialFilter","ContrastTextVariable","ContrastLinesVariable","VuetifyPrimaryBase","VuetifyErrorDarken1","VuetifyWarningDarken1","VuetifySuccessDarken1","VuetifyErrorLighten2","VuetifyWarningLighten2","VuetifySuccessLighten2","colorsOverride","CHART_COLORS","hexToRgb","hex","normalized","bigint","LEGACY_COLORS_HEX","LEGACY_COLORS_RGB","rgb","FORMATS","datetime","millisecond","second","minute","hour","day","week","quarter","_adapters","_id","formats","valueOf","time","amount","weekday","trunc","isoWeekday","getOrCreateLegendList","legendContainer","getElementById","listContainer","querySelector","createElement","display","flexDirection","margin","padding","paddingTop","paddingBottom","maxWidth","appendChild","htmlLegendPlugin","afterUpdate","args","ul","containerID","firstChild","remove","plugins","legend","labels","generateLabels","li","alignItems","cursor","marginLeft","marginBottom","onclick","toggleDataVisibility","onLabelClick","datasetIndex","setDatasetVisibility","isDatasetVisible","update","boxSpan","background","fillStyle","borderColor","strokeStyle","borderStyle","borderWidth","lineWidth","flexShrink","marginRight","textContainer","fontColor","textDecoration","hidden","createTextNode","annotationPlugin","UsageReportTypes","PREFIX_PAD","OTHERS_DATASET_ORDER","PROJECTIONS_DATASET_ORDER","valueFn","spend","u","charges","credits","Error","autoScaling","option","origValue","chartArea","barWidth","getDatasetMeta","output","hypo","sqrt","pow","convertUsageResponseToDatasets","usageResult","opts","labelSuffix","stackGroup","colorsArray","reportType","datasets","colours","reverse","fullColor","dataset","backgroundColor","isOther","pattern","hoverBackgroundColor","order","stack","reportTypes","usageRecords","getTime","y","convertProjectionsResponseToDataset","projectionsResult","altColorHex","forecast","forecastTimestamp","convertEventsToAnnotations","eventResponse","onClick","sortedEvents","sort","aDate","bDate","plotBands","currentDate","UTC","dayBefore","setDate","getDate","toCreate","existingBand","xMin","xMax","plotBand","click","band","xMinDate","setHours","xMaxDate","convertAnnotatesToAnnotations","flatData","flatMap","annotationDate","largest","xValues","itemB","totals","minDate","maxDate","midday","offset","utcOffset","dataValues","content","font","position","xValue","yValue","getRange","scale","pixel0","pixel1","v0","getValueForPixel","v1","chartItem","containerId","onRangeSelection","allowRangeSelection","getComputedStyle","contrastLines","getPropertyValue","CssVariables","contrastText","selectedRange","zoomPlugin","zoom","center","limits","from","delta","onClickProcessor","targetPtr","targetDataset","datasetGroupId","htmlLegend","drag","enabled","mode","onZoomComplete","minXDate","floor","maxXDate","minX","maxX","stackTotal","rangeTotal","tooltip","callbacks","afterLabel","points","hoverPoint","dataIndex","datasetTotal","datasetAverage","percentageOfAverage","toFixed","annotation","annotations","interaction","intersect","onHover","newCursor","native","responsive","maintainAspectRatio","scales","stacked","ticks","grid","axis","bounds","now","emit","root","canvas","canvasContainer","storeToRefs","renderChart","innerHTML","classList","maxHeight","createUsageBarChart","onMounted","displayCurrencyCode","mpnOverride","tagHeirarchy1","nameEditable","nameRules","allowMpnOverride","tagHeirarchy2","tagHeirarchy3","currencyCodes","errorFallback","Currencies","tagKeyEntity","handleTagKeySelection","CurrencyComboBox","TagKeyAutocomplete","currencyCodeRules","searchSupportedTypes","handleUpdateFilterEntity","isPickingDateRange","isPickingForecastRange","handleForecastDateRange","DEFAULT_RANGE_TYPES","isCustomDateMenuOpen","handleUpdateDateType","viewModel","showTypes","hideOthers","isOtherMenuOpen","handleSegregationChange","DEFAULT_SEGREGATION_TYPES","$vuetify","breakpoint","smAndDown","otherTypes","segregation","dateRangeForKey","convertSpendOptionsToQuery","costView","calculateOptionsDescription","segregateByTitle","startsWith","granularityName","hideSearch","dateSupportedKeys","segregationSupportedKeys","hideSegregation","hideSegregationOthers","dateRangeDescription","date","isGeneralOptionsMenuOpen","filterStore","handleUpdatedCostView","dateRange","newValue","entityLength","subscriptionIdEntities","latestEntity","productName","UnitOfDisplay","pinnedTopRowData","domLayout","showGptCreate","loadingGptCreate","LicenseManager","AG_GRID_KEY","SPAN_WITH_NO_VALUE","capitalizeFirstLetter","charAt","toUpperCase","slice","slotHeader","header","fieldName","headerName","field","editable","rowGroup","resizable","enableRowGroup","cellRenderer","AgGridVue","nameHeaderTitle","cardTitleText","disableLinks","hideDefaultFooter","hideExport","hideIntelligence","prefix","unitOfDisplay","sortBy","sortDesc","modules","RowGroupingModule","entityId","gridApi","gridColumnApi","displayOptions","exportCsv","exportDataAsCsv","go","noNav","chatId","sizeToFit","sizeColumnsToFit","onGridReady","api","columnApi","allColumnIds","getAllColumns","column","getColId","autoSizeColumns","segregateByList","showDataAsMonetaryCost","consumption","pinned","valueFormatter","isTotal","noFollow","encodeURIComponent","link","innerText","addEventListener","canShowIntelligence","monthSlots","itemValuePropName","costValuePropName","dailySlots","unitValuePropName","pinnedBottomRowData","spendUsageItems","summaryRow","totalConsumption","timestamp","usageItem","SpendUsageTableFunctions","slotsForMonthColumns","slotsForDailyColumns","spendResultGroup","totalCharges","monthlyTotalsForYear","monthlyCharges","monthlyConsumptionForYear","monthlyConsumptionTotals","usageRecord","urDate","unitsConsumed","tempDate","isBefore","slotKey","itemSlotName","fromMonth","toMonth","slots","isAfter","monthYear","endOfMonth","partialFromDayOfMonth","partialToDayOfMonth","CredentialStatusIcon","SpendUsageBarChart","SetTenantCard","PutTenantButton","SpendUsageTable","figureType","tenantMonthlyUsageResponse","totalSpendForYear","averageMonthlySpend","projectedThisMonth","totalLastMonth","totalThisMonth","creditsLastMonth","topXServices","thisMonthName","recommendationSummary","recommendationStatus","projections","tagOptions","tenantToEdit","nocreditsTxt","recommendationStatusText","chartTitle","getUsageForTenant","usageParams","usageResponse","usageDataset","creditsDataset","projectionsResponse","projectionDataset","usageUtilized","projectionUtilized","utilizedUsageDataset","utilizedProjectionDataset","tm","lm","thisMonthForecast","getRecommendationSummary","getRecommendationStatus","getTagsOverview","heirarchy","onManageHierarchyClick","afterUpdateTenant","handleDialogChange","deltaSpend","sevenDayTrend","priorPeriodSpend","activePeriodSpend","thirtyDayTrend","sixtyDayTrend","compareConfiguration","routePrefix","itemsPerPageOptions","Downloader","rows","csvContent","rowArray","row","encodedUri","encodeURI","setAttribute","removeChild","object","json","blob1","URL","createObjectURL","csvValues","UsageComparisonsTable","currentPeriodMax","SegregationButtonToggle","segregateTypes","allItems","convertCompareResultToDatasets","compareResult","nameFn","idFn","increaseDataset","decreaseDataset","abs","increaseSpend","decreaseSpend","metaData","convertProductCompareResultToDatasets","convertServiceCompareResultToDatasets","convertSubscriptionCompareResultToDatasets","convertCloudAccountCompareResultToDatasets","indexAxis","clickFn","createTrendsBarChart","clickEvent","ServiceComparisonsTable","UsageComparisonOptionsToolbar","ProductComparisonsTable","SubscriptionComparisonsTable","CloudAccountComparisonsTable","TrendBarChart","lastUsage","query","loadProductComparisons","refreshSummaries","averageDailySpend","deltaPercentage","totalNewThisMonthCount","totalNewLastMonthCount","spendLimits","recentServices","comparisons","trendRecords","chartseries","trendDatasets","period","toLocaleLowerCase","log","loadCompare","loadTrendSummary","days","lastUsageDate","handleChartClick","isOpen","$title","SpendUsageOptionsToolbarForm","reservations","ReservationId","CloudAccount","CommitmentType","commitmentType","CommitmentId","commitmentId","ProductName","ProviderType","Quantity","quantity","Region","PaymentOption","paymentOption","ThirtyDayUtil","thirtyDayUtilisation","StartDate","loadReservations","headerValues","unshift","reservation","remoteId","getUsageRecords","showRecommendationsNotAvailable","showRecomendations","filterRecommendationsBy","noDataMessage","results","recommendation","Recommendation","rec","detailsUrl","res","RecommendationResult","showResults","minimumEstimateImpact","maximumEstimateImpact","minimumEstimateImpactEmissions","maximumEstimateImpactEmissions","averageMonthlyEmissions","category","environmentalImpact","accum","isInFilter","cost","recommendationId","cloudAccountType","snoozedOn","recommendationText","align","impactNames","hasResultsToShow","recommendationEnabled","settings","isEnabled","definition","definitions","SetRecommendationSettingsCard","isWhiteLabelled","RecommendationResultTable","RecommendationHeaderCard","RecommendationCurrentlyAvailableCard","RecommendationCredentialsRequiredCard","EditRecommendationSettingDialog","PutRecommendationSettingsButton","RecommendationNotAvailableCard","panelsState","recommendations","elevatedFeatureRecommendations","summary","credentialStatus","recommendationsSetting","isAssistDialogOpen","filterOptions","ALL_VENDORS_FILTER","recommendationsHeader","showCredentialSetupRequired","totalRecommendations","totalCost","filteredRecommendations","loadRecommendations","Api2","recommendationResponse","credentialStatusResponse","loadRecommendationSettings","loadSettings","setFilterFromStorage","panelState","cluster","handleClusterSpendChartClick","convertTagResultToNamespaceSpend","clusterName","rowMap","Map","rowDimensions","tagValue","namespace","trim","totalSpend","round","entries","AllocationTypes","convertAllocationsToDatasets","allocations","allocation","createClusterAllocationsBarChart","DateRangeButtonToggle","ClusterSpendBarChart","NamespaceSpendTable","clusterSpendData","effectiveDateRange","loadClusterSpend","tagUsageData","clusterSpend","clustersViewModel","clusterMap","clusterSpendItem","clusterRow","namespaces","clusterAllocationDatasets","effectiveDates","newClusters","clusters","wait","primaryTagRules","primaryTag","additionalTagRules","getTagSpendData","tagChartItems","convertTagSpendResponseToDatasets","tagSpendResult","grouping","ds","indexTotal","percentageOfIndexTotal","hover","createTagSpendAreaChart","singleLine","TagSpendAreaChart","Banner","filterPanels","additionalTags","subtract","startMenu","endMenu","tagTableDimensions","periodRules","startDateRules","endDateRules","usageTableItems","isDeprecationNoticeEnabled","loadTagKeys","Charges","Spend","convertToItemRecords","loadTagSpend","startPeriodString","endPeriodString","MARGIN_DATASET_ORDER","PROFIT_DATASET_ORDER","convertCustomerUsageSummaryToDatasets","showProfit","customers","customerDataset","customerName","monthlyChargeSummaries","profit","marginDataset","fill","tension","yAxisID","profitDataset","monthlyChargeTotals","y2","drawOnChartArea","createCustomerUsageBarChart","transformedItems","Revenue","Cost","Margin","Profit","thisMonthRevenue","thisMonthCost","thisMonthProfit","thisMonthMargin","lastMonthRevenue","lastMonthCost","lastMonthProfit","lastMonthMargin","CustomersChart","CustomersTable","exportCustomerCsv","table","$refs","chartDatasets","startPeriod","endPeriod","totalRevenue","totalProfit","totalMargin","numberCustomers","filterValue","chartOptions","createMapChart","events","exporting","mapNavigation","itemStyle","itemHoverStyle","navigation","activeColor","colorAxis","plotOptions","series","point","enableMouseTracking","showInLegend","createMapSeriesRecord","groupingName","suffix","colorLookup","Azure","Amazon","joinBy","minSize","maxSize","pointFormatter","z","createMapSeriesChildRecord","correlationId","areaName","lat","lon","$$id","createCarbonColorAxis","stops","convertRegionResultsToChartSeries","costs","currencySymbol","regionTotals","agg","obj","regionTotalKey","regionData","ChartFactory","long","pointClicked","eventData","outgoingEventData","convertRegionResultsToViewItems","currentMonth","RegionsTable","RegionsTableCard","RegionChartCard","regionMapData","filteredRegions","filteredRegionMapData","loadDataForView","getAllRegions","getRegionTotals","list","some","currentTotalCo2E","fixedCarbonOptions","isUsageDatasetWarningOpen","TOTAL_ENERGY_ORDER","convertUsageResponseToEmissionsDatasets","lookup","cO2e","energyDataset","aggregateRecords","kWh","convertCO2eResponseToDatasets","hideKwh","cO2E","createEmissionBarChart","convertCarbonByTagResultToDimensions","convertCarbonByTagResultToItems","usageKey","rowKey","co2e","row1","usageHeaders","headerMap","dimension","isViewingDialog","CarbonMissingMappingCard","setMonth","getMonth","fixedParameters","CarbonMissingMappingDialog","CarbonBarChart","TagCarbonTable","CarbonMissingFooter","getTagCarbonData","getFixedCO2EForTenant","currentTotalKwH","lastMonthCo2e","lastMonthKwH","cummulativeCo2E","cummulativeKwH","datasetIndexes","SUPPORT_EMAIL","carbonOptions","getCO2EForTenant","carbonResponse","forecastResponse","forecastDataset","totalCO2E","totalKwH","monthlyCO2ETotals","monthlyKwHTotals","dims","resp","starred","groupingItems","convertToEmissionsItemRecords","totalCO2e","totalCo2e","monthlyCO2eForYear","monthlyCO2eTotals","monthlyKwHForYear","KeyedBlobsDb","stores","blobs","where","toArray","getBlob","jsonString","jsonBlob","putBlob","put","listBlobsWithPrefix","docs","arrayBuffer","buffer","stringBlob","changeFn","initFn","getDoc","doc1","doc2","inited","changed","putDoc","final","Dexie","getUserPreferences","KeyedBlobs","setUserPreferences","preferences","getSegregateByFromRoute","path","baseTenantId","CarbonTable","tab","tagkey","carbonRecords","getCarbonRecords","newSegregateBy","newTabKey","tabKey","costExplorerTab","starredCostExplorerTab","isStarred","newTagKey","oldTagKey","currentHeaderName","tabs","by","projectionResponse","projectionsDataset","SupportedSlices","intensity","intensityOptions","standardOptions","kwh","FIXED_OPTIONS","hideForAMoment","emissions","currentMonthCO2e","currentMonthKwH","RegionsCarbonTable","RegionsCarbonTableCard","emissionsResult","regionsResult","minPeriod","class","_f","customerToDelete","endDeleteAccount","deleteCustomer","isFormValid","isNotForProfit","AddCustomerButton","handleSuccessfulCustomerAdd","sum","CreateCustomerDialog","getTenantCustomers","startMonth","handleSuccessfulCustomerChange","startDeleteAccount","customer","flag","maxPeriod","totalShared","numberOfSharedAccounts","totalOther","numberOfOtherAccounts","totalOtherSpend","lastMonthOtherSpend","flagValue","startCreateAccount","isTenantCreator","startEditAccount","startEditUserGroup","createOrUpdateUser","groupId","tryAddOrUpdateGroup","deleteUser","deleteUserGroup","canRead","canContribute","canAdminister","canManageBilling","isEditMode","fullName","convertToUserItems","users","userGroups","userResp","userGroupResp","ug","newUsers","editUsers","businessUnit","SetUserCard","UsersTable","AddUserButton","UpdateUserButton","DeleteUserButton","DeleteUserCard","SetUserGroupPermissionsCard","deletegatedUserGroups","userToDelete","userToEdit","userGroupToEdit","userGroupToRemove","addUserGroupPermission","userItems","startAddUserGroup","startDeleteUserGroup","getUsers","delegatedUserGroups","createNewShare","markupPercentage","current90DayMargin","startDeleteCopy","loadCustomer","showDeleteCopy","TaxonomyType","useCloudAccountNavigationStore","taxonomyType","updateNavigationSource","navigationDetails","DeleteSharedCopyButton","copyToDelete","ParentCloudAccountId","parentCloudAccountId","navigationHistory","featureId","toggleFeature","featureDescription","SharedData","Features","Users","loadingCustomer","loadCustomerFeatures","loadingCustomerFeatures","sharedDataCloudAccounts","origin","currentMarkup","effectiveFromDate","tenantFeatures","isActionsEnabled","isCloudAccountActionsEnabled","isCustomAccountsEnabled","isTagMappingsEnabled","isSnowflakeEnabled","isOracleEnabled","isAlibabaEnabled","isGoogleEnabled","isAuditEnabled","startEditName","isCreatingAwsAccount","isCreatingAwsRoleBasedAccount","onCloudAccountsChanged","isDeletingAwsAccount","isEditingAwsAccount","isEditingAwsRoleBasedAccount","isEditingAwsAccountName","isEditingAccountCurrencies","edit","UseTenantCurrencies","AwsIamUsageCredential","ProviderId","Token","secretAccessKey","Container","RegionCode","accessKeyId","showSecretAccessKey","secretAccessKeyRules","regionCode","s3BucketNameRules","s3BucketName","matchingBuckets","search","bucketCredentials","allS3Buckets","errored","matchingS3Regions","allRegions","S3BucketAutocomplete","S3RegionAutocomplete","useTenantCurrencies","accessKeyIdRules","secretAccessKeyRegex","SetAmazonWsCredentialsCard","SetAmazonWsCredentialsDialog","PostCloudAccountButton","AwsAssumeRoleCredential","ClientDomain","externalId","showPax8Option","isPax8","tryPrefillExternalId","roleArn","sessionName","DEFAULT_SESSION_NAME","bucketNameRegex","awsAssumeRoleCredential","clientDomain","providerId","container","SetAmazonAssumeRoleCredentialsCard","SetAmazonAssumeRoleCredentialsDialog","acceptSubmit","PutCredentialButton","IsPax8","DeleteCloudAccountCard","DeleteCloudAccountButton","account","handleSuccessfulRename","$rules","patches","UpdateEntityNameCard","PatchCloudAccountButton","SetCloudAccountCurrenciesCard","AWSConnectionEnabled","amazonCloudAccountTableFilter","ca","expiryDate","awsIamUsageCredential","expiry","AWSConnectionAccessKeyId","AWSConnectionBucketName","AWSConnectionExpiry","_original","updateRouteHistory","prettyListItems","bottom","PrettyListItem","PrettyListItemMenu","top","CreateAmazonWsCloudAccountDialog","CreateAmazonAssumeRoleCloudAccountDialog","UpdateAmazonWsCredentialDialog","UpdateAmazonAssumeRoleCredentialsDialog","DeleteCloudAccountDialog","AmazonWsCloudAccountsTable","EditCloudAccountNameDialog","EditCloudAccountCurrenciesDialog","CreateAmazonAccountMenu","focusedAccount","supportsRoleBasedAccount","amazonCloudAccounts","handleCreateNewAmazonAccount","startEditCurrencies","startEditCloudAccountLegacy","startEditCloudAccountNew","copyCloudAccount","navigationSource","cloudAccountTypes","startEditCloudAccount","isCreatingAzureArmAccount","isCreatingAzureCmeAccount","isCreatingAzureEaAccount","isCreatingRhipeAccount","isCreatingAzurePax8Account","isEditingAzureArmAccount","isEditingAzureCmeAccount","isEditingAzureEaAccount","isEditingRhipeAccount","isDeletingAccount","isEditingAccountName","isEditingAzurePax8Account","copyRemoteTags","AzureActiveDirectoryApplicationCredential","tenantIdRules","clientIdRules","clientId","clientSecretRules","showClientSecret","clientSecret","SetAzureArmCredentialsCard","SetAzureArmCredentialsDialog","AzureEntraApplicationWithStorageCredential","storageAccountRules","storageAccount","directoryNameRules","directoryName","exportName","containerRules","exportNameRules","SetAzureCmeCredentialsCard","SetAzureCmeCredentialsDialog","EaPortalApiCredential","showEaApiKey","eaApiKeyRules","eaApiKey","enrollmentNumber","parseJwt","atob","SetAzureEaCredentialsCard","SetAzureEaCredentialsDialog","RhipeApiCredential","SetRhipeCredentialsCard","SetRhipeCredentialsDialog","expanded","selectedCredential","showSubscriptions","credentialId","azureCloudAccountTableFilter","SubscriptionsDialog","showAzureSubscriptions","azureActiveDirectoryApplicationCredential","tableEntity","ARMConnectionTenantId","UsageConnectionType1","UsageConnectionEnabled","EnhancedConnectionEnabled","azureEntraApplicationWithStorageCredential","UsageConnectionType2","eaPortalApiCredential","rhipeApiCredential","CreateAzureCloudAccountDialog","CreateAzureEaCloudAccountDialog","CreateAzureCmeCloudAccountDialog","CreateRhipeCloudAccountDialog","UpdateAzureArmCredentialsDialog","UpdateAzureCmeCredentialsDialog","UpdateAzureEaCredentialsDialog","UpdateRhipeCredentialsDialog","AzureCloudAccountsTable","CreateCloudAccountMenu","azureCloudAccounts","startEditArmConnection","startEditCmeConnection","isCreatingGcpAccount","isEditingGcpAccount","isEditingGcpAccountName","projectId","jsonRulesText","tableId","dataSetId","jsonRules","handleJsonCredentialsFile","googleJsonUsageCredential","SetGoogleJsonCredentialsCard","SetGoogleJsonCredentialsDialog","GoogleConnectionEnabled","googleCloudAccountTableFilter","GoogleProjectId","GoogleDatasetId","GoogleConnectionExpiry","GoogleCloudAccountsTable","CreateGoogleAccountDialog","UpdateGoogleJsonCredentialsDialog","isDeletingGcpAccount","googleCloudAccounts","isCreatingOciAccount","isEditingOciAccount","isEditingOciAccountName","tenancyId","pemText","userId","fingerprint","regionId","oracleUsageCredential","SetOracleCredentialsCard","SetOracleCredentialsDialog","OracleConnectionEnabled","oracleCloudAccountTableFilter","OracleTenancyId","OracleUserId","OracleCloudAccountsTable","CreateOracleAccountDialog","UpdateOracleCredentialsDialog","isDeletingOciAccount","oracleCloudAccounts","isCreatingAccount","alibabaCloudAccounts","ConnectionEnabled","alibabaCloudAccountTableFilter","alibabaAccounts","alibabaUsageCredential","AccessKeyId","AlibabaUsageCredential","matchingAlibabaRegions","ALIBABA_REGIONS","AlibabaRegionAutocomplete","SetAlibabaCredentialsCard","SetAlibabaCredentialsDialog","isEditingAccount","AlibabaCloudAccountsTable","UpdateAlibabaCredentialsDialog","CreateAlibabaCloudAccountDialog","snowflakeAccounts","isEditing","isEditingName","isEditingCurrencies","required","organizationName","accountName","userName","password","snowflakeDirectCredential","SnowflakeDirectCredential","SetSnowflakeCredentialsCard","SetSnowflakeCredentialsDialog","snowflakeCloudAccountTableFilter","M","OrgName","AccountName","SnowflakeAccountTable","CreateSnowflakeAccountDialog","UpdateSnowflakeCredentialsDialog","isDeleting","isAdding","customCloudAccounts","customCloudAccountTableFilter","CustomCloudAccountsTable","CreateCustomCloudAccountCard","createCustomAccount","createUserGroup","membershipCount","updateGroupMembers","focusGroup","editUserGroup","getUserGroups","isDeletingGroup","entityDescription","innerRules","innerLabel","readText","deleteItem","addItem","additionalIsValid","SetUserGroupCard","ModalListInput","newUserGroup","isCreatingGroup","isEditingGroup","userGroup","billingDetails","loadCustomerPortalSession","BillingPlan","plan","planId","planName","planDescription","includedSpendInAud","overagePercentage","BillingDetailsStatus","billingStatus","remainingDays","planDetails","totalSpendInAud","currentColor","currentConsumption","predictedConsumption","minConsumption","maxConsumption","predictedColor","isMonthly","propertyName","ContentCard","loadAvailablePlans","planSelected","checkoutLink","ConsumptionBar","PlanCard","selfServiceEnabled","loadBillingStatus","billingStatusResponse","customerPortalSession","apiKeys","removeKey","keyToDelete","generatedKey","copy","navigator","clipboard","writeText","profileId","apiKeyId","GenerateApiKeyCard","GenerateApiKeyButton","DeleteApiKeyButton","showCreateKey","showDeleteKey","setGenerated","keyId","showGenerateApiKey","successfulGenerate","loadKeys","successfulDelete","startEditTenant","tenantToDelete","DeleteTenantButton","tagHierarchy","deleteTenant","startDeleteTenant","children","goToChoose","getTenantCurrencies","selectedMonth","targetCurrencyCode","sourceCode","fxRate","effectiveFrom","sourceCurrencyCode","effectiveFromYear","effectiveFromMonth","SetFxRateCard","SetFxRateDialog","CreateFxRateButton","op","EditFxRateButton","DeleteFxRateCard","DeleteFxRateButton","SimpleActionTypes","UpdateFxRateDialog","DeleteFxRateDialog","isUpdating","CreateFxRateDialog","FxRateMenu","tenantFxRates","fixedFxRates","priorMonths","getFixedCurrencies","getFullYear","getKnownCurrencyCodes","mapping","handleMappingActiveChange","isActive","moveMappingDownwards","deleteMapping","mappingValidity","isSubmitting","isCreatingNewMapping","ruleName","createPlaceholderMapping","isNewMappingValid","isLoading","deleteCondition","deleteAction","appendAction","isExitCondition","actionTypes","SimpleConditionTypes","conditionTypes","isFieldType","supportedTypes","KNOWN_FIELD_TYPES","fieldTypes","UsageFieldSelect","sourceRowField_insensitive","sourceRowField_sensitive","TagMappingActionTypeSelect","TagMappingConditionTypeSelect","TagMappingConditionLeftInput","TagMappingConditionRightInput","TagMappingActionLeftInput","TagMappingActionRightInput","conditions","newActions","applyMarkupActions","markup","runOrder","addNewTagActions","addNewTag","newTagValue","removeTagActions","removeTag","copyValueToNewTagActions","copyValue","existingTagKeyToCopy","newConditions","subscriptionConditions","matchCase","subscription_sensitive","subscription_insensitive","condition","matchSubscriptionNames","cloudAccountConditions","cloudAccount_Sensitive","cloudAccount_Insensitive","matchCloudAccountNames","sourceRowFieldConditions","sourceRowFieldName","matchValues","sourceTagKeyValueConditions","sourceTagKeyValue_sensitive","sourceTagKeyValue_insensitive","sourceTagKeyName","stopProcessingMoreRules","appendCondition","moveActionUpwards","sibling","moveActionDownwards","ruleDescription","ruleOrder","TagMappingFormCardContent","TagMappingHeaderToolbar","mappings","isCreatingFullscreen","newMapping","newMappingName","errorOccurred","resolveError","startCreateNewMapping","newResult","updatedTargetMapping","moveMappingUpwards","deletedTag","startEditingList","ml","updateMailingListEmails","targetMailingList","mailingLists","isCreatingOrEditing","getPageData","submitNameForm","startCreateList","webhooks","startEditing","webhook","currentName","existingNames","nameExistsRule","lastcalled","SetWebhookCard","WebhookCardDialog","CreateWebhookButton","webhookName","EditWebhookButton","CreateWebhookDialog","EditWebhookDialog","targetWebhook","tryPromoteTagKeys","newEntities","tryUnpin","configuredDimensions","tryDemote","dim","confirm","tryPin","getAuditing","filterUserEmail","auditLog","singleExpand","logs","accountStore","hideCreate","mailToAddress","handleCreation","PostTenantButton","onSubmit","CreateTenantDialog","TenantRadioGroup","ChooseTenantCard","awsMarketplaceToken","handleChooseEvent","redeemMarketplaceToken","marketplaceToken","loadTenants","onlyTenant","CustomerName","BillingEmailAddress","DisplayCurrencyCode","billingEmail","CreateTenantCard","PostCreateTenantButton","tenantCreated","rangeSelectedDialog","selectedAnnotations","annotationDialog","selectedValue","unitChanged","showNavigate","isEditable","startEditAnnotation","onAnnotationChangeSuccess","handleDeleteSuccess","annotationId","DeleteAnnotationCard","DeleteAnnotationButton","handleEditSuccess","resetForm","AnnotationDate","getPatchChanges","EditAnnotationCard","EditAnnotationButton","annotationToDelete","annotationToEdit","deleteAnnotation","editAnnotation","DeleteAnnotationDialog","EditAnnotationDialog","allAnnotations","annotationCreatedBy","startDeleteAnnotation","onNavigate","pathSegments","SpendUsageUnitToggle","AnnotationsTimeline","currentRangeEvent","trendDialogSubtitle","annotationDialogSubtitle","avgTotal","showUnitToggle","processRangeEvent","spikeEventsResponse","createdAnnotations","chartAnnotations","spikeAnnotations","showServiceDialog","selectedService","showServiceId","tryCloseDialog","loadServiceDetails","pastTotal","percentageOf","spendLimit","projectedTotal","actualTotal","oneMonthAgo","isEditingSpendLimit","monthlySpendLimit","UpdateEntitySpendLimitCard","PatchServiceButton","handleSuccessfulSpendLimit","EditServiceSpendLimitDialog","ServiceMetadataChips","ServiceManageMenu","CostSummaryWidget","loadServiceProjections","previousDate","prevYear","prevMonth","monthlySpendTotals","monthlyForecastTotals","isAddingAnnotation","hasMore","handleSuccessfulAnnotationChange","mixins","AddAnnotationCard","AddAnnotationButton","AddAnnotationDialog","resetPagination","loadMore","getAnnotations","tagValueEntity","handleTagValueSelection","TagValueAutocomplete","Key","Value","Sources","deleteTag","TagForm","getServiceTags","Source","Editable","tagsForSubmission","addServiceTag","deleteServiceTag","newTagPeriod","newTag","supportedPeriods","VirtualTagTable","virtualTags","spendOptions","VueI18n","i18nRules","en","i8nShared","i18n","locale","silentTranslationWarn","messages","none","back","view","disable","connected","administrator","role","login","company","ja","filterUsageParamsByFilterChips","cloneParams","categoryName","dropFilter","filtersWithoutFilter","UsageFilterChips","loadTabUsage","onUnmounted","tableItems","reverseLookup","downloadAsJson","getServiceRawRecords","rawRecords","getFn","downloadAsCsv","csvHeaders","svc","showSubscriptionDialog","selectedSubscription","showSubscriptionId","loadSubscriptionDetails","legacySubscriptionModel","PatchSubscriptionButton","EditSubscriptionSpendLimitDialog","EditSubscriptionNameDialog","SubscriptionManageMenu","SubscriptionMetadataChips","loadSubscriptionProjections","loadServiceComparisons","configuration","orderBy","addSubscriptionTag","deleteSubscriptionTag","getSubscriptionAccountVirtualTags","showProductDialog","selectedProduct","showProductId","loadProductDetails","PatchProductButton","EditProductSpendLimitDialog","ProductManageMenu","productInd","loadServiceComparisonsFn","showRegionDialog","selectedRegion","showRegionId","loadRegionDetails","RegionMetadataChips","showProductCategoryDialog","selectedProductCategory","showProductCategoryId","loadProductCategoryDetails","productCategoryName","productCategoryId","showCloudProviderDialog","selectedCloudProvider","showCloudProviderId","loadCloudProviderDetails","cloudProviderId","showGeographyDialog","selectedGeography","showGeographyId","loadGeographyDetails","geographyId","showTagDialog","selectedTag","showTagId","loadTagDetails","tagId","tagIdParts","tagKeyPart","tagValuePart","referencedTagKeyValue","tryDemoteToTagKey","tagkeyvalue","PatchTagKeyValueButton","EditTagKeyValueSpendLimitDialog","isDimension","tryPromoteToDimension","TagKeyValueManageMenu","tagName","tkv","loadSpendComparisons","filterText","AdditionalFiltersNotSupported","loadSpendComparisonsFn","showCloudAccountDialog","selectedCloudAccount","showCloudAccountId","loadCloudAccountDetail","loadAccountProjections","TenantId","TenantName","CloudAccountCopiesTable","DeleteCloudAccountCopyButton","copies","getAccountCopies","addCloudAccountVirtualTag","deleteCloudAccountVirtualTag","getCloudAccountVirtualTags","showDialog","selectedEntity","showReservationId","loadReservationDetails","isAuthenticated","Auth0Client","AUTH0_DOMAIN","AUTH0_CLIENTID","authorizationParams","audience","AUTH0_AUDIENCE","redirect_uri","location","initialize","onRedirectCallback","handleRedirectCallback","appState","returnTo","pathname","loginWithRedirect","getTokenSilently","logoutWithRedirect","logout","logoutParams","getUser","scopes","loginRequest","msalConfig","auth","MSAL_CLIENTID","authority","MSAL_AUTHORITY","redirectUri","cache","cacheLocation","storeAuthStateInCookie","system","loggerOptions","loggerCallback","containsPii","LogLevel","info","debug","PublicClientApplication","handleRedirectPromise","getAllAccounts","loginRedirect","setActiveAccount","acquireTokenSilent","idToken","InteractionRequiredAuthError","getActiveAccount","logoutRedirect","postLogoutRedirectUri","username","DEFAULT_REDIRECT_CALLBACK","history","replaceState","client","msalClient","auth0Client","getInstance","useAuth","AuthPlugin","install","vue","prototype","$auth","startLogin","startRegister","screen_hint","currentStep","changeCloudAccount","submitConfiguration","copyConfiguration","futureMarkups","tagAllocations","absoluteMarkupCheck","editing","tenant","scriptId","shareParentConnection","nextStepRoute","loadCopyConfiguration","futureDates","loadCloudAccounts","matchingTenant","selectedTenantId","selectedCustomerTenants","childCustomers","newName","prices","editSelectedPrice","setScriptId","deleteMarkup","lastMonth","lastMonthString","nextMonth","scripts","getActions","addNewMarkup","el","pricingOrigin","newTagAllocations","showCustomViewDialog","selectedCustomView","showCustomViewId","loadCustomViewDetail","customViewId","savedReports","report","handleSuccessfulDeletion","DeleteReportButton","reportName","DeleteReportDialog","isCloning","isShowingReport","ReportsTable","ReportMenu","isMailing","selectedMailingListId","emissionsTableItems","showChart","wasTruncatedTo","deliverReportToMailingList","loadReportUsage","costViews","CO2e","limitedSet","segregateByParts","loadReport","handleSeriesClicked","meta","metaId","usePredefinedView","selectedView","tagSelections","isAddingTag","tagSearch","deliverInEmail","isViewingSchedule","recipients","schedulingStartDate","schedulingEndDate","frequency","daysOfWeek","monthlyFrequencyValue","timeOfDay","timezone","dateRanges","customDates","isValidEmail","addEmail","emailRegex","timeRegex","digitRegex","upperCaseRegex","lowerCaseRegex","specialCharRegex","requiredIf","getter","requiredLength","num","maxLength","minLength","multipleOf","custom","equalTo","comparisonValue","containsDigit","containsLowercase","containsUppercase","containsSpecialCharacter","regex","asyncValidator","validator","myValue","setTimeout","running","method","validate","DateRangeSelect","TimezoneSelect","EmailsAutocomplete","reactive","isCreatingSchedule","searchEntities","selectedDaysOfWeek","views","availableTagsToInclude","fieldsToInclude","availableFieldsToInclude","allTags","schedule","effectiveTo","scheduledHour","scheduledDay","timezoneOffset","subject","messageBody","scheduleId","addTag","toRefs","ReportCard","PostReportButton","PutReportButton","lastMonthActual","forecastDeltaSpend","currentMonthForecast","budgetStatus","focusedCustomView","isDeletingCustomView","DeleteCustomViewButton","PutCustomViewButton","PutCustomViewDialog","DeleteCustomViewDialog","currentPage","pageCount","indexDictionary","isEditingCustomView","startEditCustomView","startDeleteCustomView","loadExtraDataForCurrentPage","newItemsPerPage","handleEditComplete","handleDeleteComplete","startIdx","endIdx","itemsOnCurrentPage","loadDetailedData","updatedItems","promises","extraDataArray","additionalData","itemIndex","last12Weeks","forecastDeltaPercentage","CustomViewsTable","CustomViewMenu","handleDialogClose","selectedTab","daysInMonth","creditsValue","loadCustomView","budget","DeleteBudgetButton","DeleteBudgetDialog","BudgetsTable","budgets","loadBudgets","recordAverage","pageTitle","totalProjectedAbove","totalActuallyAbove","isCreatingLimit","loadSpendLimits","Monthly","periods","Weekly","Quarterly","Yearly","periodStartDate","growthRatePercentage","SetBudgetCard","SetBudgetDialog","CreateBudgetButton","activatorBindings","searchEntity","submitFn","resetFn","closeFn","CreateBudgetDialog","SpendLimitsTable","SetSpendLimitSelectorDialog","projectedPercentage","currentPercentage","progressPercentage","budgetSeries","getColor","convertBudgetResultResponseToDatasets","budgetResult","budgetDataSet","maxBarThickness","actualDataSet","budgetedCost","actualCost","createBudgetHistoryChart","BudgetHistoryChart","budgetName","budgetId","loadBudget","variance","currentChat","ctrlKey","submitAndRefresh","chatMessage","showChatsDialog","chatCreated","selectChat","startNew","router","useRouter","checkExpiredChat","createdAtUtc","domProps","chatName","questionList","isUser","exec","questions","ask","question","replaceAll","AVATAR_SIZE","chat","ChatMessageContent","getCurrentInstance","md5","MD5","chats","sample","select","ChatConversation","ChatsDialog","GptCreate","getChats","disableChat","scrollDown","addChatMessage","goTo","configuredTypes","caType","e1","isCreatingAwsAccountLegacy","isCreatingAlibabaAccount","isCreatingOracleAccount","CreateAmazonWSCloudAccountDialog","UsersView","loadCloudAccountTypes","isCreatingAwsAccountNew","onClickAccountType","policies","loadPageData","policy","policyName","DeletePolicyButton","DeletePolicyDialog","PolicyMenu","criticalCount","warningCount","policiesActive","recentResultCount","policiesResp","summaryResp","severity","lastRun","lastRunRecordCount","totalCritical","totalPolicies","totalWarning","totalResultCount","customViewDescription","downloadPage","policyDescription1","policyDescription2","policyDescription3","policyLevel","deltaStrategyDesc","strategySummary","newSpendStrategyDesc","newAccountStrategyDesc","regionalSpendStrategyDesc","scheduleDescription","recentResults","policyResp","resultsResp","filterDescription","deltaSpendStrategy","newSpendStrategy","newAccountStrategy","regionalSpendStrategy","dimensionLabel","count","resultCount","ranAt","downloadUrl","recordCount","policyRunTime","emailsSent","rid","resultPages","emailNotifyList","allEmails","formValid","scheduleDayLabel","trySubmitForm","lookBackPeriodLabel","comparisonPeriod","editId","policyLevels","strategy","strategies","compareType","compareTypes","granularities","countComparisonPeriod","comparisonPeriodTypes","lineItemType","lineItemTypes","triggerMinDeltaPercent","triggerMinDeltaAmount","averageOverDays","triggerMinNewAmount","triggerMinUsageAmount","triggerMinRegionCount","scheduleFreqQty","scheduleDay","schedules","emailRecipients","mls","cvs","whs","wh","averageSpendStrategy","comparePeriod","comparePeriodQuantity","policyRequest","createdDate","updatedDate","frequencyQuantity","nextScheduled","loadPolicyDataForEdit","WidgetTypes","ChartTypes","isSaveNetworkLoading","startEditDashboard","startDeleteDashboard","isPuttingDashboard","isCreateFormValid","isDeletingDashboard","initGrid","v4","elements","patchGridFn","addGridElement","widget","isExisting","patchGridElement","removeGridElement","reshapeGridElements","w","useGridStore","currentDocKey","gridDoc","cachedPositionalUpdates","cachedSizingUpdates","load","initAndCommitCurrent","putGrid","initAndCommitGrid","G","addFeedElement","pos","trendConfig","recommendationConfig","savedReportsParams","updateGridName","updateFeedElement","reportConfig","nodeId","commitCachedValues","positional","gridStore","dashboards","newDashboardName","newDashboardDesc","focusedDashboard","loadViewState","handlePutDashboard","dash","handleDeleted","onDeleteWidget","focusedWidget","widgetName","widgetType","isPutting","hideActions","segregations","focusedSegregation","includeAnnotations","lastHash","isLoadingUsage","loadUsage","toTrends","onAnnotationSelection","optionsHash","hash","spendParams","chartLabels","anno","spikes","numDaysBetween","opt","loadTriggers","isSame","SpendUsageLineChart","CarbonLineChart","pieChartData","convertUsageToPieDataset","parsed","bodyColor","titleColor","emits","createUsagePieChart","SpendUsagePieChart","currentHash","textData","bodyText","embedData","cardTitle","fetchTrends","trendsConfig","categories","savings","ColumnChartGridWidget","LineChartGridWidget","TableGridWidget","PieChartGridWidget","TextualGridWidget","EmbedGridWidget","ComparisonChartGridWidget","RecommendationsGridWidget","gridId","GridLayout","VueGridLayout","GridItem","GridWidget","rect","handleMoved","newX","newY","handleResized","handleEditClicked","handleDeleteClicked","onEditWidget","chartType","widgetSubtitle","widgetBodyText","widgetUrl","trendRenderType","trendSegregateBy","selectedCloudProviders","selectedCategories","availableCostViews","costViewSelection","dateRangeOptions","selectedFilterId","FIXED_FILTER_ID","UNFILTERED_ID","columnChart","trendRenderTypes","availableChartTypes","lineChart","pieChart","note","embed","trends","availableDatasets","trendSegregations","supportedSearchTypes","availableCloudProviders","availableCategories","o","currentWidgetConfig","textConfig","embedConfig","urlTitle","toDateString","renderType","classifications","recommendationIds","Grid","WidgetGridFormDialog","addReportWidget","updateReportWidget","handleSave","hitSave","onEditReportWidget","startCreate","newRoute","oldRoute","authGuard","next","fullPath","$watch","Actions","ActionDialog","ActionDialogIndex","ActionDialogVersions","ActionDialogAccounts","ActionIndex","ActionDevelop","ActionVersions","ActionCloudAccounts","VueRouter","PATH_RESOURCES","names","choose","groups","customersUsageDashboard","customersManage","customerManage","createEditSharedData","tagoverview","regionoverview","billingdetails","powerBiReport","fxrates","resources","ApiManagement","createTenant","reports","selfServiceCreate","selfServicePlans","serviceDialogChildRoutes","Passthrough","ServiceDialogIndex","redirect","ServiceDialogUsage","ServiceDialogAnnotations","ServiceDialogRecordTags","ServiceDialogVirtualTags","ServiceDialogRawUsage","ServiceDialogCarbon","subscriptionDialogChildRoutes","SubscriptionDialogIndex","SubscriptionDialogUsage","SubscriptionDialogCarbon","SubscriptionDialogTrends","SubscriptionDialogAnnotations","SubscriptionDialogVirtualTags","cloudProviderDialogChildRoutes","CloudProviderDialogIndex","CloudProviderDialogUsage","cloudAccountDialogChildRoutes","CloudAccountDialog","CloudAccountDialogIndex","CloudAccountDialogUsage","CloudAccountDialogTrends","CloudAccountDialogCopies","CloudAccountDialogAnnotations","CloudAccountDialogVirtualTags","CloudAccountDialogCarbon","actionDialogChildRoutes","productDialogChildRoutes","ProductDialogIndex","ProductDialogUsage","ProductDialogCarbon","ProductDialogTrends","reservationDialogChildRoutes","ReservationDialogIndex","ReservationDialogUsage","customViewDialogChildRoutes","CustomViewDialogIndex","CustomViewDialogUsage","regionDialogChildRoutes","RegionDialogIndex","RegionDialogUsage","RegionDialogCarbon","geographyDialogChildRoutes","GeographyDialogIndex","GeographyDialogUsage","GeographyDialogCarbon","productCategoryDialogChildRoutes","ProductCategoryDialogIndex","ProductCategoryDialogUsage","tagDialogChildRoutes","TagDialogIndex","TagDialogUsage","TagDialogCarbon","TagDialogTrends","copyCloudAccountChildRoutes","CopyCloudAccountChooseTenant","step","CopyCloudAccountPricingRules","CopyCloudAccountTags","CopyCloudAccountFinish","standardEntityDialogSuffixes","ServiceDialog","SubscriptionDialog","CloudProviderDialog","ProductDialog","RegionDialog","GeographyDialog","TagDialog","ProductCategoryDialog","CustomViewDialog","ReservationDialog","mainViewChildren","CustomDashboardsIndex","CustomDashboardsDashboard","FinanceDashboard","CarbonOverview","CarbonExplorer","beforeEnter","userPreferences","lastTab","CarbonMap","TrendsDashboard","Budgets","BudgetDetails","WatchdogDashboard","WatchdogViewPolicy","WatchdogNewPolicy","WatchdogViewPolicyRun","KubernetesDashboard","ReservationsDashboard","CustomReports","CreateReport","EditReport","CloneReport","CustomReport","AzureEmissionsDashboard","CustomersUsageView","CustomersManageView","CustomerManageView","CopyCloudAccountIndex","RecommendationsView","TagDashboardView","RegionOverviewView","GettingStarted","GptChats","hideMain","CustomViews","CustomView","CustomViewOverview","Settings","Google","Oracle","Alibaba","Snowflake","Custom","Groups","BillingDetails","ApiManagementView","General","FxRates","TagMappings","MailingLists","Webhooks","Dimensions","Audit","ResourceExplorerIndex","NotFound","allowNoTenant","base","process","routes","allowAnonymous","ChooseView","SelfServiceTenantCreate","AWSMarketplace","SelfServicePlans","MainView","uuidValidate","uuid","beforeEach","matched","nextCorrelationId","appInsights","appInsightsKey","APP_INSIGHTS_KEY","appInsightsConfig","instrumentationKey","disableFetchTracking","enableCorsCorrelation","enableAutoRouteTracking","correlationHeaderExcludedDomains","telemetryInitializer","envelope","cloudCtrlCorrelationId","ApplicationInsights","loadAppInsights","addTelemetryInitializer","register","ready","registered","cached","updatefound","updated","offline","redirectUrl","Vuelidate","VueWait","VueFragment","ValidationModule","VuePageTitle","APP_NAME","VueTruncate","PiniaVuePlugin","pinia","createPinia","piniaPluginPersistedState","vuetify","App","$mount","START_EVENT","STOP_EVENT","evaluate","eval","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","call","amdO","deferred","O","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","every","__esModule","defineProperty","enumerable","chunkId","miniCssF","globalThis","prop","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","getElementsByTagName","getAttribute","charset","nc","src","onScriptComplete","prev","clearTimeout","doneFns","parentNode","head","Symbol","toStringTag","installedChunks","installedChunkData","promise","loadingEnded","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}