{"version":3,"file":"ouivalo-form-lib.mjs","sources":["../../../../projects/ouivalo/form-lib/src/poo/pontLogique.ts","../../../../projects/ouivalo/form-lib/src/poo/formulaire.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/ABSTRACT_Bloc.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/BLOC_TYPE.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/blocInput.ts","../../../../projects/ouivalo/form-lib/src/poo/service/ABSTRACT_Service.ts","../../../../projects/ouivalo/form-lib/src/poo/service/Type_Service/query.ts","../../../../projects/ouivalo/form-lib/src/poo/service/Type_Service/condition.ts","../../../../projects/ouivalo/form-lib/src/service/QueryService.ts","../../../../projects/ouivalo/form-lib/src/service/ConditionService.ts","../../../../projects/ouivalo/form-lib/src/poo/service/ManagerService.ts","../../../../projects/ouivalo/form-lib/src/poo/element/ABSTRACT_Element.ts","../../../../projects/ouivalo/form-lib/src/poo/element/ELEMENT_TYPE.ts","../../../../projects/ouivalo/form-lib/src/poo/element/Type_Element/Text.ts","../../../../projects/ouivalo/form-lib/src/poo/element/Type_Element/Image.ts","../../../../projects/ouivalo/form-lib/src/poo/element/Type_Element/Vide.ts","../../../../projects/ouivalo/form-lib/src/poo/element/Type_Element/Lien.ts","../../../../projects/ouivalo/form-lib/src/poo/element/Type_Element/Bouton.ts","../../../../projects/ouivalo/form-lib/src/poo/element/MANAGER_Element.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/BoutonBack.ts","../../../../projects/ouivalo/form-lib/src/poo/modale.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/BoutonEnd.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/BoutonNext.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/sommaire.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/MANAGER_Bloc.ts","../../../../projects/ouivalo/form-lib/src/poo/bloc/Type_Bloc/Container.ts","../../../../projects/ouivalo/form-lib/src/poo/ancre.ts","../../../../projects/ouivalo/form-lib/src/store/store.ts","../../../../projects/ouivalo/form-lib/src/poo/input/INPUT_TYPE.ts","../../../../projects/ouivalo/form-lib/src/lib/element/image/image.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/image/image.component.html","../../../../projects/ouivalo/form-lib/src/lib/element/text/text.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/text/text.component.html","../../../../projects/ouivalo/form-lib/src/lib/element/liens/liens.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/liens/liens.component.html","../../../../projects/ouivalo/form-lib/src/lib/element/bouton/bouton.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/bouton/bouton.component.html","../../../../projects/ouivalo/form-lib/src/lib/element/vide/vide.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/vide/vide.component.html","../../../../projects/ouivalo/form-lib/src/lib/element/element.component.ts","../../../../projects/ouivalo/form-lib/src/lib/element/element.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/check-box/check-box.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/check-box/check-box.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/email/email.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/email/email.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/nombre/nombre.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/nombre/nombre.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/radio/radio.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/radio/radio.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/telephone/telephone.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/telephone/telephone.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/text-court/text-court.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/text-court/text-court.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/text-long/text-long.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/text-long/text-long.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/link/link.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/link/link.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/radio-object/radio-object.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/radio-object/radio-object.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/select/select.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/select/select.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/files/list-files/list-files.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/files/list-files/list-files.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/files/add-files/add-files.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/files/add-files/add-files.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/files/files.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/files/files.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/html/html.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/html/html.component.html","../../../../projects/ouivalo/form-lib/src/poo/page/ABSTRACT_Page.ts","../../../../projects/ouivalo/form-lib/src/poo/page/PAGE_TYPE.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Annexe.ts","../../../../projects/ouivalo/form-lib/src/lib/input/annexe/annexe.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/annexe/annexe.component.html","../../../../projects/ouivalo/form-lib/src/lib/input/input.component.ts","../../../../projects/ouivalo/form-lib/src/lib/input/input.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/bloc-input/bloc-input.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/bloc-input/bloc-input.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/sommaire/sommaire.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/sommaire/sommaire.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-back/bouton-back.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-back/bouton-back.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-next/bouton-next.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-next/bouton-next.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-end/bouton-end.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/bouton-end/bouton-end.component.html","../../../../projects/ouivalo/form-lib/src/lib/bloc/bloc.component.ts","../../../../projects/ouivalo/form-lib/src/lib/bloc/bloc.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/flux/flux.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/flux/flux.component.html","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Paiement/PAIEMENT_TYPE.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Paiement/ABSTRACT_Paiement.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Paiement/Type_Paiement/carte.ts","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/carte/carte.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/carte/carte.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/autre/autre.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/autre/autre.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/paiement.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/paiement/paiement.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/grille/grille.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/grille/grille.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/fin/fin.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/fin/fin.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/map/map.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/map/map.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/annexe/annexe.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/annexe/annexe.component.html","../../../../projects/ouivalo/form-lib/src/lib/page/page.component.ts","../../../../projects/ouivalo/form-lib/src/lib/page/page.component.html","../../../../projects/ouivalo/form-lib/src/lib/modal/modal.component.ts","../../../../projects/ouivalo/form-lib/src/lib/modal/modal.component.html","../../../../projects/ouivalo/form-lib/src/lib/formulaire.component.ts","../../../../projects/ouivalo/form-lib/src/lib/formulaire.component.html","../../../../projects/ouivalo/form-lib/src/form-lib.module.ts","../../../../projects/ouivalo/form-lib/src/poo/input/ABSTRACT_Input.ts","../../../../projects/ouivalo/form-lib/src/poo/error/InputValidation_Error.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/CheckBox.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/ABSTRACT_Text.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/TextCourt.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Email.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Nombre.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Radio.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Telephone.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/TextLong.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Link.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/RadioObject.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Hidden.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Select.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Files.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/html.ts","../../../../projects/ouivalo/form-lib/src/poo/input/Type_Input/Annexe.ts","../../../../projects/ouivalo/form-lib/src/poo/input/MANAGER_Input.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Flux.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Grille.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Fin.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Map.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Paiement/Type_Paiement/autre.ts","../../../../projects/ouivalo/form-lib/src/poo/page/Type_Page/Paiement/MANAGER_Paiement.ts","../../../../projects/ouivalo/form-lib/src/poo/page/MANAGER_Page.ts","../../../../projects/ouivalo/form-lib/src/service/FormulaireService.ts","../../../../projects/ouivalo/form-lib/src/public-api.ts","../../../../projects/ouivalo/form-lib/src/ouivalo-form-lib.ts"],"sourcesContent":["export class PontLogique{\r\n\r\n    prio : number;\r\n    idPage_depart : number;\r\n    idPage_arrivee : number;\r\n    conditions : {idInput : number, value : any }[] ;\r\n    // >, <, != pas implémenter \r\n\r\n    /* exemple :\r\n            condition = [{2,true},{12,\"sceau\"}]\r\n            \r\n            La fonction qui vérifira la condition retournera\r\n                Vrai si la valeur de l'input 2 = true, ET si la valeur de l'input 12 = \"sceau\"\r\n                Sinon faux \r\n\r\n            => permet au formulaire d'appeler la vérification de chaque condition de pont logique ou\r\n                    page_depart == page_encours\r\n\r\n            => opréateur OU gérer par si un pontLogique parmis ceux existant est validé \r\n        exemple 2 : si condition = [] => pont logique tout le temps valide \r\n    */\r\n\r\n    constructor(idPage_depart : number,idPage_arrivee : number,prio? : number, conditions? : { idInput : number, value : any }[] ){\r\n        this.idPage_arrivee = idPage_arrivee;\r\n        this.idPage_depart = idPage_depart;\r\n        this.conditions = conditions || [] ;\r\n        this.prio = prio || 0;\r\n    }\r\n\r\n    add_Condition(condition : {idInput : number, value : any }){ this.conditions.push(condition) ;}\r\n    delete_Condition(){} //TODO \r\n}","import { Input } from \"./input/ABSTRACT_Input\";\r\nimport { PontLogique } from \"./pontLogique\" ; \r\nimport { Page } from \"./page/ABSTRACT_Page\" ;\r\nimport { Container } from \"./bloc/Type_Bloc/Container\";\r\n\r\nexport enum NAVIGATION_MODE {\r\n    STRICT = 'strict',\r\n    LIBRE = 'libre'\r\n}\r\n\r\nexport class Formulaire{\r\n\r\n    nom : string ;\r\n    pages : Page[] ;\r\n    firstPage : number;\r\n    navigationMode : NAVIGATION_MODE;\r\n    structure : PontLogique[]\r\n    inputs : Input[]; \r\n    extraBloc? : Container\r\n\r\n    constructor(nom :string){\r\n        this.nom=nom;\r\n        this.pages=[];\r\n        this.structure = [];\r\n        this.inputs=[];\r\n        \r\n        this.firstPage = -1;\r\n        this.navigationMode = NAVIGATION_MODE.STRICT ;\r\n\r\n        this.extraBloc = undefined; \r\n    }\r\n\r\n    //------------Page-------------------\r\n    add_Page(page : Page){\r\n        page.setId(this.pages.length) ;\r\n        this.pages.push(page);\r\n    }\r\n\r\n    add_linkPage(pl : PontLogique){\r\n        this.structure.push(pl);\r\n    }\r\n\r\n    //Suprime et conserve les liaisons de la page supprimer\r\n    suppr_page(idPage: number){\r\n        let destination : PontLogique[] = []\r\n        //récupère les pont logique qui partait de la page supprimer et les supprimes\r\n        this.structure = this.structure.filter((pl:PontLogique)=>{\r\n            if(pl.idPage_depart == idPage) {\r\n                destination.push(pl)\r\n                return false\r\n            }\r\n            else return true\r\n        })\r\n        //Pour chaque page qui menait sur la page supprimer, ajoute un pont logique par destination possible de la page supprimer \r\n        let newPl : PontLogique[] = []\r\n        this.structure = this.structure.filter((pl:PontLogique)=>{\r\n            if(pl.idPage_arrivee == idPage) {\r\n                for(let plSave of destination){ \r\n                    newPl.push(new PontLogique(pl.idPage_depart,plSave.idPage_arrivee,plSave.prio,plSave.conditions))\r\n                }\r\n                return false\r\n            } \r\n            else return true\r\n        })\r\n\r\n        for(let pl of newPl) this.add_linkPage(pl);\r\n\r\n        //Supprime la page \r\n        this.pages = this.pages.filter((page:Page)=> page.getId() != idPage )\r\n    }\r\n\r\n    updatePage(page : Page){\r\n        for(let i=0; i<this.pages.length; i++)\r\n            if(this.pages[i].getId() == page.getId()) this.pages[i] = page \r\n    }\r\n\r\n    //------------Input-------------------\r\n    add_Input(input : Input){\r\n        input.setId(this.inputs.length) ;\r\n        this.inputs.push(input);\r\n    }\r\n}","import {Marker} from '../marker'\r\nimport { BLOC_TYPE } from './BLOC_TYPE';\r\n\r\nexport abstract class Bloc implements Marker {\r\n    abstract BLOC_TYPE : BLOC_TYPE;\r\n    marker? : string;\r\n    classTab : string[];\r\n    \r\n    constructor(classTab? : string[],marker? : string, ){\r\n        this.marker = marker\r\n        this.classTab = classTab || []\r\n    }\r\n\r\n    add_Class(str : string){ this.classTab.push(str);}\r\n\r\n    deepRebuild(){}\r\n}","export enum BLOC_TYPE {\r\n    CONTAINER = \"container\",\r\n    INPUT = \"input\",\r\n    ELEMENT = \"element\",\r\n    SOMMAIRE = 'sommaire',\r\n    BOUTON_END = 'boutonEnd',\r\n    BOUTON_NEXT = 'boutonNext',\r\n    BOUTON_BACK = 'boutonBack'\r\n}","import { Bloc } from \"../ABSTRACT_Bloc\";\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\";\r\n\r\nexport class BlocInput extends Bloc{\r\n\r\n    BLOC_TYPE = BLOC_TYPE.INPUT;\r\n\r\n    idInput : number\r\n\r\n    constructor(idInput : number,classTab? : string[], marker ? :string){\r\n        super(classTab,marker);\r\n        this.idInput = idInput ;\r\n    }\r\n}","export interface Service {\r\n    SERVICE_TYPE : SERVICE_TYPE\r\n\r\n    deepRebuild():void\r\n}\r\n\r\nexport enum SERVICE_TYPE {\r\n    QUERY = 'query',\r\n    CONDITION = 'condition'\r\n}","import { Service, SERVICE_TYPE } from \"../ABSTRACT_Service\";\r\n\r\nexport enum QUERY_MODE {\r\n    REF_DATA = 'refData',\r\n    REF_INPUT = 'refInput'\r\n}\r\n\r\nexport class Query implements Service{\r\n\r\n    SERVICE_TYPE = SERVICE_TYPE.QUERY\r\n\r\n    mode : QUERY_MODE\r\n    info : any\r\n\r\n    constructor(mode : QUERY_MODE,info : any,){\r\n        this.mode = mode ;\r\n        this.info = info ;\r\n    }\r\n\r\n    deepRebuild(): void { }\r\n}","import { Query } from \"./query\"\r\nimport { Service, SERVICE_TYPE } from \"../ABSTRACT_Service\"\r\n\r\nexport class Condition implements Service{\r\n\r\n    SERVICE_TYPE = SERVICE_TYPE.CONDITION\r\n  \r\n    tabCase : {valueTest : any[] , retour : any }[] //Cas qui doivent etre contenu parmis les choix \r\n    defaut : any \r\n    choix : Query //Tableau contenant les choix \r\n\r\n    constructor(choix : Query, defaut : any, tabCase? : {valueTest : any[] , retour : any }[] ){\r\n        this.tabCase = tabCase || []\r\n        this.defaut = defaut\r\n        this.choix = choix\r\n    }\r\n\r\n    deepRebuild(): void {\r\n        this.choix = Object.setPrototypeOf(this.choix,Query)\r\n    }\r\n}","import { Query, QUERY_MODE } from \"../poo/service/Type_Service/query\";\r\nimport { Store } from '@ngxs/store';\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class QueryService{\r\n\r\n    constructor(private store: Store){}\r\n\r\n    getValue(q : Query, data?:any){\r\n        let value;\r\n        switch(q.mode){\r\n            case QUERY_MODE.REF_DATA : \r\n                //premier element de info[] est le nom du data set\r\n                if(data) value = data[q.info[0]]\r\n                else  value = this.store.selectSnapshot(state => state.app.data[q.info[0]])\r\n                    \r\n                for(let i=1; i<q.info.length; i++) value = value[q.info[i]]\r\n                break;\r\n                \r\n            case QUERY_MODE.REF_INPUT :\r\n                //premier element de info[] est l'id de l'input\r\n                value = this.store.selectSnapshot(state => state.app.formConfig.inputs[q.info[0]].reponse)\r\n\r\n                for(let i=1; i<q.info.length; i++) value = value[q.info[i]]\r\n                \r\n                break;\r\n            default : throw new Error('invalide query mode')\r\n        }\r\n        return value;\r\n    }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { Condition } from \"../poo/service/Type_Service/condition\";\r\nimport { QueryService } from \"./QueryService\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class ConditionService{\r\n\r\n    constructor(private queryService :QueryService){}\r\n\r\n    getValue(cond : Condition, data? : any){\r\n        let choix = this.queryService.getValue(cond.choix, data)\r\n        let result = cond.defaut\r\n        for(let cas of cond.tabCase )\r\n            //Le case est bon si chaque valeur apartient a choix\r\n            if(cas.valueTest.every((value:any)=> choix.indexOf(value)!=-1 )) result = cas.retour \r\n        \r\n        return result\r\n    }\r\n\r\n } ","import { Injectable } from \"@angular/core\";\r\nimport { QueryService } from \"../../service/QueryService\";\r\nimport { ConditionService } from \"../../service/ConditionService\";\r\nimport { Condition } from './Type_Service/condition'\r\nimport { Query } from './Type_Service/query'\r\nimport { Service, SERVICE_TYPE } from \"./ABSTRACT_Service\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class ManagerService {\r\n\r\n    constructor(private queryService :QueryService, public conditionService : ConditionService){}\r\n\r\n    getValue(obj : Service | any, data? :any ){\r\n        if(obj instanceof Query)\r\n          {return this.queryService.getValue(obj, data);}\r\n        if(obj instanceof Condition)\r\n          {return this.conditionService.getValue(obj, data);}\r\n    \r\n        return obj\r\n      }\r\n\r\n    static rebuild(serv:any) : Service | any { \r\n      \r\n      if(serv && serv.SERVICE_TYPE){\r\n        let prototype ;\r\n        switch(serv.SERVICE_TYPE){\r\n            case SERVICE_TYPE.CONDITION : {\r\n                prototype = Condition.prototype; break ;\r\n            }\r\n            case SERVICE_TYPE.QUERY : {\r\n                prototype = Query.prototype; break ;\r\n            }\r\n            default : { throw new Error(\"type de service inconnue\") ; }\r\n        }  \r\n\r\n        let rebuildSerivce = Object.setPrototypeOf(serv, prototype);\r\n        rebuildSerivce.deepRebuild(); \r\n        return rebuildSerivce ;\r\n      }\r\n      return serv   \r\n  } \r\n} ","import { Bloc } from \"../bloc/ABSTRACT_Bloc\";\r\nimport { ELEMENT_TYPE } from \"./ELEMENT_TYPE\";\r\nimport { BLOC_TYPE } from \"../bloc/BLOC_TYPE\";\r\nimport { Service } from \"../service/ABSTRACT_Service\";\r\nimport {ManagerService} from '../service/ManagerService'\r\n\r\n//Plus besoin d'element ? tout passer dans bloc ?\r\nexport abstract class Element extends Bloc {\r\n    abstract ELEMENT_TYPE : ELEMENT_TYPE;\r\n    BLOC_TYPE = BLOC_TYPE.ELEMENT; \r\n    contenu : Service | any = '' \r\n\r\n    override deepRebuild(){\r\n        super.deepRebuild();\r\n        this.contenu = ManagerService.rebuild(this.contenu)\r\n    }\r\n}\r\n\r\n","export enum ELEMENT_TYPE {\r\n    TEXT = \"text\",\r\n    IMAGE = \"image\",\r\n    VIDE = 'vide',\r\n    LIEN = 'lien',\r\n    BOUTON = \"bouton\"\r\n}","import { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { Element } from \"../ABSTRACT_Element\";\r\nimport { ELEMENT_TYPE } from \"../ELEMENT_TYPE\";\r\n\r\nexport class Text extends Element{\r\n\r\n    ELEMENT_TYPE = ELEMENT_TYPE.TEXT;\r\n\r\n    constructor(text? : Service| string,classTab? : string[]){\r\n        super(classTab);\r\n        if(text) this.contenu = text ;\r\n    }\r\n}","import { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\nimport { Element } from \"../ABSTRACT_Element\";\r\nimport { ELEMENT_TYPE } from \"../ELEMENT_TYPE\";\r\n\r\nexport class Image extends Element{\r\n\r\n    ELEMENT_TYPE = ELEMENT_TYPE.IMAGE;\r\n\r\n    alt : Service | any\r\n    \r\n    constructor(src? : Service| string, alt?:Service| string,classTab? : string[]){\r\n        super(classTab);\r\n        if(src) this.contenu = src;\r\n        this.alt = alt || '';\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.alt = ManagerService.rebuild(this.alt)\r\n    }\r\n}","import { Element } from \"../ABSTRACT_Element\";\r\nimport { ELEMENT_TYPE } from \"../ELEMENT_TYPE\";\r\n\r\nexport class Vide extends Element{\r\n    ELEMENT_TYPE = ELEMENT_TYPE.VIDE;\r\n}","import { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { Element } from \"../ABSTRACT_Element\";\r\nimport { ELEMENT_TYPE } from \"../ELEMENT_TYPE\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\n\r\nexport class Lien extends Element{\r\n\r\n    ELEMENT_TYPE = ELEMENT_TYPE.LIEN;\r\n\r\n    href : Service | string\r\n    newpage : boolean\r\n    \r\n    constructor(text? : Service| string, href?:Service| string, classTab? : string[],newpage?:boolean){\r\n        super(classTab);\r\n        if (text) this.contenu = text;\r\n        this.href = href || '#' ;\r\n        this.newpage = newpage || true; \r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.href =  ManagerService.rebuild(this.href)\r\n    }\r\n}","import { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\nimport { Element } from \"../ABSTRACT_Element\";\r\nimport { ELEMENT_TYPE } from \"../ELEMENT_TYPE\";\r\n\r\nexport class Bouton extends Element{\r\n\r\n    ELEMENT_TYPE = ELEMENT_TYPE.BOUTON;\r\n\r\n    href : Service | string\r\n    \r\n    constructor(classTab? : string[],text? : Service| string, href?:Service| string){\r\n        super(classTab);\r\n        if(text) this.contenu = text\r\n        this.href = href || '#'\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.href = ManagerService.rebuild(this.href)\r\n    }\r\n}","import {Text} from \"./Type_Element/Text\"\r\nimport {Image} from \"./Type_Element/Image\"\r\nimport {Vide} from \"./Type_Element/Vide\"\r\nimport {Lien} from \"./Type_Element/Lien\"\r\nimport {Bouton} from \"./Type_Element/Bouton\"\r\nimport {Element} from \"./ABSTRACT_Element\"\r\n\r\nimport { ELEMENT_TYPE } from \"./ELEMENT_TYPE\";\r\n\r\nexport class Element_Manager {\r\n\r\n    static rebuild(element:any) : Element {\r\n        let rebuildElement : Element = Object.setPrototypeOf(element,Element.prototype)\r\n        let prototype ;\r\n        switch(element['ELEMENT_TYPE']){\r\n            case ELEMENT_TYPE.TEXT : {\r\n                prototype = Text.prototype ; break \r\n            }\r\n            case ELEMENT_TYPE.IMAGE : {\r\n                prototype = Image.prototype ; break \r\n            }\r\n            case ELEMENT_TYPE.VIDE : {\r\n                prototype = Vide.prototype ; break \r\n            }\r\n            case ELEMENT_TYPE.LIEN : {\r\n                prototype = Lien.prototype ; break \r\n            }\r\n            case ELEMENT_TYPE.BOUTON : {\r\n                prototype = Bouton.prototype ; break \r\n            }\r\n            default : { throw new Error(\"type d'element inconnue\") ; }\r\n        }  \r\n        rebuildElement = Object.setPrototypeOf(rebuildElement, prototype);\r\n        rebuildElement.deepRebuild(); \r\n        return rebuildElement ;\r\n    }\r\n}","import { Bloc } from \"../ABSTRACT_Bloc\";\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\";\r\nimport { Text } from \"../../element/Type_Element/Text\"\r\nimport { Image } from \"../../element/Type_Element/Image\"\r\nimport { Element_Manager } from \"../../element/MANAGER_Element\";\r\n\r\nexport class BoutonBack extends Bloc{\r\n\r\n    BLOC_TYPE = BLOC_TYPE.BOUTON_BACK;\r\n\r\n    html : Text | Image\r\n\r\n    constructor(html : Text | Image,classTab? : string[]){\r\n        super(classTab);\r\n        this.html = html ;\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.html = Element_Manager.rebuild(this.html)\r\n    }\r\n}","import { Vide } from \"./element/Type_Element/Vide\";\r\nimport { Element } from \"./element/ABSTRACT_Element\";\r\nimport { Element_Manager } from \"./element/MANAGER_Element\";\r\n\r\nexport class Modale{ \r\n\r\n    body : Element;\r\n    end : string;\r\n    continue : string;\r\n\r\n    constructor(){\r\n        this.body = new Vide() ; \r\n        this.end=\"Je pars\"\r\n        this.continue=\"Je continue\"\r\n    }\r\n\r\n    deepRebuild(){\r\n        this.body = Element_Manager.rebuild(this.body);\r\n    }\r\n}","import { Bloc } from \"../ABSTRACT_Bloc\";\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\";\r\nimport { Text } from \"../../element/Type_Element/Text\"\r\nimport { Image } from \"../../element/Type_Element/Image\"\r\nimport { Element_Manager } from \"../../element/MANAGER_Element\";\r\nimport { Modale } from \"../../modale\";\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\n\r\nexport class BoutonEnd extends Bloc{\r\n\r\n    BLOC_TYPE = BLOC_TYPE.BOUTON_END;\r\n\r\n    html : Text | Image\r\n    isLink : boolean;\r\n    isPermanant : boolean\r\n    urlRedirect : Service | string ;\r\n    modale : Modale ;\r\n\r\n    constructor(html : Text | Image,urlRedirect: Service | string, isLink? :boolean , classTab? : string[]){\r\n        super(classTab);\r\n        this.modale = new Modale()\r\n        this.urlRedirect = urlRedirect\r\n        this.html = html ;\r\n        this.isLink = isLink || false ;\r\n        this.isPermanant = false \r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.html = Element_Manager.rebuild(this.html)\r\n        this.modale = Object.setPrototypeOf(this.modale, Modale)\r\n        this.urlRedirect = ManagerService.rebuild(this.urlRedirect)\r\n    }\r\n}","import { Bloc } from \"../ABSTRACT_Bloc\";\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\";\r\nimport { Text } from \"../../element/Type_Element/Text\"\r\nimport { Image } from \"../../element/Type_Element/Image\"\r\nimport { Element_Manager } from \"../../element/MANAGER_Element\";\r\n\r\nexport class BoutonNext extends Bloc{\r\n\r\n    BLOC_TYPE = BLOC_TYPE.BOUTON_NEXT;\r\n\r\n    html : Text | Image\r\n\r\n    constructor(html : Text | Image,classTab? : string[]){\r\n        super(classTab);\r\n        this.html = html ;\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.html = Element_Manager.rebuild(this.html)\r\n    }\r\n}","import { Bloc } from \"../ABSTRACT_Bloc\"\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\"\r\n\r\nimport { Ancre } from \"../../ancre\";\r\n\r\nexport class Sommaire extends Bloc {\r\n\r\n    BLOC_TYPE = BLOC_TYPE.SOMMAIRE ;\r\n\r\n    structure : Ancre[]\r\n\r\n    constructor(classTab? : string[], marker? : string){\r\n        super(classTab,marker)\r\n        this.structure =  []\r\n    }\r\n\r\n    add_Ancre(ancre :Ancre){\r\n        this.structure.push(ancre)\r\n    }\r\n    updateAncre(lastMarker:string,newMarker?:string,htmlText?:string,classTab?:string[],tag?:string){\r\n        this.structure.forEach((ancre : Ancre) => {\r\n            if(ancre.marker == lastMarker) {\r\n                ancre.marker = newMarker!=undefined?newMarker:ancre.marker\r\n                ancre.htmlText = htmlText!=undefined?htmlText:ancre.htmlText\r\n                ancre.classTab = classTab!=undefined?classTab:ancre.classTab\r\n                ancre.tag = tag!=undefined?tag:ancre.tag\r\n            }\r\n        })\r\n    }\r\n    suppr_Ancre(marker:string){\r\n        this.structure = this.structure.filter((ancre:Ancre) => marker != ancre.marker)\r\n    }\r\n}","import { Bloc } from \"./ABSTRACT_Bloc\";\r\nimport { BlocInput } from \"./Type_Bloc/blocInput\";\r\nimport {Container} from \"./Type_Bloc/Container\"\r\nimport { Element_Manager } from \"../element/MANAGER_Element\";\r\nimport { BoutonBack } from \"./Type_Bloc/BoutonBack\";\r\nimport { BoutonEnd } from \"./Type_Bloc/BoutonEnd\";\r\nimport { BoutonNext } from \"./Type_Bloc/BoutonNext\";\r\n\r\nimport { BLOC_TYPE } from \"./BLOC_TYPE\";\r\nimport { Sommaire } from \"./Type_Bloc/sommaire\";\r\n\r\nexport class Bloc_Manager { \r\n\r\n    static rebuild(bloc:any) : Bloc { \r\n\r\n        let rebuildBloc : Bloc = Object.setPrototypeOf(bloc,Bloc.prototype);\r\n        let prototype ;\r\n        \r\n        switch(bloc['BLOC_TYPE']){\r\n            case BLOC_TYPE.CONTAINER : {\r\n                prototype = Container.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.INPUT : {\r\n                prototype = BlocInput.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.SOMMAIRE : {\r\n                prototype = Sommaire.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.BOUTON_BACK : {\r\n                prototype = BoutonBack.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.BOUTON_END : {\r\n                prototype = BoutonEnd.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.BOUTON_NEXT : {\r\n                prototype = BoutonNext.prototype; break ;\r\n            }\r\n            case BLOC_TYPE.ELEMENT : {\r\n                return Element_Manager.rebuild(bloc) ;\r\n            }\r\n            default : { throw new Error(\"type de bloc inconnue\") ; }\r\n        }  \r\n\r\n        rebuildBloc = Object.setPrototypeOf(rebuildBloc, prototype);\r\n        rebuildBloc.deepRebuild(); \r\n        return rebuildBloc ;\r\n    } \r\n} ","import { Bloc } from \"../ABSTRACT_Bloc\";\r\nimport { Bloc_Manager } from \"../MANAGER_Bloc\";\r\nimport { BLOC_TYPE } from \"../BLOC_TYPE\";\r\n\r\nexport class Container extends Bloc{\r\n\r\n    contenu : Bloc[]\r\n    BLOC_TYPE = BLOC_TYPE.CONTAINER;\r\n\r\n    alignement : boolean\r\n    //true => ligne, false => colone \r\n\r\n    constructor(classTab? : string[],alignement? : boolean, marker? : string){\r\n        super(classTab,marker);\r\n        this.contenu = [] ;\r\n        this.alignement = alignement || false ;\r\n    }\r\n\r\n    add_contenu(bloc : Bloc){ this.contenu.push(bloc) }\r\n\r\n    override deepRebuild(){\r\n        super.deepRebuild();\r\n        for(let bloc of this.contenu){\r\n            bloc = Bloc_Manager.rebuild(bloc);\r\n        }\r\n    }\r\n}","import { Marker } from \"./marker\"\r\n\r\nexport class Ancre {\r\n    marker : string\r\n    htmlText : string\r\n    tag:string\r\n    classTab : string[]\r\n\r\n    constructor(obj : Marker, htmlText :string, tag? :string, classTab? : string[]){\r\n\r\n        this.marker = obj.marker?obj.marker:'Ancre'\r\n        this.tag = tag || '' \r\n        this.classTab = classTab || [] \r\n        this.htmlText = htmlText \r\n    }\r\n}","import { Formulaire, NAVIGATION_MODE } from \"../poo/formulaire\";\r\nimport { Injectable } from '@angular/core';\r\nimport { State,Action,StateContext } from '@ngxs/store';\r\nimport { patch } from '@ngxs/store/operators';\r\n\r\nimport {BlocInput} from \"../poo/bloc/Type_Bloc/blocInput\"\r\nimport {Container} from \"../poo/bloc/Type_Bloc/Container\"\r\nimport { Bloc } from \"../poo/bloc/ABSTRACT_Bloc\";\r\nimport { Page } from \"../poo/page/ABSTRACT_Page\";\r\nimport { PontLogique } from \"../poo/pontLogique\";\r\nimport { Sommaire } from \"../poo/bloc/Type_Bloc/sommaire\";\r\nimport { Ancre } from \"../poo/ancre\";\r\n\r\n//Initialise les donéees \r\n// LES types DOIVENT etres différents, sinon toute les actions son appelées\r\nexport class InitApp {\r\n    static readonly type = '[App] Initialise le store';\r\n    constructor(public form: Formulaire, public data: any){}\r\n}\r\n\r\nexport class SetData {\r\n    static readonly type = '[App] Ajoute un nouveau dataSet';\r\n    constructor(public dataSet: string, public value: any){}\r\n}\r\n\r\nexport class AddData {\r\n    static readonly type = '[App] Ajoute des données a un dataSet';\r\n    constructor(public dataSet: string, public value: any){}\r\n}\r\n\r\n//Gestion des réponses\r\nexport class AddReponse {\r\n    static readonly type = '[App] Ajoute une réponse';\r\n    constructor(public reponse: {nom : string, value : any}){}\r\n}\r\n\r\nexport class SubmitReponse {\r\n    static readonly type = \"[App] Demande l'envoie des reponse\";\r\n    constructor(public bool : boolean){}\r\n}\r\n\r\nexport class ReponseEnvoyee {\r\n    static readonly type = \"[App] Reset les réponses une fois envoyé\";\r\n    constructor(){}\r\n}\r\n\r\nexport class DocumentEnvoyee {\r\n    static readonly type = \"[App] Reset les uploads une fois envoyé\";\r\n    constructor(){}\r\n}\r\n\r\n//Gestion des messages\r\nexport class AddMessage {\r\n    static readonly type = \"[App] Ajoute un message a envoyer a l'utilisateur\";\r\n    constructor(public message: {class : string[], text : string}){}\r\n}\r\n\r\nexport class ResetMessage {\r\n    static readonly type = \"[App] Reset les messages une fois afficher\";\r\n    constructor(){}\r\n}\r\n\r\n//Gestion de la navigation \r\nexport class PageSuivante {\r\n    static readonly type = \"[App] Va a la page suivante, selon la structure du formulaire\";\r\n    constructor(){}\r\n}\r\n\r\nexport class PagePrecedente {\r\n    static readonly type = \"[App] Va a la page précécente, selon la structure du formulaire\";\r\n    constructor(){}\r\n}\r\n\r\nexport class JumpToPage {\r\n    static readonly type = \"[App] Va a la page désigné \";\r\n    constructor(public idPage: number){}\r\n}\r\n\r\n//Gestion des ancre\r\nexport class SetAncre {\r\n    static readonly type = \"[App] change l'ancre de la page\";\r\n    constructor(public ancre : string){}\r\n}\r\nexport class UpdateAncre {\r\n    static readonly type = \"[App] modifie une ancre\";\r\n    constructor(public page : Page, public previousName : string ){}\r\n}\r\n\r\n\r\n//Uploads \r\nexport class AddFiles {\r\n    static readonly type = \"[App] ajoute des fichiers a uploads par l'application appelant la librairie\";\r\n    constructor(public files : any[] ){}\r\n}\r\nexport class SetUploadsURL {\r\n    static readonly type = \"[App] enregistre les urls des fichier uploads\";\r\n    constructor(public uploadsUrl : string[] ){}\r\n}\r\n\r\n\r\n//Modale \r\nexport class SetModaleActive {\r\n    static readonly type = \"[App] modifie les informations de la modale \";\r\n    constructor(public etat : boolean, public contenu? : boolean , public urlRedirect? : boolean){}\r\n}\r\n\r\n//Page\r\nexport class AddPage {\r\n    static readonly type = \"[App] ajoute une page au formulaire\";\r\n    constructor(public page : Page, public tag : string, public classTab : string[]){}\r\n}\r\nexport class UpdatePage {\r\n    static readonly type = \"[App] modifie une page du formulaire\";\r\n    constructor(public page : Page ){}\r\n}\r\nexport class SupprPage {\r\n    static readonly type = \"[App] supprime une page au formulaire\";\r\n    constructor(public page : Page ){}\r\n}\r\nexport class CloseToken_ModifForm {\r\n    static readonly type = \"[App] ferme le token permetant l'envoie la matrice du formulaire modifier\";\r\n    constructor(){}\r\n}\r\n\r\n\r\n\r\nexport interface GlobalStateModel {\r\n    formConfig?: Formulaire;\r\n    data : any\r\n    reponses : {nom : string, value : any}[];\r\n    toUploads : any[] ;\r\n    uploadsUrl : string[] ;\r\n    messages : {class : string[], text : string}[];\r\n    historique : number[] ;\r\n    ancre : string ;\r\n    token_submitReponse : boolean ;\r\n    token_modifMatrice : boolean \r\n    modaleActive : {etat : boolean, contenu : any, urlRedirect : string} ;\r\n}\r\n\r\n@State<GlobalStateModel>({\r\n  name: 'app',\r\n  defaults: {\r\n    formConfig: undefined,      //toute la configuration du formulaire \r\n    data : [],                  //les données suplémentaire fournis au formulaire\r\n    reponses : [],               //tableau ou son stocker les réponses  \r\n    messages : [],               //Les messages flash a afficher         \r\n    historique : [],            //historique de navigation\r\n    ancre : '',                 //ancre de la page \r\n    toUploads : [] ,            //Ensemble de fichier a uploads \r\n    uploadsUrl : [] ,           //Url pour appeler les fichier uploads en api\r\n    token_submitReponse : false , //Lance l'envoie des réponses et l'envoie des fichiers\r\n    token_modifMatrice : false ,  //Notifie que la matrice a été modifier, se qui envera la matrice entière lors du prochain submit \r\n    modaleActive :  {etat : false, contenu : {}, urlRedirect : \"#\" } \r\n  }\r\n})\r\n@Injectable()\r\nexport class GlobalState {\r\n\r\n    //===========Init===========\r\n    @Action(InitApp)\r\n    initApp(ctx: StateContext<GlobalStateModel>, action: any){\r\n        ctx.setState(patch({ formConfig : action.form, data : action.data, historique : [action.form.firstPage] }));\r\n    }\r\n\r\n    //===========Data===========\r\n    @Action(SetData)\r\n    setData(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState(); \r\n        let newData : any = {};\r\n        Object.assign(newData, state.data);\r\n        newData[action.dataSet] = action.value\r\n        ctx.setState(patch({ data : newData  }));\r\n    }\r\n\r\n    @Action(AddData)\r\n    addData(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState()\r\n        let newData : any = {};\r\n        Object.assign(newData, state.data);\r\n\r\n        if(Array.isArray(newData[action.dataSet]))\r\n            newData[action.dataSet] = Array.isArray(action.value)? newData[action.dataSet].concat(action.value) : [...newData[action.dataSet], action.value]\r\n        else \r\n            newData[action.dataSet] = Array.isArray(action.value)? [...action.value,newData[action.dataSet]] : [action.value,newData[action.dataSet]] \r\n        \r\n        ctx.setState(patch({ data : newData }));\r\n    }\r\n\r\n    //===========Reponse & Uploads ===========\r\n    @Action(AddReponse)\r\n    addReponse(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        let previousReponse = [...state.reponses];\r\n        let isIn = false; let i = 0;\r\n        //Vérifie si la réponse est déja enregistrer pour éviter les duplicatas \r\n        while (!isIn && i<previousReponse.length) {\r\n            isIn = previousReponse[i].nom == action.reponse.nom;\r\n            if(isIn) previousReponse[i].value = action.reponse.value ;\r\n            i++\r\n        }\r\n        if (!isIn) previousReponse.push( action.reponse )\r\n        ctx.setState(patch({ reponses : previousReponse } ));\r\n    }\r\n\r\n    @Action(AddFiles)\r\n    addFiles(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        ctx.setState(patch({ toUploads : state.toUploads.concat(action.files)} ));\r\n    }\r\n\r\n    @Action(SubmitReponse)\r\n    submitReponse(ctx: StateContext<GlobalStateModel>, action: any){\r\n        ctx.setState(patch({ token_submitReponse: action.bool }));\r\n    }\r\n\r\n    @Action(ReponseEnvoyee)\r\n    reponseEnvoye(ctx: StateContext<GlobalStateModel>){\r\n        ctx.setState(patch({ reponses : new Array, toUploads : new Array }));\r\n    }\r\n\r\n    @Action(DocumentEnvoyee)\r\n    documentEnvoyer(ctx: StateContext<GlobalStateModel>){\r\n        ctx.setState(patch({ toUploads : new Array }));\r\n    }\r\n\r\n    @Action(SetUploadsURL)\r\n    setUploadsURL(ctx: StateContext<GlobalStateModel>, action: any){\r\n        ctx.setState(patch( { uploadsUrl : action.uploadsUrl } ));\r\n    }\r\n\r\n    //===========Message===========\r\n    @Action(AddMessage) //utile\r\n    addMessage(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        ctx.setState(patch( {messages :[...state.messages,action.message]} ));\r\n    }\r\n\r\n    @Action(ResetMessage)\r\n    resetMessage(ctx: StateContext<GlobalStateModel>){\r\n        ctx.setState(patch({ messages : new Array }));\r\n    }\r\n\r\n    //===========Ancre===========\r\n    @Action(SetAncre)\r\n    setAncre(ctx: StateContext<GlobalStateModel>, action : any){\r\n        ctx.setState(patch({ ancre : action.ancre }));\r\n    }\r\n\r\n    //===========Modale===========\r\n    @Action(SetModaleActive)\r\n    setModaleActive(ctx: StateContext<GlobalStateModel>, action : any){\r\n        const state = ctx.getState();\r\n        ctx.setState(patch({ modaleActive : { etat : action.etat , \r\n            contenu : action.contenu ? action.contenu : {...state.modaleActive.contenu}, \r\n            urlRedirect : action.urlRedirect ? action.urlRedirect : state.modaleActive.urlRedirect } }));\r\n    }\r\n\r\n    //===========Navigation===========\r\n    @Action(PageSuivante)\r\n    pageSuivante(ctx: StateContext<GlobalStateModel>){\r\n        const state = ctx.getState();\r\n        //Si donnée des input de la page Valide \r\n        if(this.donneeValide(ctx)){\r\n             //Envoie les reponses &  \r\n             //Calcule la page suivante avec Structure Form \r\n             document.querySelectorAll('.lib-page')[0].scrollTop = 0\r\n             ctx.setState(patch( {token_submitReponse :true, historique : [...state.historique, this.getNextPage(state)],  ancre: '' })); \r\n        } else {\r\n            //les message d'erreur levé par les input sont déja mit dans state.messages dans this.donneeValide(state)\r\n        }     \r\n    }\r\n\r\n    donneeValide(ctx : StateContext<GlobalStateModel>):boolean{\r\n        const state = ctx.getState();\r\n        let valide = true ;\r\n        if(state.formConfig){ \r\n            //récup les input de la page et si besoin de l'extra bloc \r\n            let page = state.formConfig.pages.find((page:Page) => page.getId()==state.historique[state.historique.length-1])\r\n            let id_inputPage : number[] = []\r\n            if(page)                       id_inputPage = id_inputPage.concat(this.recupIdInput(page.html))\r\n            if(state.formConfig.extraBloc) id_inputPage = id_inputPage.concat(this.recupIdInput(state.formConfig.extraBloc))\r\n            \r\n            //les vérifie tous\r\n            for(let id_input of id_inputPage){ \r\n                let input = state.formConfig.inputs[id_input]; \r\n                //Si valide -> l'enregistre pour envoie \r\n                try {\r\n                    let valideInput = input.is_valide() ;\r\n                    valide = valide && valideInput\r\n                    if(valideInput) this.addReponse(ctx,{reponse: {nom :  input.nom, value : input.reponse}})\r\n                }\r\n                //Si pas valide -> enregistre le message \r\n                catch (e:any) { \r\n                    this.addMessage(ctx,{message : {class : ['error'], text : e.message}})\r\n                }\r\n            }    \r\n        }\r\n        //Si tout les input valide return true sinon false \r\n        return valide ;\r\n    }\r\n\r\n    //récupère récursivement tout les input des bloc\r\n    recupIdInput(bloc : Bloc):number[] {\r\n        let id_inputPage : number[] = [] ;\r\n        if(bloc instanceof Container)\r\n            for(let blocChild of bloc.contenu){\r\n                id_inputPage = id_inputPage.concat(this.recupIdInput(blocChild))\r\n            }     \r\n        else if(bloc instanceof BlocInput){\r\n            id_inputPage.push(bloc.idInput)\r\n        }\r\n        return id_inputPage;\r\n    }\r\n\r\n\r\n    getNextPage(state : GlobalStateModel):number|void{\r\n        if(state.formConfig){\r\n            let id_currentPage = state.historique[state.historique.length-1]\r\n            let prio = -1;\r\n            let nextPage : number =  state.formConfig.firstPage\r\n\r\n            //regarde tout les pont logique de la page courrante \r\n            for(let pl of state.formConfig.structure){\r\n                if(pl.idPage_depart == id_currentPage){\r\n                    //Si toute les conditions du pl sont bonne et new_prio > last_prio alors on récupère l'id de la prochaine page \r\n                    let valide = true;\r\n                    for(let cond of pl.conditions){\r\n                        valide = valide && cond.value == state.formConfig.inputs[cond.idInput].reponse; \r\n                    }\r\n                    if (valide && prio <= pl.prio){\r\n                        nextPage = pl.idPage_arrivee ;\r\n                    }\r\n                }\r\n            }\r\n\r\n            //Retourne la page avec la pl valide qui a la plus grande prio \r\n            return nextPage\r\n        }\r\n    }\r\n\r\n    @Action(PagePrecedente)\r\n    pagePrecedente(ctx: StateContext<GlobalStateModel>){\r\n        const state = ctx.getState();\r\n        //Va une page en arrière dans l'histo, si histo.lenght > 1 \r\n        if(state.historique.length > 1 ){\r\n            document.querySelectorAll('.lib-page')[0].scrollTop = 0\r\n            ctx.setState(patch({ historique : state.historique.slice(0,state.historique.length-1), ancre: '' }));\r\n        }\r\n    }\r\n\r\n    @Action(JumpToPage)\r\n    jumpToPage(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        if(state.formConfig)\r\n            //en fonction du mode du formulaire (strict, libre)\r\n            switch(state.formConfig.navigationMode){\r\n                // !!! Logique de la navigation libre a discuter !!!\r\n                //Si Libre : Baleck on jump ou l'on veut => l'histo : [firstPage,CurrentPage] => pour lors d'un retour en arrière revenir au départ\r\n                case(NAVIGATION_MODE.LIBRE) : \r\n                    if(this.donneeValide(ctx)){\r\n                        document.querySelectorAll('.lib-page')[0].scrollTop = 0\r\n                        ctx.setState(patch({ historique : [state.formConfig.firstPage,action.idPage] }));\r\n                    }\r\n                break;\r\n                //Si strict :                                                   \r\n                case(NAVIGATION_MODE.STRICT) : \r\n                    // si idJumpPage présent dans l'histo => page passé => on jump en arrière => coupe l'histo a la nouvelle page \r\n                    // => [1,2,4,6] => jump to 2 => [1,2] \r\n                    if(  state.historique.indexOf(action.idPage) != -1 ) {\r\n                        document.querySelectorAll('.lib-page')[0].scrollTop = 0\r\n                        ctx.setState(patch({ historique : state.historique.slice(0,state.historique.indexOf(action.idPage)+1) }));\r\n                    }\r\n                    //sinon => c'est une page future et non passé => pas de jump \r\n                break;\r\n            }       \r\n    }\r\n\r\n    //===========Page===========\r\n    @Action(AddPage)\r\n    addPage(ctx: StateContext<GlobalStateModel>, action: any){\r\n\r\n        const state = ctx.getState();\r\n        let formModif : Formulaire = Object.setPrototypeOf({...state.formConfig},Formulaire.prototype)\r\n\r\n        //Ajoute la page au formulaire \r\n        formModif.add_Page(action.page)\r\n\r\n        //link la nouvelle page juste après la dernière \r\n        formModif.add_linkPage(new PontLogique(formModif.structure[formModif.structure.length-1].idPage_arrivee,action.page.getId()))\r\n\r\n        //Récupère le bloc Sommaire ( si il existe dans extra bloc )\r\n        let sommaireBloc : any ;\r\n        if(formModif.extraBloc) sommaireBloc = this.getSommaireBloc(formModif.extraBloc)\r\n        //Ajoute une ancre\r\n        if(sommaireBloc) sommaireBloc.add_Ancre(new Ancre(action.page.html.contenu[0],action.page.nom.toUpperCase(),action.tag,action.classTab))\r\n        \r\n        ctx.setState(patch({ formConfig : formModif , token_modifMatrice : true })); \r\n    }\r\n\r\n    @Action(UpdateAncre)\r\n    updateAncre(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        let formConfig : Formulaire = Object.setPrototypeOf({...state.formConfig},Formulaire.prototype)\r\n\r\n        //Récupère le bloc Sommaire ( si il existe dans extra bloc )\r\n        let sommaireBloc : Sommaire | undefined ;\r\n        if(formConfig.extraBloc) sommaireBloc = this.getSommaireBloc(formConfig.extraBloc)\r\n        //modifie l'ancre\r\n        if(sommaireBloc) sommaireBloc.updateAncre(action.previousName,action.page.nom,action.page.nom.toUpperCase())\r\n        \r\n        ctx.setState(patch({ formConfig : formConfig , token_modifMatrice : true })); \r\n    }\r\n\r\n    @Action(UpdatePage)\r\n    updatePage(ctx: StateContext<GlobalStateModel>, action: any){\r\n        const state = ctx.getState();\r\n        let formConfig : Formulaire = Object.setPrototypeOf({...state.formConfig},Formulaire.prototype)\r\n\r\n        //Remplace la page\r\n        formConfig.updatePage(action.page)\r\n        \r\n        ctx.setState(patch({ formConfig : formConfig , token_modifMatrice : true })); \r\n    }\r\n\r\n    @Action(SupprPage)\r\n    supprPage(ctx: StateContext<GlobalStateModel>, action: any){\r\n        \r\n        const state = ctx.getState();\r\n        let formConfig : Formulaire = Object.setPrototypeOf({...state.formConfig},Formulaire.prototype)\r\n        \r\n        //Récupère le bloc Sommaire ( si il existe dans extra bloc )\r\n        let sommaireBloc : Sommaire | undefined ;\r\n        if(formConfig.extraBloc) sommaireBloc = this.getSommaireBloc(formConfig.extraBloc)\r\n\r\n        //Supprime ancre \r\n        if(sommaireBloc) sommaireBloc.suppr_Ancre(action.page.nom)\r\n\r\n        //Supprimer la page + ses liaisons + mets a jours les liaisons\r\n        formConfig.suppr_page(action.page.getId())\r\n\r\n        //console.log('formConfig',formConfig)\r\n\r\n        ctx.setState(patch({ formConfig : formConfig , token_modifMatrice : true })); \r\n    }\r\n\r\n    getSommaireBloc(extraBloc:Container){\r\n        let sommaireBloc : Sommaire | undefined ;\r\n        let blocContainer : Container[] = [extraBloc]\r\n        do {\r\n            let newContainer = []\r\n            for(let container of blocContainer)\r\n                for(let bloc of container.contenu){\r\n                    if(bloc instanceof Container) newContainer.push(bloc)\r\n                    if(bloc instanceof Sommaire) sommaireBloc = bloc \r\n                }\r\n            blocContainer = newContainer;\r\n        }\r\n        while(blocContainer.length != 0 && sommaireBloc==undefined )\r\n        return sommaireBloc\r\n    }\r\n\r\n    @Action(CloseToken_ModifForm)\r\n    closeToken_ModifForm(ctx: StateContext<GlobalStateModel>){\r\n        ctx.setState(patch({ token_modifMatrice : false }));\r\n    }\r\n}","export enum INPUT_TYPE {\r\n    CHECKBOX = \"checkbox\",\r\n    EMAIL = \"email\",\r\n    NOMBRE = \"nombre\",\r\n    RADIO = \"radio\",\r\n    TELEPHONE = \"telephone\",\r\n    TEXT_COURT = \"textCourt\",\r\n    TEXT_LONG = \"textLong\",\r\n    LINK = \"link\",\r\n    RADIO_OBJECT = \"radioobject\",\r\n    HIDDEN = 'hidden',\r\n    SELECT = 'select',\r\n    FILES = 'files',\r\n    HTML = 'html',\r\n    ANNEXE = 'annexe'\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-element-image',\r\n  templateUrl: './image.component.html',\r\n  styleUrls: ['./image.component.scss']\r\n})\r\nexport class ImageComponent implements OnInit {\r\n\r\n  @Input() element! : any; \r\n\r\n  constructor(public managerService : ManagerService) { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n}\r\n","<img class=\"e_img\" [src]=\"managerService.getValue(element.contenu)\" [alt]=\"managerService.getValue(element.alt)\"> \r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-element-text',\r\n  templateUrl: './text.component.html',\r\n  styleUrls: ['./text.component.scss']\r\n})\r\nexport class TextComponent implements OnInit {\r\n\r\n  @Input() element! : any; \r\n\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void { }\r\n\r\n}\r\n","<div [innerHTML]=\"managerService.getValue(element.contenu)\"></div>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-element-liens',\r\n  templateUrl: './liens.component.html',\r\n  styleUrls: ['./liens.component.scss']\r\n})\r\nexport class LiensComponent implements OnInit {\r\n\r\n  @Input() element! : any; \r\n\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void {}\r\n\r\n}\r\n","<a [href]=\"managerService.getValue(element.href)\" [target]=\"element.newpage?'_blank':'_self'\" [innerHTML]=\"managerService.getValue(element.contenu)\"></a>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-element-bouton',\r\n  templateUrl: './bouton.component.html',\r\n  styleUrls: ['./bouton.component.scss']\r\n})\r\nexport class BoutonComponent implements OnInit {\r\n\r\n  @Input() element! : any; \r\n\r\n  constructor(public managerService : ManagerService) { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  redirection(){\r\n    window.location.href = this.element.href;\r\n  }\r\n}\r\n","<button (click)=\"redirection()\" [innerHTML]=\"managerService.getValue(element.contenu)\"></button>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-element-vide',\r\n  templateUrl: './vide.component.html',\r\n  styleUrls: ['./vide.component.scss']\r\n})\r\nexport class VideComponent implements OnInit {\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ELEMENT_TYPE } from '../../poo/element/ELEMENT_TYPE';\r\n\r\n@Component({\r\n  selector: 'app-element',\r\n  templateUrl: './element.component.html',\r\n  styleUrls: ['./element.component.scss']\r\n})\r\nexport class ElementComponent implements OnInit {\r\n\r\n  ELEMENT_TYPE = ELEMENT_TYPE\r\n\r\n  @Input() element! : any; \r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void { }\r\n}\r\n","<div [ngSwitch]=\"element.ELEMENT_TYPE\">\r\n    <app-element-image class=\"e_image\" *ngSwitchCase=\"ELEMENT_TYPE.IMAGE\" [element]=\"element\"></app-element-image>\r\n    <app-element-text  *ngSwitchCase=\"ELEMENT_TYPE.TEXT\" [element]=\"element\"></app-element-text>\r\n    <app-element-liens  *ngSwitchCase=\"ELEMENT_TYPE.LIEN\" [element]=\"element\"></app-element-liens>\r\n    <app-element-bouton  *ngSwitchCase=\"ELEMENT_TYPE.BOUTON\" [element]=\"element\"></app-element-bouton>\r\n    <app-element-vide  *ngSwitchCase=\"ELEMENT_TYPE.VIDE\"></app-element-vide>\r\n    <div *ngSwitchDefault>Error loading Element</div>\r\n</div>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-input-check-box',\r\n  templateUrl: './check-box.component.html',\r\n  styleUrls: ['./check-box.component.scss']\r\n})\r\nexport class CheckBoxComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n}\r\n","<input \r\n    [id]=\"input.nom\" \r\n    type=\"checkbox\" \r\n    [required]=\"input.isRequire\"\r\n    [checked]=\"input.isCheck\"\r\n    [value]=\"input.value\"\r\n    [name]=\"input.nom\"\r\n    [(ngModel)]=\"input.reponse\"\r\n    >\r\n<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element class=\"element\" [element]=\"input.label\"></app-element>\r\n</label>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-email',\r\n  templateUrl: './email.component.html',\r\n  styleUrls: ['./email.component.scss']\r\n})\r\nexport class EmailComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse)  this.input.reponse = this.managerService.getValue(this.input.value)\r\n  }\r\n\r\n}\r\n","<input \r\n    [id]=\"input.nom\" \r\n    type=\"email\" \r\n    [required]=\"input.isRequire\"\r\n    [min]=\"input.min\"\r\n    [max]=\"input.max\"\r\n    [size]=\"input.size\"\r\n    [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n    [pattern]=\"input.pattern\"\r\n    [(ngModel)]=\"input.reponse\"\r\n    >\r\n<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-nombre',\r\n  templateUrl: './nombre.component.html',\r\n  styleUrls: ['./nombre.component.scss']\r\n})\r\nexport class NombreComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse) this.input.reponse = this.managerService.getValue(this.input.value);\r\n  }\r\n\r\n  moins(){\r\n    if(this.input.reponse){\r\n      if(this.input.reponse - this.input.step >= this.input.min) {\r\n        this.input.reponse -= this.input.step ;\r\n      }\r\n    } else {\r\n      this.input.reponse = this.input.min ;\r\n    }\r\n  }\r\n\r\n  plus(){\r\n    if(this.input.reponse){\r\n      if(this.input.reponse + this.input.step <= this.input.max) {\r\n        this.input.reponse += this.input.step ;\r\n      }\r\n    } else {\r\n      this.input.reponse = this.input.min ;\r\n    }\r\n  }\r\n}\r\n","<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n\r\n<div *ngIf=\"input.typeAffichage=='simple'\">\r\n    <input \r\n        [id]=\"input.nom\" \r\n        type=\"number\" \r\n        [required]=\"input.isRequire\"\r\n        [min]=\"input.min\"\r\n        [max]=\"input.max\"\r\n        [step]=\"input.step\"\r\n        [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n        [(ngModel)]=\"input.reponse\"\r\n        >\r\n    <label [for]=\"input.nom\" [innerHTML]=\"input.unite\"></label>\r\n</div>\r\n\r\n<div *ngIf=\"input.typeAffichage=='plus_et_moins'\" class=\"i_nombre_plusEtmoins\" >\r\n    <button (click)=\"moins\">-</button>\r\n    <div>\r\n        <input \r\n            [id]=\"input.nom\" \r\n            type=\"number\" \r\n            [required]=\"input.isRequire\"\r\n            [min]=\"input.min\"\r\n            [max]=\"input.max\"\r\n            [step]=\"input.step\"\r\n            [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n            [(ngModel)]=\"input.reponse\"\r\n        >\r\n        <label [for]=\"input.nom\" [innerHTML]=\"input.unite\"></label>\r\n    </div>\r\n    <button (click)=\"plus\">+</button>\r\n</div>\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport { PageSuivante } from '../../../store/store';\r\n\r\n@Component({\r\n  selector: 'app-input-radio',\r\n  templateUrl: './radio.component.html',\r\n  styleUrls: ['./radio.component.scss']\r\n})\r\nexport class RadioComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  pageSuivante($event:any){\r\n    this.input.reponse = $event ;\r\n    if(this.input.isLink){\r\n      this.store.dispatch(new PageSuivante());\r\n    }\r\n  }\r\n}\r\n","<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n<div> <!-- style temporaire -->\r\n    <div *ngFor=\"let choix of input.listeChoix\" class=\"radio\">\r\n        <input  type=\"radio\" \r\n                [id]=\"input.nom+'-'+choix.nom\" \r\n                [name]=\"input.nom\" \r\n                [value]=\"choix.value\" \r\n                [checked]=\"input.listeChoix.indexOf(choix)==0\" \r\n                [ngModel]=\"input.reponse\"\r\n                (ngModelChange)=\"pageSuivante($event)\" \r\n                [ngClass]=\"input.typeAffichage\"\r\n        >\r\n        <label [for]=\"input.nom+'-'+choix.nom\">\r\n            <app-element [element]=\"choix.label\"></app-element>\r\n        </label>\r\n    </div>\r\n</div>","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-telephone',\r\n  templateUrl: './telephone.component.html',\r\n  styleUrls: ['./telephone.component.scss']\r\n})\r\nexport class TelephoneComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse) this.input.reponse = this.managerService.getValue(this.input.value)\r\n  }\r\n}\r\n","<input \r\n    [id]=\"input.nom\" \r\n    type=\"tel\" \r\n    [required]=\"input.isRequire\"\r\n    [min]=\"input.min\"\r\n    [max]=\"input.max\"\r\n    [size]=\"input.size\"\r\n    [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n    [pattern]=\"input.pattern\"\r\n    [(ngModel)]=\"input.reponse\"\r\n    >\r\n<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-text-court',\r\n  templateUrl: './text-court.component.html',\r\n  styleUrls: ['./text-court.component.scss']\r\n})\r\nexport class TextCourtComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(public managerService : ManagerService) {}\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse) this.input.reponse = this.managerService.getValue(this.input.value)\r\n  }\r\n\r\n}\r\n","<input \r\n    [id]=\"input.nom\" \r\n    type=\"text\" \r\n    [required]=\"input.isRequire\"\r\n    [min]=\"input.min\"\r\n    [max]=\"input.max\"\r\n    [size]=\"input.size\"\r\n    [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n    [pattern]=\"input.pattern\"\r\n    [(ngModel)]=\"input.reponse\"\r\n    >\r\n<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>","import { Component, OnInit, Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-text-long',\r\n  templateUrl: './text-long.component.html',\r\n  styleUrls: ['./text-long.component.scss']\r\n})\r\nexport class TextLongComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  constructor(public managerService : ManagerService) { }\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse) this.input.reponse = this.managerService.getValue(this.input.value)\r\n  }\r\n\r\n}\r\n","<textarea \r\n    [id]=\"input.nom\" \r\n    [required]=\"input.isRequire\"\r\n    [minlength]=\"input.min\"\r\n    [maxlength]=\"input.max\"\r\n    [rows]=\"input.rows\"\r\n    [wrap]=\"input.wrap\"\r\n    [placeholder]=\"managerService.getValue(input.placeHolder)\"\r\n    [(ngModel)]=\"input.reponse\"\r\n    ></textarea>\r\n<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport { PageSuivante } from '../../../store/store';\r\n\r\n@Component({\r\n  selector: 'app-input-link',\r\n  templateUrl: './link.component.html',\r\n  styleUrls: ['./link.component.scss']\r\n})\r\nexport class LinkComponent implements OnInit {\r\n\r\n  //input de type hidden avec un boutton, permetant avec un pont logique dessus d'avoir un bouton qui change la navigation normal du formulaire \r\n\r\n  @Input() input! : any;\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {\r\n  }\r\n\r\n  pageSuivante(){\r\n    this.input.reponse = true ;\r\n    this.store.dispatch(new PageSuivante());\r\n  }\r\n\r\n}\r\n","<input type=\"hidden\" value=\"false\" [id]=\"input.nom\" [(ngModel)]=\"input.reponse\" >\r\n<a class=\"i_link_nom\" (click)=\"pageSuivante()\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</a>\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\n\r\n@Component({\r\n  selector: 'app-input-radioObject',\r\n  templateUrl: './radio-object.component.html',\r\n  styleUrls: ['./radio-object.component.scss']\r\n})\r\nexport class RadioObjectComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  dataSet : any[] = [] ;\r\n  initComplete : boolean = false ;\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {\r\n    for(let d of this.store.selectSnapshot(state => state.app.data) ){\r\n      if (d.nom == this.input.nomDataSet){\r\n        this.dataSet = d.value ; \r\n      }\r\n    }\r\n    this.initComplete = true ;\r\n  }\r\n\r\n  getAffichage(obj :Object):string[]{\r\n    let tabStr = []\r\n    for(let [key,value] of Object.entries(obj)){\r\n      if( this.input.champsIgnorer.indexOf(key) == -1  ) {\r\n        tabStr.push(value);\r\n      }\r\n    }\r\n    return tabStr ;\r\n  }\r\n}\r\n","<label [for]=\"input.nom\" *ngIf=\"input.label\">\r\n    <app-element [element]=\"input.label\"></app-element>\r\n</label>\r\n<div *ngIf=\"initComplete\" style=\"width: 450px;\"> <!-- style temporaire -->\r\n    <div *ngFor=\"let obj of dataSet\" class=\"radio-object\">\r\n        <input  class=\"i_radioObj\"\r\n                type=\"radio\" \r\n                [id]=\"input.nom+'-'+obj.nom\" \r\n                [name]=\"obj.nom\" \r\n                [value]=\"obj\" \r\n                [(ngModel)]=\"input.reponse\"\r\n        >\r\n        <label [for]=\"input.nom+'-'+obj.nom\">\r\n            <div *ngFor=\"let str of getAffichage(obj)\" [innerHTML]=\"str\"></div>\r\n        </label>\r\n    </div>\r\n</div>","import { Component, OnInit, Input } from '@angular/core';\nimport { ManagerService } from '../../../poo/service/ManagerService'\n\n@Component({\n  selector: 'app-input-select',\n  templateUrl: './select.component.html',\n  styleUrls: ['./select.component.scss']\n})\nexport class SelectComponent implements OnInit {\n\n  @Input() input! : any;\n\n  constructor(public managerService : ManagerService) { }\n\n  ngOnInit(): void { \n    if(!this.input.reponse){\n      let value = this.managerService.getValue(this.input.value);\n      for(let choix of this.input.listeChoix){\n        if(choix.value === value) this.input.reponse = choix.value\n      } \n    }\n  }\n}\n","<label [for]=\"input.nom\" *ngIf=\"input.label\">\n    <app-element [element]=\"input.label\"></app-element>\n</label>\n<p-dropdown \n    [options]=\"input.listeChoix\" \n    [(ngModel)]=\"input.reponse\" \n    [required]=\"input.isRequire\"\n    optionLabel=\"text\"\n    optionValue=\"value\"\n></p-dropdown>","import { Component, OnInit,Input, Output,EventEmitter } from '@angular/core';\nimport { Store } from '@ngxs/store';\n\n@Component({\n  selector: 'app-input-files-list',\n  templateUrl: './list-files.component.html',\n  styleUrls: ['./list-files.component.scss']\n})\nexport class ListFilesComponent implements OnInit {\n\n  @Input() selectListe : string[] = []\n  @Input() dataSet : string = ''\n\n  @Output() selectOne = new EventEmitter<string>();\n\n  files : string[] = [];\n\n  constructor(private store: Store) { }\n\n  ngOnInit(): void { \n    this.files = this.store.selectSnapshot(state => state.app.data[this.dataSet].concat(state.app.data[this.dataSet+'_uploads']))\n  }\n\n}\n","<button *ngFor=\"let file of files\" \n        class=\"file\" (click)=\"selectOne.emit(file)\"\n        [ngClass]=\"{'select': selectListe.indexOf(file)!=-1 }\"> \n        <img [src]='file'>\n</button>\n","import { Component, OnInit, Input, OnDestroy} from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { AddData , AddFiles, SetData} from '../../../../store/store';\nimport { Subscription } from 'rxjs/internal/Subscription';\n\n@Component({\n  selector: 'app-input-files-add',\n  templateUrl: './add-files.component.html',\n  styleUrls: ['./add-files.component.scss']\n})\nexport class AddFilesComponent implements OnInit, OnDestroy {\n\n  @Input() format : string[] = []\n  @Input() dataSet : string = ''\n\n  waitingUploadsFile : File[] = []\n\n  sub : Subscription[] = []\n\n  constructor(private store: Store) {\n    this.sub.push(\n    this.store.select(state => state.app.uploadsUrl).subscribe( (uploadsUrl:string[]) => {\n\n      //Remplace les File par l'url des images corespondante enregistrer en back \n      let dataSet = this.store.selectSnapshot(state => state.app.data[this.dataSet+'_uploads'])\n      for(let [fileName, url] of Object.entries(uploadsUrl))\n          this.waitingUploadsFile = this.waitingUploadsFile.filter((file:File)=>{\n            if(fileName==file.name){\n              if(dataSet) this.store.dispatch(new AddData(this.dataSet+'_uploads',url))\n              else this.store.dispatch(new SetData(this.dataSet+'_uploads',url))\n              return false\n            }\n            else return true \n          })  \n    }))\n  }\n\n  ngOnInit(): void {}\n\n  getAcceptFormat(){\n    let str =''\n    for(let f of this.format){ str += '.'+f+',' }\n    return str.replace(/,$/,'')\n  }\n\n  addFiles(data : any){\n\n    for(let i=0;i<data.files.length;i++) this.waitingUploadsFile.push(data.files[i]) \n\n    this.store.dispatch(new AddFiles(this.waitingUploadsFile))\n  }\n\n  ngOnDestroy(){ \n    for(let subscription of this.sub) subscription.unsubscribe()\n  }\n\n}\n","<input type=\"file\"\n       [accept]=\"getAcceptFormat()\"\n       multiple\n       (change)=\"addFiles($event.target)\"\n>","import { Component, OnInit, Input } from '@angular/core';\nimport { ManagerService } from '../../../poo/service/ManagerService'\n\n@Component({\n  selector: 'app-input-files',\n  templateUrl: './files.component.html',\n  styleUrls: ['./files.component.scss']\n})\nexport class FilesComponent implements OnInit {\n\n  @Input() input! : any;\n  switch : boolean = true ;\n  modale : boolean = false ;\n\n  selectListe : string[] = []; \n\n  constructor(private managerService : ManagerService) {}\n\n  ngOnInit(): void { \n    if(this.input.value) this.input.reponse = this.managerService.getValue(this.input.value)\n    if(this.input.reponse) this.selectListe = [...this.input.reponse]\n  }\n\n  select(file :any){\n    //Si pas dedans\n    if(this.selectListe.indexOf(file)==-1) \n        //Si multiple => on ajoute \n        if(this.input.multiple) this.selectListe.push(file)\n        //Sinon => on remplace \n        else this.selectListe = [file] ; \n    //Si dedans => on enlève \n    else this.selectListe = this.selectListe.filter(str => str!=file)\n      \n  }\n\n  end(){\n    this.input.reponse = [...this.selectListe];\n    this.modale = false\n  }\n\n}\n","<button *ngIf=\"!input.reponse || input.reponse.length==0\" (click)=\"modale = true\">Ajouter un média</button>\n<div *ngIf=\"input.reponse && input.reponse.length>0\">\n    <button *ngFor=\"let file of input.reponse\" (click)=\"modale = true\">\n        <img [src]=\"file\" [alt]=\"file \" >\n    </button>\n</div>\n\n<div class=\"backGround-modale\" *ngIf=\"modale\">\n    <div class=\"modale\">\n        <header>\n            <h4>Selection du média</h4>\n            <button (click)=\"modale = false\">X</button>\n        </header>\n        <nav>\n            <button (click)=\"switch = true\">Liste</button>\n            <button (click)=\"switch = false\">Ajouter</button>\n            <p>média selectionné.s : {{selectListe.length}}</p>\n        </nav>\n        <app-input-files-list class=\"content listeFile\" *ngIf=\"switch\" [selectListe]=\"selectListe\" [dataSet]=\"input.dataSet\" (selectOne)=\"select($event)\"> </app-input-files-list>\n        <app-input-files-add  class=\"content addFile\" *ngIf=\"!switch\" [dataSet]=\"input.dataSet\" [format]=\"input.format\"></app-input-files-add>\n        <footer>\n            <button (click)=\"end()\">Ajouter un média</button>\n        </footer>\n    </div>\n</div>\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ManagerService } from '../../../poo/service/ManagerService';\r\n\r\n@Component({\r\n  selector: 'app-input-html',\r\n  templateUrl: './html.component.html',\r\n  styleUrls: ['./html.component.scss']\r\n})\r\nexport class HtmlComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n\r\n  constructor(public managerService : ManagerService) { }\r\n\r\n  ngOnInit(): void {\r\n    if(!this.input.reponse) this.input.reponse = this.managerService.getValue(this.input.value)\r\n  }\r\n\r\n}\r\n","<p-editor [(ngModel)]=\"input.reponse\" [style]=\"{'height': input.height+'px'}\">\r\n    <ng-template pTemplate=\"header\">\r\n        <span class=\"ql-formats\">\r\n            <select class=\"ql-font\"></select>\r\n            <select class=\"ql-size\"></select>\r\n            </span>\r\n        <span class=\"ql-formats\">\r\n            <button class=\"ql-bold\"></button>\r\n            <button class=\"ql-italic\"></button>\r\n            <button class=\"ql-underline\"></button>\r\n            <button class=\"ql-strike\"></button>\r\n        </span>\r\n        <span class=\"ql-formats\">\r\n            <select class=\"ql-color\"></select>\r\n            <select class=\"ql-background\"></select>\r\n        </span>\r\n        <span class=\"ql-formats\">\r\n            <button class=\"ql-direction\" value=\"rtl\"></button>\r\n            <select class=\"ql-align\"></select>\r\n        </span>\r\n        <span class=\"ql-formats\">\r\n            <button class=\"ql-script\" value=\"sub\"></button>\r\n            <button class=\"ql-script\" value=\"super\"></button>\r\n            <button class=\"ql-clean\"></button>\r\n        </span>\r\n    </ng-template>\r\n</p-editor>\r\n","import { PAGE_TYPE } from './PAGE_TYPE';\r\n\r\nimport { Marker } from '../marker';\r\nimport { Bloc } from '../bloc/ABSTRACT_Bloc';\r\nimport { Bloc_Manager } from '../bloc/MANAGER_Bloc';\r\nimport { Container } from '../bloc/Type_Bloc/Container';\r\n\r\nexport abstract class Page implements Marker {\r\n\r\n    marker? : string\r\n\r\n    private id : number;\r\n    nom : string;\r\n    html : Bloc;\r\n\r\n    abstract PAGE_TYPE : PAGE_TYPE ;\r\n\r\n    constructor(nom : string, marker? :string)\r\n    {\r\n        this.nom=nom;\r\n\r\n        //valeur par defaut\r\n        this.id=-1; //on considère id = index de la page dans formulaire.pages donc > 0\r\n        this.marker = marker ;\r\n        this.html= new Container();\r\n    }\r\n\r\n    setId(id : number){ this.id = id; }\r\n    getId() : number { return this.id ;}\r\n\r\n    deepRebuild(){\r\n        this.html = Bloc_Manager.rebuild(this.html);\r\n    }\r\n}","export enum PAGE_TYPE {\r\n    FLUX = \"flux\",\r\n    GRILLE = \"grille\" ,\r\n    PAIEMENT = \"paiement\",\r\n    FIN = 'fin',\r\n    MAP = 'map',\r\n    ANNEXE = 'annexe'\r\n}","import { Container } from \"../../bloc/Type_Bloc/Container\";\r\nimport { Page } from \"../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../PAGE_TYPE\";\r\n\r\nexport class Annexe extends Page{\r\n\r\n    PAGE_TYPE = PAGE_TYPE.ANNEXE ;\r\n    img : { nom : string , url : string}[] = []\r\n    override html : Container\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n        this.html = new Container(['breakBefore'])\r\n    }\r\n}","import { Component, OnInit, Input } from '@angular/core';\r\nimport { Annexe } from '../../../poo/page/Type_Page/Annexe';\r\nimport { Store } from '@ngxs/store';\r\nimport { AddPage, SupprPage, UpdatePage, AddFiles,UpdateAncre } from '../../../store/store';\r\nimport { Text } from '../../../poo/element/Type_Element/Text';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport {Image} from '../../../poo/element/Type_Element/Image'\r\n\r\n@Component({\r\n  selector: 'app-input-annexe',\r\n  templateUrl: './annexe.component.html',\r\n  styleUrls: ['./annexe.component.scss']\r\n})\r\nexport class AnnexeComponent implements OnInit {\r\n\r\n  @Input() input! : any;\r\n  modaleActive : boolean = false;\r\n  index? : number\r\n\r\n  waitingUploadsFile : {index : number, img : File[]}[] = []\r\n\r\n  sub : Subscription[] = []\r\n\r\n  constructor(private store : Store) {}\r\n\r\n  ngOnInit(): void {\r\n    \r\n    //Si reponse n'est pas défine => reponse = value ? value : []\r\n    if(!this.input.reponse || !this.input.reponse[0]) this.input.reponse = (this.input.value && this.input.value[0]) ? this.input.value : []\r\n\r\n    this.index = (this.input.reponse && this.input.reponse[0] ) ? 0 : undefined\r\n\r\n    //Met a jours les urls quand elles ont été uploads \r\n    this.sub.push(\r\n    this.store.select(state => state.app.uploadsUrl).subscribe( (uploadsUrl:string[]) => {\r\n      for(let [fileName, url] of Object.entries(uploadsUrl))\r\n        this.waitingUploadsFile = this.waitingUploadsFile.filter(( save: {index : number, img : File[]} )=>{\r\n          save.img = save.img.filter((file:File) => {\r\n            if(file.name == fileName){\r\n              this.input.reponse[save.index].img.push({ nom : file.name , url : url})\r\n              this.input.reponse[save.index].html.add_contenu(new Image(url,file.name))\r\n              //Met a jour la page du formulaire\r\n              if(this.index!=undefined) this.store.dispatch(new UpdatePage(this.input.reponse[this.index]))\r\n              return false\r\n            }\r\n            else return true \r\n          })\r\n          return save.img!=[]\r\n        })  \r\n    }))\r\n  }\r\n\r\n  onChangeNom(value : any){\r\n    if(this.index!=undefined) {\r\n      //Change le nom \r\n      let previousName = ''+this.input.reponse[this.index].nom\r\n      this.input.reponse[this.index].nom = value\r\n\r\n      //Modifie l'html\r\n      let a = new Text('ANNEXE '+(this.index+1)+' - '+value.toUpperCase(),['titreAnnexe']); \r\n      a.marker= value;\r\n      this.input.reponse[this.index].html.contenu[0] = a \r\n\r\n      //update l'ancre de la page\r\n      this.store.dispatch(new UpdateAncre(this.input.reponse[this.index],previousName))\r\n      .subscribe({\r\n        complete : () => { if(this.index!=undefined) this.store.dispatch(new UpdatePage(this.input.reponse[this.index]))}\r\n      })\r\n      \r\n    }\r\n  }\r\n\r\n  addAnnexe(){\r\n    let annexe = new Annexe(\"nouvelle Annexe\")\r\n    \r\n    this.index = this.index==undefined ? 0 : this.index\r\n\r\n    let a = new Text('ANNEXE '+(this.index+1)+' - '+annexe.nom.toUpperCase(),['titreAnnexe']); \r\n    a.marker= annexe.nom;\r\n    annexe.html.contenu[0] = a\r\n    \r\n    //Ajout a l'input & modifie index\r\n    this.input.reponse.push(annexe)\r\n    this.index = this.input.reponse.length-1;\r\n    //Ajoute au formulaire + liaison structure + ajout sommaire => In store , ajout page ? \r\n    this.store.dispatch(new AddPage( annexe,'ANNEXE '+(this.index+1)+' - ',['ancreAnnexe']))\r\n  }\r\n\r\n  supprAnnexe(annexe : Annexe){\r\n\r\n    //met a jours formulaire + liaison structure + ajout sommaire => In store , suppr page ? \r\n    this.store.dispatch(new SupprPage(annexe))\r\n    \r\n    //met a jours l'input & modifie index\r\n    this.input.reponse = this.input.reponse.filter( (a :any) => a.nom != annexe.nom )\r\n    this.index = this.input.reponse[0] ? 0 : undefined\r\n  }\r\n\r\n  addFiles(data : any){\r\n\r\n    let obj : any = {index : this.index?this.index:0, img : []}\r\n\r\n    for(let i=0;i<data.files.length;i++) obj.img.push(data.files[i])\r\n\r\n    this.waitingUploadsFile.push(obj)\r\n    this.store.dispatch(new AddFiles(obj.img))\r\n  }\r\n\r\n  supprFiles(imgName : any){\r\n    if(this.index!=undefined) {\r\n      this.input.reponse[this.index].img = this.input.reponse[this.index].img.filter( (value :any) => imgName != value.nom)\r\n      this.input.reponse[this.index].html.contenu = this.input.reponse[this.index].html.contenu.filter((img:any) => !(img instanceof Image) || img.alt != imgName)\r\n      //Met a jour la page du formulaire\r\n      this.store.dispatch(new UpdatePage(this.input.reponse[this.index]))\r\n    }\r\n  }\r\n\r\n  /**\r\n  getUrl(file : File){\r\n    if(!this.generateUrl[file.name]) this.generateUrl[file.name] = window.URL.createObjectURL(file)\r\n    return this.generateUrl[file.name]\r\n  }\r\n\r\n  sanitizeUrl(url :string): SafeResourceUrl { return this.sanitizer.bypassSecurityTrustResourceUrl(url)}\r\n\r\n  ngOnDestroy(){ for(let url of this.generateUrl) window.URL.revokeObjectURL(url) } \r\n  */\r\n\r\n  ngOnDestroy(){ \r\n    for(let subscription of this.sub) subscription.unsubscribe() \r\n  }\r\n\r\n}\r\n","<button *ngIf=\"!modaleActive\" (click)=\"modaleActive = true\" class=\"bouton\">Modifier les annexes</button>\r\n\r\n<div class=\"backGround-modale\" *ngIf=\"modaleActive\">\r\n    <div class=\"modale annexe\">\r\n        <header>\r\n            <h4>Modification des annexes</h4>\r\n            <button (click)=\"modaleActive = false\">X</button>\r\n        </header>\r\n        <nav>\r\n            <button *ngFor=\"let annexe of input.reponse; let i = index\" (click)=\"this.index = i \" [ngClass]=\"{'select':  this.index == i}\">{{annexe.nom}}</button>\r\n            <button (click)=\"addAnnexe()\">Ajouter une annexe</button>\r\n        </nav>\r\n        <div *ngIf=\"index!=undefined\" class=\"interface\">\r\n            <button class=\"delete\" (click)=\"supprAnnexe(input.reponse[index])\">Supprimer cette annexe</button>\r\n            <div class=\"ligne\">\r\n                <label [for]=\"input.reponse[index].nom+'_nom'\">Nom de l'Annexe</label>\r\n                <input [id]=\"input.reponse[index].nom+'_nom'\" type=\"text\" (ngModelChange)=\"onChangeNom($event)\" [(ngModel)]=\"input.reponse[index].nom\">\r\n            </div>\r\n            <div class=\"ligne\" >\r\n                <label [for]=\"input.reponse[index].nom+'_image'\">Contenu :</label>\r\n                <input [id]=\"input.reponse[index].nom+'_image'\" type=\"file\"\r\n                    accept=\"[.apng,.avif,.gif,.jpeg,.png,.svg,.webp,.jpg,.jfif,.pjpeg,.pjp]\"\r\n                    multiple\r\n                    (change)=\"addFiles($event.target)\"\r\n                >\r\n            </div>\r\n            <div class=\"listeImage\"> \r\n                <div *ngFor=\"let img of input.reponse[index].img\">\r\n                    <nav>\r\n                        <p>{{img.nom}}</p>\r\n                        <button (click)=\"supprFiles(img.nom)\">X</button>\r\n                    </nav>\r\n                    <img [src]='img.url' [id]=\"img.nom\" [alt]=\"img.nom\" class=\"imgAnnexe\">\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</div>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Input as ouivalo_Input } from '../../poo/input/ABSTRACT_Input';\r\nimport { INPUT_TYPE } from '../../poo/input/INPUT_TYPE';\r\n\r\n@Component({\r\n  selector: 'app-input',\r\n  templateUrl: './input.component.html',\r\n  styleUrls: ['./input.component.scss']\r\n})\r\nexport class InputComponent implements OnInit {\r\n\r\n  INPUT_TYPE = INPUT_TYPE;\r\n\r\n  @Input() input! : ouivalo_Input ;\r\n\r\n  constructor() { }\r\n  ngOnInit(): void { }\r\n}\r\n","<div [ngSwitch]=\"input.INPUT_TYPE \" *ngIf=\"input.isAfficher\">\r\n    <app-input-check-box class=\"i_checkBox\" *ngSwitchCase=\"INPUT_TYPE.CHECKBOX\"  [input]=\"input\"></app-input-check-box>\r\n    <app-input-email  *ngSwitchCase=\"INPUT_TYPE.EMAIL\" [input]=\"input\"></app-input-email>\r\n    <app-input-nombre  *ngSwitchCase=\"INPUT_TYPE.NOMBRE\" [input]=\"input\"></app-input-nombre>\r\n    <app-input-radio  *ngSwitchCase=\"INPUT_TYPE.RADIO\" [input]=\"input\"></app-input-radio>\r\n    <app-input-telephone  *ngSwitchCase=\"INPUT_TYPE.TELEPHONE\" [input]=\"input\"></app-input-telephone>\r\n    <app-input-text-court  *ngSwitchCase=\"INPUT_TYPE.TEXT_COURT\" [input]=\"input\"></app-input-text-court>\r\n    <app-input-text-long  *ngSwitchCase=\"INPUT_TYPE.TEXT_LONG\" [input]=\"input\"></app-input-text-long>\r\n    <app-input-link  *ngSwitchCase=\"INPUT_TYPE.LINK\" [input]=\"input\"></app-input-link>\r\n    <app-input-radioObject  *ngSwitchCase=\"INPUT_TYPE.RADIO_OBJECT\" [input]=\"input\"></app-input-radioObject>\r\n    <app-input-select  *ngSwitchCase=\"INPUT_TYPE.SELECT\" [input]=\"input\"></app-input-select>\r\n    <app-input-files  *ngSwitchCase=\"INPUT_TYPE.FILES\" [input]=\"input\"></app-input-files>\r\n    <app-input-html  *ngSwitchCase=\"INPUT_TYPE.HTML\" [input]=\"input\"></app-input-html>\r\n    <app-input-annexe  *ngSwitchCase=\"INPUT_TYPE.ANNEXE\" [input]=\"input\"></app-input-annexe>\r\n    <div *ngSwitchDefault>Error loading Input</div>\r\n</div>\r\n\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\n\r\n@Component({\r\n  selector: 'app-bloc-input',\r\n  templateUrl: './bloc-input.component.html',\r\n  styleUrls: ['./bloc-input.component.scss']\r\n})\r\nexport class BlocInputComponent implements OnInit {\r\n\r\n  @Input() bloc! : any\r\n\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  getInput(){\r\n    return this.store.selectSnapshot(state => state.app.formConfig.inputs[this.bloc.idInput])\r\n  }\r\n\r\n  ngOnDestroy(){}\r\n\r\n}\r\n","<app-input [input]=\"getInput()\"> </app-input>\n","import { Component, OnInit,Input } from '@angular/core';\nimport {Ancre} from '../../../poo/ancre'\nimport { Store } from '@ngxs/store';\nimport { Page } from '../../../poo/page/ABSTRACT_Page';\nimport { Container } from '../../../poo/bloc/Type_Bloc/Container';\nimport { Bloc } from '../../../poo/bloc/ABSTRACT_Bloc';\nimport { JumpToPage,SetAncre } from '../../../store/store';\nimport { Subscription } from 'rxjs/internal/Subscription';\n\n@Component({\n  selector: 'app-bloc-sommaire',\n  templateUrl: './sommaire.component.html',\n  styleUrls: ['./sommaire.component.scss']\n})\nexport class SommaireComponent implements OnInit {\n\n  @Input() bloc! : any\n\n  localAncre : string = ''\n\n  sub : Subscription[] = []\n\n  constructor(private store: Store) { }\n\n  ngOnInit(): void {\n\n    this.sub.push(\n    this.store.select(state => state.app.ancre).subscribe(\n      ancre => this.localAncre = ancre\n    ))\n\n  }\n\n  redirect(ancre : Ancre){\n    let pages = this.store.selectSnapshot(state => state.app.formConfig.pages)\n    let idpage = -1 ; let i = 0 ;\n    do {\n      if(this.verifMarker(ancre.marker,pages[i])) idpage = pages[i].getId()\n      i++;\n    } while (idpage == -1 && i < pages.length)\n\n    if( idpage != this.store.selectSnapshot(state => state.app.historique[state.app.historique.length-1]) && idpage != -1) \n      this.store.dispatch( new JumpToPage(idpage) ).subscribe({\n        complete : () =>  this.store.dispatch(new SetAncre( ancre.marker))\n      })\n    else \n      this.store.dispatch(new SetAncre( ancre.marker))\n  }\n\n  verifMarker(marker : string, page : Page):boolean{\n    return page.marker == marker || this.containMarker(marker,page.html)\n  }\n\n  containMarker(marker : string, bloc : Bloc):boolean{\n    if(bloc instanceof Container) {\n      let bool = false ;\n      for(let b of bloc.contenu) {\n        bool = bool || this.containMarker(marker,b) ;\n      }\n      return bool ;\n    }\n    else return bloc.marker == marker  \n  }\n\n  ngOnDestroy(){ for(let subscription of this.sub) subscription.unsubscribe() }\n\n}\n","<button *ngFor=\"let ancre of bloc.structure\" \r\n        (click)=\"redirect(ancre)\"\r\n        [ngClass]=\"ancre.marker == localAncre? ancre.classTab.concat(['select']) : ancre.classTab\"\r\n>\r\n        {{ancre.tag}} {{ancre.htmlText}}\r\n</button>","import { Component, OnInit,Input } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { PagePrecedente } from '../../../store/store';\n\n@Component({\n  selector: 'app-bloc-bouton-back',\n  templateUrl: './bouton-back.component.html',\n  styleUrls: ['./bouton-back.component.scss']\n})\nexport class BoutonBackComponent implements OnInit {\n\n  @Input() bloc! : any\n  is_buttonSortie : boolean = false ;\n\n  constructor(private store: Store) { }\n\n  ngOnInit(): void {\n    this.store.select(state => state.app.historique).subscribe(\n      histo => {\n        this.is_buttonSortie = histo.length <= 1 ;\n      }\n    )\n  }\n\n  pagePrecedente(){ this.store.dispatch(new PagePrecedente()) } \n\n}\n","<button *ngIf=\"!is_buttonSortie\" (click)=\"pagePrecedente()\" class=\"bouton\">\n    <app-element [element]=\"bloc.html\"></app-element>\n</button>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { PageSuivante } from '../../../store/store';\n\n@Component({\n  selector: 'app-bloc-bouton-next',\n  templateUrl: './bouton-next.component.html',\n  styleUrls: ['./bouton-next.component.scss']\n})\nexport class BoutonNextComponent implements OnInit {\n\n  @Input() bloc! : any\n  is_Afficher : boolean = true ;\n\n  constructor(private store: Store) { }\n\n  ngOnInit(): void { }\n\n  pageSuivante(){ this.store.dispatch(new PageSuivante()) }\n\n}\n","<button (click)=\"pageSuivante()\" class=\"bouton\">\n    <app-element [element]=\"bloc.html\"></app-element>\n</button>\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Store } from '@ngxs/store';\nimport { SetModaleActive } from '../../../store/store';\n\n@Component({\n  selector: 'app-bloc-bouton-end',\n  templateUrl: './bouton-end.component.html',\n  styleUrls: ['./bouton-end.component.scss']\n})\nexport class BoutonEndComponent implements OnInit {\n\n  @Input() bloc! : any\n  is_buttonSortie : boolean = false ;\n  isModalActive : boolean = false ; \n\n  constructor(private store: Store) { }\n\n  ngOnInit(): void {\n    if(this.bloc.isPermanant)\n      this.is_buttonSortie = this.bloc.isPermanant \n    else \n      this.store.select(state => state.app.historique).subscribe(\n        histo => {\n          this.is_buttonSortie = histo.length <= 1 ;\n        }\n      )\n  }\n\n  activeModale(){ this.store.dispatch(new SetModaleActive(true , this.bloc.modale , this.bloc.urlRedirect )) }\n\n}\n","<button *ngIf=\"is_buttonSortie\" (click)=\"activeModale()\"  class=\"bouton\" [ngClass]=\"{link : bloc.isLink}\">\n    <app-element [element]=\"bloc.html\"></app-element>\n</button>","import { Component, OnInit, Input } from '@angular/core';\nimport { BLOC_TYPE } from '../../poo/bloc/BLOC_TYPE';\n\n@Component({\n  selector: 'app-bloc',\n  templateUrl: './bloc.component.html',\n  styleUrls: ['./bloc.component.scss']\n})\nexport class BlocComponent implements OnInit {\n\n  BLOC_TYPE =BLOC_TYPE\n\n  @Input() bloc! : any\n\n  constructor() { }\n\n  ngOnInit(): void { }\n\n}\n","<div [ngSwitch]=\"bloc.BLOC_TYPE\" [id]=\"bloc.marker?bloc.marker:undefined\">\n    <!-- code du container dans bloc, car dans une librairie, la compilation se fait autrement et bloque en détectant une boucle -->\n    <div *ngSwitchCase=\"BLOC_TYPE.CONTAINER\" \n         class=\"bloc_container\" \n         [ngClass]=\"{'bloc_ligne': bloc.alignement , 'bloc_colonne': !bloc.alignement }\">\n        <app-bloc [ngClass]=\"b.classTab\" *ngFor=\"let b of bloc.contenu\" [bloc]=\"b\"></app-bloc>\n    </div>\n    <app-bloc-input  *ngSwitchCase=\"BLOC_TYPE.INPUT\" [bloc]=\"bloc\"></app-bloc-input>\n    <app-bloc-sommaire  class=\"bloc_sommaire\" *ngSwitchCase=\"BLOC_TYPE.SOMMAIRE\" [bloc]=\"bloc\"></app-bloc-sommaire>\n    <app-element  *ngSwitchCase=\"BLOC_TYPE.ELEMENT\" [element]=\"bloc\"></app-element>\n    <app-bloc-bouton-back  *ngSwitchCase=\"BLOC_TYPE.BOUTON_BACK\" [bloc]=\"bloc\"></app-bloc-bouton-back>\n    <app-bloc-bouton-next  *ngSwitchCase=\"BLOC_TYPE.BOUTON_NEXT\" [bloc]=\"bloc\"></app-bloc-bouton-next>\n    <app-bloc-bouton-end  *ngSwitchCase=\"BLOC_TYPE.BOUTON_END\" [bloc]=\"bloc\"></app-bloc-bouton-end>\n    <div *ngSwitchDefault>error loading bloc</div>\n</div>\n\n","import { Component, OnInit,Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-page-flux',\r\n  templateUrl: './flux.component.html',\r\n  styleUrls: ['./flux.component.scss']\r\n})\r\nexport class FluxComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n}\r\n","<h1 class=\"p-nom\" [innerHTML]=\"page.nom\"></h1>\r\n<app-bloc [ngClass]=\"page.html.classTab\" [bloc]=\"page.html\"></app-bloc>\r\n\r\n\r\n","export enum PAIEMENT_TYPE {\r\n    CARTE = \"carte\",\r\n    AUTRE = \"autre\"\r\n}","import { Page } from \"../../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../../PAGE_TYPE\";\r\nimport {PAIEMENT_TYPE} from './PAIEMENT_TYPE';\r\n\r\nexport abstract class Page_Paiement extends Page {\r\n\r\n    PAGE_TYPE = PAGE_TYPE.PAIEMENT ;\r\n\r\n    abstract PAIEMENT_TYPE : PAIEMENT_TYPE ;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n    }\r\n}","import {Page_Paiement} from \"../ABSTRACT_Paiement\"\r\nimport {PAIEMENT_TYPE } from \"../PAIEMENT_TYPE\";\r\nimport { Paiement as modulePaiement } from \"@ouivalo/paiement-lib\";\r\nimport {Paiement_Manager} from \"@ouivalo/paiement-lib\"\r\n\r\n\r\nexport enum type_binding {\r\n    input = 'input',        //value = resultat d'un input\r\n    default = 'default',    //value = un truc par defaut \r\n    somme_inputs = 'inputs',      //value = somme de tout les inputs \r\n    string_concat_inputs = 'string_concat_inputs', //value = le formatage d'une chaine en fonction de d'inputs\r\n\r\n    condition_inputs = \"conditions_inputs\", //value = {idInput : any, operateur : string, value; any}[]\r\n    data_value = \"data_value\"  //value = string[] pour aller chercher dans un dataSet\r\n}\r\n\r\nexport class Carte extends Page_Paiement {\r\n\r\n    PAIEMENT_TYPE = PAIEMENT_TYPE.CARTE ;\r\n    //module de paiement utilisé (sogecommerce, stripe ... )\r\n    private module_paiement! : modulePaiement ;\r\n    //représente la manière d'implémenter chaque champs d'entré du mode de paiement \r\n    private dataBinding! : {champs : string , type_binding : type_binding, value : any }[] ;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n    }\r\n\r\n    //récupère tout les champs a implémenter a partire du POO_Paiement \r\n    get_DataStructure(){\r\n        return this.module_paiement.getDataStructure();\r\n    }\r\n    get_dataBinding(){\r\n        return this.dataBinding;\r\n    }\r\n\r\n    //Bind un des champs, si celui ci existe \r\n    add_dataBinding(binding : {champs : string , type_binding : type_binding, value : any } ){\r\n        if(this.get_DataStructure().includes(binding.champs)) {\r\n            this.dataBinding.push(binding);\r\n        }  \r\n    }\r\n\r\n    //vérifie que le dataBinding à bien le champs demander de configurer \r\n    dataBinding_have(champs : string):boolean{\r\n        let bool = false ;\r\n        for(let b of this.dataBinding){\r\n            bool = bool || (b.champs == champs && b.value!= undefined) ;\r\n        }\r\n        return bool ;\r\n    }\r\n\r\n    //Vérifie que tout les champs sont configurer\r\n    is_dataBinding_complete():boolean{\r\n        let isComplete = true;\r\n        for(let champs of this.get_DataStructure()){\r\n            isComplete = isComplete && this.dataBinding_have(champs) ;\r\n        }\r\n        return isComplete ;\r\n    }\r\n\r\n    //Quand on initialise un nouveau module de paiement, on réinitialise de dataBinding \r\n    set_module_paiement(module_paiement : modulePaiement){ \r\n        this.module_paiement = module_paiement;\r\n        this.dataBinding = [];\r\n    }\r\n    get_module_paiement() : modulePaiement { return this.module_paiement ; }\r\n\r\n    rebuild_module_paiement(){\r\n        this.module_paiement = Paiement_Manager.rebuildPaiement(this.get_module_paiement()) ;\r\n    }\r\n}","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport {type_binding} from '../../../../poo/page/Type_Page/Paiement/Type_Paiement/carte'\r\nimport { Paiement } from '@ouivalo/paiement-lib';\r\nimport { AddReponse, PageSuivante } from '../../../../store/store';\r\n\r\n@Component({\r\n  selector: 'app-page-paiement-carte',\r\n  templateUrl: './carte.component.html',\r\n  styleUrls: ['./carte.component.scss']\r\n})\r\nexport class CarteComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n  modulePaiement! : Paiement ;\r\n  initComplete : boolean = false ;\r\n\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {\r\n    this.modulePaiement = this.page.get_module_paiement();\r\n    let dataBinding = this.page.get_dataBinding();\r\n\r\n    //construit l'objet Paiement a passer en paramètre de la librairie paiement \r\n    //en fonction du dataBinding renseigner dans la page \r\n    for(let b of dataBinding){\r\n      if(b.type_binding == type_binding.default ){ \r\n        Object.defineProperty(\r\n          this.modulePaiement, \r\n          b.champs, \r\n          { value : b.value }\r\n        );\r\n      }\r\n      if(b.type_binding == type_binding.input ){\r\n        let val;\r\n        if(b.value instanceof Array){\r\n           val = this.getValueInObject(b.value);\r\n        } else {\r\n           val = this.store.selectSnapshot(state => state.app.formConfig.inputs[b.value].reponse );\r\n        }\r\n        Object.defineProperty(\r\n          this.modulePaiement, \r\n          b.champs, \r\n          { value : val }\r\n        );\r\n      }\r\n      if(b.type_binding == type_binding.somme_inputs ){ \r\n\r\n        let result = 0;\r\n        for(let ref of b.value){\r\n          if(ref instanceof Array){\r\n             result += this.getValueInObject(ref);\r\n          } else {\r\n             result += this.store.selectSnapshot(state => state.app.formConfig.inputs[ref].reponse );\r\n          }\r\n        }\r\n\r\n        Object.defineProperty(\r\n          this.modulePaiement, \r\n          b.champs, \r\n          { value : result }\r\n        );\r\n      }\r\n      if(b.type_binding == type_binding.string_concat_inputs ){ \r\n\r\n        let result = \"\" ;\r\n        for(let ref of b.value){\r\n          if(typeof ref == 'string'){\r\n            result += ref ;\r\n          } else if (ref instanceof Array) { \r\n            result += this.getValueInObject(ref);\r\n          } else {\r\n            result += this.store.selectSnapshot(state => state.app.formConfig.inputs[ref].reponse )\r\n          }\r\n        }\r\n        Object.defineProperty(\r\n          this.modulePaiement, \r\n          b.champs, \r\n          { value : result }\r\n        );\r\n      }\r\n      if(b.type_binding == type_binding.condition_inputs ){ \r\n\r\n        let result = false;\r\n        for(let cond of b.value ){\r\n          let valueInput;\r\n          if(cond.idInput instanceof Array){ valueInput = this.getValueInObject(cond.idInput)}\r\n          else { valueInput = this.store.selectSnapshot(state => state.app.formConfig.inputs[cond.idInput].reponse) }  \r\n          switch(cond.operateur){\r\n            case '>' : result = result || valueInput > cond.value ; break;\r\n            case '<' : result = result || valueInput < cond.value ; break;\r\n            case '=' : result = result || valueInput == cond.value ; break;\r\n            case '!' : result = result || valueInput != cond.value ; break;\r\n            case '>=' : result = result || valueInput >= cond.value ; break;\r\n            case '<=' : result = result || valueInput <= cond.value ; break;\r\n            default : throw new Error(\"operateur non connue\")\r\n          }\r\n          //console.log('valueInput :',valueInput,'cond.value :',cond.value,'bool:',valueInput==cond.value,'result:',result);\r\n        }\r\n        \r\n        Object.defineProperty(\r\n          this.modulePaiement, \r\n          b.champs, \r\n          { value : result }\r\n        );\r\n      }\r\n    }\r\n    console.log(this.modulePaiement);\r\n    this.initComplete = true ;\r\n  }\r\n\r\n  //permet d'aller chercher une valeur dans un objet complexe a l'aide d'un tableau de clef \r\n  getValueInObject(tab : any[]){\r\n    //tab[0] référence l'id de l'input ou aller voir l'objet\r\n    let value = this.store.selectSnapshot(state => state.app.formConfig.inputs[tab[0]].reponse) ;\r\n    for(let key of tab.slice(1) ){\r\n      value = value[key] ;\r\n    }\r\n    return value ;\r\n  } \r\n\r\n  reaction_paiementStatus(result : boolean){\r\n     //TODO : gestion d'un echec de paiement\r\n    if(result){\r\n      //plus pertinement de mettre ailleurs l'envoie des réponses, une fois la gestion d'echec réaliser \r\n      this.store.dispatch(new AddReponse({nom : 'statut_paiement', value : result?'success':'echec'}));\r\n      this.store.dispatch(new AddReponse({nom : 'mode_paiement', value : 'carte'}));\r\n      this.store.dispatch(new PageSuivante());\r\n    } else {\r\n      throw new Error(\"form.page.paiement.carte : Echec du paiement\") ;\r\n    }\r\n  }\r\n}\r\n","<app-bloc [bloc]=\"page.html\"></app-bloc>\r\n<app-paiement *ngIf=\"initComplete\" [modulePaiement]=\"modulePaiement\" (paiementStatus)=\"reaction_paiementStatus($event)\"></app-paiement>\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport { AddReponse, PageSuivante } from '../../../../store/store';\r\n\r\n\r\n@Component({\r\n  selector: 'app-page-paiement-autre',\r\n  templateUrl: './autre.component.html',\r\n  styleUrls: ['./autre.component.scss']\r\n})\r\nexport class AutreComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  validationPaiement(){\r\n    this.store.dispatch(new AddReponse({nom : 'mode_paiement', value : 'autre'}));\r\n    this.store.dispatch(new AddReponse({nom : 'statut_paiement', value : 'attente'}));\r\n    this.store.dispatch(new PageSuivante());\r\n  }\r\n\r\n}\r\n","<app-bloc [bloc]=\"page.html\"></app-bloc>\r\n<button (click)=\"validationPaiement()\" >Continuer</button>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { PAIEMENT_TYPE } from '../../../poo/page/Type_Page/Paiement/PAIEMENT_TYPE';\r\n\r\n@Component({\r\n  selector: 'app-page-paiement',\r\n  templateUrl: './paiement.component.html',\r\n  styleUrls: ['./paiement.component.scss']\r\n})\r\nexport class PaiementComponent implements OnInit {\r\n\r\n  PAIEMENT_TYPE = PAIEMENT_TYPE;\r\n\r\n  @Input() page! : any;\r\n  constructor() { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n}\r\n","<div [ngSwitch]=\"page.METHODE_PAIEMENT\">\r\n    <h1 [innerHTML]=\"page.nom\"></h1>\r\n    <app-page-paiement-carte *ngSwitchCase=\"PAIEMENT_TYPE.CARTE\" [page]=\"page\"></app-page-paiement-carte>\r\n    <app-page-paiement-autre *ngSwitchCase=\"PAIEMENT_TYPE.AUTRE\" [page]=\"page\"></app-page-paiement-autre>\r\n    <div *ngSwitchDefault>Error loading Paiement mode</div>\r\n</div>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-page-grille',\r\n  templateUrl: './grille.component.html',\r\n  styleUrls: ['./grille.component.scss']\r\n})\r\nexport class GrilleComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n  constructor() { }\r\n\r\n  ngOnInit(): void { }\r\n\r\n  getWidth(index : number) {\r\n    let taille = 0 ;\r\n    let grilleContent = window.document.getElementById(this.page.nom+'-grille');\r\n    if(grilleContent){\r\n      //console.log('contenent',grilleContent.offsetWidth);\r\n      taille = ( grilleContent.offsetWidth * this.page.dimension.dimensionColonne[index])/100\r\n    }\r\n    return taille\r\n  }\r\n  getHeigth(index : number) { \r\n    let taille = 200 ;\r\n    let grilleContent = window.document.getElementById(this.page.nom+'-grille');\r\n    if(grilleContent){\r\n      //console.log('contenent',grilleContent.offsetWidth);\r\n      taille = ( grilleContent.offsetHeight * this.page.dimension.dimensionLigne[index])/100\r\n    }\r\n    return taille\r\n  }\r\n\r\n}\r\n","<h1 [innerHTML]=\"page.nom\"></h1>\r\n<app-bloc [bloc]=\"page.html\"></app-bloc>\r\n<div [id]=\"page.nom+'-grille'\" class=\"grille\">\r\n    <div class=\"g-ligne\" *ngFor=\"let ligne of page.grille; let indexL = index;\">\r\n        <div class=\"g-colonne\" *ngFor=\"let colonne of ligne; let indexC = index;\" [ngStyle]=\"{ 'width.px' : getWidth(indexC), 'height.px' : getHeigth(indexL) } \">\r\n            <app-element [element]=\"colonne\"></app-element>\r\n        </div>\r\n    </div> \r\n</div>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-page-fin',\r\n  templateUrl: './fin.component.html',\r\n  styleUrls: ['./fin.component.scss']\r\n})\r\nexport class FinComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {\r\n    window.location.href = this.page.href;\r\n  }\r\n\r\n}\r\n","\r\n","import { Component, OnInit, Input, OnDestroy } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport { PageSuivante } from '../../../store/store';\r\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n@Component({\r\n  selector: 'app-page-map',\r\n  templateUrl: './map.component.html',\r\n  styleUrls: ['./map.component.scss']\r\n})\r\nexport class MapComponent implements OnInit, OnDestroy {\r\n\r\n  @Input() page! : any;\r\n  private observer? : MutationObserver\r\n  public safeSrc?: SafeResourceUrl;  \r\n\r\n\r\n  constructor(private store: Store, private sanitizer: DomSanitizer) { }\r\n\r\n  ngOnInit(): void {\r\n    //ATTENTION : changer app.ouivalo.fr par ouivalo.fr lors de la mise en prod\r\n    this.safeSrc = this.sanitizer.bypassSecurityTrustResourceUrl('https://app.ouivalo.fr/composter/'+this.page.urlJson+'/solutions/filtre');\r\n\r\n    const iframe : any = document.querySelector('#iframe-map');\r\n    iframe.onload = () => {\r\n      const selectedPoint = iframe.contentWindow.document.querySelector('#selectedPoint-json') ;\r\n\r\n      //Observe la balise #selectedPoint-json de l'iframe, quand son contenu change (la map y enregistre un json), on récupère son contenu \r\n      //pour l'enregistrer dans l'input renseigner dans la page Map \r\n      //et on va a la page suivante\r\n      this.observer = new MutationObserver((jsonPoint) => {\r\n        \r\n        if(jsonPoint[0].target.textContent){\r\n\r\n          this.store.selectSnapshot(state => state.app.formConfig.inputs[this.page.id_inputReponse])\r\n            .reponse = JSON.parse(jsonPoint[0].target.textContent) ;\r\n\r\n          this.store.dispatch(new PageSuivante());\r\n        }\r\n\r\n      });\r\n      if(selectedPoint){\r\n        this.observer.observe(selectedPoint, {subtree: true, childList: true, characterData:true});\r\n      }\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    if(this.observer) this.observer.disconnect();\r\n  }\r\n}\r\n","<iframe [src]=\"safeSrc\" id=\"iframe-map\"></iframe>\r\n","import { Component, OnInit,Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'app-page-annexe',\r\n  templateUrl: './annexe.component.html',\r\n  styleUrls: ['./annexe.component.scss']\r\n})\r\nexport class AnnexeComponent implements OnInit {\r\n\r\n  @Input() page! : any;\r\n\r\n  constructor() { }\r\n\r\n  ngOnInit(): void {}\r\n  \r\n}","<app-bloc [ngClass]=\"page.html.classTab\" [bloc]=\"page.html\"></app-bloc>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Page } from '../../poo/page/ABSTRACT_Page';\r\nimport { PAGE_TYPE } from '../../poo/page/PAGE_TYPE';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\nimport { Store } from '@ngxs/store';\r\n\r\n@Component({\r\n  selector: 'app-page',\r\n  templateUrl: './page.component.html',\r\n  styleUrls: ['./page.component.scss']\r\n})\r\nexport class PageComponent implements OnInit, OnDestroy {\r\n\r\n  page! : Page;\r\n  PAGE_TYPE = PAGE_TYPE;\r\n\r\n  sub : Subscription[] = [];\r\n  token_ancre : boolean = false;\r\n\r\n  constructor(private store: Store) { }\r\n\r\n  ngOnInit(): void {\r\n\r\n    this.sub.push(\r\n    this.store.select(state => state.app.historique).subscribe(\r\n      histo => this.page = this.store.selectSnapshot(state => state.app.formConfig.pages.find((page:Page) => page.getId()==histo[histo.length-1])) \r\n    ))\r\n\r\n    //Ouvre seulement un token lors d'un changement d'ancre, pour attendre la fin du chargement de la page \r\n    this.sub.push(\r\n    this.store.select(state => state.app.ancre).subscribe(\r\n      () =>  this.token_ancre = true \r\n    ))\r\n    \r\n  }\r\n\r\n  ngOnDestroy(){ for(let subscription of this.sub) subscription.unsubscribe() }\r\n\r\n  ngAfterViewChecked(){\r\n    if(this.token_ancre) {\r\n      location.hash = this.store.selectSnapshot(state => state.app.ancre)\r\n      this.token_ancre = false \r\n    }\r\n  }\r\n  \r\n}\r\n","<div [ngSwitch]=\"page.PAGE_TYPE\" [id]=\"page.marker?page.marker:undefined\">\r\n    <app-page-flux class=\"flux\" *ngSwitchCase=\"PAGE_TYPE.FLUX\" [page]=\"page\"></app-page-flux>\r\n    <app-page-paiement  *ngSwitchCase=\"PAGE_TYPE.PAIEMENT\" [page]=\"page\"></app-page-paiement>\r\n    <app-page-grille  *ngSwitchCase=\"PAGE_TYPE.GRILLE\" [page]=\"page\"></app-page-grille>\r\n    <app-page-fin  *ngSwitchCase=\"PAGE_TYPE.FIN\" [page]=\"page\"></app-page-fin>\r\n    <app-page-map  *ngSwitchCase=\"PAGE_TYPE.MAP\" [page]=\"page\"></app-page-map>\r\n    <app-page-annexe  *ngSwitchCase=\"PAGE_TYPE.ANNEXE\" [page]=\"page\"  class=\"annexe\"></app-page-annexe>\r\n    <div *ngSwitchDefault>error loading page</div>\r\n</div>\r\n\r\n","import { Component, OnInit,Input } from '@angular/core';\r\nimport { ManagerService } from '../../poo/service/ManagerService'\r\nimport {Modale} from '../../poo/modale'\r\nimport { Store } from '@ngxs/store';\r\nimport { SetModaleActive } from '../../store/store';\r\n\r\n@Component({\r\n  selector: 'app-modal',\r\n  templateUrl: './modal.component.html',\r\n  styleUrls: ['./modal.component.scss']\r\n})\r\nexport class ModalComponent implements OnInit {\r\n\r\n  @Input() modale! : Modale\r\n  @Input() urlRedirect! : any\r\n\r\n  constructor(private managerService : ManagerService,private store: Store) { }\r\n\r\n  ngOnInit(): void {}\r\n\r\n  sortieFormulaire(){  document.location.href = this.managerService.getValue(this.urlRedirect); }\r\n\r\n  closeModale(){this.store.dispatch(new SetModaleActive(false)) }\r\n\r\n}\r\n","<div class=\"modal\">\r\n    <div>\r\n      <header>\r\n        <p>Attention</p>\r\n      </header>\r\n      <section>\r\n        <app-element class=\"element\" [element]=\"modale.body\"></app-element>\r\n      </section>\r\n      <footer>            \r\n          <button (click)=\"sortieFormulaire()\" [innerHTML]=\"modale.end\"></button>\r\n          <button (click)=\"closeModale()\" [innerHTML]=\"modale.continue\"></button>\r\n      </footer>\r\n    </div>\r\n</div>\r\n","import { Component, OnInit, Input ,Output,EventEmitter,OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport { Store } from '@ngxs/store';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\nimport { Formulaire } from '../poo/formulaire';\r\nimport { InitApp, SubmitReponse, ResetMessage, SetUploadsURL, ReponseEnvoyee, DocumentEnvoyee} from '../store/store';\r\n\r\n@Component({\r\n  selector: 'app-formulaire',\r\n  templateUrl: './formulaire.component.html',\r\n  styleUrls: ['./formulaire.component.scss']\r\n})\r\nexport class FormulaireComponent implements OnInit, OnChanges, OnDestroy {\r\n  \r\n  //ne sert qu'a le recevoir, pour l'envoyer dans le store \r\n  @Input() formulaire! : Formulaire;            \r\n  @Input() data! : {nom:string,value:Object[]}[];     \r\n  @Input() uploadsUrl! : string[];  \r\n\r\n  //pour envoyer les réponse & les fichier a sauvgarder, a chaque changement de page \r\n  @Output() reponse = new EventEmitter<{nom : string, value : any}[]>();\r\n  @Output() toUploads = new EventEmitter<any[]>();\r\n  @Output() updateMatrice = new EventEmitter<Formulaire>();\r\n\r\n  message : {class : string[], text : string}[] = [] ; //pour afficher des messages à l'utilisateur\r\n  modaleActive : any = {etat : false , contenu : {}, urlRedirect : \"#\"} ;\r\n\r\n  sub : Subscription[] = []\r\n\r\n  constructor(private store: Store) { \r\n\r\n    //si on a demander l'envoie de donnée, on envoie les données et ferme le token \r\n    this.sub.push(\r\n    this.store.select(state => state.app.token_submitReponse).subscribe( value => {\r\n        if(value){\r\n          //ferme le token\r\n          this.store.dispatch(new SubmitReponse(false));\r\n\r\n          //Si la matrice a été modifier en interne, l'envoie \r\n          if(this.store.selectSnapshot(state => state.app.token_modifMatrice)) \r\n              this.updateMatrice.emit(this.store.selectSnapshot(state => state.app.formConfig))\r\n          \r\n          //envoie les réponse et les reset \r\n          this.reponse.emit(this.store.selectSnapshot(state => state.app.reponses));\r\n          this.store.dispatch(new ReponseEnvoyee());\r\n\r\n        }\r\n      }\r\n    ))\r\n\r\n    //A chaque uploads de document, les envoie au back\r\n    this.sub.push(\r\n    this.store.select(state => state.app.toUploads).subscribe(value => { \r\n      if(value && value.length>0 ){\r\n        this.toUploads.emit(value)\r\n        this.store.dispatch(new DocumentEnvoyee())//reset les uploads\r\n      }\r\n    }))\r\n\r\n    this.sub.push(\r\n      this.store.select(state => state.app.modaleActive).subscribe( value => this.modaleActive = value )\r\n    )\r\n  }\r\n\r\n  ngOnInit(): void { \r\n    //Initialise le store \r\n    this.store.dispatch(new InitApp(this.formulaire,this.data)) \r\n\r\n    //Met a jour les messages lors d'un changement de page \r\n    this.sub.push(\r\n    this.store.select(state => state.app.historique).subscribe(\r\n      () => {\r\n        this.message = this.store.selectSnapshot(state => state.app.messages);\r\n        this.store.dispatch(new ResetMessage());\r\n      }\r\n    ))\r\n  }\r\n\r\n  ngOnChanges(changements: SimpleChanges) {\r\n    if(changements['uploadsUrl'] && changements['uploadsUrl'].currentValue!= [] && changements['uploadsUrl'].currentValue != changements['uploadsUrl'].previousValue)\r\n      this.store.dispatch(new SetUploadsURL(changements['uploadsUrl'].currentValue))\r\n  }\r\n\r\n  ngOnDestroy(){ \r\n    for(let subscription of this.sub) subscription.unsubscribe()\r\n  }\r\n}\r\n","<div class=\"lib-formulaire\">\r\n    <app-bloc *ngIf=\"formulaire.extraBloc\" class=\"lib-extraBloc\" [bloc]=\"formulaire.extraBloc\"></app-bloc>\r\n    \r\n    <form #f=\"ngForm\" [id]=\"formulaire.nom\" class=\"lib-page\">\r\n        <app-page></app-page>\r\n        <div class=\"message-container\">\r\n            <div *ngFor=\"let m of message\" [innerHTML]=\"m.text\" [ngClass]=\"m.class\"></div>\r\n        </div>\r\n    </form>\r\n\r\n    <app-modal *ngIf=\"modaleActive.etat\" [modale]=\"modaleActive.contenu\" [urlRedirect]=\"modaleActive.urlRedirect\"></app-modal>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgxsModule } from '@ngxs/store';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport {PaiementLibrairieModule} from \"@ouivalo/paiement-lib\";\r\n\r\nimport { GlobalState } from './store/store';\r\n\r\nimport { FormulaireComponent } from './lib/formulaire.component';\r\nimport { PageComponent } from './lib/page/page.component';\r\nimport { InputComponent } from './lib/input/input.component';\r\nimport { FluxComponent } from './lib/page/flux/flux.component';\r\nimport { PaiementComponent } from './lib/page/paiement/paiement.component';\r\nimport { CheckBoxComponent } from './lib/input/check-box/check-box.component';\r\nimport { EmailComponent } from './lib/input/email/email.component';\r\nimport { NombreComponent } from './lib/input/nombre/nombre.component';\r\nimport { RadioComponent } from './lib/input/radio/radio.component';\r\nimport { TelephoneComponent } from './lib/input/telephone/telephone.component';\r\nimport { TextCourtComponent } from './lib/input/text-court/text-court.component';\r\nimport { TextLongComponent } from './lib/input/text-long/text-long.component';\r\nimport { CarteComponent } from './lib/page/paiement/carte/carte.component';\r\nimport { LinkComponent } from './lib/input/link/link.component';\r\nimport { GrilleComponent } from './lib/page/grille/grille.component';\r\nimport { ElementComponent } from './lib/element/element.component';\r\nimport { ImageComponent } from './lib/element/image/image.component';\r\nimport { TextComponent } from './lib/element/text/text.component';\r\nimport { VideComponent } from './lib/element/vide/vide.component';\r\nimport { LiensComponent } from './lib/element/liens/liens.component';\r\nimport { BoutonComponent } from './lib/element/bouton/bouton.component';\r\nimport { FinComponent } from './lib/page/fin/fin.component';\r\nimport { RadioObjectComponent } from './lib/input/radio-object/radio-object.component';\r\nimport { MapComponent } from './lib/page/map/map.component';\r\nimport { BlocComponent } from './lib/bloc/bloc.component';\r\nimport { BlocInputComponent } from './lib/bloc/bloc-input/bloc-input.component';\r\nimport { AutreComponent } from './lib/page/paiement/autre/autre.component';\r\nimport { SommaireComponent } from './lib/bloc/sommaire/sommaire.component';\r\nimport { SelectComponent } from './lib/input/select/select.component';\r\nimport { FilesComponent } from './lib/input/files/files.component';\r\nimport { ListFilesComponent } from './lib/input/files/list-files/list-files.component';\r\nimport { AddFilesComponent } from './lib/input/files/add-files/add-files.component';\r\nimport { BoutonNextComponent } from './lib/bloc/bouton-next/bouton-next.component';\r\nimport { BoutonBackComponent } from './lib/bloc/bouton-back/bouton-back.component';\r\nimport { BoutonEndComponent } from './lib/bloc/bouton-end/bouton-end.component';\r\nimport { ModalComponent } from './lib/modal/modal.component';\r\nimport { HtmlComponent } from './lib/input/html/html.component';\r\nimport { AnnexeComponent as page_AnnexeComponent} from './lib/page/annexe/annexe.component';\r\nimport { AnnexeComponent as input_AnnexeComponent} from './lib/input/annexe/annexe.component';\r\n\r\nimport {DropdownModule} from 'primeng/dropdown';\r\nimport {EditorModule} from 'primeng/editor';\r\n\r\n\r\n@NgModule({\r\n  declarations: [\r\n    FormulaireComponent,\r\n    PageComponent,\r\n    InputComponent,\r\n    FluxComponent,\r\n    PaiementComponent,\r\n    CheckBoxComponent,\r\n    EmailComponent,\r\n    NombreComponent,\r\n    RadioComponent,\r\n    TelephoneComponent,\r\n    TextCourtComponent,\r\n    TextLongComponent,\r\n    CarteComponent,\r\n    LinkComponent,\r\n    GrilleComponent,\r\n    ElementComponent,\r\n    ImageComponent,\r\n    TextComponent,\r\n    VideComponent,\r\n    LiensComponent,\r\n    BoutonComponent,\r\n    FinComponent,\r\n    RadioObjectComponent,\r\n    MapComponent,\r\n    BlocComponent,\r\n    BlocInputComponent,\r\n    AutreComponent,\r\n    SommaireComponent,\r\n    SelectComponent,\r\n    FilesComponent,\r\n    ListFilesComponent,\r\n    AddFilesComponent,\r\n    BoutonNextComponent,\r\n    BoutonBackComponent,\r\n    BoutonEndComponent,\r\n    ModalComponent,\r\n    HtmlComponent,\r\n    input_AnnexeComponent,\r\n    page_AnnexeComponent\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    EditorModule,\r\n    PaiementLibrairieModule,\r\n    EditorModule,\r\n    DropdownModule,\r\n    BrowserModule,\r\n    BrowserAnimationsModule,\r\n    NgxsModule.forRoot([GlobalState])\r\n  ],\r\n  exports: [FormulaireComponent]\r\n})\r\nexport class FormLibrairieModule { }\r\n","import { INPUT_TYPE } from './INPUT_TYPE';\r\nimport { Vide } from '../element/Type_Element/Vide';\r\nimport { Element } from '../element/ABSTRACT_Element';\r\nimport { Element_Manager } from '../element/MANAGER_Element';\r\n\r\nexport abstract class Input {\r\n\r\n    abstract INPUT_TYPE : INPUT_TYPE;\r\n\r\n    protected id : number;\r\n    nom: string;\r\n    isAfficher: boolean;\r\n    isRequire: boolean;\r\n    label?: Element;\r\n    reponse : any;\r\n    \r\n    constructor (nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean)\r\n    {\r\n        this.nom = nom ; \r\n\r\n        //valeur par défaut\r\n        this.id = -1;  //on considère id = index de l'input dans formulaire.inputs donc > 0\r\n        this.isAfficher = isAfficher || true ;\r\n        this.isRequire = isRequire || false ;\r\n        this.label = label || undefined ;\r\n    }\r\n\r\n    is_valide():boolean {\r\n        try {\r\n            this.messageErreur();\r\n            return this.validation()\r\n        } catch (error) {\r\n            throw error\r\n        }\r\n    }\r\n\r\n    abstract messageErreur() : void;\r\n    abstract validation() : boolean\r\n\r\n    setId(id : number){ this.id = id; }\r\n    getId() : number { return this.id ; }\r\n\r\n    deepRebuild(){\r\n        if(this.label) this.label = Element_Manager.rebuild(this.label)\r\n    }\r\n}","export class InputValidation_Error extends Error { }","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\n\r\n\r\nexport class CheckBox extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.CHECKBOX;\r\n\r\n    isCheck : boolean;\r\n    value : string;\r\n     \r\n    constructor(nom: string, isChek? : boolean, value? : string, label? : Element, isRequire? : boolean, isAfficher? : boolean){\r\n        super(nom,label,isRequire,isAfficher)\r\n\r\n        this.isCheck = isChek || false;\r\n        this.value = value || \"on\";\r\n    }\r\n\r\n    validation():boolean { return !this.isRequire || (this.isRequire && this.reponse !== undefined && this.reponse)}\r\n\r\n    messageErreur(){\r\n        if(this.isRequire && (this.reponse == undefined || !this.reponse)) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { PlaceHolder } from \"./INTERFACE_PlaceHolder\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\n\r\nexport abstract class Text extends Input implements PlaceHolder {\r\n\r\n    min : number;\r\n    max: number;\r\n    placeHolder : Service | string ;\r\n    value: Service | string ;\r\n\r\n    constructor( nom: string, label? : Element,value? : Service | string, placeHolder? : Service | string ){\r\n        super(nom,label);\r\n\r\n        this.min = 0;\r\n        this.max = 200;\r\n        this.placeHolder = placeHolder || '';\r\n        this.value = value || ''\r\n    }\r\n\r\n    validation():boolean {\r\n        return (this.reponse == undefined && !this.isRequire) || (this.reponse !== undefined && this.reponse.length <= this.max && this.reponse.length >= this.min) ;\r\n    }\r\n\r\n    messageErreur(){\r\n        if(this.isRequire && (this.reponse == undefined || this.reponse=='')){ throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n        if(this.reponse !== undefined && this.reponse.length > this.max){ throw new InputValidation_Error(\"le champs \"+this.nom+\" doit faire moins de \"+this.max+\" caractère\")}\r\n        if(this.reponse !== undefined && this.reponse.length < this.min){ throw new InputValidation_Error(\"le champs \"+this.nom+\" doit faire plus de \"+this.min+\" caractère\")}\r\n    }\r\n\r\n    rebuild_placeHolder(){\r\n        this.placeHolder = ManagerService.rebuild(this.placeHolder)\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.value =  ManagerService.rebuild(this.value)\r\n        this.rebuild_placeHolder();\r\n    }\r\n}","import { Text } from \"./ABSTRACT_Text\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\nexport class TextCourt extends Text {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.TEXT_COURT; \r\n\r\n    pattern : string \r\n    size : number;\r\n   \r\n    constructor(nom: string, label? : Element, value?:  Service | string, placeHolder? : Service | string, pattern? : string){\r\n\r\n        super(nom,label,value,placeHolder);\r\n\r\n        this.size =  12 ;\r\n        this.pattern = pattern || /.*/.source ;\r\n    }\r\n\r\n    override validation(): boolean {\r\n        let restoredRegex = new RegExp(this.pattern)\r\n        return ((this.reponse == undefined || this.reponse == '') && !this.isRequire) || (this.reponse !== undefined && this.reponse.length <= this.max && this.reponse.length >= this.min && restoredRegex.test(this.reponse)) \r\n    }\r\n\r\n    override messageErreur(): void {\r\n        super.messageErreur()\r\n        let restoredRegex = new RegExp(this.pattern)\r\n        if(this.reponse !== undefined && this.reponse !== '' && !restoredRegex.test(this.reponse)) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est incorect\")}\r\n    }\r\n}","import { TextCourt } from \"./TextCourt\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\nexport class Email extends TextCourt {\r\n\r\n    override INPUT_TYPE = INPUT_TYPE.EMAIL; \r\n\r\n    constructor(nom: string, label? : Element, value? :  Service | string, placeHolder? :  Service | string){\r\n\r\n        super(nom,label,value,placeHolder,\r\n            /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/.source\r\n        );\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { PlaceHolder }  from \"./INTERFACE_PlaceHolder\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\n\r\nexport enum affichageNombre {\r\n    simple = \"simple\",\r\n    plus_et_moins = \"plus_et_moins\"\r\n}\r\n\r\nexport class Nombre extends Input implements PlaceHolder {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.NOMBRE; \r\n\r\n    placeHolder : Service | string;\r\n    step : number;\r\n    min : number;\r\n    max: number;\r\n    unite : string;\r\n    typeAffichage : affichageNombre;\r\n    value : Service | string ;\r\n\r\n    constructor(nom: string, label? : Element, value? : Service | string, placeHolder? : Service | string){\r\n        super(nom,label)\r\n\r\n        //valeur par defaut\r\n        this.placeHolder = placeHolder || '';\r\n        this.step = 1;\r\n        this.min = 0;\r\n        this.max =  100;\r\n        this.unite = \"\";\r\n        this.typeAffichage =  affichageNombre.simple;\r\n        this.value = value || '';\r\n    }\r\n\r\n    validation():boolean {\r\n        return (this.reponse == undefined && !this.isRequire) || (this.reponse !== undefined && this.reponse <= this.max && this.reponse >= this.min && this.reponse % this.step == 0) \r\n    }\r\n\r\n    messageErreur(){\r\n        if(this.reponse == undefined && this.isRequire) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n        if(this.reponse !== undefined && this.reponse > this.max){ throw new InputValidation_Error(\"le champs \"+this.nom+\" doit être inférieur à \"+this.max)}\r\n        if(this.reponse !== undefined && this.reponse < this.min){ throw new InputValidation_Error(\"le champs \"+this.nom+\" doit être supérieur à \"+this.min)}\r\n        if(this.reponse !== undefined && this.reponse % this.step != 0){ throw new InputValidation_Error(\"le champs \"+this.nom+\" possède un pas de \"+this.step)}\r\n    }\r\n\r\n    rebuild_placeHolder(){\r\n        this.placeHolder = ManagerService.rebuild(this.placeHolder)\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.rebuild_placeHolder();\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from \"../../element/ABSTRACT_Element\";\r\nimport { Element_Manager } from \"../../element/MANAGER_Element\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\n\r\nexport enum affichageRadio {\r\n    simple = \"simple\",\r\n    boutton = \"boutton\"\r\n}\r\n\r\nexport class Radio extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.RADIO;\r\n\r\n    listeChoix : {value:string,label:Element,nom:string}[];\r\n    typeAffichage : affichageRadio;\r\n    isLink : boolean;\r\n    \r\n    constructor(nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean, isLink? : boolean, typeAffichage? : affichageRadio){\r\n        super(nom,label,isRequire,isAfficher)\r\n\r\n        //default value\r\n        this.listeChoix = [] ;\r\n        this.isLink = isLink || false ;\r\n        this.typeAffichage = typeAffichage || affichageRadio.simple ;\r\n    }\r\n\r\n    validation():boolean {\r\n        return  !this.isRequire || (this.isRequire && this.reponse !== undefined) ;\r\n    }\r\n\r\n    messageErreur(){\r\n        if(this.reponse == undefined && this.isRequire) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n    }\r\n\r\n    add_choix(choix : {value:string,label:Element,nom:string}){\r\n        this.listeChoix.push(choix) ;\r\n    }\r\n    //TODO : de quoi modifier la liste de choix \r\n\r\n    override deepRebuild(){\r\n        super.deepRebuild();\r\n        for(let choix of this.listeChoix){\r\n            choix.label = Element_Manager.rebuild(choix.label);\r\n        }\r\n    }\r\n}","import { TextCourt } from \"./TextCourt\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\"; \r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\nexport class Telephone extends TextCourt {\r\n\r\n    override INPUT_TYPE = INPUT_TYPE.TELEPHONE;\r\n    \r\n    constructor(nom: string, label? : Element, value? :  Service | string, placeHolder? :  Service | string){\r\n\r\n        super(nom,label,value,placeHolder,\r\n            /^(0|\\\\+33|0033)[1-9][0-9]{8}$/.source\r\n        );\r\n    }\r\n} ","import { Text } from \"./ABSTRACT_Text\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\nexport class TextLong extends Text {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.TEXT_LONG; \r\n    \r\n    wrap : boolean;\r\n    rows : number;\r\n    \r\n    constructor(nom: string, label? : Element, value? :  Service | string, placeHolder? : Service | string){\r\n        super(nom,label,value,placeHolder);\r\n\r\n        this.wrap =  true;\r\n        this.rows =  10;\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\n\r\n\r\nexport class Link extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.LINK; \r\n\r\n    constructor(nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean){\r\n        super(nom,label,isRequire,isAfficher)\r\n    }\r\n\r\n    validation(): boolean { return true}\r\n    messageErreur(): void { }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\n\r\nexport class RadioObject extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.RADIO_OBJECT; \r\n    \r\n    nomDataSet : string;\r\n    champsIgnorer : string[];\r\n\r\n    constructor(nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean, nomDataSet? : string){\r\n        super(nom,label,isRequire,isAfficher)\r\n\r\n        this.nomDataSet = nomDataSet || \"\";\r\n        this.champsIgnorer = [];\r\n    }\r\n\r\n    validation():boolean {\r\n        return  !this.isRequire || (this.isRequire && this.reponse !== undefined) ;\r\n    }\r\n    messageErreur(){\r\n        if(this.reponse == undefined && this.isRequire) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\n\r\n\r\nexport class Hidden extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.HIDDEN; \r\n\r\n    constructor(nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean){\r\n        super(nom,label,isRequire,isAfficher)\r\n    }\r\n\r\n    validation(): boolean { return true}\r\n    messageErreur(): void { }\r\n    \r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from \"../../element/ABSTRACT_Element\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\nimport { ManagerService } from \"../../service/ManagerService\";\r\n\r\n\r\nexport class Select extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.SELECT;\r\n\r\n    value : Service | string ;\r\n    listeChoix : {value:string,text:string}[];\r\n    \r\n    constructor(nom: string, label? : Element, isRequire? : boolean){\r\n        super(nom,label,isRequire)\r\n\r\n        //default value\r\n        this.value = '' ;\r\n        this.listeChoix = [] ;\r\n    }\r\n\r\n    validation():boolean {\r\n        return  !this.isRequire || (this.isRequire && this.reponse !== undefined) ;\r\n    }\r\n\r\n    messageErreur(){\r\n        if(this.reponse == undefined && this.isRequire) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n    }\r\n\r\n    add_choix(choix : {value:string,text:string}){\r\n        this.listeChoix.push(choix) ;\r\n    }\r\n    //TODO : de quoi modifier la liste de choix \r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild()\r\n        this.value = ManagerService.rebuild(this.value)\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from \"../../element/ABSTRACT_Element\";\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\nexport class Files extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.FILES;\r\n    dataSet : string ;\r\n    format : string[] ;\r\n    multiple : boolean\r\n    value? : Service | string[]\r\n\r\n    constructor(nom :string,dataSet:string,label?:Element,isRequire?:boolean,isAfficher?:boolean){\r\n        super(nom,label,isRequire,isAfficher);\r\n        this.dataSet = dataSet;\r\n        this.format = ['apng','avif','gif','jpeg','png','svg','webp','jpg','jfif','pjpeg','pjp'];\r\n        this.multiple = false ;\r\n\r\n    }\r\n\r\n    validation():boolean {\r\n        return  !this.isRequire || (this.isRequire && this.reponse !== undefined) ;\r\n    }\r\n\r\n    messageErreur(){}\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Service } from \"../../service/ABSTRACT_Service\";\r\n\r\n\r\nexport class Html extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.HTML; \r\n\r\n    height : number //en px\r\n    value: Service | string ;\r\n\r\n    constructor(nom: string, value? : Service | string,label? : Element){\r\n        super(nom,label)\r\n\r\n        this.height = 320;\r\n        this.value = value || ''\r\n    }\r\n\r\n    validation():boolean { return !this.isRequire || (this.isRequire && this.reponse !== undefined && this.reponse)}\r\n\r\n    messageErreur(){\r\n        if(this.isRequire && (this.reponse == undefined || !this.reponse)) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")}\r\n    }\r\n}","import { Input } from \"../ABSTRACT_Input\";\r\nimport { INPUT_TYPE } from \"../INPUT_TYPE\";\r\nimport { Element } from '../../element/ABSTRACT_Element';\r\nimport { Annexe as page_annexe } from \"../../page/Type_Page/Annexe\";\r\nimport { InputValidation_Error } from \"../../error/InputValidation_Error\";\r\n\r\n\r\nexport class Annexe extends Input {\r\n\r\n    INPUT_TYPE = INPUT_TYPE.ANNEXE; \r\n\r\n    constructor(nom: string, label? : Element, isRequire? : boolean, isAfficher? : boolean){\r\n        super(nom,label,isRequire,isAfficher)\r\n    }\r\n\r\n    validation(): boolean { return !this.isRequire || (this.isRequire && this.reponse !== undefined && this.reponse)}\r\n    messageErreur(): void { \r\n        if(this.isRequire && (this.reponse == undefined || !this.reponse)) { throw new InputValidation_Error(\"le champs \"+this.nom+\" est requis\")} \r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild();\r\n        if(this.reponse) for(let page of this.reponse) {\r\n            page = Object.setPrototypeOf(page,page_annexe.prototype)\r\n            page.deepRebuild()\r\n        }\r\n    }\r\n}","import { Input } from \"./ABSTRACT_Input\";\r\n\r\nimport {CheckBox} from \"./Type_Input/CheckBox\";\r\nimport {Email} from \"./Type_Input/Email\";\r\nimport {Nombre} from \"./Type_Input/Nombre\";\r\nimport {Radio} from \"./Type_Input/Radio\";\r\nimport {Telephone} from \"./Type_Input/Telephone\";\r\nimport {TextCourt} from \"./Type_Input/TextCourt\";\r\nimport {TextLong} from \"./Type_Input/TextLong\";\r\nimport {Link} from \"./Type_Input/Link\";\r\nimport { RadioObject } from \"./Type_Input/RadioObject\";\r\nimport { Hidden } from \"./Type_Input/Hidden\";\r\nimport { Select } from \"./Type_Input/Select\";\r\nimport { Files } from \"./Type_Input/Files\";\r\nimport { Html } from \"./Type_Input/html\";\r\nimport { Annexe } from \"./Type_Input/Annexe\";\r\n\r\nimport { INPUT_TYPE } from \"./INPUT_TYPE\";\r\n\r\n\r\nexport class Input_Manager {\r\n\r\n    static rebuild(input:any) : Input {\r\n        let rebuildInput : Input = Object.setPrototypeOf(input,Input.prototype);\r\n        let prototype ;\r\n        switch(input['INPUT_TYPE']){\r\n            case INPUT_TYPE.CHECKBOX : {\r\n                prototype = CheckBox.prototype ; break \r\n            }\r\n            case INPUT_TYPE.EMAIL : {\r\n                prototype = Email.prototype ; break \r\n            }\r\n            case INPUT_TYPE.NOMBRE : {\r\n                prototype = Nombre.prototype ; break \r\n            }\r\n            case INPUT_TYPE.RADIO : {\r\n                prototype = Radio.prototype ; break \r\n            }\r\n            case INPUT_TYPE.TELEPHONE : {\r\n                prototype = Telephone.prototype ; break \r\n            }\r\n            case INPUT_TYPE.TEXT_COURT : {\r\n                prototype = TextCourt.prototype ; break \r\n            }\r\n            case INPUT_TYPE.TEXT_LONG : {\r\n                prototype = TextLong.prototype ; break \r\n            }\r\n            case INPUT_TYPE.LINK : {\r\n                prototype = Link.prototype ; break \r\n            }\r\n            case INPUT_TYPE.RADIO_OBJECT : {\r\n                prototype = RadioObject.prototype ; break \r\n            }\r\n            case INPUT_TYPE.HIDDEN : {\r\n                prototype = Hidden.prototype ; break \r\n            }\r\n            case INPUT_TYPE.SELECT : {\r\n                prototype = Select.prototype ; break \r\n            }\r\n            case INPUT_TYPE.FILES : {\r\n                prototype = Files.prototype ; break \r\n            }\r\n            case INPUT_TYPE.HTML : {\r\n                prototype = Html.prototype ; break \r\n            }\r\n            case INPUT_TYPE.ANNEXE : {\r\n                prototype = Annexe.prototype ; break \r\n            }  \r\n            default : { throw new Error(\"type d'input inconnue\") ; }\r\n        }  \r\n        rebuildInput = Object.setPrototypeOf(rebuildInput, prototype);\r\n        rebuildInput.deepRebuild(); \r\n        return rebuildInput ;\r\n    }\r\n}","import { Page } from \"../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../PAGE_TYPE\";\r\n\r\nexport class Flux extends Page{\r\n\r\n    PAGE_TYPE = PAGE_TYPE.FLUX ;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n    }\r\n}","import { Page } from \"../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../PAGE_TYPE\";\r\nimport { Element } from \"../../element/ABSTRACT_Element\";\r\nimport { Vide } from \"../../element/Type_Element/Vide\";\r\nimport { Element_Manager } from \"../../element/MANAGER_Element\";\r\n\r\nexport class Grille extends Page{\r\n\r\n    PAGE_TYPE = PAGE_TYPE.GRILLE ;\r\n    taille : {nbLigne : number, nbColonne : number}\r\n    dimension : {dimensionLigne : number[], dimensionColonne : number[] } // en %\r\n    grille : Element[][] ;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n        this.taille = {nbLigne : 1, nbColonne : 1} ;\r\n        this.grille = [[]];\r\n        this.dimension = {dimensionColonne : [100], dimensionLigne :[100]}\r\n    }\r\n\r\n    //reset aussi le contenu de la grille et ses dimension \r\n    set_taille(taille : {nbLigne : number, nbColonne : number}){\r\n        this.taille= taille;\r\n        let tab = [];\r\n        this.grille = []; \r\n        let colonne = [];\r\n        for(let j = 0; j<taille.nbColonne; j++){\r\n            tab.push(100/this.taille.nbColonne);\r\n            colonne.push(new Vide());\r\n        }\r\n        this.dimension.dimensionColonne = tab.slice() ; tab = [] ;\r\n        for(let i = 0; i<taille.nbLigne; i++){\r\n            tab.push(100/this.taille.nbLigne);\r\n            this.grille.push(colonne.slice() );\r\n        }\r\n        this.dimension.dimensionLigne = tab.slice() ;\r\n    }\r\n\r\n    set_case(indexLigne:number, indexColonne:number, maCase : Element ){\r\n        this.grille[indexLigne][indexColonne] = maCase;\r\n    }\r\n\r\n    set_dimension(dimension : {dimensionLigne : number[], dimensionColonne : number[] }){\r\n        if(dimension.dimensionLigne.length == this.taille.nbLigne && dimension.dimensionColonne.length == this.taille.nbColonne){\r\n            let sumL = 0 ; let sumC = 0;\r\n            for(let l of dimension.dimensionLigne){\r\n                sumL+=l\r\n            }\r\n            for(let c of dimension.dimensionColonne){\r\n                sumC += c \r\n            }\r\n            if(Math.round(sumC)>=99 && Math.round(sumC)<=101 && Math.round(sumL)>=99 && Math.round(sumL)<=101){\r\n                this.dimension= dimension ;\r\n            } else {\r\n                throw new Error('le total de chaque ligne et chaque colonne doit faire 100% (environ 1%)')\r\n            }\r\n        } else {\r\n            throw new Error('il faut parametrer la dimension de chaque ligne et colonne en poucentage !')\r\n        }\r\n    }\r\n\r\n    override deepRebuild(): void {\r\n        super.deepRebuild();\r\n        for(let l of this.grille){\r\n            for(let e of l){\r\n                e = Element_Manager.rebuild(e);\r\n            }\r\n        }\r\n    }\r\n}","import { Page } from \"../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../PAGE_TYPE\";\r\n\r\nexport class Fin extends Page{\r\n\r\n    PAGE_TYPE = PAGE_TYPE.FIN ;\r\n\r\n    href : string;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n        this.href ='#'\r\n    }\r\n}","import { Page } from \"../ABSTRACT_Page\";\r\nimport { PAGE_TYPE } from \"../PAGE_TYPE\";\r\n\r\nexport class Map extends Page{\r\n\r\n    PAGE_TYPE = PAGE_TYPE.MAP ;\r\n    id_inputReponse : number;\r\n    urlJson : string;\r\n\r\n    //Le constructeur prend en entrée un input hidden ou enregistrer la réponse \r\n    constructor(nom : string, urlJson : string)\r\n    {\r\n        super(nom) ;\r\n        this.id_inputReponse = -1; \r\n        this.urlJson = urlJson ;\r\n    }\r\n}","import {Page_Paiement} from \"../ABSTRACT_Paiement\"\r\nimport {PAIEMENT_TYPE } from \"../PAIEMENT_TYPE\";\r\n\r\nexport class Autre extends Page_Paiement {\r\n\r\n    PAIEMENT_TYPE = PAIEMENT_TYPE.AUTRE ;\r\n\r\n    constructor(nom : string)\r\n    {\r\n        super(nom) ;\r\n    }\r\n}","import {Page_Paiement} from \"./ABSTRACT_Paiement\" ;\r\nimport {Autre} from \"./Type_Paiement/autre\" ;\r\nimport {Carte} from \"./Type_Paiement/carte\" ;\r\n\r\nimport { PAIEMENT_TYPE } from \"./PAIEMENT_TYPE\";\r\n\r\nexport class Page_Paiement_manager {\r\n\r\n    static rebuildPaiement(page:any) : Page_Paiement {\r\n        switch(page[\"PAIEMENT_TYPE\"]){\r\n            case PAIEMENT_TYPE.CARTE : {\r\n                let carte =  Object.setPrototypeOf(page,Carte.prototype);\r\n                carte.rebuild_module_paiement();\r\n                return carte//break;\r\n            }\r\n            case PAIEMENT_TYPE.AUTRE : {\r\n                return Object.setPrototypeOf(page,Autre.prototype); //break;\r\n            }\r\n            default : { throw new Error(\"type de paiement inconnue\") ; }\r\n        }  \r\n    }\r\n}","import {Page} from \"./ABSTRACT_Page\";\r\nimport {Flux} from \"./Type_Page/Flux\";\r\nimport {Grille} from \"./Type_Page/Grille\";\r\nimport {Fin} from \"./Type_Page/Fin\";\r\nimport {Map} from \"./Type_Page/Map\";\r\nimport {Page_Paiement_manager} from \"./Type_Page/Paiement/MANAGER_Paiement\";\r\n\r\nimport { PAGE_TYPE } from \"./PAGE_TYPE\";\r\nimport { Annexe } from \"./Type_Page/Annexe\";\r\n\r\nexport class Page_Manager {\r\n\r\n    static rebuild(page:any) : Page {\r\n        let rebuildPage : Page = Object.setPrototypeOf(page,Page.prototype);\r\n        let prototype\r\n        switch(page[\"PAGE_TYPE\"]){\r\n            case PAGE_TYPE.FLUX : {\r\n                 prototype = Flux.prototype ; break \r\n            }\r\n            case PAGE_TYPE.GRILLE : {\r\n                 prototype = Grille.prototype ; break \r\n            }\r\n            case PAGE_TYPE.PAIEMENT : {\r\n                return Page_Paiement_manager.rebuildPaiement(page); //break;\r\n            }\r\n            case PAGE_TYPE.FIN : {\r\n                 prototype = Fin.prototype ; break \r\n            }\r\n            case PAGE_TYPE.MAP : {\r\n                 prototype = Map.prototype ; break \r\n            }  \r\n            case PAGE_TYPE.ANNEXE : {\r\n                prototype = Annexe.prototype ; break \r\n           }  \r\n            default : { throw new Error(\"type de page inconnue\") ; }\r\n        }\r\n        rebuildPage = Object.setPrototypeOf(rebuildPage, prototype);\r\n        rebuildPage.deepRebuild(); \r\n        return rebuildPage ;  \r\n    }\r\n}","import { Formulaire } from '../poo/formulaire';\r\n\r\nimport { PontLogique } from '../poo/pontLogique';\r\n\r\nimport { Input } from '../poo/input/ABSTRACT_Input';\r\nimport { Input_Manager } from '../poo/input/MANAGER_Input';\r\n\r\nimport { Page } from '../poo/page/ABSTRACT_Page';\r\nimport { Page_Manager } from '../poo/page/MANAGER_Page';\r\nimport {Container} from '../poo/bloc/Type_Bloc/Container'\r\n\r\n\r\nexport class FormulaireService {\r\n\r\n    //static getFormulaire(id : number) {\r\n    //TEMPORAIRE : devra chercher le json a partir de l'id et le convertir, et non convertir le json qu'il reçoit\r\n    static getFormulaire(json : string) : Formulaire {\r\n\r\n        //--------------------------------\r\n        //instancie un {Formulaire} a partir d'un {Objet} et d'un modele d'objet : Formulaire.prototype\r\n        let formulaire : Formulaire = Object.setPrototypeOf( \r\n            JSON.parse(json), //json transformer en {Objet}\r\n            Formulaire.prototype\r\n        );\r\n\r\n        //================ doit pouvoir etre simplifiable -> répétition de code \r\n        //--------------------------------\r\n        //instancie les Pages\r\n        let recupPage : Page[] = [] ;\r\n        for(let p of formulaire.pages ){   \r\n            recupPage.push( Page_Manager.rebuild(p));\r\n        }\r\n        //les enregistres\r\n        formulaire.pages= recupPage;\r\n\r\n        //--------------------------------\r\n        //instancie les Inputs\r\n        let recupInput : Input[] = [] ;\r\n        for(let i of formulaire.inputs ){   \r\n            recupInput.push( Input_Manager.rebuild(i));\r\n        }\r\n        //les enregistres\r\n        formulaire.inputs = recupInput;\r\n\r\n        //--------------------------------\r\n        //instancie les PontLogiques \r\n        let recupPontLogiques : PontLogique[] = [] ;\r\n        for(let p of formulaire.structure ){   \r\n            recupPontLogiques.push( Object.setPrototypeOf(p,PontLogique.prototype) );\r\n        }\r\n        //les enregistres\r\n        formulaire.structure= recupPontLogiques; \r\n\r\n        //--------------------------------\r\n        if(formulaire.extraBloc) formulaire.extraBloc = Object.setPrototypeOf(formulaire.extraBloc,Container.prototype) ;\r\n        if(formulaire.extraBloc) formulaire.extraBloc.deepRebuild() ;\r\n        \r\n\r\n        //return le formulaire corectement instancié \r\n        return formulaire ;\r\n    }\r\n}","\r\n/*\r\n * Public API Surface of form-lib\r\n */\r\nexport {FormLibrairieModule} from './form-lib.module';\r\nexport {FormulaireComponent} from './lib/formulaire.component';\r\nexport {FormulaireService} from './service/FormulaireService';\r\n\r\n\r\n//Générale \r\nexport {Formulaire, NAVIGATION_MODE} from './poo/formulaire';\r\nexport {PontLogique} from './poo/pontLogique';\r\nexport {Query, QUERY_MODE} from './poo/service/Type_Service/query' ;\r\nexport {Condition} from './poo/service/Type_Service/condition' ;\r\nexport {Ancre} from './poo/ancre' ;\r\nexport {Modale} from './poo/modale'\r\n\r\n//Bloc\r\nexport {Container} from './poo/bloc/Type_Bloc/Container';\r\nexport {BlocInput} from './poo/bloc/Type_Bloc/blocInput'\r\nexport {Sommaire} from './poo/bloc/Type_Bloc/sommaire'\r\nexport {BoutonBack} from './poo/bloc/Type_Bloc/BoutonBack'\r\nexport {BoutonEnd} from './poo/bloc/Type_Bloc/BoutonEnd'\r\nexport {BoutonNext} from './poo/bloc/Type_Bloc/BoutonNext'\r\n\r\n\r\n//Page\r\nexport {Fin} from './poo/page/Type_Page/Fin';\r\nexport {Flux} from './poo/page/Type_Page/Flux';\r\nexport {Grille} from './poo/page/Type_Page/Grille';\r\nexport {Map} from './poo/page/Type_Page/Map';\r\nexport {Autre} from './poo/page/Type_Page/Paiement/Type_Paiement/autre';\r\nexport {Carte} from './poo/page/Type_Page/Paiement/Type_Paiement/carte';\r\nexport {Annexe as PageAnnexe} from './poo/page/Type_Page/Annexe';\r\n\r\n//Input\r\nexport {CheckBox} from './poo/input/Type_Input/CheckBox';\r\nexport {Email} from './poo/input/Type_Input/Email';\r\nexport {Hidden} from './poo/input/Type_Input/Hidden';\r\nexport {Link} from './poo/input/Type_Input/Link';\r\nexport {Nombre} from './poo/input/Type_Input/Nombre';\r\nexport {Radio} from './poo/input/Type_Input/Radio';\r\nexport {RadioObject} from './poo/input/Type_Input/RadioObject';\r\nexport {Telephone} from './poo/input/Type_Input/Telephone';\r\nexport {TextCourt} from './poo/input/Type_Input/TextCourt';\r\nexport {TextLong} from './poo/input/Type_Input/TextLong';\r\nexport {Select} from './poo/input/Type_Input/Select';\r\nexport {Files} from './poo/input/Type_Input/Files';\r\nexport {Html} from './poo/input/Type_Input/html';\r\nexport {Annexe as InputAnnexe}  from './poo/input/Type_Input/Annexe'\r\n\r\n\r\n//Element\r\nexport {Bouton} from './poo/element/Type_Element/Bouton';\r\nexport {Image} from './poo/element/Type_Element/Image';\r\nexport {Lien} from './poo/element/Type_Element/Lien';\r\nexport {Text} from './poo/element/Type_Element/Text';\r\nexport {Vide} from './poo/element/Type_Element/Vide';\r\n\r\n//Service \r\nexport {ManagerService} from './poo/service/ManagerService';\r\n\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.QueryService","i2.ConditionService","Text","i1.ManagerService","Input","i1.ImageComponent","i2.TextComponent","i3.LiensComponent","i4.BoutonComponent","i5.VideComponent","i6","i1.ElementComponent","i2","i2.ElementComponent","i3","i4","i5","i2.ListFilesComponent","i3.AddFilesComponent","Annexe","AnnexeComponent","i1.CheckBoxComponent","i2.EmailComponent","i3.NombreComponent","i4.RadioComponent","i5.TelephoneComponent","i6.TextCourtComponent","i7.TextLongComponent","i8.LinkComponent","i9.RadioObjectComponent","i10.SelectComponent","i11.FilesComponent","i12.HtmlComponent","i13.AnnexeComponent","i14","i2.InputComponent","i1.BlocInputComponent","i2.SommaireComponent","i3.ElementComponent","i4.BoutonBackComponent","i5.BoutonNextComponent","i6.BoutonEndComponent","i7","i1.BlocComponent","i2.BlocComponent","i1.CarteComponent","i2.AutreComponent","i2.FluxComponent","i3.PaiementComponent","i4.GrilleComponent","i5.FinComponent","i6.MapComponent","i7.AnnexeComponent","i8","i3.PageComponent","i4.ModalComponent","input_AnnexeComponent","page_AnnexeComponent","page_annexe"],"mappings":";;;;;;;;;;;;;;;;;;;;;MAAa,WAAW,CAAA;;AAQpB;;;;;;;;;;;;AAYE;AAEF,IAAA,WAAA,CAAY,aAAsB,EAAC,cAAuB,EAAC,IAAc,EAAE,UAAiD,EAAA;AACxH,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AACnC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAE;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,aAAa,CAAC,SAA4C,EAAG,EAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,EAAC;IAC/F,gBAAgB,GAAA,GAAI;AACvB;;AC1BW,IAAA,gBAGX;AAHD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;MAEY,UAAU,CAAA;AAUnB,IAAA,WAAA,CAAY,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,GAAG,GAAC,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,KAAK,GAAC,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,MAAM,GAAC,EAAE,CAAC;AAEf,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;AACpB,QAAA,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,MAAM,CAAE;AAE9C,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC9B;;AAGD,IAAA,QAAQ,CAAC,IAAW,EAAA;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAE;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,EAAgB,EAAA;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;;AAGD,IAAA,UAAU,CAAC,MAAc,EAAA;QACrB,IAAI,WAAW,GAAmB,EAAE,CAAA;;AAEpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAc,KAAG;AACrD,YAAA,IAAG,EAAE,CAAC,aAAa,IAAI,MAAM,EAAE;AAC3B,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACpB,gBAAA,OAAO,KAAK,CAAA;AACf,aAAA;;AACI,gBAAA,OAAO,IAAI,CAAA;AACpB,SAAC,CAAC,CAAA;;QAEF,IAAI,KAAK,GAAmB,EAAE,CAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAc,KAAG;AACrD,YAAA,IAAG,EAAE,CAAC,cAAc,IAAI,MAAM,EAAE;AAC5B,gBAAA,KAAI,IAAI,MAAM,IAAI,WAAW,EAAC;oBAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,aAAa,EAAC,MAAM,CAAC,cAAc,EAAC,MAAM,CAAC,IAAI,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;AACpG,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAA;AACf,aAAA;;AACI,gBAAA,OAAO,IAAI,CAAA;AACpB,SAAC,CAAC,CAAA;QAEF,KAAI,IAAI,EAAE,IAAI,KAAK;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;;QAG3C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAS,KAAI,IAAI,CAAC,KAAK,EAAE,IAAI,MAAM,CAAE,CAAA;KACxE;AAED,IAAA,UAAU,CAAC,IAAW,EAAA;AAClB,QAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;AACjC,YAAA,IAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;AAAE,gBAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;KACrE;;AAGD,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAE;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3B;AACJ;;MC9EqB,IAAI,CAAA;IAKtB,WAAY,CAAA,QAAoB,EAAC,MAAgB,EAAA;AAC7C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;KACjC;AAED,IAAA,SAAS,CAAC,GAAY,EAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC;AAElD,IAAA,WAAW,MAAI;AAClB;;AChBD,IAAY,SAQX,CAAA;AARD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC1B,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B,CAAA;AAC9B,CAAC,EARW,SAAS,KAAT,SAAS,GAQpB,EAAA,CAAA,CAAA;;ACLK,MAAO,SAAU,SAAQ,IAAI,CAAA;AAM/B,IAAA,WAAA,CAAY,OAAgB,EAAC,QAAoB,EAAE,MAAgB,EAAA;AAC/D,QAAA,KAAK,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAC;AAL3B,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;AAMxB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAE;KAC3B;AACJ;;ACPD,IAAY,YAGX,CAAA;AAHD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAC3B,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;ACPW,IAAA,WAGX;AAHD,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,SAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AAC1B,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;MAEY,KAAK,CAAA;IAOd,WAAY,CAAA,IAAiB,EAAC,IAAU,EAAA;AALxC,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAA;AAM7B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE;KACrB;AAED,IAAA,WAAW,MAAY;AAC1B;;MCjBY,SAAS,CAAA;AAQlB,IAAA,WAAA,CAAY,KAAa,EAAE,MAAY,EAAE,OAAgD,EAAA;AANzF,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,SAAS,CAAA;AAOjC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAA;AAC5B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACrB;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAC,KAAK,CAAC,CAAA;KACvD;AACJ;;MCbY,YAAY,CAAA;AAErB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAG;IAEnC,QAAQ,CAAC,CAAS,EAAE,IAAS,EAAA;AACzB,QAAA,IAAI,KAAK,CAAC;QACV,QAAO,CAAC,CAAC,IAAI;YACT,KAAK,UAAU,CAAC,QAAQ;;AAEpB,gBAAA,IAAG,IAAI;oBAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;;oBAC1B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3E,gBAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC3D,MAAM;YAEV,KAAK,UAAU,CAAC,SAAS;;AAErB,gBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AAE1F,gBAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;gBAE3D,MAAM;YACV,SAAU,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;AACnD,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;yGAzBQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFT,MAAM,EAAA,CAAA,CAAA;2FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;MCCY,gBAAgB,CAAA;AAEzB,IAAA,WAAA,CAAoB,YAA0B,EAAA;AAA1B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;KAAG;IAEjD,QAAQ,CAAC,IAAgB,EAAE,IAAW,EAAA;AAClC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AACxD,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;AACxB,QAAA,KAAI,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO;;YAEvB,IAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAS,KAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAE,CAAC,CAAC,CAAE;AAAE,gBAAA,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AAExF,QAAA,OAAO,MAAM,CAAA;KAChB;;6GAZQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;MCIY,cAAc,CAAA;IAEvB,WAAoB,CAAA,YAA0B,EAAS,gBAAmC,EAAA;AAAtE,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAAS,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAmB;KAAG;IAE7F,QAAQ,CAAC,GAAmB,EAAE,IAAU,EAAA;QACpC,IAAG,GAAG,YAAY,KAAK,EACrB;YAAC,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAAC,SAAA;QACjD,IAAG,GAAG,YAAY,SAAS,EACzB;YAAC,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAAC,SAAA;AAErD,QAAA,OAAO,GAAG,CAAA;KACX;IAEH,OAAO,OAAO,CAAC,IAAQ,EAAA;AAErB,QAAA,IAAG,IAAI,IAAI,IAAI,CAAC,YAAY,EAAC;AAC3B,YAAA,IAAI,SAAS,CAAE;YACf,QAAO,IAAI,CAAC,YAAY;AACpB,gBAAA,KAAK,YAAY,CAAC,SAAU,EAAE;AAC1B,oBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;oBAAC,MAAO;AAC3C,iBAAA;AACD,gBAAA,KAAK,YAAY,CAAC,KAAM,EAAE;AACtB,oBAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;oBAAC,MAAO;AACvC,iBAAA;AACD,gBAAA,SAAU;AAAE,oBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAE;AAAE,iBAAA;AAC9D,aAAA;YAED,IAAI,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC5D,cAAc,CAAC,WAAW,EAAE,CAAC;AAC7B,YAAA,OAAO,cAAc,CAAE;AACxB,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACd;;2GAhCU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;ACHD;AACM,MAAgB,OAAQ,SAAQ,IAAI,CAAA;AAA1C,IAAA,WAAA,GAAA;;AAEI,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC;AAC9B,QAAA,IAAO,CAAA,OAAA,GAAmB,EAAE,CAAA;KAM/B;IAJY,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;KACtD;AACJ;;AChBD,IAAY,YAMX,CAAA;AAND,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EANW,YAAY,KAAZ,YAAY,GAMvB,EAAA,CAAA,CAAA;;ACFK,MAAOC,MAAK,SAAQ,OAAO,CAAA;IAI7B,WAAY,CAAA,IAAuB,EAAC,QAAoB,EAAA;QACpD,KAAK,CAAC,QAAQ,CAAC,CAAC;AAHpB,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;AAI7B,QAAA,IAAG,IAAI;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAE;KACjC;AACJ;;ACPK,MAAO,KAAM,SAAQ,OAAO,CAAA;AAM9B,IAAA,WAAA,CAAY,GAAsB,EAAE,GAAoB,EAAC,QAAoB,EAAA;QACzE,KAAK,CAAC,QAAQ,CAAC,CAAC;AALpB,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC;AAM9B,QAAA,IAAG,GAAG;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;AAC3B,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAC;KACxB;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KAC9C;AACJ;;AClBK,MAAO,IAAK,SAAQ,OAAO,CAAA;AAAjC,IAAA,WAAA,GAAA;;AACI,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;KACpC;AAAA;;ACAK,MAAO,IAAK,SAAQ,OAAO,CAAA;AAO7B,IAAA,WAAA,CAAY,IAAuB,EAAE,IAAqB,EAAE,QAAoB,EAAC,OAAgB,EAAA;QAC7F,KAAK,CAAC,QAAQ,CAAC,CAAC;AANpB,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;AAO7B,QAAA,IAAI,IAAI;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,CAAE;AACzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC;KAClC;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,GAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjD;AACJ;;AClBK,MAAO,MAAO,SAAQ,OAAO,CAAA;AAM/B,IAAA,WAAA,CAAY,QAAoB,EAAC,IAAuB,EAAE,IAAqB,EAAA;QAC3E,KAAK,CAAC,QAAQ,CAAC,CAAC;AALpB,QAAA,IAAA,CAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC;AAM/B,QAAA,IAAG,IAAI;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,GAAG,CAAA;KAC1B;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KAChD;AACJ;;MCZY,eAAe,CAAA;IAExB,OAAO,OAAO,CAAC,OAAW,EAAA;AACtB,QAAA,IAAI,cAAc,GAAa,MAAM,CAAC,cAAc,CAAC,OAAO,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA;AAC/E,QAAA,IAAI,SAAS,CAAE;AACf,QAAA,QAAO,OAAO,CAAC,cAAc,CAAC;AAC1B,YAAA,KAAK,YAAY,CAAC,IAAK,EAAE;AACrB,gBAAA,SAAS,GAAGA,MAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,YAAY,CAAC,KAAM,EAAE;AACtB,gBAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAE;gBAAC,MAAK;AACtC,aAAA;AACD,YAAA,KAAK,YAAY,CAAC,IAAK,EAAE;AACrB,gBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,YAAY,CAAC,IAAK,EAAE;AACrB,gBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,YAAY,CAAC,MAAO,EAAE;AACvB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACvC,aAAA;AACD,YAAA,SAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAE;AAAE,aAAA;AAC7D,SAAA;QACD,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAClE,cAAc,CAAC,WAAW,EAAE,CAAC;AAC7B,QAAA,OAAO,cAAc,CAAE;KAC1B;AACJ;;AC9BK,MAAO,UAAW,SAAQ,IAAI,CAAA;IAMhC,WAAY,CAAA,IAAmB,EAAC,QAAoB,EAAA;QAChD,KAAK,CAAC,QAAQ,CAAC,CAAC;AALpB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;AAM9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE;KACrB;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjD;AACJ;;MCjBY,MAAM,CAAA;AAMf,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAE;AACxB,QAAA,IAAI,CAAC,GAAG,GAAC,SAAS,CAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAC,aAAa,CAAA;KAC9B;IAED,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAClD;AACJ;;ACVK,MAAO,SAAU,SAAQ,IAAI,CAAA;AAU/B,IAAA,WAAA,CAAY,IAAmB,EAAC,WAA6B,EAAE,MAAgB,EAAG,QAAoB,EAAA;QAClG,KAAK,CAAC,QAAQ,CAAC,CAAC;AATpB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;AAU7B,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;AAC1B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,KAAK,CAAE;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;KAC3B;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QACxD,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;KAC9D;AACJ;;AC5BK,MAAO,UAAW,SAAQ,IAAI,CAAA;IAMhC,WAAY,CAAA,IAAmB,EAAC,QAAoB,EAAA;QAChD,KAAK,CAAC,QAAQ,CAAC,CAAC;AALpB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC;AAM9B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAE;KACrB;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACjD;AACJ;;AChBK,MAAO,QAAS,SAAQ,IAAI,CAAA;IAM9B,WAAY,CAAA,QAAoB,EAAE,MAAgB,EAAA;AAC9C,QAAA,KAAK,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAA;AAL1B,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAE;AAM5B,QAAA,IAAI,CAAC,SAAS,GAAI,EAAE,CAAA;KACvB;AAED,IAAA,SAAS,CAAC,KAAY,EAAA;AAClB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAC7B;IACD,WAAW,CAAC,UAAiB,EAAC,SAAiB,EAAC,QAAgB,EAAC,QAAkB,EAAC,GAAW,EAAA;QAC3F,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAa,KAAI;AACrC,YAAA,IAAG,KAAK,CAAC,MAAM,IAAI,UAAU,EAAE;AAC3B,gBAAA,KAAK,CAAC,MAAM,GAAG,SAAS,IAAE,SAAS,GAAC,SAAS,GAAC,KAAK,CAAC,MAAM,CAAA;AAC1D,gBAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ,IAAE,SAAS,GAAC,QAAQ,GAAC,KAAK,CAAC,QAAQ,CAAA;AAC5D,gBAAA,KAAK,CAAC,QAAQ,GAAG,QAAQ,IAAE,SAAS,GAAC,QAAQ,GAAC,KAAK,CAAC,QAAQ,CAAA;AAC5D,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,IAAE,SAAS,GAAC,GAAG,GAAC,KAAK,CAAC,GAAG,CAAA;AAC3C,aAAA;AACL,SAAC,CAAC,CAAA;KACL;AACD,IAAA,WAAW,CAAC,MAAa,EAAA;QACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAW,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;KAClF;AACJ;;MCrBY,YAAY,CAAA;IAErB,OAAO,OAAO,CAAC,IAAQ,EAAA;AAEnB,QAAA,IAAI,WAAW,GAAU,MAAM,CAAC,cAAc,CAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpE,QAAA,IAAI,SAAS,CAAE;AAEf,QAAA,QAAO,IAAI,CAAC,WAAW,CAAC;AACpB,YAAA,KAAK,SAAS,CAAC,SAAU,EAAE;AACvB,gBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC3C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,KAAM,EAAE;AACnB,gBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC3C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,QAAS,EAAE;AACtB,gBAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC1C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,WAAY,EAAE;AACzB,gBAAA,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC5C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,UAAW,EAAE;AACxB,gBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC3C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,WAAY,EAAE;AACzB,gBAAA,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;gBAAC,MAAO;AAC5C,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,OAAQ,EAAE;AACrB,gBAAA,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAE;AACzC,aAAA;AACD,YAAA,SAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAE;AAAE,aAAA;AAC3D,SAAA;QAED,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5D,WAAW,CAAC,WAAW,EAAE,CAAC;AAC1B,QAAA,OAAO,WAAW,CAAE;KACvB;AACJ;;AC3CK,MAAO,SAAU,SAAQ,IAAI,CAAA;;AAQ/B,IAAA,WAAA,CAAY,QAAoB,EAAC,UAAqB,EAAE,MAAgB,EAAA;AACpE,QAAA,KAAK,CAAC,QAAQ,EAAC,MAAM,CAAC,CAAC;AAN3B,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;AAO5B,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAE;AACnB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,KAAK,CAAE;KAC1C;AAED,IAAA,WAAW,CAAC,IAAW,EAAG,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAE;IAE1C,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAC;AACzB,YAAA,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrC,SAAA;KACJ;AACJ;;MCxBY,KAAK,CAAA;AAMd,IAAA,WAAA,CAAY,GAAY,EAAE,QAAgB,EAAE,GAAY,EAAE,QAAoB,EAAA;AAE1E,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,GAAC,GAAG,CAAC,MAAM,GAAC,OAAO,CAAA;AAC3C,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,EAAE,CAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,CAAA;AAC9B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;KAC3B;AACJ;;ACFD;AACA;MACa,OAAO,CAAA;IAEhB,WAAmB,CAAA,IAAgB,EAAS,IAAS,EAAA;AAAlC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAAS,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAK;KAAG;;AADxC,OAAI,CAAA,IAAA,GAAG,2BAA2B,CAAC;MAI1C,OAAO,CAAA;IAEhB,WAAmB,CAAA,OAAe,EAAS,KAAU,EAAA;AAAlC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;KAAG;;AADxC,OAAI,CAAA,IAAA,GAAG,iCAAiC,CAAC;MAIhD,OAAO,CAAA;IAEhB,WAAmB,CAAA,OAAe,EAAS,KAAU,EAAA;AAAlC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAK;KAAG;;AADxC,OAAI,CAAA,IAAA,GAAG,uCAAuC,CAAC;AAInE;MACa,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAmB,OAAoC,EAAA;AAApC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAA6B;KAAG;;AAD1C,UAAI,CAAA,IAAA,GAAG,0BAA0B,CAAC;MAIzC,aAAa,CAAA;AAEtB,IAAA,WAAA,CAAmB,IAAc,EAAA;AAAd,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAU;KAAG;;AADpB,aAAI,CAAA,IAAA,GAAG,oCAAoC,CAAC;MAInD,cAAc,CAAA;AAEvB,IAAA,WAAA,GAAA,GAAe;;AADC,cAAI,CAAA,IAAA,GAAG,0CAA0C,CAAC;MAIzD,eAAe,CAAA;AAExB,IAAA,WAAA,GAAA,GAAe;;AADC,eAAI,CAAA,IAAA,GAAG,yCAAyC,CAAC;AAIrE;MACa,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAmB,OAA0C,EAAA;AAA1C,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmC;KAAG;;AADhD,UAAI,CAAA,IAAA,GAAG,mDAAmD,CAAC;MAIlE,YAAY,CAAA;AAErB,IAAA,WAAA,GAAA,GAAe;;AADC,YAAI,CAAA,IAAA,GAAG,4CAA4C,CAAC;AAIxE;MACa,YAAY,CAAA;AAErB,IAAA,WAAA,GAAA,GAAe;;AADC,YAAI,CAAA,IAAA,GAAG,+DAA+D,CAAC;MAI9E,cAAc,CAAA;AAEvB,IAAA,WAAA,GAAA,GAAe;;AADC,cAAI,CAAA,IAAA,GAAG,iEAAiE,CAAC;MAIhF,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAmB,MAAc,EAAA;AAAd,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAG;;AADpB,UAAI,CAAA,IAAA,GAAG,6BAA6B,CAAC;AAIzD;MACa,QAAQ,CAAA;AAEjB,IAAA,WAAA,CAAmB,KAAc,EAAA;AAAd,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAS;KAAG;;AADpB,QAAI,CAAA,IAAA,GAAG,iCAAiC,CAAC;MAGhD,WAAW,CAAA;IAEpB,WAAmB,CAAA,IAAW,EAAS,YAAqB,EAAA;AAAzC,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;AAAS,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAS;KAAI;;AADhD,WAAI,CAAA,IAAA,GAAG,yBAAyB,CAAC;AAKrD;MACa,QAAQ,CAAA;AAEjB,IAAA,WAAA,CAAmB,KAAa,EAAA;AAAb,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;KAAI;;AADpB,QAAI,CAAA,IAAA,GAAG,6EAA6E,CAAC;MAG5F,aAAa,CAAA;AAEtB,IAAA,WAAA,CAAmB,UAAqB,EAAA;AAArB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAW;KAAI;;AAD5B,aAAI,CAAA,IAAA,GAAG,+CAA+C,CAAC;AAK3E;MACa,eAAe,CAAA;AAExB,IAAA,WAAA,CAAmB,IAAc,EAAS,OAAkB,EAAU,WAAsB,EAAA;AAAzE,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAU;AAAS,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAW;AAAU,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAW;KAAG;;AAD/E,eAAI,CAAA,IAAA,GAAG,8CAA8C,CAAC;AAI1E;MACa,OAAO,CAAA;AAEhB,IAAA,WAAA,CAAmB,IAAW,EAAS,GAAY,EAAS,QAAmB,EAAA;AAA5D,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;AAAS,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAS;AAAS,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;KAAG;;AADlE,OAAI,CAAA,IAAA,GAAG,qCAAqC,CAAC;MAGpD,UAAU,CAAA;AAEnB,IAAA,WAAA,CAAmB,IAAW,EAAA;AAAX,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;KAAI;;AADlB,UAAI,CAAA,IAAA,GAAG,sCAAsC,CAAC;MAGrD,SAAS,CAAA;AAElB,IAAA,WAAA,CAAmB,IAAW,EAAA;AAAX,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;KAAI;;AADlB,SAAI,CAAA,IAAA,GAAG,uCAAuC,CAAC;MAGtD,oBAAoB,CAAA;AAE7B,IAAA,WAAA,GAAA,GAAe;;AADC,oBAAI,CAAA,IAAA,GAAG,2EAA2E,CAAC;AAqC1F,IAAA,WAAW,SAAX,WAAW,CAAA;;IAIpB,OAAO,CAAC,GAAmC,EAAE,MAAW,EAAA;AACpD,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,MAAM,CAAC,IAAI,EAAE,IAAI,EAAG,MAAM,CAAC,IAAI,EAAE,UAAU,EAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;KAC/G;;IAID,OAAO,CAAC,GAAmC,EAAE,MAAW,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAS,EAAE,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,KAAK,CAAA;AACtC,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAG,OAAO,EAAG,CAAC,CAAC,CAAC;KAC5C;IAGD,OAAO,CAAC,GAAmC,EAAE,MAAW,EAAA;AACpD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAA;QAC5B,IAAI,OAAO,GAAS,EAAE,CAAC;QACvB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAEnC,IAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;;YAEhJ,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;AAE7I,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAG,OAAO,EAAE,CAAC,CAAC,CAAC;KAC3C;;IAID,UAAU,CAAC,GAAmC,EAAE,MAAW,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1C,IAAI,IAAI,GAAG,KAAK,CAAC;QAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QAE5B,OAAO,CAAC,IAAI,IAAI,CAAC,GAAC,eAAe,CAAC,MAAM,EAAE;AACtC,YAAA,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;AACpD,YAAA,IAAG,IAAI;gBAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAE;AAC1D,YAAA,CAAC,EAAE,CAAA;AACN,SAAA;AACD,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,eAAe,CAAC,IAAI,CAAE,MAAM,CAAC,OAAO,CAAE,CAAA;AACjD,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAG,eAAe,EAAE,CAAE,CAAC,CAAC;KACxD;IAGD,QAAQ,CAAC,GAAmC,EAAE,MAAW,EAAA;AACrD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAE,CAAC,CAAC;KAC7E;IAGD,aAAa,CAAC,GAAmC,EAAE,MAAW,EAAA;AAC1D,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC7D;AAGD,IAAA,aAAa,CAAC,GAAmC,EAAA;AAC7C,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAG,IAAI,KAAK,EAAE,SAAS,EAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;KACxE;AAGD,IAAA,eAAe,CAAC,GAAmC,EAAA;AAC/C,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,EAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;KAClD;IAGD,aAAa,CAAC,GAAmC,EAAE,MAAW,EAAA;AAC1D,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,EAAE,UAAU,EAAG,MAAM,CAAC,UAAU,EAAE,CAAE,CAAC,CAAC;KAC7D;;IAID,UAAU,CAAC,GAAmC,EAAE,MAAW,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,EAAC,QAAQ,EAAE,CAAC,GAAG,KAAK,CAAC,QAAQ,EAAC,MAAM,CAAC,OAAO,CAAC,EAAC,CAAE,CAAC,CAAC;KACzE;AAGD,IAAA,YAAY,CAAC,GAAmC,EAAA;AAC5C,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAG,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;KACjD;;IAID,QAAQ,CAAC,GAAmC,EAAE,MAAY,EAAA;AACtD,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KACjD;;IAID,eAAe,CAAC,GAAmC,EAAE,MAAY,EAAA;AAC7D,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,EAAG,EAAE,IAAI,EAAG,MAAM,CAAC,IAAI;AACpD,gBAAA,OAAO,EAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,GAAO,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC;gBAC3E,WAAW,EAAG,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;KACpG;;AAID,IAAA,YAAY,CAAC,GAAmC,EAAA;AAC5C,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;;AAE7B,QAAA,IAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAC;;;AAGrB,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAA;AACvD,YAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAE,EAAC,mBAAmB,EAAE,IAAI,EAAE,UAAU,EAAG,CAAC,GAAG,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAG,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAChI,SAAA;AAAM,aAAA;;AAEN,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,GAAoC,EAAA;AAC7C,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,MAAM,GAAG,IAAI,CAAE;QACnB,IAAG,KAAK,CAAC,UAAU,EAAC;;AAEhB,YAAA,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,EAAE,IAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAA;YAChH,IAAI,YAAY,GAAc,EAAE,CAAA;AAChC,YAAA,IAAG,IAAI;AAAwB,gBAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AAC/F,YAAA,IAAG,KAAK,CAAC,UAAU,CAAC,SAAS;AAAE,gBAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAA;;AAGhH,YAAA,KAAI,IAAI,QAAQ,IAAI,YAAY,EAAC;gBAC7B,IAAI,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;gBAE9C,IAAI;AACA,oBAAA,IAAI,WAAW,GAAG,KAAK,CAAC,SAAS,EAAE,CAAE;AACrC,oBAAA,MAAM,GAAG,MAAM,IAAI,WAAW,CAAA;AAC9B,oBAAA,IAAG,WAAW;wBAAE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,EAAC,OAAO,EAAE,EAAC,GAAG,EAAI,KAAK,CAAC,GAAG,EAAE,KAAK,EAAG,KAAK,CAAC,OAAO,EAAC,EAAC,CAAC,CAAA;AAC5F,iBAAA;;AAED,gBAAA,OAAO,CAAK,EAAE;oBACV,IAAI,CAAC,UAAU,CAAC,GAAG,EAAC,EAAC,OAAO,EAAG,EAAC,KAAK,EAAG,CAAC,OAAO,CAAC,EAAE,IAAI,EAAG,CAAC,CAAC,OAAO,EAAC,EAAC,CAAC,CAAA;AACzE,iBAAA;AACJ,aAAA;AACJ,SAAA;;AAED,QAAA,OAAO,MAAM,CAAE;KAClB;;AAGD,IAAA,YAAY,CAAC,IAAW,EAAA;QACpB,IAAI,YAAY,GAAc,EAAE,CAAE;QAClC,IAAG,IAAI,YAAY,SAAS;AACxB,YAAA,KAAI,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,EAAC;AAC9B,gBAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAA;AACnE,aAAA;aACA,IAAG,IAAI,YAAY,SAAS,EAAC;AAC9B,YAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAClC,SAAA;AACD,QAAA,OAAO,YAAY,CAAC;KACvB;AAGD,IAAA,WAAW,CAAC,KAAwB,EAAA;QAChC,IAAG,KAAK,CAAC,UAAU,EAAC;AAChB,YAAA,IAAI,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA;AAChE,YAAA,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC;AACd,YAAA,IAAI,QAAQ,GAAa,KAAK,CAAC,UAAU,CAAC,SAAS,CAAA;;YAGnD,KAAI,IAAI,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,EAAC;AACrC,gBAAA,IAAG,EAAE,CAAC,aAAa,IAAI,cAAc,EAAC;;oBAElC,IAAI,MAAM,GAAG,IAAI,CAAC;AAClB,oBAAA,KAAI,IAAI,IAAI,IAAI,EAAE,CAAC,UAAU,EAAC;AAC1B,wBAAA,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAClF,qBAAA;AACD,oBAAA,IAAI,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,EAAC;AAC1B,wBAAA,QAAQ,GAAG,EAAE,CAAC,cAAc,CAAE;AACjC,qBAAA;AACJ,iBAAA;AACJ,aAAA;;AAGD,YAAA,OAAO,QAAQ,CAAA;AAClB,SAAA;KACJ;AAGD,IAAA,cAAc,CAAC,GAAmC,EAAA;AAC9C,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;;AAE7B,QAAA,IAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,YAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAA;AACvD,YAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxG,SAAA;KACJ;IAGD,UAAU,CAAC,GAAmC,EAAE,MAAW,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAG,KAAK,CAAC,UAAU;;AAEf,YAAA,QAAO,KAAK,CAAC,UAAU,CAAC,cAAc;;;AAGlC,gBAAA,MAAK,eAAe,CAAC,KAAK;AACtB,oBAAA,IAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAC;AACtB,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAA;wBACvD,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,EAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,qBAAA;oBACL,MAAM;;AAEN,gBAAA,MAAK,eAAe,CAAC,MAAM;;;AAGvB,oBAAA,IAAK,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAG;AACjD,wBAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAA;AACvD,wBAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7G,qBAAA;;oBAEL,MAAM;AACT,aAAA;KACR;;IAID,OAAO,CAAC,GAAmC,EAAE,MAAW,EAAA;AAEpD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,SAAS,GAAgB,MAAM,CAAC,cAAc,CAAK,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,UAAU,CAAE,EAAA,UAAU,CAAC,SAAS,CAAC,CAAA;;AAG9F,QAAA,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;AAG/B,QAAA,SAAS,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,cAAc,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;;AAG7H,QAAA,IAAI,YAAkB,CAAE;QACxB,IAAG,SAAS,CAAC,SAAS;YAAE,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;;AAEhF,QAAA,IAAG,YAAY;AAAE,YAAA,YAAY,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,EAAC,MAAM,CAAC,GAAG,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;AAExI,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,SAAS,EAAG,kBAAkB,EAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KAC/E;IAGD,WAAW,CAAC,GAAmC,EAAE,MAAW,EAAA;AACxD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,UAAU,GAAgB,MAAM,CAAC,cAAc,CAAK,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,UAAU,CAAE,EAAA,UAAU,CAAC,SAAS,CAAC,CAAA;;AAG/F,QAAA,IAAI,YAAmC,CAAE;QACzC,IAAG,UAAU,CAAC,SAAS;YAAE,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;AAElF,QAAA,IAAG,YAAY;YAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,YAAY,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAA;AAE5G,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,UAAU,EAAG,kBAAkB,EAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KAChF;IAGD,UAAU,CAAC,GAAmC,EAAE,MAAW,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,UAAU,GAAgB,MAAM,CAAC,cAAc,CAAK,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,UAAU,CAAE,EAAA,UAAU,CAAC,SAAS,CAAC,CAAA;;AAG/F,QAAA,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;AAElC,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,UAAU,EAAG,kBAAkB,EAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KAChF;IAGD,SAAS,CAAC,GAAmC,EAAE,MAAW,EAAA;AAEtD,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,UAAU,GAAgB,MAAM,CAAC,cAAc,CAAK,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,KAAK,CAAC,UAAU,CAAE,EAAA,UAAU,CAAC,SAAS,CAAC,CAAA;;AAG/F,QAAA,IAAI,YAAmC,CAAE;QACzC,IAAG,UAAU,CAAC,SAAS;YAAE,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;;AAGlF,QAAA,IAAG,YAAY;YAAE,YAAY,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;;QAG1D,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;;AAI1C,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU,EAAG,UAAU,EAAG,kBAAkB,EAAG,IAAI,EAAE,CAAC,CAAC,CAAC;KAChF;AAED,IAAA,eAAe,CAAC,SAAmB,EAAA;AAC/B,QAAA,IAAI,YAAmC,CAAE;AACzC,QAAA,IAAI,aAAa,GAAiB,CAAC,SAAS,CAAC,CAAA;QAC7C,GAAG;YACC,IAAI,YAAY,GAAG,EAAE,CAAA;YACrB,KAAI,IAAI,SAAS,IAAI,aAAa;AAC9B,gBAAA,KAAI,IAAI,IAAI,IAAI,SAAS,CAAC,OAAO,EAAC;oBAC9B,IAAG,IAAI,YAAY,SAAS;AAAE,wBAAA,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBACrD,IAAG,IAAI,YAAY,QAAQ;wBAAE,YAAY,GAAG,IAAI,CAAA;AACnD,iBAAA;YACL,aAAa,GAAG,YAAY,CAAC;SAChC,QACK,aAAa,CAAC,MAAM,IAAI,CAAC,IAAI,YAAY,IAAE,SAAS,EAAE;AAC5D,QAAA,OAAO,YAAY,CAAA;KACtB;AAGD,IAAA,oBAAoB,CAAC,GAAmC,EAAA;AACpD,QAAA,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,kBAAkB,EAAG,KAAK,EAAE,CAAC,CAAC,CAAC;KACvD;CACJ,CAAA;wGArTY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,CAAA,CAAA;AAIpB,UAAA,CAAA;IADC,MAAM,CAAC,OAAO,CAAC;CAGf,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,OAAO,CAAC;CAOf,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,OAAO,CAAC;CAYf,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,UAAU,CAAC;CAalB,EAAA,WAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,QAAQ,CAAC;CAIhB,EAAA,WAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,aAAa,CAAC;CAGrB,EAAA,WAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,cAAc,CAAC;CAGtB,EAAA,WAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,eAAe,CAAC;CAGvB,EAAA,WAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,aAAa,CAAC;CAGrB,EAAA,WAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;AADC,IAAA,MAAM,CAAC,UAAU,CAAC;CAIlB,EAAA,WAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,YAAY,CAAC;CAGpB,EAAA,WAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,QAAQ,CAAC;CAGhB,EAAA,WAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,eAAe,CAAC;CAMvB,EAAA,WAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,YAAY,CAAC;CAYpB,EAAA,WAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA,CAAA;AAuED,UAAA,CAAA;IADC,MAAM,CAAC,cAAc,CAAC;CAQtB,EAAA,WAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,UAAU,CAAC;CAyBlB,EAAA,WAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAID,UAAA,CAAA;IADC,MAAM,CAAC,OAAO,CAAC;CAmBf,EAAA,WAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,WAAW,CAAC;CAYnB,EAAA,WAAA,CAAA,SAAA,EAAA,aAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,UAAU,CAAC;CASlB,EAAA,WAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,SAAS,CAAC;CAmBjB,EAAA,WAAA,CAAA,SAAA,EAAA,WAAA,EAAA,IAAA,CAAA,CAAA;AAmBD,UAAA,CAAA;IADC,MAAM,CAAC,oBAAoB,CAAC;CAG5B,EAAA,WAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,IAAA,CAAA,CAAA;AApTQ,WAAW,GAAA,UAAA,CAAA;AAjBvB,IAAA,KAAK,CAAmB;AACvB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,QAAQ,EAAE;AACR,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,IAAI,EAAG,EAAE;AACT,YAAA,QAAQ,EAAG,EAAE;AACb,YAAA,QAAQ,EAAG,EAAE;AACb,YAAA,UAAU,EAAG,EAAE;AACf,YAAA,KAAK,EAAG,EAAE;AACV,YAAA,SAAS,EAAG,EAAE;AACd,YAAA,UAAU,EAAG,EAAE;AACf,YAAA,mBAAmB,EAAG,KAAK;AAC3B,YAAA,kBAAkB,EAAG,KAAK;AAC1B,YAAA,YAAY,EAAI,EAAC,IAAI,EAAG,KAAK,EAAE,OAAO,EAAG,EAAE,EAAE,WAAW,EAAG,GAAG,EAAE;AACjE,SAAA;KACF,CAAC;CAEW,EAAA,WAAW,CAqTvB,CAAA;2FArTY,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;AAKP,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,OAAO,MAMP,OAAO,EAAA,EAAA,EASP,OAAO,EAAA,EAAA,EAeP,UAAU,EAeV,EAAA,EAAA,QAAQ,EAMR,EAAA,EAAA,aAAa,MAKb,aAAa,EAAA,EAAA,EAKb,eAAe,EAKf,EAAA,EAAA,aAAa,MAMb,UAAU,EAAA,EAAA,EAMV,YAAY,EAAA,EAAA,EAMZ,QAAQ,EAMR,EAAA,EAAA,eAAe,MASf,YAAY,EAAA,EAAA,EAkFZ,cAAc,EAUd,EAAA,EAAA,UAAU,EA4BV,EAAA,EAAA,OAAO,MAqBP,WAAW,EAAA,EAAA,EAcX,UAAU,EAWV,EAAA,EAAA,SAAS,MAqCT,oBAAoB,EAAA,EAAA,EAAA,EAAA,CAAA;;AC/cxB,IAAY,UAeX,CAAA;AAfD,CAAA,UAAY,UAAU,EAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,UAAA,CAAA,YAAA,CAAA,GAAA,WAAwB,CAAA;AACxB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,UAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,cAAA,CAAA,GAAA,aAA4B,CAAA;AAC5B,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAfW,UAAU,KAAV,UAAU,GAerB,EAAA,CAAA,CAAA;;MCPY,cAAc,CAAA;AAIzB,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAK;AAEvD,IAAA,QAAQ,MAAW;;2GANR,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,yFCR3B,8HACA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,8HAAA,EAAA,MAAA,EAAA,CAAA,wCAAA,CAAA,EAAA,CAAA;kGAMpB,OAAO,EAAA,CAAA;sBAAfC,OAAK;;;MEFK,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;AAEtD,IAAA,QAAQ,MAAY;;0GANT,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,wFCR1B,0EACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,0EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMnB,OAAO,EAAA,CAAA;sBAAfC,OAAK;;;MEFK,cAAc,CAAA;AAIzB,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;AAEtD,IAAA,QAAQ,MAAW;;2GANR,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,yFCR3B,qKACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,qKAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMpB,OAAO,EAAA,CAAA;sBAAfC,OAAK;;;MEFK,eAAe,CAAA;AAI1B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAK;AAEvD,IAAA,QAAQ,MAAY;IAEpB,WAAW,GAAA;QACT,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;KAC1C;;4GAVU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,0FCR5B,0GACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,0GAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMrB,OAAO,EAAA,CAAA;sBAAfC,OAAK;;;MEHK,aAAa,CAAA;AAExB,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;0GALU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,wDCP1B,MACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;;MEKjB,gBAAgB,CAAA;AAM3B,IAAA,WAAA,GAAA;AAJA,QAAA,IAAY,CAAA,YAAA,GAAG,YAAY,CAAA;KAIV;AAEjB,IAAA,QAAQ,MAAY;;6GART,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,mFCR7B,goBAQA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAa,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,aAAa,EAAA,QAAA,EAAA,goBAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,CAAA;0EAQd,OAAO,EAAA,CAAA;sBAAfN,OAAK;;;MELK,iBAAiB,CAAA;AAG5B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;8GANU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,uFCP9B,oYAYA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAO,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,qIAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDLa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,oYAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAMtB,KAAK,EAAA,CAAA;sBAAbR,OAAK;;;MEDK,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;IAEtD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAG,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC7F;;2GAPU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,mFCR3B,2cAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,2cAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMlB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEFK,eAAe,CAAA;AAG1B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;IAEtD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC7F;IAED,KAAK,GAAA;AACH,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC;AACpB,YAAA,IAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE;AACxC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE;AACtC,SAAA;KACF;IAED,IAAI,GAAA;AACF,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC;AACpB,YAAA,IAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzD,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAE;AACxC,aAAA;AACF,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAE;AACtC,SAAA;KACF;;4GA3BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,oFCR5B,mvCAoCA,EAAA,MAAA,EAAA,CAAA,+fAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD5Ba,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,mvCAAA,EAAA,MAAA,EAAA,CAAA,+fAAA,CAAA,EAAA,CAAA;kGAMnB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEDK,cAAc,CAAA;AAGzB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAK;AAErC,IAAA,QAAQ,MAAW;AAEnB,IAAA,YAAY,CAAC,MAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAE;AAC7B,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC;YACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;AACzC,SAAA;KACF;;2GAZU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,mFCT3B,2yBAkBM,EAAA,MAAA,EAAA,CAAA,2RAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDTO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,2yBAAA,EAAA,MAAA,EAAA,CAAA,2RAAA,CAAA,EAAA,CAAA;4FAMlB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEHK,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;IAEtD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC5F;;+GAPU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,uFCR/B,ycAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,ycAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMtB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEFK,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAI;IAEtD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC5F;;+GAPU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,wFCR/B,scAaQ,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDLK,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,scAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMvB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEFK,iBAAiB,CAAA;AAG5B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAK;IAEvD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC5F;;8GAPU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,uFCR9B,4cAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,4cAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMtB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEDK,aAAa,CAAA;AAKxB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAK;IAErC,QAAQ,GAAA;KACP;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAE;QAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;KACzC;;0GAbU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kFCT1B,+NAKA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDIa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,+NAAA,EAAA,MAAA,EAAA,CAAA,0GAAA,CAAA,EAAA,CAAA;4FAQjB,KAAK,EAAA,CAAA;sBAAbV,OAAK;;;MELK,oBAAoB,CAAA;AAK/B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAFhC,QAAA,IAAO,CAAA,OAAA,GAAW,EAAE,CAAE;AACtB,QAAA,IAAY,CAAA,YAAA,GAAa,KAAK,CAAE;KACK;IAErC,QAAQ,GAAA;AACN,QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC/D,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAC;AACjC,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,CAAE;AACzB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAE;KAC3B;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;QACtB,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,QAAA,KAAI,IAAI,CAAC,GAAG,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC;AACzC,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAI;AACjD,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,MAAM,CAAE;KAChB;;iHAxBU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,yFCRjC,6sBAgBM,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDRO,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,6sBAAA,EAAA,MAAA,EAAA,CAAA,wPAAA,CAAA,EAAA,CAAA;4FAMxB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEFK,eAAe,CAAA;AAI1B,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAK;IAEvD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAC;AACrB,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC3D,KAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAC;AACrC,gBAAA,IAAG,KAAK,CAAC,KAAK,KAAK,KAAK;oBAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAA;AAC3D,aAAA;AACF,SAAA;KACF;;4GAbU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,oFCR5B,wTASc,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDDD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,wTAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMnB,KAAK,EAAA,CAAA;sBAAbZ,OAAK;;;MEFK,kBAAkB,CAAA;AAS7B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAPvB,QAAA,IAAW,CAAA,WAAA,GAAc,EAAE,CAAA;AAC3B,QAAA,IAAO,CAAA,OAAA,GAAY,EAAE,CAAA;AAEpB,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU,CAAC;AAEjD,QAAA,IAAK,CAAA,KAAA,GAAc,EAAE,CAAC;KAEe;IAErC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,UAAU,CAAC,CAAC,CAAC,CAAA;KAC9H;;+GAbU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,6JCR/B,6MAKA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDGa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,6MAAA,EAAA,MAAA,EAAA,CAAA,6EAAA,CAAA,EAAA,CAAA;4FAMvB,WAAW,EAAA,CAAA;sBAAnBR,OAAK;gBACG,OAAO,EAAA,CAAA;sBAAfA,OAAK;gBAEI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MEHI,iBAAiB,CAAA;AAS5B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAPvB,QAAA,IAAM,CAAA,MAAA,GAAc,EAAE,CAAA;AACtB,QAAA,IAAO,CAAA,OAAA,GAAY,EAAE,CAAA;AAE9B,QAAA,IAAkB,CAAA,kBAAA,GAAY,EAAE,CAAA;AAEhC,QAAA,IAAG,CAAA,GAAA,GAAoB,EAAE,CAAA;QAGvB,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAE,CAAC,UAAmB,KAAI;;YAGlF,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,UAAU,CAAC,CAAC,CAAA;AACzF,YAAA,KAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AACjD,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAS,KAAG;AACpE,oBAAA,IAAG,QAAQ,IAAE,IAAI,CAAC,IAAI,EAAC;AACrB,wBAAA,IAAG,OAAO;AAAE,4BAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,GAAC,UAAU,EAAC,GAAG,CAAC,CAAC,CAAA;;AACpE,4BAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,GAAC,UAAU,EAAC,GAAG,CAAC,CAAC,CAAA;AAClE,wBAAA,OAAO,KAAK,CAAA;AACb,qBAAA;;AACI,wBAAA,OAAO,IAAI,CAAA;AAClB,iBAAC,CAAC,CAAA;SACP,CAAC,CAAC,CAAA;KACJ;AAED,IAAA,QAAQ,MAAW;IAEnB,eAAe,GAAA;QACb,IAAI,GAAG,GAAE,EAAE,CAAA;AACX,QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAC;AAAE,YAAA,GAAG,IAAI,GAAG,GAAC,CAAC,GAAC,GAAG,CAAA;AAAE,SAAA;QAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAA;KAC5B;AAED,IAAA,QAAQ,CAAC,IAAU,EAAA;AAEjB,QAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhF,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;KAC3D;IAED,WAAW,GAAA;AACT,QAAA,KAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG;YAAE,YAAY,CAAC,WAAW,EAAE,CAAA;KAC7D;;8GA5CU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,6GCV9B,8HAIC,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMY,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,8HAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAMtB,MAAM,EAAA,CAAA;sBAAdA,OAAK;gBACG,OAAO,EAAA,CAAA;sBAAfA,OAAK;;;MELK,cAAc,CAAA;AAQzB,IAAA,WAAA,CAAoB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;AALnD,QAAA,IAAM,CAAA,MAAA,GAAa,IAAI,CAAE;AACzB,QAAA,IAAM,CAAA,MAAA,GAAa,KAAK,CAAE;AAE1B,QAAA,IAAW,CAAA,WAAA,GAAc,EAAE,CAAC;KAE2B;IAEvD,QAAQ,GAAA;AACN,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,KAAK;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;AACxF,QAAA,IAAG,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;KAClE;AAED,IAAA,MAAM,CAAC,IAAS,EAAA;;QAEd,IAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC;;AAEjC,YAAA,IAAG,IAAI,CAAC,KAAK,CAAC,QAAQ;AAAE,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;;AAE9C,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,CAAE;;;AAE/B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,IAAE,IAAI,CAAC,CAAA;KAElE;IAED,GAAG,GAAA;QACD,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;KACpB;;2GA9BU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,mFCR3B,kuCAyBA,EAAA,MAAA,EAAA,CAAA,mnBAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAc,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjBa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,kuCAAA,EAAA,MAAA,EAAA,CAAA,mnBAAA,CAAA,EAAA,CAAA;kGAMlB,KAAK,EAAA,CAAA;sBAAbX,OAAK;;;MEFK,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAmB,cAA+B,EAAA;AAA/B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;KAAK;IAEvD,QAAQ,GAAA;AACN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;KAC5F;;0GARU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,kFCR1B,2qCA2BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,mBAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAW,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDnBa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,2qCAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;kGAMjB,KAAK,EAAA,CAAA;sBAAbV,OAAK;;;MEHc,IAAI,CAAA;IAUtB,WAAY,CAAA,GAAY,EAAE,MAAe,EAAA;AAErC,QAAA,IAAI,CAAC,GAAG,GAAC,GAAG,CAAC;;AAGb,QAAA,IAAI,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC;AACX,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAE;AACtB,QAAA,IAAI,CAAC,IAAI,GAAE,IAAI,SAAS,EAAE,CAAC;KAC9B;IAED,KAAK,CAAC,EAAW,EAAA,EAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AACnC,IAAA,KAAK,KAAc,OAAO,IAAI,CAAC,EAAE,CAAE,EAAC;IAEpC,WAAW,GAAA;QACP,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/C;AACJ;;ACjCD,IAAY,SAOX,CAAA;AAPD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACrB,CAAC,EAPW,SAAS,KAAT,SAAS,GAOpB,EAAA,CAAA,CAAA;;ACHK,MAAOe,QAAO,SAAQ,IAAI,CAAA;AAM5B,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AANhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAE;AAC9B,QAAA,IAAG,CAAA,GAAA,GAAsC,EAAE,CAAA;QAMvC,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;KAC7C;AACJ;;MCFYC,iBAAe,CAAA;AAU1B,IAAA,WAAA,CAAoB,KAAa,EAAA;AAAb,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;AAPjC,QAAA,IAAY,CAAA,YAAA,GAAa,KAAK,CAAC;AAG/B,QAAA,IAAkB,CAAA,kBAAA,GAAsC,EAAE,CAAA;AAE1D,QAAA,IAAG,CAAA,GAAA,GAAoB,EAAE,CAAA;KAEY;IAErC,QAAQ,GAAA;;AAGN,QAAA,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAA;QAExI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAK,CAAC,GAAG,SAAS,CAAA;;QAG3E,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CAAE,CAAC,UAAmB,KAAI;AAClF,YAAA,KAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;AACnD,gBAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAE,IAAoC,KAAI;AACjG,oBAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAS,KAAI;AACvC,wBAAA,IAAG,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAC;4BACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,IAAI,CAAC,IAAI,EAAG,GAAG,EAAG,GAAG,EAAC,CAAC,CAAA;4BACvE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,GAAG,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;;AAEzE,4BAAA,IAAG,IAAI,CAAC,KAAK,IAAE,SAAS;gCAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AAC7F,4BAAA,OAAO,KAAK,CAAA;AACb,yBAAA;;AACI,4BAAA,OAAO,IAAI,CAAA;AAClB,qBAAC,CAAC,CAAA;AACF,oBAAA,OAAO,IAAI,CAAC,GAAG,IAAE,EAAE,CAAA;AACrB,iBAAC,CAAC,CAAA;SACL,CAAC,CAAC,CAAA;KACJ;AAED,IAAA,WAAW,CAAC,KAAW,EAAA;AACrB,QAAA,IAAG,IAAI,CAAC,KAAK,IAAE,SAAS,EAAE;;AAExB,YAAA,IAAI,YAAY,GAAG,EAAE,GAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;AACxD,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,KAAK,CAAA;;YAG1C,IAAI,CAAC,GAAG,IAAIlB,MAAI,CAAC,SAAS,IAAE,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,KAAK,GAAC,KAAK,CAAC,WAAW,EAAE,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AACrF,YAAA,CAAC,CAAC,MAAM,GAAE,KAAK,CAAC;AAChB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;;YAGlD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,YAAY,CAAC,CAAC;AAChF,iBAAA,SAAS,CAAC;gBACT,QAAQ,EAAG,MAAK;AAAG,oBAAA,IAAG,IAAI,CAAC,KAAK,IAAE,SAAS;wBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;iBAAC;AAClH,aAAA,CAAC,CAAA;AAEH,SAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,IAAI,MAAM,GAAG,IAAIiB,QAAM,CAAC,iBAAiB,CAAC,CAAA;AAE1C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAE,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;AAEnD,QAAA,IAAI,CAAC,GAAG,IAAIjB,MAAI,CAAC,SAAS,IAAE,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,KAAK,GAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1F,QAAA,CAAC,CAAC,MAAM,GAAE,MAAM,CAAC,GAAG,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;;QAG1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAC,CAAC,CAAC;;QAEzC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAE,MAAM,EAAC,SAAS,IAAE,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,KAAK,EAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA;KACzF;AAED,IAAA,WAAW,CAAC,MAAe,EAAA;;QAGzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;;QAG1C,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAE,CAAC,CAAM,KAAK,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAE,CAAA;AACjF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;KACnD;AAED,IAAA,QAAQ,CAAC,IAAU,EAAA;QAEjB,IAAI,GAAG,GAAS,EAAC,KAAK,EAAG,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,KAAK,GAAC,CAAC,EAAE,GAAG,EAAG,EAAE,EAAC,CAAA;AAE3D,QAAA,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE;AAAE,YAAA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAEhE,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;KAC3C;AAED,IAAA,UAAU,CAAC,OAAa,EAAA;AACtB,QAAA,IAAG,IAAI,CAAC,KAAK,IAAE,SAAS,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,KAAU,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;YACrH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAO,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,CAAA;;YAE5J,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACpE,SAAA;KACF;AAED;;;;;;;;;AASE;IAEF,WAAW,GAAA;AACT,QAAA,KAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG;YAAE,YAAY,CAAC,WAAW,EAAE,CAAA;KAC7D;;8GArHUkB,iBAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAfA,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAAA,iBAAe,oFCb5B,kiEAsCA,EAAA,MAAA,EAAA,CAAA,+rCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDzBaM,iBAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,kBAAkB,EAAA,QAAA,EAAA,kiEAAA,EAAA,MAAA,EAAA,CAAA,+rCAAA,CAAA,EAAA,CAAA;4FAMnB,KAAK,EAAA,CAAA;sBAAbhB,OAAK;;;MENK,cAAc,CAAA;AAMzB,IAAA,WAAA,GAAA;AAJA,QAAA,IAAU,CAAA,UAAA,GAAG,UAAU,CAAC;KAIP;AACjB,IAAA,QAAQ,MAAY;;2GAPT,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,6ECT3B,09CAkBA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAiB,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDTa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,09CAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,CAAA;0EAQZ,KAAK,EAAA,CAAA;sBAAb9B,OAAK;;;MELK,kBAAkB,CAAA;AAI7B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAK;AAErC,IAAA,QAAQ,MAAW;IAEnB,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;KAC1F;AAED,IAAA,WAAW,MAAI;;+GAZJ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,gFCR/B,mDACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA+B,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,mDAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAMjB,IAAI,EAAA,CAAA;sBAAZ/B,OAAK;;;MEIK,iBAAiB,CAAA;AAQ5B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAJhC,QAAA,IAAU,CAAA,UAAA,GAAY,EAAE,CAAA;AAExB,QAAA,IAAG,CAAA,GAAA,GAAoB,EAAE,CAAA;KAEY;IAErC,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CACnD,KAAK,IAAI,IAAI,CAAC,UAAU,GAAG,KAAK,CACjC,CAAC,CAAA;KAEH;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;AAC1E,QAAA,IAAI,MAAM,GAAG,CAAC,CAAC,CAAE;QAAC,IAAI,CAAC,GAAG,CAAC,CAAE;QAC7B,GAAG;AACD,YAAA,IAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;AACrE,YAAA,CAAC,EAAE,CAAC;SACL,QAAQ,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAC;AAE1C,QAAA,IAAI,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,IAAI,MAAM,IAAI,CAAC,CAAC;AACnH,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAAE,CAAC,SAAS,CAAC;AACtD,gBAAA,QAAQ,EAAG,MAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AACnE,aAAA,CAAC,CAAA;;AAEF,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;KACnD;IAED,WAAW,CAAC,MAAe,EAAE,IAAW,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACrE;IAED,aAAa,CAAC,MAAe,EAAE,IAAW,EAAA;QACxC,IAAG,IAAI,YAAY,SAAS,EAAE;YAC5B,IAAI,IAAI,GAAG,KAAK,CAAE;AAClB,YAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE;gBACzB,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAC,CAAC,CAAC,CAAE;AAC9C,aAAA;AACD,YAAA,OAAO,IAAI,CAAE;AACd,SAAA;;AACI,YAAA,OAAO,IAAI,CAAC,MAAM,IAAI,MAAM,CAAA;KAClC;IAED,WAAW,GAAA;AAAI,QAAA,KAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG;YAAE,YAAY,CAAC,WAAW,EAAE,CAAA;KAAE;;8GAlDlE,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,mFCd9B,8PAKS,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDSI,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,8PAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;4FAMpB,IAAI,EAAA,CAAA;sBAAZR,OAAK;;;MEPK,mBAAmB,CAAA;AAK9B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAFhC,QAAA,IAAe,CAAA,eAAA,GAAa,KAAK,CAAE;KAEE;IAErC,QAAQ,GAAA;QACN,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CACxD,KAAK,IAAG;YACN,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAE;AAC5C,SAAC,CACF,CAAA;KACF;AAED,IAAA,cAAc,GAAI,EAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAA,EAAE;;gHAflD,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,sFCThC,yJAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,yJAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAMvB,IAAI,EAAA,CAAA;sBAAZT,OAAK;;;MEFK,mBAAmB,CAAA;AAK9B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAFhC,QAAA,IAAW,CAAA,WAAA,GAAa,IAAI,CAAE;KAEO;AAErC,IAAA,QAAQ,MAAY;AAEpB,IAAA,YAAY,GAAI,EAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAA,EAAE;;gHAT9C,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,sFCThC,4HAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,sBAAsB,EAAA,QAAA,EAAA,4HAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAMvB,IAAI,EAAA,CAAA;sBAAZT,OAAK;;;MEFK,kBAAkB,CAAA;AAM7B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAHhC,QAAA,IAAe,CAAA,eAAA,GAAa,KAAK,CAAE;AACnC,QAAA,IAAa,CAAA,aAAA,GAAa,KAAK,CAAE;KAEI;IAErC,QAAQ,GAAA;AACN,QAAA,IAAG,IAAI,CAAC,IAAI,CAAC,WAAW;YACtB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAA;;YAE5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CACxD,KAAK,IAAG;gBACN,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAE;AAC5C,aAAC,CACF,CAAA;KACJ;IAED,YAAY,GAAA,EAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,IAAI,EAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAE,CAAC,CAAA,EAAE;;+GAnBjG,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,qFCT/B,wLAES,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOI,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,qBAAqB,EAAA,QAAA,EAAA,wLAAA,EAAA,MAAA,EAAA,CAAA,wFAAA,CAAA,EAAA,CAAA;4FAMtB,IAAI,EAAA,CAAA;sBAAZT,OAAK;;;MEHK,aAAa,CAAA;AAMxB,IAAA,WAAA,GAAA;AAJA,QAAA,IAAS,CAAA,SAAA,GAAE,SAAS,CAAA;KAIH;AAEjB,IAAA,QAAQ,MAAY;;0GART,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8FAAb,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECR1B,8qCAgBA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EDRa,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAgC,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,8qCAAA,EAAA,MAAA,EAAA,CAAA,yIAAA,CAAA,EAAA,CAAA;0EAQX,IAAI,EAAA,CAAA;sBAAZtC,OAAK;;;MELK,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,QAAQ,MAAW;;0GALR,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,+ECP1B,+IAIA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA/B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDGa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,eAAe,EAAA,QAAA,EAAA,+IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAMhB,IAAI,EAAA,CAAA;sBAAZR,OAAK;;;AETR,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACnB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA;;ACCK,MAAgB,aAAc,SAAQ,IAAI,CAAA;AAM5C,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AANhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAE;KAO/B;AACJ;;ACRD,IAAY,YAQX,CAAA;AARD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,QAAuB,CAAA;AACvB,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAE7C,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,YAAyB,CAAA,YAAA,CAAA,GAAA,YAAA,CAAA;AAC7B,CAAC,EARW,YAAY,KAAZ,YAAY,GAQvB,EAAA,CAAA,CAAA,CAAA;AAEK,MAAO,KAAM,SAAQ,aAAa,CAAA;AAQpC,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AARhB,QAAA,IAAA,CAAA,aAAa,GAAG,aAAa,CAAC,KAAK,CAAE;KASpC;;IAGD,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;KAClD;IACD,eAAe,GAAA;QACX,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;;AAGD,IAAA,eAAe,CAAC,OAAuE,EAAA;QACnF,IAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,SAAA;KACJ;;AAGD,IAAA,gBAAgB,CAAC,MAAe,EAAA;QAC5B,IAAI,IAAI,GAAG,KAAK,CAAE;AAClB,QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAC;AAC1B,YAAA,IAAI,GAAG,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,IAAG,SAAS,CAAC,CAAE;AAC/D,SAAA;AACD,QAAA,OAAO,IAAI,CAAE;KAChB;;IAGD,uBAAuB,GAAA;QACnB,IAAI,UAAU,GAAG,IAAI,CAAC;AACtB,QAAA,KAAI,IAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAC;YACvC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAE;AAC7D,SAAA;AACD,QAAA,OAAO,UAAU,CAAE;KACtB;;AAGD,IAAA,mBAAmB,CAAC,eAAgC,EAAA;AAChD,QAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AACvC,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;KACzB;AACD,IAAA,mBAAmB,KAAsB,OAAO,IAAI,CAAC,eAAe,CAAE,EAAE;IAExE,uBAAuB,GAAA;AACnB,QAAA,IAAI,CAAC,eAAe,GAAG,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAE;KACxF;AACJ;;MC7DY,cAAc,CAAA;AAMzB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAFhC,QAAA,IAAY,CAAA,YAAA,GAAa,KAAK,CAAE;KAEK;IAErC,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACtD,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;;;AAI9C,QAAA,KAAI,IAAI,CAAC,IAAI,WAAW,EAAC;AACvB,YAAA,IAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE;AACzC,gBAAA,MAAM,CAAC,cAAc,CACnB,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,MAAM,EACR,EAAE,KAAK,EAAG,CAAC,CAAC,KAAK,EAAE,CACpB,CAAC;AACH,aAAA;AACD,YAAA,IAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,KAAK,EAAE;AACvC,gBAAA,IAAI,GAAG,CAAC;AACR,gBAAA,IAAG,CAAC,CAAC,KAAK,YAAY,KAAK,EAAC;oBACzB,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACvC,iBAAA;AAAM,qBAAA;oBACJ,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAE,CAAC;AAC1F,iBAAA;AACD,gBAAA,MAAM,CAAC,cAAc,CACnB,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,MAAM,EACR,EAAE,KAAK,EAAG,GAAG,EAAE,CAChB,CAAC;AACH,aAAA;AACD,YAAA,IAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,YAAY,EAAE;gBAE9C,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,gBAAA,KAAI,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,EAAC;oBACrB,IAAG,GAAG,YAAY,KAAK,EAAC;AACrB,wBAAA,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACvC,qBAAA;AAAM,yBAAA;wBACJ,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAE,CAAC;AAC1F,qBAAA;AACF,iBAAA;AAED,gBAAA,MAAM,CAAC,cAAc,CACnB,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,MAAM,EACR,EAAE,KAAK,EAAG,MAAM,EAAE,CACnB,CAAC;AACH,aAAA;AACD,YAAA,IAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,oBAAoB,EAAE;gBAEtD,IAAI,MAAM,GAAG,EAAE,CAAE;AACjB,gBAAA,KAAI,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,EAAC;AACrB,oBAAA,IAAG,OAAO,GAAG,IAAI,QAAQ,EAAC;wBACxB,MAAM,IAAI,GAAG,CAAE;AAChB,qBAAA;yBAAM,IAAI,GAAG,YAAY,KAAK,EAAE;AAC/B,wBAAA,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACtC,qBAAA;AAAM,yBAAA;wBACL,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAE,CAAA;AACxF,qBAAA;AACF,iBAAA;AACD,gBAAA,MAAM,CAAC,cAAc,CACnB,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,MAAM,EACR,EAAE,KAAK,EAAG,MAAM,EAAE,CACnB,CAAC;AACH,aAAA;AACD,YAAA,IAAG,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,gBAAgB,EAAE;gBAElD,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,gBAAA,KAAI,IAAI,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE;AACvB,oBAAA,IAAI,UAAU,CAAC;AACf,oBAAA,IAAG,IAAI,CAAC,OAAO,YAAY,KAAK,EAAC;wBAAE,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAAC,qBAAA;AAC/E,yBAAA;wBAAE,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAA;AAAE,qBAAA;oBAC3G,QAAO,IAAI,CAAC,SAAS;AACnB,wBAAA,KAAK,GAAG;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;AAC9D,wBAAA,KAAK,GAAG;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;AAC9D,wBAAA,KAAK,GAAG;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;AAC/D,wBAAA,KAAK,GAAG;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;AAC/D,wBAAA,KAAK,IAAI;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;AAChE,wBAAA,KAAK,IAAI;4BAAG,MAAM,GAAG,MAAM,IAAI,UAAU,IAAI,IAAI,CAAC,KAAK,CAAE;4BAAC,MAAM;wBAChE,SAAU,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;AAClD,qBAAA;;AAEF,iBAAA;AAED,gBAAA,MAAM,CAAC,cAAc,CACnB,IAAI,CAAC,cAAc,EACnB,CAAC,CAAC,MAAM,EACR,EAAE,KAAK,EAAG,MAAM,EAAE,CACnB,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAE;KAC3B;;AAGD,IAAA,gBAAgB,CAAC,GAAW,EAAA;;AAE1B,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAE;QAC7F,KAAI,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAC3B,YAAA,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAE;AACrB,SAAA;AACD,QAAA,OAAO,KAAK,CAAE;KACf;AAED,IAAA,uBAAuB,CAAC,MAAgB,EAAA;;AAEtC,QAAA,IAAG,MAAM,EAAC;;YAER,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAC,GAAG,EAAG,iBAAiB,EAAE,KAAK,EAAG,MAAM,GAAC,SAAS,GAAC,OAAO,EAAC,CAAC,CAAC,CAAC;AACjG,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAC,GAAG,EAAG,eAAe,EAAE,KAAK,EAAG,OAAO,EAAC,CAAC,CAAC,CAAC;YAC9E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;AACzC,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAE;AAClE,SAAA;KACF;;2GAxHU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,yFCX3B,qMAGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAwC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA9B,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,qMAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAM1B,IAAI,EAAA,CAAA;sBAAZX,OAAK;;;MEHK,cAAc,CAAA;AAIzB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAK;AAErC,IAAA,QAAQ,MAAW;IAEnB,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAC,GAAG,EAAG,eAAe,EAAE,KAAK,EAAG,OAAO,EAAC,CAAC,CAAC,CAAC;AAC9E,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,EAAC,GAAG,EAAG,iBAAiB,EAAE,KAAK,EAAG,SAAS,EAAC,CAAC,CAAC,CAAC;QAClF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;KACzC;;2GAZU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,yFCV3B,gHAEA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAwC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDQa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,gHAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;4FAM1B,IAAI,EAAA,CAAA;sBAAZxC,OAAK;;;MEJK,iBAAiB,CAAA;AAK5B,IAAA,WAAA,GAAA;AAHA,QAAA,IAAa,CAAA,aAAA,GAAG,aAAa,CAAC;KAGb;AAEjB,IAAA,QAAQ,MAAY;;8GAPT,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,mFCR9B,qYAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAyC,cAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,qYAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAQpB,IAAI,EAAA,CAAA;sBAAZ1C,OAAK;;;MELK,eAAe,CAAA;AAG1B,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,QAAQ,MAAY;AAEpB,IAAA,QAAQ,CAAC,KAAc,EAAA;QACrB,IAAI,MAAM,GAAG,CAAC,CAAE;AAChB,QAAA,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAC,SAAS,CAAC,CAAC;AAC5E,QAAA,IAAG,aAAa,EAAC;;AAEf,YAAA,MAAM,GAAG,CAAE,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAE,GAAG,CAAA;AACxF,SAAA;AACD,QAAA,OAAO,MAAM,CAAA;KACd;AACD,IAAA,SAAS,CAAC,KAAc,EAAA;QACtB,IAAI,MAAM,GAAG,GAAG,CAAE;AAClB,QAAA,IAAI,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAC,SAAS,CAAC,CAAC;AAC5E,QAAA,IAAG,aAAa,EAAC;;AAEf,YAAA,MAAM,GAAG,CAAE,aAAa,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,IAAE,GAAG,CAAA;AACvF,SAAA;AACD,QAAA,OAAO,MAAM,CAAA;KACd;;4GAxBU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,iFCP5B,4fASA,EAAA,MAAA,EAAA,CAAA,wIAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA9B,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDFa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,4fAAA,EAAA,MAAA,EAAA,CAAA,wIAAA,CAAA,EAAA,CAAA;0EAMlB,IAAI,EAAA,CAAA;sBAAZT,OAAK;;;MEFK,YAAY,CAAA;AAIvB,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;QACN,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC;;yGARU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,8ECPzB,MACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMa,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAMf,IAAI,EAAA,CAAA;sBAAZA,OAAK;;;MECK,YAAY,CAAA;IAOvB,WAAoB,CAAA,KAAY,EAAU,SAAuB,EAAA;AAA7C,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AAAU,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAK;IAEtE,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,mCAAmC,GAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAC,mBAAmB,CAAC,CAAC;QAExI,MAAM,MAAM,GAAS,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;AAC3D,QAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACnB,YAAA,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAE;;;;YAK1F,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;gBAEjD,IAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAC;oBAEjC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;AACvF,yBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAE;oBAE1D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;AACzC,iBAAA;AAEH,aAAC,CAAC,CAAC;AACH,YAAA,IAAG,aAAa,EAAC;gBACf,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAC,IAAI,EAAC,CAAC,CAAC;AAC5F,aAAA;AACH,SAAC,CAAA;KACF;IAED,WAAW,GAAA;QACT,IAAG,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;KAC9C;;yGAvCU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,8ECVzB,2DACA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,CAAA,CAAA;2FDSa,YAAY,EAAA,UAAA,EAAA,CAAA;kBALxB,SAAS;+BACE,cAAc,EAAA,QAAA,EAAA,2DAAA,EAAA,MAAA,EAAA,CAAA,oDAAA,CAAA,EAAA,CAAA;yHAMf,IAAI,EAAA,CAAA;sBAAZR,OAAK;;;MELK,eAAe,CAAA;AAI1B,IAAA,WAAA,GAAA,GAAiB;AAEjB,IAAA,QAAQ,MAAW;;4GANR,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,iFCP5B,6EAAuE,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA/B,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDO1D,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,6EAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;0EAMlB,IAAI,EAAA,CAAA;sBAAZR,OAAK;;;MEGK,aAAa,CAAA;AAQxB,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;AALhC,QAAA,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;AAEtB,QAAA,IAAG,CAAA,GAAA,GAAoB,EAAE,CAAC;AAC1B,QAAA,IAAW,CAAA,WAAA,GAAa,KAAK,CAAC;KAEO;IAErC,QAAQ,GAAA;AAEN,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CACxD,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAS,KAAK,IAAI,CAAC,KAAK,EAAE,IAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,CAAC,CAC7I,CAAC,CAAA;;AAGF,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CACnD,MAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAC/B,CAAC,CAAA;KAEH;IAED,WAAW,GAAA;AAAI,QAAA,KAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG;YAAE,YAAY,CAAC,WAAW,EAAE,CAAA;KAAE;IAE7E,kBAAkB,GAAA;QAChB,IAAG,IAAI,CAAC,WAAW,EAAE;AACnB,YAAA,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AACnE,YAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;AACzB,SAAA;KACF;;0GAhCU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,gDCZ1B,guBAUA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA2C,aAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,iBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,YAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDEa,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,SAAS;+BACE,UAAU,EAAA,QAAA,EAAA,guBAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;;;MEGT,cAAc,CAAA;IAKzB,WAAoB,CAAA,cAA+B,EAAS,KAAY,EAAA;AAApD,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAiB;AAAS,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;KAAK;AAE7E,IAAA,QAAQ,MAAW;AAEnB,IAAA,gBAAgB,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE;AAE/F,IAAA,WAAW,GAAG,EAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA,EAAE;;2GAXpD,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAlD,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,2GCX3B,8dAcA,EAAA,MAAA,EAAA,CAAA,mfAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA0B,gBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDHa,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACE,WAAW,EAAA,QAAA,EAAA,8dAAA,EAAA,MAAA,EAAA,CAAA,mfAAA,CAAA,EAAA,CAAA;sHAMZ,MAAM,EAAA,CAAA;sBAAdlC,OAAK;gBACG,WAAW,EAAA,CAAA;sBAAnBA,OAAK;;;MEHK,mBAAmB,CAAA;AAiB9B,IAAA,WAAA,CAAoB,KAAY,EAAA;AAAZ,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAO;;AATtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAiC,CAAC;AAC5D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAS,CAAC;AACtC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAc,CAAC;AAEzD,QAAA,IAAA,CAAA,OAAO,GAAyC,EAAE,CAAE;AACpD,QAAA,IAAA,CAAA,YAAY,GAAS,EAAC,IAAI,EAAG,KAAK,EAAG,OAAO,EAAG,EAAE,EAAE,WAAW,EAAG,GAAG,EAAC,CAAE;AAEvE,QAAA,IAAG,CAAA,GAAA,GAAoB,EAAE,CAAA;;QAKvB,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAE,KAAK,IAAG;AACzE,YAAA,IAAG,KAAK,EAAC;;gBAEP,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;;AAG9C,gBAAA,IAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC;oBAC/D,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;;gBAGrF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC;AAE3C,aAAA;SACF,CACF,CAAC,CAAA;;QAGF,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAChE,YAAA,IAAG,KAAK,IAAI,KAAK,CAAC,MAAM,GAAC,CAAC,EAAE;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAC1B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAA;AAC3C,aAAA;SACF,CAAC,CAAC,CAAA;AAEH,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,SAAS,CAAE,KAAK,IAAI,IAAI,CAAC,YAAY,GAAG,KAAK,CAAE,CACnG,CAAA;KACF;IAED,QAAQ,GAAA;;AAEN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;;QAG3D,IAAI,CAAC,GAAG,CAAC,IAAI,CACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,SAAS,CACxD,MAAK;AACH,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;SACzC,CACF,CAAC,CAAA;KACH;AAED,IAAA,WAAW,CAAC,WAA0B,EAAA;QACpC,IAAG,WAAW,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,YAAY,IAAG,EAAE,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,YAAY,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,aAAa;AAC9J,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAA;KACjF;IAED,WAAW,GAAA;AACT,QAAA,KAAI,IAAI,YAAY,IAAI,IAAI,CAAC,GAAG;YAAE,YAAY,CAAC,WAAW,EAAE,CAAA;KAC7D;;gHAzEU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,kPCXhC,4kBAWM,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAwC,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAU,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAvC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAM,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDAO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,4kBAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA;4FAOjB,UAAU,EAAA,CAAA;sBAAlBZ,OAAK;gBACG,IAAI,EAAA,CAAA;sBAAZA,OAAK;gBACG,UAAU,EAAA,CAAA;sBAAlBA,OAAK;gBAGI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,aAAa,EAAA,CAAA;sBAAtB,MAAM;;;MEwFI,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,iBArD5B,mBAAmB;QACnB,aAAa;QACb,cAAc;QACd,aAAa;QACb,iBAAiB;QACjB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,cAAc;QACd,aAAa;QACb,aAAa;QACb,cAAc;QACd,eAAe;QACf,YAAY;QACZ,oBAAoB;QACpB,YAAY;QACZ,aAAa;QACb,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,aAAa;QACboD,iBAAqB;AACrB,QAAAC,eAAoB,aAGpB,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,uBAAuB;QACvB,YAAY;QACZ,cAAc;QACd,aAAa;AACb,QAAA,uBAAuB,oBAGf,mBAAmB,CAAA,EAAA,CAAA,CAAA;AAElB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAbrB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,uBAAuB;YACvB,YAAY;YACZ,cAAc;YACd,aAAa;YACb,uBAAuB;AACvB,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;SAClC,CAAA,EAAA,CAAA,CAAA;2FAGU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAvD/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,iBAAiB;wBACjB,iBAAiB;wBACjB,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,kBAAkB;wBAClB,iBAAiB;wBACjB,cAAc;wBACd,aAAa;wBACb,eAAe;wBACf,gBAAgB;wBAChB,cAAc;wBACd,aAAa;wBACb,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,oBAAoB;wBACpB,YAAY;wBACZ,aAAa;wBACb,kBAAkB;wBAClB,cAAc;wBACd,iBAAiB;wBACjB,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,iBAAiB;wBACjB,mBAAmB;wBACnB,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,aAAa;wBACbD,iBAAqB;wBACrBC,eAAoB;AACrB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,YAAY;wBACZ,uBAAuB;wBACvB,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,uBAAuB;AACvB,wBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC;AAClC,qBAAA;oBACD,OAAO,EAAE,CAAC,mBAAmB,CAAC;iBAC/B,CAAA;;;MCvGqB,KAAK,CAAA;AAWvB,IAAA,WAAA,CAAa,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAA;AAEnF,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAE;;AAGhB,QAAA,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAE;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,KAAK,CAAE;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,SAAS,CAAE;KACpC;IAED,SAAS,GAAA;QACL,IAAI;YACA,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAA,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;AAC3B,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACZ,YAAA,MAAM,KAAK,CAAA;AACd,SAAA;KACJ;IAKD,KAAK,CAAC,EAAW,EAAA,EAAG,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AACnC,IAAA,KAAK,KAAc,OAAO,IAAI,CAAC,EAAE,CAAE,EAAE;IAErC,WAAW,GAAA;QACP,IAAG,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClE;AACJ;;AC7CK,MAAO,qBAAsB,SAAQ,KAAK,CAAA;AAAI;;ACM9C,MAAO,QAAS,SAAQ,KAAK,CAAA;IAO/B,WAAY,CAAA,GAAW,EAAE,MAAiB,EAAE,KAAe,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAA;QACtH,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AANzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,QAAQ,CAAC;AAQ7B,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,KAAK,CAAC;AAC/B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,CAAC;KAC9B;IAED,UAAU,GAAA,EAAa,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA,EAAC;IAEhH,aAAa,GAAA;AACT,QAAA,IAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC7I;AACJ;;AClBK,MAAgB,IAAK,SAAQ,KAAK,CAAA;AAOpC,IAAA,WAAA,CAAa,GAAW,EAAE,KAAgB,EAAC,KAAyB,EAAE,WAA+B,EAAA;AACjG,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,CAAC,CAAC;AAEjB,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACb,QAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;KAC3B;IAED,UAAU,GAAA;AACN,QAAA,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,CAAE;KAChK;IAED,aAAa,GAAA;AACT,QAAA,IAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,IAAE,EAAE,CAAC,EAAC;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;AAC5I,QAAA,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAC;AAAE,YAAA,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,uBAAuB,GAAC,IAAI,CAAC,GAAG,GAAC,YAAY,CAAC,CAAA;AAAC,SAAA;AACvK,QAAA,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAC;AAAE,YAAA,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,sBAAsB,GAAC,IAAI,CAAC,GAAG,GAAC,YAAY,CAAC,CAAA;AAAC,SAAA;KACzK;IAED,mBAAmB,GAAA;QACf,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;KAC9D;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,GAAI,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAChD,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;AACJ;;ACpCK,MAAO,SAAU,SAAQ,IAAI,CAAA;IAO/B,WAAY,CAAA,GAAW,EAAE,KAAgB,EAAE,KAAyB,EAAE,WAA+B,EAAE,OAAiB,EAAA;QAEpH,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW,CAAC,CAAC;AAPvC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;AAS/B,QAAA,IAAI,CAAC,IAAI,GAAI,EAAE,CAAE;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,CAAE;KAC1C;IAEQ,UAAU,GAAA;QACf,IAAI,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;KAC1N;IAEQ,aAAa,GAAA;QAClB,KAAK,CAAC,aAAa,EAAE,CAAA;QACrB,IAAI,aAAa,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,eAAe,CAAC,CAAA;AAAC,SAAA;KACvK;AACJ;;AC1BK,MAAO,KAAM,SAAQ,SAAS,CAAA;AAIhC,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,KAA0B,EAAE,WAAgC,EAAA;AAEnG,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAC7B,4aAA4a,CAAC,MAAM,CACtb,CAAC;AANG,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;KAOtC;AACJ;;ACPD,IAAY,eAGX,CAAA;AAHD,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AACnC,CAAC,EAHW,eAAe,KAAf,eAAe,GAG1B,EAAA,CAAA,CAAA,CAAA;AAEK,MAAO,MAAO,SAAQ,KAAK,CAAA;AAY7B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,KAAyB,EAAE,WAA+B,EAAA;AACjG,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,CAAC,CAAA;AAXpB,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;;AAc3B,QAAA,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;AACrC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;AACb,QAAA,IAAI,CAAC,GAAG,GAAI,GAAG,CAAC;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,CAAC,aAAa,GAAI,eAAe,CAAC,MAAM,CAAC;AAC7C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;KAC5B;IAED,UAAU,GAAA;QACN,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;KACjL;IAED,aAAa,GAAA;QACT,IAAG,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;AACvH,QAAA,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAC;AAAE,YAAA,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,yBAAyB,GAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAAC,SAAA;AACrJ,QAAA,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAC;AAAE,YAAA,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,yBAAyB,GAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAAC,SAAA;AACrJ,QAAA,IAAG,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,EAAC;AAAE,YAAA,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,qBAAqB,GAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAAC,SAAA;KAC3J;IAED,mBAAmB,GAAA;QACf,IAAI,CAAC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;KAC9D;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,mBAAmB,EAAE,CAAC;KAC9B;AACJ;;ACnDD,IAAY,cAGX,CAAA;AAHD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAEK,MAAO,KAAM,SAAQ,KAAK,CAAA;IAQ5B,WAAY,CAAA,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAE,MAAiB,EAAE,aAA+B,EAAA;QACtI,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AAPzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;;AAU1B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAE;AACtB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,KAAK,CAAE;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,cAAc,CAAC,MAAM,CAAE;KAChE;IAED,UAAU,GAAA;AACN,QAAA,OAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAE;KAC9E;IAED,aAAa,GAAA;QACT,IAAG,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC1H;AAED,IAAA,SAAS,CAAC,KAA+C,EAAA;AACrD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE;KAChC;;IAGQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,KAAI,IAAI,KAAK,IAAI,IAAI,CAAC,UAAU,EAAC;YAC7B,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACtD,SAAA;KACJ;AACJ;;AC1CK,MAAO,SAAU,SAAQ,SAAS,CAAA;AAIpC,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,KAA0B,EAAE,WAAgC,EAAA;AAEnG,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW,EAC7B,+BAA+B,CAAC,MAAM,CACzC,CAAC;AANG,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;KAO1C;AACJ;;ACVK,MAAO,QAAS,SAAQ,IAAI,CAAA;AAO9B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,KAA0B,EAAE,WAA+B,EAAA;QAClG,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAC,WAAW,CAAC,CAAC;AANvC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;AAQ9B,QAAA,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,GAAI,EAAE,CAAC;KACnB;AACJ;;ACbK,MAAO,IAAK,SAAQ,KAAK,CAAA;AAI3B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAA;QAClF,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AAHzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;KAI5B;AAED,IAAA,UAAU,GAAc,EAAA,OAAO,IAAI,CAAA,EAAC;AACpC,IAAA,aAAa,MAAY;AAC5B;;ACVK,MAAO,WAAY,SAAQ,KAAK,CAAA;IAOlC,WAAY,CAAA,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAE,UAAoB,EAAA;QACxG,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AANzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;AAQjC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;KAC3B;IAED,UAAU,GAAA;AACN,QAAA,OAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAE;KAC9E;IACD,aAAa,GAAA;QACT,IAAG,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC1H;AACJ;;ACpBK,MAAO,MAAO,SAAQ,KAAK,CAAA;AAI7B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAA;QAClF,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AAHzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;KAI9B;AAED,IAAA,UAAU,GAAc,EAAA,OAAO,IAAI,CAAA,EAAC;AACpC,IAAA,aAAa,MAAY;AAE5B;;ACRK,MAAO,MAAO,SAAQ,KAAK,CAAA;AAO7B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAA;AAC3D,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,CAAC,CAAA;AAN9B,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;;AAS3B,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAE;AACjB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAE;KACzB;IAED,UAAU,GAAA;AACN,QAAA,OAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAE;KAC9E;IAED,aAAa,GAAA;QACT,IAAG,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC1H;AAED,IAAA,SAAS,CAAC,KAAkC,EAAA;AACxC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAE;KAChC;;IAGQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClD;AACJ;;ACnCK,MAAO,KAAM,SAAQ,KAAK,CAAA;IAQ5B,WAAY,CAAA,GAAW,EAAC,OAAc,EAAC,KAAc,EAAC,SAAkB,EAAC,UAAmB,EAAA;QACxF,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAC;AAP1C,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;AAQ1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,CAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,KAAK,CAAC,CAAC;AACzF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAE;KAE1B;IAED,UAAU,GAAA;AACN,QAAA,OAAQ,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAE;KAC9E;AAED,IAAA,aAAa,MAAI;AACpB;;ACnBK,MAAO,IAAK,SAAQ,KAAK,CAAA;AAO3B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAyB,EAAC,KAAgB,EAAA;AAC/D,QAAA,KAAK,CAAC,GAAG,EAAC,KAAK,CAAC,CAAA;AANpB,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC;AAQzB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAA;KAC3B;IAED,UAAU,GAAA,EAAa,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA,EAAC;IAEhH,aAAa,GAAA;AACT,QAAA,IAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC7I;AACJ;;ACnBK,MAAO,MAAO,SAAQ,KAAK,CAAA;AAI7B,IAAA,WAAA,CAAY,GAAW,EAAE,KAAgB,EAAE,SAAoB,EAAE,UAAqB,EAAA;QAClF,KAAK,CAAC,GAAG,EAAC,KAAK,EAAC,SAAS,EAAC,UAAU,CAAC,CAAA;AAHzC,QAAA,IAAA,CAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;KAI9B;IAED,UAAU,GAAA,EAAc,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,CAAA,EAAC;IACjH,aAAa,GAAA;AACT,QAAA,IAAG,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,OAAO,IAAI,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,IAAI,qBAAqB,CAAC,YAAY,GAAC,IAAI,CAAC,GAAG,GAAC,aAAa,CAAC,CAAA;AAAC,SAAA;KAC7I;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;QACpB,IAAG,IAAI,CAAC,OAAO;AAAE,YAAA,KAAI,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE;gBAC3C,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,EAACC,QAAW,CAAC,SAAS,CAAC,CAAA;gBACxD,IAAI,CAAC,WAAW,EAAE,CAAA;AACrB,aAAA;KACJ;AACJ;;MCPY,aAAa,CAAA;IAEtB,OAAO,OAAO,CAAC,KAAS,EAAA;AACpB,QAAA,IAAI,YAAY,GAAW,MAAM,CAAC,cAAc,CAAC,KAAK,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACxE,QAAA,IAAI,SAAS,CAAE;AACf,QAAA,QAAO,KAAK,CAAC,YAAY,CAAC;AACtB,YAAA,KAAK,UAAU,CAAC,QAAS,EAAE;AACvB,gBAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAE;gBAAC,MAAK;AACzC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,KAAM,EAAE;AACpB,gBAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAE;gBAAC,MAAK;AACtC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,MAAO,EAAE;AACrB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACvC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,KAAM,EAAE;AACpB,gBAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAE;gBAAC,MAAK;AACtC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,SAAU,EAAE;AACxB,gBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAE;gBAAC,MAAK;AAC1C,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,UAAW,EAAE;AACzB,gBAAA,SAAS,GAAG,SAAS,CAAC,SAAS,CAAE;gBAAC,MAAK;AAC1C,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,SAAU,EAAE;AACxB,gBAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAE;gBAAC,MAAK;AACzC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,IAAK,EAAE;AACnB,gBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,YAAa,EAAE;AAC3B,gBAAA,SAAS,GAAG,WAAW,CAAC,SAAS,CAAE;gBAAC,MAAK;AAC5C,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,MAAO,EAAE;AACrB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACvC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,MAAO,EAAE;AACrB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACvC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,KAAM,EAAE;AACpB,gBAAA,SAAS,GAAG,KAAK,CAAC,SAAS,CAAE;gBAAC,MAAK;AACtC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,IAAK,EAAE;AACnB,gBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,UAAU,CAAC,MAAO,EAAE;AACrB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACvC,aAAA;AACD,YAAA,SAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAE;AAAE,aAAA;AAC3D,SAAA;QACD,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC9D,YAAY,CAAC,WAAW,EAAE,CAAC;AAC3B,QAAA,OAAO,YAAY,CAAE;KACxB;AACJ;;ACvEK,MAAO,IAAK,SAAQ,IAAI,CAAA;AAI1B,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AAJhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,IAAI,CAAE;KAK3B;AACJ;;ACLK,MAAO,MAAO,SAAQ,IAAI,CAAA;AAO5B,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AAPhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAE;AAQ1B,QAAA,IAAI,CAAC,MAAM,GAAG,EAAC,OAAO,EAAG,CAAC,EAAE,SAAS,EAAG,CAAC,EAAC,CAAE;AAC5C,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAC,gBAAgB,EAAG,CAAC,GAAG,CAAC,EAAE,cAAc,EAAE,CAAC,GAAG,CAAC,EAAC,CAAA;KACrE;;AAGD,IAAA,UAAU,CAAC,MAA+C,EAAA;AACtD,QAAA,IAAI,CAAC,MAAM,GAAE,MAAM,CAAC;QACpB,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,QAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,EAAC;YACnC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AACpC,YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AAC5B,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,GAAG,CAAC,KAAK,EAAE,CAAE;QAAC,GAAG,GAAG,EAAE,CAAE;AAC1D,QAAA,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAC;YACjC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAE,CAAC;AACtC,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,EAAE,CAAE;KAChD;AAED,IAAA,QAAQ,CAAC,UAAiB,EAAE,YAAmB,EAAE,MAAgB,EAAA;QAC7D,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC;KAClD;AAED,IAAA,aAAa,CAAC,SAAqE,EAAA;QAC/E,IAAG,SAAS,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC,gBAAgB,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAC;YACpH,IAAI,IAAI,GAAG,CAAC,CAAE;YAAC,IAAI,IAAI,GAAG,CAAC,CAAC;AAC5B,YAAA,KAAI,IAAI,CAAC,IAAI,SAAS,CAAC,cAAc,EAAC;gBAClC,IAAI,IAAE,CAAC,CAAA;AACV,aAAA;AACD,YAAA,KAAI,IAAI,CAAC,IAAI,SAAS,CAAC,gBAAgB,EAAC;gBACpC,IAAI,IAAI,CAAC,CAAA;AACZ,aAAA;AACD,YAAA,IAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAE,GAAG,EAAC;AAC9F,gBAAA,IAAI,CAAC,SAAS,GAAE,SAAS,CAAE;AAC9B,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAA;AAC7F,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAA;AAChG,SAAA;KACJ;IAEQ,WAAW,GAAA;QAChB,KAAK,CAAC,WAAW,EAAE,CAAC;AACpB,QAAA,KAAI,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,EAAC;AACrB,YAAA,KAAI,IAAI,CAAC,IAAI,CAAC,EAAC;AACX,gBAAA,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClC,aAAA;AACJ,SAAA;KACJ;AACJ;;ACnEK,MAAO,GAAI,SAAQ,IAAI,CAAA;AAMzB,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AANhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,GAAG,CAAE;AAOvB,QAAA,IAAI,CAAC,IAAI,GAAE,GAAG,CAAA;KACjB;AACJ;;ACXK,MAAO,GAAI,SAAQ,IAAI,CAAA;;IAOzB,WAAY,CAAA,GAAY,EAAE,OAAgB,EAAA;QAEtC,KAAK,CAAC,GAAG,CAAC,CAAE;AAPhB,QAAA,IAAA,CAAA,SAAS,GAAG,SAAS,CAAC,GAAG,CAAE;AAQvB,QAAA,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAE;KAC3B;AACJ;;ACbK,MAAO,KAAM,SAAQ,aAAa,CAAA;AAIpC,IAAA,WAAA,CAAY,GAAY,EAAA;QAEpB,KAAK,CAAC,GAAG,CAAC,CAAE;AAJhB,QAAA,IAAA,CAAA,aAAa,GAAG,aAAa,CAAC,KAAK,CAAE;KAKpC;AACJ;;MCLY,qBAAqB,CAAA;IAE9B,OAAO,eAAe,CAAC,IAAQ,EAAA;AAC3B,QAAA,QAAO,IAAI,CAAC,eAAe,CAAC;AACxB,YAAA,KAAK,aAAa,CAAC,KAAM,EAAE;AACvB,gBAAA,IAAI,KAAK,GAAI,MAAM,CAAC,cAAc,CAAC,IAAI,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzD,KAAK,CAAC,uBAAuB,EAAE,CAAC;gBAChC,OAAO,KAAK,CAAA;AACf,aAAA;AACD,YAAA,KAAK,aAAa,CAAC,KAAM,EAAE;AACvB,gBAAA,OAAO,MAAM,CAAC,cAAc,CAAC,IAAI,EAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACtD,aAAA;AACD,YAAA,SAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAE;AAAE,aAAA;AAC/D,SAAA;KACJ;AACJ;;MCXY,YAAY,CAAA;IAErB,OAAO,OAAO,CAAC,IAAQ,EAAA;AACnB,QAAA,IAAI,WAAW,GAAU,MAAM,CAAC,cAAc,CAAC,IAAI,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpE,QAAA,IAAI,SAAS,CAAA;AACb,QAAA,QAAO,IAAI,CAAC,WAAW,CAAC;AACpB,YAAA,KAAK,SAAS,CAAC,IAAK,EAAE;AACjB,gBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAE;gBAAC,MAAK;AACtC,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,MAAO,EAAE;AACnB,gBAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACxC,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,QAAS,EAAE;gBACtB,OAAO,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtD,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,GAAI,EAAE;AAChB,gBAAA,SAAS,GAAG,GAAG,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,GAAI,EAAE;AAChB,gBAAA,SAAS,GAAG,GAAG,CAAC,SAAS,CAAE;gBAAC,MAAK;AACrC,aAAA;AACD,YAAA,KAAK,SAAS,CAAC,MAAO,EAAE;AACpB,gBAAA,SAAS,GAAGvC,QAAM,CAAC,SAAS,CAAE;gBAAC,MAAK;AACxC,aAAA;AACA,YAAA,SAAU;AAAE,gBAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAE;AAAE,aAAA;AAC3D,SAAA;QACD,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC5D,WAAW,CAAC,WAAW,EAAE,CAAC;AAC1B,QAAA,OAAO,WAAW,CAAE;KACvB;AACJ;;MC5BY,iBAAiB,CAAA;;;IAI1B,OAAO,aAAa,CAAC,IAAa,EAAA;;;AAI9B,QAAA,IAAI,UAAU,GAAgB,MAAM,CAAC,cAAc,CAC/C,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAChB,UAAU,CAAC,SAAS,CACvB,CAAC;;;;QAKF,IAAI,SAAS,GAAY,EAAE,CAAE;AAC7B,QAAA,KAAI,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE;YAC3B,SAAS,CAAC,IAAI,CAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,SAAA;;AAED,QAAA,UAAU,CAAC,KAAK,GAAE,SAAS,CAAC;;;QAI5B,IAAI,UAAU,GAAa,EAAE,CAAE;AAC/B,QAAA,KAAI,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE;YAC5B,UAAU,CAAC,IAAI,CAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,SAAA;;AAED,QAAA,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC;;;QAI/B,IAAI,iBAAiB,GAAmB,EAAE,CAAE;AAC5C,QAAA,KAAI,IAAI,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE;AAC/B,YAAA,iBAAiB,CAAC,IAAI,CAAE,MAAM,CAAC,cAAc,CAAC,CAAC,EAAC,WAAW,CAAC,SAAS,CAAC,CAAE,CAAC;AAC5E,SAAA;;AAED,QAAA,UAAU,CAAC,SAAS,GAAE,iBAAiB,CAAC;;QAGxC,IAAG,UAAU,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,EAAC,SAAS,CAAC,SAAS,CAAC,CAAE;QACjH,IAAG,UAAU,CAAC,SAAS;AAAE,YAAA,UAAU,CAAC,SAAS,CAAC,WAAW,EAAE,CAAE;;AAI7D,QAAA,OAAO,UAAU,CAAE;KACtB;AACJ;;AC5DD;;AAEG;;ACHH;;AAEG;;;;"}