{"version":3,"file":"main.js","mappings":"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AE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC;IACvB,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC;IACvB,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC;IACvB,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAC;IACvB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;IACxB,EAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAC;CAC3B,CAAC;;;;;;;;;;;;;;;;;;;;;;AC3tCK,MAAM,SAAS;IAEpB,YAAoB,MAAc,EAAU,OAAuB;QAA/C,WAAM,GAAN,MAAM,CAAQ;QAAU,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAEvE,WAAW,CAAC,KAA6B,EAAE,KAA0B;QACnE,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE;YAC7B,OAAO,IAAI,CAAC;SACb;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE;gBACvC,WAAW,EAAE;oBACX,MAAM,EAAE,KAAK,CAAC,GAAG;iBAClB;aACF,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SACd;IACH,CAAC;;kEAfU,SAAS;0GAAT,SAAS,WAAT,SAAS;;;;;;;;;;;;;;;;;;;;;;ACFf,MAAM,kBAAkB;IAC3B,YAAoB,MAAc,EAAU,YAA0B;QAAlD,WAAM,GAAN,MAAM,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAc;IACtE,CAAC;IAED,gBAAgB,CACZ,KAA6B,EAC7B,KAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,IAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,KAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE;YACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YACjE,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;;oFAbQ,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB,mBAFf,MAAM;;;;;;;;;;;;;;;;ACNf,SAAS,aAAa,CAAC,IAAI;IAChC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,WAAW,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,GAAG;QACpC,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC;;;;;;;;;;;;;;;;;;;;ACEM,MAAM,gBAAgB;IAC3B,YAAoB,OAAuB;QAAvB,YAAO,GAAP,OAAO,CAAgB;IAAG,CAAC;IAE/C,SAAS,CACP,GAAqB,EACrB,IAAiB;QAEjB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,kBAAkB,CAAC;QACvB,IAAI,KAAK,EAAE;YACT,kBAAkB,GAAG,GAAG,CAAC,KAAK,CAAC;gBAC7B,UAAU,EAAE;oBACV,aAAa,EAAE,UAAU,KAAK,EAAE;iBACjC;aACF,CAAC,CAAC;SACJ;aAAM;YACL,kBAAkB,GAAG,GAAG,CAAC;SAC1B;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IACzC,CAAC;;gFAnBU,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB;;;;;;;;;;;;;;;;;;;;ACCiB;;;;;AAC9C,IAAK,cAKJ;AALD,WAAK,cAAc;IACjB,mCAAiB;IACjB,2BAAS;IACT,6BAAW;IACX,6BAAW;AACb,CAAC,EALI,cAAc,KAAd,cAAc,QAKlB;AAOM,MAAM,oBAAoB;IAU/B,YAAoB,MAAiB,EAC3B,EAAc,EAAU,QAAyB,EACvC,SAAoB,EACpB,WAAwB;QAHxB,WAAM,GAAN,MAAM,CAAW;QAC3B,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAiB;QACvC,cAAS,GAAT,SAAS,CAAW;QACpB,gBAAW,GAAX,WAAW,CAAa;QARpC,yBAAoB,GAAG,KAAK,CAAC;QAC7B,kBAAa,GAAG,GAAG,CAAC;QACpB,sBAAiB,GAAG,GAAG,CAAC;IAMe,CAAC;IAEhD,QAAQ;QACN,uDAAuD;QACvD,MAAM,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1I,CAAC;IAGO,OAAO;QACb,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAE0C,OAAO,CAAC,KAAY;QAC7D,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,+CAA+C,EAAE,EAAE,CAAC,CAAC;IACzG,CAAC;IAGO,MAAM;QACZ,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAChB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACxE,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAChE,IAAI,CAAC,OAAO,EAAE,CACf,CAAC;IACJ,CAAC;IAEO,6BAA6B;QACnC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IAEO,eAAe,CAAC,GAAW;QACjC,OAAO,GAAG;aACP,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC;aAClC,MAAM,CAAC,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE;YACjC,MAAM,eAAe,GACnB,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ;gBACpC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa;gBAC1B,CAAC,CAAC,qCAAqC;oBACtC,IAAI,CAAC,aAAwB,CAAC,QAAQ,CACrC,CAA8C,CAC/C,CAAC;YACN,OAAO,CACL,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACjB,CAAC,KAAK,IAAI,CAAC,iBAAiB;gBAC5B,eAAe;gBACf,CAAC,CAAC,KAAK,cAAc,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,CACvE,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,EAAE;YACtB,OAAO;SACR;QACD,IAAI,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;QACpD,uEAAuE;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EACnC,KAAK,GAAG,OAAO,CAAC,cAAc,EAC9B,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;QAE7B,0CAA0C;QAC1C,6EAA6E;QAC7E,+DAA+D;QAC/D,wDAAwD;QACxD,IAAI;QAEJ,oEAAoE;QACpE,wIAAwI;QACxI,+EAA+E;QAC/E,6DAA6D;QAC7D,wDAAwD;QACxD,IAAI;QAEJ,6DAA6D;QAC7D,6GAA6G;QAC7G,6DAA6D;QAC7D,8EAA8E;QAC9E,YAAY;QACZ,IAAI;QAGJ,yCAAyC;QACzC,6GAA6G;QAC7G,6DAA6D;QAC7D,8EAA8E;QAC9E,YAAY;QACZ,IAAI;QAGJ,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;QAChE,OAAO,CAAC,KAAK;YACX,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;QAE1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,WAAW;QACjB,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EACjC,KAAK,GAAG,OAAO,CAAC,cAAc,EAC9B,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;QAE7B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO;SACR;QAED,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,KAAK,EAAE,CAAC;SACT;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACtC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAC3E,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE;YAClD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SACrE;QACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAEO,OAAO;IAEf,CAAC;;wFAnKU,oBAAoB;kHAApB,oBAAoB;4IAApB,aAAS,sFAAT,mBAAe,8EAAf,YAAQ;gHAHR,CAAC,wDAAW,CAAC;;;;;;;;;;;;;;;;;;;;ACfnB,MAAM,eAAe;IAO1B,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAI,CAAC;IAElD,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,wCAAwC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAKD,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;;8EAzBU,eAAe;6GAAf,eAAe;uIAAf,aAAS;;;;;;;;;;;;;;;;;;;;;;;ACDf,MAAM,oBAAoB;IAU/B,YAAoB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;QAJpC,eAAU,GAAY,KAAK,CAAC;IAIY,CAAC;IAElD,QAAQ;QACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAExF,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YACvC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;YACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACrC;aAAM;YACL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACnD;QAED,sBAAsB;QACtB,4BAA4B;QAC5B,2CAA2C;QAC3C,aAAa;QACb,yDAAyD;QACzD,MAAM;QACN,WAAW;QACX,2BAA2B;QAC3B,2CAA2C;QAC3C,aAAa;QACb,2CAA2C;QAC3C,MAAM;QACN,IAAI;IACN,CAAC;IAGD,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtG,CAAC;;wFAxDU,oBAAoB;kHAApB,oBAAoB;4IAApB,aAAS;;;;;;;;;;;;;;;;;;;;;ACLuB;;AAKtC,MAAM,eAAe;IAY1B;QAXQ,WAAM,GAAY,KAAK,CAAC;QAExB,SAAI,GAAY,KAAK,CAAC;QAU5B,IAAI,CAAC,kBAAkB,GAAG,IAAI,yCAAO,EAAW,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAO,EAAW,CAAC;QAC5C,IAAI,CAAC,WAAW,GAAG,IAAI,yCAAO,EAAW,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,IAAI,yCAAO,EAAU,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,IAAI,yCAAO,EAAQ,CAAC;QAC7C,IAAI,CAAC,aAAa,GAAG,IAAI,yCAAO,EAAQ,CAAC;IAC3C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,IAAI,GAAG,CAAC,KAAc;QACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,qBAAqB,CAAC,IAAa;QACjC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,GAAU;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,oBAAoB;QAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,GAAiB;QAClC,IAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAC;YACpB,GAAG,CAAC,WAAW,EAAE,CAAC;SACnB;IACH,CAAC;;8EAjFU,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;ACMb,MAAM,iBAAiB;IAY5B,YAAoB,EAAc,EAAU,QAAyB;QAAjD,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAiB;QAT5D,gBAAW,GAAS;YAC3B,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;SACZ,CAAC;QAEF,oBAAe,GAAY,IAAI,CAAC;QAChC,qBAAgB,GAAY,KAAK,CAAC;QAClC,eAAU,GAAY,KAAK,CAAC;IAG5B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3E,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,eAAe,KAAI,CAAC;IAEpB,WAAW;QACT,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7C,CAAC;IAGD,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,IAAI,CAAC,QAAQ,CAAC,oBAAoB,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;IACnC,CAAC;IAED,WAAW;QACV,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAC/C,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;IAC9C,CAAC;IAGD,YAAY,CAAC,KAAiB;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;;kFArDU,iBAAiB;+GAAjB,iBAAiB;uJAAjB,wBAAoB,mFAApB,wBAAoB;;;;QCVjC,yEAAmC;QACjC,yEAAmB;QACjB,sEAAiD;QAC/C,uEAAmH;QACnH,uEAAmH;QACnH,uEAAmH;QACnH,uEAAmH;QACnH,uEAAmH;QACnH,uEAAmH;QACnH,uEAAmH;QACnH,wEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACrH,4DAAM;QAEN,uEAAiD;QAC/C,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACrH,4DAAM;QAEN,uEAAmD;QAEjD,yEAA2D;QAC3D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC5D,4DAAM;QAGN,uEAAmD;QACjD,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC1D,yEAA0D;QAC5D,4DAAM;QAEN,uEAAK;QACH,8EACS;QADkC,8KAAkC;QACpE,wDAA8B;QAAA,4DAAS;QAEpD,wEAAkD;QAChD,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACnH,yEAAmH;QACrH,4DAAO;QAEL,wEAAoD;QACjD,yEAA6D;QAC9D,yEAA6D;QAC5D,yEAAgE;QACjE,yEAA8D;QAC9D,yEAA+D;QAC/D,yEAA+D;QAC/D,yEAA0D;QAC1D,yEAA0D;QAC5D,4DAAO;QAEL,8EAAoD;QAAxB,0IAAS,iBAAa,IAAC;QAAC,kEAAC;QAAA,4DAAS;QAChE,4DAAM;QACN,uEAAK;QACH,8EAAmE;QAAxB,0IAAS,iBAAa,IAAC;QAAC,wDAAqC;QAAA,4DAAS;QACjH,yEAAwE;QACxE,8EAAkE;QAAnC,8KAAkC;QAAC,iEAAK;QAAA,4DAAS;QAClF,4DAAM;QACR,4DAAM;QACN,uEAAK;QACH,uEAAK;QACH,2EAA4B;QAC1B,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACxE,4DAAM;QACN,2EAA4B;QAC1B,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACxE,4DAAM;QACN,2EAA4B;QAC1B,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACxE,4DAAM;QACN,2EAA4B;QAC1B,yEAAsE;QACtE,yEAAsE;QACtE,yEAAsE;QACtE,8EAAmE;QAAzB,0IAAS,iBAAa,IAAC;QAC/D,gFAAoC;QAAA,8EAAkB;QAAA,4DAAW;QACnE,4DAAS;QACX,4DAAM;QACR,4DAAM;QACR,4DAAM;QAER,4DAAM;;QAxHG,0DAA2C;QAA3C,mGAA2C;QACU,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QAGpD,0DAA2C;QAA3C,mGAA2C;QACU,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QAGpD,0DAA6C;QAA7C,qGAA6C;QAgB7C,2DAA6C;QAA7C,qGAA6C;QAgBvC,2DAA8B;QAA9B,wGAA8B;QAErC,0DAA2C;QAA3C,mGAA2C;QACS,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QACC,0DAA8B;QAA9B,sFAA8B;QAAxD,sFAAyB;QAGjD,0DAA6C;QAA7C,qGAA6C;QAckB,2DAAqC;QAArC,qGAAqC;;;;;;;;;;;;;;;;;;;;;;ACtFkC;;;;;;;;IAS/I,yEAAqE;IAChE,yEAA2E;IACzE,4EAAyE;IAAlD,iSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAoB,4DAAC;IAAA,4DAAS;IACnF,4EAA0E;IAAnD,iSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAqB,4DAAC;IAAA,4DAAS;IACpF,4EAA0E;IAAnD,iSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAqB,4DAAC;IAAA,4DAAS;IACtF,4DAAM;IACN,yEAA4E;IAC1E,4EAA0E;IAAnD,iSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAqB,6DAAC;IAAA,4DAAS;IACpF,6EAA0E;IAAnD,kSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAqB,6DAAC;IAAA,4DAAS;IACpF,6EAA0E;IAAnD,kSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAqB,6DAAC;IAAA,4DAAS;IACtF,4DAAM;IACN,0EAA4E;IAC1E,6EAA6F;IAAtE,kSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAwC,6DAAC;IAAA,4DAAS;IACvG,6EAA6F;IAAtE,kSAAS,yBAAkB,CAAC,CAAC,IAAC;IAAwC,6DAAC;IAAA,4DAAS;IACvG,6EAA6F;IAAtE,mSAAS,0BAAkB,CAAC,CAAC,IAAC;IAAwC,6DAAC;IAAA,4DAAS;IACzG,4DAAM;IACN,0EAA4E;IAC1E,6EAA0E;IAAnD,mSAAS,0BAAkB,CAAC,CAAC,IAAC;IAAqB,6DAAC;IAAA,4DAAS;IACpF,6EAA0E;IAAnD,mSAAS,iBAAS,IAAC;IAAgC,6DAAC;IAAA,4DAAS;IACpF,6EAA8E;IAAvD,mSAAS,qBAAa,IAAC;IAC5C,+EAAwC;IAAA,8EAAkB;IAAA,4DAAW;IACvE,4DAAS;IACX,4DAAM;IACR,4DAAM;;AAIH,MAAM,mBAAmB;IAa9B,YAAoB,EAAc,EAAU,QAAyB;QAAjD,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAiB;QAV3D,iBAAY,GAAG,IAAI,uDAAY,EAAE,CAAC;QAClC,qBAAgB,GAAG,IAAI,uDAAY,EAAE,CAAC;QACtC,cAAS,GAAG,IAAI,uDAAY,EAAE,CAAC;QAChC,iBAAY,GAAG,KAAK,CAAC;QACrB,gBAAW,GAAS;YAC3B,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;SACZ,CAAC;IAIF,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAC3E,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,KAAY;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,eAAe;IAEf,CAAC;IAED,WAAW;QACT,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO;QACL,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED,WAAW;QACT,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAID,YAAY,CAAC,KAAiB;QAC5B,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC;;sFAtDU,mBAAmB;iHAAnB,mBAAmB;yJAAnB,wBAAoB,qFAApB,wBAAoB;;;;QA3BhC,gHAuBS;;QAvBH,6FAA6B;;;;;;;;;;;;;;;;;;;;;;;ACK7B,MAAM,iBAAiB;IAM5B,YAAoB,MAAiB,EAC3B,EAAc,EAAU,QAAyB,EAAU,OAAkB;QADnE,WAAM,GAAN,MAAM,CAAW;QAC3B,OAAE,GAAF,EAAE,CAAY;QAAU,aAAQ,GAAR,QAAQ,CAAiB;QAAU,YAAO,GAAP,OAAO,CAAW;IACvF,CAAC;IAED,QAAQ;QACN,IAAI,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAGO,OAAO;QACb,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACnC,CAAC;IAGO,MAAM;QACZ,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,6BAA6B,EAAE,CAAC;IACvC,CAAC;IAEO,yBAAyB;QAC/B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAC9D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAChB,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CACxE,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;IAEJ,CAAC;IAEO,6BAA6B;QACnC,sCAAsC;QACvC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxD,6CAA6C;QAC3C,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC/D,0CAA0C;QACxC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,GAAW;QACvB,uEAAuE;QACvE,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EACjC,KAAK,GAAG,OAAO,CAAC,cAAc,EAC9B,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;QAE7B,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;QAChE,OAAO,CAAC,KAAK;YACX,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEnE,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,KAAK,GAAG,CAAC,CAAC;QAE1D,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,WAAW;QACjB,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,EACjC,KAAK,GAAG,OAAO,CAAC,cAAc,EAC9B,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC;QAE7B,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO;SACR;QAED,IAAI,KAAK,KAAK,GAAG,EAAE;YACjB,KAAK,EAAE,CAAC;SACT;QACD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3E,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;QACtD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAEO,oBAAoB;QAC1B,IAAI,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;QACpC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,CAAC,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,SAAiB;QACjC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;YACxC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1C;IACH,CAAC;IAGD,WAAW;QACV,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;;kFAvGU,iBAAiB;+GAAjB,iBAAiB;yIAAjB,aAAS,2EAAT,YAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACb2C;AACN;AACc;AACN;AACb;AACN;AACG;AACK;AACS;AACO;AACK;AACiB;AACrC;;AACxD,MAAM,WAAW,GAAG,CAAC,yEAAoB;IACvC,mEAAiB,EAAE,qFAAoB;IACvC,iFAAwB,EAAE,2EAAiB,EAAE,kGAAiB;IAC9D,yEAAe,EAAE,gFAAmB,CAAC,CAAC;AAK9B,MAAM,aAAa;;0EAAb,aAAa;0GAAb,aAAa;8GAHlB,CAAC,+DAAmB,EAAE,0DAAY,EAAE,6DAAU,EAAE,kEAAa,EAAE,mEAAc,CAAC;mIAGzE,aAAa,mBARR,yEAAoB;QACvC,mEAAiB,EAAE,qFAAoB;QACvC,iFAAwB,EAAE,2EAAiB,EAAE,kGAAiB;QAC9D,yEAAe,EAAE,gFAAmB,aAE1B,+DAAmB,EAAE,0DAAY,EAAE,6DAAU,EAAE,kEAAa,EAAE,mEAAc,aALnE,yEAAoB;QACvC,mEAAiB,EAAE,qFAAoB;QACvC,iFAAwB,EAAE,2EAAiB,EAAE,kGAAiB;QAC9D,yEAAe,EAAE,gFAAmB;;;;;;;;;;;;;;;;;;;;ACX/B,MAAM,wBAAwB;IAGnC,YAAoB,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QAF/B,uBAAkB,GAAa,EAAE,CAAC;IAEA,CAAC;IAEF,OAAO,CAAC,MAAmB;QACnE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,GAAG;YAAE,OAAO;QAE5C,IAAI,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACtD,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5D;aAAM,IAAI,GAAG,KAAK,OAAO,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;SACrD;IACH,CAAC;;gGAjBU,wBAAwB;sHAAxB,wBAAwB;sJAAxB,0BAAsB;;;;;;;;;;;;;;;;;;;ACNnC,IAAY,MAGX;AAHD,WAAY,MAAM;IACd,mDAAgB;IAChB,iDAAe;AACnB,CAAC,EAHW,MAAM,KAAN,MAAM,QAGjB;AAED,IAAY,KAIX;AAJD,WAAY,KAAK;IACb,qBAAY;IACZ,uBAAc;IACd,wBAAe;AACnB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;AAED,IAAY,GAIX;AAJD,WAAY,GAAG;IACX,2BAAO;IACP,qCAAY;IACZ,2CAAe;AACnB,CAAC,EAJW,GAAG,KAAH,GAAG,QAId;;;;;;;;;;;;;;;;ACbM,MAAM,aAAa;IACtB,YACW,eAAwB,EACxB,SAAkB,EAClB,SAAkB,EAClB,aAAwB,EACxB,SAAkB,EAClB,QAAmB,EACnB,SAAoB,EACpB,QAAoB,EACpB,cAAuB,EACvB,cAAuB,EACvB,cAAuB,EACvB,cAAuB,EACvB,UAAmB,EACnB,OAAgB,EAChB,MAAkB,EAClB,SAAmB,EACnB,gBAAmC;QAhBnC,oBAAe,GAAf,eAAe,CAAS;QACxB,cAAS,GAAT,SAAS,CAAS;QAClB,cAAS,GAAT,SAAS,CAAS;QAClB,kBAAa,GAAb,aAAa,CAAW;QACxB,cAAS,GAAT,SAAS,CAAS;QAClB,aAAQ,GAAR,QAAQ,CAAW;QACnB,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAY;QACpB,mBAAc,GAAd,cAAc,CAAS;QACvB,mBAAc,GAAd,cAAc,CAAS;QACvB,mBAAc,GAAd,cAAc,CAAS;QACvB,mBAAc,GAAd,cAAc,CAAS;QACvB,eAAU,GAAV,UAAU,CAAS;QACnB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAY;QAClB,cAAS,GAAT,SAAS,CAAU;QACnB,qBAAgB,GAAhB,gBAAgB,CAAmB;IAE9C,CAAC;CACJ;;;;;;;;;;;;;;;;ACtBM,MAAM,UAAU;IAEnB;QAEA,QAAG,GAAG,iDAAiD;YACnD,wDAAwD;YACxD,sDAAsD;YACtD,uDAAuD;YACvD,wDAAwD;YACxD,kEAAkE;YAClE,uEAAuE;YACvE,mEAAmE;YACnE,uDAAuD;YACvD,uDAAuD;YACvD,uEAAuE;YACvE,yDAAyD;YACzD,wEAAwE;YACxE,oDAAoD;YACpD,6DAA6D;YAC7D,2DAA2D;YAC3D,wDAAwD;YACxD,+EAA+E;YAC/E,kEAAkE;YAClE,kEAAkE;YAClE,qEAAqE;YACrE,uDAAuD;YACvD,0DAA0D;YAC1D,mDAAmD;YACnD,0DAA0D;YAC1D,qDAAqD;YACrD,sDAAsD;YACtD,oDAAoD;YACpD,mEAAmE;YACnE,oDAAoD;YACpD,qDAAqD;YACrD,uDAAuD;YACvD,kDAAkD;YAClD,qDAAqD;YACrD,0DAA0D;YAC1D,2DAA2D;YAC3D,mDAAmD;YACnD,kDAAkD;YAClD,kDAAkD;YAClD,uDAAuD;YACvD,oDAAoD;YACpD,0DAA0D;YAC1D,mDAAmD;YACnD,qDAAqD;YACrD,kDAAkD;YAClD,sEAAsE;YACtE,uDAAuD;YACvD,wDAAwD;YACxD,kEAAkE;YAClE,8DAA8D;YAC9D,mDAAmD;YACnD,mDAAmD;YACnD,yFAAyF;YACzF,mDAAmD;YACnD,0DAA0D;YAC1D,2EAA2E;YAC3E,uDAAuD;YACvD,mDAAmD;YACnD,oDAAoD;YACpD,sDAAsD;YACtD,sDAAsD;YACtD,qDAAqD;YACrD,kDAAkD;YAClD,oFAAoF;YACpF,mDAAmD;YACnD,qDAAqD;YACrD,wDAAwD;YACxD,qDAAqD;YACrD,wDAAwD;YACxD,yEAAyE;YACzE,oDAAoD;YACpD,qDAAqD;YACrD,sDAAsD;YACtD,qDAAqD;YACrD,oDAAoD;YACpD,oDAAoD;YACpD,sDAAsD;YACtD,uDAAuD;YACvD,qDAAqD;YACrD,0DAA0D;YAC1D,0FAA0F;YAC1F,qDAAqD;YACrD,oDAAoD;YACpD,4DAA4D;YAC5D,uDAAuD;YACvD,mDAAmD;YACnD,wDAAwD;YACxD,oDAAoD;YACpD,mDAAmD;YACnD,kDAAkD;YAClD,4DAA4D;YAC5D,uDAAuD;YACvD,sDAAsD;YACtD,wDAAwD;YACxD,qDAAqD;YACrD,qDAAqD;YACrD,qDAAqD;YACrD,mDAAmD;YACnD,oDAAoD;YACpD,2DAA2D;YAC3D,qDAAqD;YACrD,sDAAsD;YACtD,oDAAoD;YACpD,wDAAwD;YACxD,oDAAoD;YACpD,qDAAqD;YACrD,qDAAqD;YACrD,qDAAqD;YACrD,qDAAqD;YACrD,qDAAqD;YACrD,qDAAqD;YACrD,wDAAwD;YACxD,2EAA2E;YAC3E,qDAAqD;YACrD,qDAAqD;YACrD,wDAAwD;YACxD,oDAAoD;YACpD,qDAAqD;YACrD,qDAAqD;YACrD,oEAAoE;YACpE,6DAA6D;YAC7D,kDAAkD;YAClD,oDAAoD;YACpD,uDAAuD;YACvD,4DAA4D;YAC5D,sDAAsD;YACtD,0DAA0D;YAC1D,oDAAoD;YACpD,qDAAqD;YACrD,yDAAyD;YACzD,oDAAoD;YACpD,4DAA4D;YAC5D,qDAAqD;YACrD,mDAAmD;YACnD,2DAA2D;YAC3D,mDAAmD;YACnD,mEAAmE;YACnE,mDAAmD;YACnD,oDAAoD;YACpD,yEAAyE;YACzE,0FAA0F;YAC1F,mDAAmD;YACnD,uDAAuD;YACvD,0DAA0D;YAC1D,sDAAsD;YACtD,sDAAsD;YACtD,yDAAyD;YACzD,oDAAoD;YACpD,uEAAuE;YACvE,kDAAkD;YAClD,gDAAgD;YAChD,mDAAmD;YACnD,iDAAiD;YACjD,sDAAsD;YACtD,mDAAmD;YACnD,kDAAkD;YAClD,qDAAqD;YACrD,wFAAwF;YACxF,wDAAwD;YACxD,+DAA+D;YAC/D,2DAA2D;YAC3D,oFAAoF;YACpF,oDAAoD;YACpD,qDAAqD;YACrD,2DAA2D;YAC3D,sDAAsD;YACtD,wDAAwD;YACxD,sDAAsD;YACtD,qDAAqD;YACrD,wEAAwE;YACxE,qDAAqD;YACrD,sDAAsD;YACtD,6DAA6D;YAC7D,oEAAoE;YACpE,uDAAuD;YACvD,yDAAyD;YACzD,wDAAwD;YACxD,qDAAqD;YACrD,sDAAsD;YACtD,qDAAqD;YACrD,yDAAyD;YACzD,uDAAuD;YACvD,+EAA+E;YAC/E,4DAA4D;YAC5D,+DAA+D;YAC/D,kDAAkD;YAClD,+DAA+D;YAC/D,oDAAoD;YACpD,8DAA8D;YAC9D,sDAAsD;YACtD,iDAAiD;YACjD,oDAAoD;YACpD,gEAAgE;YAChE,2DAA2D;YAC3D,mDAAmD;YACnD,oDAAoD;YACpD,uDAAuD;YACvD,4DAA4D;YAC5D,qDAAqD;YACrD,+DAA+D;YAC/D,sDAAsD;YACtD,yFAAyF;YACzF,+DAA+D;YAC/D,uDAAuD;YACvD,mDAAmD;YACnD,iDAAiD;YACjD,2EAA2E;YAC3E,oDAAoD;YACpD,yFAAyF;YACzF,uDAAuD;YACvD,mDAAmD;YACnD,sDAAsD;YACtD,kDAAkD;YAClD,kDAAkD;YAClD,wDAAwD;YACxD,mDAAmD;YACnD,oDAAoD;YACpD,kDAAkD;YAClD,qDAAqD;YACrD,wDAAwD;YACxD,sDAAsD;YACtD,mDAAmD;YACnD,sDAAsD;YACtD,qDAAqD;YACrD,oDAAoD;YACpD,kEAAkE;YAClE,kDAAkD;YAClD,mDAAmD;YACnD,0DAA0D;YAC1D,mDAAmD;YACnD,kDAAkD;YAClD,6EAA6E;YAC7E,kEAAkE;YAClE,oDAAoD;YACpD,qDAAqD;YACrD,mDAAmD;YACnD,oDAAoD;YACpD,sDAAsD;YACtD,mDAAmD;YACnD,mFAAmF;YACnF,wDAAwD;YACxD,2DAA2D;YAC3D,uDAAuD;YACvD,oDAAoD;YACpD,yDAAyD;YACzD,sDAAsD;IAvP1C,CAAC;IAyPV,eAAe;QAOlB,IAAI,GAAG,GAAa,IAAI,CAAC,GAAG;aACvB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;aACzB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;aACrB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,KAAK,CAAC,GAAG,CAAC,CAAC;QAEhB,IAAI,GAAG,GAID,EAAE,CAAC;QAGT,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YACpC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG;gBACd,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACnC,WAAW,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;aAC1B;SACJ;QAED,GAAG,CAAC,IAAI,CAAC,CAAC,QAAiB,EAAE,QAAkB,EAAE,EAAE;YAC/C,OAAO,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC;IAEf,CAAC;CAGJ;;;;;;;;;;;;;;;;;;;ACjSwC;AACb;AAErB,MAAM,gBAAgB;IACzB,MAAM,CAAC,eAAe,CAAC,YAA6B;QAChD,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;YACD,MAAM,SAAS,GAAS,sDAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzH,MAAM,OAAO,GAAS,sDAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjH,IAAI,SAAS,GAAG,OAAO,EAAE;gBACrB,OAAO,EAAC,WAAW,EAAE,IAAI,EAAC,CAAC;aAC9B;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,aAA8B;QACxC,OAAO,CAAC,WAA4B,EAA2B,EAAE;YAC7D,MAAM,WAAW,GAAW,aAAa,CAAC,KAAK,CAAC;YAChD,MAAM,SAAS,GAAW,WAAW,CAAC,KAAK,CAAC;YAC5C,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACf;YAED,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,YAA6B;QAC/C,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;YACD,MAAM,SAAS,GAAS,sDAAe,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzH,MAAM,OAAO,GAAS,sDAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACjH,IAAI,SAAS,GAAG,OAAO,EAAE;gBACrB,OAAO,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC;aAC7B;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,YAA6B,EAAE,UAAmB,KAAK;QACtE,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAClG,OAAO,IAAI,CAAC;aACf;YACD,MAAM,KAAK,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrG,IAAI,GAAG,GAAG,KAAK,EAAE;gBACb,OAAO,EAAC,WAAW,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAC,EAAC,CAAC;aAClD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,YAA6B,EAAE,UAAmB,KAAK;QACrE,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,YAAY,CAAC,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBAClG,OAAO,IAAI,CAAC;aACf;YACD,MAAM,KAAK,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrG,IAAI,KAAK,GAAG,GAAG,EAAE;gBACb,OAAO,EAAC,UAAU,EAAE,EAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAC,EAAC,CAAC;aACjD;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,YAA6B,EAAE,UAAmB,KAAK;QAC3E,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;YACD,MAAM,KAAK,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrG,IAAI,GAAG,IAAI,KAAK,EAAE;gBACd,OAAO,EAAC,gBAAgB,EAAE,EAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAC,EAAC,CAAC;aACjF;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,YAA6B,EAAE,UAAmB,KAAK;QAC1E,OAAO,CAAC,UAA2B,EAA2B,EAAE;YAC5D,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACf;YACD,MAAM,KAAK,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3G,MAAM,GAAG,GAAW,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,+DAAmB,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACrG,IAAI,KAAK,IAAI,GAAG,EAAE;gBACd,OAAO,EAAC,eAAe,EAAE,EAAC,GAAG,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAC,EAAC,CAAC;aAChF;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,QAAQ;QACX,OAAO,CAAC,OAAwB,EAA2B,EAAE;YACzD,MAAM,SAAS,GAAG,OAAoB,CAAC;YACvC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtC,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;aACxB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,aAAa;QAChB,OAAO,CAAC,OAAwB,EAA2B,EAAE;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,MAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,MAAK,CAAC,EAAE;gBAC9C,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;aACxB;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,eAAe;QAClB,OAAO,CAAC,OAAwB,EAA2B,EAAE;YACzD,MAAM,KAAK,GAAG,+DAAmB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;gBAC5B,OAAO,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC;aAClC;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,YAAY;QACf,OAAO,CAAC,OAAwB,EAA2B,EAAE;YACzD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE;gBACR,OAAO,IAAI,CAAC;aACf;YACD,MAAM,KAAK,GAAG,kCAAkC,CAAC;YACjD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,EAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,EAAC,CAAC;QACvE,CAAC,CAAC;IACN,CAAC;CACJ;;;;;;;;;;;;;;;;AC9IM,MAAM,eAAe;IAExB,YACW,UAAmB,EACnB,YAAqB,EACrB,MAAe,EACf,KAAc,EACd,IAAa,EACb,GAAY,EACZ,aAAsB,EACtB,cAAuB,EACvB,OAAkB,EAClB,SAAoB,EACpB,SAAoB,EACpB,UAAqB,EACrB,cAAuB,EACvB,QAAiB,EACjB,SAAkB,EAClB,UAAgB,EAChB,WAAqB;QAhBrB,eAAU,GAAV,UAAU,CAAS;QACnB,iBAAY,GAAZ,YAAY,CAAS;QACrB,WAAM,GAAN,MAAM,CAAS;QACf,UAAK,GAAL,KAAK,CAAS;QACd,SAAI,GAAJ,IAAI,CAAS;QACb,QAAG,GAAH,GAAG,CAAS;QACZ,kBAAa,GAAb,aAAa,CAAS;QACtB,mBAAc,GAAd,cAAc,CAAS;QACvB,YAAO,GAAP,OAAO,CAAW;QAClB,cAAS,GAAT,SAAS,CAAW;QACpB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAW;QACrB,mBAAc,GAAd,cAAc,CAAS;QACvB,aAAQ,GAAR,QAAQ,CAAS;QACjB,cAAS,GAAT,SAAS,CAAS;QAClB,eAAU,GAAV,UAAU,CAAM;QAChB,gBAAW,GAAX,WAAW,CAAU;IAEhC,CAAC;CACJ;;;;;;;;;;;;;;;;AC2BM,SAAS,aAAa,CAAC,CAAM;IAChC,OAAO;QACH,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,UAAU,EAAE,CAAC,CAAC,MAAM;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,cAAc,EAAE,CAAC,CAAC,cAAc;KACnC,CAAC;AACN,CAAC;;;;;;;;;;;;;;;;;;;;;ACzD6F;AAEhB;AACY;AAE7D;AAEtB,MAAM,IAAI;IAAjB;QAEW,kBAAa,GAAG,CAAC,CAAC;IA+9B7B,CAAC;IA79BG,MAAM,CAAC,SAAS,CAAC,MAAwB;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC;QACvC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;QACjD,MAAM,CAAC,cAAc,GAAG,QAAQ,GAAG,MAAM,CAAC;QAC1C,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAa;QAC3B,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9F,cAAc,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;SAC1C;QAED,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,uBAAuB,CAAC,IAAU;QACrC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,OAAO,CAAC;SAClB;QACD,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnB,OAAO,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,UAAkB;QACzC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,UAAwB;QAC3C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE;YAC3C,MAAM,EAAC,IAAI,EAAC,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;gBACf,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;aACrB;YACD,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,OAAO,MAAM,CAAC;QAClB,CAAC,EAAE,EAAkC,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,KAAY;QACpC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;;YACjC,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC;YACrC,IAAI,cAAO,CAAC,WAAW,0CAAE,MAAM,IAAG,CAAC,EAAE;gBACjC,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;aAC7E;YACD,OAAO,UAAU,CAAC;QACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAQ,EAAE,CAAS;QAC7B,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,KAAa,EAAE,OAAe;QAC7C,MAAM,YAAY,GAAG,KAAK,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,MAAc;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,sCAAS,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,qDAAwB,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,SAAc,EAAE,SAAiB,EAAE,SAA8B;QACzF,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE;YAClD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SACrD;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAa;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACnC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,UAAU;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI;QACzB,uDAAuD;QACvD,IAAI,IAAI,KAAK,IAAI,EAAE;YACf,OAAO,IAAI,CAAC;SACf;QAED,gDAAgD;QAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;YACzC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE;YAC3C,OAAO,IAAI,KAAK,IAAI,CAAC;SACxB;QAED,iCAAiC;QACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC5C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE;gBAC7B,OAAO,KAAK,CAAC;aAChB;YACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;oBACrC,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,OAAO,IAAI,CAAC;SACf;QAED,gCAAgC;QAChC,IAAI,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,IAAI,EAAE;YAC9C,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;SAC5C;QAED,8CAA8C;QAC9C,IAAI,IAAI,YAAY,MAAM,IAAI,IAAI,YAAY,MAAM,EAAE;YAClD,OAAO,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC9C;QAED,+BAA+B;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,0DAA0D;QAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC/B,OAAO,KAAK,CAAC;SAChB;QAED,qEAAqE;QACrE,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;gBACjE,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI;QAC7B,8BAA8B;QAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,gDAAgD;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE;YAC/B,OAAO,KAAK,CAAC;SAChB;QAED,oCAAoC;QACpC,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;YACrB,+CAA+C;YAC/C,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE;gBAChB,OAAO,KAAK,CAAC;aAChB;YAED,uCAAuC;YACvC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;gBACzB,OAAO,KAAK,CAAC;aAChB;SACJ;QAED,sCAAsC;QACtC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,GAAQ,EAAE,GAAW;QACjC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,GAAG,CAAC;QAEhB,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE;YACxB,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;SACzC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,oBAAoB,CAAC,IAAS,EAAE,IAAS,EAAE,IAAc;QAC5D,mCAAmC;QACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;YACtD,OAAO,KAAK,CAAC;SAChB;QAED,mBAAmB;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,WAAW;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACnD,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAU;QACxB,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,IAAI,KAAK,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,EAAE,CAAC,EAAE;YACxB,OAAO,EAAE,CAAC;SACb;QACD,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC;QAC/E,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACzE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,CAAQ;QACvB,MAAM,QAAQ,GAAG,CAAC,CAAC,MAA6B,CAAC;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC;QAC7D,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YAChB,QAAQ,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,OAAO;SACV;QAED,IAAI,KAAK,GAAG,CAAC,EAAE;YACX,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SAChD;IACL,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,SAAe,EAAE,OAAa;QAC1C,MAAM,EAAE,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE;YACnD,OAAO,EAAE,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAEjD,IAAI,YAAY,GAAG,EAAE,EAAE;YACnB,OAAO,GAAG,YAAY,WAAW,CAAC;SACrC;aAAM,IAAI,YAAY,GAAG,IAAI,EAAE;YAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAC;YACnD,OAAO,GAAG,YAAY,UAAU,CAAC;SACpC;aAAM,IAAI,YAAY,GAAG,KAAK,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACvD,OAAO,GAAG,KAAK,WAAW,OAAO,UAAU,CAAC;SAC/C;aAAM,IAAI,YAAY,GAAG,OAAO,EAAE;YAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACjE,OAAO,GAAG,IAAI,UAAU,KAAK,WAAW,OAAO,UAAU,CAAC;SAC7D;aAAM,IAAI,YAAY,GAAG,QAAQ,EAAE;YAChC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,CAAC;YAClD,OAAO,GAAG,MAAM,QAAQ,CAAC;SAC5B;aAAM;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC;YAClD,OAAO,GAAG,KAAK,OAAO,CAAC;SAC1B;IACL,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,SAAe,EAAE,OAAa;QAClD,MAAM,EAAE,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,QAAQ,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,SAAe,EAAE,OAAa,EAAE,gBAAwB;QAC9E,MAAM,EAAE,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE,CAAC;QAChC,MAAM,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE;YACnD,OAAO,IAAI,CAAC;SACf;QACD,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,MAAM,8BAA8B,GAAG,gBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;QACpE,OAAO,QAAQ,GAAG,8BAA8B,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,cAAsB;QACvC,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACxB,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACvD;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACxD;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBAC/B,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACvD;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBAChC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aACxD;iBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;gBAClC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;aAC1D;SACJ;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,MAAc;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,EAAE,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,MAAY,EAAE,GAAS;QAClC,IAAI,MAAM,IAAI,GAAG,EAAE;YACf,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;gBACH,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;gBACjE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;aACpE,CAAC;SACL;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAmB;QAC/B,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACpC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3B,IAAI,CAAC,WAAW,EAAE,EAClB,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,OAAO,EAAE,EACd,IAAI,CAAC,QAAQ,EAAE,EACf,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;QAChD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAU,EAAE,MAAc,CAAC;QACtC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,GAAG,0FAAG,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAY;QAC1B,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY,EAAE,KAAa;QAC7C,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAU,EAAE,QAAgB,CAAC;QAC1C,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACd,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;QACnC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,OAAoB,EAAE,IAAY,EAAE,QAAiC;QACzF,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;gBACrD,QAAQ,QAAQ,EAAE;oBACd,KAAK,KAAK;wBACN,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC3F,MAAM;oBACV,KAAK,KAAK;wBACN,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAC3F,MAAM;oBACV,KAAK,YAAY;wBACb,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBAClG,MAAM;oBACV,KAAK,aAAa;wBACd,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBACnG,MAAM;oBACV,KAAK,iBAAiB;wBAClB,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBACvG,MAAM;oBACV,KAAK,kBAAkB;wBACnB,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;wBACxG,MAAM;oBACV;wBACI,YAAY,IAAI,GAAG,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACrD,MAAM;iBACb;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAA2B,EAAE,WAAsC,EAAE,QAAmC;QACzH,IAAI,YAAY,GAAG,EAAE,CAAC;QAEtB,kDAAkD;QAClD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;;YAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEnC,gEAAgE;YAChE,IAAI,OAAO,YAAY,qDAAS,IAAI,OAAO,YAAY,qDAAS,EAAE;gBAC9D,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAE9E,IAAI,kBAAkB,EAAE;oBACpB,YAAY,IAAI,GAAG,iBAAW,CAAC,GAAG,CAAC,mCAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,kBAAkB,IAAI,CAAC;iBAClG;aACJ;YAED,4DAA4D;YAC5D,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,QAAgB,EAAE,EAAE;;oBACrD,QAAQ,QAAQ,EAAE;wBACd,KAAK,KAAK;4BACN,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BACvG,MAAM;wBACV,KAAK,KAAK;4BACN,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BACvG,MAAM;wBACV,KAAK,YAAY;4BACb,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC9G,MAAM;wBACV,KAAK,aAAa;4BACd,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BAC/G,MAAM;wBACV,KAAK,iBAAiB;4BAClB,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BACnH,MAAM;wBACV,KAAK,kBAAkB;4BACnB,YAAY,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpH,MAAM;wBACV,KAAK,WAAW;4BACZ,YAAY,IAAI,GAAG,iBAAW,CAAC,GAAG,CAAC,mCAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,wBAAwB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;4BACvN,MAAM;wBACV,KAAK,WAAW;4BACZ,YAAY,IAAI,GAAG,iBAAW,CAAC,GAAG,CAAC,mCAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,wBAAwB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,6BAA6B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC;4BACvN,MAAM;wBACV,KAAK,SAAS;4BACV,YAAY,IAAI,GAAG,iBAAW,CAAC,GAAG,CAAC,mCAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACpJ,MAAM;wBACV;4BACI,YAAY,IAAI,GAAG,iBAAW,CAAC,GAAG,CAAC,mCAAI,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;4BACjG,MAAM;qBACb;gBACL,CAAC,CAAC,CAAC;aACN;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAe;QAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAEnC,gEAAgE;YAChE,IAAI,OAAO,YAAY,qDAAS,EAAE;gBAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,QAAQ,EAAE;oBACV,OAAO,QAAQ,CAAC;iBACnB;aACJ;YAED,2CAA2C;YAC3C,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC9C,OAAO,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;aAClD;SACJ;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAa,EAAE,IAAY;;QACzC,QAAQ,IAAI,EAAE;YACV,KAAK,2GAAc;gBACf,KAAK,GAAG,kBAAM,CAAC,KAAK,CAAC,0CAAE,WAAW,EAAE,0CAAE,IAAI,EAAE,CAAC;gBAC7C,OAAO,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,KAAK,CAAC;YAC/C,KAAK,2GAAc;gBACf,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACxC;gBACI,OAAO,KAAK,CAAC;SACpB;IACL,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,IAAY;QAC5C,QAAQ,IAAI,EAAE;YACV,KAAK,2GAAc;gBACf,OAAO,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5C,KAAK,2GAAc;gBACf,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C;gBACI,OAAO,KAAK,CAAC;SACpB;IACL,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,IAAI;QAClB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,uBAAuB;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEhC,OAAO,GAAG,GAAG,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAW,EAAE,QAAe,EAAE,GAAW,EAAE,EAAU;QACpE,IAAI,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE;YAC1B,MAAM,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;SACpG;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,KAAY,EAAE,KAAY;QAC1C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,EAAE,CAAC;QAEpB,2BAA2B;QAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;gBACtC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;SACJ;QAED,6BAA6B;QAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE;gBACtC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtB;SACJ;QAED,8BAA8B;QAC9B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACvB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;gBAC1D,QAAQ,CAAC,IAAI,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAC,CAAC,CAAC;aAC3C;SACJ;QAED,OAAO,EAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,WAA4B;;QAC7C,MAAM,IAAI,GAAG,iBAAW,CAAC,MAAM,0CAAE,MAAM,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACrG,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAiB;;QACvD,OAAO,aAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,0CAAE,iBAAiB,IAAG,CAAC;YACpE,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,WAAW,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,MAAiB;;QACvD,OAAO,aAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,0CAAE,iBAAiB,IAAG,CAAC;YACpE,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,WAAW,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,GAAW;QACnC,MAAM,KAAK,GAAG,yBAAyB,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,MAAM,CAAC,yBAAyB,CAAC,OAAc;QAClD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACtC,MAAM,EAAC,UAAU,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;YAElC,sDAAsD;YACtD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;gBAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,UAAU,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE;oBAChE,OAAO,KAAK,CAAC,CAAC,wCAAwC;iBACzD;aACJ;YAED,OAAO,IAAI,CAAC,CAAC,4CAA4C;QAC7D,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,KAAa;QACjC,IAAI,KAAK,EAAE;YACP,MAAM,UAAU,GAAG,KAAK;iBACnB,KAAK,CAAC,GAAG,CAAC;iBACV,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO,cAAc,CAAC;SACzB;QAED,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,OAAY;QACrC,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,CAAC,aAAa,CACrB,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC/D,CAAC;SACL;aAAM;YACH,OAAO,EAAE,CAAC;SACb;IACL,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAAU;QAClC,OAAO,KAAK;YACR,CAAC,CAAC,KAAK;iBACF,KAAK,CAAC,GAAG,CAAC;iBACV,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACtB,CAAC,CAAC,EAAE,CAAC;IACb,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,KAAsB;QAC/C,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACxC;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;YACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CACpC,MAAM,CAAC,KAAK,CAAC;iBACR,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;iBACnB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CACjC,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CACpC,MAAM,CAAC,KAAK,CAAC;iBACR,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;iBACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CACjC,CAAC;SACL;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAa,EAAE,WAAmB,CAAC;QAC5C,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QACtC,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;QACjC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;QAC7C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;QAE1C,IAAI,IAAI,IAAI,GAAG,EAAE;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;SACxE;QAED,OAAO,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtE,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAAC,KAAsB;QACrD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC7B,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,CACpC,MAAM,CAAC,KAAK,CAAC;aACR,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;aACnB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;aACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CACjC,CAAC;IACN,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAuB;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,yCAAyC;YACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,yEAAyE;YACzE,OAAO,CAAC,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,KAAuB;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACtB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;aAClC;YACD,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,OAAO,CAAC,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;IAGM,MAAM,CAAC,uBAAuB,CAAC,KAAU;QAC5C,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SAC1E;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,GAAW,EAAE,GAAW,EAAE,GAAQ;QACpD,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,CAAC;QAC1B,MAAM,IAAI,GACN,GAAG,CAAC,QAAQ,EAAE;YACd,GAAG;YACH,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpE,GAAG;YACH,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,UAAe;QACnC,IAAI,UAAU,EAAE;YACZ,IAAI,UAAU,CAAC,gBAAgB,EAAE;gBAC7B,MAAM,SAAS,GAAG,UAAU,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;gBAC1C,MAAM,IAAI,GACN,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAC7B,GAAG;oBACH,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACpE,GAAG;oBACH,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;wBACpB,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE;wBACrC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBACzC,OAAO,IAAI,CAAC;aACf;iBAAM;gBACH,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;aACjC;SACJ;aAAM;YACH,OAAO;SACV;IACL,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,GAAW,EAAE,GAAW,EAAE,GAAQ;QACvD,OAAO,GAAG,CAAC;IACf,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,QAAmB;QAC1C,OAAO,QAAQ,CAAC,kBAAkB,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC;IACxE,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,IAAY;QACzC,IAAI,IAAI,EAAE;YACN,OAAO,CACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;gBACrB,GAAG;gBACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;gBACpB,GAAG;gBACH,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CACvB,CAAC;SACL;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAEM,MAAM,CAAC,YAAY,CAAC,IAAqB;;QAC5C,IAAI,IAAI,YAAY,uDAAW,EAAE;YAC7B,OAAO,UAAI,CAAC,MAAM,mCAAI,IAAI,CAAC;SAC9B;QACD,IAAI,IAAI,YAAY,qDAAS,EAAE;YAC3B,OAAO,UAAI,CAAC,MAAM,mCAAI,IAAI,CAAC;SAC9B;QACD,IAAI,IAAI,YAAY,qDAAS,EAAE;YAC3B,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,EAAC,WAAW,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACvC,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/C,IAAI,KAAK,KAAK,IAAI,EAAE;oBAChB,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;iBAC3B;YACL,CAAC,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;SACjE;IACL,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,MAAW;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,IAAI,KAAK,EAAE;YACP,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBAC3D,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAClD,IAAI,eAAe,GAAG,EAAE,CAAC;gBACzB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;oBAChC,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;iBACvE;qBAAM;oBACH,eAAe,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;iBACjE;gBACD,OAAO,eAAe,CAAC;aAC1B;iBAAM;gBACH,OAAO,KAAK,GAAG,KAAK,CAAC;aACxB;SACJ;aAAM;YACH,OAAO,MAAM,CAAC;SACjB;IACL,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,KAAU;QACpC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC3D,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACzD,OAAO,UAAU,CAAC,aAAa,CAAC,CAAC;SACpC;aAAM;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,IAAS;QACjC,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YAC5C,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,SAAS;SACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,KAAK;QAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YACnC,IAAI,EAAE,UAAU;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACjD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,EAAE,CAAC;IACpB,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,KAAa,EAAE,SAAiB;QACxD,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEM,MAAM,CAAC,aAAa,CAAC,MAAM;QAC9B,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClF,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,KAAK;QAC9B,MAAM,SAAS,GAAG,GAAG,CAAC;QACtB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;YACV,OAAO,EAAE,CAAC;SACb;QACD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,KAAK,GAAG,GAAG,CAAC;SACf;QACD,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACjB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SACjC;QACD,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACd,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;YACd,KAAK,GAAG,CAAC,CAAC;SACb;aAAM;YACH,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SACvB;QACD,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAS,EAAE,KAAU;QACjE,IAAI,CAAC,aAAa,EAAE;YAChB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;YAC1C,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC/B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAC7B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,+DAAmB,CAAC,CAAC;gBACnD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC;aAChB;SACJ;IACL,CAAC;IAED,8CAA8C;IAEvC,MAAM,CAAC,qBAAqB,CAAC,KAAK;QACrC,kBAAkB;QAClB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,OAAO,KAAK,CAAC;iBAChB;qBAAM;oBACH,OAAO,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;iBAChD;aACJ;iBAAM;gBACH,OAAO,KAAK,GAAG,KAAK,CAAC;aACxB;SACJ;QAED,oBAAoB;QACpB,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACpC,MAAM,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC;YACvB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnB,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACxB,OAAO,KAAK,CAAC;iBAChB;qBAAM;oBACH,OAAO,WAAW,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;iBAChD;aACJ;iBAAM;gBACH,OAAO,KAAK,GAAG,KAAK,CAAC;aACxB;SACJ;IACL,CAAC;IAEM,MAAM,CAAC,cAAc,CAAC,IAAS;QAClC,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,IAAI,GAAG,CAC/D,CAAC,CAAC,OAAO,EAAE,CACd,IAAI,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;YACvE,OAAO,QAAQ,CAAC;SACnB;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,IAAS;QAC3B,IAAI,IAAI,EAAE;YACN,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YACjC,OAAO,QAAQ,CAAC;SACnB;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAM,EAAE,IAAY;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YACzB,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,KAAoB;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,IAAI,CAAC;SACf;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACrD,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SAC3C;QACD,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,aAAa,CAAC,KAAU;QACpB,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;SACzD;aAAM;YACH,OAAO,CAAC,CAAC;SACZ;IACL,CAAC;CACJ;AAGD,SAAS,GAAG,CAAC,KAAK;IACd,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,CAAC;;;;;;;;;;;;;;;;;;ACv+BS,MAAM,oBAAoB;IAHpC;QAIE,mBAAc,GAA0B,EAAE,CAAC;KA2B5C;IA1BC,SAAS,CAAC,cAAgC;QACxC,IAAG,cAAc,IAAI,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACpF,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACvD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE;oBACnG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;wBACvB,cAAc,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc;wBAC1D,YAAY,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY;wBACtD,SAAS,EAAE,EAAE;qBACd,CAAC,CAAC;iBACJ;aACF;YACD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;gBACjD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;oBACtD,IAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,cAAc,EAAC;wBACtF,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC;4BACpC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;4BAC1C,QAAQ,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ;yBAC/C,CAAC;qBACH;iBACF;aACF;SACF;QACD,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACvC,OAAO,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;;wFA3Ba,oBAAoB;wIAApB,oBAAoB;;;;;;;;;;;;;;;;;;ACD7B,MAAM,OAAO;IAEhB,SAAS,CAAC,KAAY,EAAE,SAAiC;QACrD,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;YACtB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;;8DAPQ,OAAO;8GAAP,OAAO;;;;;;;;;;;;;;;;;;ACDb,MAAM,iBAAiB;IAE5B,SAAS,CAAE,UAAgB;QACzB,WAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,MAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;QAEhH,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEjC,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAG;YAGtB,OAAO,WAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,MAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAC;gBAChI,CAAC,QAAQ,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,YAAY,CAAC,EAAC,CAAC,EAAE,CAAC;SACjE;aAAM;YACL,OAAO,EAAE,CAAC;SACX;IACH,CAAC;;kFAfU,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACJe;;AAKnC,MAAM,WAAW;IAClB,SAAS,CAAC,KAAU,EAAE,OAAe;QAC1C,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;aAC9B;YAED,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,OAAO,KAAK,CAAC;aACd;YAED,IAAI,OAAO,KAAK,KAAK,EAAE;gBACrB,OAAO,2DAAU,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;aAC9C;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;sEAxBa,WAAW;sHAAX,WAAW;;;;;;;;;;;;;;;;;;ACApB,MAAM,cAAc;IAEnB,SAAS,CAAC,OAAY,EAAE,IAAY;QACvC,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;SACvB;QACD,OAAO,EAAE,CAAC;IACb,CAAC;;4EAPU,cAAc;4HAAd,cAAc;;;;;;;;;;;;;;;;;;ACCpB,MAAM,WAAW;IAEhB,SAAS,CAAC,KAAU;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC9B;SACJ;aAAM;YACJ,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3B;IACJ,CAAC;;sEAZU,WAAW;sHAAX,WAAW;;;;;;;;;;;;;;;;;;ACAjB,MAAM,WAAW;IAEhB,SAAS,CAAC,IAAS,EAAE,IAAY;QACpC,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;SACpB;QACD,OAAO,EAAE,CAAC;IACb,CAAC;;sEAPU,WAAW;sHAAX,WAAW;;;;;;;;;;;;;;;;;;ACFd,MAAM,aAAa;IACpB,SAAS,CAAC,KAAU,EAAE,MAAc;QACzC,IAAI,KAAK,EAAE;SAEV;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;0EANa,aAAa;0HAAb,aAAa;;;;;;;;;;;;;;;;ACL7B,IAAY,KAIX;AAJD,WAAY,KAAK;IACb,qDAAoB;IACpB,yCAAc;IACd,+CAAiB;AACrB,CAAC,EAJW,KAAK,KAAL,KAAK,QAIhB;;;;;;;;;;;;;;;;;;ACEM,MAAM,iBAAiB;IAE5B,SAAS,CAAE,eAAiC,EAAE,iBAAyB;QAErE,IAAK,gBAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,IAAG,CAAC,EAAG;YAEjC,eAAe,GAAG,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,MAAM,CAAC,aAAa,CAAC,EAAE,WAC1D,2BAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,iBAAiB,0CAAE,WAAW,EAAE,OAAK,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,WAAW,EAAE,KAAC,CAAC;SACvF;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;;kFAVU,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACFQ;;AAK/B,MAAM,0BAA0B;IAErC,SAAS,CAAE,aAAwB,EACzB,kBAA0C;QAI5C,IAAI,iBAA0B,CAAC;QAC/B,IAAI,kBAAkB,CAAC,kBAAkB,KAAK,0DAAiB,EAAG;YAChE,uBAAuB;SACxB;QAGP,OAAO,IAAI,CAAC;IACd,CAAC;;oGAdU,0BAA0B;oJAA1B,0BAA0B;;;;;;;;;;;;;;;;;;ACRc;;AAK9C,MAAM,kBAAkB;IAE3B,SAAS,CAAC,KAAc,EAAE,GAAG,IAAe;QACxC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC7B,OAAO,mFAAsB,CAAC,KAAK,CAAC,CAAC;SACxC;QACD,OAAO,mFAAsB,CAAC,UAAU,CACpC,MAAM,CAAC,KAAK,CAAC;aACR,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;aACnB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;aACjB,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CACjC,CAAC;IACN,CAAC;;oFAZQ,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACLgB;;AAKxC,MAAM,iBAAiB;IAE1B,SAAS,CAAE,IAAU;QACnB,IAAI,IAAI,EAAE;YACR,OAAO,iEAAc,CAAC,IAAI,CAAC,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACd,CAAC;;kFARU,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACEvB,MAAM,cAAc;IAEnB,SAAS,CAAC,KAAqB;QACnC,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAChD;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;4EAPU,cAAc;6HAAd,cAAc;;;;;;;;;;;;;;;;;;ACFpB,MAAM,aAAa;IACxB,mEAAmE;IACpE,gDAAgD;IACzC,SAAS,CAAC,GAAwB;QACtC,IAAG,GAAG,IAAI,GAAG,CAAC,YAAY,EAAC;YACzB,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,UAAU;gBACtC,OAAO,uBAAuB,CAAC;aAChC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,WAAW;gBACvC,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,cAAc;gBAC1C,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,UAAU;gBACtC,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,YAAY;gBACxC,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,yBAAyB;gBACrD,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,WAAW;gBACvC,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,6BAA6B;gBACzD,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,2BAA2B;gBACvD,OAAO,yBAAyB,CAAC;aAClC;YACD,IAAG,GAAG,CAAC,YAAY,KAAK,GAAG,EAAC,EAAE,YAAY;gBACxC,OAAO,yBAAyB,CAAC;aAClC;SACF;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;0EArCU,aAAa;0HAAb,aAAa;;;;;;;;;;;;;;;;;;ACLmB;;AAKtC,MAAM,YAAY;IAErB,SAAS,CAAC,UAAgB,EAAE,OAAa;QACrC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gEAAa,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjG,CAAC;;wEAJQ,YAAY;wHAAZ,YAAY;;;;;;;;;;;;;;;;;;ACJzB,MAAM,WAAW,GAAG;IAClB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,IAAI;CACV,CAAC;AAIQ,MAAM,mBAAmB;IACjC,SAAS,CAAC,SAAqB;QAC7B,IAAI,SAAS,KAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,kBAAkB,GAAE;YAC9C,OAAO,WAAW,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,kBAAkB,CAAC,WAAW,EAAE,CAAC,CAAC;SACjE;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;sFANa,mBAAmB;sIAAnB,mBAAmB;;;;;;;;;;;;;;;;;;ACP5B,MAAM,WAAW;IACtB,SAAS,CAAC,IAAY,EAAE,QAAgB,CAAC;QACvC,IAAG,IAAI,CAAC,MAAM,IAAI,KAAK;YACrB,OAAO,IAAI,CAAC;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC1C,CAAC;;sEALU,WAAW;sHAAX,WAAW;;;;;;;;;;;;;;;;;;ACKjB,MAAM,iBAAiB;IAEtB,SAAS,CAAC,QAAwB,EAAE;QACxC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;;kFAJU,iBAAiB;iIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACHvB,MAAM,cAAc;IACvB,SAAS,CAAC,KAAY,EAAE,EAAU;QAC9B,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,CAAC;SACb;QACD,IAAI,CAAC,EAAE,EAAE;YACL,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAChD,CAAC;;4EATQ,cAAc;4HAAd,cAAc;;;;;;;;;;;;;;;;;;ACCpB,MAAM,YAAY;IACrB,SAAS,CAAC,KAAY,EAAE,SAAiD,EAAE,GAAG,IAAW;QACrF,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;YACtB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;;wEANQ,YAAY;wHAAZ,YAAY;;;;;;;;;;;;;;;;;;ACAlB,MAAM,gCAAgC;IAE3C,SAAS,CAAC,wBAA8B,EAAE,KAAa;QACrD,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,wBAAwB,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAC;YAC/C,wBAAwB,GAAG,wBAAwB,CAAC,MAAM,CAAE,qBAAqB,CAAC,EAAE;gBAClF,OAAO,CAAC,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,OAAO,CAAC,WAAW,EAAa;qBAC9D,QAAQ,CAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC;SACJ;QAED,OAAO,wBAAwB,CAAC;IAClC,CAAC;;gHAZU,gCAAgC;gKAAhC,gCAAgC;;;;;;;;;;;;;;;;;;ACAtC,MAAM,uBAAuB;IAElC,SAAS,CAAC,aAAmB,EAAE,KAAa;QAC1C,MAAM,KAAK,GAAG,KAAK,CAAC;QACpB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,EAAC;YACpC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAE,WAAW,CAAC,EAAE;gBAClD,OAAO,CAAC,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,SAAS,CAAC,WAAW,EAAa;qBACtD,QAAQ,CAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC;SACJ;QAED,OAAO,aAAa,CAAC;IACvB,CAAC;;8FAZU,uBAAuB;8IAAvB,uBAAuB;;;;;;;;;;;;;;;;;;ACD7B,MAAM,kBAAkB;IAE7B,SAAS,CAAC,KAAa,EAAE,KAAa;QACpC,IAAI,KAAK,EAAE;YAET,OAAO,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;SAC7B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;oFATU,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACJc;;AAKtC,MAAM,cAAc;IAEzB,SAAS,CAAC,KAAW;QACnB,OAAO,+EAA4B,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC;;4EAJU,cAAc;4HAAd,cAAc;;;;;;;;;;;;;;;;;;ACApB,MAAM,mBAAmB;IAHhC;QAIA,qBAAgB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ;YAC5E,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,eAAe;YACnG,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,mBAAmB;YACjH,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB;YACrI,eAAe,EAAE,WAAW,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;KAO1I;IANO,SAAS,CAAC,KAAU;QACvB,IAAI,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAC9E,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;SAC1C;aAAM,GAAE;IACZ,CAAC;;sFAVU,mBAAmB;iIAAnB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDzB,MAAM,sBAAsB;IAE3B,SAAS,CAAC,MAAc;;YAC5B,IAAI,KAAK,GAAW,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,GAAW,EAAE,CAAC;YAEvB,IAAI,KAAK,EAAE;gBACT,IAAK,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC;oBAEvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;wBACtB,OAAO,GAAG,CAAC;qBACZ;yBAAM,IAAI,KAAK,KAAK,EAAE,EAAE;wBACvB,OAAO,MAAM;qBACd;oBAED,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAC,EAAE,CAAC;oBAC3B,KAAK,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACjE,KAAK,GAAG,GAAG,CAAC;iBACb;qBACI;oBACH,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAC,EAAE,CAAC;oBAC3B,IAAK,KAAK,KAAK,GAAG,EAAC;wBACjB,OAAO,MAAM,CAAC;qBACf;iBACF;gBAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,IAAI,IAAI,GAAW,EAAE,CAAC;oBACtB,IAAI,IAAI,GAAW,EAAE,CAAC;oBACtB,IAAI,MAAM,GAAW,EAAE,CAAC;oBACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACxB,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;wBACzD,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;qBAC/C;yBAAM;wBACL,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3B,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC5B;oBAGD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;wBACvC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC;wBACnD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;4BACb,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;yBAE9C;qBACF;oBACD,IAAI,MAAM,KAAI,EAAE,EAAC;wBACf,MAAM,GAAG,KAAK,GAAC,GAAG,GAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC;qBACxC;yBAAK;wBACJ,MAAM,GAAG,KAAK,GAAC,GAAG,GAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;qBAEtC;oBACD,OAAO,MAAM,CAAC;iBACf;qBAAM;oBACL,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;wBACtB,KAAK,GAAG,KAAK,GAAE,KAAK,GAAC,KAAK,CAAC;qBAE5B;yBACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAC;wBAErB,KAAK,GAAG,KAAK,GAAE,MAAM,GAAC,KAAK,CAAC;qBAC7B;yBAAM;wBAEL,KAAK,GAAG,KAAK,KAAI,EAAE,EAAC,CAAC,KAAK,GAAE,KAAK,GAAC,KAAK,EAAC,CAAC,MAAM,CAAC;qBACjD;iBACF;aACF;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;;4FAtEU,sBAAsB;4IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;ACAzB,MAAM,WAAW;IACpB,SAAS,CAAE,OAAe,EAAE,UAAiB;QAChD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACxE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC;SAC3D;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;sEANa,WAAW;sHAAX,WAAW;;;;;;;;;;;;;;;;;;ACCpB,MAAM,iBAAiB;IAC5B,SAAS,CAAC,KAAY,EAAE,EAAU,EAAE,QAAgB;QAClD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;gBACzB,OAAO,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;aACvB;YAED,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE;YACf,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC9B;IACH,CAAC;;kFAbU,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACDvB,MAAM,gBAAgB;IAE3B,SAAS,CAAC,KAAU,EAAE,GAAG,IAAe;QACtC,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,kBAAkB,CAAC;QACvB,IAAI,KAAK,EAAE;YACT,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,mBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,IAAG,CAAC,EAAE;gBAClC,gBAAgB,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACrE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC;aAC3C;YAED,QAAQ,gBAAgB,EAAE;gBACxB,KAAK,KAAK,CAAC,CAAC,OAAQ,kCAAkC,CAAC;gBACvD,KAAK,QAAQ,CAAC,CAAC,OAAQ,4CAA4C,CAAC;gBACpE,KAAK,6DAA6D,CAAC,CAAC,OAAQ,mCAAmC,CAAC;gBAC9G,iBAAiB;gBACnB,KAAK,uDAAuD,CAAC,CAAC,OAAQ,mCAAmC,CAAC;gBACxG,sBAAsB;gBACxB,KAAK,+DAA+D,CAAC,CAAC,OAAQ,yCAAyC,CAAC;gBACxH,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC/B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC9B,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC9B,KAAK,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC;gBAC/B,OAAO,CAAC,CAAC,OAAO,0CAA0C,CAAC;aAC5D;SAEF;IACH,CAAC;;gFA9BU,gBAAgB;gIAAhB,gBAAgB;;;;;;;;;;;;;;;;;;ACFtB,MAAM,kBAAkB;IAG7B;QAFuB,iBAAY,GAAW,EAAE,CAAC;IAElC,CAAC;IAEhB,SAAS,CAAC,KAAU;QAClB,IAAI,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;YAC9B,OAAO,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC;SACpC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;oFAVU,kBAAkB;wIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACGxB,MAAM,sBAAsB;IAHnC;QAIC,QAAG,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAU7B;IATO,SAAS,CAAC,KAAU;QACvB,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,OAAO,CAAC;SAClB;aAAM;YACJ,OAAO,KAAK,CAAC;SACf;IACJ,CAAC;;4FATU,sBAAsB;4IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;ACLU;;AAKtC,MAAM,SAAS;IAElB,SAAS,CAAC,KAAqB;QAC3B,MAAM,IAAI,GAAG,iEAAc,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,EAAE,CAAC;SACb;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IACjH,CAAC;IAEO,OAAO,CAAC,GAAW;QACvB,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;;kEAjBQ,SAAS;kHAAT,SAAS;;;;;;;;;;;;;;;;;;ACDf,MAAM,kBAAkB;IAEpB,SAAS,CAAC,KAAU,EAAE,GAAG,IAAI;QAChC,IAAI,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACvG,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,OAAO,WAAW,CAAC;SACtB;IACL,CAAC;;oFARQ,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACAxB,MAAM,kBAAkB;IAEpB,SAAS,CAAC,KAAU,EAAE,GAAG,IAAI;QAChC,IAAI,KAAK,IAAI,OAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;YACvG,OAAO,WAAW,CAAC;SACtB;aAAM;YACH,OAAO,UAAU,CAAC;SACrB;IACL,CAAC;;oFARQ,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;;;ACExB,MAAM,eAAe;IAC5B,YAAsB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAC7C,CAAC;IACO,SAAS,CAAC,IAAS;QACtB,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,UAAU,CAAC;QAChB,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;YAC1C,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,WAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,IAAG,CAAC,EAAE;gBACxB,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC5B,OAAO,yBAAyB,GAAG,WAAW,GAAG,iBAAiB,CAAC;aACtE;SACH;IAEH,CAAC;;8EAdU,eAAe;8HAAf,eAAe;;;;;;;;;;;;;;;;;;ACArB,MAAM,qBAAqB;IAEhC,SAAS,CAAC,QAAmB;;QAE3B,IAAK,QAAQ,IAAI,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,IAAE,CAAC,EAAE;YACpC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,GAAE,CAAC,EAAE,EAAE;gBACzC,IAAK,qBAAQ,CAAC,CAAC,CAAC,0CAAE,MAAM,0CAAE,WAAW,EAAE,MAAI,QAAQ,CAAC,WAAW,EAAE,EAAC;oBAChE,OAAO,EAAG,CAAC;iBACZ;gBACD,IAAK,OAAO,GAAG,CAAC,EAAE;oBAChB,OAAO,IAAI,CAAC;iBACb;aACF;SACF;aAAM;YAEL,OAAO,KAAK,CAAC;SACd;QAED,OAAO,KAAK,CAAC;IACf,CAAC;;0FApBU,qBAAqB;0IAArB,qBAAqB;;;;;;;;;;;;;;;;;;ACFzB,MAAM,gBAAgB;IACtB,SAAS,CAAC,KAAa;QAC5B,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,QAAQ,IAAI,EAAE;YACZ,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBAChB,YAAY,GAAG,kCAAkC,KAAK,eAAe,CAAC;gBACtE,MAAM;aACP;YACD,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,YAAY,GAAG,kCAAkC,KAAK,cAAc,CAAC;gBACrE,MAAM;aACP;YACD,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,YAAY,GAAG,0CAA0C,CAAC;gBAC1D,MAAM;aACP;YACD,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACnB,YAAY,GAAG,mCAAmC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;gBAChF,MAAM;aACP;YACD,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACjB,YAAY,GAAG,mCAAmC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC;gBACjF,MAAM;aACP;YACD;gBAAU,YAAY,GAAG,sCAAsC,CAAC;gBAC9D,MAAM;SACT;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;;gFA5BY,gBAAgB;gIAAhB,gBAAgB;;;;;;;;;;;;;;;;;;ACJc;;AAKtC,MAAM,cAAc;IAEvB,SAAS,CAAC,KAAa,EAAE,IAAY;QACjC,OAAO,kEAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC;;4EAJQ,cAAc;4HAAd,cAAc;;;;;;;;;;;;;;;;;;ACAjB,MAAM,oBAAoB;IAElC,SAAS,CAAC,OAAmC,EAAE,MAAc;QAC3D,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,EAAE;YAChC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,iBAAiB,KAAK,MAAM,CAAC,CAAC;SACpE;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;wFAPa,oBAAoB;iIAApB,oBAAoB;;;;;;;;;;;;;;;;;;ACD7B,MAAM,eAAe;IAEpB,SAAS,CAAC,KAAU;QACvB,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAC1B,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,YAAY,IAAI,IAAI,GAAG,OAAO,CAAC;iBAClC;qBAAM;oBAAC,YAAY,IAAI,IAAI,CAAC;iBAAE;YACnC,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;SAEvB;aAAM;YACJ,OAAO,KAAK,CAAC;SACf;IACJ,CAAC;;8EAhBU,eAAe;8HAAf,eAAe;;;;;;;;;;;;;;;;;;ACFrB,MAAM,gBAAgB;IAC3B,SAAS,CAAC,KAAW;QACnB,IAAG,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC;YACzB,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,OAAO,GAAW,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpF,IAAI,QAAQ,GAAW,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC;QAEtD,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,OAAO,QAAQ,GAAG,YAAY,CAAC;SAChC;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,CAAC;QACzC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,OAAO,QAAQ,GAAG,aAAa,CAAC;SACjC;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;QACvC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,OAAO,QAAQ,GAAG,WAAW,CAAC;SAC/B;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACtC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,OAAO,QAAQ,GAAG,YAAY,CAAC;SAChC;QACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;QACpC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,OAAO,QAAQ,GAAG,cAAc,CAAC;SAClC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC;IAC9C,CAAC;;gFA5BU,gBAAgB;gIAAhB,gBAAgB;;;;;;;;;;;;;;;;;;;;ACItB,MAAM,QAAQ;IACrB,YAAsB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAC7C,CAAC;IACO,SAAS,CAAC,KAAU,EAAE,IAAY;QACxC,QAAQ,IAAI,EAAE;YACV,KAAK,MAAO,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACnE,KAAK,OAAQ,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;YACrE,KAAK,QAAS,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;YACvE,KAAK,KAAM,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACjE,KAAK,aAAc,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACjF,OAAO,CAAC,CAAC,OAAO;SACjB;IACH,CAAC;;gEAZU,QAAQ;gHAAR,QAAQ;;;;;;;;;;;;;;;;;;ACCd,MAAO,iBAAiB;IACpB,SAAS,CAAC,KAAU,EAAE,GAAG,IAAI;QAChC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,KAAK,EAAE;YACR,IAAI,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACtC,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,QAAQ,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE;gBACnC,OAAO,eAAe,CAAC;aACzB;SACH;IACL,CAAC;;kFAVS,iBAAiB;+HAAjB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACPc;AAES;AACX;AACe;AACrB;AACe;AACQ;AACN;AACa;AACd;AACK;AACA;AACD;AACL;AACO;AACL;AACG;AACA;AACN;AACe;AACgB;AAC7B;AAC+B;AACpB;AACwC;AACrB;AACgC;AACnB;AACpD;AACM;AACN;AACA;AACI;AACM;AACR;AACF;AACP;AAC0C;AAC1C;AACwB;AACT;AACiB;AACJ;AACI;AAChB;AACN;AACK;AACV;AAC0B;AACe;AACU;AACV;AACnB;AACP;AACY;;AAErE,MAAM,KAAK,GAAG;IACV,iEAAgB;IAChB,sDAAW;IACX,qEAAiB;IACjB,+DAAe;IACf,uEAAmB;IACnB,iEAAgB;IAChB,8EAAsB;IACtB,gEAAe;IACf,qEAAkB;IAClB,sEAAkB;IAClB,qEAAiB;IACjB,gEAAe;IACf,uEAAmB;IACnB,kEAAgB;IAChB,qEAAiB;IACjB,8FAAiB;IACjB,iEAAW;IACX,gGAAqB;IACrB,4EAAiB;IACjB,oHAA0B;IAC1B,+FAAkB;IAClB,+HAAgC;IAChC,4GAAuB;IACvB,wDAAW;IACX,8DAAc;IACd,wDAAW;IACX,wDAAW;IACX,4DAAa;IACb,kEAAgB;IAChB,gFAAoB;IACpB,4EAAkB;IAClB,gFAAoB;IACpB,kEAAa;IACb,+EAAmB;IACnB,8FAAiB;IACjB,wGAAsB;IACtB,8FAAiB;IACjB,2EAAiB;IACjB,oEAAc;IACd,gFAAmB;IACnB,2EAAiB;CACpB,CAAC;AAwCK,MAAM,iBAAiB;;kFAAjB,iBAAiB;+GAAjB,iBAAiB;mHArCjB;YACL,0DAAY;SACf;oIAmCQ,iBAAiB,mBAjF1B,iEAAgB;QAChB,sDAAW;QACX,qEAAiB;QACjB,+DAAe;QACf,uEAAmB;QACnB,iEAAgB;QAChB,8EAAsB;QACtB,gEAAe;QACf,qEAAkB;QAClB,sEAAkB;QAClB,qEAAiB;QACjB,gEAAe;QACf,uEAAmB;QACnB,kEAAgB;QAChB,qEAAiB;QACjB,8FAAiB;QACjB,iEAAW;QACX,gGAAqB;QACrB,4EAAiB;QACjB,oHAA0B;QAC1B,+FAAkB;QAClB,+HAAgC;QAChC,4GAAuB;QACvB,wDAAW;QACX,8DAAc;QACd,wDAAW;QACX,wDAAW;QACX,4DAAa;QACb,kEAAgB;QAChB,gFAAoB;QACpB,4EAAkB;QAClB,gFAAoB;QACpB,kEAAa;QACb,+EAAmB;QACnB,8FAAiB;QACjB,wGAAsB;QACtB,8FAAiB;QACjB,2EAAiB;QACjB,oEAAc;QACd,gFAAmB;QACnB,2EAAiB,EASb,gDAAQ;QACR,qEAAiB;QACjB,+DAAc;QACd,8EAAsB;QACtB,0DAAY;QACZ,sDAAU;QACV,+CAAO;QACP,yFAAkB;QAClB,+CAAO;QACP,uEAAkB;QAClB,8DAAc;QACd,yDAAY;QACZ,8DAAc;QACd,oDAAS,aAjBT,0DAAY,aA7ChB,iEAAgB;QAChB,sDAAW;QACX,qEAAiB;QACjB,+DAAe;QACf,uEAAmB;QACnB,iEAAgB;QAChB,8EAAsB;QACtB,gEAAe;QACf,qEAAkB;QAClB,sEAAkB;QAClB,qEAAiB;QACjB,gEAAe;QACf,uEAAmB;QACnB,kEAAgB;QAChB,qEAAiB;QACjB,8FAAiB;QACjB,iEAAW;QACX,gGAAqB;QACrB,4EAAiB;QACjB,oHAA0B;QAC1B,+FAAkB;QAClB,+HAAgC;QAChC,4GAAuB;QACvB,wDAAW;QACX,8DAAc;QACd,wDAAW;QACX,wDAAW;QACX,4DAAa;QACb,kEAAgB;QAChB,gFAAoB;QACpB,4EAAkB;QAClB,gFAAoB;QACpB,kEAAa;QACb,+EAAmB;QACnB,8FAAiB;QACjB,wGAAsB;QACtB,8FAAiB;QACjB,2EAAiB;QACjB,oEAAc;QACd,gFAAmB;QACnB,2EAAiB,EA2Bb,gDAAQ;QACR,+DAAc;QACd,0DAAY;QACZ,sDAAU;QACV,+CAAO;QACP,yFAAkB;QAClB,+CAAO;QACP,uEAAkB;QAClB,8DAAc;QACd,yDAAY;QACZ,8DAAc;QACd,oDAAS;;;;;;;;;;;;;;;;;;ACpIV,MAAM,UAAU;IAEnB,SAAS,CAAC,KAAY,EAAE,SAAiD,EAAE,GAAG,IAAW;QACrF,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE;YACtB,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IACxD,CAAC;;oEAPQ,UAAU;oHAAV,UAAU;;;;;;;;;;;;;;;;;;;;ACChB,MAAM,iBAAiB;IAC9B,YAAsB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAC7C,CAAC;IACO,SAAS,CAAC,KAAU;QACxB,IAAI,KAAK,EAAE;YACP,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACzE;IACH,CAAC;;kFARU,iBAAiB;iIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACAvB,MAAM,eAAe;IAEpB,SAAS,CAAC,KAAU;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,OAAM,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE;YAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;gBACpC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC;aAC9B;SACJ;aAAM;YACJ,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC3B;IACJ,CAAC;;8EAZU,eAAe;6HAAf,eAAe;;;;;;;;;;;;;;;;;;ACLiB;;AAKtC,MAAM,OAAO;IAEhB,SAAS,CAAC,KAAsB,EAAE,MAAuB;QACrD,OAAO,sEAAmB,CAAC,KAAK,CAAC,GAAG,sEAAmB,CAAC,MAAM,CAAC,CAAC;IACpE,CAAC;;8DAJQ,OAAO;8GAAP,OAAO;;;;;;;;;;;;;;;;;;ACqBV,MAAM,sBAAsB;IACtC,SAAS,CAAC,aAAoB,EAAE,EAAE,OAAgB;QAChD,MAAM,WAAW,GAAW,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/E,MAAM,aAAa,GAAW,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACjF,OAAO,aAAa,GAAG,WAAW,CAAC;IACrC,CAAC;IAED,mBAAmB,CAAC,QAAc,EAAE,EAAE,MAAc,EAAE,OAAe;QAC/D,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7C,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;YAC1D,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACnC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;4FAjBW,sBAAsB;4IAAtB,sBAAsB;;;;;;;;;;;;;;;;;;ACD5B,MAAM,iBAAiB;IACjC,SAAS,CAAC,QAAe,EAAE,EAAE,MAAe,EAAE,OAAgB;QAC9D,IAAI,UAAU,GAAqB,EAAE,CAAC;QACtC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC;YAC1D,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACnC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC,CAAC,CAAC;SACT;QACA,OAAO,KAAK,CAAC;IACd,CAAC;;kFAXe,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACpB1B,MAAM,iBAAiB;IAC5B,SAAS,CAAC,UAAiB,EAAE,IAAa;QACxC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;gBACnC,OAAO,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC,EAAE,CAAC,CAAC,CAAC;SACP;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;kFATU,iBAAiB;kIAAjB,iBAAiB;;;;;;;;;;;;;;;;;;ACAvB,MAAM,kBAAkB;IAC7B,SAAS,CAAC,UAAiB,EAAE,IAAY;QACvC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,IAAI,IAAI,KAAK,eAAe,EAAE;oBAC5B,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;oBAC9C,CAAC,EAAE,CAAC,CAAC,CAAC;iBACP;qBAAM;oBACL,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;wBACnC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC,EAAE,CAAC,CAAC,CAAC;iBACP;aAEF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;oFAlBU,kBAAkB;oIAAlB,kBAAkB;;;;;;;;;;;;;;;;;;ACFrB,MAAM,mBAAmB;IACxB,SAAS,CAAC,KAAU;QACvB,OAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,aAAI,EAAI,CAAC,EAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC;;sFAHW,mBAAmB;8HAAnB,mBAAmB;;;;;;;;;;;;;;;;;;ACCzB,MAAM,mBAAmB;IACjC,SAAS,CAAC,OAAY;QACpB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACtB,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;gBAC9F,uCACK,MAAM,KACT,SAAS,EAAE,MAAM,GAAG,CAAC,IACrB;YACJ,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;;sFAXa,mBAAmB;sIAAnB,mBAAmB;;;;;;;;;;;;;;;;;;;;ACE5B,MAAM,gBAAgB;IACzB,YAAsB,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAC7C,CAAC;IAEM,SAAS,CAAC,KAAU;QACvB,IAAI,gBAAgB,GAAG,EAAE,CAAC;QAC1B,IAAI,iBAAiB,GAAG,EAAE,CAAC;QAC3B,IAAI,kBAAkB,CAAC;QACvB,IAAI,KAAK,EAAE;YACP,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACvD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxC,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aACrD;iBAAM;gBACH,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;oBACjD,kBAAkB,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACzC;aACJ;YAED,IAAI,mBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,IAAG,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3E,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aAC9C;YAED,QAAQ,gBAAgB,EAAE;gBACtB,KAAK,KAAK;oBACN,OAAO,kCAAkC,CAAC;gBAC9C,KAAK,QAAQ;oBACT,OAAO,4CAA4C,CAAC;gBACxD,KAAK,MAAM;oBACP,OAAO,4CAA4C,CAAC;gBACxD,KAAK,6DAA6D;oBAC9D,OAAO,mCAAmC,CAAC;gBAC/C,uFAAuF;gBACvF,KAAK,OAAO;oBACR,OAAO,mCAAmC,CAAC;gBAC/C,KAAK,MAAM;oBACP,OAAO,mCAAmC,CAAC;gBAC/C,sBAAsB;gBACtB,KAAK,+DAA+D;oBAChE,OAAO,yCAAyC,CAAC;gBACrD,KAAK,MAAM;oBACP,OAAO,yCAAyC,CAAC;gBACrD,KAAK,MAAM;oBACP,OAAO,KAAK,CAAC;gBACjB,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;gBACjB,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;gBACjB,KAAK,KAAK;oBACN,OAAO,KAAK,CAAC;gBACjB,KAAK,MAAM;oBACP,OAAO,KAAK,CAAC;gBACjB;oBACI,OAAO,0CAA0C,CAAC;aACzD;SAEJ;IAEL,CAAC;;gFA5DQ,gBAAgB;gIAAhB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;ACAN;AACsB;AAEC;;;;;;;;;AASvC,MAAM,wBAAwB;IAOnC,YACY,aAA4B,EAC5B,MAAc,EACd,KAAqB;QAFrB,kBAAa,GAAb,aAAa,CAAe;QAC5B,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QAPX,gBAAW,GAAW,aAAa,CAAC;QACxC,WAAM,GAAG,IAAI,uDAAY,EAAE,CAAC;QAC9C,eAAU,GAAG,IAAI,uDAAW,EAAE,CAAC;IAM5B,CAAC;IAEJ,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,4DAAY,CAAC,GAAG,CAAC,CAAC;aACnD,SAAS,CAAC,KAAK,CAAC,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SAClC;IACH,CAAC;IACD,gBAAgB;QACd,IAAG,IAAI,CAAC,UAAU,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;SAC9C;IACH,CAAC;IACD,IAAI;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IACD,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IACD,MAAM;QACJ,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7B,CAAC;;gGAxCU,wBAAwB;sHAAxB,wBAAwB;QCnBrC,yEAA2D;QACzD,4EAA2E;QAAjB,gJAAS,UAAM,IAAC;QACxE,2EAAU;QAAA,iEAAM;QAAA,4DAAW;QAC7B,4DAAS;QACT,sEAAK;QACH,sEAA+F;QACjG,4DAAM;QACN,8EAA4D;QAAlB,kJAAS,WAAO,IAAC;QAAC,gEAAK;QAAA,4DAAW;QAC9E,4DAAM;;QARwB,sJAA4B;QAK/C,0DAA0B;QAA1B,uFAA0B;;;;;;;;;;;;;;;;;;;;;;;ACJU;AAC4C;AACtC;AACM;AACJ;;AAOhD,MAAM,YAAY;;wEAAZ,YAAY;yGAAZ,YAAY;6GAFd,CAAC,+DAAmB,EAAE,iEAAa,EAAE,qEAAe,EAAE,yDAAY,CAAC;mIAEjE,YAAY,mBAJR,oGAAwB,aAE7B,+DAAmB,EAAE,iEAAa,EAAE,qEAAe,EAAE,yDAAY,aADjE,oGAAwB;;;;;;;;;;;;;;;;;;ACRG;;AAMhC,MAAM,aAAa;IAIxB;QAHO,eAAU,GAA4B,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QACtE,gBAAW,GAAuB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAEzD,CAAC;;0EAJL,aAAa;8GAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;;;;;;;;;;;;;;;;;;ACGiC;;AAK9C,MAAM,uBAAuB;IAChC;IACA,CAAC;IAED,iBAAiB,CAAC,aAAkB;QAChC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QAE/D,IAAI,KAAK,GAAW,CAAC,CAAC;QACtB,IAAI,gBAAgB,CAAC,gBAAgB,KAAK,IAAI,EAAE;YAC5C,KAAK,IAAI,IAAI,IAAI,gBAAgB,CAAC,gBAAgB,EAAE;gBAChD,KAAK,IAAI,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;aAChE;SACJ;QACD,gBAAgB,CAAC,aAAa,GAAG,KAAK,CAAC;QACvC,OAAO,gBAAgB,CAAC;IAC5B,CAAC;IAEO,gBAAgB,CAAC,KAAU,EAAE,QAAyB;QAC1D,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YACvB,OAAO,CAAC,CAAC;SACZ;QAED,IAAI,SAAS,GAAW,SAAS,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,WAAC,UAAG,GAAG,CAAC,sFAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,mCAAI,CAAC,CAAC,KAC9D,CAAC,CACJ,CAAC;QACF,IAAI,OAAO,GAAW,CAAC,CAAC;QAExB,IAAI,SAAS,GAAG,QAAQ,CAAC,WAAW,EAAE;YAClC,OAAO,GAAG,SAAS,GAAG,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;SAC1D;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,gBAA2C;QACtD,IAAI,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAC7D,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAC7C,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAC7E,CAAC;QACF,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAC5C,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAC/E,CAAC;QACF,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CACjD,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CACpE,CAAC;QACF,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAC3C,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAC1E,CAAC;QAEF,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,cAAc,CAAC;QAExD,IAAI,aAAa,CAAC,gBAAgB,EAAE;YAChC,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;SACnD;aAAM;YACH,OAAO,IAAI,CAAC,sBAAsB,CAAC,aAAa,CAAC,CAAC;SACrD;IACL,CAAC;IAED,cAAc,CAAC,gBAAqB;QAChC,IAAI,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAC7C,aAAa,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,gFAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EACzD,CAAC,CACJ,CACJ,CAAC;QAEF,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAC5C,aAAa,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,gFAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,EAC3D,CAAC,CACJ,CACJ,CAAC;QAEF,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CACjD,aAAa,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,gFAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EACvD,CAAC,CACJ,CACJ,CAAC;QACF,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAC3C,aAAa,CAAC,KAAK,CAAC,MAAM,CACtB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,gFAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EACtD,CAAC,CACJ,CACJ,CAAC;QAGF,aAAa,GAAG,aAAa,CAAC,gBAAgB,IAAI,IAAI;YAClD,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,8BAA8B,CAC1B,gBAAqB;QAErB,IAAI,aAAa,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAE7D,aAAa,GAAG,aAAa,CAAC,gBAAgB;YAC1C,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAE7C,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,gBAAgB,CACpB,aAAwC;QAExC,IACI,CAAC,aAAa,CAAC,gBAAgB;YAC/B,aAAa,CAAC,UAAU,IAAI,IAAI;YAChC,aAAa,CAAC,UAAU,IAAI,CAAC,EAC/B;YACE,OAAO,aAAa,CAAC;SACxB;QAED,IAAI,UAAU,GAAW,aAAa,CAAC,UAAU,CAAC;QAElD,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAClD,aAAa,CAAC,QAAQ,GAAG,UAAU,CACtC,CAAC;QACF,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CACpD,aAAa,CAAC,SAAS,GAAG,UAAU,CACvC,CAAC;QACF,aAAa,CAAC,gBAAgB;YAC1B,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC;QAEpE,OAAO,aAAa,CAAC;IACzB,CAAC;IAEO,kBAAkB,CACtB,aAAwC;QAExC,IACI,cAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,gBAAgB;YAC/B,cAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,KAAI,IAAI;YACjC,cAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,UAAU,KAAI,CAAC,EAChC;YACE,OAAO,aAAa,CAAC;SACxB;QAED,IAAI,UAAU,GAAW,aAAa,CAAC,UAAU,CAAC;QAElD,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAClD,aAAa,CAAC,QAAQ,GAAG,UAAU,CACtC,CAAC;QACF,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CACpD,aAAa,CAAC,SAAS,GAAG,UAAU,CACvC,CAAC;QACF,aAAa,CAAC,gBAAgB;YAC1B,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC;QAEpE,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,OAAO;IACP,mBAAmB,CAAC,IAA0B;QAC1C,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,KAA6B;QAC9C,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3C;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,YAAY,CAAC,IAA0B;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC;IAChB,CAAC;IAGD,eAAe,CAAC,IAAS;QACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9E,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAG,IAAI,CAAC,YAAY,GAAC,GAAG,EAAC;YACrB,IAAI,CAAC,YAAY,GAAC,GAAG,CAAC;SACzB;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,IAA0B;QACvC,IAAI,IAAI,CAAC,YAAY,IAAI,GAAG,EAAE;YAC1B,MAAM,QAAQ,GAAG,gFAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,gFAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;YACzI,OAAO,QAAQ,CAAC;SACnB;QACD,MAAM,QAAQ,GAAG,gFAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,CAAC,IAAI,CAAC,CAAC;QAClG,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,mBAAmB,CAAC,gBAAuC;QACvD,IAAI,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,QAAQ,CAAC;QACtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QACvC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,0BAA0B,CAAC,gBAAuC;QAC9D,IAAI,OAAO,GAAG,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEvD,OAAO,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,OAAO,GAAG,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC;QACxC,OAAO,OAAO,CAAC;IACnB,CAAC;IAED,oBAAoB,CAAC,aAAwC;QACzD,IACI,CAAC,aAAa,CAAC,gBAAgB;YAC/B,aAAa,CAAC,UAAU,KAAK,IAAI;YACjC,aAAa,CAAC,UAAU,IAAI,CAAC,EAC/B;YACE,OAAO,aAAa,CAAC;SACxB;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QAE5C,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAClD,aAAa,CAAC,QAAQ,GAAG,UAAU,CACtC,CAAC;QACF,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CACpD,aAAa,CAAC,SAAS,GAAG,UAAU,CACvC,CAAC;QACF,aAAa,CAAC,gBAAgB;YAC1B,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC;QAEpE,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,sBAAsB,CAClB,aAAwC;QAExC,IACI,CAAC,aAAa,CAAC,gBAAgB;YAC/B,aAAa,CAAC,UAAU,KAAK,IAAI;YACjC,aAAa,CAAC,UAAU,IAAI,CAAC,EAC/B;YACE,OAAO,aAAa,CAAC;SACxB;QAED,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;QAE5C,aAAa,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAClD,aAAa,CAAC,QAAQ,GAAG,UAAU,CACtC,CAAC;QACF,aAAa,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CACpD,aAAa,CAAC,SAAS,GAAG,UAAU,CACvC,CAAC;QACF,aAAa,CAAC,gBAAgB;YAC1B,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,eAAe,CAAC;QAEpE,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,mBAAmB,CAAC,MAAa,EAAE,YAAoB;QACnD,IAAI,OAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,KAAI,CAAC,EAAE;YACrB,OAAO,CAAC,CAAC;SACZ;QACD,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,QAAQ,YAAY,EAAE;YAClB,KAAK,CAAC;gBACF,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC3C,KAAK,CAAC;gBACF,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC3C,KAAK,CAAC;gBACF,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAC3C;gBACI,OAAO,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SAC9C;IACL,CAAC;IAED,sBAAsB,CAAC,KAAuB;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,yCAAyC;YACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,yEAAyE;YACzE,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;IACD,iBAAiB,CAAC,KAAuB;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,yCAAyC;YACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/B,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,yEAAyE;YACzE,OAAO,CAAC,CAAC;SACZ;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,CAAC;IAED,iBAAiB,CAAC,KAAuB;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,yCAAyC;YACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACnD,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAC3C,yEAAyE;YACzE,OAAO,CAAC,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IAChD,CAAC;;8FA3VQ,uBAAuB;wHAAvB,uBAAuB,WAAvB,uBAAuB,mBAFpB,MAAM;AAgWtB,SAAS,sBAAsB,CAAC,GAAQ;IACpC,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACzC,OAAO,GAAG,CAAC;KACd;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACpB,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;KAC1D;IAED,MAAM,YAAY,GAA2B,EAAE,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACnB,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;YAChD,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAChE,YAAY,CAAC,YAAY,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACjE;KACJ;IAED,OAAO,YAAY,CAAC;AACxB,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAa;IACxC,OAAO,QAAQ,CAAC,MAAM,CAAC;AAC3B,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAa;IACxC,OAAO,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpF,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAa;IACxC,OAAO,SAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpF,CAAC;;;;;;;;;;;;;;;;;;;;;;ACzY4D;AACZ;AAEI;AAKK;;;AAI1D,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACL,CAAC;AAKK,MAAM,gBAAgB;IAWzB,YACY,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAXpB,eAAU,GAAG,IAAI,iDAAe,CAAY,IAAI,CAAC,CAAC;QAI1D,gBAAW,GAAoC,IAAI,iDAAe,CAAiB,IAAI,CAAC,CAAC;QACzF,cAAS,GAAG,IAAI,iDAAe,CAAmB,IAAI,CAAC,CAAC;QACxD,eAAU,GAA+B,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAOrE,IAAI,CAAC,gBAAgB,GAAG,GAAG,8EAAwB,EAAE,CAAC;QACtD,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,GAAG,4EAAsB,EAAE,CAAC;QACjD,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzD,+EAA+E;QAC/E,qEAAqE;QACrE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,cAAsB;QAChC,MAAM,MAAM,GAAG,EAAC,kBAAkB,EAAE,cAAc,EAAC,CAAC;QACpD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAED,yCAAyC;IACzC,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACjG,CAAC;IAED,UAAU,CAAC,GAAQ;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,EAAE,mDAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAEL,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,WAAW,CAAC;aAC3D,IAAI,EAAE,CAAC;IACd,CAAC;IAEH,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,WAAW,CAAC;aAC7D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,EAAE,WAAW,CAAC;aAC5D,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,wBAAwB,EAAE,WAAW,CAAC;aAClE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE9B,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,wBAAwB,EAAE,WAAW,CAAC;aAClE,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,IAAI,CAAC,gBAAgB,GAAG,gCAAgC,EAAE,WAAW,CAAC,CAAC;IAC1G,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,gCAAgC,EAAE,WAAW,CAAC;aAC1E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC;aAC/D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAGD,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,EAAE,WAAW,CAAC;aAC5D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB;IACtB,sBAAsB,CAAC,YAAoB;QACvC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,aAAa,GAAG,YAAY,EAAE,WAAW,CAAC;aACtE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,YAAoB;QACxC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,gBAAgB,GAAG,wBAAwB,GAAG,YAAY,EAC/D,WAAW,CACd,CAAC;IACV,CAAC;IAED,2BAA2B,CAAC,YAAoB,EAAE,OAAe;QAC7D,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAC,OAAO,EAAC,CAAC;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,gBAAgB,oBAAoB,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAS,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,EAAE,WAAW,CAAC;aACzE,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,WAAW,CAAC;aAC7D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAc,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,GAAG,OAAO,EAAE,WAAW,CAAC;aACxF,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAEd,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,2BAA2B,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAe,EAAE,WAAmB;QAC9C,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,EAAE;YAClD,OAAO,IAAI,CAAC,IAAI;iBACX,GAAG,CACA,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,GAAG,OAAO,GAAG,GAAG,GAAG,WAAW,EAC7E,WAAW,CACd;iBACA,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC;SACf;IACL,CAAC;IAED,QAAQ,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,GAAG,WAAW,EACxD,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,EAAE,WAAW,CAAC;aAC3D,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,wBAAwB,EAAE,WAAW,CAAC;aAClE,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,+BAA+B,EAAE,WAAW,CAAC;aACzE,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,EAAE,WAAW,CAAC;aACpE,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,EAAE,WAAW,CAAC;aACpE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,4BAA4B,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,SAAS,CACL,MAAe,EACf,gBAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,gBAAgB;YACrB,oBAAoB;YACpB,MAAM;YACN,GAAG;YACH,gBAAgB,EAChB,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,gBAAgB,aAAa,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,CAAC,EAAU;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,GAAG,EAAE,EAAE,WAAW,CAAC;aACjE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,MAAW;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,cAAc,CAAC,IAAc;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,gBAAgB,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,OAAO,EAAE,WAAW,CAAC;aACxE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,EAAE,WAAW,CAAC;aACnE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,GAAG,UAAU,EAAE,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,EAAE,MAAM,EAAE,WAAW,CAAC;aAC7E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,qCAAqC,EAAE,MAAM,EAAE,WAAW,CAAC;aACxF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC;aACvE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,IAAI,CAAC,gBAAgB,GAAG,6BAA6B,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;IAClH,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC;aACjE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,4BAA4B,EAAE,MAAM,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,kBAAkB,EAAE,WAAW,CAAC;aAC5D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY;IACZ,uCAAuC;IAEvC,SAAS;QACL,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,WAAW,CAAC;aAC7D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,oBAAoB,GAAG,EAAE,EAAE,WAAW,CAAC;aACnE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,8BAA8B,EAAE,WAAW,CAAC;aACxE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,+BAA+B,GAAG,EAAE,EAAE,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,+BAA+B,GAAG,EAAE,EAAE,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;aACtE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,4BAA4B,EAAE,QAAQ,EAAE,WAAW,CAAC;aACjF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,iBAAyB;QAC7C,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,sCAAsC,EAAE,iBAAiB,EAAE,WAAW,CAAC;aACpG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,oCAAoC,EAAE,MAAM,EAAE,WAAW,CAAC;aACvF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,gBAAgB,GAAG,8BAA8B,EAAE,MAAM,EAAE,WAAW,CAAC;aACjF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,kCAAkC,EAAE,WAAW,CAAC;aAC1E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,uCAAuC,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,YAAY;IACZ,cAAc,CAAC,GAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,8BAA8B,EAAE,GAAG,CAAC,CAAC;IACxG,CAAC;IAED,cAAc,CAAC,GAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,0BAA0B,EAAE,GAAG,CAAC,CAAC;IACpG,CAAC;IAED,cAAc,CAAC,GAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,EAAE,GAAG,CAAC,CAAC;IACnG,CAAC;IAED,cAAc,CAAC,YAAoB,EAAE,YAAoB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,gBAAgB,GAAG,cAAc,YAAY,eAAe,EAAE,EAAC,MAAM,EAAE,EAAC,YAAY,EAAC,EAAC,CAAC,CAAC;IACvI,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,UAAoB;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,yBAAyB,EAAE,UAAU,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAC,EAAC,CAAC,CAAC;IAC/H,CAAC;IAED,iBAAiB,CAAC,GAAU;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,gCAAgC,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;IAED,iBAAiB,CAAC,GAAU;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACjG,CAAC;IAED,cAAc,CAAC,GAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,2BAA2B,EAAE,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,cAAc,CAAC,GAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,IAAI,CAAC,gBAAgB,GAAG,2BAA2B,EAAE,GAAG,CAAC,CAAC;IACrG,CAAC;;gFAtbQ,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBAFb,MAAM;;;;;;;;;;;;;;;;;;AClB6B;;AAK5C,MAAM,eAAe;IAI1B;QAHO,eAAU,GAAG,IAAI,iDAAe,CAAY,IAAI,CAAC,CAAC;QAClD,cAAS,GAAG,KAAK,CAAC;IAEV,CAAC;IAEhB,YAAY,CAAC,SAAoB;QAC/B,IAAG,CAAC,IAAI,CAAC,SAAS,EAAC;YACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACjC;IACH,CAAC;IAED,YAAY;QACV,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;;8EAfU,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;;;;;;;;;;;;;;;;;;;ACH6B;AACd;;AAK5B,MAAM,eAAe;IAGxB;QAFQ,gBAAW,GAAG,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QACtD,oBAAe,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;IAEtD,CAAC;IACD,aAAa,CAAC,KAAa;QACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,mDAAG,CAAC,EAAE,CAAC,EAAE;YACjD,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,CAAC;QACd,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;;8EAbQ,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFZ,MAAM;;;;;;;;;;;;;;;;;;ACJ6B;;AAK5C,MAAM,qBAAqB;IAGhC;QAFQ,qBAAgB,GAAG,IAAI,iDAAe,CAAe,EAAE,CAAC,CAAC;IAElD,CAAC;IAEhB,kBAAkB,CAAC,UAAwB;QACzC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;;0FAXU,qBAAqB;sHAArB,qBAAqB,WAArB,qBAAqB,mBAFpB,MAAM;;;;;;;;;;;;;;;;;;;;;;ACAU;AAEoB;AACO;AAEF;;;AAGvD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACvB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KACzD,CAAC;CACH,CAAC;AAKK,MAAM,cAAc;IAEzB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAClC,IAAI,CAAC,OAAO,GAAG,GAAG,8EAAwB,EAAE,CAAC;IAC/C,CAAC;IAED,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,qBAAqB,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IACD,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,qCAAqC,EAAE,WAAW,CAAC;aACtE,IAAI,EAAE,CAAC;IACZ,CAAC;IAGD,kBAAkB,CAAC,MAAU;QAC3B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,uCAAuC,EAAC,MAAM,EAAE,WAAW,CAAC;aAChF,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,EAAE;IACF,WAAW;QACT,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,oBAAoB,EAAE,WAAW,CAAC;aACrD,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,4BAA4B,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,4BAA4B,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,8BAA8B,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,0BAA0B;QACxB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,sCAAsC,EAAE,WAAW,CAAC;aACvE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAiB,IAAI,CAAC,OAAO,GAAG,8BAA8B,EAAE,WAAW,CAAC;aAC/E,IAAI,CAAC,2DAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAU;QACf,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,qBAAqB,EAAE,KAAK,EAAE,WAAW,CAAC;aAC9D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,KAAU;QACf,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,2BAA2B,EAAE,KAAK,EAAE,WAAW,CAAC;aACpE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,KAAU;QAChB,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,4BAA4B,EAAE,KAAK,EAAE,WAAW,CAAC;aACrE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,KAAwB;QAClC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;;4EA/EU,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBiC;AAIlB;AACiB;AAGH;AAGgD;;;;;;;;;AAU1F,MAAM,YAAY;IAkBrB,YACY,IAAgB,EAChB,MAAc,EACd,gBAAkC,EAClC,iBAAoC,EACpC,SAA4B,EAAU,qBAA4C,EAAU,KAAgB;QAJ5G,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,cAAS,GAAT,SAAS,CAAmB;QAAU,0BAAqB,GAArB,qBAAqB,CAAuB;QAAU,UAAK,GAAL,KAAK,CAAW;QAtBxH,cAAS,GAAG,IAAI,gEAAgB,EAAE,CAAC;QAInC,yBAAoB,GAAiB,EAAE,CAAC;QAOxC,UAAK,GAAG,CAAC,IAAI,iDAAe,CAAe,IAAI,CAAC,CAAC,CAAC;QAGlD,aAAQ,GAAG,aAAa,CAAC;QASrB,IAAI,CAAC,OAAO,GAAG,GAAG,8EAAwB,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,KAAU;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,KAAK,CAAC,CAAC,IAAI,CAC/D,mDAAG,CACC,CAAC,QAAa,EAAE,EAAE;YACd,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC9B,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,EAAE;gBACb,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC;gBACrC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnC,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;aACnF;QACL,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACN,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC9B,CAAC,CACJ,CACJ,CAAC;IACN,CAAC;IAED,aAAa;QACT,IAAI,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,IAAI,EAAE;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;SACnE;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB;QACf,IAAI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,IAAI,EAAE;YAClD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mBAAmB;QACf,IAAI,MAAM,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE;YACjE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC;SAC/D;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,QAAQ;QACJ,IAAI,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE;YACvC,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAChD;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,IAAkB,EAAE,eAAwB;QACvE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACF,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACnC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACrC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACpC,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACtC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvC,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,IAAI;QACf,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,wGAAmB,EAAE;YAClD,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;YAClB,IAAI,EAAE,EAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAC;YAC5B,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;;wEA1GQ,YAAY;6GAAZ,YAAY,WAAZ,YAAY,mBAFT,MAAM;;;;;;;;;;;;;;;;;;;;;;AClB2D;AACrC;AACK;AACI;;;AAErD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,kBAAkB;KACrC,CAAC;CACL,CAAC;AACF,MAAM,eAAe,GAAG;IACpB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACL,CAAC;AAKK,MAAM,mBAAmB;IAG5B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAChC,IAAI,CAAC,OAAO,GAAG,GAAG,8EAAwB,EAAE,CAAC;IACjD,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAM,IAAI,CAAC,OAAO,GAAG,wBAAwB,EAAE,WAAW,CAAC;aAC9D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,EAAE,qDAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAM,IAAI,CAAC,OAAO,GAAG,kCAAkC,EAAE,WAAW,CAAC;aACxE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,EAAE,qDAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,gCAAgC,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,EAAE,qDAAK,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,GAAG,yBAAyB,GAAG,EAAE,EAC7C,WAAW,CACd,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,KAAU;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAChD,KAAK,EACL,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,KAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,OAAO,GAAG,8CAA8C,EAC7D,KAAK,EACL,WAAW,CACd,CAAC;IACN,CAAC;IAED,qBAAqB,CAAC,KAAU;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,OAAO,GAAG,+CAA+C,EAC9D,KAAK,EACL,WAAW,CACd,CAAC;IACN,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,OAAO,GAAG,yCAAyC,EACxD,KAAK,EACL,WAAW,CACd,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,KAAU;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,yBAAyB,EAAE,KAAK,EAAE,eAAe,CAAC;aACtE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,2BAA2B,CAAC,KAAU;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,oDAAoD,EAAE,KAAK,EAAE,eAAe,CAAC;aACjG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,6BAA6B,CAAC,KAAU;QACpC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,sDAAsD,EAAE,KAAK,EAAE,eAAe,CAAC;aACnG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,gBAAgB,CAAC,KAAU;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,OAAO,GAAG,gCAAgC,EAC/C,KAAK,EACL,eAAe,CAClB;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,0BAA0B,EAAE,KAAK,EAAE,eAAe,CAAC;aACvE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,OAAO,GAAG,qCAAqC,EACpD,MAAM,EACN,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,OAAO,GAAG,yCAAyC,GAAG,KAAK,EAChE,IAAI,CACP,CAAC;IACV,CAAC;IAED,SAAS,CAAC,GAAQ;QACd,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,OAAO,GAAG,iCAAiC,EAChD,GAAG,CACN,CAAC;IACV,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;;sFAhIQ,mBAAmB;oHAAnB,mBAAmB,WAAnB,mBAAmB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;;;ACnBmD;;;;;AAsBlE,MAAM,mBAAmB;IAC9B,YACS,SAA4C,EACnB,IAAQ;QADjC,cAAS,GAAT,SAAS,CAAmC;QACnB,SAAI,GAAJ,IAAI,CAAI;IACvC,CAAC;;sFAJO,mBAAmB,uMAGpB,qEAAe;iHAHd,mBAAmB;QAjBnB,wEAAgC;QAAA,uDAAgB;QAAA,4DAAK;QAC9D,yEAAsC;QAAA,uDAAkB;QAAA,4DAAM;QAC9D,yEAAwB;QACxB,4EAIgC;QAAhC,2IAAS,oBAAgB,IAAI,CAAC,IAAC;QAAC,6DAAE;QAAA,4DAAS;QAC3C,mEACA;QAAA,qEAAoB;QACpB,4EAIiC;QAAjC,2IAAS,oBAAgB,KAAK,CAAC,IAAC;QAAC,kEAAM;QAAA,4DAAS;QAChD,4DAAM;;QAfmC,0DAAgB;QAAhB,+EAAgB;QACnB,0DAAkB;QAAlB,iFAAkB;;;;;;;;;;;;;;;;;;;;ACFE;;;AAQvD,MAAM,iBAAiB;IAE5B,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAI,CAAC;IAEnC,OAAO,CAAC,OAAoB,EAAE;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;QAC/C,IAAI,SAA4C,CAAC;QACjD,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uEAAmB,EAAE;YAChD,KAAK,EAAE,OAAO;YACd,YAAY,EAAE,IAAI;YAClB,IAAI,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAC;SACjD,CAAC,CAAC;QACH,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;;kFAdU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB;;;;;;;;;;;;;;;;;;;;;;ACJvB,MAAM,kBAAkB;IAG7B,YAAmB,SAA2C;QAA3C,cAAS,GAAT,SAAS,CAAkC;IAAG,CAAC;IAElE,QAAQ;IACR,CAAC;;oFANU,kBAAkB;gHAAlB,kBAAkB;QCR/B,yEAAyB;QACrB,wEAAuE;QAAA,uDAAW;QAAA,4DAAK;QACvF,yEAAwB;QACpB,yEAAmD;QACvD,4DAAM;QACV,4DAAM;;QAJqE,0DAAW;QAAX,0EAAW;QAEjE,0DAAuB;QAAvB,2EAAuB;;;;;;;;;;;;;;;;;;;;ACAgB;;;AAOrD,MAAM,gBAAgB;IAE3B,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAI,CAAC;IAEnC,IAAI,CAAC,QAAgB,aAAa,EAAE,SAAiB,EAAC,KAAK,EAAE,OAAO,EAAC;QAC1E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAC,CAAC,CAAC;QAC9G,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAEM,KAAK;QACV,IAAG,IAAI,CAAC,SAAS;YACf,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;;gFAdU,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB;;;;;;;;;;;;;;;;;;;ACVgC;AAER;;;AAGrD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,kBAAkB;KACrC,CAAC;CACL,CAAC;AAKK,MAAM,oBAAoB;IAG7B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAChC,IAAI,CAAC,OAAO,GAAG,GAAG,4EAAsB,EAAE,CAAC;IAC/C,CAAC;IAEL,UAAU;IACN,UAAU,CAAC,eAAuB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,OAAO,GAAG,SAAS,GAAG,eAAe,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,aAAa,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,WAAW,CAAC;aACzC,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;aACjD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,KAAU;QAExB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,0BAA0B,EAAE,KAAK,EAAE,WAAW,CAAC;aACnE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAAU;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC;aACxD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,kBAAkB,EAAE,QAAQ,EAAE,WAAW,CAAC;aAC9D,IAAI,EAAE,CAAC;IAChB,CAAC;;wFA9CQ,oBAAoB;qHAApB,oBAAoB,WAApB,oBAAoB,mBAFjB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACZ0D;AAC3B;AAEY;AACH;AAmBd;AAIb;;;;AAKnC,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,kBAAkB;KACrC,CAAC;CACL,CAAC;AAEK,MAAM,KAAK;;AACP,YAAM,GAAG,CAAC,CAAC;AACX,aAAO,GAAG,CAAC,CAAC;AACZ,eAAS,GAAG,CAAC,CAAC;AACd,YAAM,GAAG,CAAC,CAAC;AACX,eAAS,GAAG,CAAC,CAAC;AACd,gBAAU,GAAG,CAAC,CAAC;AACf,eAAS,GAAG,CAAC,CAAC;AACd,WAAK,GAAG,CAAC,CAAC;AACV,YAAM,GAAG,CAAC,CAAC;AACX,gBAAU,GAAG,EAAE,CAAC;AAMpB,MAAM,cAAc;IAKvB,YAAoB,IAAgB,EAAU,YAA0B;QAApD,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAFxE,eAAU,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAGxC,IAAI,CAAC,GAAG,GAAG,GAAG,4EAAsB,EAAE,CAAC;IAC3C,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,EAAE,WAAW,CAAC;aAC7C,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,qBAAqB,CAAC,QAAgB;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,mBAAmB,QAAQ,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,kBAAkB,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,yBAAyB,CAAC,MAAW;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,qCAAqC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7F,CAAC;IAED,oBAAoB,CAAC,eAAoB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,GAAG,eAAe,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IAC5G,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,+BAA+B,EAAE,MAAM,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,GAAG,EAAE,EAAE,WAAW,CAAC;aACnD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,eAAuB;QAChC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,GAAG,eAAe,EAAE,WAAW,CAAC;aAC3D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,eAAuB;QACtC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,mBAAmB,GAAG,eAAe,EAAE,WAAW,CAAC;aAClE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,6BAA6B,GAAG,UAAU,EACrD,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CACN,eAAuB,EACvB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,oBAAoB,GAAG,eAAe,GAAG,GAAG,GAAG,SAAS,EACnE,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CACb,eAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,GAAG,eAAe,EAAE,WAAW,CAAC;aAChE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CACZ,eAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,yBAAyB,GAAG,eAAe,EACtD,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,eAAuB,EAAE,SAAiB;QACpD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,eAAe,GAAG,GAAG,GAAG,SAAS,EAC5D,WAAW,CACd,CAAC;QACN,2BAA2B;IAC/B,CAAC;IAED,YAAY,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,WAAW,EAAE,WAAW,CAAC;aACxD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,WAAW,EAAE,WAAW,CAAC;aAChE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CACd,eAAuB,EACvB,WAAmB,EACnB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG;YACR,aAAa;YACb,eAAe;YACf,GAAG;YACH,WAAW;YACX,GAAG;YACH,SAAS,EACT,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,SAAiB;QACzC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAM,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,QAAQ,EACxD,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvC,WAAW,CAAC,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,KAAU;QACjB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;;YAC1F,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,GAAG,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED,YAAY,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,OAAO,EAAE,WAAW,CAAC;aACtD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC;aAClD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;IACjB,QAAQ,CAAC,eAAuB,EAAE,SAAiB;QAC/C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,eAAe,GAAG,GAAG,GAAG,SAAS,EAC5D,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAQ,IAAI,CAAC,GAAG,GAAG,oBAAoB,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,CAAC,MAAc,EAAE,SAAiB;QACrC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,SAAiB;QAC1C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,EAAE,WAAW,CAAC;aACrE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,KAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,UAAU,CAAC,MAAc,EAAE,KAAmB;QAC1C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC;aACpD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,MAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,CAAC;IAED,6CAA6C;IAC7C,yCAAyC;IACzC,+CAA+C;IAC/C,OAAO;IACP,+EAA+E;IAC/E,IAAI;IAEJ,WAAW,CAAC,KAAU;QAClB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,KAAK,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAC/B,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAC3C,CAAC;QACF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,aAAa,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,EAAE,EAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAC,EAAE,WAAW,CAAC,CAAC;IAC9H,CAAC;IAED,gBAAgB,CAAC,MAAM;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,IAAI,CAAC,GAAG,GAAG,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAC9F,CAAC;IAED,iBAAiB,CAAC,MAAM;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,IAAI,CAAC,GAAG,GAAG,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,oBAAoB,CAAC,SAAiB;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,SAAS,EAAE,WAAW,CAAC;aACtD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,2BAA2B,EAAE,KAAK,EAAE,WAAW,CAAC;aAChE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC;aACjD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,eAAuB;QACpC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,0BAA0B,GAAG,eAAe,EACvD,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,GAAG,UAAU,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,wBAAwB,CACpB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,iCAAiC,GAAG,UAAU,EACzD,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;IACf,eAAe,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,SAAS,EAAE,WAAW,CAAC;aACxD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,uBAAuB,CAAC,KAAU;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC;aACpD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAChB,YAAoB,EACpB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,YAAY,GAAG,GAAG,GAAG,SAAS,EAC3D,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,wBAAwB,CAAC,MAAW;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,GAAG,GAAG,uBAAuB,EAClC,MAAM,EACN,WAAW,CACd,CAAC;IACN,CAAC;IAED,mBAAmB;IACnB,iBAAiB,CAAC,QAAgB;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,QAAQ,EACpD,WAAW,CACd,CAAC;IACV,CAAC;IAED,2BAA2B;IAC3B,uBAAuB;IACvB,qDAAqD;IACrD,mCAAmC;IACnC,IAAI;IAEJ,cAAc,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC;aAC3D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,IAAI,CAAC,GAAG,GAAG,aAAa,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/F,CAAC;IAED,eAAe,CAAC,eAAuB,EAAE,IAAY,EAAE,YAAoB;QACvE,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG;YACR,SAAS;YACT,eAAe;YACf,GAAG;YACH,IAAI;YACJ,GAAG;YACH,YAAY,EACZ,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB;IACjB,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,kCAAkC,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,EAAE,EAAE,WAAW,CAAC;aAChE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC;aAC3D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,aAAkB;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,GAAG,GAAG,8BAA8B,EACzC,aAAa,EACb,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC;aACxD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,0BAA0B,EAAE,WAAW,CAAC;aACvD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,UAAU,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,IAAI,CAAC,GAAG,GAAG,kBAAkB,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,aAAa,CAAC,MAAW;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,GAAG,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,eAAe,CAAC,SAAc;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,GAAG,0BAA0B,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC9F,CAAC;IAED,YAAY;IACZ,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,GAAG,GAAG,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe;IACf,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,WAAW,CAAC;aACnD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,GAAG,GAAG,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,WAAW,CAAC;aAClD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,GAAG,OAAO,EAAE,WAAW,CAAC;aACrD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC;aACnD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,OAAO,EAAE,WAAW,CAAC;aAC7D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAgB,EAAE,SAAiB;QAC9C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,QAAQ,GAAG,GAAG,GAAG,SAAS,EACvD,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,qCAAqC,CACjC,QAAgB,EAChB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,GAAG;YACR,sCAAsC;YACtC,QAAQ;YACR,GAAG;YACH,UAAU,EACV,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB;IAEpB,iBAAiB,CAAC,OAAY;QAC1B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAEL,4FAA4F;IAExF,UAAU,CAAC,MAAW;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CAAC,QAAQ;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,WAAW,CAAC,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,QAAQ;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,kBAAkB,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,4FAA4F;IAGhG,+FAA+F;IAE3F,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,iCAAiC,CAAC,eAAuB;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,4BAA4B,GAAG,eAAe,CAAC,CAAC;IACpF,CAAC;IAED,0BAA0B,CAAC,MAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,gDAAgD,EAAE,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED,wBAAwB,CAAC,YAAY;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;IACnE,CAAC;IAED,mBAAmB,CAAC,MAAM;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,uBAAuB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,iBAAiB,CAAC,YAAY,EAAE,MAAM;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,GAAG,YAAY,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,mBAAmB,CAAC,YAAY;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC;IAClF,CAAC;IAED,oBAAoB,CAAC,eAAuB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,GAAG,eAAe,CAAC,CAAC;IACxF,CAAC;IAED,kBAAkB,CAAC,iBAAyB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,GAAG,iBAAiB,CAAC,CAAC;IACxF,CAAC;IAEL,6GAA6G;IAE7G,gHAAgH;IAE5G,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,CAAC,CAAC;IACpE,CAAC;IAGD,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED,uBAAuB,CAAC,eAAoB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,2BAA2B,GAAG,eAAe,CAAC,CAAC;IACnF,CAAC;IAED,yBAAyB,CAAC,MAAW;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,uBAAuB,CAAC,MAAW;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;IAED,gBAAgB,CAAC,SAAS;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,SAAS,CAAC,CAAC;IACvE,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,4BAA4B,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpE,CAAC;IAED,wBAAwB,CAAC,MAAa;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,8BAA8B,EAAE,MAAM,CAAC,CAAC;IAC7E,CAAC;IAED,kBAAkB,CAAC,iBAAyB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,2BAA2B,GAAG,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,yBAAyB,CAAC,6BAAqC;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,gCAAgC,GAAG,6BAA6B,EAAE,IAAI,CAAC,CAAC;IAC7G,CAAC;IAED,qBAAqB,CAAC,6BAAqC;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,4BAA4B,GAAG,6BAA6B,EAAE,IAAI,CAAC,CAAC;IACzG,CAAC;IAED,cAAc,CAAC,WAAmB,EAAE,KAAc;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,GAAG,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC;IAC3F,CAAC;IAED,SAAS,CAAC,eAAuB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,GAAG,eAAe,CAAC,CAAC;IAC5E,CAAC;IAED,8EAA8E;IAE9E,SAAS,CAAC,MAAW;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,CAAC,OAAY;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,sBAAsB,CAAC,OAAY;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,mBAAmB,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,MAAc;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,GAAG,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,aAAa,CAAC,UAAkB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,GAAG,UAAU,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,WAAmB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,sGAAsG;IAEtG,gBAAgB,CAAC,eAAuB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,+BAA+B,GAAG,eAAe,CAAC,CAAC;IACvF,CAAC;IAED,cAAc,CAAC,aAAqB;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,GAAG,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,kBAAkB,CAAC,aAAqB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,iCAAiC,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC;IAC9F,CAAC;IAED,8EAA8E;IAE9E,SAAS,CAAC,SAAiB,EAAE,eAAuB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,eAAe,CAAC,CAAC;IACnF,CAAC;IAED,QAAQ,CAAC,gBAAwB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,YAAY,CAAC,gBAAwB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,gBAAgB,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAED,iFAAiF;IAEjF,YAAY,CAAC,qBAA6B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,GAAG,qBAAqB,CAAC,CAAC;IACpF,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,sBAAsB,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,mCAAmC,CAAC,CAAC;IACzE,CAAC;IAGD,oBAAoB,CAAC,qBAA6B;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,0BAA0B,GAAG,qBAAqB,CAAC,CAAC;IACxF,CAAC;IAED,uBAAuB,CAAC,MAAW;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAGD,kFAAkF;IAClF,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;YACvE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,GAAG,IAAI,CAAC,GAAG,0BAA0B,CAAC,CAAC;IACzF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;YACtE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,WAAW,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,iBAAiB,CAAC,OAAY;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,aAAa,CAAC,gBAAwB,CAAC;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACvF,EAAC,MAAM,EAAE,EAAC,aAAa,EAAC,EAAC,CAAC;aACzB,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,oBAAoB,CAAC,QAAgB,CAAC,EAAE,OAAe,EAAE;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAC/F,EAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,EAAC,CAAC;aACvB,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,4BAA4B,CAAC,QAAgB,CAAC,EAAE,OAAe,GAAG;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,yBAAyB,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACpG,EAAC,MAAM,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,EAAC,CAAC,CAAC;IACjC,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,qBAAqB,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,eAAe,CAAC,OAAO;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,aAAa,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;YACtF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,qBAAqB,CAAC,SAAiB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,GAAG,aAAa,SAAS,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,+BAA+B,CAAC,EAAU,EAAE,WAAmB;QAC3D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,GAAG,IAAI,CAAC,GAAG,cAAc,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;IACxG,CAAC;IAED,sBAAsB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,aAAa,CAAC,CAAC;IACvE,CAAC;IAED,uBAAuB,CAAC,KAAK,EAAE,UAAyB;QACpD,IAAI,CAAC,UAAU,EAAE;YACb,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,QAAQ,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,gBAAgB,EAAE;YAC7B,KAAK,KAAK,CAAC,MAAM;gBACb,MAAM;YACV,KAAK,KAAK,CAAC,OAAO;gBACd,CAAC,GAAG,+DAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;YACV,KAAK,KAAK,CAAC,SAAS;gBAChB,CAAC,GAAG,+DAAY,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACxB,MAAM;YACV,KAAK,KAAK,CAAC,MAAM;gBACb,CAAC,GAAG,+DAAY,CAAC,iEAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxC,MAAM;YACV,KAAK,KAAK,CAAC,SAAS;gBAChB,CAAC,GAAG,+DAAY,CAAC,iEAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM;YACV,KAAK,KAAK,CAAC,UAAU;gBACjB,CAAC,GAAG,+DAAY,CAAC,iEAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM;YACV,KAAK,KAAK,CAAC,SAAS;gBAChB,CAAC,GAAG,+DAAY,CAAC,iEAAc,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM;YACV,KAAK,KAAK,CAAC,KAAK;gBACZ,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC,GAAG,+DAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACV,KAAK,KAAK,CAAC,MAAM;gBACb,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC,GAAG,+DAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACV,KAAK,KAAK,CAAC,UAAU;gBACjB,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;gBACnC,CAAC,GAAG,+DAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACxB,MAAM;YACV;gBACI,OAAO,IAAI,CAAC;SACnB;QACD,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO,CAAC,CAAC;IACb,CAAC;IAED,cAAc,CAAC,KAAU,EAAE,OAAO;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,CAAC;SACb;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;YACtB,qBAAC,OAAC,CAAC,UAAU,mCAAI,CAAC,CAAC,MAAM,CAAC,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACxE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAAA,CACzE,CAAC;IACN,CAAC;IAED,eAAe,CAAC,KAAU,EAAE,QAAQ;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,CAAC;SACb;QAED,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;YACvB,qBAAC,CAAC,UAAU,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC1D,aAAC,CAAC,aAAa,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAAA,CAChE,CAAC;IACN,CAAC;IAED,uBAAuB,CAAC,SAAiB,EAAE,QAAgB,EAAE,cAAsB,CAAC;QAChF,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,oBAAoB,QAAQ,EAAE,EAAE;YAC5D,MAAM,EAAE,EAAC,WAAW,EAAE,SAAS,EAAC;SACnC,CAAC,CAAC;IACP,CAAC;IAED,6EAA6E;IAE7E,SAAS,CAAC,eAAuB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,eAAe,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;IACjE,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED,YAAY,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAGD,mFAAmF;IAEnF,eAAe,CAAC,eAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,qBAAqB,GAAG,eAAe,CAAC,CAAC;IAC7E,CAAC;IAED,mBAAmB,CAAC,aAAqB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,eAAe,GAAG,aAAa,CAAC,CAAC;IACrE,CAAC;IAED,kBAAkB,CAAC,MAAW;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,kBAAkB,CAAC,aAAqB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,uBAAuB,GAAG,aAAa,EAAE,IAAI,CAAC,CAAC;IACpF,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,2FAA2F;IAE3F,mBAAmB,CAAC,eAAuB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAyB,GAAG,eAAe,CAAC,CAAC;IACjF,CAAC;IAED,kBAAkB,CAAC,iBAAyB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,2BAA2B,GAAG,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,qBAAqB,CAAC,MAAW;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC;IAED,sBAAsB,CAAC,iBAAyB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,2BAA2B,GAAG,iBAAiB,EAAE,IAAI,CAAC,CAAC;IAC5F,CAAC;IAED,2FAA2F;IAE3F,QAAQ,CAAC,iBAAyB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,cAAc,GAAG,iBAAiB,CAAC,CAAC;IACxE,CAAC;IAED,OAAO,CAAC,qBAA6B;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,gBAAgB,GAAG,qBAAqB,CAAC,CAAC;IAC9E,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,WAAW,CAAC,qBAA6B;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,GAAG,qBAAqB,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,CAAC,SAAiB,EAAE,OAAc;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,GAAG,WAAW,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,mBAAmB,CAAC,gBAAkC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;IAED,2EAA2E;IAC3E,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,GAAG,IAAI,CAAC,GAAG,4BAA4B,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;;YACpG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,EAAE,EAAuB,CAAC,CAAC,CAAC;gBACtG,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,GAAG,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,GAAG,CAAC,EAAE;;YACrG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,KAAK,EAAgC,CAAC,CAAC,CAAC;gBAClH,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,mBAAmB,CAAC,OAAwB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC/F,CAAC;IAED,kBAAkB,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,GAAG,IAAI,CAAC,GAAG,sBAAsB,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,kBAAkB,CAAC,OAAwB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,GAAG,sBAAsB,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC7G,CAAC;IAED,QAAQ,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,QAAQ,CAAC,OAAY;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,oBAAoB,OAAO,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACpG,CAAC;IAED,qBAAqB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,GAAG,sBAAsB,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,YAAY,CAAC;aACzD,IAAI,CAAC,mDAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,MAAM,CAAC;aAC1E,IAAI,CAAC,mDAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;IACvE,CAAC;IAED,aAAa,CAAC,UAAe;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,UAAU,UAAU,CAAC,QAAQ,aAAa,EAAE,UAAU,CAAC,CAAC;IAC5G,CAAC;IAED,kBAAkB,CAAC,EAAU,EAAE,YAAoB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,qBAAqB,EAAE,YAAY,CAAC,CAAC;IACtF,CAAC;IAED,WAAW,CAAC,QAAa;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,eAAe,QAAQ,CAAC,YAAY,YAAY,EAAE,QAAQ,CAAC,CAAC;IAChH,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,YAAY,CAAC,GAAQ;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,2BAA2B,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;IAClF,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,GAAG,6BAA6B,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,mCAAmC,EAAE,EAAE,CAAC,CAAC;IAC7F,CAAC;IAED,SAAS,CAAC,eAAuB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,GAAG,kBAAkB,eAAe,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,cAAc,CAAC,GAAkD;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,sBAAsB,kCAAM,GAAG,KAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAE,CAAC;IAC7I,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAC7E,CAAC;IAED,WAAW,CAAC,GAAQ;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,QAAQ,YAAY,EAAE,GAAG,CAAC,CAAC;IAC9F,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,UAAkB;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,WAAW,QAAQ,oBAAoB,EAAE,UAAU,CAAC,CAAC;IAC1F,CAAC;IAED,sBAAsB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,WAAW,QAAQ,YAAY,CAAC,CAAC;IACtF,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,WAAW,KAAK,CAAC,QAAQ,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACzG,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,gCAAgC,CAAC,CAAC;IACvF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,yBAAyB,CAAC,CAAC;IAChF,CAAC;IAED,YAAY,CAAC,QAAgB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,GAAG,WAAW,QAAQ,mBAAmB,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW,CAAC,GAAQ;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,sBAAsB,kCACjE,GAAG,KACN,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,IACrD,CAAC;IACP,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,WAAW,QAAQ,SAAS,CAAC,CAAC;IACnF,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,2BAA2B,CAAC,CAAC;IAClF,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,WAAW,CAAC,GAAQ;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,yBAAyB,EAAE,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,mBAAmB,CAAC,GAAQ;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,yBAAyB,EAAE,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,GAAG,IAAI,CAAC,GAAG,6BAA6B,CAAC,CAAC;IACtF,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,GAAG,gCAAgC,EAAE,EAAC,MAAM,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC,CAAC;IACrG,CAAC;IAED,SAAS,CAAC,eAAuB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,GAAG,kBAAkB,eAAe,SAAS,CAAC,CAAC;IAC3F,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,SAAS,CAAC,GAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,GAAG,IAAI,CAAC,GAAG,iBAAiB,CAAC,CAAC;IACjF,CAAC;IAED,gBAAgB,CAAC,GAAQ;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,oBAAoB,EAAE,GAAG,CAAC,CAAC;IAC/E,CAAC;IAED,oBAAoB,CAAC,GAAQ;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAChF,CAAC;IAED,kBAAkB,CAAC,GAAQ;;QACvB,GAAG,CAAC,YAAY,GAAG,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,GAAG,IAAI,CAAC,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;;4EA5rCQ,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFX,MAAM;;;;;;;;;;;;;;;;;;;;;;ACjDf,MAAM,SAAS;IAIpB,YAAoB,MAAc,EAAU,YAA0B;QAAlD,WAAM,GAAN,MAAM,CAAQ;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAF9D,oBAAe,GAAG,IAAI,CAAC;IAE0C,CAAC;IAC1E,WAAW,CAAE,IAA4B,EAAE,KAA0B;QACnE,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;YAChC,OAAO,IAAI,CAAC;SACb;aAAM;YACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;SACZ;IAEH,CAAC;;kEAbU,SAAS;0GAAT,SAAS,WAAT,SAAS,mBADK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;ACAuB;AAED;;;;;AAGvD,sDAAsD;AACtD,MAAM,UAAU,GACd,kPAAkP,CAAC;AAErP,MAAM,SAAS,GAAS;IACtB,EAAE,EAAE,0BAA0B;IAC9B,WAAW,EAAE,cAAc;IAC3B,IAAI,EAAE,IAAI;CACX,CAAC;AACF,gEAAgE;AAKzD,MAAM,cAAc;IAYzB,YACU,EAAqB,EACrB,IAAgB,EAChB,MAAc,EACd,KAAqB;QAHrB,OAAE,GAAF,EAAE,CAAmB;QACrB,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QAb/B,SAAI,GAAS,EAAE,CAAC;QAChB,UAAK,GAAG,CAAC,IAAI,iDAAe,CAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,gBAAW,GAAG,CAAC,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC,CAAC;QACpD,8BAAyB,GAAG,CAAC,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC,CAAC;QAGlE,cAAS,GAAG,WAAW,CAAC;QACxB,aAAQ,GAAG,YAAY,CAAC;QAQtB,IAAI,CAAC,KAAK,CAAC,WAAW;aACnB,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;IAChE,CAAC;IAEM,MAAM,CAAC,QAAQ,EAAE,QAAQ;QAC9B,OAAO,wCAAE,CAAC,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;aAC5C,IAAI,CACH,qDAAK,CAAC,IAAI,CAAC,EACX,mDAAG,CAAC,CAAC,GAAQ,EAAE,EAAE;YACf,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,EACF,0DAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CACH,CAAC;QAEJ,gDAAgD;QAEhD,yBAAyB;QACzB,oFAAoF;QACpF,WAAW;QACX,0BAA0B;QAC1B,0DAA0D;QAC1D,gCAAgC;QAChC,oBAAoB;QACpB,UAAU;QACV,8BAA8B;QAC9B,kCAAkC;QAClC,SAAS;QACT,OAAO;IACT,CAAC;IAED;;;MAGE;IACK,iBAAiB;QACtB,OAAO,wCAAE,CAAC,SAAS,CAAC;aACjB,IAAI,CACH,mDAAG,CAAC,CAAC,OAAa,EAAE,EAAE;YACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,EACF,0DAAU,CAAC,CAAC,KAAK,EAAE,EAAE;YACnB,OAAO,wCAAE,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;QAEJ;;;;UAIE;QAEF,kEAAkE;QAClE,WAAW;QACX,+BAA+B;QAC/B,iEAAiE;QACjE,wBAAwB;QACxB,UAAU;QACV,8BAA8B;QAC9B,wBAAwB;QACxB,0BAA0B;QAC1B,SAAS;QACT,OAAO;IACT,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,YAAY,CAAC,UAAU,CAAC,uCAAuC,CAAC,CAAC;QACjE,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC;IAED,UAAU;QACR,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IACD,OAAO;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,eAAe,CAAC,KAAa,EAAE,IAAU,EAAE,eAAwB;QACjE,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvC,CAAC;;4EAjHU,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;;ACpBsB;AAEuC;AACrC;AAGS;;;AAMrD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACL,CAAC;AAKK,MAAM,qBAAqB;IAI9B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAChC,IAAI,CAAC,OAAO,GAAG,GAAG,8EAAwB,EAAE,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,EAAE,CAAC;IAEvD,CAAC;IAED,YAAY;QACR,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAc,IAAI,CAAC,cAAc,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC;QACtE,wDAAwD;IAC5D,CAAC;IAED,WAAW,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED,0BAA0B,CACtB,eAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,oCAAoC;YACpC,eAAe,EAAE,WAAW,CAC/B;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,EAAE,WAAW,CAAC;aACpD,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAGD,UAAU,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,UAAU,EAAE,WAAW,CAAC;aACxE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAE,WAAW,CAAC;aAC1D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,mCAAmC,GAAG,EAAE,EAAE,WAAW,CAAC;aAChF,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC7B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,GAAG,QAAQ,EAAE,WAAW,CAAC;aAC7E,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,QAAgB,EAAE,UAAkB;QACjD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,QAAQ,GAAG,GAAG,GAAG,UAAU,EACvE,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CAAC,MAAW;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,iCAAiC,EAAE,MAAM,EAAE,WAAW,CAAC;aAClF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mCAAmC,EAAE,MAAM,EAAE,WAAW,CAAC;aACpF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;aACpE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,QAAa;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,GAAG,QAAQ,EAAE,WAAW,CAAC;aAClF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,yBAAyB,GAAG,UAAU,EAAE,WAAW,CAAC;aAC9E,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,cAAc,CAAC,MAAc;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,GAAG,MAAM,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,qBAAqB;IAErB,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAAE,MAAM,EAAE,WAAW,CAAC;aAC7E,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,kCAAkC,EACxD,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,oCAAoC,EAC1D,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,oCAAoC,EAC1D,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,UAAkB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,qCAAqC,GAAG,UAAU,EACxE,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAAE,WAAW,CAAC;aACpE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CACZ,MAAc,EACd,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,4BAA4B,GAAG,MAAM,GAAG,GAAG,GAAG,UAAU,EAC9E,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,0BAA0B,CACtB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,qCAAqC,GAAG,UAAU,EACxE,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAGD,gBAAgB,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,iCAAiC,GAAG,UAAU,EAAE,WAAW,CAAC;aAClG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,UAAkB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,UAAU,EAAE,WAAW,CAAC;aACpF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mCAAmC,CAAC,MAAW;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,yBAAyB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAChG,CAAC;IAED,6BAA6B,CAAC,MAAW;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAGD,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,GAAG,EAAE,EAAE,WAAW,CAAC;aACrE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,UAAkB;QAChC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,GAAG,UAAU,EAAE,WAAW,CAAC;aAC/E,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,GAAG,EAAE,EAAE,WAAW,CAAC;aACvE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,CAAC,UAAkB,EAAE,MAAc;QACxC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,UAAU,GAAG,GAAG,GAAG,MAAM,EAAE,WAAW,CAAC,CAAC;IACjG,CAAC;IAED,iBAAiB,CAAC,UAAmB,EAAE,MAAe,EAAE,WAAiB;QACrE,yHAAyH;QACzH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE;YAClE,UAAU;YACV,MAAM;YACN,WAAW;SACd,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;IAGD,aAAa,CACT,UAAkB,EAClB,MAAc;QAEd,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,8BAA8B;YAC9B,UAAU;YACV,GAAG;YACH,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;IACR,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC;aACnE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,aAAa,CAAC,MAAW;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,EAAE,MAAM,EAAE,WAAW,CAAC;aAC5E,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,uBAAuB,EAAE,KAAK,EAAE,WAAW,CAAC;aACvE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,uBAAuB,EAAE,KAAK,EAAE,WAAW,CAAC;aACvE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,KAAU;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,gCAAgC,EACtD,KAAK,EACL,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,KAAU;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,kBAAkB,IAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,EAAE,IAAG,YAAY,EAAE,KAAK,EAAE,WAAW,CAC1F;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,kBAAkB;IAClB,kBAAkB,CAAC,eAAuB,EAAE,MAAe;QACvD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,GAAG,eAAe,GAAG,GAAG,GAAG,MAAM,EAAE,WAAW,CAAC;aACpG,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,2BAA2B;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,qCAAqC,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;IAED,iBAAiB;IACjB,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;YACZ,uEAAuE;aACtE,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,EAAE,WAAW,CAAC;aACpD,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,IAAI;YACZ,uEAAuE;aACtE,MAAM,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,UAAU,EAAE,WAAW,CAAC;aACpE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,yBAAyB,CAAC,UAAkB;QACxC,OAAO,IAAI,CAAC,IAAI;YACZ,qFAAqF;aACpF,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,UAAU,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI;YACZ,sFAAsF;aACrF,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;aAC5D,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,YAAY;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,cAAc,sBAAsB,CAAC,CAAC;IACxF,CAAC;IAED,iBAAiB,CAAC,GAAqB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,GAAG,IAAI,CAAC,cAAc,4BAA4B,EAAE,GAAG,CAAC,CAAC;IAC/G,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,GAAG,IAAI,CAAC,cAAc,oCAAoC,EAAE,EAAE,CAAC,CAAC;IACtH,CAAC;IAED,cAAc,CAAC,EAAU,EAAE,SAAiB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,GAAG,IAAI,CAAC,cAAc,sBAAsB,SAAS,sBAAsB,EAAE,EAAE,CAAC,CAAC;IACvI,CAAC;IAED,UAAU;IAEV,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE,WAAW,CAAC;aAChE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC;aACnE,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,aAAa,CAAC,KAAU;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,+BAA+B,EAAE,KAAK,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,iBAAiB,EAAE,KAAK,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAGD,cAAc,CAAC,SAAiB;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,GAAG,IAAI,CAAC,cAAc,WAAW,SAAS,YAAY,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtG,CAAC;IAED,UAAU,CAAC,KAAU;QACjB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,EAAE,KAAK,EAAE,WAAW,CAAC;aAChE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,GAAG,EAAE,EAAE,WAAW,CAAC;aACxE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,EAAU,EAAE,SAAiB;QACnC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,EAAE,GAAG,GAAG,GAAG,SAAS,EAChE,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,SAAc;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,GAAC,SAAS,EAAE,EAAE,EAAE,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IAChB,CAAC;;0FA7aQ,qBAAqB;sHAArB,qBAAqB,WAArB,qBAAqB,mBAFlB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;ACnB0D;AACtC;AACuB;AACZ;;;;AAOrD;;;;;;EAME;AACF,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,kBAAkB;KACrC,CAAC;CACL,CAAC;AAKK,MAAM,eAAe;IAIxB,YAAoB,IAAgB,EAAU,YAA0B;QAApD,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAFxE,6BAAwB,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;QAG3D,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,EAAE,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,MAAW;QACd,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC;aAC5D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAAE,MAAM,EAAE,WAAW,CAAC;aACtE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB;QACd,wDAAwD;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,CAAC;IACnE,CAAC;IAED,UAAU,CAAC,MAAW;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAC3C,MAAM,EACN,WAAW,CACd,CAAC;IACN,CAAC;IAED,OAAO,CAAC,UAAkB,EAAE,SAAiB;;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAG,UAAU,GAAG,GAAG,GAAG,SAAS,EAC1F,IAAI,EACJ;YACI,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,MAAM,EAAE,EAAC,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,EAAC;SAChF,CAAC,CAAC;IACX,CAAC;IAED,aAAa,CAAC,MAAa;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE,MAAM,EAAE,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC1B,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,oBAAoB,CAAC,KAAU;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED,cAAc,CAAC,KAAU;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,gBAAgB,CAAC,MAAW;;QACxB,MAAM,CAAC,YAAY,GAAG,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC;aACrE,IAAI,CAAC,0DAAU,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAwB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACrH,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,yBAAyB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAC1C,WAAW,CACd,CAAC;IACN,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAC1C,WAAW,CACd,CAAC;IACN,CAAC;IAED,4BAA4B;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,6BAA6B,EACnD,WAAW,CACd,CAAC;IACN,CAAC;IAED,UAAU,CAAC,SAAiB;;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,SAAS,EAAE;YAChE,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,MAAM,EAAE,EAAC,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,EAAC;SAChF,CAAC,CAAC;IACP,CAAC;IAED,yBAAyB,CAAC,SAAiB;QACvC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,SAAS,EAAE,WAAW,CAAC;aAC/D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,SAAiB;;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,qBAAqB,GAAG,SAAS,EACxE;YACI,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,MAAM,EAAE,EAAC,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,EAAC;SAChF,CAAC,CAAC;IACX,CAAC;IAED,wBAAwB,CAAC,UAAkB;QACvC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,yBAAyB,GAAG,UAAU,EAC5D,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,+BAA+B,GAAG,MAAM,EAC9D,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,gBAAgB,CAAC,UAAkB;QAC/B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,gCAAgC,GAAG,UAAU,EACnE,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,0BAA0B,CAAC,UAAkB;QACzC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,oCAAoC,GAAG,UAAU,EACvE,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,+BAA+B;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,mCAAmC,EACzD,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,+BAA+B,EACrD,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB;IACtB,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,6BAA6B,EACnD,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,oBAAoB,CAAC,UAAkB;QACnC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,6BAA6B,GAAG,UAAU,EAChE,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,MAAW;QAC/B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,qCAAqC,EAC3D,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CACX,aAAqB;QAErB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,8BAA8B;YAC9B,aAAa,EACb,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CACf,iBAAyB,EACzB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,6BAA6B;YAC7B,iBAAiB;YACjB,GAAG;YACH,UAAU,EACV,WAAW,CACd;aACA,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,sBAAsB,CAAC,UAAgB,EAAE,OAAa;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,gCAAgC,GAAG,UAAU,EACnE,WAAW,CACd,CAAC;QACF,mHAAmH;IACvH,CAAC;IAED,2BAA2B;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,qCAAqC,EAC3D,WAAW,CACd,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,aAAa;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,wCAAwC,EAC9D,aAAa,EACb,WAAW,CACd,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAM;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,iCAAiC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACxG,CAAC;IAED,sBAAsB,CAAC,OAAe;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,iCAAiC,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IACzG,CAAC;IAED,uBAAuB,CAAC,gBAAwB;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,qCAAqC,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACtH,CAAC;IAED,iBAAiB,CAAC,UAAkB,EAAE,gBAAwB;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,0CAA0C,GAAG,UAAU,GAAG,GAAG,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC9I,CAAC;IAED,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAClD,MAAM,CACT,CAAC;IACN,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,oBAAoB;IAEpB,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,cAAc,gBAAgB,CAAC,CAAC;IAClF,CAAC;IAED,SAAS,CAAC,GAAQ;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,cAAc,cAAc,EAAE,GAAG,CAAC,CAAC;IACtF,CAAC;;8EApSQ,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFZ,MAAM;;;;;;;;;;;;;;;;;;;;;ACrBoD;AAC9B;AACW;;;AAKhD,MAAM,eAAe;IAS1B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QARpC,kBAAa,GAAG,IAAI,yCAAO,EAAc,CAAC;QAO1C,YAAO,GAAG,GAAG,wEAAkB,EAAE,CAAC;IACK,CAAC;IAHxC,gBAAgB,CAAC,GAAe,IAAG,CAAC;IAKpC,iBAAiB;QACf,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACnD;YACH,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;;gBACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBAErB,IAAI,CAAC,aAAa,GAAG,WAAK,CAAC,OAAO,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC;gBACnE,IAAI,CAAC,aAAa,GAAG,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;gBACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,gCAAgC,GAAG,SAAS,EAAE,IAAI,CAAC;aACvE,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,uBAAuB,GAAG,SAAS,EAAE,IAAI,CAAC;aAC9D,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,MAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,CAAC;aACvC,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC;aACpC,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;aAC1C,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,sBAAsB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,sBAAsB,CAAC;aAC1C,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,WAAW;QACT,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC;aACrC,IAAI,CAAC,0DAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAC5B,CAAC;;8EAvEU,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;;;;;;;;;;;;;;;;;;;;;;ACFb,MAAM,iBAAiB;IAmE5B,YACU,MAAc,EACd,MAAqB;QADrB,WAAM,GAAN,MAAM,CAAQ;QACd,WAAM,GAAN,MAAM,CAAe;QAlE/B,WAAM,GAAG;YACP;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;aACd;YAED;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK;aACd;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,KAAK;aACd;SACF,CAAC;QAUA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED,gBAAgB;QACd,IAAI,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;YAC3D,yBAAW,CAAC,EAAE;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1D,yBAAW,CAAC,EAAE;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,eAAe;QACb,IAAI,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/H,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAChC,OAAO,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC;aACD,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1D,yBAAW,CAAC,EAAE;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,kBAAkB,CAAC,KAAK;QACtB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC/C,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IAC7C,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,SAAS;QACvB,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YACd,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;SAChC;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;aACnC;SACF;IACH,CAAC;IACD,QAAQ,CAAC,EAAE,EAAE,SAAS;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE;YACd,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;SAC7B;aAAM;YACL,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;aAChC;SACF;IACH,CAAC;IACD,WAAW,CAAC,EAAE,EAAE,SAAS;QACvB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,OAAO,EAAE,EAAE;YACT,IAAI,MAAM,GAAG,EAAE,CAAC,aAAa,CAAC;YAC9B,IAAI,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE;gBAC9C,OAAO,MAAM,CAAC;aACf;YACD,EAAE,GAAG,MAAM,CAAC;SACb;IACH,CAAC;IACD,QAAQ,CAAC,EAAE,EAAE,SAAS;QACpB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,OAAO,CACL,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IACD,WAAW,CAAC,EAAE,EAAE,SAAS;QACvB,IAAI,CAAC,EAAE;YAAE,OAAO;QAChB,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC9B;IACH,CAAC;;kFAxKU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;;;ACFU;AACyB;AACtB;;;AAGjC,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACvB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,iCAAiC;KAClD,CAAC;CACH,CAAC;AAKK,MAAM,gBAAgB;IAK3B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAClC,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,YAAY,CAAC;QAC7D,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,YAAY,CAAC;IAC/D,CAAC;IAED,qBAAqB,CAAC,UAAc;QAClC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAAC,UAAU,EAAC,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,sBAAsB,CAAC,UAAc;QACnC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAC,UAAU,EAAC,WAAW,CAAC;aAC3E,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,0BAA0B,CAAC,UAAc;QACvC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,EAAC,UAAU,EAAC,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,2BAA2B,CAAC,UAAc;QACxC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,EAAC,UAAU,EAAC,WAAW,CAAC;aAChF,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,sBAAsB,CAAC,UAAc;QACnC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,uBAAuB,EAAC,UAAU,EAAC,WAAW,CAAC;aAC1E,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,uBAAuB,CAAC,UAAc;QACpC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,yBAAyB,EAAC,UAAU,EAAC,WAAW,CAAC;aAC5E,IAAI,EAAE,CAAC;IACZ,CAAC;IACD,uBAAuB,CAAC,QAAY;QAClC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAC,QAAQ,EAAC,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,wBAAwB,CAAC,QAAY;QACnC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAAC,QAAQ,EAAC,WAAW,CAAC;aAC3E,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,aAAa,EAAC,WAAW,CAAC;aACpD,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAC,WAAW,CAAC;aACrD,IAAI,EAAE,CAAC;IACZ,CAAC;;gFAlEU,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;;;;;;;;;;;;;;;;;;ACXb,MAAM,mBAAmB;IAO5B;QACI,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACxB,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAGM,UAAU,CAAC,MAAqB,EAAE,GAAkB;QACvD,IAAI,CAAC,OAAO,GAAG;YACX,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG;SACX,CAAC;IACN,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,SAAS,CAAC,MAAe;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,YAAY,CAAC,SAAiB;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,CAAC;IAEM,uBAAuB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAEM,uBAAuB,CAAC,oBAA6B;QACxD,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACrD,CAAC;IAGM,eAAe,CAAC,MAAW;QAC9B,IAAI,QAAQ,GAAW,MAAM,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,CACD,CAAC,QAAQ,IAAI,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC;eAC/B,QAAQ,KAAK,EAAE;eACf,QAAQ,KAAK,EAAE,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;YACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;SACpC;aAAM;YACH,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;SAErC;IACL,CAAC;IAED,8BAA8B;IACvB,WAAW,CAAC,MAAW,EAAE,WAAwB,EAAE,OAAe;QACrE,IAAI,QAAQ,GAAW,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3C,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAE3B,IAAI,MAAM,GAAQ,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACxC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,MAAM,GAAG,MAAM,CAAC,sCAAsC;YACtD,mCAAmC,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAEvB,IAAI,IAAI,GAAW,QAAQ,CAAC;YAE5B,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtE,IAAI,eAAe,GAAY,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;YAEzI,IAAI,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAC3D,IAAI,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAE3D,IAAI,eAAe,IAAI,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC;mBAC1D,CAAC,CAAC,YAAY,IAAI,IAAI;uBAClB,YAAY,IAAI,IAAI,CAAC,CAAC;mBAC1B,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC;mBAC1C,CAAC,CAAC,YAAY,IAAI,EAAE,IAAI,YAAY,IAAI,EAAE,CAAC,CAAC,EACjD;gBAEE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;iBAAM;gBAEH,WAAW,CAAC,SAAS,CAAC;oBAClB,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI;iBACpD,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;SAEJ;aAAM,IAAI,QAAQ,KAAK,EAAE,EAAE;YACxB,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC/B;aAAM;YACH,WAAW,CAAC,SAAS,CAAC;gBAClB,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI;aACpD,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;QAED,WAAW,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAChD,CAAC;IAEM,gBAAgB,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY,EAAE,IAAY;QACtG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;eAC3F,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;IAC1B,CAAC;IAED,0BAA0B;IACnB,MAAM,CAAC,GAAW,EAAE,GAAY;QAEnC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;eAC1D,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;SACb;aAAM,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,EAAE,EAAE;YAC1D,OAAO,EAAE,CAAC;SACb;aAAM,IAAI,GAAG,KAAK,CAAC,EAAE;YAElB,wBAAwB;YACxB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE;gBACtB,OAAO,EAAE,CAAC;aACb;YAED,OAAO,EAAE,CAAC;SACb;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,sBAAsB,CAAC,IAAc;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,6BAA6B,CAAC,IAAc;QAC/C,IAAI,CAAC;QACL,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,+BAA+B,CAAC,IAAc;QACjD,IAAI,CAAC;QACL,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAEM,kCAAkC,CAAC,IAAc;QACpD,IAAI,CAAC;QACL,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAGM,YAAY,CAAC,MAAW,EAAE,WAAwB,EAAE,OAAe;QACtE,IAAI,QAAQ,GAAW,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;QAE3C,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAE3B,IAAI,MAAM,GAAQ,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACtC;aAAM;YACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;SACxC;QAED,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;QAElC,IAAI,MAAM,GAAG,MAAM,CAAC,sDAAsD,CAAC,CAAC;QAC5E,uEAAuE;QAEvE,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAEvB,IAAI,IAAI,GAAW,QAAQ,CAAC;YAE5B,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,IAAI,YAAY,GAAW,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAExD,IAAI,IAAI,GAAW,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;YAE3D,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;mBAChB,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC;mBACxB,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;mBACrB,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,EAC3B;gBAEE,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACtB;iBAAM;gBAEH,WAAW,CAAC,SAAS,CAAC;oBAClB,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI;iBACzC,CAAC,CAAC;gBAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;SAEJ;aAAM;YACH,WAAW,CAAC,SAAS,CAAC;gBAClB,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI;aACzC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACvB;QAED,WAAW,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAChD,CAAC;;sFAtOQ,mBAAmB;oHAAnB,mBAAmB,WAAnB,mBAAmB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;ACHe;;AAO9B,MAAM,cAAc;IAYvB;QAXQ,cAAS,GAAG,IAAI,iDAAe,CAAe,IAAI,CAAC,CAAC;QACpD,2BAAsB,GAAG,IAAI,iDAAe,CAAU,IAAI,CAAC,CAAC;QAC5D,iBAAY,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAC9C,UAAK,GAAG,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QACxC,gBAAW,GAAG,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QAC9C,iBAAY,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QACtD,aAAQ,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;QAC/C,eAAU,GAAG,IAAI,iDAAe,CAAS,IAAI,CAAC,CAAC;QAC/C,gBAAW,GAAG,IAAI,iDAAe,CAAS,IAAI,CAAC,CAAC;QAChD,kBAAa,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;IAGpD,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAED,wBAAwB,CAAC,MAAe;QACpC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;IACtD,CAAC;IAED,iBAAiB,CAAC,UAAwB;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IACrC,CAAC;IAED,cAAc,CAAC,WAAgB;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,QAAiB;QACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IACxC,CAAC;;4EArEQ,cAAc;+GAAd,cAAc,WAAd,cAAc,mBAFX,MAAM;;;;;;;;;;;;;;;;;;ACLe;;AAO9B,MAAM,iBAAiB;IAG5B;QAFQ,YAAO,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;IAEtC,CAAC;IAEjB,SAAS,CAAC,KAAU;QAClB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAEF,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;;kFAXU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;ACLiB;;AAO9B,MAAM,eAAe;IAQ1B;QAPQ,cAAS,GAAG,IAAI,iDAAe,CAAe,IAAI,CAAC,CAAC;QACpD,iBAAY,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAC9C,UAAK,GAAG,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QACxC,gBAAW,GAAG,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QAC9C,iBAAY,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QACrD,aAAQ,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;IAEhC,CAAC;IAEjB,OAAO,CAAC,IAAS;QACf,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEF,OAAO;QACL,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAEC,iBAAiB,CAAC,UAAwB;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAEH,OAAO,CAAC,IAAY;QAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAEC,aAAa,CAAC,IAAY;QACtB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IACD,aAAa;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAC3C,CAAC;IAEH,OAAO;QACN,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;IACD,cAAc,CAAC,WAAgB;QAC7B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC5C,CAAC;IAED,WAAW,CAAC,QAAiB;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;;8EArDY,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFd,MAAM;;;;;;;;;;;;;;;;;;;;;;ACL6C;AAKvB;AACN;;;AAM7B,MAAM,sBAAsB;IAG/B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF3B,QAAG,GAAG,GAAG,kFAA2B,gBAAgB,CAAC;IAG9D,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAClE,CAAC;IAED,WAAW,CAAC,MAAc;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,GAAG,IAAI,CAAC,GAAG,kBAAkB,EAAE,EAAC,MAAM,EAAE,EAAC,MAAM,EAAC,EAAC,CAAC,CAAC;IACvF,CAAC;IAED,iBAAiB,CAAC,MAAuB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvE,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,GAAG,CAAC,EAAE;YAC9E,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAgC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACvH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,gBAAgB,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,gBAAgB,CAAC,MAAuB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA4B,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkB,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;;4FAxCQ,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB,mBAFnB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACT2C;AAIlB;AACF;AAMuD;;;;;AAM7F,MAAM,kBAAkB;IAM3B,YAAoB,IAAgB,EAAU,YAA0B,EAAU,SAA0B;QAAxF,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAc;QAAU,cAAS,GAAT,SAAS,CAAiB;QAL5G,QAAG,GAAG,GAAG,kFAA2B,cAAc,CAAC;QAE3C,4BAAuB,GAAG,IAAI,yCAAO,EAAQ,CAAC;QACtD,yBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC;QAG/D,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YACjD,IAAI,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAG,eAAe,EAAC;gBACf,IAAI,CAAC,OAAO,EAAE,CAAC;aAClB;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO;QACH,IAAI,CAAC,UAAU,GAAG,IAAI,oEAAoB,EAAE;aACvC,gBAAgB,CAAC,oEAAoB,CAAC;aACtC,sBAAsB,EAAE;aACxB,OAAO,CAAC,GAAG,kFAA2B,cAAc,EAAE;YACnD,eAAe,EAAE,KAAK;YACtB,SAAS,EAAE,4EAA4B;SAC1C,CAAC;aACD,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAO,4BAA4B,CAAC,CAAC;IACtE,CAAC;IAED,eAAe,CAAC,MAAmB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACnE,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpE,CAAC;IAED,cAAc,CAAC,EAAU;;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,EACnE,EAAC,MAAM,EAAE,EAAC,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,EAAC,EAAC,CAAC,CAAC;IACzF,CAAC;IAED,mBAAmB,CAAC,MAAyB;;QACzC,MAAM,CAAC,YAAY,GAAG,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,MAAM,CAAC;aAChF,IAAI,CAAC,0DAAU,CAAC,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAoC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,CAAC,CAAC;QACrH,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,MAAmB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACrF,CAAC;IAED,iBAAiB,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IACtE,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,GAAG,eAAe,CAAC,CAAC;IAC3E,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAClE,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,GAAG,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1E,CAAC;IAED,aAAa,CAAC,EAAU;;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,aAAa,EACvE,EAAC,MAAM,EAAE,EAAC,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,0CAAE,YAAY,EAAC,EAAC,CAAC,CAAC;IACzF,CAAC;IAED,yBAAyB,CAAC,EAAU,EAAE,IAAY;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmB,GAAG,IAAI,CAAC,GAAG,cAAc,EAAE,aAAa,EAAE,EAAC,MAAM,EAAE,EAAC,IAAI,EAAC,EAAC,CAAC,CAAC;IACvG,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,GAAG,IAAI,CAAC,GAAG,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,GAAG,IAAI,CAAC,GAAG,uBAAuB,EAAE,MAAM,CAAC,CAAC;IACrG,CAAC;IAED,aAAa,CAAC,GAAoD;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;;oFAlGQ,kBAAkB;oHAAlB,kBAAkB,WAAlB,kBAAkB,mBAFf,MAAM;;;;;;;;;;;;;;;;;ACjBgF;;AAG/F,MAAM,mBAAoB,SAAQ,uDAAY;IAIjD,YAAsB,QAAkB;QACpC,KAAK,EAAE,CAAC;QADU,aAAQ,GAAR,QAAQ,CAAU;QAFxC,eAAU,GAAG,CAAC,CAAC;IAIf,CAAC;IACD,kDAAkD;IAClD,WAAW,CAAC,KAAU;QAClB,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,4BAA4B;QAC5B,IAAI,QAAQ,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvC,IAAI,iBAAiB,GAAG,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,4DAAiB,CAAC,CAAC;QAC7E,IAAI,iBAAiB;YAAE,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAElD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,UAAU,GAAG,SAAS,KAAK,CAAC,EAAE;YACnC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,CAAC,UAAU,SAAS,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACjB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAEzB,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE;gBACzB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,UAAU,oBAAoB,CAAC,CAAC;gBACrF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAEjB,IAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,yDAAc,CAAC,CAAC;gBAC/C,MAAM,CAAC,IAAI,EAAE,CAAC;aACjB;SACJ;aACI,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;YAC5B,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;SAC5B;IACL,CAAC;;sFApCQ,mBAAmB;oHAAnB,mBAAmB,WAAnB,mBAAmB;;;;;;;;;;;;;;;;;;ACFhC,iEAAiE;AAO1D,MAAO,UAAU;IACxB,YAAoB,QAAa;QAAb,aAAQ,GAAR,QAAQ,CAAK;IACjC,CAAC;IAEI,YAAY,CAAC,KAAW,EAAE,IAAa,EAAE,EAAW,EAAE,YAAqB;QAC5E,iBAAiB;QACb,MAAM,cAAc,GAAQ;YACxB,IAAI,EAAE,KAAK;YACX,kBAAkB,EAAE,EAAE;YACtB,OAAO,EAAE;gBACL,KAAK,EAAE;oBACH,WAAW,EAAE,WAAW;iBAC3B;gBACD,WAAW,EAAE,YAAY;gBACzB,OAAO,EAAE;oBACL,GAAG,EAAE,IAAI;iBACZ;aACJ;SACJ,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAC,CAAC;IACxG,CAAC;;;2GApBS,UAAU,WAAV,UAAU,mBAFR,MAAM;;;;;;;;;;;;;;;;;;;;;;;;ACHsE;AACvC;AACS;AACC;AAW9B;;;;AASjC,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,iCAAiC;QACjD,QAAQ,EAAE,kBAAkB;KAC/B,CAAC;CACL,CAAC;AASF,IAAI,qBAAqB,GAAG,GAAgB,EAAE;IAC1C,OAAO;QACH,OAAO,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC;QACvC,OAAO,EAAE,MAAM;QACf,YAAY,EAAE,MAAgB;QAC9B,eAAe,EAAE,IAAI;KACxB,CAAC;AACN,CAAC,CAAC;AAGF,MAAM,cAAc,GAAG;IACnB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,0BAA0B;KAC7C,CAAC;CACL,CAAC;AAKK,MAAM,eAAe;IAIxB,YAAoB,IAAgB,EAAU,YAA0B;QAApD,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAc;QACpE,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,EAAE,CAAC;IACvD,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,kBAAkB,EACxC,WAAW,CACd,CAAC;IACN,CAAC;IAED,OAAO,CAAC,OAAgB;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,GAAG,OAAO,EAAE,WAAW,CAAC;aACzD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,qBAAqB,CAAC,YAAoB,EAAE,iBAAyB,EAAE,UAAkB;QACrF,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,uBAAuB,GAAG,YAAY,GAAG,GAAG,GAAG,iBAAiB,GAAG,GAAG,GAAG,UAAU,EAAE,WAAW,CAAC;aAC3H,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,YAAY;QACR,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,EAAE,WAAW,CAAC;aACxD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,mBAAmB,EACzC,WAAW,CACd,CAAC;IACN,CAAC;IAED,YAAY,CAAC,SAAS;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,SAAS,EACtD,WAAW,CACd,CAAC;IACN,CAAC;IAED,+BAA+B,CAAC,MAAU;QACtC,OAAO,IAAI,CAAC,IAAI;aACf,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,yBAAyB,EAAE,MAAM,CAAC;aAC7D,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,WAAW,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,qBAAqB,GAAG,KAAK,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,SAAS,CAAC,MAAW;QACjB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,EAAE,MAAM,CAAC;aACpD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,MAAqB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC3E,CAAC;IAED,iBAAiB,CACb,SAAc,EACd,UAAe,EACf,OAAY;QAEZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,kBAAkB;YAClB,IAAI;YACJ,GAAG;YACH,SAAS;YACT,GAAG;YACH,UAAU;YACV,GAAG;YACH,OAAO,CACV,CAAC;IACN,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;aACnC,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,gCAAgC,CACzD,CAAC;IACN,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,CAAC;IAED,yBAAyB,CAAC,MAAW;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,8BAA8B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5G,CAAC;IAED,qBAAqB;IACrB,iBAAiB,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,GAAG,WAAW,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,KAAU;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC;aAC9D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB;IAEtB,kBAAkB,CAAC,QAAgB;QAC/B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,GAAG,QAAQ,EAAE,WAAW,CAAC;aAChF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,QAAQ;IACR,iBAAiB,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,GAAG,WAAW,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,MAAW;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,MAAM,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,EAAE,MAAM,EAAE,WAAW,CAAC;aAChE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC;aAC/D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB,CAAC,WAAmB;QACtC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,GAAG,WAAW,CAAC;aAClD,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,WAAmB,EAAE,mBAA4B;QACrE,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,2BAA2B,GAAG,WAAW,GAAG,GAAG,GAAG,mBAAmB,EAAE,WAAW,CAC3G;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,4BAA4B,CAAC,WAAmB;QAC5C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,4BAA4B,GAAG,WAAW,EAAE,WAAW,CAChF;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,4BAA4B,CAAC,SAAc;QACvC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,+BAA+B,EAAE,SAAS,EAAE,WAAW,CAAC;aACnF,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,cAAc,CACV,eAAuB,EACvB,MAAc,EACd,OAAe,EACf,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,SAAS;YACT,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,MAAM;YACN,GAAG;YACH,eAAe,EAAE,WAAW,CAC/B,CAAC;IACN,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,WAAW,CAAC;aACtD,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CAAC,eAAuB;QACpC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,GAAG,eAAe,EAAE,WAAW,CAAC;aACxE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,MAAW;QAC1B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC;aAC/D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,eAAuB;QACzC,OAAO,IAAI,CAAC,IAAI;aACX,MAAM,CACH,IAAI,CAAC,cAAc,GAAG,sBAAsB,GAAG,eAAe,EAAE,WAAW,CAAC;aAC/E,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,MAAW;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE,MAAM,EAAE,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,WAAW,CAAC;aAC5D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,uBAAuB,EAAE,WAAW,CAAC;aAC/D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAAE,WAAW,CAAC;aAClE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,EAAE,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,gBAAgB,CACZ,SAAiB,EACjB,OAAe,EACf,eAAuB;QAEvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,yBAAyB;YACzB,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,eAAe,EAAE,WAAW,CAC/B,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAED,gBAAgB,CAAC,eAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,gBAAgB,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,CACrF,CAAC;IACN,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,GAAG,EAAE,EAAE,WAAW,CAAC;aAC7D,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,mBAAmB,CAAC,eAAyB;QACzC,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;IACrF,CAAC;IAED,oBAAoB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,GAAG,IAAI,CAAC,cAAc,iBAAiB,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5F,CAAC;IAED,wBAAwB,CAAC,MAAgC;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,cAAc,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;IAED,2BAA2B,CAAC,MAAgC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,GAAG,IAAI,CAAC,cAAc,0BAA0B,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,yBAAyB,EAAE,WAAW,CAAC;aACjE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACnG,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,EAAE,EAAE,WAAW,CAAC;aACjE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,wBAAwB,CAAC,KAAa,EAAE,mBAA2B;QAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc;YACnB,qBAAqB;YACrB,KAAK;YACL,GAAG;YACH,mBAAmB,EACnB,WAAW,CACd,CAAC;IACN,CAAC;IAED,oBAAoB,CAAC,aAAkB,EAAE,mBAAmB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,IAAI,CAAC,cAAc,GAAG,mCAAmC,EAC1F;YACI,aAAa;YACb,mBAAmB;SACtB,EAAE,WAAW,CACjB,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,MAAc,EAAE,MAAc,EAAE,eAAuB;QACpE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc;YACnB,gBAAgB;YAChB,MAAM;YACN,GAAG;YACH,MAAM;YACN,GAAG;YACH,eAAe,EACf,WAAW,CACd,CAAC;IACN,CAAC;IAED,qBAAqB,CAAC,SAAkB,EAAE,WAAoB;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,sCAAsC;YACtC,SAAS;YACT,GAAG;YACH,WAAW,EAAE,WAAW,CAC3B,CAAC;IACN,CAAC;IAED,oBAAoB,CAAC,SAAkB,EAAE,WAAoB;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,sCAAsC;YACtC,SAAS;YACT,GAAG;YACH,WAAW,EAAE,WAAW,CAC3B,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,6BAA6B;YAC7B,SAAS,EAAE,WAAW,CACzB,CAAC,IAAI,EAAE,CAAC;IACb,CAAC;IAGD,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,eAAe,EACrC,MAAM,EACN,WAAW,CACd,CAAC;IACN,CAAC;IAED,2BAA2B;IAC3B,qBAAqB;IACrB,wDAAwD;IACxD,+BAA+B;IAC/B,IAAI;IAEJ,YAAY,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,OAAO,EAAE,WAAW,CAAC;aAC9D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa;QAC5C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,4BAA4B;YAC5B,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,aAAa,EAAE,WAAW,CAC7B;aACA,IAAI,CACD,8EAAU,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpB,OAAO,+EAAU,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CACL,CAAC;IACV,CAAC;IAED,WAAW,CAAC,OAAe,EAAE,UAAkB;QAC3C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,YAAY,GAAG,OAAO,GAAG,GAAG,GAAG,UAAU,EAAE,WAAW,CAAC;aACjF,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,YAAY,CAAC,SAAS,EAAE,OAAO;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,SAAS,GAAG,GAAG,GAAG,OAAO,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,SAAS;IACT,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChF,CAAC;IAED,SAAS;IACT,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,CAAC;IAED,oBAAoB;IACpB,iCAAiC;IACjC,+DAA+D;IAC/D,IAAI;IAEJ,cAAc,CAAC,MAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,cAAc,GAAG,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAGD,UAAU,CAAC,MAAW,EAAE,OAAO;QAC3B,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,OAAO,EACpD,MAAM,EACN,WAAW,CACd,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,QAAQ,EAC9B,MAAM,EACN,WAAW,CACd,CAAC;SACL;IACL,CAAC;IAED,aAAa,CAAC,OAAY;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,kBAAkB,GAAG,OAAO,EAClD,WAAW,CACd,CAAC;IACN,CAAC;IAED,YAAY,CAAC,KAAU,EAAE,OAAe;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,OAAO,EACvD,WAAW,CACd,CAAC;IACN,CAAC;IAED,eAAe,CAAC,OAAY;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,OAAO,EACpD,WAAW,CACd,CAAC;IACN,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAChD,WAAW,CACd,CAAC;IACN,CAAC;IAED,0BAA0B,CACtB,SAAiB,EACjB,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,uCAAuC;YACvC,SAAS;YACT,GAAG;YACH,SAAS,EAAE,WAAW,CACzB;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,sBAAsB,CAAC,SAAiB;QACpC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,iCAAiC,GAAG,SAAS,EAAE,WAAW,CAAC;aACrF,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,2BAA2B,CAAC,eAAuB;QAC/C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,iCAAiC;YACjC,eAAe,EAAE,WAAW,CAC/B;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,iBAAiB,CAAC,kBAA2B;QACzC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,uBAAuB,GAAG,kBAAkB,EAAE,WAAW,CAClF;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,yBAAyB,EAAE,WAAW,CAC/D;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAGD,YAAY,CAAC,MAAW;QACpB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAC5C,MAAM,EACN,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,wBAAwB,CAAC,GAAQ;QAC7B,IAAI,MAAM,GAAG;YACT,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,YAAY,EAAE,GAAG,CAAC,YAAY;YAC9B,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;SACtD,CAAC;QACF,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,cAAc;YACnB,gBAAgB,EAAE,MAAM,EACxB,WAAW,CACd;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,YAAY,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAY;QACzD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,yBAAyB;YACzB,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,IAAI,EAAE,WAAW,CACpB;aACA,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,sBAAsB,GAAG,MAAM,EAAE,WAAW,CAAC;aACxE,IAAI,CAAC,8EAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,sDAAsD;IACtD,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,0BAA0B,CAAC,iBAAyB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,WAAW,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAClG,CAAC;IAED,mCAAmC,CAAC,iBAAyB;QACzD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,qBAAqB,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC5G,CAAC;IAGD,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,uBAAuB,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IACpF,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,cAAc,GAAG,wBAAwB,EAAE,WAAW,CAAC,CAAC;IAC3F,CAAC;IAEL,mDAAmD;IAE/C,cAAc,CAAC,MAAW;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,2BAA2B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IAClG,CAAC;IAED,iBAAiB,CAAC,MAAW;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAClD,MAAM,EACN,WAAW,CACd,CAAC;IACN,CAAC;IAED,mBAAmB,CACf,YAAqB,EACrB,iBAA0B,EAC1B,UAAgB,EAChB,OAAa;QAEb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,uBAAuB;YACvB,YAAY;YACZ,GAAG;YACH,iBAAiB;YACjB,GAAG;YACH,UAAU;YACV,GAAG;YACH,OAAO,EAAE,WAAW,CACvB,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAClD,WAAW,CACd,CAAC;IACN,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,mBAAmB,EACzC,WAAW,CACd,CAAC;IACN,CAAC;IAED,gBAAgB,CAAC,SAAS;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,oBAAoB,GAAG,SAAS,EACtD,WAAW,CACd,CAAC;IACN,CAAC;IAED,0BAA0B,CAAC,SAAiB,EAAE,SAAiB;QAC3D,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc;YACnB,yCAAyC;YACzC,SAAS;YACT,GAAG;YACH,SAAS,EACT,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,wBAAwB,CAAC,QAAa;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,gCAAgC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IACzG,CAAC;IAED,2BAA2B,CAAC,QAAa;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,oCAAoC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC7G,CAAC;IAED,kBAAkB,CAAC,QAAa;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1G,CAAC;IAED,kBAAkB,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,4BAA4B,GAAG,MAAM,EAC3D,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CACd,SAAiB,EACjB,OAAe,EACf,gBAAwB;QAExB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,qCAAqC;YACrC,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,gBAAgB,EAAE,WAAW,CAChC,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,SAAc;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,6BAA6B,EACnD,SAAS,EACT,WAAW,CACd,CAAC;IACN,CAAC;IAGD,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAC5C,MAAM,EACN,WAAW,CACd,CAAC;IACN,CAAC;IAED,cAAc,CAAC,WAAmB;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,uBAAuB,GAAG,WAAW,EAC3D,WAAW,CACd,CAAC;IACN,CAAC;IAED,mBAAmB,CAAC,WAAmB;QACnC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,cAAc,GAAG,6BAA6B,GAAG,WAAW,EAAE,WAAW,CACjF;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,oBAAoB,CAChB,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,SAAiB;QAEjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc;YACnB,uBAAuB;YACvB,SAAS;YACT,GAAG;YACH,OAAO;YACP,GAAG;YACH,MAAM;YACN,GAAG;YACH,SAAS,EAAE,WAAW,CACzB,CAAC;IACN,CAAC;IAED,iDAAiD;IACjD,kBAAkB,CACd,YAAoB,EACpB,WAAmB,EACnB,QAAgB;QAEhB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc;YACnB,8BAA8B;YAC9B,YAAY;YACZ,GAAG;YACH,WAAW;YACX,GAAG;YACH,QAAQ,EACR,WAAW,CACd,CAAC;IACN,CAAC;IAED,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,6BAA6B,EAAE,MAAM,CAAC,CAAC;IACvF,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sCAAsC,EAC5D,WAAW,CACd,CAAC;IACN,CAAC;IAED,sBAAsB,CAAC,cAAsB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc;YACnB,uCAAuC;YACvC,cAAc,EACd,WAAW,CACd,CAAC;IACN,CAAC;IAED,qBAAqB;IACrB,YAAY;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,gBAAgB,EACtC,WAAW,CACd,CAAC;IACN,CAAC;IAED,mBAAmB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAC5C,WAAW,CACd,CAAC;IACN,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sBAAsB,EAC5C,WAAW,CACd,CAAC;IACN,CAAC;IAED,iBAAiB,CAAC,SAAiB;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,uBAAuB,GAAG,SAAS,EACzD,WAAW,CACd,CAAC;IACN,CAAC;IAED,0BAA0B,CAAC,WAAY;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,8BAA8B,GAAG,WAAW,EAClE,WAAW,CACd,CAAC;IACN,CAAC;IAED,4BAA4B,CAAC,WAAY;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc;YACnB,4CAA4C;YAC5C,WAAW,EACX,WAAW,CACd,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAC3C,WAAW,CACd,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sBAAsB,GAAG,OAAO,EACtD,WAAW,CACd,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAW,EAAE,OAAa;QAClC,IAAI,CAAC,OAAO,EAAE;YACV,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAC3C,MAAM,EACN,WAAW,CACd,CAAC;SACL;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAChD,MAAM,EACN,WAAW,CACd,CAAC;SACL;IACL,CAAC;IAED,YAAY,CAAC,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,2BAA2B,GAAG,OAAO,EAC3D,WAAW,CACd,CAAC;IACN,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAC3C,WAAW,CACd,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,OAAO;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sBAAsB,GAAG,OAAO,EACtD,WAAW,CACd,CAAC;IACN,CAAC;IAED,WAAW,CAAC,MAAW;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,qBAAqB,EAC3C,MAAM,EACN,WAAW,CACd,CAAC;QAEF,kBAAkB;QAElB,WAAW;QACX,6BAA6B;QAC7B,4DAA4D;QAC5D,kBAAkB;QAClB,sBAAsB;QACtB,SAAS;QACT,IAAI;IACR,CAAC;IAED,YAAY,CAAC,OAAO;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,4BAA4B,GAAG,OAAO,EAC5D,WAAW,CACd,CAAC;IACN,CAAC;IAED,sBAAsB;IACtB,uBAAuB,CAAC,MAAW;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,0BAA0B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjG,CAAC;IAED,4BAA4B;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,aAAa,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,sCAAsC,GAAG,WAAW,EAAE,WAAW,CAC1F,CAAC;IACN,CAAC;IAED,cAAc,CAAC,QAAgB;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAChB,IAAI,CAAC,cAAc,GAAG,6BAA6B,GAAG,QAAQ,EAAE,WAAW,CAC9E,CAAC;IACN,CAAC;IAED,kBAAkB,CAAC,KAAU;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,4BAA4B,EAAE,KAAK,EAAE,WAAW,CAAC;aAC5E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,IAAI,OAAO,GAAG,IAAI,CAAC;QACnB,IAAI,KAAK,CAAC,KAAK,YAAY,UAAU,EAAE;YACnC,OAAO,GAAG,KAAK,CAAC;SACnB;aAAM;YACH,OAAO,GAAG,KAAK,CAAC;SACnB;QACD,OAAO,+EAAU,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEL,SAAS;IACL,SAAS,CAAC,MAAM;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAE,MAAM,EAAE,WAAW,CACjE,CAAC;IACN,CAAC;IAED,kBAAkB,CAAC,MAAW;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAED,uBAAuB,CAAC,MAAM;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,8BAA8B,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACrG,CAAC;IAED,4BAA4B,CAAC,mBAAwB;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,+BAA+B,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACnH,CAAC;IAED,oDAAoD;IACpD,uBAAuB,CAAC,cAAyC;QAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,qCAAqC,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IACpH,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAE,WAAW,CAAC,CAAC;IAC1H,CAAC;IAED,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,GAAG,IAAI,CAAC,cAAc,gBAAgB,CAAC,CAAC;IAChG,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,GAAG,IAAI,CAAC,cAAc,iBAAiB,CAAC,CAAC;IACjG,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgB,GAAG,IAAI,CAAC,cAAc,sBAAsB,CAAC,CAAC;IACtF,CAAC;IAED,cAAc,CAAC,GAAQ;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,cAAc,mBAAmB,EAAE,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,YAAY;QACR,8EAA8E;QAC9E,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,cAAc,mBAAmB,EAAE,EAAC,MAAM,EAAE,EAAC,YAAY,EAAC,EAAC,CAAC,CAAC;IAC/G,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,cAAc,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC;;8EAzgCQ,eAAe;gHAAf,eAAe,WAAf,eAAe,mBAFZ,MAAM;;;;;;;;;;;;;;;;;;;;ACtDQ;AACyB;AACtB;;;AAEjC,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACH,CAAC;AAEF,MAAM,cAAc,GAAG;IACrB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACvB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,0BAA0B;KAC3C,CAAC;CACH,CAAC;AAKK,MAAM,kBAAkB;IAI7B,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAClC,IAAI,CAAC,cAAc,GAAG,GAAG,6EAAuB,uBAAuB,CAAC;IAC1E,CAAC;IAED,4BAA4B;QAC1B,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,EAAC,WAAW,CAAC;aAC/C,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,gCAAgC;QAC9B,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,OAAO,EAAC,WAAW,CAAC;aAC9C,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,SAAS,EAAC,WAAW,CAAC;aAChD,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAC,WAAW,CAAC;aACzD,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,6BAA6B,CAAC,SAAS;QACrC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,GAAC,SAAS,EAAC,WAAW,CAAC;aACpE,IAAI,EAAE,CAAC;IACZ,CAAC;IAGD,qBAAqB,CAAC,UAAiB;QACrC,OAAO,IAAI,CAAC,IAAI;aACb,GAAG,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,GAAC,UAAU,EAAC,WAAW,CAAC;aACpE,IAAI,EAAE,CAAC;IACZ,CAAC;IAGD,oBAAoB,CAAC,MAAU;QAC7B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mBAAmB,EAAC,MAAM,EAAC,WAAW,CAAC;aAClE,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,oBAAoB,CAAC,MAAU;QAC7B,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,kBAAkB,EAAC,MAAM,EAAC,WAAW,CAAC;aACjE,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,wBAAwB,CAAC,KAAS;QAChC,OAAO,IAAI,CAAC,IAAI;aACb,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,mDAAmD,EAAC,KAAK,EAAC,WAAW,CAAC;aACjG,IAAI,EAAE,CAAC;IACZ,CAAC;;oFA9DU,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB,mBAFjB,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;ACpB6C;AAElB;AACM;;;;AAM9C,MAAM,gBAAgB;IAKzB,YAAoB,IAAgB,EAAU,YAAgC;QAA1D,SAAI,GAAJ,IAAI,CAAY;QAAU,iBAAY,GAAZ,YAAY,CAAoB;QAJ9E,QAAG,GAAG,GAAG,8EAAuB,UAAU,CAAC;QAC3C,gBAAW,GAAG,IAAI,iDAAe,CAAM,EAAE,CAAC,CAAC;QAC3C,iBAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;IAG/C,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,GAAG,CAAC,EAAE;YAChF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAkC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,CAAC,CAAC;QACnH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,UAAU,CAAC,EAAU;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,QAAQ,CAAC,OAAe;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,GAAG,IAAI,CAAC,GAAG,WAAW,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,MAAiB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,UAAU,CAAC,MAAiB;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,GAAG,IAAI,CAAC,GAAG,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,sBAAsB;IACtB,eAAe,CAAC,MAAW;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,GAAG,IAAI,CAAC,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,0DAAU,CAAC,GAAG,CAAC,EAAE;YACtG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC;gBACvB,wCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAkC,CAAC,CAAC,CAAC,CAAC,gDAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACzH,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,qBAAqB,CAAC,OAAe,EAAE,EAAU;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;IAC3G,CAAC;IAED,qBAAqB,CAAC,OAAe,EAAE,EAAU,EAAE,OAAkB;QACjE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,GAAG,IAAI,CAAC,GAAG,aAAa,EAAE,OAAO,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,EAAC,CAAC,CAAC;IACnH,CAAC;IAED,eAAe,CAAC,OAAe,EAAE,EAAU,EAAE,QAAqB;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,GAAG,IAAI,CAAC,GAAG,kBAAkB,EAAE,QAAQ,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,EAAC,CAAC;aACjH,IAAI,CAAC,mDAAG,CAAC,GAAG,CAAC,EAAE;YACZ,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC7C;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,gBAAgB,CAAC,OAAe,EAAE,IAAW;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,GAAG,IAAI,CAAC,GAAG,mBAAmB,EAAE,IAAI,EAAE,EAAC,MAAM,EAAE,EAAC,OAAO,EAAC,EAAC,CAAC;aAC1G,IAAI,CAAC,mDAAG,CAAC,GAAG,CAAC,EAAE;YACZ,IAAI,GAAG,CAAC,QAAQ,EAAE;gBACd,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;aAC7C;YACD,OAAO,GAAG,CAAC;QACf,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,cAAc,CAAC,SAAiB,EAAE,UAAkB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,GAAG,YAAY,SAAS,cAAc,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IAClE,CAAC;;gFA/EQ,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;ACTiB;AACe;;;AA+B/C,MAAM,aAAa;IAUxB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QATvC,eAAU,GAAgB,EAAE,CAAC;QACpC,sBAAiB,GAAG,IAAI,iDAAe,CAAc,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,mBAAc,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAChD,gBAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QAGtD,uCAAuC;QAC9B,oBAAe,GAAG,EAAE,CAAC;QAG1B,IAAI,CAAC,YAAY;QACf,kDAAkD;QAClD;YACE,aAAa,EAAE,MAAM;YACrB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,OAAO;YACrB,oBAAoB,EAAE,KAAK;YAC3B,GAAG,EAAE,KAAK;YACV,aAAa,EAAE,KAAK;YACpB,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,YAAY;YACtB,UAAU,EAAE,QAAQ;YACpB,gBAAgB,EAAE,IAAI;SACvB,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,UAAuB;QAClC,IAAI,CAAC,UAAU,mCAAQ,IAAI,CAAC,UAAU,GAAK,UAAU,CAAE,CAAC;QACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAE7C,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,yBAAyB;IAC3B,CAAC;IAED,mBAAmB,CAAC,EAAe,EAAE,MAA4B,EAAE;QACjE,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,EAAE;YAC3D,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,aAAa,CAAC,KAAK;QACjB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB;QAChB,MAAM,gBAAgB,GAAG,kEAAa,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAC3C,IAAI;YACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACpE;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;IAED,YAAY,CAAC,UAAgC,EAAE;QAC7C,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QACvD,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QAEjD,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACrC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC3C,YAAY,GAAG,QAAQ,CAAC;iBACzB;YACH,CAAC,CAAC,CAAC;SACJ;QAED,IAAI,CAAC,mBAAmB,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IACD,IAAI;QACF,OAAO,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;IACzD,CAAC;;0EAnFU,aAAa;8GAAb,aAAa,WAAb,aAAa,mBAFZ,MAAM;;;;;;;;;;;;;;;;;;AC1Bb,MAAM,iBAAiB;IAG5B;QAFQ,OAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IAElB,CAAC;IAET,OAAO,CAAC,GAAG,EAAE,KAAK;QACvB,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,GAAG;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;;kFAtBU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;;ACDmB;;;AAKhC,MAAM,iBAAiB;IAI5B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAFhD,kBAAa,GAA4B,IAAI,iDAAe,CAAS,EAAE,CAAC,CAAC;QAGvE,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAEO,IAAI;QACV,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAmB,EAAE,EAAE;YAC1D,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,CAAC,OAAO,EAAE;gBAC5C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,OAAO,CAAC;gBACvC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACzC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;kFAhBU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;;;;;;;;;;;;;;;;;ACJiB;;AAkC9B,MAAM,iBAAiB;IAm9B1B;QAl9BA,aAAQ,GAAgB;YACpB;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;aACrB;YAED,wBAAwB;YACxB;gBACI,IAAI,EAAE,kBAAkB;gBACxB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,IAAI;gBACX,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,KAAK,EAAE,kBAAkB;wBACzB,2BAA2B;qBAC9B;oBAED;wBACI,IAAI,EAAE,0BAA0B;wBAChC,KAAK,EAAE,WAAW;wBAClB,IAAI,EAAE,UAAU;wBAChB,eAAe,EAAE,IAAI;qBACxB;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAC;4BAC/C;gCACI,IAAI,EAAE,mBAAmB;gCACzB,KAAK,EAAE,iCAAiC;6BAC3C;4BACD;gCACI,IAAI,EAAE,0BAA0B;gCAChC,KAAK,EAAE,qDAAqD;6BAC/D;4BACD,kFAAkF;4BAClF,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD;gCACI,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,+BAA+B;6BACzC;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAC;4BACnD,4EAA4E;4BAC5E;gCACI,IAAI,EAAE,mBAAmB;gCACzB,KAAK,EAAE,+BAA+B;6BACzC;4BACD;gCACI,IAAI,EAAE,oBAAoB;gCAC1B,KAAK,EAAE,gCAAgC;6BAC1C;4BACD;gCACI,IAAI,EAAE,qBAAqB;gCAC3B,KAAK,EAAE,gCAAgC;6BAC1C;yBACJ;qBACJ;iBACJ;aACJ;YAED,gBAAgB;YAChB;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,OAAO;qBACjB;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,eAAe;qBACzB;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,+BAA+B,EAAC;4BACjE,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,mCAAmC,EAAC;4BACzE,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC7C,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,0BAA0B,EAAC;4BAChE,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAC;4BAClE;gCACI,IAAI,EAAE,iBAAiB;gCACvB,KAAK,EAAE,oCAAoC;6BAC9C;4BACD;gCACI,IAAI,EAAE,qBAAqB;gCAC3B,KAAK,EAAE,iCAAiC;6BAC3C;yBACJ;qBACJ;iBACJ;aACJ;YACD,kBAAkB;YAClB;gBACI,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,gBAAgB;gBACzB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,OAAO;qBACjB;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACtD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,+BAA+B,EAAC;4BAC5D,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,0BAA0B,EAAC;yBAChE;qBACJ;iBACJ;aACJ;YAED;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAC;oBACjC,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAC;oBAC3C,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,mBAAmB,EAAC;oBACjD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAC;oBACtE,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,6BAA6B,EAAC;oBAC1D,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,eAAe,EAAE,IAAI,EAAC;oBACzE,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,IAAI,EAAC;oBAChE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAC;oBAClC;wBACI,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU;wBAChC,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAC;4BAChD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;4BACjC,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,kBAAkB,EAAC;yBACnD;qBACJ;oBACD;wBACI,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,IAAI;wBACvC,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAE,IAAI,EAAC;4BACtE,sDAAsD;yBACzD;qBACJ;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAChD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BACtD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAC;4BAC/C,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,+BAA+B,EAAC;4BAC3D,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAC;4BAClE,EAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,kCAAkC,EAAC;4BAC1E,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAC;4BAC1D,EAAC,IAAI,EAAE,kCAAkC,EAAE,KAAK,EAAE,+CAA+C,EAAC;4BAClG,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACrD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACtD;gCACI,IAAI,EAAE,qBAAqB;gCAC3B,KAAK,EAAE,kCAAkC;6BAC5C;4BACD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACrD,EAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,uCAAuC,EAAC;4BAC9E,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,EAAC;yBAC/D;qBACJ;iBACJ;aACJ;YAED;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,WAAW;gBACpB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;oBACrC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAC;oBACnC,iDAAiD;iBACpD;aACJ;YACD,oBAAoB;YACpB;gBACI,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;qBACjB;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,oBAAoB;qBAC9B;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC7C,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAC;4BAC/C,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,8BAA8B,EAAC;yBACpE;qBACJ;iBACJ;aACJ;YAED,iBAAiB;YACjB;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,WAAW;gBAClB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAC;oBACnC,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,QAAQ,EAAC;oBAC5C;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC7C,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,0BAA0B,EAAC;4BAC1D,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,2BAA2B,EAAC;4BACzD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACpD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,8BAA8B,EAAC;4BAC9D;gCACI,IAAI,EAAE,gBAAgB;gCACtB,KAAK,EAAE,8BAA8B;6BACxC;4BACD;gCACI,IAAI,EAAE,qBAAqB;gCAC3B,KAAK,EAAE,iCAAiC;6BAC3C;4BACD;gCACI,IAAI,EAAE,cAAc;gCACpB,KAAK,EAAE,gCAAgC;6BAC1C;4BACD;gCACI,IAAI,EAAE,gBAAgB;gCACtB,KAAK,EAAE,8BAA8B;6BACxC;4BACD;gCACI,IAAI,EAAE,0BAA0B;gCAChC,KAAK,EAAE,4BAA4B;6BACtC;yBACJ;qBACJ;iBACJ;aACJ;YACD,oBAAoB;YACpB;gBACI,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,cAAc;gBACvB,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAC;oBACtC,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;oBACzC;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BAC3D,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC7C;gCACI,IAAI,EAAE,SAAS;gCACf,KAAK,EAAE,uBAAuB;6BACjC;4BACD,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAC;4BACzD,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,gCAAgC,EAAC;4BACtE;gCACI,IAAI,EAAE,mBAAmB;gCACzB,KAAK,EAAE,8BAA8B;6BACxC;yBACJ;qBACJ;iBACJ;aACJ;YAED,aAAa;YAEb;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,YAAY;gBACrB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,aAAa;wBACnB,KAAK,EAAE,OAAO;qBACjB;oBAED;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC3D,EAAC,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,uBAAuB,EAAC;yBAClE;qBACJ;iBACJ;aACJ;YACD,EAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,yBAAyB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAC;YACpH;gBACI,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ;gBAC7C,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,sBAAsB;gBAC5B,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,EAAC;oBACtD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,yBAAyB,EAAC;iBACzD;aACJ;YAED,kBAAkB;YAClB;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,sBAAsB;gBAC5B,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,iBAAiB,EAAC;oBACnD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;4BACzC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;yBAClC;qBACJ;oBACD,IAAI;oBACJ,mBAAmB;oBACnB,wBAAwB;oBACxB,aAAa;oBACb,YAAY;oBACZ,iCAAiC;oBACjC,2BAA2B;oBAC3B,aAAa;oBACb,QAAQ;oBACR,KAAK;oBACL;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,0BAA0B,EAAC;4BACrD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAE,eAAe,EAAE,IAAI,EAAC;yBACjF;qBACJ;oBACD;wBACI,IAAI,EAAE,wBAAwB;wBAC9B,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,iCAAiC,EAAC;4BAC7D,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,qCAAqC,EAAC;4BAC/D,8DAA8D;4BAC9D,gEAAgE;4BAChE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,8BAA8B,EAAC;yBAC5D;qBACJ;oBAED;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,0CAA0C,EAAC;4BAC5E,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,oBAAoB,EAAC;4BAC9C,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,sBAAsB,EAAC;yBACrD;qBACJ;iBAEJ;aACJ;YAED,WAAW;YACX;gBACI,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAC;oBACjC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAC;oBACpC;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAC;4BACnC,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,EAAC;4BACjD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAC;yBAC9C;qBACJ;iBAEJ;aACJ;YAGD,kBAAkB;YAElB;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,SAAS;gBAClB,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,SAAS;gBAChB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,iBAAiB;wBACvB,KAAK,EAAE,iBAAiB;qBAC3B;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;4BACzC,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAC;yBAElC;qBACJ;oBACD;wBACI,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU;wBACtC,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,KAAK,EAAC;yBAC/E;qBACJ;iBACJ;aACJ;YAED,oBAAoB;YACpB;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,yBAAyB,EAAC;oBACxD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,0BAA0B,EAAC;oBAC5D,EAAC,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,sBAAsB,EAAC;oBAC7D,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,+BAA+B,EAAC;oBAC3D,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAC;oBAErD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAC;oBAExD;wBACI,IAAI,EAAE,iBAAiB;wBACvB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD;gCACI,IAAI,EAAE,kBAAkB;gCACxB,KAAK,EAAE,qCAAqC;gCAC5C,uBAAuB;6BAC1B;4BACD;gCACI,IAAI,EAAE,QAAQ;gCACd,KAAK,EAAE,qCAAqC;6BAC/C;4BACD;gCACI,IAAI,EAAE,KAAK;gCACX,KAAK,EAAE,kCAAkC;6BAC5C;4BACD;gCACI,IAAI,EAAE,oBAAoB;gCAC1B,KAAK,EAAE,qCAAqC;6BAC/C;yBACJ;qBACJ;oBAED;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;wBACD,IAAI;wBACJ,mCAAmC;wBACnC,yDAAyD;wBACzD,KAAK;wBACL,IAAI;wBACJ,iCAAiC;wBACjC,2DAA2D;wBAC3D,KAAK;yBACR;qBACJ;iBACJ;aACJ;YAED,kBAAkB;YAClB,oBAAoB;YACpB;gBACI,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,UAAU;gBACjB,eAAe,EAAE,IAAI;gBACrB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,oBAAoB;wBAC1B,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD;gCACI,IAAI,EAAE,KAAK;gCACX,KAAK,EAAE,wBAAwB;6BAClC;4BACD;gCACI,IAAI,EAAE,WAAW;gCACjB,KAAK,EAAE,wBAAwB;6BAClC;yBACJ;qBACJ;iBACJ;aACJ;YAGD,qBAAqB;YACrB;gBACI,IAAI,EAAE,oBAAoB;gBAC1B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE,iBAAiB;gBACxB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;oBACrC;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAC;4BACnD,EAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,qCAAqC,EAAC;4BAC/E,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,8BAA8B,EAAC;yBACrE;qBACJ;iBACJ;aACJ;YAED,eAAe;YAEf,qBAAqB;YACrB;gBACI,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,aAAa;gBACpB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAC;4BACnC,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BACpD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAC;yBACnD;qBACJ;oBACD,iDAAiD;oBACjD,oCAAoC;iBACvC;aACJ;YACD,sBAAsB;YACtB,iBAAiB;YACjB;gBACI,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,uBAAuB;qBACjC;iBACJ;aACJ;YAED,oBAAoB;YACpB;gBACI,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,YAAY;gBACnB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,KAAK;wBACX,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC;4BACvC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC;4BACvC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAC;4BACvC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAC;yBACtC;qBACJ;iBACJ;aACJ;YAED,aAAa;YACb;gBACI,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,KAAK,EAAE,KAAK;gBACZ,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAEhB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAAC;qBACnD;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,KAAK,EAAE,oBAAoB;qBAC9B;oBAED;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,mBAAmB,EAAC;4BAC/C,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAC;yBACtD;qBACJ;oBAED;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAC,CAAC;qBAC1D;oBAED;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACvD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BACjD,uEAAuE;yBAC1E;qBACJ;oBAED;wBACI,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAC;yBACxC;qBACJ;oBACD;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,gBAAgB,EAAC;4BAC3C,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC;4BACvC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,eAAe,EAAC;yBAC5C;qBACJ;oBAED;wBACI,IAAI,EAAE,oBAAoB;wBAC1B,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,sBAAsB,EAAC;4BAC5D;gCACI,IAAI,EAAE,yBAAyB;gCAC/B,KAAK,EAAE,0BAA0B;6BACpC;yBACJ;qBACJ;oBAED;wBACI,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU;wBAEhB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAC;4BAC1C,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAC;yBACtC;qBACJ;oBACD;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,UAAU;wBAEhB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAC;4BACzC,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAC;yBAC9C;qBACJ;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBACnB;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBACnB;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,KAAK,EAAE,cAAc;qBACxB;oBACD;wBACI,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,UAAU;qBACpB;oBAED,KAAK;oBACL;wBACI,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,OAAO;qBACjB;oBACD;wBACI,IAAI,EAAE,eAAe;wBACrB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,8BAA8B,EAAC;4BAChE,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BACrD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,+BAA+B,EAAC;4BACzD,EAAC,IAAI,EAAE,wBAAwB,EAAE,KAAK,EAAE,2CAA2C,EAAC;4BACpF,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iCAAiC,EAAC;4BAChE,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BACrD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BAC3D,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,wBAAwB,EAAC;4BACnD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACjD,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BAC5D,EAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,iCAAiC,EAAC;yBACzE;qBACJ;iBACJ;aACJ;YACD,iBAAiB;YAEjB,sBAAsB;YACtB;gBACI,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,cAAc;gBACrB,GAAG,EAAE;oBACD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAC;oBACtC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAC;oBACvC,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAC;iBAC5C;aACJ;YACD,qBAAqB;YAErB,uBAAuB;YACvB;gBACI,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,UAAU;gBACnB,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,UAAU;gBACjB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;qBAC5C;oBACD;wBACI,IAAI,EAAE,aAAa;wBACnB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC3B,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC/B,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC/B,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC1B,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,EAAC;yBACvC;qBACJ;oBACD;wBACI,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC3B,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,EAAC;yBACtC;qBACJ;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;qBACtC;oBACD;wBACI,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,mCAAmC,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;qBAChE;oBACD;wBACI,IAAI,EAAE,UAAU;wBAChB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAC;4BAC9B,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAC;yBAChC;qBACJ;iBACJ;aACJ;YACD,wBAAwB;YAExB;gBACI,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,eAAe;gBACxB,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,eAAe;gBACtB,GAAG,EAAE;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BACjD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAC;yBAC9C;qBACJ;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,cAAc;qBAExB;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACxD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAC;4BAC9C,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAC;4BAC1C,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,oBAAoB,EAAC;4BAC1D,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,IAAI,EAAC;yBAEnF;qBACJ;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACxD,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAC;4BAC9C,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAC;4BAC1C,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,uBAAuB,EAAC;yBAChE;qBACJ;oBACD;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,6BAA6B,EAAC;4BAC9D,uDAAuD;4BACvD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAC;4BAC/C,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,uBAAuB,EAAC;4BACnD,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAC;4BAC3C,EAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,wBAAwB,EAAC;4BAC9D,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,sBAAsB,EAAC;yBACpD;qBACJ;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,2BAA2B,EAAC,CAAC;qBACtE;oBACD;wBACI,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,UAAU;qBACpB;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BACnD,EAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BACzD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,0BAA0B,EAAC;4BAC3D,EAAC,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,4BAA4B,EAAC;4BAChE,EAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,2BAA2B,EAAC;yBAC1D;qBACJ;oBACD,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAC;oBACrC;wBACI,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAC;4BAC/C,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,oBAAoB,EAAC;4BACtD,EAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,iBAAiB,EAAC;4BAChD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,kBAAkB,EAAC;yBACtD;qBACJ;oBAED;wBACI,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,6BAA6B,EAAC;yBACjE;qBACJ;oBACD;wBACI,IAAI,EAAE,YAAY;wBAClB,IAAI,EAAE,UAAU;wBAChB,GAAG,EAAE;4BACD,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAC;4BAC5C,+CAA+C;4BAC/C,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kCAAkC,EAAC;4BACrE,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAC;4BAClD,EAAC,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,8BAA8B,EAAC;4BAChE,EAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,iCAAiC,EAAC;4BAClE,EAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,iCAAiC,EAAC;4BACpE,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAC;4BACtC,EAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,uCAAuC,EAAC;4BAChE,EAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,2BAA2B,EAAC;yBACpD;qBACJ;oBACD;wBACI,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU;wBACpC,SAAS;wBACT,4DAA4D;wBAC5D,KAAK;qBACR;iBACJ;aACJ;SAEJ,CAAC;QACF,iDAAiD;QACjD,mEAAmE;QACnE,sBAAiB,GAAG,qBAAqB,CAAC;QAC1C,4BAA4B;QAC5B,cAAS,GAAG,IAAI,iDAAe,CAAc,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,yDAAyD;QACzD,eAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IAG3C,CAAC;IAED,wDAAwD;IACxD,uDAAuD;IACvD,gEAAgE;IAChE,uBAAuB;IACvB,uBAAuB,CAAC,QAAgB;QACpC,QAAQ,QAAQ,EAAE;YACd,KAAK,gBAAgB;gBACjB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM;YACV,KAAK,WAAW;gBACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM;YACV;gBACI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC1C;IACL,CAAC;;kFAr+BQ,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB;;;;;;;;;;;;;;;;;;;;AC7BvB,MAAM,kBAAkB;IAG3B,YAAoB,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IACtC,CAAC;IAED,SAAS,CAAC,QAAgB,EAAE,OAAiB,EAAE,OAAgB;QAC3D,IAAI,CAAC,KAAK,CAAC,IAAI,CACX,QAAQ,EACR,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EACpB;YACI,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;YACnD,UAAU,EAAE,iBAAiB;SAChC,CACJ,CAAC;IACN,CAAC;IAED,KAAK;IAEL,CAAC;;oFApBQ,kBAAkB;mHAAlB,kBAAkB,WAAlB,kBAAkB,mBAFf,MAAM;;;;;;;;;;;;;;;;;;ACEZ,MAAM,gBAAgB;IAC9B;IACA,CAAC;IACD,QAAQ,CAAC,gBAAgC;QACvC,IAAG,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,EAAC;YAC7C,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAkB,EAAC,EAAE;gBAC7C,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,CAAC,CAAC;SACH;IACH,CAAC;;gFATa,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBADlB,MAAM;;;;;;;;;;;;;;;;;;;;ACL2C;AAER;AACJ;;;AAGnD,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACvB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;QACxD,cAAc,EAAE,kBAAkB;KACnC,CAAC;CACH,CAAC;AAMK,MAAM,UAAU;IAUrB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAPpC,sBAAiB,GAAI,IAAI,iDAAe,CAAQ,EAAE,CAAC,CAAC;QACpD,mBAAc,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAChD,sBAAiB,GAAG,IAAI,iDAAe,CAAc,IAAI,CAAC,CAAC;QAC3D,yBAAoB,GAAG,IAAI,iDAAe,CAAgB,IAAI,CAAC,CAAC;QAChE,qBAAgB,GAAI,cAAc,CAAC;QAIjC,IAAI,CAAC,OAAO,GAAG,GAAG,6EAAuB,KAAK,CAAC;IACjD,CAAC;IAED,QAAQ,CAAC,IAAS;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IACD,kBAAkB,CAAC,IAAS;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,kBAAkB,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IACD,aAAa,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACnF,CAAC;IACD,yBAAyB;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,yBAAyB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1E,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,mBAAmB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,CAAC;IAED,oBAAoB,CAAC,UAAiB;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,GAAC,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAED,oBAAoB,CAAC,YAAmB;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,GAAC,YAAY,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACvF,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,WAAW,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;IAED,oBAAoB,CAAC,QAAgB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,uBAAuB,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,CAAC;IAED,kBAAkB,CAAC,SAAS;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,gBAAgB,CAAC,WAAmB,EAAE,UAAkB;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,iBAAiB,GAAG,WAAW,GAAG,GAAG,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9G,CAAC;IACD,gBAAgB,CAAC,MAA4B;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,8BAA8B,EAAE,MAAM,CAAC,CAAC;IACjF,CAAC;IAED,uBAAuB,CAAC,MAAU;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wCAAwC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9F,CAAC;IAED,0BAA0B;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,2CAA2C,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACxF,CAAC;IAGD,cAAc,CAAC,aAAsB;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,IAAI,EAAE;YACR,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,iBAAiB,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;aAChD;iBAAM;gBACL,IAAG,QAAQ,CAAC,iBAAiB,EAAC;oBAC5B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,cAAc,EAAE,CAAC;iBAC5B;aACF;SACF;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IACD,gBAAgB,CAAC,KAAU;QACxB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,kBAAkB;QAChB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;;oEAtGU,UAAU;2GAAV,UAAU,WAAV,UAAU,mBAFT,MAAM;;;;;;;;;;;;;;;;;;;;ACd6D;AAC5B;AACO;AAChB;;;AAS5C,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAE3D,CAAC;CACL,CAAC;AAKK,MAAM,gBAAgB;IAKzB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAChC,IAAI,CAAC,OAAO,GAAG,GAAG,8EAAwB,EAAE,CAAC;QAC7C,IAAI,CAAC,eAAe,GAAG,GAAG,8EAAwB,EAAE,CAAC;IACzD,CAAC;IAED,oBAAoB,CAAC,eAAuB;QACxC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,eAAe,EAC7D,WAAW,CACd,CAAC;IACV,CAAC;IAED,sBAAsB,CAAC,MAAW;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,eAAe,GAAG,mBAAmB,EAAE,MAAM,EAClD,WAAW,CACd,CAAC;IACV,CAAC;IAED,SAAS,CACL,MAAe,EACf,gBAAyB;QAEzB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe;YACpB,gCAAgC;YAChC,MAAM;YACN,GAAG;YACH,gBAAgB,EAChB,WAAW,CACd,CAAC;IACV,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe,GAAG,oCAAoC,EAC3D,WAAW,CACd,CAAC;IACV,CAAC;IAED,kBAAkB,CAAC,iBAAyB,EAAE,eAAuB;QACjE,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,iBAAiB,GAAG,GAAG,GAAG,eAAe,EACvF,WAAW,CACd,CAAC;IACV,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,+BAA+B;QAC3B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe,GAAG,+BAA+B,EACtD,WAAW,CACd,CAAC;IACV,CAAC;IAED,oBAAoB,CAAC,MAAW;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACjB,IAAI,CAAC,eAAe,GAAG,gBAAgB,EAAE,MAAM,EAAE,WAAW,CAC/D,CAAC;IACN,CAAC;IAED,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,eAAe,GAAG,kBAAkB,EACzC,KAAK,EACL,WAAW,CACd,CAAC;IACV,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAQ,IAAI,CAAC,eAAe,GAAG,8BAA8B,EAAE,WAAW,CAAC,CAAC;IACpG,CAAC;IAGD,WAAW,CAAC,UAAkB,EAAE,QAAgB;QAC5C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,eAAe,GAAG,qBAAqB,GAAG,QAAQ,GAAG,GAAG,GAAG,UAAU,EAC1E,WAAW,CACd,CAAC;IACV,CAAC;IAED,eAAe,CAAC,UAAkB;QAC9B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,eAAe,GAAG,oBAAoB,EAC3C,UAAU,EACV,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,eAAe,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IAC9E,CAAC;IAED,UAAU,CAAC,KAAU;QACjB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,eAAe,GAAG,sBAAsB,EAC7C,KAAK,EACL,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,CAAC,KAAU;QACb,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,YAAY,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,CAAC,KAAU;QACb,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,qBAAqB,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;IAED,qBAAqB,CAAC,QAAQ,EAAE,UAAU;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,IAAI,CAAC,eAAe,GAAG,aAAa,UAAU,YAAY,QAAQ,EAAE,EAAE,WAAW,CAAC,CAAC;IAC/H,CAAC;IAED,2BAA2B;IAC3B,qBAAqB;IACrB,yDAAyD;IACzD,eAAe;IACf,IAAI;IAEJ,iBAAiB,CAAC,YAAiB;QAC/B,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CACD,IAAI,CAAC,eAAe;YACpB,YAAY,EAAE,YAAY,EAC1B,WAAW,CACd;aACA,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,WAAW,CAAC,KAAwB;QAChC,OAAO,gDAAU,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,eAAuB;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,eAAe,EAAE,WAAW,CAAC;aACzE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,eAAuB;QACtC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,mBAAmB,GAAG,eAAe,EAAE,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB;IAClB,kBAAkB,CAAC,eAAuB,EAAE,MAAe;QACvD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,kBAAkB,GAAG,eAAe,GAAG,GAAG,GAAG,MAAM,EAAE,WAAW,CAAC;aAC5F,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY;IACZ,aAAa,CAAC,eAAuB,EAAE,QAAgB;QACnD,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,aAAa,GAAG,eAAe,GAAG,GAAG,GAAG,QAAQ,EAAE,WAAW,CAAC;aACzF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,yBAAyB,CAAC,eAAuB,EAAE,QAAgB;QAC/D,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,wBAAwB,GAAG,eAAe,GAAG,GAAG,GAAG,QAAQ,EAAE,WAAW,CAAC;aACpG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,WAAmB;QAC5B,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,uBAAuB,GAAG,WAAW,EAAE,WAAW,CAAC;aAC9E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,aAAa,EAAE,KAAK,EAAE,WAAW,CAAC;aAC9D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,WAAmB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,qBAAqB,EAAE,WAAW,EAAE,WAAW,CAAC;aAC5E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,gBAAgB;IAChB,YAAY,CAAC,KAAU;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,UAAU,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,yCAAyC;IACzC,oBAAoB,CAAC,QAAgB;QACjC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC;aACvE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,+BAA+B,EAAE,EAAE,EAAE,WAAW,CAAC;aAC7E,IAAI,EAAE,CAAC;IAChB,CAAC;IAGD,iBAAiB;IACjB,cAAc,CAAC,eAAuB;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,gBAAgB,kCAAM,WAAW,KAAE,MAAM,EAAE,EAAC,eAAe,EAAC,IAAE;aACzF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,0BAA0B,CAAC,eAAuB;QAC9C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,eAAe,EAAE,WAAW,CAAC;aAC/E,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,IAAI,CAAC,eAAe,GAAG,gBAAgB,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAC5G,CAAC;IAED,gBAAgB,CAAC,KAAU;QACvB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1E,CAAC;IAED,kBAAkB,CAAC,EAAU;QACzB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,uBAAuB,EAAE,EAAE,EAAE,WAAW,CAAC;aACrE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qBAAqB;IAErB,iBAAiB;IACjB,sBAAsB,CAAC,QAAiB;QACpC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,8BAA8B,GAAG,QAAQ,EAAE,WAAW,CAAC;aAClF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,UAAmB;QAClC,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,UAAU,GAAG,UAAU,EAAE,WAAW,CAAC;aAChE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qBAAqB;IAGrB,gBAAgB,CAAC,MAAW;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC;aAC9D,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,eAAe,CAAC,UAAe,EAAE,OAAY;QAEzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,gBAAgB,CAAC,IAAS,EAAE,UAAe,EAAE,OAAY;QACrD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,UAAU,GAAG,GAAG,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IACzH,CAAC;IAED,0BAA0B,CAAC,UAAe;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,wBAAwB,CAAC,UAAgB,EAAE,OAAa;QACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,UAAU,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,UAAU,EAAE,WAAW,CAAC,CAAC;IACtG,CAAC;IAED,2BAA2B;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,2BAA2B,EAAE,WAAW,CAAC,CAAC;IAC1F,CAAC;IAED,cAAc;IACd,mBAAmB,CAAC,eAAuB;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,oBAAoB,GAAG,eAAe,EAAE,WAAW,CAAC;aAC3F,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,yBAAyB,CAAC,iBAAyB;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,wBAAwB,GAAG,iBAAiB,EAAE,WAAW,CAAC;aACjG,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,eAAuB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,wBAAwB,GAAG,eAAe,EAAE,WAAW,CAAC;aAC/F,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,iBAAyB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,mBAAmB,GAAG,iBAAiB,EAAE,WAAW,CAAC;aAC5F,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,cAAc,CAAC,UAAkB;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,cAAc,GAAG,UAAU,EAAE,WAAW,CAAC;aAChF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,qBAAqB,CAAC,MAAW;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC;aACjF,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,UAAU;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,8BAA8B,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACjH,CAAC;IAED,2BAA2B;QACvB,gEAAgE;QAChE,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,2BAA2B,CAAC,CAAC;IAC7E,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,sBAAsB,CAAC,CAAC;IACxE,CAAC;IAED,qBAAqB,CAAC,QAAiB,EAAE,UAAmB;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,sBAAsB,GAAG,QAAQ,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;IACtG,CAAC;IAED,qBAAqB,CAAC,OAAY;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4EAAc,GAAG,mBAAmB,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED,eAAe,CAAC,GAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,eAAe,aAAa,GAAG,CAAC,UAAU,eAAe,EAAE,GAAG,CAAC,CAAC;IACjH,CAAC;IAED,mBAAmB,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,eAAe,gCAAgC,EAAE,EAAE,CAAC,CAAC;IACtG,CAAC;IAED,QAAQ,CAAC,EAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,eAAe,+BAA+B,EAAE,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,IAAI,CAAC,eAAe,aAAa,EAAE,aAAa,CAAC,CAAC;IACtG,CAAC;IAED,eAAe,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,GAAG,IAAI,CAAC,eAAe,aAAa,EAAE,oBAAoB,CAAC,CAAC;IAC7G,CAAC;IAED,aAAa,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,GAAG,IAAI,CAAC,eAAe,WAAW,EAAE,cAAc,CAAC,CAAC;IAC9F,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,QAAgB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,eAAe,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;IACvG,CAAC;IAED,gBAAgB,CAAC,EAAU,EAAE,QAAgB;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,GAAG,IAAI,CAAC,eAAe,WAAW,EAAE,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IAC/G,CAAC;IAED,kBAAkB,CAAC,OAAY;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,2BAA2B,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3G,CAAC;IAED,uBAAuB,CAAC,OAAY;QAChC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,mCAAmC,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACnH,CAAC;IACD,gBAAgB,CAAC,eAAwB;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,GAAG,0BAA0B,GAAG,eAAe,CAAC,CAAC;IAC9F,CAAC;;gFAlZQ,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBAFb,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBuC;AACR;AAgBd;;;;;AAQvC,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACL,CAAC;AAKK,MAAM,sBAAuB,SAAQ,kDAAc;IAMtD,YACY,IAAgB,EAChB,aAA2B,EAC3B,SAAyB;QAEjC,KAAK,CAAC,IAAI,CAAC,CAAC;QAJJ,SAAI,GAAJ,IAAI,CAAY;QAChB,kBAAa,GAAb,aAAa,CAAc;QAC3B,cAAS,GAAT,SAAS,CAAgB;QALrC,qBAAgB,GAAQ,EAAE,CAAC;QAQvB,IAAI,CAAC,SAAS,GAAG,GAAG,6EAAuB,EAAE,CAAC;QAC9C,IAAI,CAAC,UAAU,GAAG,GAAG,8EAAwB,EAAE,CAAC;QAChD,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAClF,IAAI,CAAC,gBAAgB,GAAG,EAAC,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,EAAC,CAAC;IACzF,CAAC;IAGD,aAAa;QACT,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAsB,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,YAAY,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAoB,UAAU,EAAE,EAAE,CAAC,CAAC;IAEzE,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAiB,UAAU,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAiB,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC1E,CAAC;IAGD,iCAAiC;IACjC,sCAAsC,CAAC,EAAU;QAC7C,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAC7B,yDAAyD,EAAE,EAAE,CAAC,CAAC;IAEvE,CAAC;IAED,0BAA0B;IAC1B,4BAA4B,CAAC,EAAU;QACnC,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAC7B,+CAA+C,EAAE,EAAE,CAAC,CAAC;IAE7D,CAAC;IAGD,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoB,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC7F,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,oCAAoC,EAAE,WAAW,CAAC,CAAC;IAC7F,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,IAAI,CAAC,UAAU,GAAG,mBAAmB,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAU,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IACzE,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,IAAI,CAAC,SAAS,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC;IACtF,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAY,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,WAAW,CAAC,CAAC;IAC7E,CAAC;IAED,mBAAmB;IACnB,WAAW;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,UAAU,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC;IAGD,qBAAqB;IACrB,cAAc,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACxE,CAAC;IAGD,YAAY,CAAC,OAAe;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,SAAS,GAAG,gBAAgB,GAAG,OAAO,EAAE,WAAW,CAAC,CAAC;IACzF,CAAC;IAGD,8BAA8B;IAC9B,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAED,mBAAmB,CAAC,gBAAwB;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kBAAkB,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC9F,CAAC;IAGD,qBAAqB;IACrB,uBAAuB,CAAC,cAAmB;QACvC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,cAAc,EAAE,WAAW,CAAC,CAAC;IAC/E,CAAC;IAGD,qBAAqB,CAAC,gBAAwB;QAE1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgB,IAAI,CAAC,SAAS,GAAG,0BAA0B,GAAG,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACtH,CAAC;IAGD,yBAAyB;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,IAAI,CAAC,SAAS,GAAG,wBAAwB,EAAE,WAAW,CAAC,CAAC;IAC3G,CAAC;IAED,8BAA8B,CAAC,gBAAwB;QACnD,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,qCAAqC;cACtD,gBAAgB,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,IAAI,CAAC,SAAS,GAAG,cAAc,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED,cAAc,CAAC,WAAmB,EAAE,MAAc;QAC9C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CACA,IAAI,CAAC,SAAS,GAAG,qBAAqB,GAAG,WAAW,GAAG,GAAG,GAAG,MAAM,EACnE,WAAW,CACd,CAAC;IACV,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,IAAI,CAAC,SAAS,GAAG,cAAc,EAAE,WAAW,CAAC,CAAC;IACvF,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC;IACnF,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,IAAI,CAAC,SAAS,GAAG,oBAAoB,EAAE,WAAW,CAAC,CAAC;IACpG,CAAC;IAED,2BAA2B;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,IAAI,CAAC,SAAS,GAAG,0BAA0B,EAAE,WAAW,CAAC,CAAC;IACxG,CAAC;IAED,QAAQ,CAAC,KAAU;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAU,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IAClF,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACnE,CAAC;IAED,iBAAiB,CAAC,KAAU;QACxB,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACpE,CAAC;IAED,qBAAqB;IAErB,gBAAgB,CAAC,eAAoB;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,SAAS,GAAG,wBAAwB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC;IACxG,CAAC;IAEK,kBAAkB,CAAC,GAAQ;;YAC7B,8EAA8E;YAC9E,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAG3E,QAAQ;YACR,6BAA6B;YAC7B,uCAAuC;YACvC,oCAAoC;YACpC,OAAO;YACP,IAAI;QACR,CAAC;KAAA;IAED,wDAAwD;IAExD,sBAAsB,CAAC,KAAU;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,uBAAuB,CAAC,KAAU;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,gBAAgB,CAAC,GAAQ;QACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;QAErC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,EAAE,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,CAAC;IAED,mBAAmB,CAAC,GAAQ;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,sBAAsB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,CAAC;IAED,mBAAmB,CAAC,EAAU;QAE1B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAM,IAAI,CAAC,SAAS,GAAG,wBAAwB,GAAG,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7G,CAAC;IAED,sGAAsG;IACtG,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,qBAAqB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,iBAAiB,CAAC,GAAQ;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,oBAAoB,CAAC,EAAU;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,qBAAqB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,sBAAsB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kBAAkB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,mBAAmB,CAAC,GAAQ;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,sBAAsB,CAAC,EAAU;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,qBAAqB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,uBAAuB;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,qBAAqB,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,oBAAoB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,0BAA0B,CAAC,EAAU;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACzE,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAS,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,eAAe,CAAC,GAAQ;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAED,eAAe;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,mBAAmB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,kBAAkB;QACd,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAED,qBAAqB;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,sBAAsB;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC;IAED,eAAe;QACX,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,iBAAiB,EAAE,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,oBAAoB;QAChB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,wBAAwB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAED,wBAAwB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;QAC1B,eAAe;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,IAAI,CAAC,SAAS,GAAG,yBAAyB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/G,CAAC;IAED,kCAAkC,CAAC,EAAW;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,0BAA0B,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,yBAAyB,CAAC,GAAQ;QAE9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,yBAAyB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAClF,CAAC;IAED,4BAA4B,CAAC,EAAU;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,kCAAkC,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,CAAC;IAED,2DAA2D;IAG3D,gBAAgB;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,CAAC;IAED,cAAc,CAAC,EAAU;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,iFAAiF;IAEjF,kCAAkC;QAC9B,OAAO,IAAI,CAAC,MAAM,CACjB,4BAA4B,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,oCAAoC,CAAC,EAAU;QAE3C,OAAO,IAAI,CAAC,WAAW,CACtB,4BAA4B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,6BAA6B,CAAC,GAAQ;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,4BAA4B,EAAE,GAAG,CAAC,CAAC;IAC9E,CAAC;IAED,gCAAgC,CAAC,EAAU;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,gCAAgC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3F,CAAC;IAED,kEAAkE;IAElE,6BAA6B;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAED,iCAAiC,CAAC,EAAU;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,wBAAwB,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChF,CAAC;IAED,wBAAwB,CAAC,GAAQ;QAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;IAED,2BAA2B,CAAC,EAAU;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,2BAA2B,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACtF,CAAC;IAGD,4BAA4B;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,yBAAyB,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkB,IAAI,CAAC,SAAS,GAAG,6CAA6C,CAAC,CAAC;IAC1G,CAAC;IAED,gCAAgC;QAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAkC,uBAAuB,CAAC,CAAC;IAE3F,CAAC;IAGD,4BAA4B,CAAC,qBAA4C;QACrE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,uBAAuB,EAAE,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC;IAClG,CAAC;IAGD,2BAA2B,CAAC,uBAA+B;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,gCAAgC;cACjE,uBAAuB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;;4FAnbQ,sBAAsB;uHAAtB,sBAAsB,WAAtB,sBAAsB,mBAFnB,MAAM;;;;;;;;;;;;;;;;;;;ACjCyC;AAER;;;AAGvD,MAAM,WAAW,GAAG;IAChB,OAAO,EAAE,IAAI,6DAAW,CAAC;QACrB,aAAa,EAAE,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;KAC3D,CAAC;CACL,CAAC;AAOK,MAAM,SAAS;IAGlB,YACY,KAAiB;QAAjB,UAAK,GAAL,KAAK,CAAY;QAEzB,sBAAsB;QACtB,IAAI,CAAC,SAAS,GAAG,GAAG,6EAAuB,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,CAAI,QAAgB;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC;IACxD,CAAC;IAED,WAAW,CAAI,QAAgB,EAAE,EAAU;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,GAAG;YACxD,CAAC,EAAE,CAAC,CAAC;IACT,CAAC;IAED,SAAS,CAAI,QAAgB,EAAE,OAAY;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,CAAI,QAAgB,EAAE,EAAU;QACnC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAI,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,EAAC,EAAE,CAAC,CAAC;IACvE,CAAC;;kEAzBQ,SAAS;0GAAT,SAAS,WAAT,SAAS,mBAJN,MAAM;;;;;;;;;;;;;;;;;;;;ACAf,MAAM,iBAAiB;IAE5B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,kBAAkB,CAAC,QAAgC;QACjD,IAAI,UAAU,GAAG,EAAkB,CAAC;QACpC,IAAI,QAAQ,EAAE;YACZ,IAAI,QAAQ,CAAC,UAAU,EAAE;gBACvB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;aAC9E;YACD,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;gBACjD,oDAAoD;gBACpD,UAAU,CAAC,IAAI,CAAC;oBACd,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7B,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;oBACvC,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;oBACzB,WAAW,EAAE,QAAQ,CAAC,GAAG;oBACzB,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC,CAAC;aACJ;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;;kFAtBU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB;;;;;;;;;;;;;;;;;;;ACZgE;AACnD;AACW;;AAS/C,MAAM,YAAY;IAiBvB,YAC4B,QAAkB,EAC5C,eAAiC;QADP,aAAQ,GAAR,QAAQ,CAAU;QAjBvC,kBAAa,GAAyB,IAAI,uDAAY,EAAE,CAAC;QAEzD,gBAAW,GAAc;YAChC;gBACE,MAAM,EAAE,YAAY;gBACpB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,KAAK;aAClB;YACD;gBACE,MAAM,EAAE,iBAAiB;gBACzB,WAAW,EAAE,SAAS;gBACtB,UAAU,EAAE,KAAK;aAClB;SAAC,CAAC;QAQD,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,gEAAgE;IAChE,aAAa,CAAE,SAAiB;QAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAE/B,uCAAuC;QACvC,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,uCAAuC;QAEvC,+BAA+B;QAC/B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAExD,CAAC;IAED,WAAW,CAAC,SAAS,EAAE,SAAiB;QACtC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IAED,cAAc,CAAC,SAAiB;QAC9B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC7B,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE;gBACxB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uCAAuC;IACvC,iBAAiB;QACf,MAAM,QAAQ,GAAG,kEAAa,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAEjC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC/C;QAAC,OAAO,CAAC,EAAE,GAAE;IAChB,CAAC;;wEAhEU,YAAY,yDAkBb,qDAAQ;6GAlBP,YAAY,WAAZ,YAAY;;;;;;;;;;;;;;;;;;;;;;ACJlB,MAAM,gBAAgB;IAiF3B,YACU,eAAgC,EAChC,YAA0B;QAD1B,oBAAe,GAAf,eAAe,CAAiB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAjFpC,aAAQ,GAAG;YACT,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YAC5D,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;YACxD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YAC5D,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,wBAAwB,EAAE;YAC1E,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC1D,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,qBAAqB,EAAE;YACpE,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxE,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,uBAAuB,EAAE;YACxE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE;YAC9D,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,sBAAsB,EAAE;YACtE,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;YACxD,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC1D,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC1D,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;YACxD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;YACxD,EAAE,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE;YAC5D,EAAE,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,mBAAmB,EAAE;YAChE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE;YAC5C,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,qBAAqB,EAAE;YACpE,EAAE,MAAM,EAAE,qBAAqB,EAAE,UAAU,EAAE,qBAAqB,EAAE;YACpE,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE;YAC1D,EAAE,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE;YAC9D,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,eAAe,EAAE;YACxD,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE;YAC5C,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE;YACpD,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;YAClD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE;YAChD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE;YAC5C,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE;YACtD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C;gBACE,MAAM,EAAE,8CAA8C;gBACtD,UAAU,EAAE,8CAA8C;aAC3D;YACD,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE;YAC9C,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE;SACnD;IAMD,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,CAAC,eAAe,CAAC,UAAU,CAC7B,CAAC,CAAC,IAAI,EACN,IAAI,CAAC,YAAY,CAAC,8BAA8B,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC,CAC1F,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;;gFA9FU,gBAAgB;iHAAhB,gBAAgB,WAAhB,gBAAgB,mBAFf,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACJqC;AACa;AACE;AACjB;AACE;AACqB;AACnB;AACE;AACI;AACV;AACU;AACK;AACQ;AACd;AACT;AACM;AACJ;AACF;AACM;AACN;AACgB;AACZ;AACI;AACI;AACD;AACF;AACP;AACF;AACA;AACE;AACE;AACE;AACS;AACX;AACE;AACU;;AA4ChE,MAAM,oBAAoB;;wFAApB,oBAAoB;iHAApB,oBAAoB;qHAvC7B,yEAAiB;QACjB,qEAAe;QACf,mEAAc;QACd,iFAAqB;QACrB,6EAAmB;QACnB,4EAAkB;QAClB,mEAAc;QACd,qEAAe;QACf,qEAAe;QACf,iFAAoB;QACpB,kEAAa;QACb,wEAAgB;QAChB,wEAAgB;QAChB,kEAAa;QACb,2EAAiB;QACjB,kEAAa;QACb,wEAAgB;QAChB,kEAAa;QACb,4EAAkB;QAClB,mFAAqB;QACrB,oEAAc;QACd,kEAAa;QACb,yFAAwB;QACxB,iFAAoB;QACpB,sEAAe;QACf,wEAAgB;QAChB,2EAAiB;QACjB,oEAAc;QACd,kEAAa;QACb,4EAAkB;QAClB,wEAAmB;QACnB,kFAAmB;QACnB,kEAAa;QACb,oEAAe;QACf,oEAAc;QACd,iFAAoB;QACpB,wEAAgB;mIAGP,oBAAoB,cAvC7B,yEAAiB;QACjB,qEAAe;QACf,mEAAc;QACd,iFAAqB;QACrB,6EAAmB;QACnB,4EAAkB;QAClB,mEAAc;QACd,qEAAe;QACf,qEAAe;QACf,iFAAoB;QACpB,kEAAa;QACb,wEAAgB;QAChB,wEAAgB;QAChB,kEAAa;QACb,2EAAiB;QACjB,kEAAa;QACb,wEAAgB;QAChB,kEAAa;QACb,4EAAkB;QAClB,mFAAqB;QACrB,oEAAc;QACd,kEAAa;QACb,yFAAwB;QACxB,iFAAoB;QACpB,sEAAe;QACf,wEAAgB;QAChB,2EAAiB;QACjB,oEAAc;QACd,kEAAa;QACb,4EAAkB;QAClB,wEAAmB;QACnB,kFAAmB;QACnB,kEAAa;QACb,oEAAe;QACf,oEAAc;QACd,iFAAoB;QACpB,wEAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5E2B;AAE/C,WAAW;AAC6C;AACU;AACC;AACnB;AAC+B;AACH;AAEG;AACf;AACe;;AAwBxE,MAAM,YAAY;;wEAAZ,YAAY;yGAAZ,YAAY;8GAfZ;QACT,iEAAY;QACZ,2EAAiB;QACjB,4EAAiB;QACjB,yDAAS;QACX,kBAAkB;QAChB,wFAAiB;QACjB,qFAAgB;KACjB,YAdQ;YACT,0DAAY;YACV,wFAAsB;YACtB,yEAAiB;YACjB,wFAAsB;SACvB,EAWC,wFAAsB;QACtB,yEAAiB;QACjB,wFAAsB;mIAGb,YAAY,cApBvB,0DAAY;QACV,wFAAsB;QACtB,yEAAiB;QACjB,wFAAsB,aAYtB,wFAAsB;QACtB,yEAAiB;QACjB,wFAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCwC;AACgB;AAClC;AAGoB;AAGA;AAGf;AAC4D;AAEpE;AACA;;;;;;;;;;;ICfzC,kFAA0F;;;IA8BlE,qFACoE;IAChE,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B,uEAA4D;IAChE,4DAAiB;;;IAHD,oMAAmD;IAEtC,0DAAkC;IAAlC,sIAAkC;;;IAOvD,iFAAyD;IACrD,uDACJ;IAAA,4DAAa;;;IAF4B,4EAAe;IACpD,0DACJ;IADI,8FACJ;;;IAWI,iFAC2B;IACvB,uDACJ;IAAA,4DAAa;;;IAFD,2EAAc;IACtB,0DACJ;IADI,oIACJ;;;IA0DR,qFAE6E;IACzE,4EAAW;IAAA,yEAAS;IAAA,4DAAY;IAChC,uEAE+C;IACnD,4DAAiB;;;;IALD,yQAA4D;IAD5D,gFAAuB;IAK5B,0DAAsC;IAAtC,2IAAsC;;;IA+C7C,4EAGa;;;IAFD,mGAAsC;;;IAsBlD,4EAEa;;;IADD,6EAAgB;;;IAWxB,4EAGa;;;IAFD,iGAAoC;;;;IAP5D,sEAA0E;IACtE,qFAAiF;IAC7E,4EAAW;IAAA,mEAAQ;IAAA,4DAAY;IAC/B,iFACwD;IAA5C,4UAAmB,+BAAuB,IAAC;IACnD,iFAA2B;IAAA,qEAAU;IAAA,4DAAa;IAClD,+IAGa;IACjB,4DAAa;IACjB,4DAAiB;IAEjB,qFAA+D;IAC3D,4EAAW;IAAA,2EAAU;IAAA,4DAAY;IACjC,wEAC0C;IAC9C,4DAAiB;IACrB,4DAAM;;;IAjBc,0DAAuB;IAAvB,gFAAuB;IAEvB,0DAA+C;IAA/C,gHAA+C;IAE3C,0DAAc;IAAd,uEAAc;IACO,0DAAY;IAAZ,sFAAY;IAOrC,0DAAuB;IAAvB,gFAAuB;IAE5B,0DAA4C;IAA5C,6GAA4C;;;IAanD,iFACqC;IACjC,uDACJ;IAAA,4DAAa;;;IAFD,+GAAwB;IAChC,0DACJ;IADI,0HACJ;;;IAXR,qFAGkG;IAC9F,4EAAW;IAAA,gEAAK;IAAA,4DAAY;IAC5B,iFACgF;IAC5E,iFAA2B;IAAA,qEAAU;IAAA,4DAAa;IAClD,0JAGa;IACjB,4DAAa;IACjB,4DAAiB;;;;IAVD,+VAAiF;IADjF,gFAAuB;IAGvB,0DAAiD;IAAjD,kHAAiD;IAE7C,0DAAc;IAAd,uEAAc;IACI,0DAAS;IAAT,mFAAS;;;;IAO/C,wEAA8C;IAC1C,0EACkD;IAC9C,0EAAkB;IACd,qFAA2D;IACvD,uEAGuF;IAC3F,4DAAiB;IACrB,4DAAM;IACV,4DAAM;IACV,qEAAe;;;IARa,0DAAuB;IAAvB,gFAAuB;IAC5B,0DAA2C;IAA3C,4GAA2C;;;IAwB1D,0EAC8C;IACtC,2EAAiC;IAC7B,yEAAQ;IAAA,uDACD;IAAA,4DAAS;IAAA,uDACpB;;IAAA,4DAAO;IACf,4DAAM;;;IAHc,0DACD;IADC,0JACD;IAAS,0DACpB;IADoB,4KACpB;;;IAcR,0EACqC;IACjC,oEAAG;IAAA,+EAAU;IAAA,4DAAI;IAAC,uDACtB;;IAAA,4DAAM;;;IADgB,0DACtB;IADsB,0KACtB;;;;IAqBQ,+EAEoB;IAFI,4TAAS,yBAAiB,IAAC;IAE/B,kEACpB;IAAA,4DAAW;;;IAXnB,0EAC2B;IACnB,2EAAqC;IAAA,uDACI;IAAA,4DAAO;IACpD,qFAA2D;IACvD,uEAEiB;IACjB,2IAGW;IACf,4DAAiB;IACrB,4DAAM;;;IAXuC,0DACI;IADJ,8OACI;IAC7B,0DAAuB;IAAvB,gFAAuB;IACnB,0DAAmD;IAAnD,0LAAmD;IAGxD,0DAAW;IAAX,uEAAW;;;IAqClC,qEAAgD;IAC5C,qEAAI;IAAA,uDAAW;IAAA,4DAAK;IACpB,qEAAI;IAAA,4EAAwB;IAAA,uDAA4B;IAAA,4DAAO;IAAA,4DAAK;IACpE,qEAAI;IAAA,4EAAwB;IAAA,uDAAoB;IAAA,4DAAO;IAAA,4DAAK;IAC5D,qEAAI;IAAA,6EAAmC;IAAA,wDAAsC;;IAAA,4DAAO;IACpF,4DAAK;IACL,sEAAI;IAAA,6EAAwB;IAAA,wDAA6B;IAAA,4DAAO;IAAA,4DAAK;IACrE,sEAAI;IAAA,6EAAmC;IAAA,wDAAiC;;IAAA,4DAAO;IAAA,4DAAK;IACpF,sEAAI;IAAA,6EAAmC;IAAA,wDAClC;;IAAA,4DAAO;IAAA,4DAAK;IACjB,sEAAI;IAAA,6EAAmC;IAAA,wDAAoC;;IAAA,4DAAO;IAClF,4DAAK;IACL,sEAAI;IAAA,6EAAmC;IAAA,wDAAiC;;IAAA,4DAAO;IAAA,4DAAK;IACpF,sEAAI;IACA,6EAAmC;IAC/B,wDACJ;;IAAA,4DAAO;IACX,4DAAK;IACL,sEAAI;IAAA,6EAAmC;IAAA,wDAAmC;;IAAA,4DAAO;IACjF,4DAAK;IACL,sEAAI;IAAA,6EACiC;IAAA,wDAAqD;;;IAAA,4DAAO;IACjG,4DAAK;IACT,4DAAK;;;;;;IAtBG,0DAAW;IAAX,0EAAW;IACa,0DAA4B;IAA5B,2HAA4B;IAC5B,0DAAoB;IAApB,mFAAoB;IACT,0DAAsC;IAAtC,+JAAsC;IAEjD,0DAA6B;IAA7B,4HAA6B;IAClB,0DAAiC;IAAjC,0JAAiC;IACjC,0DAClC;IADkC,4KAClC;IACkC,0DAAoC;IAApC,6JAAoC;IAEpC,0DAAiC;IAAjC,0JAAiC;IAGhE,0DACJ;IADI,wOACJ;IAEmC,0DAAmC;IAAnC,4JAAmC;IAGrC,0DAAqD;IAArD,+OAAqD;;ADxV9H,MAAM,SAAS,GAAG;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,cAAc,EAAE,uBAAuB;IACvC,iBAAiB,EAAE,mBAAmB;IACtC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAC,eAAe;IAC7B,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;CAC3B,CAAC;AAEF,IAAK,SAQJ;AARD,WAAK,SAAS;IACV,2CAAK;IACL,6CAAM;IACN,iDAAQ;IACR,qDAAU;IACV,+CAAO;IACP,uCAAG;IACH,2CAAK;AACT,CAAC,EARI,SAAS,KAAT,SAAS,QAQb;AAQM,MAAM,4BAA4B;IA8DrC,YACY,EAAe,EACf,YAAgC,EAChC,cAA+B,EAC/B,YAA0B,EAC1B,iBAAqC,EACrC,MAAiB,EACjB,aAA6B,EAC7B,YAA0B,EAC3B,SAAqD,EAC5B,IAAS;QATjC,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAoB;QAChC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,sBAAiB,GAAjB,iBAAiB,CAAoB;QACrC,WAAM,GAAN,MAAM,CAAW;QACjB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,iBAAY,GAAZ,YAAY,CAAc;QAC3B,cAAS,GAAT,SAAS,CAA4C;QAC5B,SAAI,GAAJ,IAAI,CAAK;QAvEpC,YAAO,GAAG,gFAAM,CAAC;QAC1B,WAAM,GAAU,EAAE,CAAC;QACnB,aAAQ,GAAc,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,CAAC,EAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAE1D,SAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YAC9C,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YAC7C,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE;YAC5B,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI;YACjC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,IAAI,EAAE;YACrC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI,IAAI,EAAE;YACtC,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,IAAI;YACrC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,IAAI;YAChC,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,IAAI;YACrC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAC,CAAC;YAC3B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI;YAC7B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI;SAC/B,CAAC,CAAC;QACH,cAAS,GAAG,SAAS,CAAC;QACtB,YAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;QACjC,YAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,WAAM,GAAa,EAAE,CAAC;QACtB,cAAS,GAAU,EAAE,CAAC;QACtB,uBAAkB,GAAU,EAAE,CAAC;QAC/B,cAAS,GAAG,CAAC,CAAC;QACd,UAAK,GAAG,CAAC,CAAC;QACV,iBAAY,GAAG,CAAC,CAAC;QACjB,mBAAc,GAAG,CAAC,CAAC;QACnB,kBAAa,GAAG,CAAC,CAAC;QAClB,qBAAgB,GAAG,CAAC,CAAC;QACZ,gBAAW,GAA8B;YAC9C,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO;YAC1B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ;YAC5B,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,mBAAmB;YACrC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,gBAAgB;YAC3C,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,iBAAiB;YAC7C,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,UAAU;YACzC,CAAC,SAAS,CAAC,mBAAmB,CAAC,EAAE,OAAO;SAC3C,CAAC;QACO,aAAQ,GAA8B;YAC3C,QAAQ,EAAE,eAAe;YACzB,GAAG,EAAE,wBAAwB;YAC7B,GAAG,EAAE,wBAAwB;YAC7B,gBAAgB,EAAE,gCAAgC;YAClD,gBAAgB,EAAE,gCAAgC;YAClD,kBAAkB,EAAE,kBAAkB;YACtC,SAAS,EAAE,8BAA8B;YACzC,eAAe,EAAE,4BAA4B;YAC7C,KAAK,EAAE,+CAA+C;SACzD,CAAC;QACF,gBAAW,GAAU,EAAE,CAAC;QACxB,aAAQ,GAAG,KAAK,CAAC;QACR,kBAAa,GAA8B;YAChD,CAAC,mEAAe,CAAC,EAAE,SAAS;YAC5B,CAAC,gEAAY,CAAC,EAAE,WAAW;YAC3B,CAAC,kEAAc,CAAC,EAAE,WAAW;SAChC,CAAC;QACM,kBAAa,GAAmB,EAAE,CAAC;IAa3C,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ;;QAGJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,yDAAQ,CAAC,CAAC,CAAC,EAAE;YACnD,MAAM,OAAO,GAAG,EAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,EAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACzD,IAAI,CAAC,OAAO,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,IAAI,IAAI,EAAE,CAAC;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;YAC9D,IAAI,CAAC,SAAS,EAAE;gBACZ,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAkB,CAAC,CAAC;aAC/C;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,yDAAQ,CAAC,CAAC,CAAC,EAAE;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC;YAC9D,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;gBAClB,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAkB,CAAC,CAAC;aAC/C;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,yDAAQ,CAAC,CAAC,CAAC,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YACtD,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChB,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAkB,CAAC,CAAC;aAC/C;YACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAChF,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,+CAAQ,CAAC;YACL,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EAAC,CAAC;iBACpF,IAAI,CAAC,2DAAU,CAAC,GAAG,CAAC,EAAE;;gBACnB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,wCAAwC,CAAC,CAAC;gBAC7F,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACP,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,2DAAU,CAAC,GAAG,CAAC,EAAE;;gBAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;gBAC1C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,4CAA4C,CAAC,CAAC;gBACjG,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,EAAE,EAAoB,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,CAAC,6BAA6B,CAAC,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS,CAAC;SACrF,CAAC,CAAC,IAAI,CAAC,0DAAS,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;;YAChC,SAAS;YACT,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAC,QAAC,CAAC,SAAS,MAAK,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS,KAAC,CAAC;YACnF,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;iBAClB,UAAU,CAAC,UAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,mCAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5G,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACvG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,qBAAqB;YACrB,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC5D,YAAY;YACZ,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC;YAC5B,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAC5I,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,gBAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,eAAe,0CAAE,mBAAmB,CAAC,CAAC;YAC3G,IAAI,CAAC,cAAc,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,OAAO,WAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,cAAc,OAAK,UAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,QAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;gBAC3G,iBAAiB,EAAE,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;gBACnD,aAAa,EAAE,CAAC,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC;gBAC5C,kBAAkB,EAAE,WAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,OAAO,EAAC,CAAC,CAAC,CAAC,UAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;gBACpF,cAAc,EAAE;oBACZ;wBACI,QAAQ,EAAE,IAAI;wBACd,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK;wBACjD,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK;qBACjD;iBACJ;aACJ,CAAC,CAAC,IAAI,CAAC,oDAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAE,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;aACE,SAAS,CAAC;YACP,IAAI,EAAE,EAAE,CAAC,EAAE;gBACP,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACpG,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACZ,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBACpD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,uCAAuC,CAAC,CAAC;YAChG,CAAC;SACJ,CAAC,CACT,CAAC;IACN,CAAC;IAED,IAAI,CAAC,KAAK;QACN,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,mBAAmB,CAAC,QAAa;;QAE7B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,oBAAQ,CAAC,OAAO,0CAAE,cAAc,mCAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,WAAW,CAAC,KAAU;;QAClB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,YAAK,CAAC,KAAK,0CAAE,QAAQ,KAAI,wDAAwD,CAAC,CAAC;IACnH,CAAC;IAED,cAAc,CAAC,EAAC,KAAK,EAAC;;QAClB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE;YACjB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,0CAAE,WAAW,CAAC;iBACnG,SAAS,CAAC;gBACP,IAAI,EAAE,GAAG,CAAC,EAAE;oBACR,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;oBAC1B,oFAAoF;oBACpF,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC;yBAChC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACtE,CAAC;gBACD,KAAK,EAAE,GAAG,CAAC,EAAE;;oBACT,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;oBACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,wCAAwC,CAAC,CAAC;gBACjG,CAAC;aACJ,CAAC,CACT,CAAC;SACL;aAAM;YACH,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,eAAe,EAAE,CAAC;YACxD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,sBAAsB,EAAE,CAAC;SAClE;QAED,IAAI,MAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,MAAK,IAAI,EAAE;YACjC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,aAAa,CAAC,gEAAmB,CAAC,CAAC;YACvE,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,UAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,iBAAiB,CAAC,CAAC;gBACrF,IAAI,CAAC,eAAe,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;aAC5E;SACJ;aAAM;YACH,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,eAAe,EAAE,CAAC;YACtD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC5C,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;SAC5C;QAED,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,sBAAsB,EAAE,CAAC;IACjE,CAAC;IAED,SAAS;;QACL,MAAM,EAAC,KAAK,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QACtC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE;YACjB,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,CAAC;aACpG,SAAS,CAAC;YACP,IAAI,EAAE,GAAG,CAAC,EAAE;;gBACR,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;oBAC1C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU;iBACnD,CAAC,CAAC;gBACH,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC5G,IAAI,CAAC,OAAO,GAAG,WAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,uBAAuB,EAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;YACrG,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;gBACxC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,iDAAiD,CAAC,CAAC;YAC1G,CAAC;SACJ,CAAC,CACT,CAAC;IACN,CAAC;IAED,eAAe,CAAC,EAAC,KAAK,EAAC;QACnB,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;YACzC,OAAO;SACV;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,CAAC;aAC9C,SAAS,CAAC;YACH,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBACzD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,2DAA2D,CAAC,CAAC;gBAChH,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;gBACzC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;SACJ,CACJ,CACR,CAAC;IACN,CAAC;IAED,QAAQ;;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,gFAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,gFAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,gFAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,GAAG,gBAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,iBAAiB,0CAAE,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAC1F,CAAC,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC;YAC9C,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACrD,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,aAAa,GAAG,uEAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACpG,IAAI,CAAC,gBAAgB,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,0CAAE,UAAU,mCAAI,CAAC,CAAC,CAAC;IACzH,CAAC;IAED,eAAe;;QACX,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,+EAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5F,OAAO;SACV;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6HAAwB,EAAE;YACnD,KAAK,EAAE,MAAM;YACb,IAAI,EAAE;gBACF,iBAAiB,EAAE,QAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,OAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;gBAChG,cAAc,EACV,QAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,OAAK,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ;gBACjF,OAAO,EAAE,0EAAa,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC/B,QAAQ,EAAE,0EAAa,CAAC,EAAE,CAAC,KAAK,CAAC;gBACjC,gBAAgB,EAAE,UAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,0CAAE,gBAAgB;gBACtE,iBAAiB,EAAE,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,IAAI,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,cAAc,EAAE;aACjF;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,GAAG,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;YAC9B,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;aACvD;QACL,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,UAAU,CAAC,EAAU;;QACjB,OAAO,gBAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,MAAM;;QACF,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,+EAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC5F,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;QAC1C,MAAM,OAAO,mCACN,IAAI,CAAC,IAAI,CAAC,KAAK,KAClB,SAAS,EAAE,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS,EACvC,SAAS,EAAE,UAAI,CAAC,IAAI,CAAC,QAAQ,0CAAE,SAAS,EACxC,OAAO,EAAE,UAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,0CAAE,OAAO,EAC/C,eAAe,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,eAAe,EACtC,cAAc,EAAE,UAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,0CAAE,cAAc,EACvE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAChE,OAAO,EAAE,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,QAAQ,EACpC,OAAO,EAAE,GAAG,EACZ,aAAa,EAAE,IAAI,CAAC,SAAS,EAC7B,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,EACzC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,EACpD,cAAc,EAAE,KAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB,EAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC/D,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,EACnD,UAAU,EAAE,CAAC;oBACT,cAAc,EAAE,UAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,0CAAE,cAAc;oBACvE,mBAAmB,EAAE,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,0CAAE,QAAQ;wBACtE,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,0CAAE,qBAAqB,MAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;oBAChH,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK;iBACxD,CAAC,EACF,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EACpD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,GACjC,CAAC;QACF,OAAO,CAAC,mBAAmB,GAAG,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK,0CAAE,QAAQ;YAC/E,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,0CAAE,qBAAqB,MAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC;QACjG,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;aACzC,IAAI,CAAC,yDAAQ,CAAC,GAAG,CAAC,EAAE;;YACjB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAClB,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;oBAC3B,MAAM,EAAE,UAAI,CAAC,IAAI,CAAC,SAAS,0CAAE,MAAM;oBACnC,SAAS,EAAE,UAAI,CAAC,IAAI,CAAC,OAAO,0CAAE,SAAS;oBACvC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;iBAC/C,CAAC,CAAC,IAAI,CAAC,2DAAU,CAAC,GAAG,CAAC,EAAE;;oBACrB,OAAO,CAAC,KAAK,CAAC,SAAG,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,mCAAmC,CAAC,CAAC;oBACxF,OAAO,yCAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAE,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;aACF,SAAS,CAAC;YACP,IAAI,EAAE,GAAG,EAAE;YACX,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,OAAO,CAAC,KAAK,CAAC,SAAG,CAAC,KAAK,0CAAE,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,wCAAwC,CAAC,CAAC;gBAC7F,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACrC,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,CAAC;SACJ,CAAC,CACT,CAAC;IACN,CAAC;IAED,QAAQ;;QACJ,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;QACrC,IAAI,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,0CAAE,qBAAqB,MAAK,GAAG,EAAE;YAC7D,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;YAC7E,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC;YACnF,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;SACvC;IACL,CAAC;IAEO,WAAW,CAAC,CAAC;;QACjB,uCACO,CAAC,KACJ,SAAS,EAAE,OAAC,CAAC,MAAM,0CAAE,SAAS,EAC9B,YAAY,EAAE,gFAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,EACjD,QAAQ,EAAE,gFAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,EACzC,UAAU,EAAE,gFAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,EAC7C,KAAK,EAAE,gFAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,EACnC,OAAO,EAAE,gFAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,EACvC,KAAK,EAAE,gFAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,IACrC;IACN,CAAC;;wGA5bQ,4BAA4B,m2CAwEzB,sEAAe;0HAxElB,4BAA4B,0HAF1B,CAAC,0DAAY,CAAC;QCjD7B,yEAA6B;QACzB,kJAA0F;;QAC1F,0EAAS;QACL,0EAAiE;QAAxC,wJAAY,YAAQ,IAAC;QAC1C,yEAAiG;QAC7F,0EAAwE;QACpE,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC9B,4DAAO;QAEP,yEAAkB;QACd,6EAEiE;;;QAC7D,wEAAM;QAAA,kEAAM;QAAA,4DAAO;QACnB,4EAAU;QAAA,2EAAe;QAAA,4DAAW;QACxC,4DAAS;QACT,qFAAsC;QAClC,6EAA0D;QAAlD,6JAAoB,KAAK,SAAC,YAAQ,IAAC;QACvC,oEACJ;QAAA,4DAAS;QACT,6EAAyD;QAAjD,6JAAoB,IAAI,SAAC,YAAQ,IAAC;QACtC,iFACJ;QAAA,4DAAS;QACb,4DAAW;QACf,4DAAM;QACV,4DAAM;QAEN,+EAA4C;QACxC,+EAA8B;QAC1B,2EAAkB;QACd,2EAA+C;QAC3C,iJAIiB;QAEjB,sFAA+D;QAC3D,6EAAW;QAAA,sEAAK;QAAA,4DAAY;QAC5B,kFAAgF;QAAhC,6KAAmB,eAAW,IAAC;QAC3E,kFAA2B;QAAA,sEAAU;QAAA,4DAAa;QAClD,yIAEa;QACjB,4DAAa;QACjB,4DAAiB;QAEjB,2EAA0B;QACtB,sFACwC;QACpC,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,kFACuD;QAA3C,sKAAmB,eAAW,SAAC,cAAU,IAAC;QAClD,8EAAY;QAAA,sEAAU;QAAA,4DAAa;QACnC,yIAGa;QACjB,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QAEN,2EAA8D;QAC1D,sFAA2D;QACvD,6EAAW;QAAA,uEAAM;QAAA,4DAAY;QAC7B,wEACiE;QACjE,gFACoC;QAAA,mEACpC;QAAA,4DAAW;QACf,4DAAiB;QACrB,4DAAM;QAEN,2EAAmE;QAC/D,sFAAwC;QACpC,6EAAW;QAAA,qEAAS;QAAA,4DAAY;QAChC,wEAEkE;QACtE,4DAAiB;QACrB,4DAAM;QACV,4DAAM;QAEN,2EAA8E;QAC1E,2EAAyD;QACrD,sFAAsE;QAClE,6EAAW;QAAA,mEAAO;QAAA,4DAAY;QAC9B,wEAA6D;QACjE,4DAAiB;QAEjB,sFAEqE;QACjE,6EAAW;QAAA,wFAAkB;QAAA,4DAAY;QACzC,wEAE+C;QACnD,4DAAiB;QAEjB,sFACoE;QAChE,6EAAW;QAAA,+DAAG;QAAA,4DAAY;QAC1B,wEAE8C;QAClD,4DAAiB;QAEjB,sFACwE;QACpE,6EAAW;QAAA,qEAAI;QAAA,4DAAY;QAC3B,wEAEmD;QACvD,4DAAiB;QAEjB,iJAOiB;QAEjB,sFACsE;QAClE,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B,wEAEwC;QAC5C,4DAAiB;QAEjB,sFAC4E;QACxE,6EAAW;QAAA,wDAAyD;QAAA,4DAAY;QAChF,wEAE0C;QAC9C,4DAAiB;QACrB,4DAAM;QAEN,sFAAqD;QACjD,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B,2EAGyD;QAC7D,4DAAiB;QACrB,4DAAM;QAEN,2EAA8E;QAC1E,sFAA0D;QACtD,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,wEAIoE;QACpE,wFACyD;QACzD,uFAA0C;QAC9C,4DAAiB;QAEjB,sFAAgE;QAC5D,6EAAW;QAAA,2FAAqB;QAAA,4DAAY;QAC5C,kFAA8D;QAC1D,kFAA2B;QAAA,uEAC3B;QAAA,4DAAa;QACb,2IAGa;QACjB,4DAAa;QACjB,4DAAiB;QAEjB,uFAA8D;QAC1D,8EAAW;QAAA,4EAAe;QAAA,4DAAY;QACtC,yEAIsE;QACtE,yFACyD;QACzD,wFAAiD;QACrD,4DAAiB;QAEjB,uFAA4D;QACxD,8EAAW;QAAA,kFAAgB;QAAA,4DAAY;QACvC,mFAAmE;QAC/D,mFAA2B;QAAA,uEAAU;QAAA,4DAAa;QAClD,2IAEa;QACjB,4DAAa;QACjB,4DAAiB;QAEjB,8HAkBM;QAEN,mJAaiB;QAEjB,+IAYe;QACnB,4DAAM;QAIN,4EAA4D;QACxD,4EAAgD;QAC5C,4EAAgD;QAC5C,4EAAyD;QACrD,2EAAQ;QAAA,yEAAY;QAAA,4DAAS;QAAC,yDAClC;;QAAA,4DAAM;QAEN,4EAA8D;QAC1D,2EAAQ;QAAA,yDACD;QAAA,4DAAS;QAAA,yDACpB;;QAAA,4DAAM;QAEN,6HAMM;QAEN,4EAA8C;QAC9C,6EAAiC;QAC7B,2EAAQ;QAAA,2EAAc;QAAA,4DAAS;QAAC,yDACpC;;QAAA,4DAAO;QACP,4DAAM;QACV,4DAAM;QAEN,wEAAK;QACD,4EAAgC;QAC5B,2EAAQ;QAAA,iEAAI;QAAA,4DAAS;QAAC,yDAC1B;;QAAA,4DAAM;QACN,6HAGM;QACN,4EAA0D;QACtD,2EAAQ;QAAA,yEAAY;QAAA,4DAAS;QAAC,yDAClC;;QAAA,4DAAM;QACV,4DAAM;QAEN,wEAAK;QACD,4EAAoB;QAChB,6EAAqC;QAAA,yEAAY;QAAA,4DAAO;QACxD,wEACwD;QAC5D,4DAAM;QAEN,6HAaM;QACV,4DAAM;QACV,4DAAM;QAEN,uFAAqD;QACjD,8EAAW;QAAC,mFAAyB;QAAA,4DAAY;QACjD,4EAE+C;QACnD,4DAAiB;QACrB,4DAAM;QAEN,4EAAqD;QACjD,8EAAoE;QAChE,gFAA4B;QAAA,kEAAK;QAAA,4DAAU;QAC3C,0EAAO;QACP,uEAAI;QACA,2EAAmB;QAAA,8DAAC;QAAA,4DAAK;QACzB,2EAAoB;QAAA,4EAAU;QAAA,4DAAK;QACnC,2EAAsC;QAAA,gFAAS;QAAA,4DAAK;QACpD,2EAAgC;QAAA,iEAAI;QAAA,4DAAK;QACzC,2EAA+B;QAAA,+DAAE;QAAA,4DAAK;QACtC,2EAAoB;QAAA,yDAA0C;QAAA,4DAAK;QACnE,2EAA+B;QAAA,mEAAM;QAAA,4DAAK;QAC1C,2EAAgC;QAAA,kEAAK;QAAA,4DAAK;QAC1C,2EAAgC;QAAA,sEAAS;QAAA,4DAAK;QAC9C,2EAA+B;QAAA,kEAAK;QAAA,4DAAK;QACzC,2EAAgC;QAAA,gEAAG;QAAA,4DAAK;QACxC,2EAAgD;QAAA,kEAAK;QAAA,4DAAK;QAC9D,4DAAK;QACL,4DAAQ;QACR,0EAAO;QACP,6HAuBK;QACL,4DAAQ;QACZ,4DAAQ;QACZ,4DAAM;QACV,4DAAM;QACV,4DAAU;QACd,4DAAW;QACf,4DAAO;QACX,4DAAU;QACd,4DAAM;;;;;;;;;;QApXiB,0DAA6B;QAA7B,0JAA6B;QAEtC,0DAAkB;QAAlB,+EAAkB;QAEV,0DAA0B;QAA1B,mFAA0B;QAKc,0DAA2C;QAA3C,iKAA2C;QAC7E,+JAAoC;QAoBC,2DAA8B;QAA9B,8FAA8B;QAMnD,0DAAuB;QAAvB,gFAAuB;QAEvB,0DAAmC;QAAnC,gGAAmC;QAC/B,0DAAc;QAAd,uEAAc;QACI,0DAAS;QAAT,+EAAS;QAO3B,0DAAuB;QAAvB,gFAAuB;QAGvB,0DAAkC;QAAlC,+FAAkC;QAGb,0DAAa;QAAb,mFAAa;QASlC,0DAAuB;QAAvB,gFAAuB;QAE5B,0DAAoC;QAApC,iGAAoC;QAS/B,0DAAuB;QAAvB,gFAAuB;QAE5B,0DAA0C;QAA1C,uGAA0C;QAWjC,0DAAmC;QAAnC,kIAAmC;QAKvC,0DAAoD;QAApD,kPAAoD;QAIzD,0DAA6B;QAA7B,4HAA6B;QAIxB,0DAAmD;QAAnD,gPAAmD;QADnD,gFAAuB;QAK5B,0DAA4B;QAA5B,2HAA4B;QAIvB,0DAAuD;QAAvD,yPAAuD;QADvD,gFAAuB;QAK5B,0DAAiC;QAAjC,gIAAiC;QAG3B,0DAAkC;QAAlC,oIAAkC;QAUnC,0DAAqD;QAArD,qPAAqD;QADrD,gFAAuB;QAK5B,0DAA+B;QAA/B,8HAA+B;QAI1B,0DAA2D;QAA3D,+PAA2D;QAD3D,gFAAuB;QAExB,0DAAyD;QAAzD,iIAAyD;QAG7D,0DAAiC;QAAjC,gIAAiC;QAIhC,0DAAwB;QAAxB,iFAAwB;QAK1B,0DAAmC;QAAnC,kIAAmC;QAQrC,0DAAyB;QAAzB,8EAAyB;QAIV,0DAAe;QAAf,oEAAe;QAK1B,0DAAuB;QAAvB,gFAAuB;QAEvB,0DAAiD;QAAjD,8GAAiD;QAC7C,0DAAc;QAAd,uEAAc;QAEO,0DAAqB;QAArB,2FAAqB;QAO9C,0DAAuB;QAAvB,gFAAuB;QAG3B,0DAAgC;QAAhC,8EAAgC;QAIjB,0DAAsB;QAAtB,oEAAsB;QAOjC,0DAA6C;QAA7C,0GAA6C;QACzC,0DAAc;QAAd,uEAAc;QACK,0DAAwB;QAAxB,8FAAwB;QAMzD,0DAAkE;QAAlE,mMAAkE;QAoBvD,0DACoC;QADpC,uSACoC;QActC,0DAA6B;QAA7B,6FAA6B;QAqBF,0DAClC;QADkC,kKAClC;QAGY,0DACD;QADC,sJACD;QAAS,0DACpB;QADoB,gKACpB;QAEM,0DAA8D;QAA9D,yMAA8D;QAUhC,0DACpC;QADoC,kLACpC;QAM0B,0DAC1B;QAD0B,wKAC1B;QACM,0DAA+C;QAA/C,mKAA+C;QAKnB,0DAClC;QADkC,2KAClC;QAOU,0DAA0C;QAA1C,wIAA0C;QAG9C,0DAA8D;QAA9D,yMAA8D;QAiB5D,0DAAwB;QAAxB,iFAAwB;QAE1B,0DAAyC;QAAzC,sGAAyC;QAgB3B,2DAA0C;QAA1C,wJAA0C;QAU7C,2DAAe;QAAf,mFAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpVR;AAEsB;AAErC;AACM;AAG2C;AAIlC;AAIP;AAGkC;AACuC;AAGtB;AAE9C;AACmD;;;;;;;;;;;;;;;IC3B7G,uEAAqB;IACjB,yEAAyB;IACzB,mFAA0D;IAC9D,6DAAM;;;;IA0BkB,8EAI+D;IAFvD,6SAAS,kBAAU,IAAC;IAGxB,wDACA;IAAA,0EAAkF;IACtF,6DAAS;;;IAPgD,yFAA6B;IAG9E,4IAAoE;IAExE,2DACA;IADA,4IACA;IAAU,2DAA4D;IAA5D,oIAA4D;;;IAG1E,8EAGiE;IAC7D,wEAAM;IAAA,kEAAM;IAAA,6DAAO;IACnB,4EAAU;IAAA,2EAAe;IAAA,6DAAW;IACxC,6DAAS;;;;IALD,uFAA2B;IAC3B,qFAAoB;;;;IAuB5B,8EAI4D;IAApD,sWAAS,0BAAc,IAAC;IAC5B,wEAAM;IAAA,wDAA6B;IAAA,6DAAO;IAC9C,6DAAS;;;;IAHD,gOAA6G;IAD7G,8OAA8G;IAG5G,2DAA6B;IAA7B,kIAA6B;;;IAoB/B,kFAA+D;IACvD,4EAAkC;IAC9B,4EAAyB;IAAA,yEAAO;IAAC,wDAAyB;IAAA,6DAAQ;IAAA,6DAAO;IAC7E,6DAAO;IACf,6DAAa;;;IAJgC,+EAAiB;IAEjB,2DAAyB;IAAzB,+HAAyB;;;IAK9E,6EAEuB;IACnB,8FACJ;IAAA,6DAAQ;;;;IAlBZ,2EAE0D;IACtD,sFAAwD;IACpD,6EAAW;IAAA,mEAAO;IAAA,6DAAY;IAC9B,kFACiE;IAArD,wUAAmB,+BAAuB,IAAC;IACnD,yIAIa;IACjB,6DAAa;IACjB,6DAAiB;IACjB,+HAIQ;IACZ,6DAAM;;;IAjBD,uHAAoD;IAGrC,2DAAgC;IAAhC,iGAAgC;IAER,2DAAW;IAAX,qFAAW;IAO3C,2DAC4C;IAD5C,iRAC4C;;;IA+CxC,kFACgD;IAC5C,4EAA2C;IACvC,6EAAyC;IAAA,uEAAM;IAAA,6DAAQ;IACvD,6EACqB;IAAA,gEAAI;IAAA,6DAAQ;IACjC,6EACqB;IAAA,kEAAM;IAAA,6DAAQ;IACnC,6EAAyC;IAAA,+DAAG;IAAA,6DAAQ;IACxD,6DAAO;IACX,6DAAa;;;IACb,kFAAuE;IACnE,4EAAkC;IAC9B,6EAAyC;IAAA,wDAAwB;IAAA,6DAAQ;IACzE,6EACqB;IAAA,wDAAkB;IAAA,6DAAQ;IAC/C,6EACqB;IAAA,wDAAmB;IAAA,6DAAQ;IAChD,6EAAyC;IAAA,wDAAiB;IAAA,6DAAQ;IACtE,6DAAO;IACX,6DAAa;;;IATwC,+EAAiB;IAErB,2DAAwB;IAAxB,wFAAwB;IAE5C,2DAAkB;IAAlB,kFAAkB;IAElB,2DAAmB;IAAnB,mFAAmB;IACC,2DAAiB;IAAjB,iFAAiB;;;IAK1E,6EAEuB;IACnB,8FACJ;IAAA,6DAAQ;;;IAiBR,kFAAoF;IAChF,wDACJ;IAAA,6DAAa;;;IAF8B,sGAAwC;IAC/E,2DACJ;IADI,6GACJ;;;IAWI,kFAEoD;IAChD,wDACJ;IAAA,6DAAa;;;;IAHD,yEAAW;IAEnB,2DACJ;IADI,iGACJ;;;IAEJ,iFACmE;IAC/D,8EACJ;IAAA,6DAAY;;;IAgBhB,6EAA2D;IACvD,6FACJ;IAAA,6DAAQ;;;IAgBZ,2EAA6F;IACzF,sFACuF;IACnF,6EAAW;IAAA,gEAAI;IAAA,6DAAY;IAC3B,wEAC+D;IACnE,6DAAiB;IACrB,6DAAM;;;IALc,2DAAsE;IAAtE,2IAAsE;IAE/C,2DAA4B;IAA5B,sGAA4B;;;IAU/D,kFAA0E;IACtE,wDACJ;IAAA,6DAAa;;;IAFkC,wFAA0B;IACrE,2DACJ;IADI,+FACJ;;;;IAoCR,yEAAwD;IACpD,2EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,wDAA+D;IAAA,6DAAY;IACtF,wEACqC;IACzC,6DAAiB;IACrB,6DAAM;IAEN,2EACsE;IAClE,sFAAwD;IACpD,6EAAW;IACP,wDACJ;IAAA,6DAAY;IACZ,yEAC0C;IAC9C,6DAAiB;IACrB,6DAAM;IACV,sEAAe;;;;;IAlBN,2DAAmD;IAAnD,wHAAmD;IADnD,yUAA2E;IAG7D,2DAA+D;IAA/D,qQAA+D;IAC1D,2DAA2C;IAA3C,+KAA2C;IAMjD,2DAAmD;IAAnD,wHAAmD;IADhE,iVAA+E;IAIxE,2DACJ;IADI,uRACJ;IACmC,2DAA+C;IAA/C,mLAA+C;;;IAM9F,2EAC6B;IACzB,oFACoE;IAChE,kFACJ;IAAA,6DAAe;IACnB,6DAAM;;;IAJY,2DAAqC;IAArC,uGAAqC;;;IAe3C,kFAA2E;IACvE,wDACJ;IAAA,6DAAa;;;IAFgC,2FAA6B;IACtE,2DACJ;IADI,kGACJ;;;IAGR,6EAA+E;IAC3E,yEAAO;IAAA,oGAA8B;IAAA,6DAAQ;IACjD,6DAAY;;;IAgCA,4EAEwC;IACpC,oFAG8D;IAC1D,+FACJ;IAAA,6DAAe;IACnB,6DAAM;;;IALM,2DAAgI;IAAhI,0QAAgI;;;;IAU5I,4EACyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,oGAAyB;IAAA,6DAAY;IAChD,wEAE2D;IAC3D,wFAGwB;IACxB,wFAA0D;IAC9D,6DAAiB;IACrB,6DAAM;;;;IAZD,wHAAmD;IAIzC,2DAAgD;IAAhD,kHAAgD;IAEtB,2DAA+B;IAA/B,sEAA+B;;;IAQxE,4EACyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,+EAAc;IAAA,6DAAY;IACrC,wEAEiD;IACjD,wFAEwB;IACxB,wFAAgD;IACpD,6DAAiB;IACrB,6DAAM;;;;IAXD,wHAAmD;IAIzC,2DAAsC;IAAtC,wGAAsC;IAEZ,2DAAqB;IAArB,sEAAqB;;;IAO9D,4EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,oFAAc;IAAA,6DAAY;IACrC,wEAEiD;IACjD,wFAEwB;IACxB,wFAAgD;IACpD,6DAAiB;IACrB,6DAAM;;;;IAXD,wHAAmD;IAIzC,2DAAsC;IAAtC,wGAAsC;IAEZ,2DAAqB;IAArB,sEAAqB;;;IAO9D,4EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,8FAAmB;IAAA,6DAAY;IAC1C,wEAEoD;IACpD,wFAGwB;IACxB,wFAAmD;IACvD,6DAAiB;IACrB,6DAAM;;;;IAZD,wHAAmD;IAIzC,2DAA0C;IAA1C,4GAA0C;IAEhB,2DAAwB;IAAxB,sEAAwB;;;IAQjE,4EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,8FAAmB;IAAA,6DAAY;IAC1C,wEAEoD;IACpD,wFAEwB;IACxB,wFAAmD;IACvD,6DAAiB;IACrB,6DAAM;;;;IAXD,wHAAmD;IAIzC,2DAA0C;IAA1C,4GAA0C;IAEhB,2DAAwB;IAAxB,sEAAwB;;;IAOjE,4EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,8FAAmB;IAAA,6DAAY;IAC1C,wEAEoD;IACpD,wFAEwB;IACxB,wFAAmD;IACvD,6DAAiB;IACrB,6DAAM;;;;IAXD,wHAAmD;IAIzC,2DAA0C;IAA1C,4GAA0C;IAEhB,2DAAwB;IAAxB,sEAAwB;;;IAOjE,4EAEyD;IACrD,sFAAwD;IACpD,6EAAW;IAAA,8FAAmB;IAAA,6DAAY;IAC1C,wEAEoD;IACpD,wFAEwB;IACxB,wFAAmD;IACvD,6DAAiB;IACrB,6DAAM;;;;IAXD,wHAAmD;IAIzC,2DAA0C;IAA1C,4GAA0C;IAEhB,2DAAwB;IAAxB,sEAAwB;;;IA5I7E,gFAEC;IACG,0EAAQ;IAAA,qFAAe;IAAA,6DAAS;IAEhC,2EAA2D;IACvD,sFAAwD;IACpD,6EAAW;IAAA,iGAAsB;IAAA,6DAAY;IAC7C,wEAEqD;IACrD,wFACwB;IACxB,uFAA6D;IACjE,6DAAiB;IACrB,6DAAM;IAEN,4EAAiD;IAC7C,wEAAK;IACD,4EAC6B;IACzB,qFAEoE;IAChE,kGACJ;IAAA,6DAAe;IACnB,6DAAM;IAEN,mIASM;IACV,6DAAM;IAEN,wEAAK;IAED,mIAaM;IAEN,mIAYM;IAEN,mIAaM;IAEN,oIAcM;IAEN,oIAaM;IAEN,oIAaM;IAEN,oIAaM;IACV,6DAAM;IACV,6DAAM;IACV,6DAAW;;;;IA5IoC,2DAAgC;IAAhC,0GAAgC;IAGlC,2DAAkC;IAAlC,sEAAkC;IAUjD,2DAAuC;IAAvC,iHAAuC;IAOnD,2DAAiD;IAAjD,8JAAiD;IAcjD,2DAA8C;IAA9C,uLAA8C;IAe9C,2DAA8C;IAA9C,uLAA8C;IAc9C,2DAAuD;IAAvD,gMAAuD;IAevD,2DAA0D;IAA1D,mMAA0D;IAgB1D,2DAA0D;IAA1D,mMAA0D;IAe1D,2DAA0D;IAA1D,mMAA0D;IAe1D,2DAA0D;IAA1D,mMAA0D;;;IA4B5E,6EAA+E;IAC3E,yEAAO;IAAA,gHAA0C;IAAA,6DAAQ;IAC7D,6DAAY;;;IAXhB,4EAAkD;IAC9C,uFAG2C;IACvC,6EAAW;IAAA,+EAAmB;IAAA,6DAAY;IAC1C,yEAC6E;IACjF,6DAAiB;IACjB,uIAEY;IAChB,6DAAM;;;IANkB,2DAA2C;IAA3C,6GAA2C;IAGnD,2DAAiE;IAAjE,sJAAiE;;;;IAe7D,iFAE+D;IAFlB,4YAAS,4BAAgB,IAAC;IAGnE,oEACJ;IAAA,6DAAW;;;IAYP,iFAE8C;IAC1C,oEACJ;IAAA,6DAAW;;;IAKP,mFAE2B;IACvB,4EAAkC;IAC9B,8EAAgC;IAAA,uEAAM;IAAA,6DAAQ;IAC9C,8EAAgC;IAAA,gFAAU;IAAA,6DAAQ;IAClD,8EAA8C;IAAA,kEAAM;IAAA,6DAAQ;IAChE,6DAAO;IACX,6DAAa;;IAND,wEAAc;;;IAYd,iFAE0B;IAAA,uEAAW;IAAA,6DAAW;;;IAP5D,kFAA0D;IACtD,4EAAkC;IAC9B,6EAAmB;IAAA,yEAAO;IAAA,wDAAiB;IAAA,6DAAQ;IAAA,6DAAO;IAC9D,6EAAmB;IAAA,yEAAO;IAAA,wDAAkB;IAAA,6DAAQ;IAAA,6DAAO;IACvD,8EAAsC;IAClC,qJAEgD;IACpD,6DAAQ;IACZ,6DAAO;IACX,6DAAa;;;IAViC,yEAAW;IAEvB,2DAAiB;IAAjB,iFAAiB;IACrB,2DAAkB;IAAlB,kFAAkB;IAGzB,2DAAyB;IAAzB,0FAAyB;;;IAOxD,6EACoH;IAChH,yEAAO;IAAA,wDACkD;IAAA,6DAAQ;IACrE,6DAAY;;;IAFD,2DACkD;IADlD,wOACkD;;;IAwErD,kFAGgD;IAC5C,wDACJ;IAAA,6DAAa;;;;IAHL,2EAAa;IAEjB,2DACJ;IADI,oHACJ;;;IAGR,6EACkI;IAC9H,yEAAO;IAAA,iFAAqB;IAAA,6DAAQ;IACxC,6DAAY;;;;;IAyCR,8EAEmC;IAC/B,4EACiC;IAC7B,4EAAiD;IAC7C,uEAAK;IAAA,6EAAkB;IAAA,wDAAwB;IAAA,6DAAO;IAAA,6DAAM;IAChE,6DAAM;IACN,4EAAiD;IAC7C,uEAAK;IAAA,6EAAkB;IAAA,wDAA2B;IAAA,6DAAO;IACzD,6DAAM;IACV,6DAAM;IACN,6EAAiD;IAC7C,6EAAwB;IAAA,8EACJ;IAAA,yDAAwC;;IAAA,6DAAO;IACnE,6DAAM;IACV,6DAAM;IACN,6EAA6D;IACzD,6EAAyB;IAAA,8EACL;IAAC,yDAAoC;IAAA,6DAAO;IAChE,6DAAM;IACV,6DAAM;IACN,6EAC8D;IAC1D,uFAAwD;IACpD,8EAAW;IAAA,uEAAU;IAAA,6DAAY;IACjC,+EAQE;IALK,gaAAS,8BAAkB,IAAC;IAHnC,6DAQE;IACN,6DAAiB;IACrB,6DAAM;IACN,6EAAiD;IAC7C,6EAAwB;IAAA,8EACJ;IAAA,yDAA+E;;IAAA,6DAAO;IAC1G,6DAAM;IACV,6DAAM;IACV,6DAAM;IACV,sEAAe;;;;;IAvCN,2DAA2B;IAA3B,yFAA2B;IAED,2DAAwB;IAAxB,iHAAwB;IAGxB,2DAA2B;IAA3B,oHAA2B;IAK9B,2DAAwC;IAAxC,0LAAwC;IAKvC,2DAAoC;IAApC,oJAAoC;IAIxD,2DAAwD;IAAxD,4IAAwD;IAI9C,2DAA4C;IAA5C,qIAA4C;IAYnC,2DAA+E;IAA/E,qNAA+E;;;IAnE3H,yEAAwE;IAMpE,2EAAuC;IACnC,4EAA0C;IACtC,4EAA8B;IAC1B,uEAAK;IAAA,+EAAoB;IAAA,uEAAM;IAAA,6DAAS;IAAA,6DAAM;IAClD,6DAAM;IACN,4EAA8B;IAC1B,uEAAK;IAAA,+EAAoB;IAAA,gFAAS;IAAA,6DAAS;IAAA,6DAAM;IACrD,6DAAM;IACN,6EAA8B;IAC1B,wEAAK;IAAA,gFAAoB;IAAA,uEAAK;IAAA,6DAAS;IAAA,6DAAM;IACjD,6DAAM;IACN,6EAA8B;IAC1B,wEAAK;IAAA,gFAAoB;IAAA,oEAAO;IAAA,6DAAS;IAAA,6DAAM;IACnD,6DAAM;IACN,6EAAwD;IACpD,wEAAK;IAAA,gFAAoB;IAAA,uEAAU;IAAA,6DAAS;IAAA,6DAAM;IACtD,6DAAM;IACN,6EAAyD;IACrD,wEAAK;IAAA,gFAAoB;IAAA,kEAAK;IAAA,6DAAS;IAAA,6DAAM;IACjD,6DAAM;IACV,6DAAM;IACN,wEAAK;IACD,mKA2Ce;IACnB,6DAAM;IACV,6DAAM;IAEV,sEAAe;;;;;IArEN,2DAAiC;IAAjC,mGAAiC;IAuBL,4DAA0C;IAA1C,2JAA0C;;;;;IArLvF,uEAA8D;IAC1D,6EAA0B;IACtB,4EAAoB;IAChB,4EACwF;IACpF,wEAAM;IAAA,qEAAG;IAAA,wDAAa;IAAA,6DAAI;IAAA,6DAAO;IACjC,uIAIW;IACf,6DAAM;IAEN,4EACwD;IACpD,sFAAwD;IACpD,8EAAW;IAAA,wEAAW;IAAA,6DAAY;IAClC,+EAI6E;IAFtD,iTAAS,8BAAsB,IAAC;IAFvD,6DAI6E;IAC7E,yIAIW;IACX,+FAGqD;IADnC,4XAAkB,qBAAa,SAAC,sDAA0C,IAAC;IAEzF,6IAQa;IACb,6IAUa;IACjB,6DAAmB;IACvB,6DAAiB;IACjB,yIAIY;IAChB,6DAAM;IAEN,6EACuB;IACnB,uFAAwD;IACpD,8EAAW;IAAA,iFAAU;IAAA,6DAAY;IACjC,0EAEgE;IACpE,6DAAiB;IACrB,6DAAM;IAEN,6EAAqC;IACjC,uFAAwD;IACpD,8EAAW;IAAA,uEAAU;IAAA,6DAAY;IACjC,0EAIuF;IAC3F,6DAAiB;IACrB,6DAAM;IAEN,6EACoE;IAChE,uFAAwD;IACpD,8EAAW;IAAA,uEAAK;IAAA,6DAAY;IAC5B,0EAIyF;IAC7F,6DAAiB;IACrB,6DAAM;IAEN,6EAAmD;IAC/C,uFAAwD;IACpD,8EAAW;IAAA,qEAAQ;IAAA,6DAAY;IAC/B,0EAIuF;IAC3F,6DAAiB;IACrB,6DAAM;IAEN,6EAAsC;IAClC,uFAAwD;IACpD,8EAAW;IAAA,qEAAQ;IAAA,6DAAY;IAC/B,0EAEiE;IACrE,6DAAiB;IACrB,6DAAM;IAEN,6EAA+C;IAC3C,uFAAwD;IACpD,8EAAW;IAAA,kEAAK;IAAA,6DAAY;IAC5B,0EAEiE;IACrE,6DAAiB;IACrB,6DAAM;IAEN,6EAAsC;IAClC,uFAAwD;IACpD,8EAAW;IAAA,gEAAG;IAAA,6DAAY;IAC1B,oFAEoD;IADxC,wYAAmB,2CAA+B,IAAC;IAE3D,4IAKa;;IACjB,6DAAa;IACjB,6DAAiB;IACjB,yIAGY;IAChB,6DAAM;IAEN,6EAA+C;IAC3C,uFAAwD;IACpD,8EAAW;IAAA,oEAAO;IAAA,6DAAY;IAC9B,0EAEiE;IACrE,6DAAiB;IACrB,6DAAM;IACV,6DAAM;IAEN,gJA2Ee;IACnB,6DAAO;IACX,6DAAM;;;;;;;;;IApOI,2DAAmB;IAAnB,iFAAmB;IAIJ,2DAAa;IAAb,sFAAa;IAEX,2DAAgC;IAAhC,6GAAgC;IAO1C,2DAAkD;IAAlD,uHAAkD;IAG/B,2DAAkC;IAAlC,oGAAkC;IAKvC,2DAAgC;IAAhC,6GAAgC;IAKzB,2DAAkB;IAAlB,4EAAkB;IAKnB,2DAAgC;IAAhC,qGAAgC;IAQnB,2DAAkB;IAAlB,6FAAkB;IAaxC,2DACqG;IADrG,oXACqG;IAU7F,2DAAmC;IAAnC,qGAAmC;IAUlB,2DAAmC;IAAnC,qGAAmC;IAQvE,2DAA8D;IAA9D,+HAA8D;IAI1B,2DAA8B;IAA9B,gGAA8B;IAWxD,2DAAqC;IAArC,uGAAqC;IAUT,2DAAiC;IAAjC,mGAAiC;IASjC,2DAA8B;IAA9B,gGAA8B;IASrD,2DAAkC;IAAlC,oGAAkC;IAIlB,2DAAwD;IAAxD,kQAAwD;IAO5E,2DACmH;IADnH,uXACmH;IAQxF,2DAAgC;IAAhC,kGAAgC;IAOhE,2DAAuD;IAAvD,0MAAuD;;;;IAoGlF,uEAAK;IACG,6EAMC;IADK,mXAAS,gCAAoB,IAAC;IACnC,6DAAO;IAChB,6DAAM;;;IANQ,2DAAwC;IAAxC,iGAAwC;;;IAsB1C,wDACJ;;;IADI,qGACJ;;;IAKI,wDACJ;;;;IADI,+KACJ;;;IAKI,wDACJ;;;;IADI,0KACJ;;;IAKI,wDACJ;;;;IADI,mLACJ;;;IAKI,wDACJ;;;;IADI,6KACJ;;;IAKI,wDACJ;;;;IADI,4KACJ;;;;IAzCR,sFAOmC;IAC/B,6FAAyD;IACrD,gKAEc;IAClB,6DAAuB;IAEvB,6FAAyD;IACrD,gKAEc;IAClB,6DAAuB;IAEvB,6FAAoD;IAChD,gKAEc;IAClB,6DAAuB;IAEvB,6FAAuD;IACnD,gKAEc;IAClB,6DAAuB;IAEvB,6FAAuD;IACnD,kKAEc;IAClB,6DAAuB;IAEvB,8FAAsD;IAClD,kKAEc;IAClB,6DAAuB;IAC3B,6DAAgB;;;IA3CD,mFAAoB;IAQS,2DAAgB;IAAhB,0EAAgB;IAMhB,2DAAgB;IAAhB,0EAAgB;IAMrB,2DAAgB;IAAhB,0EAAgB;IAMb,2DAAgB;IAAhB,0EAAgB;IAMhB,2DAAgB;IAAhB,0EAAgB;IAMjB,2DAAgB;IAAhB,0EAAgB;;;IAWzD,wDACJ;;;;IADI,gLACJ;;;IAKI,wDACJ;;;;IADI,6KACJ;;;IAKI,iFAA4F;IACxF,wDACJ;IAAA,6DAAW;IACX,sFAA+E;IAC3E,kFAA+D;IACnE,6DAAW;;;;;IALD,qFAA0B;IAChC,2DACJ;IADI,wMACJ;IAC0B,2DAAgB;IAAhB,iEAAgB;IACtB,2DAA6B;IAA7B,4FAA6B;;;IAOjD,wDACJ;;;;IADI,qKACJ;;;IAKI,wDACJ;;;;IADI,wKACJ;;;IAKI,iFACuD;IACnD,wDACJ;IAAA,6DAAW;;;;IAFD,4JAA4C;IAClD,2DACJ;IADI,kIACJ;;;;;;IAOA,+EAKmC;IALG,wXAAS,yBAAW,IAAC;;;IAMvD,iFAA+D;IAAA,kEAAM;IAAA,6DAAW;IACpF,6DAAS;;;;IAJD,0VAAmG;IADnG,wVAA4F;;;;IA7HpH,iFAAqE;IACjE,uFAAsG;IAClG,kFACJ;IAAA,6DAAiB;IACjB,2FAMgF;IAC5E,6FAE2D;IACvD,kJAUc;IAClB,6DAAuB;IAEvB,iGAA0C;IACtC,oJA6Cc;IAClB,6DAA2B;IAE3B,6FAA0D;IACtD,oJAEc;IAClB,6DAAuB;IAEvB,8FAAuD;IACnD,oJAEc;IAClB,6DAAuB;IAEvB,8FAAyD;IACrD,oJAOc;IAClB,6DAAuB;IAEvB,8FAAoD;IAChD,oJAEc;IAClB,6DAAuB;IAEvB,8FAAuD;IACnD,oJAEc;IAClB,6DAAuB;IAEvB,8FAAqD;IACjD,oJAKc;IAClB,6DAAuB;IAEvB,8FAAsC;IAElC,qJASc;IAClB,6DAAuB;IAC3B,6DAAgB;IACpB,6DAAW;;;IAhIQ,2DAAmF;IAAnF,8IAAmF;IAKxE,2DAAkB;IAAlB,4EAAkB;IAiEC,2DAAgB;IAAhB,0EAAgB;IAMnB,2DAAgB;IAAhB,0EAAgB;IAMd,2DAAgB;IAAhB,0EAAgB;IAWrB,2DAAgB;IAAhB,0EAAgB;IAMb,2DAAgB;IAAhB,0EAAgB;IAMlB,2DAAgB;IAAhB,0EAAgB;IAS9B,2DAAe;IAAf,yEAAe;;;AD10BjD,MAAM,SAAS,GAAG;IACd,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;IAC1B,MAAM,EAAE,yBAAyB;IACjC,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,WAAW;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,eAAe;IAC9B,uBAAuB,EAAE,yBAAyB;IAClD,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,iBAAiB,EAAE,mBAAmB;IACtC,aAAa,EAAE,mBAAmB;IAClC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,EAAE,EAAE,IAAI;IACR,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE,aAAa;IAC1B,qBAAqB,EAAE,uBAAuB;IAC9C,eAAe,EAAE,gBAAgB;IACjC,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;IACpB,wBAAwB,EAAE,0BAA0B;IACpD,kBAAkB,EAAE,oBAAoB;IACxC,YAAY,EAAE,cAAc;IAC5B,iBAAiB,EAAE,mBAAmB;IACtC,IAAI,EAAE,MAAM;IACZ,0BAA0B,EAAE,4BAA4B;CAC3D,CAAC;AAEK,MAAM,GAAG,GAAG,QAAQ,CAAC;AAE5B,IAAY,OAOX;AAPD,WAAY,OAAO;IACf,mDAAe;IACf,yCAAU;IACV,6CAAY;IACZ,6CAAY;IACZ,+CAAa;IACb,+CAAa;AACjB,CAAC,EAPW,OAAO,KAAP,OAAO,QAOlB;AAED,IAAY,eAMX;AAND,WAAY,eAAe;IACvB,iEAAc;IACd,+DAAa;IACb,qEAAgB;IAChB,qDAAQ;IACR,2DAAW;AACf,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAeM,MAAM,sBAAsB;IA+G/B,YACY,MAAiB,EACjB,KAAqB,EACtB,aAA6B,EAC5B,cAA+B,EAC/B,YAA0B,EAC1B,EAAe,EACf,YAAgC,EAChC,cAA+B,EAC/B,MAAc,EACd,SAA6B,EAC9B,QAAkB,EACjB,SAA0B,EAC1B,KAAgB;QAZhB,WAAM,GAAN,MAAM,CAAW;QACjB,UAAK,GAAL,KAAK,CAAgB;QACtB,kBAAa,GAAb,aAAa,CAAgB;QAC5B,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAoB;QAChC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,WAAM,GAAN,MAAM,CAAQ;QACd,cAAS,GAAT,SAAS,CAAoB;QAC9B,aAAQ,GAAR,QAAQ,CAAU;QACjB,cAAS,GAAT,SAAS,CAAiB;QAC1B,UAAK,GAAL,KAAK,CAAW;QA1H5B,YAAO,GAAG,IAAI,CAAC;QACf,kBAAa,GAAmB,EAAE,CAAC;QAE5B,UAAK,GAAG,EAAE,CAAC;QAClB,YAAO,GAAG,yDAAK,CAAC;QAEhB,mBAAc,GAAoB,EAAE,CAAC;QACrC,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,UAAK,GAAS,IAAI,IAAI,EAAE,CAAC;QACzB,iBAAY,GAAkB,EAAE,CAAC;QACxB,WAAM,GAA8B;YACzC,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB;YACjD,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,cAAc;YAC3C,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,YAAY;YACpC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,aAAa;YAC3C,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,WAAW;SAC9C,CAAC;QACO,WAAM,GAAG,OAAO,CAAC;QACjB,YAAO,GAAG,sEAAM,CAAC;QACjB,aAAQ,GAA8B;YAC3C,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ;YAC1B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,aAAa;YACpC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;YAC9B,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU;YAC9B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW;SACnC,CAAC;QACO,UAAK,GAA2B;YACrC,CAAC,kEAAc,CAAC,EAAE,UAAU;YAC5B,CAAC,gEAAY,CAAC,EAAE,QAAQ;YACxB,CAAC,mEAAe,CAAC,EAAE,OAAO;SAC7B,CAAC;QACK,aAAQ,GAAwB,EAAE,CAAC;QACnC,qBAAgB,GAAU,EAAE,CAAC;QACpC,SAAI,GAA8B,SAAS,CAAC;QAC5C,SAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;YACtB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YAChD,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,iEAAoB,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE;YACzB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE;YAC3B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YAC9C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,2DAAc,CAAC,CAAC,CAAC,EAAE,gEAAmB,CAAC,CAAC;YACpE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,gEAAmB,CAAC;YACjD,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,2DAAc,CAAC,CAAC,CAAC,EAAE,gEAAmB,CAAC,CAAC;YACnF,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,gEAAmB,CAAC;YAC7D,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,CAAC,IAAI,EAAC,gEAAmB,CAAC;YAClE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YAChD,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,gEAAmB,CAAC;YACxD,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE,gHAA6B,EAAE,CAAC;YACrE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACnB,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI;YAC/B,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,IAAI;YACzC,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI;YAC/B,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI;YAC7B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,SAAS;YACvC,CAAC,SAAS,CAAC,qBAAqB,CAAC,EAAE,KAAK;YACxC,CAAC,SAAS,CAAC,wBAAwB,CAAC,EAAE,KAAK;YAC3C,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK;YAC/B,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI;YACnC,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;SACzC,CAAC,CAAC;QACH,YAAO,GAAU,EAAE,CAAC;QACpB,oBAAe,GAAU,EAAE,CAAC;QAC5B,YAAO,GAAU,EAAE,CAAC;QAEpB,WAAM,GAAU,EAAE,CAAC;QACnB,aAAQ,GAAc,EAAE,CAAC;QACzB,aAAQ,GAAU,EAAE,CAAC;QACrB,cAAS,GAAG,KAAK,CAAC;QAClB,OAAE,GAAG,CAAC,CAAC;QACP,mBAAc,GAAU,EAAE,CAAC;QAC3B,qBAAgB,GAAG,mEAAa,CAAC;QACjC,eAAU,GAAU,EAAE,CAAC;QACvB,kBAAa,GAAG,CAAC,CAAC;QAClB,qBAAgB,GAAG;YACf,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;YACjB,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE;YACzB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YAC1B,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;YACvB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI;YAC9B,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI;YAC3B,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE;YAC1B,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,KAAK;SACpC,CAAC;QACF,cAAS,GAAG,CAAC,CAAC;QACd,UAAK,GAAG,CAAC,CAAC;QACV,kBAAa,GAAG,CAAC,CAAC;QAClB,kBAAa,GAAG,CAAC,CAAC;QAClB,qBAAgB,GAAoB,EAAE,CAAC;QACvC,iBAAY,GAAkB,EAAE,CAAC;QACzB,mBAAc,GAAU,EAAE,CAAC;QAC3B,iBAAY,GAAyD;YACzE,CAAC,mEAAe,CAAC,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC;YAC9E,CAAC,gEAAY,CAAC,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,eAAe,iCAC7D,OAAO,KAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,IAC9D;SACL,CAAC;IAiBF,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAc,CAAC;IAClD,CAAC;IAED,IAAI,CAAC,IAAS,EAAE,OAAiB,EAAE,UAAoB;QACnD,OAAO,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACxG,CAAC;IAED,SAAS,CAAC,IAAS;QACf,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,CAAC,CAAC;;QACL,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;QAE3B,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,WAAI,CAAC,aAAa,0CAAE,wBAAwB,MAAK,CAAC,CAAC,CAAC;YACvF,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAI,CAAC,aAAa,0CAAE,wBAAwB,MAAK,CAAC,CAAC;QAC9F,IAAI,CAAC,IAAI,CAAC,UAAU,iCAAK,IAAI,CAAC,SAAS,KAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAE,CAAC;QACtH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACvD,MAAM,KAAK,GAAG,UAAI,CAAC,MAAM,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACjB,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,YAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,EAAE;YAC9C,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,aAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,mCAAI,EAAE;YAC5C,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,aAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,mCAAI,CAAC;YAC9C,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,aAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,mCAAI,EAAE;YACjD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK;YACxB,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB;YAC3E,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;YACrC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAC3D,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YACrD,CAAC,SAAS,CAAC,0BAA0B,CAAC,EAAE,IAAI,IAAI,CAAC,UAAI,CAAC,SAAS,CAAC,0BAA0B,mCAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC;SACtI,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC;QAErD,IAAI,IAAI,CAAC,KAAK,KAAK,gEAAY,EAAE;YAC7B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;gBACjB,CAAC,SAAS,CAAC,uBAAuB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;oBACzE,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,KAAK;gBACtG,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;oBACrD,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK;aACrF,CAAC,CAAC;YACH,IAAI,OAAO,EAAE;gBACT,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBACjB,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAClE,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAClE,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;oBAClE,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;iBACrE,CAAC,CAAC;aACN;SACJ;QAED,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,UAAI,CAAC,SAAS,0CAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;;YACzC,IAAI,CAAC,CAAC,SAAS,EAAE;gBACb,OAAO;aACV;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAE;YAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBAChC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,eAAe,EAAE,CAAC,CAAC,eAAe;gBAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,gBAAgB,EAAE,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,yBAAyB,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,CAAC,CAAC,gBAAgB,CAAC;gBACtG,SAAS,EAAE,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,mCAAI,CAAC,CAAC,SAAS;gBACxC,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,SAAS,EAAE,gBAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,0CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,SAAS,CAAC;gBAC5F,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK;gBAC7B,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;gBACvC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,yBAAyB,mCAAI,EAAE,CAAC,CAAC,CAAC;aACxD,CAAC,CAAC,CAAC;YACJ,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;gBACzB,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;gBACjE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAe,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9F,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;oBACjB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC;oBAC1E,OAAO;wBACH,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;wBACxC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS;wBAC1B,QAAQ,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ;wBACvB,SAAS,EAAE,OAAC,CAAC,SAAS,mCAAI,OAAC,CAAC,MAAM,0CAAE,UAAU;wBAC9C,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,MAAM,EAAE,CAAC,CAAC,KAAK;wBACf,kBAAkB,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,kBAAkB;wBAC3C,MAAM,EAAE,CAAC,CAAC,MAAM;qBACnB,CAAC;gBACN,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CACb,IAAI,CAAC,WAAW;qBACZ,EAAE,CAAC,KAAK,CAAC;qBACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAe;qBACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CACpC,CAAC;gBACF,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAC3F,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;aAC3C;YACD,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC,EAAE,CAAC;QACR,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,KAAK,KAAK,kEAAc,EAAE;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC/D;QACD,IAAI,CAAC,UAAU,GAAG,gBAAI,CAAC,SAAS,0CAAE,UAAU,mCAAI,EAAE,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACjF,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CACtC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,MAAK,UAAI,CAAC,MAAM,0CAAE,uBAAuB,EAAC,CAAC,CAAC,CAAC,gEAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CACvG,CAAC;QACF,IAAI,CAAC,SAAS,GAAG,UAAI,CAAC,UAAU;aACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,mCAC/F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,CAAC,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAC,GAAG,EAAE,SAAS;QACnB,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACf,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;gBACjB,SAAS,GAAG,IAAI,CAAC;aACpB;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACrB,CAAC;IAGD,WAAW,CAAC,GAAG;;QACX,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,6BAA6B,CAAC,CAAC;IACtF,CAAC;IAED,eAAe;;QACX,OAAO,WAAI,CAAC,SAAS,0CAAE,uBAAuB,MAAK,OAAO,CAAC,QAAQ;YAC/D,WAAI,CAAC,SAAS,0CAAE,uBAAuB,MAAK,OAAO,CAAC,SAAS;YAC7D,IAAI,CAAC,KAAK,KAAK,mEAAe,CAAC;IACvC,CAAC;IAEK,QAAQ;;;YACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAC9F,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,uBAAuB,IAAI,CAAC,KAAK,IAAI,UAAI,CAAC,aAAa,0CAAE,eAAe,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;;KAC1H;IAED,gBAAgB,CAAC,eAAsB;QACnC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAE;YACpE,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC;QACtG,CAAC,CAAC;IAEN,CAAC;IACD,QAAQ;QACJ,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;QAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAClB,yDAAQ,CAAC,EAAE,CAAC,EAAE;YACV,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACZ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,KAAK;gBACnC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK;gBAClC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,KAAK,KAAK,kEAAc,EAAE;gBAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;aAC/D;YACD,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,EAAE,CAAC,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,MAAM,eAAe,GAAG,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC,CAAC;YAC5D,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC,CAAC,EACF,0DAAS,CAAC,CAAC,EAAmB,EAAE,EAAE;YAC9B,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,CAAC,EACF,0DAAS,CAAC,EAAE,CAAC,EAAE;YACX,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,CAAC;QACpD,CAAC,CAAC,EACF,0DAAS,CAAC,CAAC,EAAO,EAAE,EAAE;YAClB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;YACjC,OAAO,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC;QACzD,CAAC,CAAC,EACF,yDAAQ,CAAC,EAAE,CAAC,EAAE;YACV,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,OAAO,CAAC;YAEjC,OAAO,IAAI,6CAAU,EAAO,CAAC;QACjC,CAAC,CAAC,CACL,CAAC,SAAS,EAAE,CAChB,CAAC;IACN,CAAC;IACD,QAAQ,CAAC,eAAsB;QAE3B,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,GAAE;YAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC5B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;aACpC;QACL,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;YACnD,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;YACpD,IAAI,CAAC,OAAO,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,OAAO,CAAC;YAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC;QAC7F,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,KAAK,GAAE;;YAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;YAClC,IAAI,CAAC,YAAY,GAAG,UAAI,CAAC,YAAY,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QACtG,CAAC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,cAAc,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,GAAE;YAC9D,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAC7C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1C,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAC1B,eAAe;YACf,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,EAAE;YACjB,QAAQ,EAAE,CAAC,CAAC,CAAC;YACb,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,IAAI;SAClB,CAAC,CAAC,SAAS,CAAC,EAAE,GAAE;YACb,IAAI,CAAC,OAAO,GAAG,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,OAAO,CAAC;YAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACxC,CAAC,CAAC;QAGF,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/C,IAAI,eAAe,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1E,IAAG,eAAe,EAAC;gBACjB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,EAAE,GAAE;;oBAC5D,IAAI,EAAE,EAAE;wBACJ,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,UAAU,iCACjC,EAAE,CAAC,OAAO,KACb,QAAQ,EAAE,QAAE,CAAC,OAAO,CAAC,QAAQ,0CAAE,IAAI,EACnC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAC7F,CAAC;wBACH,cAAc;wBAEd,sIAAsI;wBACtI,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;qBAClF;gBACL,CAAC,CAAC;aACH;QACL,CAAC,CAAC,CAAC;IACT,CAAC;IACD,YAAY,CAAC,WAAkB;QAC3B,IAAG,WAAW,GAAC,CAAC,EAAC;YACb,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,GAAG,GAAE;;gBACxD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAI,CAAC,SAAS,0CAAE,SAAS,CAAC,CAAC,SAAS,CAAC;oBAChE,IAAI,EAAE,CAAC,CAAM,EAAE,EAAE;wBACb,MAAM,OAAO,GAAG,qGAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBACzC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACtC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;oBACtC,CAAC;oBACD,KAAK,EAAE,GAAG,CAAC,EAAE;;wBACT,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,+BAA+B,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;oBACrG,CAAC;iBAAC,CAAC,CAAC;YAER,CAAC,EAAE,GAAG,CAAC,EAAE;;gBACL,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,iCAAiC,CAAC,CAAC;YAC1F,CAAC,CAAC;SACL;aAAI;YACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;IACT,CAAC;IAED,WAAW;QACP,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,UAAU,CAAC,SAAiB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,SAAS,CAAC,QAAgB;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,gBAAgB,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,GAAG;QACf,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED,GAAG,CAAC,KAAU;QACV,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAED,WAAW,CAAC,KAAU;QAClB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa;aAC7B,uBAAuB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC9C,4FAA4F;QAE5F,IAAI,IAAI,CAAC,KAAK,KAAK,mEAAe,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;SACjD;IACL,CAAC;IAED,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO;;QACnC,MAAM,aAAa,GAAG,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,mCAAI,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,mCAAI,CAAC,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,UAAU,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,mCAAI,CAAC,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC;QACpG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,UAAU,CAAC,yEAAY,CAAC,OAAO,EAAE,WAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,gBAAgB,mCAAI,CAAC,CAAC,CAAC,CAAC;QACpG,0DAA0D;QAC1D,uEAAuE;QACvE,4DAA4D;QAC5D,IAAI;QACJ,2GAA2G;IAC/G,CAAC;IAED,YAAY,CAAC,SAAe,EAAE,OAAa;QACvC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;YAC5G,OAAO,EAAE,CAAC;SACb;QAED,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,KAAU;QACf,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED,cAAc,CAAC,KAAU;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;YACpC,OAAO;SACV;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;YAC3C,qBAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,UAAU,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC3D,aAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAAA,CAC7D,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IACxC,CAAC;IAED,UAAU,CAAC,eAAuB;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,YAAY,CAAc,CAAC;IAC/E,CAAC;IAED,WAAW,CAAC,IAAsB;QAC9B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;SAC9C,CAAC,CAAC;IACP,CAAC;IAED,kBAAkB,CAAC,MAAW,EAAE,KAAa;QACzC,IAAI,MAAM,KAAK,IAAI,EAAE;YACjB,OAAO;SACV;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;YAClC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,EAAE;YACzB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9B,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE;YAChC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE;YAC1B,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,IAAI;YAC3B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;YACvB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE;YACtB,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YACtB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,IAAI;YAC9B,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI;SAC1B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC;YAC9G,IAAI,EAAE,CAAC,CAAC,EAAE;;gBACN,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;oBACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;iBAC/D;gBACD,MAAM,KAAK,GAAG,kBAAM,CAAC,yBAAyB;qBACzC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,QAAC,CAAC,gBAAgB,MAAK,UAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,0CAAE,gBAAgB,KAAC,0CAAE,MAAM,mCAAI,MAAM,CAAC,MAAM,CAAC;gBAChH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;oBAClC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,SAAS;oBACvC,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ;oBACrC,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,eAAe;oBACnD,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,EAAE;oBAChC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,UAAU;oBACzC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,gBAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,0CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,CAAC;oBAC7G,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,yBAAyB;oBACpD,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,IAAI;iBACnC,CAAC,CAAC;gBACH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;qBAC1C,aAAa,CAAC,CAAC,gEAAmB,EAAE,mHAAgC,EAAE,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBACzE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC9D,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;gBAChE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC;qBAC/C,aAAa,CAAC,CAAC,gEAAmB,EAAE,mHAAgC,EAAE,CAAC,CAAC,CAAC;gBAC9E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAC9E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;gBACnE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,aAAa,EAAE,CAAC;gBACrE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC,gEAAmB,CAAC,CAAC,CAAC;gBACzF,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAC7E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;gBAClE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;gBACpE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,gEAAmB,EAAE,2DAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3G,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,sBAAsB,EAAE,CAAC;gBAC5E,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;gBACjE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;gBAEnE,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC9B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBACzE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAe,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC5F,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAe,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAe,CAAC,KAAK,EAAE,CAAC;oBAC3F,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAC5B,IAAI,CAAC,WAAW;yBACZ,EAAE,CAAC,KAAK,CAAC;yBACT,GAAG,CAAC,SAAS,CAAC,UAAU,CAAe;yBACvC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CACpC,CAAC;oBACF,MAAM,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;oBACjG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;iBAC3C;qBAAM;oBACH,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;oBAC3E,MAAC,IAAI,CAAC,WAAW;yBACZ,EAAE,CAAC,KAAK,CAAC;yBACT,GAAG,CAAC,SAAS,CAAC,UAAU,CAAe,0CAAE,KAAK,EAAE,CAAC;iBACzD;gBACD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7D,IAAI,CAAC,cAAc,EAAE,CAAC;YAC1B,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC7E,MAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAe,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAe,0CAAE,KAAK,EAAE,CAAC;gBAC5F,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;SACJ,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,gBAAgB,CAAC,KAAU;QACvB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;;YAClC,MAAM,KAAK,GAAG,kBAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAe,0CAAE,KAAK,0CACrD,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,gFAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,mCACrF,aAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,0CAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,KAAK,KAAK,CAAC,gBAAgB,CAAC,0CAAE,MAAM,CAAC;YACpG,MAAM,KAAK,GAAG,KAAK,GAAG,gFAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7E,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,mBAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,0CAAE,KAAK,0CAAE,IAAI,mCAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;YACnG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,eAAe,CAAC,KAAU;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,CAAC,KAAK,EAAE;YACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;YACtC,OAAO;SACV;QAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;;YAC7C,qBAAC,CAAC,UAAU,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;iBAC1D,aAAC,CAAC,IAAI,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SAAA,CACvD,CAAC;IACN,CAAC;IAED,aAAa,CAAC,UAAkB,EAAE,KAAa;QAC3C,OAAO,KAAK,GAAG,gFAAmB,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,kBAAkB,CAAC,GAAG,EAAE,GAAW;QAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAGD,YAAY;QACR,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,mBAAmB,CAAC,KAAU;QAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;YACjB,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI;YACpC,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS;YACvC,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;SAC5C,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,mEAAe,EAAE;YAC1C,OAAO;SACV;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC;YACtD,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAC3C,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB;yBAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC;yBACjC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;yBAC7D,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACxC,CAAC,CAAC,gBAAgB;gBACnB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE;oBACpB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;wBACjB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;wBAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;wBACxB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;qBAC7B,CAAC,CAAC;oBACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,0CAA0C,IAAI,CAAC,aAAa,CAAC,eAAe,2BAA2B,CAAC,CAAC;iBACxI;YACL,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,0DAA0D,CAAC,CAAC;YACnH,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,cAAc,CAAC,IAAqB;QAChC,MAAM,KAAK,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,eAAe,CAAC,KAAa;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW;aACzB,EAAE,CAAC,KAAK,CAAC;aACT,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,KAAK;aAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,GAAG,gFAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,KAAa,EAAE,KAAa;;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,gFAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QACrE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC3C,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,qBAAG,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,0CAAE,KAAK,0CAAE,IAAI,mCAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACjH,CAAC;IAED,iBAAiB,CAAC,KAAa,EAAE,GAAW,EAAE,IAAqB;;QAC/D,MAAM,YAAY,GAAG,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACxF,IAAI,KAAK,GAAW,KAAK,GAAG,GAAG,CAAC;QAChC,MAAM,QAAQ,GAAG,KAAK,GAAG,YAAY,CAAC;QACtC,KAAK,IAAI,QAAQ,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC,sBAAI,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,0CAAE,KAAK,0CAAE,IAAI,mCAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;QACzG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,MAAM,CAAC,SAAkB,KAAK;;QAC1B,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAC,UAAI,CAAC,IAAI,0CAAE,QAAQ,CAAC,CAAC;QAErD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACnB,OAAO;SACV;QACD,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC1C,MAAM,KAAK,GAAG,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACpD,MAAM,UAAU,GAAG,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,YAAY,CAAC,SAAS,CACvB,GAAG,UAAI,CAAC,aAAa,0CAAE,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;gBAC1I,OAAO;aACV;YAED,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,KAAK,GAAG,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;gBACnE,OAAO,CAAC,IAAI,CAAC;oBACT,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;oBACjB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;oBAC7B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;oBACnC,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;oBAC3C,UAAU;oBACV,KAAK;oBACL,SAAS,EAAE,UAAI,CAAC,KAAK,CAAC,SAAS,0CAAE,SAAS;oBAC1C,OAAO,EAAE,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;oBAChD,YAAY,EAAE,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;oBAC1D,QAAQ,EAAE,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAClD,KAAK,EAAE,gFAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;oBAC5C,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;oBACjC,UAAU,EAAE,CAAC,UAAI,CAAC,KAAK,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC9C,OAAO;4BACH,kBAAkB,EAAE,CAAC,CAAC,kBAAkB;4BACxC,UAAU,EAAE,gFAAmB,CAAC,CAAC,CAAC,UAAU,CAAC;4BAC7C,KAAK,EAAE,CAAC,CAAC,MAAM;4BACf,SAAS,EAAE,CAAC,CAAC,SAAS;yBACzB,CAAC;oBACN,CAAC,CAAC;iBACL,CAAC,CAAC;aACN;YACD,CAAC,EAAE,CAAC;SACP;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,SAAS,CACvB,GAAG,UAAI,CAAC,aAAa,0CAAE,eAAe,eAAe,UAAI,CAAC,aAAa,0CAAE,cAAc,CAAC,WAAW,EAAE,oDAAoD,CAAC,CAAC;YAC/J,OAAO;SACV;QACD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG;YACZ,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK;YACtC,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,KAAK;YAC1E,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACpC,SAAS,EAAE,UAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,0CAAE,SAAS;YAC7C,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa;YACpE,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB;YAChE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACpC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;YACtC,gBAAgB,EAAE,UAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,gBAAgB;YACzD,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,YAAY;YAC/D,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,KAAK;YACpE,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK;YACxE,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,qBAAqB;YAC5D,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,KAAK;YAC1E,qBAAqB,EAAE;gBACnB,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;gBACnE,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC;gBAC7E,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;gBACnE,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;gBAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;gBAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;gBAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;aAC9E;YACD,OAAO;YACP,UAAU,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,0BAA0B,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC;SAChG,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,KAAK,mEAAe,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE;YACzE,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SACvC;aAAM;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;iBACzD,IAAI,CAAC,yDAAQ,CAAC,CAAC,CAAC,EAAE;gBACf,IAAI,MAAM,EAAE;oBACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACrB,OAAO,IAAI,6CAAU,EAAO,CAAC;iBAChC;gBACD,OAAO,IAAI,CAAC,KAAK,KAAK,gEAAY,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,6CAAU,EAAO,CAAC;YAC1G,CAAC,CAAC,CAAC;iBACF,SAAS,CAAC;gBACP,IAAI,EAAE,CAAC,CAAC,EAAE;oBACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;oBACrB,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC;oBAC3B,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;oBAC/C,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBAC5C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC;aACtC,CAAC,CAAC,CAAC;SACX;IACL,CAAC;IAED,gBAAgB,CAAC,IAAqB;QAClC,MAAM,CAAC,GAAG,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,uEAAU,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YACnE,OAAO;SACV;QACD,MAAM,KAAK,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,eAAe,CAAC,IAAY,EAAE,SAAe;;QACzC,MAAM,QAAQ,GAAG,CAAC,qFAAY,EAAE,sFAAa,EAAE,wFAAe,CAAC,CAAC;QACxE,iJAAiJ;QACzI,MAAM,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAS,CAAC,0BAA0B,mCAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,mCAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;YACnI,CAAC,CAAC,IAAI,IAAI,CAAC,eAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,UAAU,mCAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC;QAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,WAAC,eAAC,CAAC,MAAM,0CAAE,EAAE,MAAK,eAAe,CAAC,OAAO,IAAC,CAAC;QACjF,IAAI,UAAU,CAAC;QAEf,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;YACf,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE;iBACjB,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1G,UAAU,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;gBAClB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAC,kBAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,0CAAE,gBAAgB,MAAK,CAAC,IAAC,CAAC,CAAC;gBAC5E,EAAE,CAAC,CAAC,CAAC,yEAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACpC;aAAM;YACH,UAAU,GAAG,EAAE,CAAC;SACnB;QAED,eAAS,CAAC,qBAAqB,oCAA/B,SAAS,CAAC,qBAAqB,GAAK;YAChC,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YACnE,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC;YAC7E,aAAa,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;YACnE,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;YAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;YAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;YAC3E,iBAAiB,EAAE,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC;SAC9E,EAAC;QACF,eAAS,CAAC,aAAa,oCAAvB,SAAS,CAAC,aAAa,GAAK,eAAS,CAAC,qBAAqB,0CAAE,aAAa,EAAC;QAC3E,eAAS,CAAC,aAAa,oCAAvB,SAAS,CAAC,aAAa,GAAK,eAAS,CAAC,qBAAqB,0CAAE,aAAa,EAAC;QAC3E,SAAS,CAAC,0BAA0B,GAAG,0EAAa,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,0BAA0B,CAAC,CAAC,KAAK,CAAC,CAAC;QACzG,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACvB,IAAI,OAAO,GAAG,IAAI,CAAC,aAAa;aAC3B,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxE,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC3F,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACvG,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,MAAK,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,EAAC,CAAC;QAC9E,MAAM,GAAG,GAAG,WAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,0CAAE,gBAAgB,MAAK,qFAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC;QACvK,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uHAA4B,EAAE;YAC3D,KAAK,EAAE,OAAO;YACd,IAAI,EAAE;gBACF,OAAO;gBACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,MAAK,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,EAAC;gBACvE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC;gBAC1G,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI,CAAC,KAAK;gBAClB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,SAAS;gBACT,WAAW,EAAE,IAAI,CAAC,EAAE;gBACpB,KAAK,EAAE,eAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE;;oBACzD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACvC,OAAO;wBACH,wBAAwB,EAAE,CAAC,CAAC,EAAE;wBAC9B,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,SAAS,EAAE,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,mCAAI,EAAE;wBAC/B,UAAU,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU;wBAC3B,WAAW,EAAE,IAAI,CAAC,EAAE;wBACpB,gBAAgB,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,gBAAgB;wBAC7C,MAAM,EAAE,GAAG;wBACX,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,IAAI,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC,cAAc,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;wBAC/I,sBAAsB,EAAE,CAAC,CAAC,UAAU;wBACpC,SAAS,EAAE,CAAC,CAAC,SAAS;wBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,KAAK,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,QAAQ;wBAC1C,GAAG,EAAE,OAAC,CAAC,OAAO,mCAAI,CAAC;wBACnB,OAAO,EAAE,OAAC,CAAC,OAAO,mCAAI,CAAC;wBACvB,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,OAAO,EAAE,CAAC,CAAC,OAAO;wBAClB,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,iBAAiB,EAAE,CAAC,OAAC,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;4BAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;4BACxE,OAAO;gCACH,QAAQ,EAAE,CAAC,CAAC,kBAAkB;gCAC9B,SAAS,EAAE,aAAC,CAAC,MAAM,0CAAE,SAAS,mCAAI,EAAE;gCACpC,SAAS,EAAE,CAAC,CAAC,SAAS;gCACtB,UAAU,EAAE,CAAC,CAAC,UAAU;gCACxB,UAAU,EAAE,aAAC,CAAC,MAAM,0CAAE,UAAU,mCAAI,EAAE;gCACtC,KAAK,EAAE,CAAC,CAAC,KAAK;gCACd,QAAQ,EAAE,CAAC;gCACX,YAAY,EAAE,CAAC;gCACf,OAAO,EAAE,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,IAAI,mCAAI,CAAC;gCACvB,UAAU,EAAE,SAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,UAAU,mCAAI,EAAE;gCACjC,SAAS,EAAE,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS;gCACzB,OAAO,EAAE,CAAC,CAAC,OAAO;gCAClB,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,OAAO;gCACzC,KAAK,EAAE,KAAK;6BACf,CAAC;wBACN,CAAC,CAAC;qBACL,CAAC;gBACN,CAAC,CAAC;aACL;SACJ,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,IAAI,CACvB,yDAAQ,CAAC,QAAQ,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,IAAI,6CAAU,EAAO,CAAC;aAChC;YACD,IAAI,IAAI,CAAC,KAAK,KAAK,mEAAe,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrB,OAAO,IAAI,6CAAU,EAAO,CAAC;aAChC;YAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpD,CAAC,CAAC,CACL,CAAC,SAAS,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAChB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,iCAAiC,CAAC,CAAC;YAC1F,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,cAAc;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;aAClC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjB,MAAM,KAAK,GAAG,gFAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7C,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,EAAE,CAAC,CAAC,CAAC;QACV,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;aAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACjB,MAAM,OAAO,GAAG,gFAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjD,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,SAAS,CAAC,KAAU;QAChB,IAAI,IAAI,CAAC,KAAK,KAAK,mEAAe,EAAE;YAChC,OAAO;SACV;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,qBAAqB,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC,CAAC,SAAS,CAAC;YACzF,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACzB,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;gBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,CAAC;SACJ,CAAC,CAAC,CAAC;IACR,CAAC;IAED,SAAS,CAAC,IAAS;QACf,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,WAAW,CAAC,UAAuB;;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qIAAyB,EAAE;YAC1D,IAAI,EAAE;gBACF,MAAM,EAAE,aAAa;gBACrB,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,8BAA8B,sBAAU,CAAC,cAAc,0CAAE,KAAK,0CAAE,WAAW,EAAE,SAAS,UAAI,CAAC,aAAa,CAAC,eAAe,0CAAE,WAAW,EAAE,GAAG;aACtJ;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CACxB,yDAAQ,CAAC,QAAQ,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,IAAI,6CAAU,EAAoB,CAAC;aAC7C;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAC9G,CAAC,CAAC,CACL,CAAC,SAAS,CAAC;YACR,IAAI,EAAE,CAAC,CAAC,EAAE;gBACN,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,uBAAuB,GAAG,CAAC,CAAC,OAAO,CAAC;gBACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC5E,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;gBAC/C,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,SAAS,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChH,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,yCAAyC,CAAC,CAAC;YAClG,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAED,aAAa,CAAC,KAAa;QACvB,MAAM,QAAQ,GAAW,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAC5E,IAAI,QAAQ,GAAG,CAAC,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACtC;QACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC/D;IACL,CAAC;IAED,eAAe,CAAC,CAAkB,EAAE,IAAqB;QACrD,MAAM,KAAK,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,UAAU,GAAW,gFAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC;QACrF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,cAAc,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,GAAQ;QACX,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qIAAyB,EAAE;YAC1D,IAAI,EAAE;gBACF,MAAM,EAAE,aAAa;gBACrB,WAAW,EAAE,WAAW;gBACxB,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,mDAAmD;aAC/D;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CACxB,yDAAQ,CAAC,QAAQ,CAAC,EAAE;YAChB,IAAI,CAAC,QAAQ,EAAE;gBACX,OAAO,IAAI,6CAAU,EAAiB,CAAC;aAC1C;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CACL,CAAC,SAAS,CAAC;YACR,IAAI,EAAE,GAAG,CAAC,EAAE;gBACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;gBAClC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;gBAChC,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;gBACvC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YACD,KAAK,EAAE,GAAG,CAAC,EAAE;;gBACT,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,wCAAwC,CAAC,CAAC;YACjG,CAAC;SACJ,CAAC,CACL,CAAC;IACN,CAAC;IAEO,eAAe,CAAC,CAAS;QAC7B;YACI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,YAAY;iBACnD,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,YAAY;iBACxD,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,YAAY;iBAC1D,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SACrE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,mDAAmD;IACnD,IAAI,aAAa;QACb,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;IAC1C,CAAC;IAED,IAAI,sBAAsB;;QACxB,OAAO,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,WAAI,CAAC,SAAS,0CAAE,uBAAuB,MAAK,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IACpI,CAAC;IAED,IAAI,yBAAyB;QAC3B,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvF,CAAC;;4FAhmCM,sBAAsB;qHAAtB,sBAAsB;;;;;;QCjHnC,mHAGM;QAEN,+EAAsB;QAClB,kFAAgB;QACZ,0EAA6C;QACzC,wEAAuF;QACnF,6EAAyC;QACrC,sEAAwC;QACxC,sEAA0D;QAC1D,sEAA6B;QACjC,6DAAS;QACb,6DAAI;QACR,6DAAM;QACV,6DAAiB;QACjB,0EAA2B;QAC3B,qFAAkB;QACd,2EAAkB;QACd,4EAA+F;QAAtE,gJAAU,YAAQ,IAAC;QACxC,2EAA0E;QACtE,wEAAK;QACD,8EAE+D;QAC3D,mEACJ;QAAA,6DAAS;QAET,4HAOS;QAET,4HAMS;QACT,uFAAsC;QAClC,+EAAyC;QAAjC,gJAAS,YAAQ,IAAC;QACtB,qEACJ;QAAA,6DAAS;QACT,+EAA6C;QAArC,gJAAS,WAAO,IAAI,CAAC,IAAC;QAC1B,8EACJ;QAAA,6DAAS;QACb,6DAAW;QAEX,+EAImD;QAA3C,gJAAS,oBAAgB,IAAI,gBAAY,IAAC;QAC9C,6EAAU;QAAA,oEAAO;QAAA,6DAAW;QAC5B,yEAAM;QAAA,uFAAgB;QAAA,6DAAO;QACjC,6DAAS;QAET,4HAMS;QACb,6DAAM;QAEN,+EACkC;QAA1B,gJAAS,mBAAe,IAAC;QAC7B,yDACJ;QAAA,6DAAS;QACb,6DAAM;QAEN,4EAC2C;QAEvC,sHAmBM;QAEN,4EAA+E;QAC3E,uFAAwD;QACpD,8EAAW;QAAA,wEAAM;QAAA,6DAAY;QAC7B,yEACwC;QAC5C,6DAAiB;QACrB,6DAAM;QAEN,4EAAiE;QAC7D,uFAAwD;QACpD,8EAAW;QAAA,iFAAU;QAAA,6DAAY;QACjC,yEAEuB;QAC3B,6DAAiB;QACrB,6DAAM;QAEN,4EAA+D;QAC3D,uFAAwD;QACpD,8EAAW;QAAA,yEAAY;QAAA,6DAAY;QACnC,yEAC+C;QAC/C,yFAC4E;QAC5E,wFAA8C;QAClD,6DAAiB;QACrB,6DAAM;QAEN,wEAAK;QAED,4EAC0D;QACtD,uFAAwD;QACpD,8EAAW;QAAA,yEAAY;QAAA,6DAAY;QACnC,8EAGiD;QAF1B,qJAAS,2BAAuB,IAAC,4FACxC,2BAAuB,IADiB;QADxD,6DAGiD;QACjD,6FAE0D;QADxC,2KAAkB,kBAAc,SAAC,4CAAwC,IAAC;QAExF,qIAUa;QACb,qIASa;QACjB,6DAAmB;QACvB,6DAAiB;QACjB,0HAIQ;QACZ,6DAAM;QAEN,4EACkF;QAC9E,uFAAwD;QACpD,8EAAW;QAAA,oEAAO;QAAA,6DAAY;QAC9B,yEAC8C;QAClD,6DAAiB;QACrB,6DAAM;QACV,6DAAM;QAEN,uFAA0F;QACtF,8EAAW;QAAA,mEAAM;QAAA,6DAAY;QAC7B,mFAC4C;QACxC,oIAEa;QACjB,6DAAa;QACjB,6DAAiB;QAEjB,4EAAqD;QACjD,uFAAwD;QACpD,8EAAW;QAAA,kEAAK;QAAA,6DAAY;QAC5B,mFAG2C;QAF/B,uKAAmB,6BAAyB,SAAC,kCAA8B,IAAC;QAGpF,oIAIa;QACjB,6DAAa;QACb,kIAGY;QAChB,6DAAiB;QACrB,6DAAM;QAEN,4EAC6F;;QACzF,uFAAwD;QACpD,8EAAW;QAAA,6EAAW;QAAA,6DAAY;QAClC,8EAGoF;QAD7E,yJAAc,4CAAgC,IAAC;;QAFtD,6DAGoF;QACpF,yFACsI;;QACtI,wFAA6C;QACjD,6DAAiB;QACjB,0HAEQ;QACZ,6DAAM;QAEN,4EAAqF;QACjF,uFAAwD;QACpD,8EAAW;QAAA,qEAAQ;QAAA,6DAAY;QAC/B,yEAE2C;QAC3C,yFAEwB;QACxB,wFAA0C;QAC9C,6DAAiB;QACrB,6DAAM;QAEN,wHAOM;QAEN,wFAA8D;QAC1D,+EAAW;QAAA,mFAAgB;QAAA,6DAAY;QACvC,oFACoD;QAChD,oFAA2B;QAAA,oEAAM;QAAA,6DAAa;QAC9C,sIAEa;QACjB,6DAAa;QACjB,6DAAiB;QAEjB,6EAAwE;QACpE,wFAAwD;QACpD,+EAAW;QAAA,6EAAe;QAAA,6DAAY;QACtC,0EAC8D;;QAClE,6DAAiB;QACrB,6DAAM;QACN,6EAAwE;QACpE,wFAAwD;QACpD,+EAAW;QAAA,0EAAY;QAAA,6DAAY;QACnC,0EAC8D;;QAClE,6DAAiB;QACrB,6DAAM;QACN,6EAAwE;QACpE,wFAAwD;QACpD,+EAAW;QAAA,oEAAM;QAAA,6DAAY;QAC7B,0EAC8D;;QAClE,6DAAiB;QACrB,6DAAM;QAEN,6EACuB;QACnB,wFAAwD;QACpD,+EAAW;QAAA,iFAAS;QAAA,6DAAY;QAChC,6EAE6D;QACjE,6DAAiB;QACrB,6DAAM;QAEN,2IAqBe;QAEf,wHAMM;QAGN,6EAA4C;QACxC,wFACqC;QACjC,+EAAW;QAAA,8EAAgB;QAAA,6DAAY;QACvC,oFAEoD;QAChD,oFAA2B;QAAA,oEAAM;QAAA,6DAAa;QAC9C,sIAEa;QACjB,6DAAa;QACjB,6DAAiB;QACjB,mIAEY;QAChB,6DAAM;QAEN,6EAAqF;QACjF,oIAoJW;QACf,6DAAM;QAEN,wHAYM;QACV,6DAAM;QAEN,6EAAsE;QAClE,kFAAyC;QACrC,4EAAQ;QAAA,0DAAmC;QAAA,6DAAS;QACpD,0HAqOM;QACV,6DAAW;QACf,6DAAM;QACV,6DAAO;QACX,6DAAM;QACV,6DAAmB;QAGnB,oIAsIW;QACf,6DAAW;;;;;;QAv3BL,8EAAa;QAUO,2DAA0B;QAA1B,4FAA0B;QAC1B,2DAA4C;QAA5C,4IAA4C;QASpD,2DAAkB;QAAlB,gFAAkB;QAGS,2DAA6B;QAA7B,sFAA6B;QAC1C,yLAAuE;QACrC,kFAAoB;QAIrD,2DAAiC;QAAjC,sGAAiC;QASjC,2DAAgC;QAAhC,qGAAgC;QAiBjC,2DAAuC;QAAvC,gGAAuC;QAEvC,2GAAyC;QAM3B,2DAAe;QAAf,sFAAe;QAWrC,2DACJ;QADI,uIACJ;QAMM,2DAA0B;QAA1B,0HAA0B;QAqBZ,2DAA6B;QAA7B,kFAA6B;QAIlC,2DAA+B;QAA/B,6FAA+B;QAOtB,2DAAmC;QAAnC,iGAAmC;QAMvC,2DAA6B;QAA7B,kFAA6B;QAGzB,2DAAoC;QAApC,kGAAoC;QAEnB,2DAAmB;QAAnB,qEAAmB;QASnD,2DAAoD;QAApD,iHAAoD;QAGjC,2DAAmC;QAAnC,iGAAmC;QAIjC,2DAAkB;QAAlB,4EAAkB;QAInB,2DAAiC;QAAjC,kGAAiC;QAUd,2DAAmB;QAAnB,0FAAmB;QAYnD,2DACyE;QADzE,wVACyE;QAOvD,2DAAmD;QAAnD,gHAAmD;QAGzD,2DAAoC;QAApC,kGAAoC;QAMJ,2DAA6B;QAA7B,kFAA6B;QAGzE,2DAA+B;QAA/B,6FAA+B;QACR,2DAAU;QAAV,iFAAU;QAS7B,2DAAkD;QAAlD,kLAAkD;QAIhC,2DAAS;QAAT,gFAAS;QAO3B,2DAAqD;QAArD,8HAAqD;QAOpE,2DAAuF;QAAvF,qNAAuF;QAGpE,2DAAmC;QAAnC,iGAAmC;QAIlB,2DAAkB;QAAlB,sEAAkB;QAI/C,2DAAiC;QAAjC,iJAAiC;QAKZ,2DAAmD;QAAnD,gHAAmD;QAIrE,2DAAgC;QAAhC,8FAAgC;QAEN,2DAAe;QAAf,sEAAe;QAOlD,2DAAiC;QAAjC,sGAAiC;QAWvB,2DAAwC;QAAxC,sGAAwC;QAEpC,2DAAc;QAAd,wEAAc;QACA,2DAAmB;QAAnB,0FAAmB;QAMX,2DAA6B;QAA7B,kFAA6B;QAG5B,2DAAuC;QAAvC,gKAAuC;QAIxC,2DAA6B;QAA7B,kFAA6B;QAG5B,2DAAmC;QAAnC,4JAAmC;QAIpC,2DAA6B;QAA7B,kFAA6B;QAG5B,2DAA+B;QAA/B,wJAA+B;QAUxD,2DAAkC;QAAlC,gGAAkC;QAKrC,2DAAuC;QAAvC,gKAAuC;QAuBhD,2DAAiC;QAAjC,sGAAiC;QASlC,2DAAsC;QAAtC,wGAAsC;QAIvB,2DAA0C;QAA1C,wGAA0C;QAGtC,2DAAc;QAAd,wEAAc;QACA,2DAAiB;QAAjB,wFAAiB;QAKvC,2DAAiE;QAAjE,0IAAiE;QAOlE,2DAAiD;QAAjD,sJAAiD;QAsJ1D,2DAAW;QAAX,wEAAW;QAgBP,2DAA8B;QAA9B,4FAA8B;QAC5B,2DAAmC;QAAnC,qIAAmC;QACnB,2DAA0B;QAA1B,+HAA0B;QA6OrC,2DAAkC;QAAlC,qIAAkC;;;;;;;;;;;;;;;;;;;;;ACvuB7D,MAAM,eAAe;;8EAAf,eAAe;6GAAf,eAAe;QALlB,yEAAwC;QAAA,2EAA+B;QAAA,4DAAM;;;;;;;;;;;;;;;;;;;;;;ACHnB;;;;;;AAQhE,MAAM,yBAAyB;IAElC,YAAmB,SAAkD,EACzB,IAAU;QADnC,cAAS,GAAT,SAAS,CAAyC;QACzB,SAAI,GAAJ,IAAI,CAAM;IACtD,CAAC;IAED,QAAQ;IACR,CAAC;;kGAPQ,yBAAyB,uMAGd,qEAAe;uHAH1B,yBAAyB;QCTtC,6EAAmC;QAC/B,yEAA6G;QACzG,yEAAyB;QACrB,wEAAqB;QAAA,uDAAoB;QAAA,4DAAK;QAClD,4DAAM;QACN,4EAA2E;QACvE,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC9B,4DAAS;QACb,4DAAM;QACN,yEAAkB;QACd,yEAAwB;QACpB,0EAAiD;QAC7C,0EAAkB;QACd,qEAAG;QAAA,wDAAmB;QAAA,4DAAI;QAC9B,4DAAM;QAEN,0EAA+B;QAC3B,8EACwB;QAAA,wDAAyB;QAAA,4DAAS;QAC1D,uEAAoB;QACpB,8EACmC;QAAA,wDAAyB;QAAA,4DAAS;QACzE,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAU;;QAvBuB,0DAAoB;QAApB,mFAAoB;QAErB,0DAA0B;QAA1B,mFAA0B;QAQnC,0DAAmB;QAAnB,oFAAmB;QAII,0DAAyB;QAAzB,kFAAyB;QAC3B,0DAAyB;QAAzB,wFAAyB;QAGzC,0DAA0B;QAA1B,mFAA0B;QAAC,0DAAyB;QAAzB,wFAAyB;;;;;;;;;;;;;;;;;;;ACMzE,MAAM,gBAAgB;IAEzB,SAAS,CAAC,OAAiB,EAAE,qBAA6B;QACtD,QAAQ,qBAAqB,EAAE;YAC3B,KAAK,GAAG,CAAC;YACT,KAAK,GAAG;gBACJ,OAAO,OAAO,CAAC;YACnB;gBACI,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAAC,CAAC,CAAC;SACtH;IACL,CAAC;;gFAVQ,gBAAgB;gIAAhB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BkD;AACG;AAQiD;;;;;;;;;;;;;;;;;ICgBtH,iFAAuG;IAA9B,sWAAS,6BAAmB,IAAC;IACpG,2EAA2C;IAAA,uDAAwB;IAAA,4DAAO;IAC5E,4DAAa;;;IAF6B,oHAA8B;IAC3B,0DAAwB;IAAxB,kHAAwB;;;IASxE,4EAAuE;IAAA,qFAA0B;IAAA,4DAAQ;;;IAD3G,0EAAoF;IAClF,uHAAyG;IAC3G,4DAAM;;;IAD4B,0DAAqC;IAArC,wGAAqC;;;IAIvE,0EAA+F;IAC7F,qFAAwD;IACtD,4EAAW;IAAA,yEAAc;IAAA,4DAAY;IACrC,uEAAoF;IACtF,4DAAiB;IACnB,4DAAM;;;IAFuD,0DAA0B;IAA1B,0FAA0B;;;;IAIrF,6EAAmG;IAA5B,mSAAS,yBAAiB,IAAC;IAAC,wEAAa;IAAA,4DAAS;;;;IACzH,6EAAiG;IAAzB,mSAAS,sBAAc,IAAC;IAAC,2EAAgB;IAAA,4DAAS;;AD5B7H,MAAM,eAAe;IAqB1B,YACkC,IAAS,EACjC,gBAAiC,EACjC,EAAe,EACf,YAAgC,EAChC,QAAuC,EACvC,MAAiB,EACjB,YAA0B;QANF,SAAI,GAAJ,IAAI,CAAK;QACjC,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAoB;QAChC,aAAQ,GAAR,QAAQ,CAA+B;QACvC,WAAM,GAAN,MAAM,CAAW;QACjB,iBAAY,GAAZ,YAAY,CAAc;QA1BpC,YAAO,GAAc,EAAE,CAAC;QACxB,YAAO,GAAU,EAAE,CAAC;QAEpB,eAAU,GAAG,IAAI,CAAC;QAClB,qBAAgB,GAAG,GAAG,CAAC;QACvB,eAAU,GAAmB,EAAE,CAAC;QAEhC,iBAAY,GAAG,IAAI,uDAAW,EAAE,CAAC;QACjC,kBAAa,GAAG,IAAI,uDAAW,EAAE,CAAC;QAClC,eAAU,GAAG,IAAI,uDAAW,EAAE,CAAC;QAE/B,WAAM,GAAqB,EAAE,CAAC;QAG9B,0BAAqB,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC1C,uBAAkB,GAAqB,EAAE,CAAC;QAaxC,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACnD,IAAI,IAAI,CAAC,IAAI,EAAE;YAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAAE;IACxD,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;IAClE,CAAC;IACD,mBAAmB,CAAC,CAAM;QACxB,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACpF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;SAC5B;IACL,CAAC;IAED,UAAU,CAAC,MAAc;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,gBAAgB;aACpB,2BAA2B,CAAC,MAAM,CAAC;aACnC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,CAAC,CACL,CAAC;IACH,CAAC;IAED,UAAU,CAAC,SAAS;QAClB,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACxE,IAAI,GAAG,EAAE;gBAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBACnC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAAC;aAAG;QAC9C,CAAC,CAAC,CACL,CAAC;IACJ,CAAC;IAID,gBAAgB;;QACd,IAAG,CAAC,IAAI,CAAC,kBAAkB,EAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACjE,OAAO;SACR;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC;YACxD,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YAC5D,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YACnD,OAAO,KAAK,CAAC;SACd;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;YACrC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE,CAAC;YACpD,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC;SACd;QAED,MAAM,GAAG,GAAG;YACV,YAAY,EAAE,UAAI,CAAC,YAAY,CAAC,YAAY,0CAAE,MAAM;YACpD,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,QAAQ,EAAE,IAAI,CAAC,gBAAgB;YAC/B,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;SAEnE,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,GAAG,CAAC;aAC9C,SAAS,CAAC,GAAG,CAAC,EAAE;YACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAC,CAAC,CAAC;QAC3D,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE;;YACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,iBAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,0CAAE,QAAQ,mCAAI,gDAAgD,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACzH,CAAC,CAAC,CACT,CAAC;IACJ,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC;gBACrD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;gBACzD,OAAO,KAAK,CAAC;aACd;YACD,MAAM,MAAM,GAAI;gBACd,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;gBACzC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;aACpC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;gBAChE,yDAAyD;gBACzD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/B,IAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,gCAAgC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBAC3E;qBAAM;oBACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;iBACvD;gBAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC,EAAE,KAAK,CAAC,EAAE;gBACT,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACxD,CAAC,CAAC,CACL,CAAC;SACH;IACH,CAAC;IAED,WAAW,CAAC,MAAsB;QAChC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC;QACjC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED,SAAS,CAAC,SAAiB;QACzB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC;QAC5E,IAAI,MAAM,EAAE;YACV,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACzD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,gBAAgB;qBAChB,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;oBAClE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;oBACnB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;gBACpB,CAAC,CAAC,CAAC,CAAC;aACT;iBAAM;gBACL,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBACzD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;aACzB;SACF;IACH,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC5B,GAAG,CAAC,WAAW,EAAE,CAAC;YACpB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;IAED,YAAY;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6IAAqC,EAAE;YACvE,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;QAEH,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;EACD,6BAA6B;8EA7LlB,eAAe,kEAsBhB,qEAAe;6GAtBd,eAAe;QCpB5B,yEAAwC;QACtC,6EAAmC;QACjC,yEAA2B;QACzB,0EAA8D;QAC5D,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC5B,4DAAO;QACP,yEAAkC;QAChC,yEAAqB;QACnB,wEAAqC;QACnC,uDACF;QAAA,4DAAK;QACP,4DAAM;QACR,4DAAM;QACR,4DAAM;QAEN,0EAA0C;QACxC,0EAA0B;QACzB,yEAAc;QACZ,0EAA0D;QACxD,sFAAwD;QACtD,6EAAW;QAAA,8EAAkB;QAAA,4DAAY;QACzC,6EACiE;QADsB,6IAAS,+BAA2B,IAAC,qFAAU,+BAA2B,IAArC;QAA5H,4DACiE;QACjE,gFAAiF;QAAtC,gJAAS,+BAA2B,IAAC;QAAC,2EAAe;QAAA,4DAAW;QAC7G,4DAAiB;QACjB,4FAAkE;QAChE,4HAEa;QACf,4DAAmB;QACrB,4DAAM;QACR,qEAAe;QAChB,4DAAM;QAEN,2EAA2D;QACzD,8GAEM;QACR,4DAAM;QACN,2EAA2D;QACzD,8GAKM;QACN,2EAAqF;QACnF,oHAAyH;QACzH,oHAA0H;QAC5H,4DAAM;QACR,4DAAM;QACR,4DAAM;QACN,2EAAgC;QAC9B,2EAAuC;QACrC,8EAKC;QACC,sEACF;QAAA,4DAAS;QACT,8EAAsF;QAAtD,wIAAS,sBAAkB,IAAC;QAC1D,uEACF;QAAA,4DAAS;QACX,4DAAM;QACR,4DAAM;QACR,4DAAU;QACZ,4DAAM;;;QA3DM,0DACF;QADE,0NACF;QAWoD,0DAAqC;QAArC,kGAAqC;QAKvD,0DAAS;QAAT,+EAAS;QAST,0DAA8C;QAA9C,kHAA8C;QAKL,0DAAgB;QAAhB,gFAAgB;QAOtC,0DAAgB;QAAhB,gFAAgB;QAChB,0DAAiB;QAAjB,iFAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/Cd;AAEgB;AAWrB;AAChB;AACM;AACO;;;;;;;;;;;;;;;;;;;;;ICjB1D,sEAAqB;IACjB,kFAA0D;IAC9D,4DAAM;;;IAWkB,uEAAkC;IAAA,qEAAU;IAAA,4DAAO;;;IAC/B,uDAAiB;;;IAAjB,mFAAiB;;;;IAGrC,6EAIuD;IAH/C,iXAAS,qCAA2B,IAAC;IAIzC,0EAAmD;IAAA,uDAAsB;IAAA,4DAAM;IACnF,4DAAS;;;;IAND,+KAA0E;IAK3B,0DAAsB;IAAtB,oFAAsB;;;IANjF,0EAA+C;IAC3C,yIAMS;IACb,4DAAM;;;IAHoB,0DAAiB;IAAjB,0FAAiB;;;;IAW/C,6EAIuD;IAH/C,mXAAS,uCAA2B,IAAC;IAIzC,0EAAmD;IAAA,uDAAsB;IAAA,4DAAM;IACnF,4DAAS;;;;IAND,kLAA0E;IAK3B,0DAAsB;IAAtB,qFAAsB;;;IAPjF,0EACsC;IAClC,yIAMS;IACb,4DAAM;;;IAHoB,0DAAiB;IAAjB,0FAAiB;;;;IAWvB,iFAEwC;IAF5B,6XAAS,wCAA4B,IAAC;IAEV,uDACxC;IAAA,4DAAa;;;IADD,gHAA2B;IAAC,0DACxC;IADwC,gHACxC;;;IAYA,iFACmC;IAAA,uDACnC;IAAA,4DAAa;;;IADD,4GAAsB;IAAC,0DACnC;IADmC,wHACnC;;;IATZ,0EAE6C;IACzC,qFAA4D;IACxD,4EAAW;IAAA,uDAA6B;IAAA,4DAAY;IACpD,iFAA0E;IACtE,6EAAY;IAAA,4EAAiB;IAAA,4DAAa;IAC1C,uJAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;;;IAVD,mGAAuC;IACL,0DAAwB;IAAxB,iFAAwB;IAC5C,0DAA6B;IAA7B,sIAA6B;IACM,0DAA2B;IAA3B,4FAA2B;IAExC,0DAAQ;IAAR,kFAAQ;;;IAgB7C,gFACoC;IAChC,uDACJ;IAAA,4DAAY;;;IADR,0DACJ;IADI,yLACJ;;;IAmBQ,iFACyC;IAAA,uDACzC;IAAA,4DAAa;;;IADD,qHAA4B;IAAC,0DACzC;IADyC,iIACzC;;;IARZ,0EACwC;IACpC,qFACwD;IACpD,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B,iFAAmF;IAC/E,wJAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;;;IARc,0DAAuC;IAAvC,mGAAuC;IADpB,iFAAwB;IAGA,0DAA2B;IAA3B,4FAA2B;IAC9C,0DAAW;IAAX,qFAAW;;;IAuB3C,iFACqC;IACjC,uDACJ;IAAA,4DAAa;;;IAFD,6GAAwB;IAChC,0DACJ;IADI,6IACJ;;;IAMZ,0EAGiF;IAC7E,0EAAyB;IACrB,uFACgE;IAC5D,kFACJ;IAAA,4DAAmB;IACvB,4DAAM;IACV,4DAAM;;;IAGF,wEAAwD;IAAA,wEAAO;IAAA,6HAChC;IAAA,4DAAQ;IAAA,4DAAI;;;IA1GvD,0EAAmE;IAC/D,0EAAuC;IACnC,0EACgF;IAC5E,qFAA4D;IACxD,4EAAW;IAAA,uDAAmC;IAAA,4DAAY;IAC1D,iFAAgF;IAC5E,iJAGa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IAEN,mIAYM;IACN,0EAC8D;IAC1D,sFAA4D;IACxD,6EAAW;IAAA,uEAAa;IAAA,4DAAY;IACpC,wEAIkC;IACtC,4DAAiB;IACjB,iJAGY;IAChB,4DAAM;IAEN,2EAC6C;IACzC,sFAA4D;IACxD,6EAAW;IAAA,gFAAU;IAAA,4DAAY;IACjC,wEAEoC;IACxC,4DAAiB;IACrB,4DAAM;IAEN,qIAWM;IAEN,2EAC6C;IACzC,sFAA4D;IACxD,6EAAW;IAAA,sEAAK;IAAA,4DAAY;IAC5B,wEAG0C;IAC9C,4DAAiB;IACrB,4DAAM;IACN,2EAE6C;IACzC,sFAA4D;IACxD,6EAAW;IAAA,gEAAI;IAAA,4DAAY;IAC3B,kFAAoE;IAChE,mJAGa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IAGN,qIAUM;IAEN,2EAAoF;IAChF,iIAC2C;IAAA,4DAAM;IACzD,4DAAM;IAEV,4DAAM;;;IA1G0C,0DAAuC;IAAvC,kGAAuC;IAD1E,kGAAkC;IAEA,0DAAwB;IAAxB,iFAAwB;IAC5C,0DAAmC;IAAnC,0IAAmC;IACH,0DAA2B;IAA3B,2FAA2B;IAEtC,0DAAY;IAAZ,qFAAY;IAO9C,0DAAoC;IAApC,8IAAoC;IAcrC,0DAAwD;IAAxD,wJAAwD;IACtB,0DAAwB;IAAxB,iFAAwB;IAG9B,0DAA4C;IAA5C,iJAA4C;IAK7D,0DAA6C;IAA7C,gHAA6C;IAOxD,0DAAuC;IAAvC,kGAAuC;IACL,0DAAwB;IAAxB,iFAAwB;IAIhD,0DAA2B;IAA3B,2FAA2B;IAIpC,0DAAqC;IAArC,6IAAqC;IActC,0DAAuC;IAAvC,kGAAuC;IACL,0DAAwB;IAAxB,iFAAwB;IAIhD,0DAAwD;IAAxD,oLAAwD;IADxD,2FAA2B;IAOrC,0DAAuC;IAAvC,kGAAuC;IACL,0DAAwB;IAAxB,iFAAwB;IAEf,0DAA2B;IAA3B,2FAA2B;IACnC,0DAAW;IAAX,oFAAW;IAS7C,0DAA6F;IAA7F,4PAA6F;IAa3F,0DAA+B;IAA/B,yGAA+B;;ADvHpD,MAAM,+BAA+B;IAkCxC,YACY,aAA6B,EAC7B,EAAe,EACS,UAAe,EACvC,YAA0B,EAC1B,YAAgC,EAChC,YAA0B,EAC1B,KAAgB,EAChB,QAAuD,EACvD,mBAAyC;QAEjD,qBAAqB;QAVb,kBAAa,GAAb,aAAa,CAAgB;QAC7B,OAAE,GAAF,EAAE,CAAa;QACS,eAAU,GAAV,UAAU,CAAK;QACvC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAW;QAChB,aAAQ,GAAR,QAAQ,CAA+C;QACvD,wBAAmB,GAAnB,mBAAmB,CAAsB;QA1C5C,WAAM,GAAG,sEAAM,CAAC;QACzB,YAAO,GAAG,KAAK,CAAC;QAChB,SAAI,GAAmB,EAAE,CAAC;QAC1B,SAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,UAAU,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;YACrC,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,+DAAmB,EAAE,0DAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,eAAe,EAAE,CAAC,CAAC,EAAE,0DAAc,CAAC,CAAC,CAAC,CAAC;YACvC,YAAY,EAAE,CAAC,EAAE,EAAE,+DAAmB,CAAC;YACvC,gBAAgB,EAAE,EAAE;YACpB,SAAS,EAAE,EAAE;YACb,WAAW,EAAE,KAAK;YAClB,WAAW,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,0DAAc,CAAC,CAAC,CAAC,CAAC;YACxE,SAAS,EAAE,CAAC,CAAC,EAAE,+DAAmB,CAAC;YACnC,eAAe,EAAE,CAAC,CAAC,EAAE,CAAC,+DAAmB,EAAE,0DAAc,CAAC,CAAC,CAAC,CAAC,CAAC;SACjE,CAAC,CAAC;QAGH,UAAK,GAAmB,EAAE,CAAC;QAC3B,aAAQ,GAAU,EAAE,CAAC;QACrB,aAAQ,GAAc,EAAE,CAAC;QACzB,cAAS,GAAqB,EAAE,CAAC;QAEjC,oBAAe,GAAG,CAAC,CAAC;QACX,gBAAW,GAAG,WAAW,CAAC;QACnC,aAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QACtB,YAAO,GAAgB,EAAE,CAAC;QAC1B,mBAAc,GAA0B,EAAE,CAAC;QAC3C,cAAS,GAAG,IAAI,CAAC;QACjB,cAAS,GAAG,KAAK,CAAC;QAClB,gBAAW,GAAG,KAAK,CAAC;QACpB,cAAS,GAAG,KAAK,CAAC;QAed,eAAe;QACf,IAAI,UAAU,CAAC,aAAa,EAAE;YAC1B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;SAC3D;QACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC/B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,eAAuB;QAC9B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACvF,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;QAC/B,CAAC,EAAE,CAAC,IAAS,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC5D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;QAChC,CAAC,EAAE,CAAC,IAAS,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,QAAQ,CAAC,eAAuB,EAAE,SAAiB;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC3E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;QAC7B,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,YAAY,CAAC,WAAmB;QAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;;YAC5D,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC7C,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,IAAI,CAAC,CAAC,MAAM,CAAC;gBAC7E,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC;iBACjB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAI,CAAC,SAAS,CAAC,CAAC,CAAC,0CAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1F,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,OAAO,CAAC,OAAe;QACnB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC5D,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACxB,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,wBAAwB,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;;YACtD,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3F,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACtF,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,CAAC,gBAAI,CAAC,aAAa,0CAAE,cAAc,mCAAI,EAAE,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,EACD,GAAG,CAAC,EAAE;YACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACjF,CAAC,CAAC,CACT,CAAC;IACN,CAAC;IAED,eAAe,CAAC,aAAkC,EAAE,IAAY,EAAE,YAAoB;QAClF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,aAAa,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE;YACjG,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACzB,CAAC,CAAC,CACL,CAAC;IACN,CAAC;IAED,MAAM;;QACF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACnB,OAAO;SACV;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,OAAO,GAAG;YACZ,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;YACrC,WAAW,EAAE,IAAI,CAAC,QAAQ;YAC1B,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,EAAE;YACtB,eAAe,EAAE;gBACb;oBACI,SAAS,EAAE,IAAI;oBACf,eAAe,EAAE,EAAE;oBACnB,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;oBACrC,cAAc,EAAE,IAAI;oBACpB,mBAAmB,EAAE,EAAE;iBAC1B;aACJ;YACD,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,EAAE;YACvB,SAAS,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM;YACjD,aAAa,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM;YACrD,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;YACvC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,eAAe;YACnD,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe;YACvC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;YAC1C,MAAM,EAAE,6EAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;YACxD,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,MAAM,EAAE;gBACJ;oBACI,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,CAAC;oBAChB,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS;oBACpC,MAAM,EAAE,6EAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;oBACxD,MAAM,EAAE,CAAC;oBACT,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,CAAC;oBACV,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,IAAI;oBACb,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM;oBACrD,eAAe,EAAE,CAAC;oBAClB,kBAAkB,EAAE,EAAE;iBACzB;aACJ;YACD,cAAc,EAAE,EAAE;YAClB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,EAAE;YACnB,mBAAmB,EAAE,EAAE;YACvB,MAAM,EAAE,EAAE;YACV,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe;YAChD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS;YACpC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK,GAAG;YAC/C,UAAU,EAAE,CAAC;YACb,iBAAiB,EAAE,EAAE;YACrB,iBAAiB,EAAE,KAAK;YACxB,UAAU,EAAE,CAAC;YACb,OAAO,EAAE,EAAE;YACX,aAAa,EAAE,UAAI,CAAC,aAAa,CAAC,WAAW,mCACzC,UAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,0CAAE,WAAW;YAC1F,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,aAAa,KAAK,gEAAe,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK,GAAG;YAC3G,SAAS,EAAE,KAAK;YAChB,iBAAiB,EAAE,KAAK;YACxB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,KAAK;YACxC,SAAS,EAAE,KAAK;YAChB,mBAAmB,EAAE,EAAE;YACvB,wBAAwB,EAAE,EAAE;YAC5B,mBAAmB,EAAE,EAAE;YACvB,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,KAAK;YACf,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,EAAE;YACnB,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE;YACnD,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,EAAE;YACtB,OAAO,EAAE,EAAE;YACX,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,EAAE;YAChB,mBAAmB,EAAE,EAAE;YACvB,eAAe,EAAE,EAAE;YACnB,sBAAsB,EAAE,EAAE;YAC1B,sBAAsB,EAAE,KAAK;YAC7B,6BAA6B,EAAE,KAAK;YACpC,cAAc,EAAE,KAAK;SACxB,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;;YACxD,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBACZ,UAAU,EAAE,EAAE;gBACd,YAAY,EAAE,CAAC;gBACf,cAAc,EAAE,CAAC;gBACjB,eAAe,EAAE,CAAC;gBAClB,YAAY,EAAE,EAAE;gBAChB,gBAAgB,EAAE,EAAE;gBACpB,SAAS,EAAE,EAAE;gBACb,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;gBACnD,SAAS,EAAE,gBAAI,CAAC,aAAa,0CAAE,KAAK,mCAAI,CAAC;gBACzC,eAAe,EAAE,gBAAI,CAAC,aAAa,0CAAE,sBAAsB,mCAAI,CAAC;aACnE,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC;YACzG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,EACD,GAAG,CAAC,EAAE;;YACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACrB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,SAAG,CAAC,KAAK,0CAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CACT,CAAC;IACN,CAAC;IAED,wBAAwB,CAAC,aAAkC;;QACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC3E,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,aAAa,CAAC,aAAa,GAAG,CAAC,EAAE;YACjC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,aAAa,CAAC;gBACjC,gEAAoB,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,gEAAoB,CAAC,aAAa,CAAC,aAAa,CAAC;aACvG,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,sBAAsB,EAAE,CAAC;SACnD;QACD,IAAI,aAAa,CAAC,gBAAgB,EAAE;YAChC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;gBAClE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;gBACxD,KAAK,EAAE,GAAG,CAAC,EAAE;;oBACT,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACnB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,UAAG,CAAC,KAAK,0CAAE,QAAQ,KAAI,oCAAoC,CAAC,CAAC;gBAC7F,CAAC;aACJ,CAAC,CAAC;SACN;QACD,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,UAAU,CAAC,mBAAa,CAAC,KAAK,mCAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,YAAY,GAAG,CAAC,mBAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,cAAc,mCAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,YAAY,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,CAAC,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9D,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAED,WAAW;QACP,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,uBAAuB,CAAC,UAAe;QACnC,IAAI,IAAI,CAAC,aAAa,CAAC,gBAAgB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YACvG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,aAAa,EAAE,6EAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;SACzG;IACL,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;;8GA3SQ,+BAA+B,sVAqC5B,qEAAe;6HArClB,+BAA+B,kKAF7B,CAAC,0DAAY,CAAC;QCxB7B,2HAEM;QAEN,0EAAS;QACL,0EAAgF;QAAvD,2JAAY,YAAQ,IAAC;QAC1C,yEAA8B;QACxB,0EAA8E;QAC5E,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC5B,4DAAO;QACT,yEAAmB;QACf,yEAA2C;QACvC,wEAAqB;QACjB,+HAAmD;QACnD,yNAAmD;QACvD,4DAAK;QACL,6HAQM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACN,0EAA2B;QAC3B,2EAA8B;QAC1B,8HASM;QACN,gIA6GM;QACV,4DAAM;QACN,2EAA0B;QACtB,2EAAuC;QACnC,8EAAqG;QACjG,sEACJ;QAAA,4DAAS;QACT,8EAE+C;QAAA,mEAC/C;QAAA,4DAAS;QACb,4DAAM;QACV,4DAAM;QACV,4DAAO;QACX,4DAAU;;;QAnKJ,6EAAa;QAKT,0DAAkB;QAAlB,+EAAkB;QAQG,0DAAe;QAAf,6EAAe;QAGpB,0DAAiB;QAAjB,iFAAiB;QAczB,0DAA+C;QAA/C,mHAA+C;QAU/C,0DAA+C;QAA/C,mHAA+C;QAiHzB,0DAAyB;QAAzB,kFAAyB;QAGzC,0DAA+C;QAA/C,2GAA+C;QAE/C,uGAAsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7JS;AAGhB;;;;;;;;;;;;;;IAO/C,kFAAgG;;AAkC9F,MAAM,qCAAqC;IAK9C,YACoC,KAAU,EAClC,YAAgC,EAChC,cAA+B,EAC/B,QAA6D;QAHrC,UAAK,GAAL,KAAK,CAAK;QAClC,iBAAY,GAAZ,YAAY,CAAoB;QAChC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,aAAQ,GAAR,QAAQ,CAAqD;QAR5E,eAAU,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC/B,SAAI,GAAmB,EAAE,CAAC;QAC1B,qBAAgB,GAAG,GAAG,CAAC;QACvB,kBAAa,GAAG,KAAK,CAAC;IAK0D,CAAC;IAEjF,eAAe;QACP,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YAChD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;YACzD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,+BAA+B,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC;SAChB;QACD,MAAM,MAAM,GAAI;YACZ,kBAAkB,EAAE,IAAI,CAAC,gBAAgB;YACzC,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;SACtC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CACV,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YAC7D,IAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,+BAA+B,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC1E;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACvD;YACD,gEAAgE;YAC/D,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC,EAAE,KAAK,CAAC,EAAE;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACpE,CAAC,CAAC,CACL,CAAC;IAEV,CAAC,CAAC,MAAM;IACR,WAAW;QACP,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;SAChD;IACL,CAAC;;0HA7CW,qCAAqC,kEAMlC,qEAAe;mIANlB,qCAAqC;QAnCjD,0EAAS;QACL,2JAAgG;QAChG,yEAAoC;QAC9B,0EAA8D;QAC5D,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC5B,4DAAO;QACL,yEAAkC;QAC9B,yEAAqB;QACjB,wEAA0D;QACtD,mGACJ;QAAA,4DAAK;QACT,4DAAM;QACV,4DAAM;QACd,4DAAM;QAEN,0EAA+C;QAC3C,0EAA2B;QACvB,0EAAwF;QACpF,qFAAwD;QACpD,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B,wEAA6G;QACjH,4DAAiB;QACrB,4DAAM;QACV,4DAAM;QAEN,2EAA2D;QACvD,2EAAiF;QAC7E,8EAAgF;QAAA,kEAAM;QAAA,4DAAS;QAC/F,uEAAoB;QACpB,8EAAgF;QAA5B,8JAAS,qBAAiB,IAAC;QAAC,kEAAM;QAAA,4DAAS;QACnG,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAU;;QAhCa,0DAAmB;QAAnB,mFAAmB;QAmB4D,2DAA0B;QAA1B,uFAA0B;QAO1D,0DAAyB;QAAzB,kFAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpC1B;AAEX;AACO;AAExB;AAGjB;;;;;;;;;;;;;;;;;;;IA0FV,iFAAmM;IAAzG,wWAAS,wBAAiB,qBAAmB,OAAO,CAAC,gCAA6B,IAAC;IACzK,2EAAkC;IAC9B,4EAAqB;IAAA,uDAAc;IAAA,4DAAQ;IAC/C,4DAAO;IACX,4DAAa;;;;IAJD,6HAAgC;IAEf,0DAAc;IAAd,8EAAc;;;IAoCnC,4EAAsD;IAAA,uDAA4B;IAAA,4DAAQ;;;IAApC,0DAA4B;IAA5B,6FAA4B;;;IAClF,4EAAuD;IAAA,uDAA0B;IAAA,4DAAQ;;;IAAlC,0DAA0B;IAA1B,0FAA0B;;;;IAHvF,iFAA0H;IAAhE,4WAAS,iCAAqB,IAAC;IACvF,2EAAkC;IAC9B,iIAA0F;IAC1F,iIAAyF;IAC7F,4DAAO;IACT,4DAAa;;;IAL6E,4FAA+B;IAE3G,0DAA8B;IAA9B,8FAA8B;IAC9B,0DAA+B;IAA/B,+FAA+B;;;;IA0D7C,iFAC0H;IAA9G,qTAAS,4BAAoB,sBAAmB,UAAU,CAAC,4BAA4B,IAAC;IAClG,2EAAkC;IAC9B,4EAAqB;IAAA,uDAAc;IAAA,4DAAQ;IAC/C,4DAAO;IACT,4DAAa;;;;IALD,6HAAgC;IAGjB,0DAAc;IAAd,+EAAc;;AAkBnD,MAAM,kBAAkB;IAiBhC,YAA4C,KAAU,EAClC,QAA0C,EAC1C,cAA+B,EAC/B,YAAgC,EAChC,EAAe,EACf,KAAyB;QALD,UAAK,GAAL,KAAK,CAAK;QAClC,aAAQ,GAAR,QAAQ,CAAkC;QAC1C,mBAAc,GAAd,cAAc,CAAiB;QAC/B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,OAAE,GAAF,EAAE,CAAa;QACf,UAAK,GAAL,KAAK,CAAoB;QAnB7C,mBAAc,GAAoB,EAAE,CAAC;QACrC,2BAAsB,GAAoB,EAAE,CAAC;QAC7C,2BAAsB,GAAW,EAAE,CAAC;QACpC,2BAAsB,GAAW,EAAE,CAAC;QACpC,8BAAyB,GAAW,EAAE,CAAC;QAGvC,kBAAa,GAAG,IAAI,uDAAW,EAAE,CAAC;QAClC,qBAAgB,GAAG,IAAI,uDAAW,EAAE,CAAC;QACrC,mBAAc,GAAG,IAAI,uDAAW,EAAE,CAAC;QAEnC,UAAK,GAAG,6DAAW,CAAC;QASlB,IAAI,CAAC,OAAO,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,CAAC;QACxC,IAAI,KAAK,IAAI,KAAK,CAAC,aAAa,EAAE;YAChC,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc;mBAC5B,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;mBAC/B,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,aAAa,CAAC,kBAAkB,EAAE;gBAClE,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,KAAK,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;aACzH;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;SACvD;aAAM;YACL,IAAI,KAAK,IAAI,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzG,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;aAClD;YACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAClC;IACH,CAAC;IAED,QAAQ;QACP,4BAA4B;IAC7B,CAAC;IAED,QAAQ;;QACN,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACnB,SAAS,EAAE,CAAC,EAAE,CAAC;gBACf,SAAS,EAAE,CAAC,EAAE,CAAC;gBACf,cAAc,EAAE,CAAC,EAAE,CAAC;gBACpB,aAAa,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa;gBACzD,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACnC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACvB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACjC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;aAC5B,CAAC;YACF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACtB,YAAY,EAAE,CAAC,EAAE,CAAC;gBAClB,YAAY,EAAE,CAAC,EAAE,CAAC;gBAClB,iBAAiB,EAAE,UAAI,CAAC,iBAAiB,0CAAE,iBAAiB;gBAC5D,iBAAiB,EAAE,UAAI,CAAC,iBAAiB,0CAAE,iBAAiB;gBAC5D,IAAI,EAAE,UAAI,CAAC,iBAAiB,0CAAE,aAAa;gBAC3C,aAAa,EAAE,UAAI,CAAC,iBAAiB,0CAAE,aAAa;gBACpD,UAAU,EAAE,UAAI,CAAC,iBAAiB,0CAAE,UAAU;gBAC9C,eAAe,EAAE,UAAI,CAAC,iBAAiB,0CAAE,eAAe;gBACxD,iBAAiB,EAAE,UAAI,CAAC,iBAAiB,0CAAE,iBAAiB;gBAC5D,eAAe,EAAE,UAAI,CAAC,iBAAiB,0CAAE,eAAe;gBACxD,iBAAiB,EAAE,UAAI,CAAC,iBAAiB,0CAAE,iBAAiB;gBAC5D,cAAc,EAAE,UAAI,CAAC,iBAAiB,0CAAE,cAAc;aACvD,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,UAAU,CAAC,KAAoB;QAC7B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACnB,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBAClE,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,2DAAU,CAAC,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC7F,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;gBAC/D,aAAa,EAAE,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;gBAChE,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBAC/D,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE;gBACzD,SAAS,EAAE,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBACxE,4DAA4D;gBAC5D,SAAS,EAAE,EAAE;gBACb,MAAM,EAAE,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;aAChE,CAAC;YACF,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;gBACtB,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;gBAC3E,YAAY,EAAE,KAAK,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,2DAAU,CAAC,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;gBACtG,iBAAiB,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBACxE,iBAAiB,EAAE,KAAK,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;gBACpF,IAAI,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBAC3D,aAAa,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBACpE,UAAU,EAAE,KAAK,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBACjE,eAAe,EAAE,KAAK,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;gBAChF,iBAAiB,EAAE,IAAI;gBACvB,eAAe,EAAE,EAAE;gBACnB,iBAAiB,EAAE,IAAI;gBACvB,cAAc,EAAE,KAAK,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;aAC1E,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAc,CAAC;IAClD,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAc,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,MAAqB;QACjC,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAChE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACzE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACnE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC7E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACjF,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAC3E,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SAClF;IACH,CAAC;IAGD,gBAAgB,CAAC,SAAc,EAAE,SAAe;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE;YAChD,0EAA0E;YAC1E,OAAO;SACR;QACD,MAAM,IAAI,GAAG,2DAAU,CAAC,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACrF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SAC7E;QAED,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;SAC3D;QAED,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YAC/E,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SAChD;IAEH,CAAC;IAED,mBAAmB,CAAC,YAAiB,EAAE,YAAkB;QACvD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE;YACvD,6EAA6E;YAC5E,OAAO;SACR;QAEF,MAAM,IAAI,GAAG,2DAAU,CAAC,YAAY,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACjG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SACtF;QACD,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxE,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;SACjE;QACA,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YAC5F,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;SACnD;IACJ,CAAC;IACC,WAAW,CAAC,KAAU,EAAE,WAAmB;QACzC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1E,IAAI,WAAW,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;aAC1H;YACF,IAAI,WAAW,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;aAC7H;SACF;aAAM;YACN,IAAI,WAAW,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC;aAC1C;YACA,IAAI,WAAW,KAAK,CAAC,EAAE;gBACrB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;aAC7C;SACF;IACH,CAAC;IAEH,EAAE;IACA,aAAa,CAAC,KAAU;QACtB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7F,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CACtD,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,CAAC,cAAc;gBACf,CAAC,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC/D,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACtF,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAC9E,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClF,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACrF,CAAC;SACH;aAAM;YACL,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC;SACnD;IACH,CAAC;IACD,YAAY;QACV,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC;IACpD,CAAC;IAED,iBAAiB,CAAC,WAAmB;QAClC,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,KAAK,CAAC;SAC1C;QACF,IAAI,WAAW,KAAK,CAAC,EAAE;YACrB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,KAAK,CAAC;SAC7C;IACH,CAAC;IAEH,WAAW;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mCAAmC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mCAAmC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO;SACR;QAED,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACjH,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACzD,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YACxD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,mCAAmC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACvE,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;YAChC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,sCAAsC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1E,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE;YACnD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,sCAAsC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1E,OAAO;SACR;QAGC,IAAI,6CAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,6CAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE;YACvF,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,sDAAsD,CAAC,CAAC;YAC7E,OAAO;SACR;QAGD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;YAClB,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,iBAAiB;YAC1E,aAAa,EAAE;gBACb,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBACxC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa;gBACxC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;gBACtC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBAChC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;gBAC1C,aAAa,EAAE,EAAE;gBACjB,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;gBACpC,eAAe,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK;gBACzC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc;gBAC7D,oBAAoB,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,iBAAiB;gBAC7E,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB;gBACxD,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC,UAAU;gBACjD,mBAAmB,EAAE,IAAI,CAAC,iBAAiB,CAAC,eAAe;gBAC3D,cAAc,EAAE,EAAE;gBAClB,gBAAgB,EAAE,IAAI,CAAC,iBAAiB,CAAC,cAAc;gBACvD,kBAAkB,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK;aAChD;SACF,CAAC,CAAC;IACP,CAAC;;oFAzRe,kBAAkB,kEAiBZ,qEAAe;gHAjBrB,kBAAkB;QAtMhC,mFAAqK;QAA3B,uJAAY,iBAAa,IAAC;QAClK,0EAA2C;QACzC,oEACM;QACN,yEAAwD;QACxD,yEAAgC;QAC9B,8EAA6C;QAC3C,wEAA0B;QAAA,uEAAM;QAAA,gEAAK;QAAA,4DAAO;QAAA,4DAAK;QACjD,yEAAkB;QAChB,0EAAyB;QACvB,0EAA+F;QAC7F,qFAA0D;QACxD,6EAAW;QAAA,6EAAY;QAAA,4DAAY;QACnC,wEAA0G;QAC5G,4DAAiB;QACnB,4DAAM;QAEN,2EAA+F;QAC7F,qFAAyD;QACvD,6EAAW;QAAA,gFAAe;QAAA,4DAAY;QACtC,wEAAkF;QACpF,4DAAiB;QACnB,4DAAM;QAEN,2EAA+F;QAC7F,qFAAyD;QACvD,6EAAW;QAAA,qEAAI;QAAA,4DAAY;QAC3B,wEAAoE;QACtE,4DAAiB;QACnB,4DAAM;QAEN,2EAA+F;QAC7F,qFAAyD;QACvD,6EAAW;QAAA,0EAAS;QAAA,4DAAY;QAChC,wEAA8E;QAChF,4DAAiB;QACnB,4DAAM;QAEN,2EAA8F;QAC5F,qFAAyD;QACvD,6EAAW;QAAA,0EAAS;QAAA,4DAAY;QAChC,wEAA8E;QAChF,4DAAiB;QACnB,4DAAM;QAEN,2EAAkF;QAChF,qFAAyD;QACvD,6EAAW;QAAA,kEAAM;QAAA,4DAAY;QAC7B,2EAA8F;QAChG,4DAAiB;QACnB,4DAAM;QAEN,2EAAiG;QAC/F,qFAAwD;QACtD,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,6EAAqM;QAArI,0JAAc,qBAAiB,kBAAmB,OAAO,CAAC,yBAAyB,IAAC;QAApJ,4DAAqM;QACrM,wFAA4G;QAC5G,uFAA4C;QAC9C,4DAAiB;QACnB,4DAAM;QAEN,2EAAgI;QAC9H,qFAAyD;QACvD,6EAAW;QAAA,0EAAc;QAAA,4DAAY;QACrC,6EAC+E;QADI,gJAAS,wBAAoB,CAAC,CAAC,IAAC,kFAClG,sBAAkB,CAAC,CAAC,IAD8E;QAAnH,4DAC+E;QAC/E,gFAAgF;QAAA,4EAChF;QAAA,4DAAW;QACb,4DAAiB;QAMjB,8FAAgD;QAC9C,2EAA0C;QACnC,4EAAkC;QAC9B,6EAAsC;QAAA,6EAAiB;QAAA,4DAAQ;QACnE,4DAAO;QACd,4DAAM;QACN,+HAIa;QACf,4DAAmB;QACrB,4DAAM;QAEN,2EAAiG;QAC/F,qFAAyD;QACvD,6EAAW;QAAA,0EAAS;QAAA,4DAAY;QAChC,wEAA4J;QAC9J,4DAAiB;QACnB,4DAAM;QAER,4DAAM;QACR,4DAAM;QACR,4DAAW;QACb,4DAAM;QAEN,0EAAgC;QAC5B,gFAAgD;QAC9C,yEAA0B;QAAA,wEAAM;QAAA,oEAAQ;QAAA,4DAAO;QAAA,4DAAK;QACpD,0EAAkB;QAChB,0EAAyB;QACvB,2EAAkG;QAChG,qFAAyD;QACvD,6EAAW;QAAA,yEAAQ;QAAA,4DAAY;QAC/B,6EAA6N;QAAjJ,gJAAS,yBAAqB,IAAC,kFAAkD,kBAAc,IAAhE;QAA3G,4DAA6N;QAC/N,4DAAiB;QACjB,8FAAyD;QACvD,2EAA0C;QACrC,4EAAkC;QAC9B,6EAAsC;QAAA,iGAAsB;QAAA,4DAAQ;QACxE,4DAAO;QACZ,4DAAM;QACN,+HAKa;QACf,4DAAmB;QACrB,4DAAM;QAEN,2EAAmF;QACjF,qFAAyD;QACvD,6EAAW;QAAA,qEAAI;QAAA,4DAAY;QAC3B,wEAA0E;QAC5E,4DAAiB;QACnB,4DAAM;QAEN,2EAAmF;QACjF,qFAAyD;QACvD,6EAAW;QAAA,0EAAS;QAAA,4DAAY;QAChC,wEAAoF;QACtF,4DAAiB;QACnB,4DAAM;QAEN,2EAAmF;QACjF,qFAAyD;QACvD,6EAAW;QAAA,2EAAS;QAAA,4DAAY;QAChC,yEAAoF;QACtF,4DAAiB;QACnB,4DAAM;QAEN,4EAAmF;QACjF,sFAAyD;QACvD,8EAAW;QAAA,mEAAM;QAAA,4DAAY;QAC7B,4EAAkH;QACpH,4DAAiB;QACnB,4DAAM;QAEN,4EAAiG;QAC/F,sFAAwD;QACtD,8EAAW;QAAA,+EAAkB;QAAA,4DAAY;QACzC,8EAA6N;QAA9K,2JAAc,wBAAoB,kBAAmB,UAAU,CAAC,4BAA4B,IAAC;QAA5I,4DAA6N;QAC7N,yFAA+G;QAC/G,wFAA+C;QACjD,4DAAiB;QACnB,4DAAM;QAEN,4EAA+H;QAC7H,sFAAyD;QACvD,8EAAW;QAAA,yEAAM;QAAA,8DAAC;QAAA,4DAAO;QAAA,0EAAa;QAAA,4DAAY;QAClD,8EAE8E;QADtE,iJAAS,wBAAoB,CAAC,CAAC,IAAC,mFACvB,sBAAkB,CAAC,CAAC,IADG;QADxC,4DAE8E;QAC9E,iFAAgF;QAAA,6EAChF;QAAA,4DAAW;QACb,4DAAiB;QACjB,+FAAwD;QACtD,4EAA0C;QACrC,6EAAkC;QAC9B,8EAAsC;QAAA,8EAAiB;QAAA,4DAAQ;QACnE,4DAAO;QACZ,4DAAM;QACN,iIAKa;QACf,4DAAmB;QACrB,4DAAM;QAER,4DAAM;QACR,4DAAM;QACR,4DAAW;QAEb,4DAAM;QACP,4DAAM;QACP,4DAAO;QAEX,4DAAgB;;;;;;;QAlMD,oGAA2C;QAClD,0DAAuB;QAAvB,oFAAuB;QAS6C,2DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAOzC,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA4C;QAA5C,8HAA4C;QAG9C,0DAAiB;QAAjB,0EAAiB;QAC9B,0DAAiB;QAAjB,oEAAiB;QAK6B,0DAA4C;QAA5C,8HAA4C;QAGzE,0DAAgC;QAAhC,uHAAgC;QAgBpB,0DAAyB;QAAzB,+FAAyB;QAQvC,0DAA4C;QAA5C,8HAA4C;QAGpC,0DAAgC;QAAhC,uHAAgC;QAcrC,0DAA4C;QAA5C,8HAA4C;QAGlD,0DAAgC;QAAhC,uHAAgC;QAQ5C,0DAAyB;QAAzB,+FAAyB;QASR,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAO7B,0DAA6B;QAA7B,iFAA6B;QAO5B,0DAA6B;QAA7B,iFAA6B;QAO9B,0DAA4C;QAA5C,8HAA4C;QAGiD,0DAAiB;QAAjB,0EAAiB;QAC7H,0DAAoB;QAApB,oEAAoB;QAKyB,0DAA4C;QAA5C,8HAA4C;QAGvE,0DAAgC;QAAhC,uHAAgC;QAYrB,0DAA4B;QAA5B,kGAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpMd;AACrD;AAKuC;AAEE;AAC6B;;;;;;;;;;;;;;ICR7G,sEAA2B;IACvB,kFAA2D;IAC/D,4DAAM;;;IA4BM,qEAA4C;;;IAcxC,0EAAsC;IAAA,8EAA6C;IAAA,4DAAM;;;;IA0BrF,0EAAsC;IACpC,mFAAiE;IAAlC,wcAAU,mCAAsB,IAAC;IAAC,4DAAe;IAClF,4DAAM;;;;;IAHV,0EAA6F;IACzF,mIAEM;IACN,0EAAqG;IAA5B,wWAAS,4BAAiB,IAAC;IAClG,uDACF;IAAA,4DAAM;IACN,0EAAsD;IAAC,uDAAc;IAAA,4DAAM;IAC3E,0EAA8C;IAAA,uDAA4D;IAAA,4DAAM;IAChH,0EAAsD;IAAE,uDAAuB;IAAA,4DAAM;IAErF,2EAAsD;IAAC,2EAAmC;IAAA,wDAAkC;;IAAA,4DAAM;IAAC,4DAAM;IACzI,2EAAkC;IAAC,2EAA+B;IAAA,wDAAmC;;IAAA,4DAAM;IAAC,4DAAM;IAClH,2EAAsD;IAClD,2EAAuB;IAEnB,4EAIG;IAAA,wDAC+C;IAAA,4DAAO;IAC7D,4DAAM;IACV,4DAAM;IACN,2EAA6C;IAAC,wDAAiB;IAAA,4DAAM;IACrE,2EAAqD;IACjD,2EAAuB;IACnB,4EAGwC;IAAA,wDACY;IAAA,4DAAO;IAC/D,4DAAM;IACV,4DAAM;IACV,4DAAM;;;;IAjCuB,0DAAW;IAAX,uEAAW;IAIlC,0DACF;IADE,0KACF;IACuD,0DAAc;IAAd,gHAAc;IACvB,0DAA4D;IAA5D,4JAA4D;IAClD,0DAAuB;IAAvB,uHAAuB;IAEW,0DAAkC;IAAlC,gLAAkC;IAC1D,0DAAmC;IAAnC,iLAAmC;IAIzE,0DAIlB;IAJkB,qYAIlB;IAAC,0DAC+C;IAD/C,qNAC+C;IAGZ,0DAAiB;IAAjB,mHAAiB;IAGpC,0DAGoB;IAHpB,yYAGoB;IAAC,0DACY;IADZ,uNACY;;ADnF7E,MAAM,+BAA+B;IA0BxC,YACoC,IAAS,EAClC,QAAuD,EACtD,aAA6B,EAC7B,YAA0B,EAC1B,KAAgB;;QAJQ,SAAI,GAAJ,IAAI,CAAK;QAClC,aAAQ,GAAR,QAAQ,CAA+C;QACtD,kBAAa,GAAb,aAAa,CAAgB;QAC7B,iBAAY,GAAZ,YAAY,CAAc;QAC1B,UAAK,GAAL,KAAK,CAAW;QA9B5B,WAAM,GAAG;YACL,CAAC,EAAE,UAAU;YACb,CAAC,EAAE,UAAU;YACb,IAAI,EAAE,SAAS;SAClB,CAAC;QACF,aAAQ,GAAG,IAAI,uDAAW,EAAE,CAAC;QAC7B,iBAAY,GAAwB,EAAE,CAAC;QACvC,UAAK,GAAG,EAAE,CAAC;QAEX,iBAAY,GAAG,EAAE,CAAC;QAElB,aAAQ,GAAG,EAAE,CAAC;QAGd,eAAU,GAAU,EAAE,CAAC;QACvB,sBAAiB,GAAG,CAAC,CAAC;QACtB,qBAAgB,GAAG,IAAI,CAAC;QACxB,eAAU,GAAmB,EAAE,CAAC;QAChC,YAAO,GAAY,EAAE,CAAC;QAIb,eAAU,GAAG,EAAE,CAAC;QACf,0BAAqB,GAAG,IAAI,uDAAY,EAAE,CAAC;QASjD,IAAI,CAAC,SAAS,GAAG,UAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,mCAAE,KAAK,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,GAAG,CAAC;IACjC,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;SACzC;aAAI;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;SACpC;IACL,CAAC;IAED,oBAAoB;QAChB,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAErD,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,aAAa;aACb,gBAAgB,CAAC,MAAM,CAAC;aACxB,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACpB,IAAI,GAAG,EAAE;gBACL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK,GAAG,EAAE;oBAE1D,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,CAC7C,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;iBACvC;qBAAM,IACH,IAAI,CAAC,IAAI;oBACT,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,KAAK,GAAG,EAC7C;oBACE,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,GAAG,CAC7C,CAAC;oBACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;iBACvC;qBAAM;oBACH,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;oBAChC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;iBACvC;aACJ;QACL,CAAC,CAAC,CACT,CAAC;IACN,CAAC;IAED,eAAe;QACX,MAAM,MAAM,GAAG,IAAI,qFAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,CAC3C,CAAC,GAAG,EAAE,EAAE;YACJ,IAAI,GAAG,EAAE;gBACL,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;gBACxB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;QACL,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;QACV,CAAC,CACJ,CAAC;IACN,CAAC;IAED,UAAU;QACN,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;aAC1B;iBAAM;gBACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;aAC/B;SACJ;IACL,CAAC;IAED,SAAS,CAAC,KAAW;QACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;IACxC,CAAC;IAED,aAAa,CAAC,IAAS,EAAE,KAAc;QACnC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACzB,CAAC;IAED,WAAW,CAAC,IAAU;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAC,CAAC,CAAC;IAC5E,CAAC;IAED,cAAc,CAAC,KAAK,EAAE,KAAa;QAE/B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACjC,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,UAAU,CAAC,GAAG,EAAE;YACZ,IAAI,KAAK,EAAE;gBACP,QAAQ,KAAK,EAAE;oBACX,oBAAoB;oBACpB,KAAK,CAAC,CAAC,CAAC;wBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,SAAS,KAAK,IAAI;4BACpB,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC9D,CAAC;wBACF,MAAM;qBACT;oBAED,KAAK,CAAC,CAAC,CAAC;wBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,IAAI,KAAK,IAAI;4BACf,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CACzD,CAAC;wBACF,MAAM;qBACT;oBAED,KAAK,CAAC,CAAC,CAAC;wBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE;;4BACF,IAAI,CAAC,CAAC,WAAW,KAAK,CAAC,EAAE;gCACrB,OAAO,CAAC,EAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,MAAK,IAAI,KAAI,aAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,SAAS,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAC,CAAC;6BAChG;iCAAM;gCACH,OAAO,CAAC,EAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,MAAK,IAAI,KAAI,aAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,0CAAE,WAAW,EAAE,0CAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,EAAC,CAAC;6BAC1F;wBACL,CAAC,CACJ,CAAC;wBACF,MAAM;qBACT;oBACD,oBAAoB;oBACpB,KAAK,CAAC,CAAC,CAAC;wBACJ,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAC1B,CAAC,CAAC,EAAE,EAAE,CACF,CAAC,CAAC,MAAM,KAAK,IAAI;4BACjB,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC3D,CAAC;wBACF,MAAM;qBACT;iBACJ;gBAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAC7B;iBAAM;gBACH,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C;QACL,CAAC,EAAE,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,GAAG,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,2HAA+B,EAAE;YAC7C,KAAK,EAAE,MAAM;YACb,SAAS,EAAE,MAAM;YACjB,IAAI,EAAE;gBACF,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;aACzC;SACJ,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;;8GApMQ,+BAA+B,kEA2B5B,qEAAe;6HA3BlB,+BAA+B;QClB5C,6EAAmC;QAC/B,2HAEM;QACN,yEAA0B;QACtB,0EAA8D;QAC5D,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC5B,4DAAO;QACP,yEAAyB;QACrB,yEAAqB;QACjB,yEAA6B;QACzB,wEAAqC;QACpC,2EAAuB;QAAA,wDAAe;QAAA,4DAAO;QAC9C,4DAAK;QACL,uEAAK;QAKD,6EAAiH;QAAjC,wJAAS,0BAAsB,IAAC;QAC5G,4EAAmC;QAAA,sEAAU;QAAA,4DAAO;QACpD,gFAAsC;QAAA,mEAAO;QAAA,4DAAW;QAC5D,4DAAS;QACb,4DAAM;QAEV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,2EAAuD;QACnD,2EAA0E;QACtE,8HAA4C;QAC5C,2EAAgD;QAAA,2EAAuB;QAAA,uEAAa;QAAA,4DAAM;QAAA,4DAAM;QAChG,2EAA+C;QAAA,2EAAuB;QAAA,gEAAI;QAAA,4DAAM;QAAA,4DAAM;QACtF,2EAAgD;QAAA,2EAAuB;QAAA,gFAAU;QAAA,4DAAM;QAAA,4DAAM;QAC7F,2EAAkC;QAAA,2EAAuB;QAAA,8DAAE;QAAA,4DAAM;QAAA,4DAAM;QACvE,2EAA+C;QAAA,2EAAyB;QAAA,wDAA2B;QAAA,4DAAM;QAAA,4DAAM;QAC/G,2EAAkC;QAAA,2EAAuB;QAAA,mEAAO;QAAA,4DAAM;QAAA,4DAAM;QAE5E,2EAA8C;QAAA,2EAAuB;QAAA,iEAAK;QAAA,iEAAI;QAAC,mEAAM;QAAA,4DAAM;QAAA,4DAAM;QACjG,2EAA+C;QAAA,2EAAuB;QAAA,kEAAM;QAAA,4DAAM;QAAA,4DAAM;QACxF,2EAA8C;QAAA,2EAAuB;QAAA,sEAAU;QAAA,iEAAI;QAAC,iFAAU;QAAA,4DAAM;QAAA,4DAAM;QAC9G,4DAAM;QACN,2EAAwD;QACpD,2EAA6C;QACzC,8HAAyF;QACzF,2EAAgD;QAC5C,iFAAyI;QAAlE,6JAAS,2BAAuB,CAAC,CAAC,IAAC;QAA1G,4DAAyI;QAC7I,4DAAM;QACN,2EAAwD;QACtD,6EAA6H;QAAhE,6JAAS,2BAAuB,CAAC,CAAC,IAAC;QAAhG,4DAA6H;QAC/H,4DAAM;QACN,2EAA8C;QAAC,6EAAmI;QAA5H,6JAAS,2BAAuB,CAAC,CAAC,IAAC;QAA1C,4DAAmI;QAAC,4DAAM;QACzL,2EAA2C;QAAC,4EAAwB;QAAA,6DAAC;QAAA,4DAAO;QAAA,4DAAM;QAClF,2EAAwD;QAAC,4EAAwB;QAAA,6DAAC;QAAA,4DAAO;QAAC,4DAAM;QAChG,2EAA2C;QAAC,4EAAwB;QAAA,6DAAC;QAAA,4DAAO;QAAC,4DAAM;QACnF,sEAEM;QACN,2EAAwD;QAAC,6EAA8H;QAAvH,6JAAS,2BAAuB,CAAC,CAAC,IAAC;QAA1C,4DAA8H;QAAC,4DAAM;QAC9L,2EAAoC;QAAC,4EAAwB;QAAA,6DAAC;QAAA,4DAAO;QAAC,4DAAM;QAChF,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,2EAA4B;QACxB,+EAA+E;QAC3E,uEAAK;QACD,uEAAK;QACD,gIAkCM;QACV,4DAAM;QAEV,4DAAM;QACV,4DAAU;QACV,0EAA2B;QAC3B,2EAA8B;QAC1B,2EAA6B;QACzB,8EAA8D;QAC1D,sEACJ;QAAA,4DAAS;QACT,uEAAoB;QACpB,8EAAiG;QAAlC,wJAAS,+BAAuB,IAAC;QAC5F,uEACJ;QAAA,4DAAS;QACb,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAU;;QAzHA,0DAAmB;QAAnB,mFAAmB;QAWe,2DAAe;QAAf,gFAAe;QAmBlB,0DAAW;QAAX,uEAAW;QAKoC,2DAA2B;QAA3B,0GAA2B;QAStE,2DAAW;QAAX,uEAAW;QAyBwB,2DAAiB;QAAjB,qFAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrE1B;AAGL;AAKvB;AAIf;;;;;;;;;ICb5B,kFAAgF;;;IAwB5C,iFAA0E;IACzE,uDACD;IAAA,4DAAa;;;IAF0C,8EAAkB;IACxE,0DACD;IADC,2FACD;;;IAmBA,iFAGC;IACW,uDACZ;IAAA,4DAAa;;;;IAJD,8EAAkB;IAGlB,0DACZ;IADY,2FACZ;;;;;IAlCxB,2EAAiH;IAAhD,4SAAY,qBAAc,IAAC;IACxF,0EAAwB;IACpB,0EAAyB;IAErB,0EAA4F;IACxF,qFAAwD;IACpD,4EAAW;IAAA,oEAAS;IAAA,4DAAY;IAChC,iFAAiF;IAArE,uUAAmB,yBAAiB,IAAC;IAC7C,2IAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IAEN,0EAOC;IACG,sFAGC;IACG,6EAAW;IAAA,uEAAW;IAAA,4DAAY;IAClC,kFAAgD;IAC5C,6IAKa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IAEN,2EAOC;IACG,sFAAwD;IACpD,6EAAW;IAAA,+EAAc;IAAA,4DAAY;IACrC,wEAUE;IACN,4DAAiB;IACrB,4DAAM;IAEN,2EAQC;IACG,sFAAsI;IAClI,6EAAW;IAAA,4EAAiB;IAAA,4DAAY;IACxC,6EAaqC;IAL9B,iTAAU,2BAAmB,IAAC;IARrC,4DAaqC;IAEzC,4DAAiB;IACrB,4DAAM;IAEN,2EAQC;IACG,8EAAqF;IAAA,kEAAM;IAAA,4DAAS;IACxG,4DAAM;IAEN,2EAQC;IACG,8EAAsF;IAA9C,0SAAS,6BAAqB,IAAC;IAAe,qEAAS;IAAA,4DAAS;IAC5G,4DAAM;IACV,4DAAM;IACV,4DAAM;IACV,4DAAO;;;IArHwB,iGAAiC;IAQV,0DAAuB;IAAvB,uGAAuB;IAqBvB,0DAAS;IAAT,kFAAS;IAgDpC,2DAAmB;IAAnB,4EAAmB;IAwBsB,0DAAgC;IAAhC,2FAAgC;;;IA4B5E,iFAA6D;IACzD,uDACJ;IAAA,4DAAa;;;IAF4B,+EAAkB;IACvD,0DACJ;IADI,4FACJ;;;IA+BA,iFAE+B;IAAA,uDAAkB;IAAA,4DAAa;;;IAAlD,+EAAkB;IAAC,0DAAkB;IAAlB,iFAAkB;;;;IA5CzE,2EAA4G;IAAnD,8SAAY,yBAAiB,IAAC;IACnF,0EAAwB;IACpB,0EAAyB;IAErB,0EAA2F;IACvF,qFAAwD;IACpD,4EAAW;IAAA,mEAAQ;IAAA,4DAAY;IAC/B,iFAC2C;IACvC,2IAEa;IACjB,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IACN,0EAKwB;IACrB,2EAAgC;IAC5B,8EAAmG;IAA3B,2SAAS,wBAAgB,IAAC;IAC9F,4EAAU;IAAA,oEAAQ;IAAA,4DAAW;IACjC,4DAAS;IACb,4DAAM;IACT,4DAAM;IAEN,2EAOC;IACG,sFAGC;IACG,6EAAW;IAAA,uEAAW;IAAA,4DAAY;IAClC,kFAAiE;IAC7D,6IAE8D;IAClE,4DAAa;IACjB,4DAAiB;IACrB,4DAAM;IAGN,0FAKwE;IAHxE,iUAAW,wBAAgB,IAAC,yPACtB,yBAAiB,IADK;IAG4C,4DAAqB;IAsB7F,2EAK+B;IAC3B,wFAAsE;IAAA,qFAAyB;IAAA,4DAAmB;IACtH,4DAAM;IACN,2EAQC;IACG,8EAA0D;IACtD,4EAAU;IAAA,kEAAM;IAAA,4DAAW;IAC/B,4DAAS;IACb,4DAAM;IAEV,4DAAM;IACV,4DAAM;IACV,4DAAO;;;IArGyB,wFAAwB;IASF,0DAAS;IAAT,kFAAS;IAkCT,2DAAS;IAAT,kFAAS;IAQnD,0DAA0B;IAA1B,0FAA0B;;;;IAqEtB,0EAAqE;IAEjE,wEAAe;IACX,0EAAyB;IAAA,4EAAqH;IAAnE,sTAAS,+BAAuB,CAAC,CAAC,IAAC;IAArF,4DAAqH;IAAA,4DAAM;IACpJ,0EAAyB;IAAA,4EAA+G;IAAnE,sTAAS,+BAAuB,CAAC,CAAC,IAAC;IAA/E,4DAA+G;IAAA,4DAAM;IAC9I,0EAAyB;IAAA,4EAA+G;IAAnE,sTAAS,+BAAuB,CAAC,CAAC,IAAC;IAA/E,4DAA+G;IAAA,4DAAM;IAC9I,0EAAyB;IAAA,4EAA+G;IAAnE,sTAAS,+BAAuB,CAAC,CAAC,IAAC;IAA/E,4DAA+G;IAAA,4DAAM;IAC9I,sEAA+B;IAC/B,sEAA+B;IAC/B,sEAA+B;IACnC,qEAAe;IAEnB,4DAAM;;;;IAGN,0EAA2G;IAA9B,4WAAS,+BAAmB,IAAC;IACtG,0EAAsE;IAAA,uEAAM;IAAA,uDAAwB;IAAA,4DAAO;IAAA,4DAAM;IACjH,0EAAkC;IAAA,uEAAM;IAAA,uDAA6B;IAAA,4DAAO;IAAA,4DAAM;IAClF,0EAAkC;IAAA,uEAAM;IAAA,uDAAyC;;IAAA,4DAAO;IAAC,4DAAM;IAC/F,2EAAkC;IAAA,wEAAM;IACpC,wDAEJ;;;IAAA,4DAAO;IAAA,4DAAM;IACb,2EAAkC;IAAA,wEAAM;IACpC,wDAEJ;;;IAAA,4DAAO;IAAA,4DAAM;IACjB,4DAAM;;;IAX0E,0DAAwB;IAAxB,yFAAwB;IAC5D,0DAA6B;IAA7B,8FAA6B;IAC7B,0DAAyC;IAAzC,2KAAyC;IAE7E,0DAEJ;IAFI,4RAEJ;IAEI,0DAEJ;IAFI,gSAEJ;;;;IAxCxB,sEAA+B;IAC3B,0EAAqC;IACjC,wEAAc;IACV,sEAAK;IACD,0EAAsC;IAClC,0EAA0D;IAEtD,0EAAyB;IAAA,sEAAW;IAAA,4DAAM;IAC1C,0EAAyB;IAAA,2EAAgB;IAAA,4DAAM;IAC/C,2EAAyB;IAAA,+EAAoB;IAAA,4DAAM;IACnD,2EAAyB;IAAA,4EAAkB;IAAA,4DAAM;IACjD,2EAAyB;IAAA,oEAAQ;IAAA,4DAAM;IAE3C,4DAAM;IACN,+HAYM;IACV,4DAAM;IACN,2EAAsB;IAClB,gIAYM;IACV,4DAAM;IACV,4DAAM;IACV,qEAAe;IACf,uEAAK;IACD,0NACc;IAClB,4DAAM;IACV,4DAAM;IAEV,4DAAM;;;IArCsE,2DAAW;IAAX,uEAAW;IAeF,0DAAU;IAAV,mFAAU;;AD3PhG,MAAM,wBAAwB;IA6BjC,YAA4C,OAAY,EACpC,cAA+B,EAC/B,EAAe,EACf,YAA0B,EAC1B,QAAgD,EAChD,YAAgC,EAChC,gBAAkC;QANV,YAAO,GAAP,OAAO,CAAK;QACpC,mBAAc,GAAd,cAAc,CAAiB;QAC/B,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAc;QAC1B,aAAQ,GAAR,QAAQ,CAAwC;QAChD,iBAAY,GAAZ,YAAY,CAAoB;QAChC,qBAAgB,GAAhB,gBAAgB,CAAkB;QAlCtD,YAAO,GAAkB,EAAE,CAAC;QAC5B,WAAM,GAAQ,EAAE,CAAC;QACjB,eAAU,GAAmB,EAAE,CAAC;QAKhC,WAAM,GAAa,EAAE,CAAC;QAGtB,aAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;QAGtB,YAAO,GAAG,6CAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClC,kBAAa,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACpC,iBAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAE3E,kBAAa,GAAG,IAAI,CAAC;QACrB,qBAAgB,GAAG,KAAK,CAAC;QAGzB,kBAAa,GAAG;YACZ,MAAM,EAAE,6CAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;YACrC,GAAG,EAAE,6CAAM,EAAE;SAChB,CAAC;QAWE,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,mBAAmB,EAAE,CAAC;QAC3D,IAAI,CAAC,yBAAyB,GAAG;YAC7B,UAAU,EAAE,IAAI,CAAC,gBAAgB;SACpC,CAAC;QACF,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACrC,YAAY,EAAE,CAAC,EAAE,CAAC;YAClB,iBAAiB,EAAE,CAAC,EAAE,CAAC;YACvB,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC,EAAE,CAAC;YAChB,UAAU,EAAE,CAAC,EAAE,CAAC;SACnB,CAAC,CAAC;QACH,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACvD,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE;YACxE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9E,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC,CAAC;QAGJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/D,iBAAiB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACxD,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,iBAAiB,EAAE,CAAC,EAAE,CAAC;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtD,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;IACL,CAAC;IAED,YAAY,CAAC,MAAa;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC;IAGD,sBAAsB,CAAC,MAAM;QACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAChB,IAAI,CAAC,cAAc;aACd,cAAc,CACX,MAAM,CACT;aACA,SAAS,CACN,CAAC,GAAG,EAAE,EAAE;YACJ,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,UAAU,EAAC,GAAG,CAAC,CAAC;QAEhC,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;YACN,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CACJ,CAAC,CAAC;IACf,CAAC;IAGD,QAAQ,CAAC,MAAW;QAChB,MAAM,CAAC,GAAG,CAAC;QACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAExD,CAAC;IAED,OAAO,CAAC,GAAQ;QACZ,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe;QACX,IAAI,UAAU,EAAE,OAAO,CAAC;QACxB,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC9C,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;QAExC,IAAI,CAAC,yBAAyB,GAAG;YAC7B,aAAa,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC;YACnD,kBAAkB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC;YAC7D,cAAc,EAAE;gBACZ;oBACI,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,UAAU;oBACtB,OAAO,EAAE,OAAO;iBACnB;aACJ;YACD,iBAAiB,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,mBAAmB;YAC7D,UAAU,EAAE,IAAI,CAAC,gBAAgB;SACpC,CAAC;QAEF,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAChE,CAAC;IAED,cAAc,CAAC,MAAa,EAAE,MAAc;IAC5C,CAAC;IAED,WAAW,CAAC,WAAgB;QACxB,MAAM,MAAM,GAAG;YACX,MAAM,EAAE,WAAW;YACnB,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU;YACzE,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe;YAC3E,aAAa,EAAE,IAAI,CAAC,aAAa;SACpC,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,cAAc;QACV,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAC7E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAClF;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC1E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;SACrF;QACD,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,CAAC,KAAU,EAAE,KAAc;QAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QACtE,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,IAAI,KAAK,IAAI,KAAK,GAAG,QAAQ,EAAE;aAC9B;SACJ;QACD,IAAI,KAAK,KAAK,CAAC,EAAE;SAChB;IACL,CAAC;IAED,YAAY;QACR,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY;eACzC,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB;eACjD,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU;eAC1C,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE;YAE/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;oBAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC;oBACzE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;oBACpE,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,sBAAsB,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;oBAC7E,OAAO,KAAK,CAAC;iBAChB;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,wCAAwC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACnF,OAAO,KAAK,CAAC;SAChB;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/F,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzG,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC;QAC5D,MAAM,MAAM,GAAG;YACX,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,YAAY;YACzD,aAAa,EAAE,UAAU,CAAC,MAAM;YAChC,iBAAiB,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,iBAAiB;YACnE,kBAAkB,EAAE,eAAe,CAAC,MAAM;YAC1C,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,UAAU;YACrD,UAAU,EAAE,2DAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,OAAO,CAAC;YAC3E,UAAU,EAAE,IAAI,CAAC,gBAAgB;SACpC,CAAC;QACF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,EAAE,EAAE;YACjE,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;gBACxB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;aACpC;YACD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACtD,UAAU,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAChE,CAAC,EAAE,KAAK,CAAC,EAAE;YACP,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBACtB,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aAC9D;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aAClF;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;gBAC7B,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;aACzE;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;aACpE;YACD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAC5B,CAAC,CAAC,CAAC;IACP,CAAC;IAED,mBAAmB;QACf,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SAC5C;IACL,CAAC;IAED,WAAW;QACP,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5B,GAAG,CAAC,WAAW,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;SACN;IACL,CAAC;IAGD,SAAS,CAAC,KAAU;QAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;IACrD,CAAC;IAED,WAAW,CAAC,KAAU;IAEtB,CAAC;;gGAhRQ,wBAAwB,kEA6Bb,qEAAe;sHA7B1B,wBAAwB;QCpBrC,8IAAgF;QAChF,6EAAmC;QAC/B,yEAA0B;QAC1B,0EAA8D;QAC5D,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC5B,4DAAO;QACH,yEAAyB;QACrB,yEAAgC;QAC5B,mEAAiH;QACjH,4EAAoL;QAAzJ,gJAAS,yBAAqB,IAAC;QAA0H,4DAAS;QACjM,4DAAM;QACV,4DAAM;QACV,4DAAM;QAEN,0EAA4B;QACxB,0EAAkB;QACd,2HAqHO;QAGP,0HAqGO;QACX,4DAAM;QACN,2EAAkB;QACd,0EAA2B;QAC/B,4DAAM;QACN,wHAmDM;QACV,4DAAM;QACV,4DAAU;;QAvSS,mFAAmB;QAQe,0DAAsE;QAAtE,6IAAsE;QACY,0DAA4D;QAA5D,8HAA4D;QAOhL,0DAAsB;QAAtB,sFAAsB;QAwHtB,0DAAuB;QAAvB,uFAAuB;QA0G5B,0DAAuB;QAAvB,uFAAuB;;;;;;;;;;;;;;;;;;;;;;;AChPa;AAGuB;AAEiB;;;;ICGtE,iFAAgD;IAC5C,uDACJ;IAAA,4DAAa;;;IAFuB,uEAAW;IAC3C,0DACJ;IADI,qFACJ;;;IAiBZ,0EAC+B;IAC3B,uFAIkC;IAC9B,4EACJ;IAAA,4DAAmB;IACvB,4DAAM;;;IALgB,0DAAkD;IAAlD,oHAAkD;IADlD,uGAAuC;;;IAiC7D,0EACkB;IACd,oFAAwD;IACpD,4EAAW;IAAA,sEAAW;IAAA,4DAAY;IAClC,uEAGiD;IACrD,4DAAiB;IACrB,4DAAM;;;IAHS,0DAAmC;IAAnC,mGAAmC;;;IAK9C,wEAA4C;IAExC,0EAEkC;IAC9B,oFAAwD;IACpD,4EAAW;IAAA,4EAAY;IAAA,4DAAY;IACnC,uEAG0B;IAC9B,4DAAiB;IACrB,4DAAM;IAEN,0EAEkC;IAC9B,oFAAwD;IACpD,4EAAW;IAAA,4EAAY;IAAA,4DAAY;IACnC,wEAG0B;IAC9B,4DAAiB;IACrB,4DAAM;IACV,qEAAe;;;IAjBI,0DAAwC;IAAxC,+GAAwC;IAYxC,0DAAwC;IAAxC,+GAAwC;;;IAgB/C,uFAEwB;;;;IADD,qEAAkB;;;IAczC,uFAEwB;;;;IADD,qEAAe;;;IA1BlD,wEAAyC;IAErC,0EAAiD;IAC7C,oFAAwD;IACpD,4EAAW;IAAA,2EAAW;IAAA,4DAAY;IAClC,uEAIiD;IACjD,oLAEwB;IACxB,sFAA6C;IACjD,4DAAiB;IACrB,4DAAM;IAEN,0EAAiD;IAC7C,qFAAwD;IACpD,6EAAW;IAAA,4EAAW;IAAA,4DAAY;IAClC,wEAIiD;IACjD,sLAEwB;IACxB,uFAA0C;IAC9C,4DAAiB;IACrB,4DAAM;IACV,qEAAe;;;;;IA1Ba,0DAA4B;IAA5B,+EAA4B;IAKpB,0DAAiC;IAAjC,2GAAiC;IAUzC,0DAAyB;IAAzB,+EAAyB;IAKjB,0DAAiC;IAAjC,2GAAiC;;;IAOrE,wEAAyC;IAErC,0EAEkC;IAC9B,oFAAwD;IACpD,4EAAW;IAAA,kEAAO;IAAA,4DAAY;IAC9B,uEAGmC;IACvC,4DAAiB;IACrB,4DAAM;IACV,qEAAe;;;IALI,0DAAwC;IAAxC,+GAAwC;;;IAnE/D,4EAAkE;IAC9D,oJAyBe;IACf,qJA+Be;IACf,mJAae;IACnB,qEAAe;;;IAzED,6IAAqC;IAChC,0DAA2B;IAA3B,8FAA2B;IA0B3B,0DAAwB;IAAxB,2FAAwB;IAgCxB,0DAAwB;IAAxB,2FAAwB;;;IAqE3C,0EAAyF;IACrF,0EAAyB;IACrB,uFAGkC;IAC9B,qEACJ;IAAA,4DAAmB;IACvB,4DAAM;IACV,4DAAM;;;IANoB,0DAAqC;IAArC,qGAAqC;;;;IAmB/D,0EAC6B;IACzB,8EAAqD;IAAjC,sSAAS,sCAAsB,IAAC;IAAC,uDAErD;IAAA,4DAAU;IACd,4DAAM;;;;IAHmD,0DAErD;IAFqD,8NAErD;;AD5NZ,MAAM,SAAS,GAAG;IACd,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,kBAAkB;IACpC,SAAS,EAAE,WAAW;IACtB,eAAe,EAAE,iBAAiB;IAClC,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;CACrB,CAAC;AAEK,MAAM,SAAS;;AACX,iBAAO,GAAG,KAAK,CAAC;AAChB,cAAI,GAAG,KAAK,CAAC;AACb,cAAI,GAAG,KAAK,CAAC;AACb,iBAAO,GAAG,KAAK,CAAC;AAChB,cAAI,GAAG,KAAK,CAAC;AAGxB,gDAAgD;AAOzC,MAAM,oBAAoB;IAc7B,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAZ5B,WAAM,GAAG,EAAE,CAAC;QACZ,UAAK,GAAiB,EAAE,CAAC;QACzB,YAAO,GAAG,EAAE,CAAC;QACb,YAAO,GAAG,sDAAK,CAAC;QAChB,UAAK,GAAG,SAAS,CAAC;QAClB,YAAO,GAAG,6EAAM,CAAC;QACjB,cAAS,GAA8B,SAAS,CAAC;IAO1D,CAAC;IALD,MAAM,CAAC,QAAQ,CAAC,KAAc;QAC1B,OAAO,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC;IAClD,CAAC;IAKD,QAAQ;IACR,CAAC;IAED,kBAAkB,CAAC,CAAuB,EAAE,KAAgB;QACxD,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7F,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,iBAAiB,CAAC,KAAgB;QAC9B,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;QACpC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,QAAQ,CAAC,KAAgB;QACrB,OAAO,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,eAAe,CAAC,KAAgB;QAC5B,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oGAAwB,EAAE;YACjD,KAAK,EAAE,oBAAoB;YAC3B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE;gBACF,KAAK;gBACL,MAAM,EAAE,IAAI,CAAC,MAAM;aACtB;SACJ,CAAC,CAAC;IACP,CAAC;;wFA5CQ,oBAAoB;kHAApB,oBAAoB;QC3CjC,yEAC+B;QAC3B,yEAAyB;QAErB,yEAAgE;QAC5D,oFAAwD;QACpD,4EAAW;QAAA,wEAAa;QAAA,4DAAY;QACpC,gFAEqD;QADzC,6JAAmB,gCAAwB,QAAQ,SAAC,gCAAwB,QAAQ,IAAC;QAE7F,8HAEa;QACjB,4DAAa;QACjB,4DAAiB;QACrB,4DAAM;QAEN,yEAC+B;QAC3B,sFAKkC;QADhB,8JAAU,yCAAiC,IAAC;QAE1D,+EACJ;QAAA,4DAAmB;QACvB,4DAAM;QAEN,kHASM;QAEN,0EAC+B;QAC3B,uFAKkC;QADhB,yJAAU,gCAAwB,IAAC;QAEjD,8FACJ;QAAA,4DAAmB;QACvB,4DAAM;QAEN,2EAAiC;QAC7B,qFAAwD;QACpD,6EAAW;QACP,wDACJ;QAAA,4DAAY;QACZ,wEAIiD;QACrD,4DAAiB;QACrB,4DAAM;QAEN,mHASM;QACN,qIAyEe;QAEf,yEAAc;QAEV,2EAEkC;QAC9B,qFAAwD;QACpD,6EAAW;QAAA,2FAAgB;QAAA,4DAAY;QACvC,wEAK0B;QAC9B,4DAAiB;QACrB,4DAAM;QAEN,2EAEkC;QAC9B,qFAAwD;QACpD,6EAAW;QAAA,2FAAgB;QAAA,4DAAY;QACvC,wEAG0B;QAC9B,4DAAiB;QACrB,4DAAM;QACV,qEAAe;QAEf,2EAAgE;QAC5D,2EAAyB;QACrB,wFAGkC;QAC9B,mFACJ;QAAA,4DAAmB;QACvB,4DAAM;QACV,4DAAM;QAEN,2EAC+B;QAC3B,2EAAyB;QACrB,wFAIkC;QAC9B,8EACJ;QAAA,4DAAmB;QACvB,4DAAM;QACV,4DAAM;QAEN,mHASM;QAEN,2EAAgE;QAC5D,2EAAyB;QACrB,wFAGkC;QAC9B,oEACJ;QAAA,4DAAmB;QACvB,4DAAM;QACV,4DAAM;QAEN,mHAKM;QACV,4DAAM;QACV,4DAAM;;QAxOD,gFAAmB;QAOI,0DAAkC;QAAlC,+FAAkC;QAGhB,0DAAQ;QAAR,8EAAQ;QAWxB,0DAAkD;QAAlD,8GAAkD;QADlD,iGAAoC;QASpD,0DAAwB;QAAxB,wFAAwB;QAeR,0DAAkD;QAAlD,8GAAkD;QADlD,2GAA8C;QAYxD,0DACJ;QADI,0HACJ;QAEO,0DAA0D;QAA1D,2IAA0D;QAE1D,+FAAkC;QAK3C,0DAAqB;QAArB,yFAAqB;QAU0B,0DAAW;QAAX,uEAAW;QA6ExC,0DAA+D;QAA/D,wHAA+D;QAMpE,0DAAwC;QAAxC,yGAAwC;QASnC,0DAA+D;QAA/D,wHAA+D;QAKpE,0DAAwC;QAAxC,yGAAwC;QAUjC,0DAA6C;QAA7C,0GAA6C;QAa7C,0DAAkD;QAAlD,8GAAkD;QADlD,sGAAyC;QAS7D,0DAAsB;QAAtB,sFAAsB;QAcF,0DAAoC;QAApC,iGAAoC;QAQxD,0DAAwB;QAAxB,wFAAwB;;;;;;;;;;;;;;;;;;;;;;;AChOiC;AACM;AAC3B;AACQ;;;;;;;IC2BtC,6EAG6C;IAHrC,kYAAS,yBAAe,IAAC;IAI7B,+EAA+D;IAC3D,mEACJ;IAAA,4DAAW;IACf,4DAAS;;;IAXb,0EACyE;IACrE,0EAAqF;IAErF,kIAOS;IACb,4DAAM;;;;IAVS,0DAAU;IAAV,sEAAU;IAIZ,0DAAsC;IAAtC,gHAAsC;;ADrB5D,MAAM,wBAAwB;IAUjC,YACoC,IAAS,EACjC,EAAe,EACf,YAAgC,EACjC,QAAgD;QAHvB,SAAI,GAAJ,IAAI,CAAK;QACjC,OAAE,GAAF,EAAE,CAAa;QACf,iBAAY,GAAZ,YAAY,CAAoB;QACjC,aAAQ,GAAR,QAAQ,CAAwC;QAb3D,SAAI,GAAc,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YAC5B,IAAI,EAAE,CAAC;YACP,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC,IAAI,EAAE,+DAAmB,CAAC;YACpC,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QACM,YAAO,GAAG,sDAAK,CAAC;IAOzB,CAAC;IAED,IAAI,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,+DAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjG,CAAC;IAED,QAAQ;QACJ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,QAAQ;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAK,IAAI,CAAC,KAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAC3G,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;YACxE,OAAO;SACV;QACA,IAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAC,CAAC,CAAC;IAC3C,CAAC;IAED,YAAY,CAAC,KAAa;QACtB,MAAM,EAAE,GAAc,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACxF,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IAEO,QAAQ,CAAC,IAAe;;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;YACnB,SAAS,EAAE,UAAI,CAAC,KAAK,CAAC,OAAO,mCAAI,CAAC;YAClC,OAAO,EAAE,CAAC,yEAAe,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,OAAO,CAAC,EAAE,+DAAmB,CAAC;YACjG,QAAQ,EAAE,CAAC,UAAI,CAAC,KAAK,CAAC,MAAM,0CAAE,WAAW,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC;YAC1E,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;SAC9B,CAAC,CAAC;IACP,CAAC;;gGArDQ,wBAAwB,kEAWrB,qEAAe;sHAXlB,wBAAwB;QCZrC,6EAAmC;QAC/B,yEAA0B;QACpB,0EAAkE;QAA5D,8IAAS,cAAU,IAAC;QAC1B,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAC9B,4DAAO;QACT,4DAAM;QACN,yEAAyB;QACrB,wEAAqB;QAAA,uFAAkB;QAAA,4DAAK;QAChD,4DAAM;QACN,yEAA8D;QAC1D,yEAAqC;QACjC,0EAAkB;QACd,2EAAwF;QAExF,0EAAsD;QAClD,8EAIsD;QAArB,iJAAS,cAAU,IAAC;QACjD,6EACJ;QAAA,4DAAS;QACb,4DAAM;QACV,4DAAM;QACN,iFACiB;QACjB,2EAAwB;QACpB,uHAYM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAM;QACV,4DAAU;;;QA/BiB,2DAAa;QAAb,0EAAa;QAKZ,0DAAyB;QAAzB,sFAAyB;QAUlB,0DAAyC;QAAzC,gLAAyC;;;;;;;;;;;;;;;;;;;;;;;AC3BO;;;;;;;AA6BzE,MAAM,iBAAiB;IAa/B,YAAmB,iBAAoC,EAAS,QAAyB;QAAtE,sBAAiB,GAAjB,iBAAiB,CAAmB;QAAS,aAAQ,GAAR,QAAQ,CAAiB;QAZ/E,cAAS,GAAG,IAAI,uDAAY,EAAE,CAAC;QAC/B,iBAAY,GAAG,IAAI,uDAAY,EAAE,CAAC;QAClC,cAAS,GAAG,IAAI,uDAAY,EAAE,CAAC;QAC/B,aAAQ,GAAG,IAAI,uDAAY,EAAE,CAAC;QAE/B,iBAAY,GAAY,IAAI,CAAC;QAC7B,kBAAa,GAAS;YAC7B,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,IAAI;SACZ,CAAC;QAEQ,mBAAc,GAAG,KAAK,CAAC;IAEjC,CAAC;IACH,aAAa;QACT,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;;kFAjBe,iBAAiB;+GAAjB,iBAAiB;QArB7B,yEAA4F;QAC1F,yEAAsB;QACpB,yEAAgE;QAC9D,yEAA2C;QACzC,4EAAsE;QAAhD,yIAAS,mBAAe,IAAC;QAAuB,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAAA,4DAAS;QAC3G,4DAAM;QACN,yEAAwB;QACtB,4EACF;QAAA,4DAAM;QACR,4DAAM;QAEN,yEAA8B;QAC5B,8EAA4D;QAC9D,4DAAM;QAER,4DAAM;QACR,4DAAM;;QAJe,2DAA6B;QAA7B,0FAA6B;;;;;;;;;;;;;;;;;;;;;ACnBmB;;;;;AAsB/D,MAAM,eAAe;IAC/B,YAA4C,UAAe,EACvC,SAAwC;QADhB,eAAU,GAAV,UAAU,CAAK;QACvC,cAAS,GAAT,SAAS,CAA+B;IAAG,CAAC;IAE9D,WAAW;QACT,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;;8EANa,eAAe,kEACX,qEAAe;6GADnB,eAAe;QAhB3B,yEAAsB;QACpB,yEAA+B;QAC7B,yEAAsD;QAAjD,oIAAS,iBAAa,IAAC;QAA0B,4EAA2D;QAAA,2EAAU;QAAA,gEAAK;QAAA,4DAAW;QAAA,4DAAS;QAAA,4DAAM;QAC1J,yEAA4B;QAC1B,wEAAiB;QAAA,uDAAmC;QAAA,4DAAK;QAC3D,4DAAM;QACR,4DAAM;QAEN,yEAA0C;QACxC,0EAAkB;QAChB,wEAAqD;QAAA,wDAAoB;QAAA,4DAAI;QAC/E,4DAAM;QACR,4DAAM;QACR,4DAAM;;;QATiB,0DAAmC;QAAnC,mMAAmC;QAMC,0DAAoB;QAApB,oHAAoB;;;;;;;;;;;;;;;;;;;ACPzE,MAAM,YAAY;;wEAAZ,YAAY;0GAAZ,YAAY;QALf,oEAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACDU;;;;;;;;;;;;;;IAelD,0EAAmG;IACjG,0EAAqD;IACnD,yEAAkB;IAAA,uDAA+D;;IAAA,4DAAK;IACxF,4DAAM;IACR,4DAAM;;;;IAFgB,0DAA+D;IAA/D,gRAA+D;;;;IA2BhF,6EAAyF;IAA/B,uTAAS,2BAAoB,IAAC;IACtF,2EAAU;IAAA,uDAAc;IAAA,4DAAW;IACnC,uEAAM;IAAA,uDAAgB;IAAA,4DAAO;IAC/B,4DAAS;;;IAFG,0DAAc;IAAd,sGAAc;IAClB,0DAAgB;IAAhB,wGAAgB;;;;;IAGxB,6EAAuF;IAA/C,wTAAS,gBAAS,IAAC;IACzD,2EAAU;IAAA,uDAAa;IAAA,4DAAW;IAClC,uEAAM;IAAA,uDAAe;IAAA,4DAAO;IAC9B,4DAAS;;;IAHmD,2JAA0B;IAC1E,0DAAa;IAAb,6EAAa;IACjB,0DAAe;IAAf,+EAAe;;;IARzB,wEAA2C;IACzC,wIAGS;IAET,wIAGS;IACX,qEAAe;;;IATH,0DAA+B;IAA/B,qJAA+B;IAK/B,0DAAc;IAAd,6EAAc;;AAUzB,MAAM,qBAAqB;IAMpC,YACS,iBAAoC,EACpC,UAAsB,EACtB,WAAyB,EACzB,UAAyB,EACzB,UAA6B;QAJ7B,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,eAAU,GAAV,UAAU,CAAY;QACtB,gBAAW,GAAX,WAAW,CAAc;QACzB,eAAU,GAAV,UAAU,CAAe;QACzB,eAAU,GAAV,UAAU,CAAmB;QAVrC,kBAAa,GAAG,KAAK,CAAC;QACtB,YAAO,GAAU,kEAAO,CAAC;QAGzB,mBAAc,GAAY,IAAI,CAAC;IAOhC,CAAC;IAEA,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,EAAE,CAAC;QACnD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAGpE,CAAC;IAED,cAAc;QACZ,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;aAC7C;iBAAM;gBACL,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC9C;SACF;IACH,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,SAAS,CAAC,GAAG,GAAE;QAE5D,CAAC,CAAC,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,EAAE,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;;0FA/Ca,qBAAqB;mHAArB,qBAAqB;QAlDnC,yEAAiE;QAC/D,yEAAgE;QAC9D,yEAAqB;QACnB,oEAAoD;QACtD,4DAAM;QAEN,iHAIM;;QACN,yEAA+B;QAE7B,0EAAkD;QAAA,uDAA2E;;QAAA,4DAAO;QAEpI,6EAA8I;QAAlG,wLAAwC,+DAAuD,IAAC;QAC1I,+EAAwB;QAAA,wDAA8C;QAAA,4DAAW;QACjF,wEAAM;QAAA,uEAAW;QAAA,4DAAO;QAC1B,4DAAS;QAET,6EAAqG;QAA7F,8IAAS,2BAAuB,IAAC;QACvC,gFAAgC;QAAA,oEAAQ;QAAA,4DAAW;QACrD,4DAAS;QAET,6EAA8F;QAAtF,8IAAS,oBAAgB,IAAC;QAChC,gFAAgC;QAAA,wDAAqD;QAAA,4DAAW;QAClG,4DAAS;QAIT,8EAA+F;QAC7F,gFAAgC;QAAA,qEAAS;QAAA,4DAAW;QACtD,4DAAS;QACT,sFAAiC;QAChC,sIAUe;QAChB,4DAAW;QACb,4DAAM;QACR,4DAAM;QACR,4DAAM;;;;;QA1CI,0DAA+D;QAA/D,gQAA+D;QAOjB,0DAA2E;QAA3E,qTAA2E;QAGnG,0DAA8C;QAA9C,+GAA8C;QAStC,0DAAqD;QAArD,gIAAqD;QAK1B,0DAAiC;QAAjC,kFAAiC;QAI9D,0DAAU;QAAV,gFAAU;;;;;;;;;;;;;;;;;;;ACrCxC,MAAM,aAAa;IAE3B,gDAAgD;IAChD;IAEA,CAAC;IAED,UAAU;QACR,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,6BAA6B,CAAC,CAAC;IACtE,CAAC;IACD,qBAAqB;QACnB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;IACxE,CAAC;IACD,IAAI,CAAC,OAAe,EAAE,IAAS;QAC7B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;;0EAfa,aAAa;8GAAb,aAAa,WAAb,aAAa,mBADf,MAAM;;;;;;;;;;;;;;;;;;;;;;;ACRmB;AAGgE;AAG3C;;;;;AAOrD,MAAM,iBAAiB;IAa5B,YAAqB,KAAkB,EAAU,MAAiB,EAAU,EAAe;QAAtE,UAAK,GAAL,KAAK,CAAa;QAAU,WAAM,GAAN,MAAM,CAAW;QAAU,OAAE,GAAF,EAAE,CAAa;QAZ3F,sBAAiB,GAAI,IAAI,iDAAe,CAAQ,EAAE,CAAC,CAAC;QACpD,mBAAc,GAAG,IAAI,iDAAe,CAAM,IAAI,CAAC,CAAC;QAChD,yBAAoB,GAAG,IAAI,iDAAe,CAAU,KAAK,CAAC,CAAC;QAC3D,qBAAgB,GAAG,IAAI,iDAAe,CAAU,IAAI,CAAC,CAAC;QACtD,sBAAiB,GAAG,IAAI,iDAAe,CAAe,IAAI,CAAC,CAAC;QAC5D,qBAAgB,GAAI,cAAc,CAAC;IAO4D,CAAC;IAL1F,MAAM,CAAC,KAAK,CAAC,KAAU;QAC3B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAKD,cAAc,CAAC,aAAsB;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE;YACR,IAAI,aAAa,EAAE;gBACjB,IAAI,CAAC,iBAAiB,CAAC,EAAC,YAAY,EAAE,MAAM,EAAC,CAAC,CAAC;aAChD;iBAAM;gBACL,QAAQ,CAAC,cAAc,EAAE,CAAC;aAC3B;SACF;IACH,CAAC;IAED,uBAAuB;QACrB,IAAI,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;YACvC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SAC9E;IACH,CAAC;IACD,gBAAgB;QACd,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC;IACD,gBAAgB,CAAC,KAAU;QACxB,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,CAAC;IACD,kBAAkB;QAChB,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED,aAAa,CAAC,QAAgB,EAAE,GAAa,EAAE,OAAgB;QAC7D,IAAI,CAAC,KAAK,CAAC,IAAI,CACb,QAAQ,EACR,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAChB;YACE,gBAAgB,EAAE,KAAK;YACvB,QAAQ,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;YACpD,UAAU,EAAE,YAAY;SACzB,CACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,MAAe,EAAE,IAAa,EAAE,GAAa;QAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,iHAAe,EAAE;YACf,KAAK,EAAE,MAAM;YACb,UAAU,EAAE,kBAAkB;YAC9B,IAAI,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAC;SAC1B,CACF,CAAC;IACJ,CAAC;IAEA,gBAAgB,CAAC,IAAoB;QACpC,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;YACnB,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;YACtD,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACzD,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;YACvD,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACzD,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YAC/D,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YACrD,SAAS,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC9C,UAAU,EAAE,CAAC,KAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,EAAC,CAAC,CAAC,mFAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mFAAyB,CAAC,CAAC,CAAC,CAAC;YAC1G,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnD,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACzD,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/D,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/D,QAAQ,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACnD,aAAa,EAAE,EAAE;YACjB,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAC5D,SAAS,EAAE,CAAC;SACb,CAAC,CAAC;IACL,CAAC;;kFAnFU,iBAAiB;kHAAjB,iBAAiB,WAAjB,iBAAiB,mBAFhB,MAAM;;;;;;;;;;;;;;;;ACZb,MAAM,OAAO,GAAG;IACrB;QACE,MAAM,EAAE,mBAAmB;QAC3B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;KACZ;IACD;QACE,MAAM,EAAE,oBAAoB;QAC5B,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;KACZ;IACD;QACE,MAAM,EAAE,aAAa;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,EAAE;QACR,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,IAAI;KACX;IACD;QACE,MAAM,EAAE,aAAa;QACrB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,IAAI;QACT,IAAI,EAAE,KAAK;KACZ;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,gBAAgB;QACtB,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;KACZ;CACF;;;;;;;;;;;;;;;;;;ACpCM,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAC7D,iFAAiF;AAE/E,gEAAgE;AAElE,8EAA8E;AAC9E,2EAA2E;AAC3E,mEAAmE;AAC5D,MAAM,cAAc,GAAG,kCAAkC,CAAC;AACjE,qEAAqE;AACrE,4DAA4D;AAC5D,0DAA0D;AAC1D,4DAA4D;AAC5D,gEAAgE;AAChE,aAAa;AACb,gEAAgE;AAChE,WAAW;AACX,+DAA+D;AAC/D,0DAA0D;AAE1D,QAAQ;AACR,4DAA4D;AAE5D,QAAQ;AACR,4DAA4D;AAE5D,yDAAyD;AACzD,oDAAoD;AACpD,oCAAoC;AACpC,uEAAuE;AACvE,sEAAsE;AAEtE,kBAAkB;AAClB,uEAAuE;AACvE,iEAAiE;AACjE,MAAM;AACN,gEAAgE;AAChE,4DAA4D;AAE5D,MAAM;AACL,yDAAyD;AAE1D,MAAM,GAAG,GAAG;IACR,UAAU,EAAE,cAAc,GAAG,yBAAyB;IAEtD,gDAAgD;IAEhD,8CAA8C;IAC9C,SAAS,EAAE,UAAU,GAAG,aAAa;IAErC,8CAA8C;IAC9C,4CAA4C;IAC5C,OAAO,EAAE,UAAU,GAAG,aAAa;IAEnC,8CAA8C;IAC9C,QAAQ,EAAE,UAAU,GAAG,aAAa;IAEpC,+CAA+C;IAC/C,QAAQ,EAAE,UAAU,GAAG,aAAa;IAEpC,+CAA+C;IAC/C,SAAS,EAAE,UAAU,GAAG,aAAa;IAErC,8CAA8C;IAC9C,OAAO,EAAE,UAAU,GAAG,aAAa;IAEnC,6CAA6C;IAC7C,MAAM,EAAE,UAAU,GAAG,aAAa;IAElC,8CAA8C;IAC9C,QAAQ,EAAE,UAAU,GAAG,aAAa;IAEpC,iDAAiD;IACjD,iDAAiD;IACjD,YAAY,EAAE,UAAU,GAAG,aAAa;IACxC,eAAe,EAAE,UAAU,GAAG,UAAU;IAExC,6CAA6C;IAC7C,4CAA4C;IAC5C,QAAQ,EAAE,UAAU,GAAG,aAAa;CACvC,CAAC;AAEK,MAAM,WAAW,GAAG;IACvB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,YAAY,EAAE,GAAG,CAAC,SAAS;IAC3B,WAAW,EAAE,GAAG,CAAC,QAAQ;IAEzB,UAAU,EAAE,GAAG,CAAC,OAAO;IAEvB,WAAW,EAAE,GAAG,CAAC,QAAQ;IAEzB,YAAY,EAAE,GAAG,CAAC,SAAS;IAE3B,UAAU,EAAE,GAAG,CAAC,OAAO;IAEvB,WAAW,EAAE,GAAG,CAAC,QAAQ;IACzB,eAAe,EAAE,GAAG,CAAC,YAAY;IACjC,eAAe,EAAE,GAAG,CAAC,eAAe;IACpC,WAAW,EAAE,GAAG,CAAC,QAAQ;IACzB,MAAM,EAAE,GAAG,CAAC,MAAM;IAElB,WAAW,EAAE,IAAI;CACpB,CAAC;;;;;;;;;;;;;;;;;;ACvG6C;AAGF;AACY;AAEzD,IAAI,6EAAsB,EAAE;IAC1B,6DAAc,EAAE,CAAC;CAClB;AAED,wEAAwB,CAAC,eAAe,CAAC,sDAAS,CAAC;KAChD,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;;;;;;;;;;;ACXlC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnRA;;;;;;;;;;ACAA;;;;;;;;;;ACAA","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/app.routing.ts","./src/app/shared/components/Tabelas/tabela-itens-fin/tabela-itens-fin.component.ts","./src/app/shared/components/Tabelas/tabela-itens-fin/tabela-itens-fin.component.html","./src/app/shared/components/autocomplete/autocomplete.ts","./src/app/shared/components/autocomplete/autocomplete.html","./src/app/shared/components/botoes/btn-sm.ts","./src/app/shared/components/bottom-sheet-share/bottom-sheet-share.component.ts","./src/app/shared/components/bottom-sheet-share/bottom-sheet-share.component.html","./src/app/shared/components/breadcrumb/breadcrumb.component.ts","./src/app/shared/components/breadcrumb/breadcrumb.component.html","./src/app/shared/components/button-loading/button-loading.component.ts","./src/app/shared/components/button-loading/button-loading.component.html","./src/app/shared/components/cards/card-add-ficheiro.ts","./src/app/shared/components/customizer/customizer.component.ts","./src/app/shared/components/customizer/customizer.component.html","./src/app/shared/components/documentos/documentos.component.ts","./src/app/shared/components/documentos/documentos.component.html","./src/app/shared/components/egret-notifications2/egret-notifications2.component.ts","./src/app/shared/components/egret-notifications2/egret-notifications2.component.html","./src/app/shared/components/egret-sidebar/egret-sidebar-helper.service.ts","./src/app/shared/components/egret-sidebar/egret-sidebar.component.ts","./src/app/shared/components/egret-sidebar/egret-sidebar.component.html","./src/app/shared/components/footer/definir-dados-do -footer/definir-dados-do-footer.service.ts","./src/app/shared/components/footer/footer.component.ts","./src/app/shared/components/footer/footer.component.html","./src/app/shared/components/forms/PAISES.db.ts","./src/app/shared/components/forms/app-dial-code.ts","./src/app/shared/components/forms/app-flag.directive.ts","./src/app/shared/components/forms/app-phone.ts","./src/app/shared/components/header-side/header-side.component.ts","./src/app/shared/components/header-side/header-side.template.html","./src/app/shared/components/header-top/header-top.component.ts","./src/app/shared/components/header-top/header-top.component.html","./src/app/shared/components/input-autocomplete/input-autocomplete.component.ts","./src/app/shared/components/input-autocomplete/input-autocomplete.component.html","./src/app/shared/components/intervalo/intervalo.component.ts","./src/app/shared/components/intervalo/intervalo.component.html","./src/app/shared/components/k-arquivo/k-arquivo.component.ts","./src/app/shared/components/k-arquivo/k-arquivo.component.html","./src/app/shared/components/k-arquivos/k-arquivos.component.ts","./src/app/shared/components/k-arquivos/k-arquivos.component.html","./src/app/shared/components/k-card-column/k-card-column.component.ts","./src/app/shared/components/k-card/k-card.component.ts","./src/app/shared/components/k-card/k-card.component.html","./src/app/shared/components/k-tipos-arquivos/k-tipos-arquivos.component.ts","./src/app/shared/components/k-tipos-arquivos/k-tipos-arquivos.component.html","./src/app/shared/components/layouts/admin-layout/admin-layout.component.ts","./src/app/shared/components/layouts/admin-layout/admin-layout.template.html","./src/app/shared/components/layouts/auth-layout/auth-layout.component.ts","./src/app/shared/components/layouts/auth-layout/auth-layout.component.html","./src/app/shared/components/layouts/pos-layout/pos-layout.component.ts","./src/app/shared/components/modais/export-excel/export-excel.component.ts","./src/app/shared/components/modais/export-excel/export-excel.component.html","./src/app/shared/components/modais/export-pdf/export-pdf.component.ts","./src/app/shared/components/modais/export-pdf/export-pdf.component.html","./src/app/shared/components/modais/modal-base/modal-base.component.ts","./src/app/shared/components/modal-aviso/aviso/aviso.component.ts","./src/app/shared/components/modal-aviso/aviso/aviso.component.html","./src/app/shared/components/modal-erro/modal-erro.component.ts","./src/app/shared/components/modal-erro/modal-erro.component.html","./src/app/shared/components/modal-sessao-expirada/modal-sessao-expirada.ts","./src/app/shared/components/notifications/modais/modal-remover/modal-remover.component.ts","./src/app/shared/components/notifications/modais/modal-remover/modal-remover.component.html","./src/app/shared/components/notifications/notifications.component.ts","./src/app/shared/components/notifications/notifications.component.html","./src/app/shared/components/novos-componentes/auto-complete/auto-complete.component.ts","./src/app/shared/components/novos-componentes/auto-complete/auto-complete.component.html","./src/app/shared/components/novos-componentes/contacto/contacto.component.ts","./src/app/shared/components/novos-componentes/contacto/contacto.component.html","./src/app/shared/components/novos-componentes/intervalo-data/intervalo-data.component.ts","./src/app/shared/components/novos-componentes/intervalo-data/intervalo-data.component.html","./src/app/shared/components/novos-componentes/intervalo-valores/intervalo-valores.component.ts","./src/app/shared/components/novos-componentes/intervalo-valores/intervalo-valores.component.html","./src/app/shared/components/novos-componentes/select-retecoes-check-box/select-retecoes-check-box.component.ts","./src/app/shared/components/novos-componentes/select-retecoes-check-box/select-retecoes-check-box.component.html","./src/app/shared/components/novos-componentes/telefone/telefone.component.ts","./src/app/shared/components/novos-componentes/telefone/telefone.component.html","./src/app/shared/components/pdf/pdf.component.ts","./src/app/shared/components/pdf/pdf.component.html","./src/app/shared/components/progress/progress.component.ts","./src/app/shared/components/progress/progress.component.html","./src/app/shared/components/shared-components.module.ts","./src/app/shared/components/sidebar-side/sidebar-side.component.ts","./src/app/shared/components/sidebar-side/sidebar-side.component.html","./src/app/shared/components/sidebar-top/sidebar-top.component.ts","./src/app/shared/components/sidebar-top/sidebar-top.component.html","./src/app/shared/components/sidenav/sidenav.component.ts","./src/app/shared/components/sidenav/sidenav.template.html","./src/app/shared/components/tab-accoes-multiplas/tab-accoes-multiplas.ts","./src/app/shared/components/telefone/app-phone.ts","./src/app/shared/configuracao/accao.config.ts","./src/app/shared/directives/address.directive.ts","./src/app/shared/directives/block-space.directive.ts","./src/app/shared/directives/currency-i18n.directive.ts","./src/app/shared/directives/decimal-places.directive.ts","./src/app/shared/directives/dropdown-anchor.directive.ts","./src/app/shared/directives/dropdown-link.directive.ts","./src/app/shared/directives/dropdown.directive.ts","./src/app/shared/directives/egret-highlight.directive.ts","./src/app/shared/directives/egret-side-nav-toggle.directive.ts","./src/app/shared/directives/egret-sidenav-helper/egret-sidenav-helper.directive.ts","./src/app/shared/directives/egret-sidenav-helper/egret-sidenav-helper.service.ts","./src/app/shared/directives/estado-bg-color.directive.ts","./src/app/shared/directives/fix-top.directive.ts","./src/app/shared/directives/font-size.directive.ts","./src/app/shared/directives/format-decimals.directive.ts","./src/app/shared/directives/formatar-hora.directive.ts","./src/app/shared/directives/fundo-card.directive.ts","./src/app/shared/directives/input-decimals.directive.ts","./src/app/shared/directives/input-format.directive.ts","./src/app/shared/directives/input-to-uppercase.directive.ts","./src/app/shared/directives/k-card-column.directive.ts","./src/app/shared/directives/layouts/is-mobile.directive.ts","./src/app/shared/directives/max-digitos.directive.ts","./src/app/shared/directives/option-selection.directive.ts","./src/app/shared/directives/phone.directive.ts","./src/app/shared/directives/pos-input-update.directive.ts","./src/app/shared/directives/scroll-to.directive.ts","./src/app/shared/directives/section.directive.ts","./src/app/shared/directives/selected-active.directive.ts","./src/app/shared/directives/shared-directives.module.ts","./src/app/shared/directives/toggle-open.directive.ts","./src/app/shared/directives/two-decimals.directive.ts","./src/app/shared/fake.db/data.ts","./src/app/shared/guards/auth.guard.ts","./src/app/shared/guards/user-validador.guard.ts","./src/app/shared/helpers/url.helper.ts","./src/app/shared/interceptors/token.interceptor.ts","./src/app/shared/keyboard/directivas/osk-input-num.directive.ts","./src/app/shared/keyboard/directivas/teclas.directive.ts","./src/app/shared/keyboard/keyboard-key.directive.ts","./src/app/shared/keyboard/keyboard.service.ts","./src/app/shared/keyboard/keyboard/keyboard.component.ts","./src/app/shared/keyboard/keyboard/keyboard.component.html","./src/app/shared/keyboard/numerico/teclado-numerico.view.ts","./src/app/shared/keyboard/osk-input.directive.ts","./src/app/shared/keyboard/teclado.module.ts","./src/app/shared/keyboard/virtual-keyboard.directive.ts","./src/app/shared/models/ENUM.ts","./src/app/shared/models/artigos/Filtro/artigofiltro.ts","./src/app/shared/models/artigos/country-code-json/country-cod.ts","./src/app/shared/models/artigos/formacoes/custom-validators.ts","./src/app/shared/models/clientes/filtros/filtroclientes.ts","./src/app/shared/models/financas/clientes/cliente-facturacao.ts","./src/app/shared/models/generico/util.ts","./src/app/shared/pipes/agrupar-contactos.pipe.ts","./src/app/shared/pipes/all.pipe.ts","./src/app/shared/pipes/calculo-vagas-disponivel/calculo-de-vaga.pipe.ts","./src/app/shared/pipes/cod-tipo.pipe.ts","./src/app/shared/pipes/col-criador.pipe.ts","./src/app/shared/pipes/col-name.pipe.ts","./src/app/shared/pipes/col-tipo.pipe.ts","./src/app/shared/pipes/col-titulo.pipe.ts","./src/app/shared/pipes/compras/enum/idOpc.ts","./src/app/shared/pipes/compras/tipo-documento.pipe.ts","./src/app/shared/pipes/compras/validar-documento.ts/validar-documento-compra.pipe.ts","./src/app/shared/pipes/convert-to-float.pipe.ts","./src/app/shared/pipes/data-reverse-pt.pipe.ts","./src/app/shared/pipes/desc-artigo.pipe.ts","./src/app/shared/pipes/doc-status.pipe.ts","./src/app/shared/pipes/duration.pipe.ts","./src/app/shared/pipes/estado-doc-valido.pipe.ts","./src/app/shared/pipes/excerpt.pipe.ts","./src/app/shared/pipes/fase-tem-artigo.pipe.ts","./src/app/shared/pipes/filter-by-id.pipe.ts","./src/app/shared/pipes/filter-fn.pipe.ts","./src/app/shared/pipes/filtros-auto-complete/pipe/filtrar-pessoa-contacto-relacao.pipe.ts","./src/app/shared/pipes/filtros-auto-complete/pipe/filtro-emails-manuais.pipe.ts","./src/app/shared/pipes/financas-shared/listas/lista-tem-mais-de.pipe.ts","./src/app/shared/pipes/format-time.pipe.ts","./src/app/shared/pipes/formatar-ordinal.pipe.ts","./src/app/shared/pipes/formatar-quantidade.pipe.ts","./src/app/shared/pipes/get-menu/get-menu.pipe.ts","./src/app/shared/pipes/get-value-by-key.pipe.ts","./src/app/shared/pipes/icon-ficheiro.pipe.ts","./src/app/shared/pipes/input-contacto-certo.ts","./src/app/shared/pipes/inserir-quebra-linha.pipe.ts","./src/app/shared/pipes/k-date.pipe.ts","./src/app/shared/pipes/label-municipio.pipe.ts","./src/app/shared/pipes/label-provincia.pipe.ts","./src/app/shared/pipes/link-youtube.pipe.ts","./src/app/shared/pipes/mostrar-codEmpresa/mostrar-cod-empresa.pipe.ts","./src/app/shared/pipes/msg-expiracao.pipe.ts","./src/app/shared/pipes/parse-value.pipe.ts","./src/app/shared/pipes/por-personalidade.pipe.ts","./src/app/shared/pipes/print-with-br.pipe.ts","./src/app/shared/pipes/relative-time.pipe.ts","./src/app/shared/pipes/safe.pipe.ts","./src/app/shared/pipes/set-bg-ficheiro.pipe.ts","./src/app/shared/pipes/shared-pipes.module.ts","./src/app/shared/pipes/some-fn.pipe.ts","./src/app/shared/pipes/str-normal-case.pipe.ts","./src/app/shared/pipes/string-float.pipe.ts","./src/app/shared/pipes/sum.pipe.ts","./src/app/shared/pipes/tabela-totalizador/tab-stock-existencia.pipe.ts","./src/app/shared/pipes/tabela-totalizador/tab-stock-total.pipe.ts","./src/app/shared/pipes/tabela-totalizador/tab-total-tempo.pipe.ts","./src/app/shared/pipes/tabela-totalizador/tab-totalizador.pipe.ts","./src/app/shared/pipes/tamanhoFicheiro.pipe.ts","./src/app/shared/pipes/tem-proc-id-artigo.pipe.ts","./src/app/shared/pipes/tipo-ficheiro.pipe.ts","./src/app/shared/search/search-input-over/search-input-over.component.ts","./src/app/shared/search/search-input-over/search-input-over.component.html","./src/app/shared/search/search.module.ts","./src/app/shared/search/search.service.ts","./src/app/shared/services/Calculos/calculos-financas.service.ts","./src/app/shared/services/aplicacao-service/aplicacao.service.ts","./src/app/shared/services/aplicacao-service/data/app-store.service.ts","./src/app/shared/services/aplicacao-service/data/menu-data.service.ts","./src/app/shared/services/aplicacao-service/data/permissoes-data.service.ts","./src/app/shared/services/aplicacao-service/empresa.service.ts","./src/app/shared/services/aplicacao-service/login.service.ts","./src/app/shared/services/aplicacao-service/utilizadores.service.ts","./src/app/shared/services/app-confirm/app-confirm.component.ts","./src/app/shared/services/app-confirm/app-confirm.service.ts","./src/app/shared/services/app-loader/app-loader.component.ts","./src/app/shared/services/app-loader/app-loader.component.html","./src/app/shared/services/app-loader/app-loader.service.ts","./src/app/shared/services/artigos/EstadoArtigos.service.ts","./src/app/shared/services/artigos/artigos.service.ts","./src/app/shared/services/auth/auth.guard.ts","./src/app/shared/services/auth/jwt-auth.service.ts","./src/app/shared/services/clientes-service/clientes-gerais.service.ts","./src/app/shared/services/clientes-service/clientes.service.ts","./src/app/shared/services/cms/cms-geral.service.ts","./src/app/shared/services/customizer.service.ts","./src/app/shared/services/dashboard/dashboard.service.ts","./src/app/shared/services/data-service/data-interval/data-interval.service.ts","./src/app/shared/services/data/app-data.service.ts","./src/app/shared/services/data/fixed-store.service.ts","./src/app/shared/services/data/user-data.service.ts","./src/app/shared/services/equipamentos/eq-classificacao.service.ts","./src/app/shared/services/equipamentos/equipamento.service.ts","./src/app/shared/services/error-handler.service.ts","./src/app/shared/services/export-file/export-file.ts","./src/app/shared/services/financas/financas.service.ts","./src/app/shared/services/financas/referencias.service.ts","./src/app/shared/services/gestao-arquivos/ga-arquivo.service.ts","./src/app/shared/services/layout.service.ts","./src/app/shared/services/local-store.service.ts","./src/app/shared/services/match-media.service.ts","./src/app/shared/services/navigation.service.ts","./src/app/shared/services/notificacao/notificacao.service.ts","./src/app/shared/services/on-destroy.service.ts","./src/app/shared/services/pos/pos.service.ts","./src/app/shared/services/processos/processos.service.ts","./src/app/shared/services/recursos-humanos/recursos-humanos.service.ts","./src/app/shared/services/recursos-humanos/rh.service.ts","./src/app/shared/services/route-parts.service.ts","./src/app/shared/services/theme.service.ts","./src/app/shared/services/ui-lib-icon.service.ts","./src/app/shared/shared-material.module.ts","./src/app/shared/shared.module.ts","./src/app/views/artigos/modais/reno-modal-facturacao/reno-modal-facturacao.component.ts","./src/app/views/artigos/modais/reno-modal-facturacao/reno-modal-facturacao.component.html","./src/app/views/artigos/renovavel-form/renovavel-form.component.ts","./src/app/views/artigos/renovavel-form/renovavel-form.component.html","./src/app/views/config-empresa/config-layout/config.layout.ts","./src/app/views/equipamentos/componentes/modais/modal-confirmacao/modal-confirmacao.component.ts","./src/app/views/equipamentos/componentes/modais/modal-confirmacao/modal-confirmacao.component.html","./src/app/views/facturacao/facturacao/saft/pipes/filtar-artigo.pipe.ts","./src/app/views/facturacao/modais/anular/anular.component.ts","./src/app/views/facturacao/modais/anular/anular.component.html","./src/app/views/facturacao/modais/modal-adicionar-artigo-fa/modal-adicionar-artigo-fa.component.ts","./src/app/views/facturacao/modais/modal-adicionar-artigo-fa/modal-adicionar-artigo-fa.component.html","./src/app/views/facturacao/modais/modal-adicionar-motivo-anulacao/modal-adicionar-motivo-anulacao.component.ts","./src/app/views/facturacao/modais/modal-carga-descarga/modal-carga-descarga.ts","./src/app/views/facturacao/modais/modal-pesquisa-artigos-fa/modal-pesquisa-artigos-fa.component.ts","./src/app/views/facturacao/modais/modal-pesquisa-artigos-fa/modal-pesquisa-artigos-fa.component.html","./src/app/views/facturacao/modais/pesquisar-cambio/pesquisar-cambio.component.ts","./src/app/views/facturacao/modais/pesquisar-cambio/pesquisar-cambio.component.html","./src/app/views/gestao-arquivos/ga-tipo-campo/ga-tipo-campo.component.ts","./src/app/views/gestao-arquivos/ga-tipo-campo/ga-tipo-campo.component.html","./src/app/views/gestao-arquivos/modal-add-valores/modal-add-valores.component.ts","./src/app/views/gestao-arquivos/modal-add-valores/modal-add-valores.component.html","./src/app/views/pos/componentes/keyboard/pos-teclado-virtual.ts","./src/app/views/pos/componentes/modais/pos-modal-notifiy/pos-modal-notifiy.ts","./src/app/views/pos/componentes/pos-container/pos-container.ts","./src/app/views/pos/componentes/pos-navegacao/pos-navegacao.component.ts","./src/app/views/pos/pos-services/pos-ipc.service.ts","./src/app/views/pos/pos-services/pos-utility.service.ts","./src/app/views/pos/pos.deb/pos.deb.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale|sync|/^/.*$","ignored|C:\\Users\\manue\\Documents\\KiamiProjects\\Kiami\\node_modules\\xlsx|crypto","ignored|C:\\Users\\manue\\Documents\\KiamiProjects\\Kiami\\node_modules\\xlsx|fs","ignored|C:\\Users\\manue\\Documents\\KiamiProjects\\Kiami\\node_modules\\xlsx|stream"],"sourcesContent":["import {AfterViewInit, Component, OnInit} from '@angular/core';\r\nimport {Title} from '@angular/platform-browser';\r\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\r\nimport {RoutePartsService} from './shared/services/route-parts.service';\r\nimport {filter} from 'rxjs/operators';\r\nimport {UILibIconService} from './shared/services/ui-lib-icon.service';\r\nimport {PrimeNGConfig} from 'primeng/api';\r\nimport {TranslateService} from '@ngx-translate/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { PosUtilityService } from './views/pos/pos-services/pos-utility.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit, AfterViewInit {\r\n appTitle = 'Kiami';\r\n pageTitle = '';\r\n formControl = new FormControl();\r\n controlOne = new FormControl();\r\n\r\n constructor(\r\n public title: Title,\r\n private router: Router,\r\n private activeRoute: ActivatedRoute,\r\n private routePartsService: RoutePartsService,\r\n private iconService: UILibIconService,\r\n public posUtility: PosUtilityService,\r\n private config: PrimeNGConfig, private translateService: TranslateService\r\n ) {\r\n iconService.init();\r\n }\r\n\r\n ngOnInit() {\r\n this.translateService.addLangs(['pt']);\r\n this.translateService.setDefaultLang('pt');\r\n this.translate('pt');\r\n }\r\n\r\n translate(lang: string) {\r\n this.translateService.use(lang);\r\n this.translateService.get('primeng').subscribe(res => this.config.setTranslation(res));\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n changePageTitle() {\r\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((routeChange) => {\r\n const routeParts = this.routePartsService.generateRouteParts(this.activeRoute.snapshot);\r\n if (!routeParts.length) {\r\n return this.title.setTitle(this.appTitle);\r\n }\r\n // Extract title from parts;\r\n this.pageTitle = routeParts\r\n .reverse()\r\n .map((part) => part.title)\r\n .reduce((partA, partI) => {\r\n return `${partA} > ${partI}`;\r\n });\r\n this.pageTitle += ` | ${this.appTitle}`;\r\n this.title.setTitle(this.pageTitle);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import {ErrorHandler, LOCALE_ID, NgModule} from '@angular/core';\r\nimport localePt from '@angular/common/locales/pt';\r\nimport {registerLocaleData} from '@angular/common';\r\nimport {RouterModule} from '@angular/router';\r\nimport {BrowserModule} from '@angular/platform-browser';\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport {PERFECT_SCROLLBAR_CONFIG, PerfectScrollbarConfigInterface, PerfectScrollbarModule} from 'ngx-perfect-scrollbar';\r\n\r\nimport {rootRouterConfig} from './app.routing';\r\nimport {SharedModule} from './shared/shared.module';\r\nimport {AppComponent} from './app.component';\r\n\r\nimport {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http';\r\nimport {TranslateLoader, TranslateModule} from '@ngx-translate/core';\r\nimport {TranslateHttpLoader} from '@ngx-translate/http-loader';\r\nimport {ErrorHandlerService} from '@services/error-handler.service';\r\nimport {TokenInterceptor} from './shared/interceptors/token.interceptor';\r\nimport {NgxDaterangepickerMd} from 'ngx-daterangepicker-material';\r\nimport {QuillModule} from 'ngx-quill';\r\nimport { IConfig, NgxMaskModule } from 'ngx-mask';\r\nimport {MAT_DATE_LOCALE} from '@angular/material/core';\r\nimport {TooltipModule} from 'ngx-bootstrap/tooltip';\r\nimport * as Quill from 'quill';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { TecladoModule } from './shared/keyboard/teclado.module';\r\nimport { PosService } from '@services/pos/pos.service';\r\nconst parchment = Quill.import('parchment');\r\nconst queryBlock = parchment.query('block');\r\nqueryBlock.tagName = 'DIV';\r\nQuill.register(queryBlock, true);\r\nregisterLocaleData(localePt);\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(httpClient: HttpClient) {\r\n return new TranslateHttpLoader(httpClient);\r\n}\r\n\r\nconst DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {\r\n suppressScrollX: true\r\n};\r\n\r\n@NgModule({\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n SharedModule,\r\n HttpClientModule,\r\n TecladoModule,\r\n PerfectScrollbarModule,\r\n // JwtModule.forRoot({ config: { tokenGetter, }, }),\r\n QuillModule.forRoot(),\r\n NgxMaskModule.forRoot(),\r\n TranslateModule.forRoot(\r\n {\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }\r\n ),\r\n NgxDaterangepickerMd.forRoot(),\r\n RouterModule.forRoot(rootRouterConfig, { useHash: false, relativeLinkResolution: 'legacy', onSameUrlNavigation: 'reload' }),\r\n TooltipModule.forRoot(),\r\n ReactiveFormsModule,\r\n MatInputModule\r\n ],\r\n declarations: [AppComponent],\r\n providers: [\r\n PosService,\r\n {provide: ErrorHandler, useClass: ErrorHandlerService},\r\n // { provide: HAMMER_GESTURE_CONFIG, useClass: GestureConfig },\r\n {provide: PERFECT_SCROLLBAR_CONFIG, useValue: DEFAULT_PERFECT_SCROLLBAR_CONFIG},\r\n // REQUIRED IF YOU USE JWT AUTHENTICATION\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: TokenInterceptor,\r\n multi: true\r\n },\r\n // {\r\n // provide: HTTP_INTERCEPTORS,\r\n // useClass: CacheInterceptor,\r\n // multi: true,\r\n // },\r\n {provide: MAT_DATE_LOCALE, useValue: 'pt-PT'},\r\n {provide: LOCALE_ID, useValue: 'pt-PT'}\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n}\r\n","import {Routes} from '@angular/router';\r\nimport {AdminLayoutComponent} from './shared/components/layouts/admin-layout/admin-layout.component';\r\nimport {AuthLayoutComponent} from './shared/components/layouts/auth-layout/auth-layout.component';\r\nimport {AutoCompleteComponent} from './shared/components/novos-componentes/auto-complete/auto-complete.component';\r\nimport {AuthGuard} from './shared/services/auth/auth.guard';\r\nimport {PosLayoutComponent} from './shared/components/layouts/pos-layout/pos-layout.component';\r\nimport {UserValidadorGuard} from '@guards/user-validador.guard';\r\nimport { PosHomePagina } from './views/pos/paginas/pos-home/pos-home.pagina';\r\nimport { AppConfigLayout } from './views/config-empresa/config-layout/config.layout';\r\n\r\n\r\nexport const rootRouterConfig: Routes = [\r\n {\r\n path: '',\r\n redirectTo: 'sessoes',\r\n pathMatch: 'full'\r\n },\r\n {\r\n path: '',\r\n component: AuthLayoutComponent,\r\n children: [\r\n {\r\n path: 'sessoes',\r\n loadChildren: () => import('./views/sessoes/sessoes.module').then(m => m.SessoesModule),\r\n data: {title: 'Login'}\r\n }\r\n ]\r\n },\r\n {\r\n path: '',\r\n component: PosLayoutComponent,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'pos-home',\r\n loadChildren: () => import('./views/pos/pos.module').then(m => m.PosModule),\r\n data: {title: 'Point of Sales', breadcrumb: 'Ponto de Venda'}\r\n }\r\n ],\r\n },\r\n {\r\n path: '',\r\n component: AppConfigLayout,\r\n canActivate: [AuthGuard],\r\n children: [\r\n {\r\n path: 'config-empresa',\r\n loadChildren: () => import('./views/config-empresa/config-empresa.module').then(m => m.ConfigEmpresaModule),\r\n data: {title: 'Configuração da Empresa', breadcrumb: 'Configuração da Empresa'}\r\n },\r\n ]\r\n },\r\n {\r\n path: '',\r\n component: AdminLayoutComponent,\r\n canActivate: [AuthGuard],\r\n canActivateChild: [UserValidadorGuard],\r\n children: [\r\n\r\n {\r\n path: 'devGO',\r\n // component: InputautocompleteComponent,\r\n component: AutoCompleteComponent,\r\n data: {title: 'Dashboard', breadcrumb: 'DASHBOARD'}\r\n },\r\n {\r\n path: 'dashboard',\r\n loadChildren: () => import('./views/dashboard/dashboard.module').then(m => m.DashboardModule),\r\n data: {title: 'Dashboard', breadcrumb: 'DASHBOARD'}\r\n },\r\n {\r\n path: 'administracao',\r\n loadChildren: () =>\r\n import('./views/administracao/administracao.module').then(\r\n (m) => m.AdministracaoModule\r\n ),\r\n data: {title: 'Administração', breadcrumb: 'Administração'}\r\n },\r\n {\r\n path: 'clientes',\r\n loadChildren: () =>\r\n import('./views/clientes/clientes.module').then(\r\n (m) => m.ClientesModule\r\n ),\r\n data: {preload: true}\r\n },\r\n {\r\n path: 'artigos',\r\n loadChildren: () =>\r\n import('./views/artigos/artigos.module').then((m) => m.ArtigosModule),\r\n data: {preload: true}\r\n },\r\n {\r\n path: 'marcacoes',\r\n loadChildren: () => import('./views/marcacoes/marcacoes.module').then((m) => m.MarcacoesModule),\r\n data: {preload: true}\r\n },\r\n {\r\n path: 'fornecedores',\r\n loadChildren: () =>\r\n import('./views/fornecedores/fornecedores.module').then(\r\n (m) => m.FornecedoresModule\r\n ),\r\n data: {preload: true}\r\n },\r\n {\r\n path: 'processos',\r\n loadChildren: () =>\r\n import('./views/processos/processos.module').then(\r\n (m) => m.ProcessosModule\r\n ),\r\n data: {title: 'Processos', breadcrumb: 'Processos'}\r\n },\r\n\r\n {\r\n path: 'rh',\r\n loadChildren: () =>\r\n import('./views/rh/rh.module').then((m) => m.RhModule),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'facturacao',\r\n loadChildren: () =>\r\n import('./views/facturacao/facturacao.module').then((m) => m.FacturacaoModule),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'compras',\r\n loadChildren: () =>\r\n import('./views/compras/compras.module').then((m) => m.ComprasModule),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'tesouraria',\r\n loadChildren: () =>\r\n import('./views/tesouraria/tesouraria.module').then(\r\n (m) => m.TesourariaModule\r\n ),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'financas',\r\n loadChildren: () =>\r\n import('./views/financas/financas.module').then(\r\n (m) => m.FinancasModule\r\n ),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'equipamentos',\r\n loadChildren: () =>\r\n import('./views/equipamentos/equipamentos.module').then(\r\n (m) => m.EquipamentosModule\r\n ),\r\n data: {preload: false, onSameUrlNavigation: 'reload'}\r\n },\r\n {\r\n path: 'comunicacao',\r\n loadChildren: () =>\r\n import('./views/comunicacao/comunicacao.module').then(\r\n (m) => m.ComunicacaoModule\r\n ),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'responsaveis',\r\n loadChildren: () =>\r\n import('./views/responsaveis/responsaveis.module').then(\r\n (m) => m.ResponsaveisModule\r\n ),\r\n data: {title: 'Equipas ', breadcrumb: 'Equipas'}\r\n },\r\n {\r\n path: 'utilizadores',\r\n loadChildren: () =>\r\n import('./views/utilizadores/utilizadores.module').then(\r\n (m) => m.UtilizadoresModule\r\n ),\r\n data: {title: 'Utilizadores', breadcrumb: 'Utilizadores'}\r\n },\r\n {\r\n path: 'manutencao',\r\n loadChildren: () =>\r\n import('./views/manutencao/manutencao.module').then(\r\n (m) => m.ManutencaoModule\r\n ),\r\n data: {preload: false}\r\n },\r\n {\r\n path: 'administracao',\r\n loadChildren: () =>\r\n import('./views/administracao/administracao.module').then(\r\n (m) => m.AdministracaoModule\r\n ),\r\n data: {title: 'Administração', breadcrumb: 'Administração'}\r\n },\r\n\r\n {\r\n path: 'empresas',\r\n loadChildren: () =>\r\n import('./views/administracao/administracao.module').then(\r\n (m) => m.AdministracaoModule\r\n ),\r\n data: {title: 'Empresas', breadcrumb: 'Empresas'}\r\n },\r\n {\r\n path: 'perfil',\r\n loadChildren: () =>\r\n import('./views/perfil/perfil.module').then((m) => m.PerfilModule),\r\n data: {title: 'Perfil', breadcrumb: 'Perfil'}\r\n },\r\n {\r\n path: 'relatorios',\r\n loadChildren: () =>\r\n import('./views/relatorios/relatorios.module').then((m) => m.RelatoriosModule),\r\n data: {title: 'Relatorios', breadcrumb: 'Relatorios'}\r\n },\r\n {\r\n path: 'cms',\r\n loadChildren: () =>\r\n import('./views/cms/cms.module').then((m) => m.CMSModule),\r\n data: {title: 'CMS', breadcrumb: 'CMS'}\r\n },\r\n {\r\n path: 'gestao-arquivos',\r\n loadChildren: () =>\r\n import('./views/gestao-arquivos/gestao-arquivos.module').then((m) => m.GestaoArquivosModule),\r\n data: {title: 'Gestão de Arquivos', breadcrumb: 'Gestão de Arquivos'}\r\n }\r\n\r\n ]\r\n },\r\n {\r\n path: ':{instalacoes}',\r\n loadChildren: () => import('./views/sessoes/sessoes.module').then(m => m.SessoesModule),\r\n data: {title: 'Login'}\r\n },\r\n {\r\n path: '**',\r\n redirectTo: 'sessions/404'\r\n }\r\n];\r\n\r\n","import { CurrencyPipe } from '@angular/common';\r\nimport { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ArtigosFacturacao } from 'app/shared/models/artigos/artigosfacturacao';\r\nimport { ClienteFacturacao } from 'app/shared/models/clientes/clientefacturacao';\r\nimport { Empresa } from 'app/shared/models/empresa/empresa';\r\nimport { Documentos } from 'app/shared/models/financas/documentos/documentos';\r\nimport { DocumentosTipos } from 'app/shared/models/financas/documentos/documentosTipos';\r\nimport { Util } from 'app/shared/models/generico/util';\r\nimport { CalculosFinancasService } from 'app/shared/services/Calculos/calculos-financas.service';\r\nimport { NotificacaoService } from 'app/shared/services/notificacao/notificacao.service';\r\nimport { ModalPesquisaArtigosFaComponent } from 'app/views/facturacao/modais/modal-pesquisa-artigos-fa/modal-pesquisa-artigos-fa.component';\r\n\r\n@Component({\r\n selector: 'app-tabela-itens-fin',\r\n templateUrl: './tabela-itens-fin.component.html',\r\n styleUrls: ['./tabela-itens-fin.component.scss'],\r\n providers: [CurrencyPipe],\r\n})\r\nexport class TabelaItensFinComponent implements OnInit {\r\n \r\n @Output() alteracaoDados = new EventEmitter();\r\n\r\n empresa: Empresa = {};\r\n facturaForm: FormGroup;\r\n conversaoDirecta = false;\r\n artigosFA: ArtigosFacturacao[] = [];\r\n artigosFAAutoComplete: ArtigosFacturacao[] = [];\r\n tiposDocumentos: DocumentosTipos[] = [];\r\n cliente: ClienteFacturacao | null;\r\n docCorrenteTemp: Documentos;\r\n codMoedaPrincipalCliente: string;\r\n gereStocks: any;\r\n docCorrente: Documentos;\r\n modoDocPorRef = false;\r\n idTipoOperacao = 1;\r\n\r\n get Itens(): FormArray {\r\n return this.facturaForm.get(\"Itens\") as FormArray;\r\n }\r\n constructor(private fb: FormBuilder, public _doccalculoFront: CalculosFinancasService,\r\n private currencyPipe: CurrencyPipe,\r\n private modal: MatDialog,\r\n private _notificacao: NotificacaoService,\r\n ) { this.inicializarFormulario()\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n inicializarFormulario(documento?: Documentos): void {\r\n this.facturaForm = this.fb.group({\r\n Itens: this.fb.array([]),})\r\n }\r\n\r\n async calcularValoresItem(index: number) {\r\n const itens = await this.alterarValoresIdItem(this.Itens.value);\r\n\r\n const Totais = {\r\n ConversaoDirecta: this.conversaoDirecta,\r\n TaxaCambio: this.facturaForm.value.TaxaCambio,\r\n };\r\n\r\n const modelo = {\r\n item: itens[index],\r\n itens,\r\n Totais,\r\n };\r\n this.calcularValoresItemTotaisFront(modelo, index);\r\n }\r\n\r\n calcularValoresItemTotaisFront(modelo:any, index:number) {\r\n const resultado = this._doccalculoFront.CalcularValoresItem(modelo);\r\n const dados = resultado.totais;\r\n const linha = resultado.item;\r\n this.alterarLinhaItem(linha, index);\r\n if (linha.descontoPerc > 100) {\r\n this.Itens.controls[index]\r\n .get(\"DescontoPerc\")\r\n .setValue(\r\n this.currencyPipe.transform(Util.convertToFloat(100), \"\", \"\")\r\n );\r\n }\r\n }\r\n pesquisarArtigos(event, index: number) {\r\n event.stopPropagation();\r\n const tipoDoc = this.tiposDocumentos.find(\r\n (x) =>\r\n x.idTipoDocumento ===\r\n parseInt(this.facturaForm.get(\"IdTipoDocumento\").value, 10)\r\n );\r\n const modalRef = this.modal.open(ModalPesquisaArtigosFaComponent, {\r\n width: \"90vw\",\r\n maxWidth: \"90vw\",\r\n data: {\r\n msg: \"Pesquisa de Artigos\",\r\n empresa: this.empresa,\r\n tipoDocumento: tipoDoc,\r\n artigosFA: this.artigosFA,\r\n gereStock: this.gereStocks,\r\n },\r\n });\r\n\r\n modalRef.afterClosed().subscribe((res) => {\r\n if (res && res.itens) {\r\n if (res.itens[0].idArtigo > 0) {\r\n this.selecArtigo(res.itens[0], index);\r\n }\r\n if (index >= this.Itens.controls.length - 1) {\r\n this.addItemsFactura(1);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async addItemsFactura(totalItems: number) {\r\n for (let i = 0; i < totalItems; i++) {\r\n this.Itens.push(await this.criarItems(null, i));\r\n }\r\n }\r\n\r\n async criarItems(item?: any, idItem?: number): Promise {\r\n if (item?.idIva) {\r\n item[\"idImposto\"] = item?.idIva ? item?.idIva : \"\";\r\n item[\"taxaImposto\"] = item?.taxaImposto ? item?.taxaImposto : \"\";\r\n }\r\n\r\n return await this.fb.group({\r\n IdArtigo: [item && item.idArtigo ? item.idArtigo : 0],\r\n IdItem: [item && item.idItem ? item.idItem : idItem],\r\n IdItemDocRef: [item && item.idItemDocRef ? item.idItemDocRef : null],\r\n CodArtigo: [item && item.codArtigo ? item.codArtigo : \"\"],\r\n geridoPorStocks: [\r\n item && item.geridoPorStocks ? item.geridoPorStocks : false,\r\n ],\r\n valorgeridoPorStocks: [\r\n item && item.geridoPorStocks ? (item.geridoPorStocks ? \"S\" : \"N\") : \"\",\r\n ],\r\n Descricao: [item && item.descricao ? item.descricao : \"\"],\r\n CodUnidade: [item && item.codUnidade ? item.codUnidade : \"\"],\r\n IdImposto: [item && item.idImposto ? item.idImposto : 0],\r\n taxaImposto: [item && item.taxaImposto ? item.taxaImposto : null],\r\n IdDocumento: [item && item.idDocumentoItem ? item.idDocumentoItem : 0],\r\n CodIva: [item && item.codIVA ? item.codIVA : \"\"],\r\n DescricaoIva: [item && item.descricaoIva ? item.descricaoIva : \"\"],\r\n PrecoME: [\r\n item && item.precoME\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.precoME),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n Quantidade: [\r\n item && item.quantidade\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.quantidade),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(1, \"\", \"\"),\r\n ],\r\n DescontoPerc: [\r\n item && item.descontoPerc\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.descontoPerc),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\")],\r\n Desconto: [\r\n item && item.desconto\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.desconto),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n imposto: [\r\n item && item.imposto\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.imposto),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n Preco: [\r\n item && item.preco\r\n ? this.currencyPipe.transform(Util.convertToFloat(item.preco), \"\", \"\")\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n Total: [\r\n item && item.total\r\n ? this.currencyPipe.transform(Util.convertToFloat(item.total), \"\", \"\")\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n TotalGeral: [\r\n item && item.totalGeral\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.totalGeral),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n ImpostoRetido: [\r\n item && item.impostoRetido\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.impostoRetido),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n SubTotal: [\r\n item && item.subTotal\r\n ? this.currencyPipe.transform(\r\n Util.convertToFloat(item.subTotal),\r\n \"\",\r\n \"\"\r\n )\r\n : this.currencyPipe.transform(0, \"\", \"\"),\r\n ],\r\n Separador: [item ? item.texto : false],\r\n Valor: [item && item.texto ? item.desconto : false],\r\n Texto: [item && item.texto ? item.texto : false],\r\n IdRetencao: [item && item.idRetencao ? item.idRetencao : 0],\r\n idRealizacaoInscricao: [\r\n item && item.idRealizacaoInscricao ? item.idRealizacaoInscricao : 0,\r\n ],\r\n IdProcessoArtigo: [\r\n item && item.idProcessoArtigo ? item.idProcessoArtigo : 0,\r\n ],\r\n IdRenovavelClienteRenovacaoArtigo: [\r\n item && item.idRenovavelClienteRenovacaoArtigo\r\n ? item.idRenovavelClienteRenovacaoArtigo\r\n : 0,\r\n ],\r\n idArtigoRenovavelClienteData: [\r\n item && item.idArtigoRenovavelClienteData\r\n ? item.idArtigoRenovavelClienteData\r\n : 0,\r\n ],\r\n });\r\n }\r\n\r\n retornarPrecoFront(\r\n artigo: ArtigosFacturacao,\r\n precoDefault: number\r\n ): number {\r\n precoDefault = (precoDefault && precoDefault>0) ? precoDefault : 1;\r\n let precos = artigo?.precos?.filter(p=>p.idEmpresa == this.empresa?.idEmpresa)??[];\r\n return this._doccalculoFront.retornarPrecoArtigo(precos, precoDefault);\r\n }\r\n\r\n aoClicarCodArtigo() {\r\n this.artigosFAAutoComplete = [...this.artigosFA];\r\n }\r\n async selecArtigo(artigo?: ArtigosFacturacao, index?: number) {\r\n if (!this.cliente && !this.docCorrenteTemp) {\r\n this._notificacao.notificar(\"Seleccione um cliente\", false, 5000);\r\n this.Itens.controls[index].get(\"CodArtigo\").setValue(\"\");\r\n return;\r\n }\r\n\r\n this.codMoedaPrincipalCliente =\r\n this.cliente && this.cliente?.codMoeda\r\n ? this.cliente?.codMoeda\r\n : this.docCorrenteTemp && this.docCorrenteTemp.codMoeda\r\n ? this.docCorrenteTemp.codMoeda\r\n : null;\r\n\r\n let precoArtigoFront = this.retornarPrecoFront(artigo, this.cliente?.precoDefault);\r\n\r\n this.Itens.controls[index].get(\"Separador\").setValue(false);\r\n this.Itens.controls[index].get(\"Texto\").setValue(false);\r\n this.Itens.controls[index].get(\"IdArtigo\").setValue(artigo.idArtigo);\r\n this.Itens.controls[index].get(\"CodArtigo\").setValue(artigo.codArtigo);\r\n if (artigo.geridoPorStocks) {\r\n this.Itens.controls[index].get(\"geridoPorStocks\").setValue(true);\r\n this.Itens.controls[index].get(\"valorgeridoPorStocks\").setValue(\"los\");\r\n } else if (!artigo.geridoPorStocks) {\r\n this.Itens.controls[index].get(\"geridoPorStocks\").setValue(false);\r\n this.Itens.controls[index].get(\"valorgeridoPorStocks\").setValue(\"N\");\r\n } else {\r\n this.Itens.controls[index].get(\"geridoPorStocks\").setValue(false);\r\n this.Itens.controls[index].get(\"valorgeridoPorStocks\").setValue(\"\");\r\n }\r\n this.Itens.controls[index].get(\"idRealizacaoInscricao\").setValue(\"0\");\r\n this.Itens.controls[index].get(\"CodUnidade\").setValue(artigo.codUnidade);\r\n this.Itens.controls[index].get(\"Descricao\").setValue(artigo.artigo);\r\n this.Itens.controls[index].get(\"IdRetencao\").setValue(artigo.idRetencao);\r\n this.Itens.controls[index].get(\"Preco\").setValue(this.currencyPipe.transform(Util.convertToFloat(precoArtigoFront), \"\", \"\"));\r\n \r\n\r\n this.Itens.controls[index]\r\n .get(\"DescricaoIva\")\r\n .setValue(artigo.descricaoIva);\r\n\r\n if (artigo && artigo.codIva) {\r\n this.Itens.controls[index]\r\n .get(\"taxaImposto\")\r\n .setValue(artigo.taxaImposto);\r\n } else {\r\n // aq31\r\n this.Itens.controls[index]\r\n .get(\"taxaImposto\")\r\n .setValue(artigo?.taxaIva ? artigo?.taxaIva : \"\");\r\n\r\n // this.Itens.controls[index].get('taxaImposto').setValue(null);\r\n this.validarItemControl(\"taxaImposto\", index);\r\n }\r\n if (!this.Itens.controls[index].get(\"taxaImposto\").value) {\r\n this.validarItemControl(\"taxaImposto\", index);\r\n }\r\n\r\n // this.Itens.controls[index].get('IdImposto').setValue(artigo?.idImposto? artigo?.idImposto: null);\r\n this.Itens.controls[index]\r\n .get(\"IdImposto\")\r\n .setValue(artigo?.idImposto ? artigo?.idImposto : null);\r\n this.Itens.controls[index]\r\n .get(\"Quantidade\")\r\n .setValue(this.currencyPipe.transform(1, \"\", \"\"));\r\n this.Itens.controls[index]\r\n .get(\"Desconto\")\r\n .setValue(this.currencyPipe.transform(0, \"\", \"\"));\r\n this.Itens.controls[index]\r\n .get(\"DescontoPerc\")\r\n .setValue(this.currencyPipe.transform(0, \"\", \"\"));\r\n }\r\n \r\n filtrarArtigoFA(event: any, opcao: number) {\r\n const termo = event.target.value;\r\n if (opcao === 1) {\r\n this.artigosFAAutoComplete = this.artigosFA.filter(\r\n (x) =>\r\n (x.codArtigo &&\r\n x.codArtigo.toLowerCase().includes(termo.toLowerCase())) ||\r\n (x.artigo && x.artigo.toLowerCase().includes(termo.toLowerCase()))\r\n );\r\n }\r\n }\r\n\r\n validarItemControl(controlo, indice) {\r\n if (controlo === \"Preco\") {\r\n this.Itens.controls[indice]\r\n .get(controlo)\r\n .setValidators([Validators.min(1), Validators.required]);\r\n } else {\r\n this.Itens.controls[indice]\r\n .get(controlo)\r\n .setValidators([Validators.required]);\r\n }\r\n this.Itens.controls[indice]\r\n .get(controlo)\r\n .updateValueAndValidity({ onlySelf: true });\r\n this.Itens.controls[indice].get(controlo).markAsTouched({ onlySelf: true });\r\n }\r\n \r\n alterarLinhaItem(item: any, index: number) {\r\n this.Itens.controls[index]\r\n .get(\"Desconto\")\r\n .setValue(\r\n this.currencyPipe.transform(Util.convertToFloat(item.desconto), \"\", \"\")\r\n );\r\n this.Itens.controls[index]\r\n .get(\"imposto\")\r\n .setValue(\r\n this.currencyPipe.transform(Util.convertToFloat(item.imposto), \"\", \"\")\r\n );\r\n this.Itens.controls[index]\r\n .get(\"Total\")\r\n .setValue(\r\n this.currencyPipe.transform(Util.convertToFloat(item.total), \"\", \"\")\r\n );\r\n this.Itens.controls[index]\r\n .get(\"TotalGeral\")\r\n .setValue(\r\n this.currencyPipe.transform(\r\n Util.convertToFloat(item.totalGeral),\r\n \"\",\r\n \"\"\r\n )\r\n );\r\n this.Itens.controls[index]\r\n .get(\"SubTotal\")\r\n .setValue(\r\n this.currencyPipe.transform(Util.convertToFloat(item.subTotal), \"\", \"\")\r\n );\r\n }\r\n\r\n async alterarValoresIdItem(itens: any): Promise {\r\n itens.forEach((element, index) => {\r\n this.Itens.controls[index].get(\"IdItem\").setValue(index + 1);\r\n });\r\n\r\n return this.Itens.value;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n

Anulado

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n .\r\n \r\n
#
\r\n
\r\n
Referência
\r\n
\r\n
Designação
\r\n
\r\n
Qtd.
\r\n
\r\n
UN
\r\n
\r\n
Preço ({{ empresa.codMoeda1 }})
\r\n
\r\n
Desc %
\r\n
\r\n
Desc.
\r\n
\r\n
Sub-Total
\r\n
\r\n
IVA %
\r\n
\r\n
IVA
\r\n
\r\n
Total
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Duplicar\r\n \r\n \r\n Inserir texto\r\n \r\n \r\n \r\n
\r\n
\r\n
{{ i + 1 }}
\r\n
\r\n
\r\n \r\n \r\n \r\n folder\r\n \r\n \r\n \r\n\r\n
0\">\r\n \r\n Código\r\n Tipo\r\n Nome\r\n Reten.\r\n Gere\r\n stock\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n {{artigo.codArtigo}}\r\n {{artigo.tipo ?\r\n artigo.tipo : ''}}\r\n {{artigo.artigo}}\r\n \r\n check_small\r\n \r\n \r\n check_small\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n = (item.value.Quantidade * item.value.Preco)\"\r\n (input)=\"calcularValoresItem(i)\" maxDigitos class=\"pr-1\"\r\n decimalMarker=\",\" thousandSeparator=\".\" matInput\r\n formControlName=\"Desconto\" type=\"text\"\r\n [valorMax]=\"item.value.Quantidade * item.value.Preco\" />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Taxa\r\n Cod.\r\n Descrição\r\n \r\n \r\n \r\n \r\n \r\n {{ iva.taxaImposto }}\r\n \r\n \r\n {{ iva.codImposto }}\r\n \r\n {{ iva.descricaoImposto\r\n }}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{facturaForm.value.Itens[i]?.imposto}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{facturaForm.value.Itens[i]?.TotalGeral }}\r\n \r\n \r\n {{ \"0\" | currency: \" \" }}\r\n \r\n
\r\n
\r\n
\r\n {{\r\n facturaForm.value.Itens[i]?.TotalGeral\r\n }}\r\n \r\n {{ \"0\" | currency: \" \" }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {FormBuilder, FormGroup} from '@angular/forms';\r\nimport {ThemeService} from 'app/shared/services/theme.service';\r\n\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'autocomplete',\r\n templateUrl: './autocomplete.html',\r\n styleUrls: ['./autocomplete.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// tslint:disable-next-line:component-class-suffix\r\nexport class Autocomplete implements OnInit, AfterViewInit, OnChanges {\r\n\r\n form: FormGroup;\r\n @Input('lista') lista: any[];\r\n @Input('listaAux') listaAux: any[];\r\n todosbol = false;\r\n @Input('chave') chave = 'nome';\r\n @Input('placeholder') placeholder = 'nome';\r\n @Input('placeholderAux') placeholderAux = 'nome';\r\n @Output('selecionados') selecionados = new EventEmitter();\r\n @Input('itemsSelecionadosReset') itemsSelecionadosReset: any[];\r\n itemsSelecionados: any[];\r\n\r\n semaforo = 0;\r\n stateClose: any;\r\n letInputfocusInState: any;\r\n letInputfocusState: any;\r\n letInputblurState: any;\r\n\r\n letmatSonStaste: any;\r\n simaforoTodos = false;\r\n simaforooptionClick = false;\r\n mostrarIcon = true;\r\n OcultarIcon = true;\r\n visibilidadeIcon = 'hidden';\r\n // @ViewChild('close') close: any;\r\n @ViewChild('componetKey') componetKey: any;\r\n @ViewChild('todosOption') todosOption: any;\r\n @ViewChild('input1') input1: any;\r\n @ViewChild('t') t: any;\r\n @ViewChild('icon') icon: any;\r\n @ViewChild('matform') matform: any;\r\n @ViewChildren('options') options: QueryList;\r\n @ViewChildren('d') d: QueryList;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private themeService: ThemeService\r\n ) {\r\n this.form = this.fb.group({\r\n valor: ['']\r\n });\r\n this.lista = [];\r\n this.listaAux = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n\r\n // this.lista = [{ nome: 'a1' }, { nome: 'b1' }, { nome: 'c1' }, { nome: 'a2' }, { nome: 'b3' }, { nome: 'c2' }, { nome: 'a3' }, { nome: 'b4' }, { nome: 'c3' }, { nome: 'a4' }, { nome: 'b5' }, { nome: 'c4' }\r\n // , { nome: 'a5' }, { nome: 'b6' }, { nome: 'c5' }, { nome: 'a6' }, { nome: 'b7' }, { nome: 'c6' }, { nome: 'a7' }, { nome: 'b8' }, { nome: '7' }, { nome: 'a8' }, { nome: 'b9' }, { nome: 'c8' }];\r\n\r\n this.itemsSelecionados = [];\r\n\r\n }\r\n\r\n async ngAfterViewInit() {\r\n await this.initOptionsState();\r\n\r\n // (this.input1.nativeElement as HTMLInputElement).onblur = ()=>{\r\n // console.log('key', this.componetKey);\r\n // if (this.componetKey._isOpen){\r\n // console.log('key111222', this.componetKey);\r\n // setTimeout(()=>{\r\n\r\n // console.log('key111', this.componetKey);\r\n // this.input1.nativeElement.focus({ focusVisible: true });\r\n // }, 0);\r\n // (this.input1.nativeElement as HTMLInputElement).focus({ focusVisible: true });\r\n // }\r\n // };\r\n\r\n (this.componetKey._elementRef.nativeElement as HTMLInputElement).onclick = () => {\r\n // console.log('key55', this.componetKey)\r\n };\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.itemsSelecionadosReset?.length === 0) {\r\n this.itemsSelecionados = [];\r\n this.placeholder = this.placeholderAux;\r\n if (this.t) {\r\n this.t._checked = false;\r\n }\r\n this.form.get('valor').setValue('');\r\n const checkList: any[] = this.d?.toArray();\r\n\r\n checkList?.forEach((check) => {\r\n check._checked = false;\r\n });\r\n\r\n // this.filterForm.get(this.FORM.min).setValue(this.min);\r\n // this.filterForm.get(this.FORM.minVer).setValue('');\r\n\r\n }\r\n\r\n }\r\n\r\n async checkAll(evento) {\r\n // console.log('IIII000', this.semaforo);\r\n if (this.semaforo < 1) {\r\n // await this.input1.nativeElement.focus({ focusVisible: true });\r\n // (await this.input1.nativeElement as HTMLInputElement).onkeydown();\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n const checkList: any[] = this.d.toArray();\r\n this.itemsSelecionados = [];\r\n if (evento.checked) {\r\n await checkList.forEach((check) => {\r\n check._checked = true;\r\n });\r\n\r\n this.itemsSelecionados = this.listaAux;\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else {\r\n await checkList.forEach((check) => {\r\n check._checked = false;\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n this.updateText();\r\n } else {\r\n this.semaforo = 0;\r\n evento.source._checked = !evento.source._checked;\r\n }\r\n this.semaforo++;\r\n }\r\n\r\n async defi(matform, idOption?: string) {\r\n // console.log('lo2', this.semaforo)\r\n this.semaforo = 0;\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n if (this.semaforo === 0) {\r\n const el: HTMLElement = document.getElementById(idOption) as HTMLElement;\r\n el.click();\r\n }\r\n }\r\n\r\n async selecionar(evento, item, todosOption) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n if (this.semaforo < 1) {\r\n\r\n if (evento.checked) {\r\n await this.itemsSelecionados.push(item);\r\n } else {\r\n\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chave + ''] !== item['' + this.chave + ''];\r\n });\r\n }\r\n\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n } else {\r\n todosOption._checked = false;\r\n }\r\n\r\n this.updateText();\r\n } else {\r\n this.semaforo = 0;\r\n evento.source._checked = !evento.source._checked;\r\n }\r\n\r\n\r\n this.semaforo++;\r\n\r\n\r\n }\r\n\r\n config() {\r\n (this.componetKey._element.nativeElement as HTMLElement).style.position = 'unset !important';\r\n\r\n }\r\n\r\n async initOptionsState() {\r\n (this.icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.letInputfocusInState = this.input1.nativeElement.__zone_symbol__focusinfalse;\r\n this.letInputfocusState = this.input1.nativeElement.__zone_symbol__focusfalse;\r\n this.letInputfocusState = this.input1.nativeElement.__zone_symbol__focusfalse;\r\n // _elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse\r\n\r\n // Blur Effect ...\r\n\r\n this.letmatSonStaste = this.matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse;\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n async ocultarIcon(se, matform, componetKey) {\r\n // this.mostrarIcon = true;\r\n // this.visibilidadeIcon\r\n\r\n // console.log('OOOOO', !componetKey._isOpen);\r\n if (this.simaforooptionClick) {\r\n // this.visibilidadeIcon = 'hidden';\r\n // if(!componetKey._isOpen){\r\n\r\n // this.input1.nativeElement.focus({ focusVisible: false });\r\n // } else {\r\n // this.input1.nativeElement.focus({ focusVisible: true });\r\n\r\n // }\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n await (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chave + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n setTimeout(() => {\r\n // console.log('ERRR', componetKey)\r\n\r\n this.mostrarIcon = true;\r\n this.simaforooptionClick = true;\r\n // this.visibilidadeIcon = 'hidden';\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n }, 100);\r\n } else {\r\n\r\n setTimeout(async () => {\r\n\r\n // console.log('SEEE 2:::');\r\n // console.log('ERRR', componetKey, 'componetKey._isOpen', componetKey._isOpen)\r\n if (await this.OcultarIcon && !componetKey._isOpen) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n }\r\n\r\n this.OcultarIcon = true;\r\n }, 150);\r\n\r\n // console.log('IIIJJJ',)\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n filtrarArtigoClassificacao(event: any) {\r\n // console.log('Che', this.d);\r\n // let authis.d._results\r\n\r\n const termo: string = event.target.value;\r\n this.lista = this.listaAux;\r\n if (termo && termo !== '') {\r\n this.lista = this.lista.filter(item1 => {\r\n return (item1['' + this.chave + ''] as string)?.toLowerCase().includes(termo.toLowerCase()\r\n );\r\n });\r\n }\r\n\r\n this.lista;\r\n setTimeout(() => {\r\n\r\n const checkList: any[] = this.d.toArray();\r\n // checkList.forEach( (item: any) => {\r\n this.itemsSelecionados.forEach((selecionado, i) => {\r\n\r\n this.lista.forEach((item, j) => {\r\n if (selecionado['' + this.chave + ''] === item['' + this.chave + '']) {\r\n checkList[j]._checked = true;\r\n }\r\n\r\n });\r\n // })\r\n });\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n this.t._checked = true;\r\n }\r\n }, 0);\r\n\r\n }\r\n\r\n\r\n // A1\r\n async adicionarClassificacao() {\r\n\r\n }\r\n\r\n activar() {\r\n\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = this.stateClose;\r\n // this.input1._element.nativeElement.focus({ focusVisible: false });\r\n }\r\n\r\n\r\n setIconVisible() {\r\n (this.icon._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n }\r\n\r\n async closeList(se, matform, icon) {\r\n this.placeholder = this.placeholderAux;\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n\r\n // Blur\r\n // this.input1.nativeElement.__zone_symbol__blurfalse = this.letInputblurState;\r\n\r\n (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chave + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n await setTimeout(() => {\r\n this.mostrarIcon = true;\r\n // this.visibilidadeIcon = 'hidden';\r\n\r\n // Blur ...\r\n // (this.input1.nativeElement as HTMLInputElement).blur();\r\n // Blur\r\n // this.input1.nativeElement.__zone_symbol__blurfalse = [];\r\n\r\n (icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n this.updateText();\r\n }, 0);\r\n }\r\n\r\n\r\n private updateText() {\r\n this.placeholder = this.placeholderAux;\r\n\r\n let valor = '';\r\n this.itemsSelecionados.forEach((item, i) => {\r\n valor += item['' + this.chave + ''];\r\n if ((i + 1) < this.itemsSelecionados.length) {\r\n valor += ', ';\r\n }\r\n });\r\n this.form.get('valor').setValue(valor);\r\n valor;\r\n\r\n\r\n // if (this.itemsSelecionados.length === 1) {\r\n // this.placeholder = this.itemsSelecionados[0]['' + this.chave + ''];\r\n // } else if (this.itemsSelecionados.length > 1) {\r\n // this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n // }\r\n }\r\n\r\n async prevDefault(evento: any) {\r\n setTimeout(async () => {\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = false;\r\n }, 0\r\n );\r\n }\r\n\r\n activarSemaforo() {\r\n // this.input1.nativeElement.focus({ focusVisible: true });\r\n this.simaforoTodos = true;\r\n }\r\n\r\n async todos(valor: any, todosbol: boolean) {\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n this.visibilidadeIcon = 'visible';\r\n // await this.input1.nativeElement.focus({ focusVisible: true });\r\n // this.close._element.nativeElement.__zone_symbol__mousedownfalse = false;\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = false;\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n if (!this.simaforoTodos) {\r\n\r\n valor._checked = await !valor._checked;\r\n }\r\n const checkList: any[] = this.d.toArray();\r\n if (todosbol) {\r\n await checkList.forEach((check) => {\r\n check._checked = true;\r\n });\r\n this.itemsSelecionados = await this.lista;\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n this.todosbol = true;\r\n\r\n } else if (!todosbol) {\r\n await checkList.forEach((check) => {\r\n check._checked = false;\r\n });\r\n\r\n this.itemsSelecionados = [];\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n this.todosbol = false;\r\n }\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n }\r\n\r\n async definirIdModulo(item, todosOption: any, valor?: any, index?: number, idOption?: string) {\r\n\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n // this.visibilidadeIcon = 'visible';\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n // this.close._element.nativeElement.__zone_symbol__mousedownfalse = false;\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = false;\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n const checkList: any[] = this.d.toArray();\r\n let bol: boolean = checkList[index]._checked;\r\n todosOption._checked = false;\r\n this.todosbol = false;\r\n\r\n if (await !this.simaforoTodos) {\r\n checkList[index]._checked = await !valor._checked;\r\n bol = await !checkList[index]._checked;\r\n }\r\n\r\n if (!bol) {\r\n await this.itemsSelecionados.push(item);\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else if (bol) {\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chave + ''] !== item['' + this.chave + ''];\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n }\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n\r\n }\r\n\r\n aoSelecClassificacaoPorAutoComplete(event: any) {\r\n\r\n\r\n }\r\n\r\n @HostListener('click')\r\n fg() {\r\n // console.log('JJJJJ')\r\n // this.visibilidadeIcon = 'hidden';\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n\r\n {{placeholder}}\r\n \r\n \r\n arrow_drop_down\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n Todos\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {{item[''+chave+'']}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import {Component, Input} from \"@angular/core\";\r\n\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\nselector: 'btn-sm',\r\n template: `\r\n \r\n `,\r\n styles: [\r\n `\r\n \r\n `\r\n ]\r\n}) export class BtnSmComponent {\r\n@Input() icon = '';\r\n@Input() bg = '';\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatBottomSheetRef } from '@angular/material/bottom-sheet';\r\n\r\n@Component({\r\n selector: 'app-bottom-sheet-share',\r\n templateUrl: './bottom-sheet-share.component.html',\r\n styleUrls: ['./bottom-sheet-share.component.scss'],\r\n})\r\nexport class BottomSheetShareComponent implements OnInit {\r\n constructor(private bottomSheetRef: MatBottomSheetRef) {}\r\n\r\n ngOnInit() {}\r\n\r\n openLink(event: MouseEvent): void {\r\n this.bottomSheetRef.dismiss();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n Share on Facebook\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Tweet About Us!\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Share on LinkedIn\r\n \r\n \r\n\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router, NavigationEnd, ActivatedRoute, ActivatedRouteSnapshot } from '@angular/router';\r\nimport { RoutePartsService } from '../../../shared/services/route-parts.service';\r\nimport { LayoutService } from '../../../shared/services/layout.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-breadcrumb',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss'],\r\n})\r\nexport class BreadcrumbComponent implements OnInit, OnDestroy {\r\n routeParts: any[];\r\n routerEventSub: Subscription;\r\n // public isEnabled: boolean = true;\r\n constructor(\r\n private router: Router,\r\n private routePartsService: RoutePartsService,\r\n private activeRoute: ActivatedRoute,\r\n public layout: LayoutService\r\n ) {\r\n this.routeParts = this.routePartsService.generateRouteParts(this.activeRoute.snapshot);\r\n\r\n this.routerEventSub = this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe((routeChange) => {\r\n this.routeParts = this.routePartsService.generateRouteParts(this.activeRoute.snapshot);\r\n // generate url from parts\r\n this.routeParts.reverse().map((item, i) => {\r\n item.breadcrumb = this.parseText(item);\r\n item.urlSegments.forEach((urlSegment, j) => {\r\n if (j === 0) {\r\n return (item.url = `${urlSegment.path}`);\r\n }\r\n item.url += `/${urlSegment.path}`;\r\n });\r\n if (i === 0) {\r\n return item;\r\n }\r\n // prepend previous part to current part\r\n item.url = `${this.routeParts[i - 1].url}/${item.url}`;\r\n return item;\r\n });\r\n });\r\n }\r\n\r\n ngOnInit() {}\r\n ngOnDestroy() {\r\n if (this.routerEventSub) {\r\n this.routerEventSub.unsubscribe();\r\n }\r\n }\r\n\r\n parseText(part) {\r\n if (!part.breadcrumb) {\r\n return '';\r\n }\r\n part.breadcrumb = part.breadcrumb.replace(/{{([^{}]*)}}/g, (a, b) => {\r\n const r = part.params[b];\r\n return typeof r === 'string' ? r : a;\r\n });\r\n return part.breadcrumb;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n\r\n \r\n

\r\n {{ routeParts[routeParts.length - 1]?.breadcrumb | translate }}\r\n

\r\n \r\n \r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'button-loading',\r\n templateUrl: './button-loading.component.html',\r\n styleUrls: ['./button-loading.component.scss']\r\n})\r\nexport class ButtonLoadingComponent implements OnInit {\r\n\r\n @Input('loading') loading: boolean;\r\n @Input('btnClass') btnClass: string;\r\n @Input('raised') raised: boolean = true;\r\n @Input('loadingText') loadingText = 'Please wait';\r\n @Input('type') type: 'button' | 'submit' = 'submit';\r\n @Input('color') color: 'primary' | 'accent' | 'warn';\r\n\r\n constructor() { \r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","","import {Component, Input} from '@angular/core';\r\n@Component({\r\n// tslint:disable-next-line:component-selector\r\n selector: 'card-add-ficheiro',\r\n template: `\r\n
\r\n
\r\n
\r\n \"icon\r\n \"icon\r\n
\r\n {{titulo}}\r\n
\r\n
\r\n `,\r\n styles: []\r\n})\r\nexport class CardAddFicheiroComponent {\r\n @Input() titulo;\r\n @Input() isFile;\r\n @Input() isImg;\r\n\r\n}\r\n","import {Component, OnInit, Input, Renderer2, EventEmitter, Output} from '@angular/core';\r\nimport { NavigationService } from '../../../shared/services/navigation.service';\r\nimport { LayoutService } from '../../../shared/services/layout.service';\r\nimport PerfectScrollbar from 'perfect-scrollbar';\r\nimport { CustomizerService } from 'app/shared/services/customizer.service';\r\nimport { ThemeService, ITheme } from 'app/shared/services/theme.service';\r\nimport {UtilizadoresService} from '../../services/aplicacao-service/utilizadores.service';\r\nimport {LoginService} from '../../services/aplicacao-service/login.service';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-customizer',\r\n templateUrl: './customizer.component.html',\r\n styleUrls: ['./customizer.component.scss'],\r\n})\r\nexport class CustomizerComponent implements OnInit {\r\n @Input() isCustomizerOpen = false;\r\n @Output() fechar: EventEmitter = new EventEmitter();\r\n viewMode: 'options' | 'json' = 'options';\r\n sidenavTypes = [\r\n {\r\n name: 'Default Menu',\r\n value: 'default-menu',\r\n },\r\n {\r\n name: 'Separator Menu',\r\n value: 'separator-menu',\r\n },\r\n {\r\n name: 'Icon Menu',\r\n value: 'icon-menu',\r\n },\r\n ];\r\n sidebarColors: any[];\r\n topbarColors: any[];\r\n\r\n layoutConf;\r\n selectedMenu = 'icon-menu';\r\n selectedLayout: string;\r\n isTopbarFixed = false;\r\n isFooterFixed = false;\r\n isRTL = false;\r\n egretThemes: ITheme[];\r\n perfectScrollbarEnabled = true;\r\n\r\n constructor(\r\n private navService: NavigationService,\r\n public layout: LayoutService,\r\n private themeService: ThemeService,\r\n public customizer: CustomizerService,\r\n private renderer: Renderer2,\r\n private snackBar: MatSnackBar,\r\n private utilizadorService: UtilizadoresService,\r\n private loginService: LoginService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.layoutConf = this.layout.layoutConf;\r\n this.selectedLayout = this.layoutConf.navigationPos;\r\n this.isTopbarFixed = this.layoutConf.topbarFixed;\r\n this.isRTL = this.layoutConf.dir === 'rtl';\r\n this.egretThemes = this.themeService.egretThemes;\r\n }\r\n changeTheme(theme) {\r\n // this.themeService.changeTheme(theme);\r\n this.layout.publishLayoutChange({ matTheme: theme.name });\r\n }\r\n changeLayoutStyle(data) {\r\n this.layout.publishLayoutChange({ navigationPos: this.selectedLayout });\r\n }\r\n changeSidenav(data) {\r\n this.navService.publishNavigationChange(data.value);\r\n }\r\n toggleBreadcrumb(data) {\r\n this.layout.publishLayoutChange({ useBreadcrumb: data.checked });\r\n }\r\n toggleTopbarFixed(data) {\r\n this.layout.publishLayoutChange({ topbarFixed: data.checked });\r\n }\r\n toggleDir(data) {\r\n let dir = data.checked ? 'rtl' : 'ltr';\r\n this.layout.publishLayoutChange({ dir: dir });\r\n }\r\n tooglePerfectScrollbar(data) {\r\n this.layout.publishLayoutChange({ perfectScrollbar: this.perfectScrollbarEnabled });\r\n }\r\n\r\n\r\n fecharCustomizer() {\r\n if (this.layoutConf) {\r\n const novoLayout = JSON.stringify(this.layoutConf);\r\n const modelo = {\r\n IdUtilizador: this.loginService.decodedToken?.nameid,\r\n Layout: novoLayout\r\n };\r\n\r\n this.utilizadorService.editarLayoutUtilizador(modelo).subscribe(res => {\r\n }, (error) => {\r\n this.getMensagemErro(error.error);\r\n console.log('Falha ao editar layout', error.error.mensagem);\r\n });\r\n }\r\n this.fechar.emit(false);\r\n }\r\n\r\n getMensagem(mensagem: string) {\r\n this.snackBar.open(mensagem, '✔️', {\r\n verticalPosition: 'top',\r\n duration: 3000,\r\n });\r\n }\r\n getMensagemErro(mensagem: string) {\r\n this.snackBar.open(mensagem, '♦', {\r\n verticalPosition: 'top',\r\n duration: 5000,\r\n });\r\n }\r\n\r\n reporDefault() {\r\n if (localStorage.getItem('_userTheme')) {\r\n localStorage.removeItem('_userTheme');\r\n window.location.reload();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n close\r\n \r\n
\r\n
\r\n \r\n
{{this.layoutConf | json}}
\r\n
\r\n
\r\n \r\n help\r\n
\r\n
\r\n\r\n \r\n

Customize the template then copy configuration json.

\r\n

Personalize o layout do seu Kiami.

\r\n
\r\n
Layouts
\r\n \r\n Navegação Top \r\n Navegação Lateral \r\n \r\n
\r\n\r\n \r\n\r\n
\r\n
Sidebar colors
\r\n
\r\n \r\n check\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Material Themes
\r\n
\r\n
\r\n check\r\n
\r\n
\r\n
\r\n\r\n
\r\n
Footer Colors
\r\n
\r\n Fixed Footer\r\n
\r\n\r\n
\r\n \r\n check\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n
Posição do menu
\r\n
\r\n Esquerda para Direta\r\n
\r\n \r\n \r\n\r\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {Documentos} from '../../models/financas/documentos/documentos';\r\nimport {FinancasService} from '@services/financas/financas.service';\r\nimport {NotificacaoService} from '@services/notificacao/notificacao.service';\r\nimport {Util} from '../../models/generico/util';\r\nimport {Subscription} from 'rxjs';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {AnularComponent} from '../../../views/facturacao/modais/anular/anular.component';\r\n\r\n@Component({\r\n selector: 'app-documentos',\r\n templateUrl: './documentos.component.html',\r\n styleUrls: ['./documentos.component.scss']\r\n})\r\nexport class DocumentosComponent implements OnInit, OnDestroy {\r\n @Input() documentos: Documentos[] = [];\r\n private subscriptions: Subscription[] = [];\r\n loading = false;\r\n\r\n constructor(\r\n private _notificacao: NotificacaoService,\r\n private dialog: MatDialog,\r\n private financaService: FinancasService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n downloadPDF(documento: Documentos) {\r\n this.loading = true;\r\n this.subscriptions.push(\r\n (!documento.codArea ? this.financaService.getDocumentoComprasImpressao(documento.idDocumento) : this.financaService\r\n .getDocumentoFAImpressao(documento.idDocumento, 'A4'))\r\n .subscribe((res: any) => {\r\n this.loading = false;\r\n Util.downloadAnexo(res.objecto, documento.tipoDocumento + ' - ' + documento.codDocumento);\r\n },\r\n err => {\r\n this.loading = false;\r\n this._notificacao.notificar(err.error?.mensagem || `Falha ao fazer o download do documento \"${documento.codDocumento}\"`);\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n anular(doc: Documentos) {\r\n const modalRef = this.dialog.open(AnularComponent, {\r\n minWidth: '40vw',\r\n data: {\r\n doc,\r\n tipo: {id: doc.idTipoDocumento, tipo: doc.tipoDocumento},\r\n codigo: doc.codTipoDocumento,\r\n idDocumento: doc.idDocumento,\r\n origem: 'FA'\r\n }\r\n });\r\n\r\n this.subscriptions.push(\r\n modalRef.afterClosed().subscribe(res => {\r\n if (!res.execucao) {\r\n return;\r\n }\r\n if (res.msg) {\r\n doc.codEstadoDocumento = 'A';\r\n doc.estadoDocumento = 'Anulado';\r\n this._notificacao.notificar(res.msg, true);\r\n } else {\r\n this._notificacao.notificar(res.msg.mensage);\r\n }\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n Tipo Documento\r\n
\r\n
\r\n Documento\r\n
\r\n
\r\n Emissão\r\n
\r\n
\r\n Vencimento\r\n
\r\n
\r\n Total\r\n
\r\n
\r\n Emitido Por\r\n
\r\n
\r\n Estado\r\n
\r\n
\r\n Anexo\r\n
\r\n
\r\n \r\n
\r\n
\r\n

Sem documentos para\r\n mostrar

\r\n\r\n
\r\n
\r\n {{ doc.tipoDocumento }}\r\n
\r\n \r\n
{{ doc.codDocumento }}
\r\n
\r\n
\r\n {{ doc.dataDocumento | date: 'dd-MM-yyyy' }}\r\n
\r\n
\r\n {{ doc.dataVencimento | date: 'dd-MM-yyyy' }}\r\n
\r\n
\r\n {{ doc.total | currency : '':'' }}\r\n
\r\n
\r\n {{ doc.utilizador?.username }}\r\n
\r\n
\r\n \r\n {{ doc.estadoDocumento }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'egret-notifications2',\r\n templateUrl: './egret-notifications2.component.html',\r\n styleUrls: ['./egret-notifications2.component.scss']\r\n})\r\nexport class EgretNotifications2Component implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n

Test

\r\n
","import { Injectable } from \"@angular/core\";\r\nimport { EgretSidebarComponent } from \"./egret-sidebar.component\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class EgretSidebarHelperService {\r\n sidebarList: EgretSidebarComponent[];\r\n\r\n constructor() {\r\n this.sidebarList = [];\r\n }\r\n\r\n setSidebar(name, sidebar): void {\r\n this.sidebarList[name] = sidebar;\r\n }\r\n\r\n getSidebar(name): any {\r\n return this.sidebarList[name];\r\n }\r\n\r\n removeSidebar(name) {\r\n if (!this.sidebarList[name]) {\r\n console.warn(`The sidebar with name '${name}' doesn't exist.`);\r\n }\r\n\r\n // remove sidebar\r\n delete this.sidebarList[name];\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Input,\r\n HostBinding,\r\n OnDestroy,\r\n HostListener,\r\n Directive,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef\r\n} from \"@angular/core\";\r\nimport { MatchMediaService } from \"app/shared/services/match-media.service\";\r\nimport { MediaObserver } from \"@angular/flex-layout\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { EgretSidebarHelperService } from \"./egret-sidebar-helper.service\";\r\n\r\n@Component({\r\n selector: \"egret-sidebar\",\r\n templateUrl: \"./egret-sidebar.component.html\",\r\n styleUrls: [\"./egret-sidebar.component.scss\"]\r\n})\r\nexport class EgretSidebarComponent implements OnInit, OnDestroy {\r\n // Name\r\n @Input()\r\n name: string;\r\n\r\n // right\r\n @Input()\r\n @HostBinding(\"class.position-right\")\r\n right: boolean;\r\n\r\n // Open\r\n @HostBinding(\"class.open\")\r\n opened: boolean;\r\n\r\n @HostBinding(\"class.sidebar-locked-open\")\r\n sidebarLockedOpen: boolean;\r\n\r\n //mode\r\n @HostBinding(\"class.is-over\")\r\n isOver: boolean;\r\n\r\n private backdrop: HTMLElement | null = null;\r\n\r\n private lockedBreakpoint = \"gt-sm\";\r\n private unsubscribeAll: Subject;\r\n\r\n constructor(\r\n private matchMediaService: MatchMediaService,\r\n private mediaObserver: MediaObserver,\r\n private sidebarHelperService: EgretSidebarHelperService,\r\n private _renderer: Renderer2,\r\n private _elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n this.unsubscribeAll = new Subject();\r\n }\r\n\r\n ngOnInit() {\r\n this.sidebarHelperService.setSidebar(this.name, this);\r\n\r\n if (this.mediaObserver.isActive(this.lockedBreakpoint)) {\r\n this.sidebarLockedOpen = true;\r\n this.opened = true;\r\n } else {\r\n this.sidebarLockedOpen = false;\r\n this.opened = false;\r\n }\r\n\r\n this.matchMediaService.onMediaChange\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n // console.log(\"medua sub\");\r\n if (this.mediaObserver.isActive(this.lockedBreakpoint)) {\r\n this.sidebarLockedOpen = true;\r\n this.opened = true;\r\n } else {\r\n this.sidebarLockedOpen = false;\r\n this.opened = false;\r\n }\r\n });\r\n }\r\n\r\n open() {\r\n this.opened = true;\r\n if (!this.sidebarLockedOpen && !this.backdrop) {\r\n this.showBackdrop();\r\n }\r\n }\r\n\r\n close() {\r\n this.opened = false;\r\n this.hideBackdrop();\r\n }\r\n\r\n toggle() {\r\n if (this.opened) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n showBackdrop() {\r\n this.backdrop = this._renderer.createElement(\"div\");\r\n this.backdrop.classList.add(\"egret-sidebar-overlay\");\r\n\r\n this._renderer.appendChild(\r\n this._elementRef.nativeElement.parentElement,\r\n this.backdrop\r\n );\r\n\r\n // Close sidebar onclick\r\n this.backdrop.addEventListener(\"click\", () => {\r\n this.close();\r\n });\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n hideBackdrop() {\r\n if (this.backdrop) {\r\n this.backdrop.parentNode.removeChild(this.backdrop);\r\n this.backdrop = null;\r\n }\r\n\r\n this.cdr.markForCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n this.sidebarHelperService.removeSidebar(this.name);\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: \"[egretSidebarToggler]\"\r\n})\r\nexport class EgretSidebarTogglerDirective {\r\n @Input(\"egretSidebarToggler\")\r\n public id: any;\r\n\r\n constructor(private egretSidebarHelperService: EgretSidebarHelperService) {}\r\n\r\n @HostListener(\"click\")\r\n onClick() {\r\n this.egretSidebarHelperService.getSidebar(this.id).toggle();\r\n }\r\n}\r\n","
\r\n \r\n
","import { Injectable, EventEmitter } from '@angular/core';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DefinirDadosDoFooterService {\r\n\r\n definirDadosDoFooterService: EventEmitter = new EventEmitter();\r\n constructor() { \r\n\r\n }\r\n\r\n definirValores(dados: any) {\r\n this.definirDadosDoFooterService.emit(dados);\r\n }\r\n\r\n\r\n}\r\n","import {Component, OnDestroy, OnInit} from '@angular/core';\r\nimport {Aplicacao} from '../../models/aplicacao/aplicacao';\r\nimport {AplicacaoService} from '../../services/aplicacao-service/aplicacao.service';\r\nimport {AppStoreService} from '../../services/aplicacao-service/data/app-store.service';\r\nimport {Subscription} from 'rxjs';\r\nimport { I } from '@angular/cdk/keycodes';\r\nimport { DefinirDadosDoFooterService } from './definir-dados-do -footer/definir-dados-do-footer.service';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit, OnDestroy {\r\n aplicacao: Aplicacao;\r\n licencaEmpresa = '...';\r\n subscricoes: Subscription[] = [];\r\n\r\n\r\n constructor(\r\n private definirDadosDoFooterService: DefinirDadosDoFooterService,\r\n private aplicacaoService: AplicacaoService\r\n ) {}\r\n\r\n\r\n ngOnInit() {\r\n this.definirDadosDoFooterService.definirDadosDoFooterService.subscribe({\r\n next: (obj: any) => {\r\n if (obj) {\r\n this.aplicacao = obj.aplicacao;\r\n this.aplicacaoService.$dadosApp.next(this.aplicacao);\r\n this.licencaEmpresa = obj?.licencaEmpresa;\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscricoes.forEach((sub: Subscription) => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

\r\n Kiami {{aplicacao?.tipoLicenca}} - Licenciado a: {{aplicacao?.licencaEmpresa}}\r\n

\r\n

Licenciado a: {{licencaEmpresa}}

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

\r\n Desenvolvido por  KiamiSoft\r\n

\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n Instalação de {{aplicacao?.tipoInstalacao}}\r\n \r\n
\r\n
\r\n
\r\n\r\n","\r\nexport interface PaisDialCodeDto {\r\n codPais?: string;\r\n idIdioma?: number | null;\r\n idOpcCodigoPostal?: number;\r\n idPais?: number;\r\n nacionalidade?: string;\r\n naturalidade?: string;\r\n ordem?: string | null;\r\n pais?: string;\r\n indicativo?: string;\r\n}\r\n\r\nexport const PAISES_DB: PaisDialCodeDto[] = [\r\n {idPais:6, codPais:\"AO\", pais:\"Angola\",nacionalidade:\"Angolana\",naturalidade:\"Angolana\",indicativo:\"+244\"},\r\n {idPais:1,codPais:\"AF\",pais:\"Afeganistão\",nacionalidade:\"Afegã\",naturalidade:\"Afegã\",indicativo:\"+93\"},\r\n {idPais:2,codPais:\"ZA\",pais:\"África do Sul\",nacionalidade:\"Sul- Africana\",naturalidade:\"Sul- Africana\",indicativo:\"+27\"},\r\n {idPais:3,codPais:\"AL\",pais:\"Albânia\",nacionalidade:\"Albanês\",naturalidade:\"Albanês\",indicativo:\"+355\"},\r\n {idPais:4,codPais:\"DE\",pais:\"Alemanha\",nacionalidade:\"Alemã\",naturalidade:\"Alemã\",indicativo:\"+49\"},\r\n {idPais:5,codPais:\"AD\",pais:\"Andorra\",nacionalidade:\"Andorrana\",naturalidade:\"Andorrana\",indicativo:\"+376\"},\r\n {idPais:7,codPais:\"AG\",pais:\"Antiga e Barbuda\",nacionalidade:\"Antiguana\",naturalidade:\"Antiguana\",indicativo:\"+1268\"},\r\n {idPais:8,codPais:\"SA\",pais:\"Arábia Saudita\",nacionalidade:\"Árabe \",naturalidade:\"Árabe \",indicativo:\"+966\"},\r\n {idPais:9,codPais:\"DZ\",pais:\"Argélia\",nacionalidade:\"Argelina\",naturalidade:\"Argelina\",indicativo:\"+213\"},\r\n {idPais:10,codPais:\"AR\",pais:\"Argentina\",nacionalidade:\"Argentina\",naturalidade:\"Argentina\",indicativo:\"+54\"},\r\n {idPais:11,codPais:\"AM\",pais:\"Arménia\",nacionalidade:\"Armenia\",naturalidade:\"Armenia\",indicativo:\"+374\"},\r\n {idPais:12,codPais:\"AU\",pais:\"Austrália\",nacionalidade:\"Australiana\",naturalidade:\"Australiana\",indicativo:\"+61\"},\r\n {idPais:13,codPais:\"AT\",pais:\"Áustria\",nacionalidade:\"Austriaca\",naturalidade:\"Austriaca\",indicativo:\"+43\"},\r\n {idPais:14,codPais:\"AZ\",pais:\"Azerbaijão\",nacionalidade:\"Azeri\",naturalidade:\"Azeri\",indicativo:\"+994\"},\r\n {idPais:15,codPais:\"BS\",pais:\"Bahamas\",nacionalidade:\"Bahamense\",naturalidade:\"Bahamense\",indicativo:\"+1242\"},\r\n {idPais:16,codPais:\"BD\",pais:\"Bangladesh\",nacionalidade:\"Bangladês\",naturalidade:\"Bangladês\",indicativo:\"+880\"},\r\n {idPais:17,codPais:\"BB\",pais:\"Barbados\",nacionalidade:\"Barbadiana\",naturalidade:\"Barbadiana\",indicativo:\"+1246\"},\r\n {idPais:18,codPais:\"BH\",pais:\"Barém\",nacionalidade:\"Baremita\",naturalidade:\"Baremita\",indicativo:\"+973\"},\r\n {idPais:19,codPais:\"BE\",pais:\"Bélgica\",nacionalidade:\"Belga\",naturalidade:\"Belga\",indicativo:\"+32\"},\r\n {idPais:20,codPais:\"BZ\",pais:\"Belize\",nacionalidade:\"Belizenha\",naturalidade:\"Belizenha\",indicativo:\"+501\"},\r\n {idPais:21,codPais:\"BJ\",pais:\"Benim\",nacionalidade:\"Beninense\",naturalidade:\"Beninense\",indicativo:\"+229\"},\r\n {idPais:22,codPais:\"BY\",pais:\"Bielorrússia\",nacionalidade:\"Bielorussa\",naturalidade:\"Bielorussa\",indicativo:\"+375\"},\r\n {idPais:23,codPais:\"BO\",pais:\"Bolívia\",nacionalidade:\"Boliviana\",naturalidade:\"Boliviana\",indicativo:\"+591\"},\r\n {idPais:24,codPais:\"BA\",pais:\"Bósnia e Herzegovina\",nacionalidade:\"Bósnia\",naturalidade:\"Bósnia\",indicativo:\"+387\"},\r\n {idPais:25,codPais:\"BW\",pais:\"Botsuana\",nacionalidade:\"Bechuana\",naturalidade:\"Bechuana\",indicativo:\"+267\"},\r\n {idPais:26,codPais:\"BR\",pais:\"Brasil\",nacionalidade:\"Brasileira\",naturalidade:\"Brasileira\",indicativo:\"+55\"},\r\n {idPais:27,codPais:\"BN\",pais:\"Brunei\",nacionalidade:\"Bruneana\",naturalidade:\"Bruneana\",indicativo:\"+673\"},\r\n {idPais:28,codPais:\"BG\",pais:\"Bulgária\",nacionalidade:\"Búlgara\",naturalidade:\"Búlgara\",indicativo:\"+359\"},\r\n {idPais:29,codPais:\"BF\",pais:\"Burquina Faso\",nacionalidade:\"Burquinense\",naturalidade:\"Burquinense\",indicativo:\"+226\"},\r\n {idPais:30,codPais:\"BI\",pais:\"Burúndi\",nacionalidade:\"Burundês\",naturalidade:\"Burundês\",indicativo:\"+257\"},\r\n {idPais:31,codPais:\"BT\",pais:\"Butão\",nacionalidade:\"Butanense\",naturalidade:\"Butanense\",indicativo:\"+975\"},\r\n {idPais:32,codPais:\"CV\",pais:\"Cabo Verde\",nacionalidade:\"Cabo-veridiana\",naturalidade:\"Cabo-veridiana\",indicativo:\"+238\"},\r\n {idPais:33,codPais:\"CM\",pais:\"Camarões\",nacionalidade:\"Camaronense\",naturalidade:\"Camaronense\",indicativo:\"+237\"},\r\n {idPais:34,codPais:\"KH\",pais:\"Camboja\",nacionalidade:\"Cambojana\",naturalidade:\"Cambojana\",indicativo:\"+855\"},\r\n {idPais:35,codPais:\"CA\",pais:\"Canadá\",nacionalidade:\"Canadense\",naturalidade:\"Canadense\",indicativo:\"+1\"},\r\n {idPais:36,codPais:\"QA\",pais:\"Catar\",nacionalidade:\"Catarense\",naturalidade:\"Catarense\",indicativo:\"+974\"},\r\n {idPais:37,codPais:\"KZ\",pais:\"Cazaquistão\",nacionalidade:\"Cazaque\",naturalidade:\"Cazaque\",indicativo:\"+77\"},\r\n {idPais:38,codPais:\"TD\",pais:\"Chade\",nacionalidade:\"Chadiana\",naturalidade:\"Chadiana\",indicativo:\"+235\"},\r\n {idPais:39,codPais:\"CL\",pais:\"Chile\",nacionalidade:\"Chilena\",naturalidade:\"Chilena\",indicativo:\"+56\"},\r\n {idPais:40,codPais:\"CN\",pais:\"China\",nacionalidade:\"Chinesa\",naturalidade:\"Chinesa\",indicativo:\"+86\"},\r\n {idPais:41,codPais:\"CY\",pais:\"Chipre\",nacionalidade:\"Cipriota\",naturalidade:\"Cipriota\",indicativo:\"+357\"},\r\n {idPais:42,codPais:\"CO\",pais:\"Colômbia\",nacionalidade:\"Colombiana\",naturalidade:\"Colombiana\",indicativo:\"+57\"},\r\n {idPais:43,codPais:\"KM\",pais:\"Comores\",nacionalidade:\"Comoriana\",naturalidade:\"Comoriana\",indicativo:\"+269\"},\r\n {idPais:44,codPais:\"CG\",pais:\"Congo-Brazzaville\",nacionalidade:\"Congolesa\",naturalidade:\"Congolesa\",indicativo:\"+242\"},\r\n {idPais:45,codPais:\"KP\",pais:\"Coreia do Norte\",nacionalidade:\"Norte-Coreana\",naturalidade:\"Norte-Coreana\",indicativo:\"+850\"},\r\n {idPais:46,codPais:\"KR\",pais:\"Coreia do Sul\",nacionalidade:\"Sul-Coreana\",naturalidade:\"Sul-Coreana\",indicativo:\"+82\"},\r\n {idPais:47,codPais:\"XK\",pais:\"Cosovo\",nacionalidade:\"Cosovar\",naturalidade:\"Cosovar\",indicativo:'+383'},\r\n {idPais:48,codPais:\"CI\",pais:\"Costa do Marfim\",nacionalidade:\"Costa Marfinense\",naturalidade:\"Costa Marfinense\",indicativo:\"+225\"},{idPais:49,codPais:\"CR\",pais:\"Costa Rica\",nacionalidade:\"Costa-riquenha\",naturalidade:\"Costa-riquenha\",indicativo:\"+506\"},{idPais:50,codPais:\"HR\",pais:\"Croácia\",nacionalidade:\"Croata\",naturalidade:\"Croata\",indicativo:\"+385\"},{idPais:51,codPais:\"KW\",pais:\"Cuaite\",nacionalidade:\"Cuaitiana\",naturalidade:\"Cuaitiana\",indicativo:\"+965\"},{idPais:52,codPais:\"CU\",pais:\"Cuba\",nacionalidade:\"Cubana\",naturalidade:\"Cubana\",indicativo:\"+53\"},{idPais:53,codPais:\"DK\",pais:\"Dinamarca\",nacionalidade:\"Dinamarquesa\",naturalidade:\"Dinamarquesa\",indicativo:\"+45\"},{idPais:54,codPais:\"DM\",pais:\"Dominica\",nacionalidade:\"Dominiquense\",naturalidade:\"Dominiquense\",indicativo:\"+1767\"},{idPais:55,codPais:\"EG\",pais:\"Egito\",nacionalidade:\"Egípcia\",naturalidade:\"Egípcia\",indicativo:\"+20\"},{idPais:56,codPais:\"AE\",pais:\"Emirados Árabes Unidos\",nacionalidade:\"Árabe \",naturalidade:\"Árabe \",indicativo:\"+971\"},{idPais:57,codPais:\"EC\",pais:\"Equador\",nacionalidade:\"Equatoriana\",naturalidade:\"Equatoriana\",indicativo:\"+593\"},{idPais:58,codPais:\"ER\",pais:\"Eritreia\",nacionalidade:\"Eritreu\",naturalidade:\"Eritreu\",indicativo:\"+291\"},{idPais:59,codPais:\"SK\",pais:\"Eslováquia\",nacionalidade:\"Eslovaca\",naturalidade:\"Eslovaca\",indicativo:\"+421\"},{idPais:60,codPais:\"SI\",pais:\"Eslovénia\",nacionalidade:\"Eslovena\",naturalidade:\"Eslovena\",indicativo:\"+386\"},{idPais:61,codPais:\"ES\",pais:\"Espanha\",nacionalidade:\"Espanhola\",naturalidade:\"Espanhola\",indicativo:\"+34\"},{idPais:62,codPais:\"PS\",pais:\"Estado da Palestina\",nacionalidade:\"Palestina \",naturalidade:\"Palestina \",indicativo:\"+970\"},{idPais:63,codPais:\"US\",pais:\"Estados Unidos\",nacionalidade:\"Americana \",naturalidade:\"Americana \",indicativo:\"+1\"},{idPais:64,codPais:\"EE\",pais:\"Estónia\",nacionalidade:\"Estoniana\",naturalidade:\"Estoniana\",indicativo:\"+372\"},{idPais:65,codPais:\"ET\",pais:\"Etiópia\",nacionalidade:\"Etíope\",naturalidade:\"Etíope\",indicativo:\"+251\"},{idPais:66,codPais:\"FJ\",pais:\"Fiji\",nacionalidade:\"Fijiana \",naturalidade:\"Fijiana \",indicativo:\"+679\"},{idPais:67,codPais:\"PH\",pais:\"Filipinas\",nacionalidade:\"Filipina\",naturalidade:\"Filipina\",indicativo:\"+63\"},{idPais:68,codPais:\"FI\",pais:\"Finlândia\",nacionalidade:\"Filandesa\",naturalidade:\"Filandesa\",indicativo:\"+358\"},{idPais:69,codPais:\"FR\",pais:\"França\",nacionalidade:\"Francesa\",naturalidade:\"Francesa\",indicativo:\"+33\"},{idPais:70,codPais:\"GA\",pais:\"Gabão\",nacionalidade:\"Gabonense\",naturalidade:\"Gabonense\",indicativo:\"+241\"},{idPais:71,codPais:\"GM\",pais:\"Gâmbia\",nacionalidade:\"Gambiana\",naturalidade:\"Gambiana\",indicativo:\"+220\"},{idPais:72,codPais:\"GH\",pais:\"Gana\",nacionalidade:\"Ganense\",naturalidade:\"Ganense\",indicativo:\"+233\"},{idPais:73,codPais:\"GE\",pais:\"Geórgia\",nacionalidade:\"Geórgica\",naturalidade:\"Geórgica\",indicativo:\"+995\"},{idPais:74,codPais:\"GD\",pais:\"Granada\",nacionalidade:\"Granadina\",naturalidade:\"Granadina\",indicativo:\"+1473\"},{idPais:75,codPais:\"GR\",pais:\"Grécia\",nacionalidade:\"Grega\",naturalidade:\"Grega\",indicativo:\"+30\"},{idPais:76,codPais:\"GT\",pais:\"Guatemala\",nacionalidade:\"Guatemalteca\",naturalidade:\"Guatemalteca\",indicativo:\"+502\"},{idPais:77,codPais:\"GY\",pais:\"Guiana\",nacionalidade:\"Guianense\",naturalidade:\"Guianense\",indicativo:\"+595\"},{idPais:78,codPais:\"GN\",pais:\"Guiné\",nacionalidade:\"Guineana\",naturalidade:\"Guineana\",indicativo:\"+224\"},{idPais:79,codPais:\"GQ\",pais:\"Guiné Equatorial\",nacionalidade:\"Guiné-Equatoriana\",naturalidade:\"Guiné-Equatoriana\",indicativo:\"+240\"},{idPais:80,codPais:\"GW\",pais:\"Guiné-Bissau\",nacionalidade:\"Guineense\",naturalidade:\"Guineense\",indicativo:\"+245\"},{idPais:81,codPais:\"HT\",pais:\"Haiti\",nacionalidade:\"Haitiana\",naturalidade:\"Haitiana\",indicativo:\"+509\"},{idPais:82,codPais:\"HN\",pais:\"Honduras\",nacionalidade:\"Hondurenha\",naturalidade:\"Hondurenha\",indicativo:\"+504\"},{idPais:83,codPais:\"HU\",pais:\"Hungria\",nacionalidade:\"Hungara\",naturalidade:\"Hungara\",indicativo:\"+36\"},{idPais:84,codPais:\"YE\",pais:\"Iémen\",nacionalidade:\"Iemenita\",naturalidade:\"Iemenita\",indicativo:\"+967\"},{idPais:198,codPais:\"KY\",pais:\"Ilhas Caimão\",nacionalidade:\"Caimanense\",naturalidade:\"Caimanense\",indicativo:\"+ 345\"},{idPais:85,codPais:\"MH\",pais:\"Ilhas Marechal\",nacionalidade:\"Marechalina\",naturalidade:\"Marechalina\",indicativo:\"+692\"},{idPais:86,codPais:\"IN\",pais:\"Índia\",nacionalidade:\"Indiana\",naturalidade:\"Indiana\",indicativo:\"+91\"},{idPais:87,codPais:\"ID\",pais:\"Indonésia\",nacionalidade:\"Indonesa\",naturalidade:\"Indonesa\",indicativo:\"+62\"},{idPais:88,codPais:\"IR\",pais:\"Irão\",nacionalidade:\"Iraniana\",naturalidade:\"Iraniana\",indicativo:\"+98\"},{idPais:89,codPais:\"IQ\",pais:\"Iraque\",nacionalidade:\"Iraquiana\",naturalidade:\"Iraquiana\",indicativo:\"+964\"},{idPais:90,codPais:\"IE\",pais:\"Irlanda\",nacionalidade:\"Irlandesa\",naturalidade:\"Irlandesa\",indicativo:\"+353\"},{idPais:91,codPais:\"IS\",pais:\"Islândia\",nacionalidade:\"Islandesa\",naturalidade:\"Islandesa\",indicativo:\"+354\"},{idPais:92,codPais:\"IL\",pais:\"Israel\",nacionalidade:\"Israelense\",naturalidade:\"Israelense\",indicativo:\"+972\"},{idPais:93,codPais:\"IT\",pais:\"Itália\",nacionalidade:\"Italiana\",naturalidade:\"Italiana\",indicativo:\"+39\"},{idPais:94,codPais:\"JM\",pais:\"Jamaica\",nacionalidade:\"Jamaicana\",naturalidade:\"Jamaicana\",indicativo:\"+1876\"},{idPais:95,codPais:\"JP\",pais:\"Japão\",nacionalidade:\"Japonesa\",naturalidade:\"Japonesa\",indicativo:\"+81\"},{idPais:96,codPais:\"DJ\",pais:\"Jibuti\",nacionalidade:\"Jibutiana\",naturalidade:\"Jibutiana\",indicativo:\"+253\"},{idPais:97,codPais:\"JO\",pais:\"Jordânia\",nacionalidade:\"Jordão\",naturalidade:\"Jordão\",indicativo:\"+962\"},{idPais:98,codPais:\"LA\",pais:\"Laos\",nacionalidade:\"Laosiana\",naturalidade:\"Laosiana\",indicativo:\"+856\"},{idPais:99,codPais:\"LS\",pais:\"Lesoto\",nacionalidade:\"Lesotiana\",naturalidade:\"Lesotiana\",indicativo:\"+266\"},{idPais:100,codPais:\"LV\",pais:\"Letónia\",nacionalidade:\"Letoniana\",naturalidade:\"Letoniana\",indicativo:\"+371\"},{idPais:101,codPais:\"LB\",pais:\"Líbano\",nacionalidade:\"Libanesa\",naturalidade:\"Libanesa\",indicativo:\"+961\"},{idPais:102,codPais:\"LR\",pais:\"Libéria\",nacionalidade:\"Liberiana\",naturalidade:\"Liberiana\",indicativo:\"+231\"},{idPais:103,codPais:\"LY\",pais:\"Líbia\",nacionalidade:\"Líbia\",naturalidade:\"Líbia\",indicativo:\"+218\"},{idPais:104,codPais:\"LI\",pais:\"Listenstaine\",nacionalidade:\"Listenstainense\",naturalidade:\"Listenstainense\",indicativo:\"+423\"},{idPais:105,codPais:\"LT\",pais:\"Lituânia\",nacionalidade:\"Lituana\",naturalidade:\"Lituana\",indicativo:\"+370\"},{idPais:106,codPais:\"LU\",pais:\"Luxemburgo\",nacionalidade:\"Luxemburguesa\",naturalidade:\"Luxemburguesa\",indicativo:\"+352\"},{idPais:107,codPais:\"MK\",pais:\"Macedónia\",nacionalidade:\"Macedônia\",naturalidade:\"Macedônia\",indicativo:\"+389\"},{idPais:108,codPais:\"MG\",pais:\"Madagáscar\",nacionalidade:\"Madagascarense\",naturalidade:\"Madagascarense\",indicativo:\"+261\"},{idPais:109,codPais:\"MY\",pais:\"Malásia\",nacionalidade:\"Malaia\",naturalidade:\"Malaia\",indicativo:\"+60\"},{idPais:110,codPais:\"MW\",pais:\"Maláui\",nacionalidade:\"Malauiana\",naturalidade:\"Malauiana\",indicativo:\"+265\"},{idPais:111,codPais:\"MV\",pais:\"Maldivas\",nacionalidade:\"Maldiva\",naturalidade:\"Maldiva\",indicativo:\"+960\"},{idPais:112,codPais:\"ML\",pais:\"Mali\",nacionalidade:\"Maliana\",naturalidade:\"Maliana\",indicativo:\"+223\"},{idPais:113,codPais:\"MT\",pais:\"Malta\",nacionalidade:\"Maltês\",naturalidade:\"Maltês\",indicativo:\"+356\"},{idPais:114,codPais:\"MA\",pais:\"Marrocos\",nacionalidade:\"Marroquina\",naturalidade:\"Marroquina\",indicativo:\"+212\"},{idPais:115,codPais:\"MU\",pais:\"Maurícia\",nacionalidade:\"Mauriciana\",naturalidade:\"Mauriciana\",indicativo:\"+230\"},{idPais:116,codPais:\"MR\",pais:\"Mauritânia\",nacionalidade:\"Mauritana\",naturalidade:\"Mauritana\",indicativo:\"+222\"},{idPais:117,codPais:\"MX\",pais:\"México\",nacionalidade:\"Mexicana\",naturalidade:\"Mexicana\",indicativo:\"+52\"},{idPais:118,codPais:\"MM\",pais:\"Mianmar\",nacionalidade:\"Birmanesa\",naturalidade:\"Birmanesa\",indicativo:\"+95\"},{idPais:119,codPais:\"FM\",pais:\"Micronésia\",nacionalidade:\"Micronésia\",naturalidade:\"Micronésia\",indicativo:\"+691\"},{idPais:120,codPais:\"MZ\",pais:\"Moçambique\",nacionalidade:\"Moçambicana\",naturalidade:\"Moçambicana\",indicativo:\"+258\"},{idPais:121,codPais:\"MD\",pais:\"Moldávia\",nacionalidade:\"Moldávia\",naturalidade:\"Moldávia\",indicativo:\"+373\"},{idPais:122,codPais:\"MC\",pais:\"Mónaco\",nacionalidade:\"Monegasca\",naturalidade:\"Monegasca\",indicativo:\"+377\"},{idPais:123,codPais:\"MN\",pais:\"Mongólia\",nacionalidade:\"Mongol\",naturalidade:\"Mongol\",indicativo:\"+976\"},{idPais:124,codPais:\"ME\",pais:\"Montenegro\",nacionalidade:\"Montenegrina\",naturalidade:\"Montenegrina\",indicativo:\"+382\"},{idPais:125,codPais:\"NA\",pais:\"Namíbia\",nacionalidade:\"Namibiana\",naturalidade:\"Namibiana\",indicativo:\"+264\"},{idPais:126,codPais:\"NR\",pais:\"Nauru\",nacionalidade:\"Nauruana\",naturalidade:\"Nauruana\",indicativo:\"+674\"},{idPais:127,codPais:\"NP\",pais:\"Nepal\",nacionalidade:\"Nepalesa\",naturalidade:\"Nepalesa\",indicativo:\"+977\"},{idPais:128,codPais:\"NI\",pais:\"Nicarágua\",nacionalidade:\"Nicaraguense\",naturalidade:\"Nicaraguense\",indicativo:\"+505\"},{idPais:129,codPais:\"NE\",pais:\"Níger\",nacionalidade:\"Nigerina\",naturalidade:\"Nigerina\",indicativo:\"+227\"},{idPais:130,codPais:\"NG\",pais:\"Nigéria\",nacionalidade:\"Nigeriana\",naturalidade:\"Nigeriana\",indicativo:\"+234\"},{idPais:131,codPais:\"NO\",pais:\"Noruega\",nacionalidade:\"Noroeguesa\",naturalidade:\"Noroeguesa\",indicativo:\"+47\"},{idPais:132,codPais:\"NZ\",pais:\"Nova Zelândia\",nacionalidade:\"Neozelandesa\",naturalidade:\"Neozelandesa\",indicativo:\"+64\"},{idPais:133,codPais:\"OM\",pais:\"Omã\",nacionalidade:\"Omanense\",naturalidade:\"Omanense\",indicativo:\"+968\"},{idPais:134,codPais:\"NL\",pais:\"Países Baixos\",nacionalidade:\"Holandesa\",naturalidade:\"Holandesa\",indicativo:\"+31\"},{idPais:135,codPais:\"PW\",pais:\"Palau\",nacionalidade:\"Palauense\",naturalidade:\"Palauense\",indicativo:\"+680\"},{idPais:136,codPais:\"PA\",pais:\"Panamá\",nacionalidade:\"Panamenha\",naturalidade:\"Panamenha\",indicativo:\"+507\"},{idPais:137,codPais:\"PG\",pais:\"Papua Nova Guiné\",nacionalidade:\"Papuásia\",naturalidade:\"Papuásia\",indicativo:\"+675\"},{idPais:138,codPais:\"PK\",pais:\"Paquistão\",nacionalidade:\"Paquistanesa\",naturalidade:\"Paquistanesa\",indicativo:\"+92\"},{idPais:139,codPais:\"PY\",pais:\"Paraguai\",nacionalidade:\"Paraguaia\",naturalidade:\"Paraguaia\",indicativo:\"+595\"},{idPais:140,codPais:\"PE\",pais:\"Peru\",nacionalidade:\"Peruana\",naturalidade:\"Peruana\",indicativo:\"+51\"},{idPais:141,codPais:\"PL\",pais:\"Polónia\",nacionalidade:\"Polonesa\",naturalidade:\"Polonesa\",indicativo:\"+48\"},{idPais:142,codPais:\"PT\",pais:\"Portugal\",nacionalidade:\"Portuguesa\",naturalidade:\"Portuguesa\",indicativo:\"+351\"},{idPais:143,codPais:\"KE\",pais:\"Quénia\",nacionalidade:\"Queniana\",naturalidade:\"Queniana\",indicativo:\"+254\"},{idPais:144,codPais:\"KG\",pais:\"Quirguistão\",nacionalidade:\"Quirguistanesa\",naturalidade:\"Quirguistanesa\",indicativo:\"+996\"},{idPais:145,codPais:\"KI\",pais:\"Quiribáti\",nacionalidade:\"Quiribatiana\",naturalidade:\"Quiribatiana\",indicativo:\"+686\"},{idPais:146,codPais:\"GB\",pais:\"Reino Unido\",nacionalidade:\"Britânica\",naturalidade:\"Britânica\",indicativo:\"+44\"},{idPais:147,codPais:\"CF\",pais:\"República Centro-Africana\",nacionalidade:\"Centro-Africana\",naturalidade:\"Centro-Africana\",indicativo:\"+236\"},{idPais:148,codPais:\"CZ\",pais:\"República Checa\",nacionalidade:\"Checa\",naturalidade:\"Checa\",indicativo:\"+420\"},{idPais:149,codPais:\"CD\",pais:\"República Democrática do Congo\",nacionalidade:\"Congolesa\",naturalidade:\"Congolesa\",indicativo:\"+243\"},{idPais:150,codPais:\"DO\",pais:\"República Dominicana\",nacionalidade:\"Dominicana\",naturalidade:\"Dominicana\",indicativo:\"+1849\"},{idPais:151,codPais:\"RO\",pais:\"Roménia\",nacionalidade:\"Romena\",naturalidade:\"Romena\",indicativo:\"+40\"},{idPais:152,codPais:\"RW\",pais:\"Ruanda\",nacionalidade:\"Ruandesa\",naturalidade:\"Ruandesa\",indicativo:\"+250\"},{idPais:153,codPais:\"RU\",pais:\"Rússia\",nacionalidade:\"Russa\",naturalidade:\"Russa\",indicativo:\"+7\"},{idPais:154,codPais:\"SB\",pais:\"Salomão\",nacionalidade:\"Salomônica\",naturalidade:\"Salomônica\",indicativo:\"+677\"},{idPais:155,codPais:\"SV\",pais:\"Salvador\",nacionalidade:\"Salvador\",naturalidade:\"Salvador\",indicativo:\"+503\"},{idPais:156,codPais:\"WS\",pais:\"Samoa\",nacionalidade:\"Samoana\",naturalidade:\"Samoana\",indicativo:\"+685\"},{idPais:157,codPais:\"LC\",pais:\"Santa Lúcia\",nacionalidade:\"Santa-Lucense\",naturalidade:\"Santa-Lucense\",indicativo:\"+1758\"},{idPais:158,codPais:\"KN\",pais:\"São Cristóvão e Neves\",nacionalidade:\"São-Cristovense\",naturalidade:\"São-Cristovense\",indicativo:\"+1869\"},{idPais:159,codPais:\"SM\",pais:\"São Marinho\",nacionalidade:\"São-Marinense\",naturalidade:\"São-Marinense\",indicativo:\"+378\"},{idPais:160,codPais:\"ST\",pais:\"São Tomé e Príncipe\",nacionalidade:\"São-Tomense\",naturalidade:\"São-Tomense\",indicativo:\"+239\"},{idPais:161,codPais:\"VC\",pais:\"São Vicente e Granadinas\",nacionalidade:\"São-Vicentina\",naturalidade:\"São-Vicentina\",indicativo:\"+1784\"},{idPais:162,codPais:\"SC\",pais:\"Seicheles\",nacionalidade:\"Seichelense\",naturalidade:\"Seichelense\",indicativo:\"+248\"},{idPais:163,codPais:\"SN\",pais:\"Senegal\",nacionalidade:\"Senegalesa\",naturalidade:\"Senegalesa\",indicativo:\"+221\"},{idPais:164,codPais:\"SL\",pais:\"Serra Leoa\",nacionalidade:\"Serra-Leoanesa\",naturalidade:\"Serra-Leoanesa\",indicativo:\"+232\"},{idPais:165,codPais:\"RS\",pais:\"Sérvia\",nacionalidade:\"Servia\",naturalidade:\"Servia\",indicativo:\"+381\"},{idPais:166,codPais:\"SG\",pais:\"Singapura\",nacionalidade:\"Singapurense\",naturalidade:\"Singapurense\",indicativo:\"+65\"},{idPais:167,codPais:\"SY\",pais:\"Síria\",nacionalidade:\"Síria\",naturalidade:\"Síria\",indicativo:\"+963\"},{idPais:168,codPais:\"SO\",pais:\"Somália\",nacionalidade:\"Somali\",naturalidade:\"Somali\",indicativo:\"+252\"},{idPais:169,codPais:\"LK\",pais:\"Sri Lanca\",nacionalidade:\"Srilankesa\",naturalidade:\"Srilankesa\",indicativo:\"+94\"},{idPais:170,codPais:\"SZ\",pais:\"Suazilândia\",nacionalidade:\"Suazi\",naturalidade:\"Suazi\",indicativo:\"+268\"},{idPais:171,codPais:\"SD\",pais:\"Sudão\",nacionalidade:\"Sudanense\",naturalidade:\"Sudanense\",indicativo:\"+249\"},{idPais:172,codPais:\"SS\",pais:\"Sudão do Sul\",nacionalidade:\"Sul-Sudanense\",naturalidade:\"Sul-Sudanense\",indicativo:\"+211\"},{idPais:173,codPais:\"SE\",pais:\"Suécia\",nacionalidade:\"Sueca\",naturalidade:\"Sueca\",indicativo:\"+46\"},{idPais:174,codPais:\"CH\",pais:\"Suíça\",nacionalidade:\"Suiça\",naturalidade:\"Suiça\",indicativo:\"+41\"},{idPais:175,codPais:\"SR\",pais:\"Suriname\",nacionalidade:\"Suinamês\",naturalidade:\"Suinamês\",indicativo:\"+597\"},{idPais:176,codPais:\"TH\",pais:\"Tailândia\",nacionalidade:\"Tailandesa\",naturalidade:\"Tailandesa\",indicativo:\"+66\"},{idPais:177,codPais:\"TW\",pais:\"Taiuã\",nacionalidade:\"Taiwanesa\",naturalidade:\"Taiwanesa\",indicativo:\"+886\"},{idPais:178,codPais:\"TJ\",pais:\"Tajiquistão\",nacionalidade:\"Tajique\",naturalidade:\"Tajique\",indicativo:\"+992\"},{idPais:179,codPais:\"TZ\",pais:\"Tanzânia\",nacionalidade:\"Tanzaniana\",naturalidade:\"Tanzaniana\",indicativo:\"+255\"},{idPais:180,codPais:\"TL\",pais:\"Timor-Leste\",nacionalidade:\"Timorense\",naturalidade:\"Timorense\",indicativo:\"+670\"},{idPais:181,codPais:\"TG\",pais:\"Togo\",nacionalidade:\"Togolesa\",naturalidade:\"Togolesa\",indicativo:\"+228\"},{idPais:182,codPais:\"TO\",pais:\"Tonga\",nacionalidade:\"Tonganesa\",naturalidade:\"Tonganesa\",indicativo:\"+676\"},{idPais:183,codPais:\"TT\",pais:\"Trindade e Tobago\",nacionalidade:\"Trinitária\",naturalidade:\"Trinitária\",indicativo:\"+1868\"},{idPais:184,codPais:\"TN\",pais:\"Tunísia\",nacionalidade:\"Tunisiana\",naturalidade:\"Tunisiana\",indicativo:\"+216\"},{idPais:185,codPais:\"TM\",pais:\"Turcomenistão\",nacionalidade:\"Turcomena\",naturalidade:\"Turcomena\",indicativo:\"+993\"},{idPais:186,codPais:\"TR\",pais:\"Turquia\",nacionalidade:\"Turca\",naturalidade:\"Turca\",indicativo:\"+90\"},{idPais:187,codPais:\"TV\",pais:\"Tuvalu\",nacionalidade:\"Tuvaluana \",naturalidade:\"Tuvaluana \",indicativo:\"+688\"},{idPais:188,codPais:\"UA\",pais:\"Ucrânia\",nacionalidade:\"Ucraniana\",naturalidade:\"Ucraniana\",indicativo:\"+380\"},{idPais:189,codPais:\"UG\",pais:\"Uganda\",nacionalidade:\"Ugandesa\",naturalidade:\"Ugandesa\",indicativo:\"+256\"},{idPais:190,codPais:\"UY\",pais:\"Uruguai\",nacionalidade:\"Uruguaia\",naturalidade:\"Uruguaia\",indicativo:\"+598\"},{idPais:191,codPais:\"UZ\",pais:\"Usbequistão\",nacionalidade:\"Uzbeque\",naturalidade:\"Uzbeque\",indicativo:\"+998\"},{idPais:192,codPais:\"VU\",pais:\"Vanuatu\",nacionalidade:\"Vunuatuana\",naturalidade:\"Vunuatuana\",indicativo:\"+678\"},{idPais:193,codPais:\"VA\",pais:\"Vaticano\",nacionalidade:\"Vaticano\",naturalidade:\"Vaticano\",indicativo:\"+379\"},{idPais:194,codPais:\"VE\",pais:\"Venezuela\",nacionalidade:\"Venezualena\",naturalidade:\"Venezualena\",indicativo:\"+58\"},{idPais:195,codPais:\"VN\",pais:\"Vietnã\",nacionalidade:\"Vietnamita\",naturalidade:\"Vietnamita\",indicativo:\"+84\"},{idPais:196,codPais:\"ZM\",pais:\"Zâmbia\",nacionalidade:\"Zambiana\",naturalidade:\"Zambiana\",indicativo:\"+260\"},{idPais:197,codPais:\"ZW\",pais:\"Zimbábwe\",nacionalidade:\"Zimbabueana\",naturalidade:\"Zimbabueana\",indicativo:\"+263\"}];\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { PaisDialCodeDto, PAISES_DB } from '@shared/components/forms/PAISES.db';\r\nconst ACENTO_REG = /[\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u00FF]/g;\r\nconst CHAR_SPECIAL: {[string: string]: string} = {\r\n 'á': 'a', 'à': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a',\r\n 'é': 'e', 'è': 'e', 'ê': 'e', 'ë': 'e',\r\n 'í': 'i', 'ì': 'i', 'î': 'i', 'ï': 'i',\r\n 'ó': 'o', 'ò': 'o', 'ô': 'o', 'õ': 'o', 'ö': 'o',\r\n 'ú': 'u', 'ù': 'u', 'û': 'u', 'ü': 'u',\r\n 'ç': 'c',\r\n 'ñ': 'n'\r\n};\r\n@Component({\r\n selector: 'app-dial-code',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n styles: [`\r\n .nice-select {\r\n -webkit-tap-highlight-color: transparent;\r\n border: solid 1px #0000001f;\r\n box-sizing: border-box;\r\n clear: both;\r\n cursor: pointer;\r\n display: block;\r\n float: left;\r\n font-family: inherit;\r\n font-size: 14px;\r\n font-weight: 400;\r\n height: 38px;\r\n line-height: 40px;\r\n outline: none;\r\n padding-left: 7px;\r\n padding-right: 20px;\r\n margin-top: 5px;\r\n position: relative;\r\n text-align: left!important;\r\n transition: all .2s ease-in-out;\r\n -webkit-user-select: none;\r\n user-select: none;\r\n white-space: nowrap;\r\n width: 100%;\r\n border-radius: 6px 0 0 6px;\r\n }\r\n .nice-select:hover {\r\n border-color: #dbdbdb\r\n }\r\n .nice-select:active,.nice-select.open,.nice-select:focus {\r\n border-color: #999\r\n }\r\n .nice-select:after {\r\n position: absolute;\r\n content: \"🔻\";\r\n top: 50%;\r\n right: 0;\r\n font-weight: 500;\r\n pointer-events: none;\r\n transition: all .15s ease-in-out;\r\n margin-top: 0;\r\n transform-origin: center;\r\n transform: translateY(-50%)\r\n }\r\n .nice-select.open:after {\r\n transform: translateY(-50%) rotate(-180deg)\r\n }\r\n .nice-select.open .list {\r\n opacity: 1;\r\n pointer-events: auto;\r\n transform: scale(1) translateY(0)\r\n }\r\n .nice-select.disabled {\r\n border-color: #ededed;\r\n color: #999;\r\n pointer-events: none\r\n }\r\n .nice-select.disabled:after {\r\n border-color: #ccc\r\n }\r\n .nice-select.wide {\r\n width: 100%\r\n }\r\n .nice-select.wide .list {\r\n left: 0!important;\r\n right: 0!important\r\n }\r\n .nice-select.right {\r\n float: right\r\n }\r\n .nice-select.right .list {\r\n left: auto;\r\n right: 0\r\n }\r\n .nice-select.small {\r\n font-size: 12px;\r\n height: 36px;\r\n line-height: 34px\r\n }\r\n .nice-select.small:after {\r\n height: 4px;\r\n width: 4px\r\n }\r\n .nice-select.small .option {\r\n line-height: 34px;\r\n min-height: 34px\r\n }\r\n .nice-select .list {\r\n background-color: #fff;\r\n box-shadow: 0 0 0 1px #4444441c;\r\n box-sizing: border-box;\r\n margin-top: 4px;\r\n opacity: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n pointer-events: none;\r\n position: absolute;\r\n top: 100%;\r\n left: 0;\r\n transform-origin: 50% 0;\r\n transform: scale(.75) translateY(-21px);\r\n transition: all .2s cubic-bezier(.5,0,0,1.25),opacity .15s ease-out;\r\n z-index: 9;\r\n min-width: 250px;\r\n }\r\n .nice-select .option {\r\n cursor: pointer;\r\n font-weight: 400;\r\n line-height: 40px;\r\n list-style: none;\r\n min-height: 40px;\r\n outline: none;\r\n padding-left: 18px;\r\n padding-right: 29px;\r\n text-align: left;\r\n transition: all .2s\r\n }\r\n .nice-select .option.selected {\r\n font-weight: 700\r\n }\r\n .nice-select .option.disabled {\r\n background-color: transparent;\r\n color: #999;\r\n cursor: default\r\n }\r\n .no-csspointerevents .nice-select .list {\r\n display: none\r\n }\r\n .no-csspointerevents .nice-select.open .list {\r\n display: block\r\n }\r\n .ul-select {\r\n scrollbar-width: thin!important;\r\n overflow-y: auto;\r\n height: 245px;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n `],\r\n template: `\r\n
\r\n
\r\n \r\n {{ actual?.indicativo || placeholder }} \r\n
\r\n
\r\n
\r\n \r\n search\r\n \r\n \r\n
\r\n\r\n
    \r\n
  • \r\n
    \r\n \r\n {{ pais.indicativo }} - {{ pais.pais }}\r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n `,\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class AppDialCode implements OnChanges {\r\npaises = PAISES_DB;\r\npaisesAUX = PAISES_DB;\r\n @Input() defaultCurrent: number = 0;\r\n @Input() placeholder: string = '';\r\n @Input() className: string = '';\r\n @Input() name: string = '';\r\n @Input() dialCode: string = '';\r\n aberto = false;\r\n actual: any;\r\n @Output() aoChange: EventEmitter = new EventEmitter();\r\n @Output() aoSelect: EventEmitter = new EventEmitter();\r\n searchCtrl: string = '';\r\n constructor(private el: ElementRef) {}\r\n\r\n toggleAberto() {\r\n this.aberto = !this.aberto;\r\n }\r\n\r\n stopPropagation(event: Event) {\r\n event.stopPropagation();\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes['dialCode'] && changes['dialCode'].currentValue){\r\n this.dialCode = changes['dialCode'].currentValue;\r\n const paisIndicativo = this.paisesAUX.find(p => p.indicativo === this.dialCode);\r\n if (paisIndicativo) {\r\n this.actual = {\r\n codigo: paisIndicativo.codPais,\r\n indicativo: paisIndicativo?.indicativo,\r\n text: paisIndicativo.indicativo,\r\n };\r\n }\r\n } else {\r\n this.actual = {\r\n codigo: this.paises[0]?.codPais,\r\n indicativo: this.paises[0]?.indicativo,\r\n text: this.paises[0]?.indicativo,\r\n };\r\n this.aoSelect.emit(this.paises[0]?.indicativo)\r\n }\r\n }\r\n\r\n currentHandler(pais: PaisDialCodeDto, index?: number) {\r\n const item = {\r\n codigo: pais.codPais,\r\n indicativo: pais.indicativo,\r\n text: pais.indicativo,\r\n };\r\n this.actual = {\r\n codigo: pais.codPais,\r\n indicativo: pais.indicativo,\r\n text: pais.indicativo,\r\n };\r\n this.paises = this.paisesAUX;\r\n this.searchCtrl = '';\r\n this.aoChange.emit(item); // Emitting the event\r\n this.aoSelect.emit(pais.indicativo);\r\n this.aoFechar();\r\n }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n\r\n aoClicarForaFecha(target: EventTarget): void {\r\n if (!this.el.nativeElement.contains(target)) {\r\n this.aoFechar();\r\n }\r\n }\r\n\r\n filtrar(event: any) {\r\n let termo = event.target.value;\r\n termo = this.removerAcento(termo);\r\n if(termo){\r\n this.paises = this.paisesAUX.filter(pais => pais\r\n && pais.pais\r\n && this.removerAcento(pais.pais.toLowerCase()).includes(termo.toLowerCase()));\r\n } else {\r\n this.paises = this.paisesAUX;\r\n }\r\n }\r\n\r\n aoFechar() {\r\n this.aberto = false;\r\n }\r\n\r\n removerAcento(str: string) {\r\n return str.replace(ACENTO_REG, (match) => CHAR_SPECIAL[match] || match);\r\n }\r\n}\r\n","import {Directive, ElementRef, Input, OnChanges, OnInit, Renderer2, SimpleChanges} from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[appFlag]',\r\n}) export class AppFlagDirective implements OnInit, OnChanges {\r\n @Input() appFlag: string = '';\r\n @Input() code: string = '';\r\n constructor(private el: ElementRef, private renderer: Renderer2) { }\r\n ngOnInit() {\r\n this.renderer.setStyle(this.el.nativeElement, 'background-image', `url(assets/images/flags/${this.appFlag}.svg)`);\r\n this.renderer.setStyle(this.el.nativeElement, 'height', '15px');\r\n this.renderer.setStyle(this.el.nativeElement, 'width', '15px');\r\n this.renderer.setStyle(this.el.nativeElement, 'display', 'inline-block');\r\n this.renderer.setStyle(this.el.nativeElement, 'background-repeat', 'no-repeat');\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes['appFlag'] && changes['appFlag'].currentValue) {\r\n this.appFlag = changes['appFlag'].currentValue;\r\n this.renderer.setStyle(this.el.nativeElement, 'background-image', `url(assets/images/flags/${this.appFlag}.svg)`);\r\n }\r\n }\r\n}\r\n","import { Component, forwardRef, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n@Component({\r\n styles: [`\r\n :host {display: flex; align-items: center; width: 100%;}\r\n `],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => AppFone),\r\n multi: true\r\n }\r\n ],\r\n selector: 'app-fone',\r\n template: `\r\n
\r\n \r\n
\r\n \r\n Telefone\r\n \r\n \r\n
\r\n
\r\n `\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class AppFone implements ControlValueAccessor, OnChanges {\r\n numTelefone: string = '';\r\n dialCode: string = '';\r\n onChange: any = () => {};\r\n onTouch: any = () => {};\r\n writeValue(valor: any) {\r\n if (valor && valor.length > 0) {\r\n const splittedFone = valor.split(' ');\r\n if (splittedFone && splittedFone.length > 0) {\r\n this.dialCode = splittedFone[0];\r\n this.numTelefone = splittedFone[splittedFone.length - 1];\r\n } else {\r\n this.numTelefone = valor;\r\n }\r\n }\r\n } // Write //\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n ngOnChanges(changes: SimpleChanges) {}\r\n\r\n onBlur(event: FocusEvent) {\r\n const target = event.target as HTMLInputElement;\r\n if (target && target.value && (target.value.trim()).length > 0) {\r\n this.onChange(this.dialCode + ' ' + target.value);\r\n }\r\n }\r\n\r\n aoSelectDialCode(event: any) {\r\n this.dialCode = event;\r\n if (this.numTelefone && this.numTelefone.length > 0 && this.numTelefone.trim().length > 0) {\r\n this.onChange(this.dialCode + ' ' + this.numTelefone);\r\n }\r\n }\r\n\r\n onInput(event: Event) {\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChildren, Output, Renderer2, OnDestroy } from '@angular/core';\r\nimport { ThemeService } from '../../services/theme.service';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { EgretNotifications2Component } from '../egret-notifications2/egret-notifications2.component';\r\nimport {LoginService} from '../../services/aplicacao-service/login.service';\r\nimport {UtilizadoresService} from '../../services/aplicacao-service/utilizadores.service';\r\nimport {UserDataService} from '../../services/data/user-data.service';\r\nimport {Router} from '@angular/router';\r\nimport {Subscription} from 'rxjs';\r\nimport {JwtHelperService} from '@auth0/angular-jwt';\r\nimport {LocalStoreService} from '../../services/local-store.service';\r\nimport {Utilizadores} from '../../models/aplicacao/utilizadores';\r\nimport { OnDestroyService } from '../../services/on-destroy.service';\r\nimport { Aplicacao } from '../../models/aplicacao/aplicacao';\r\nimport { AppStoreService } from 'app/shared/services/aplicacao-service/data/app-store.service';\r\nimport { AppDataService } from '../../services/data/app-data.service';\r\nimport { DashboardService } from '@services/dashboard/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-header-side',\r\n templateUrl: './header-side.template.html',\r\n styles: [`\r\n .msg-expiracao {\r\n background: #f78c8c!important;\r\n color:#000000;\r\n }\r\n `]\r\n})\r\nexport class HeaderSideComponent implements OnInit, OnDestroy {\r\n @Input() notificPanel;\r\n @Input() isCustomizerOpen: boolean;\r\n @ViewChildren(EgretNotifications2Component) noti;\r\n public egretThemes;\r\n public layoutConf: any;\r\n fotoPerfil: string;\r\n fotografia?: string;\r\n user: Utilizadores;\r\n jwtHelper = new JwtHelperService();\r\n decodedToken: any;\r\n subscricoes: Subscription[] = [];\r\n mostrarAviso = false;\r\n diasEmFalta = parseInt(localStorage.getItem('diasEmFalta'), 10);\r\n numeroNotificacoes:number=0;\r\n userAdmin=false;\r\n utilizador:any;\r\n\r\n protected readonly window = window;\r\n aplicacao!: Aplicacao;\r\n constructor(\r\n private themeService: ThemeService,\r\n private layout: LayoutService,\r\n public loginService: LoginService,\r\n public localStore: LocalStoreService,\r\n private utilizadoresService: UtilizadoresService,\r\n private data: UserDataService,\r\n public appStoreService: AppStoreService,\r\n public appDataService: AppDataService,\r\n private dashboardService: DashboardService,\r\n private onDestroyService: OnDestroyService\r\n ) {}\r\n ngOnInit() {\r\n this.egretThemes = this.themeService.egretThemes;\r\n this.layoutConf = this.layout.layoutConf;\r\n const token = localStorage.getItem('token');\r\n this.decodedToken = this.jwtHelper.decodeToken(token);\r\n this.getUserFromLocalStorage();\r\n this.loginService.decodedToken = this.decodedToken;\r\n this.getDadosAplicacao();\r\n this.utilizador = this.loginService.getUtilizadorSessao();\r\n this.userAdmin = this.utilizador?.sistema;\r\n }\r\n\r\n\r\n\r\n getDadosAplicacao() {\r\n this.subscricoes.push(\r\n this.appStoreService.getAplicacao().subscribe((res: any) => {\r\n this.aplicacao = res;\r\n })\r\n );\r\n }\r\n\r\n desactivarAviso() {\r\n this.appDataService.$mostrarAviso.next(false);\r\n }\r\n\r\n getUserFromLocalStorage() {\r\n if (this.localStore.getItem('_utilizador')) {\r\n this.user = this.localStore.getItem('_utilizador');\r\n this.fotografia = this.user.fotografia;\r\n this.fotoPerfil = this.user.fotografia;\r\n } else {\r\n this.getImagemUtilizador(this.decodedToken.nameid);\r\n }\r\n }\r\n\r\n getImagemUtilizador(id: number) {\r\n this.subscricoes.push(\r\n this.utilizadoresService\r\n .getUtilizador(id)\r\n .subscribe((res) => {\r\n this.fotografia = res.fotografia;\r\n this.data.setFotoPerfil(res.fotografia);\r\n this.subscricoes.push(\r\n this.data.getFotoPerfil().subscribe((foto) => {\r\n this.fotoPerfil = foto;\r\n })\r\n );\r\n })\r\n );\r\n }\r\n logout() {\r\n localStorage.removeItem('clean_cache');\r\n this.loginService.logout();\r\n }\r\n\r\n changeTheme(theme) {\r\n // this.themeService.changeTheme(theme);\r\n }\r\n toggleNotific() {\r\n this.notificPanel.toggle();\r\n }\r\n toggleSidenav() {\r\n if (this.layoutConf.sidebarStyle === 'closed') {\r\n return this.layout.publishLayoutChange({\r\n sidebarStyle: 'full'\r\n });\r\n }\r\n this.layout.publishLayoutChange({\r\n sidebarStyle: 'closed'\r\n });\r\n }\r\n\r\n toggleCollapse() {\r\n // compact --> full\r\n if (this.layoutConf.sidebarStyle === 'compact') {\r\n return this.layout.publishLayoutChange({\r\n sidebarStyle: 'full',\r\n sidebarCompactToggle: false\r\n }, {transitionClass: true});\r\n }\r\n\r\n // * --> compact\r\n this.layout.publishLayoutChange({\r\n sidebarStyle: 'compact',\r\n sidebarCompactToggle: true\r\n }, {transitionClass: true});\r\n\r\n }\r\n\r\n fecharCustomizer(event: any) {\r\n this.isCustomizerOpen = event;\r\n }\r\n\r\n onSearch(e) {\r\n // console.log(e)\r\n }\r\n\r\n reloadWindow() {\r\n // @ts-ignore\r\n document.location.reload(true);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.onDestroyService.destruir(this.subscricoes);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n close\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n menu\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit, Input, OnDestroy, Renderer2 } from '@angular/core';\r\nimport { NavigationService } from \"../../../shared/services/navigation.service\";\r\nimport { Subscription } from 'rxjs';\r\nimport { ThemeService } from '../../../shared/services/theme.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { LayoutService } from '../../services/layout.service';\r\nimport { JwtAuthService } from 'app/shared/services/auth/jwt-auth.service';\r\n\r\n@Component({\r\n selector: 'app-header-top',\r\n templateUrl: './header-top.component.html'\r\n})\r\nexport class HeaderTopComponent implements OnInit, OnDestroy {\r\n layoutConf: any;\r\n menuItems: any;\r\n menuItemSub: Subscription;\r\n egretThemes: any[] = [];\r\n currentLang = 'en';\r\n availableLangs = [{\r\n name: 'English',\r\n code: 'en',\r\n }, {\r\n name: 'Spanish',\r\n code: 'es',\r\n }]\r\n @Input() notificPanel;\r\n constructor(\r\n private layout: LayoutService,\r\n private navService: NavigationService,\r\n public themeService: ThemeService,\r\n // public translate: TranslateService,\r\n private renderer: Renderer2,\r\n public jwtAuth: JwtAuthService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.layoutConf = this.layout.layoutConf;\r\n this.egretThemes = this.themeService.egretThemes;\r\n this.menuItemSub = this.navService.menuItems$\r\n .subscribe(res => {\r\n res = res.filter(item => item.type !== 'icon' && item.type !== 'separator');\r\n let limit = 4\r\n let mainItems:any[] = res.slice(0, limit)\r\n if(res.length <= limit) {\r\n return this.menuItems = mainItems\r\n }\r\n let subItems:any[] = res.slice(limit, res.length - 1)\r\n mainItems.push({\r\n name: 'More',\r\n type: 'dropDown',\r\n tooltip: 'More',\r\n icon: 'more_horiz',\r\n sub: subItems\r\n })\r\n this.menuItems = mainItems\r\n })\r\n }\r\n ngOnDestroy() {\r\n this.menuItemSub.unsubscribe()\r\n }\r\n setLang() {\r\n // this.translate.use(this.currentLang)\r\n }\r\n changeTheme(theme) {\r\n this.layout.publishLayoutChange({matTheme: theme.name})\r\n }\r\n toggleNotific() {\r\n this.notificPanel.toggle();\r\n }\r\n toggleSidenav() {\r\n if(this.layoutConf.sidebarStyle === 'closed') {\r\n return this.layout.publishLayoutChange({\r\n sidebarStyle: 'full'\r\n })\r\n }\r\n this.layout.publishLayoutChange({\r\n sidebarStyle: 'closed'\r\n })\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n
\r\n \"\"\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ lang.name }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n check\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {FormBuilder, FormGroup} from '@angular/forms';\r\nimport {ThemeService} from 'app/shared/services/theme.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-input-autocomplete',\r\n templateUrl: './input-autocomplete.component.html',\r\n styleUrls: ['./input-autocomplete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class InputAutocompleteComponent implements OnInit, AfterViewInit, OnChanges {\r\n form: FormGroup;\r\n @Input('lista') lista: any[];\r\n @Input('listaAux') listaAux: any[];\r\n todosbol = false;\r\n @Input('chave') chave = 'nome';\r\n @Input('placeholder') placeholder = 'nome';\r\n @Input('placeholderAux') placeholderAux = 'nome';\r\n @Output('selecionados') selecionados = new EventEmitter();\r\n @Input('itemsSelecionadosReset') itemsSelecionadosReset: any[];\r\n itemsSelecionados: any[];\r\n semaforo = 0;\r\n letInputfocusInState: any;\r\n letInputfocusState: any;\r\n letmatSonStaste: any;\r\n simaforoTodos = false;\r\n simaforooptionClick = false;\r\n mostrarIcon = true;\r\n OcultarIcon = true;\r\n visibilidadeIcon = 'hidden';\r\n // @ViewChild('close') close: any;\r\n @ViewChild('componetKey') componetKey: any;\r\n @ViewChild('todosOption') todosOption: any;\r\n @ViewChild('input1') input1: any;\r\n @ViewChild('t') t: any;\r\n @ViewChild('icon') icon: any;\r\n @ViewChild('matform') matform: any;\r\n @ViewChildren('options') options: QueryList;\r\n @ViewChildren('d') d: QueryList;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private themeService: ThemeService\r\n ) {\r\n this.form = this.fb.group({\r\n valor: ['']\r\n });\r\n this.lista = [];\r\n this.listaAux = [];\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.itemsSelecionados = [];\r\n }\r\n\r\n async ngAfterViewInit() {\r\n await this.initOptionsState();\r\n (this.componetKey._elementRef.nativeElement as HTMLInputElement).onclick = () => {\r\n };\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.itemsSelecionadosReset?.length === 0) {\r\n this.itemsSelecionados = [];\r\n this.placeholder = this.placeholderAux;\r\n if (this.t) {\r\n this.t._checked = false;\r\n }\r\n this.form.get('valor').setValue('');\r\n const checkList: any[] = this.d?.toArray();\r\n\r\n checkList?.forEach((check) => {\r\n check._checked = false;\r\n });\r\n }\r\n\r\n }\r\n\r\n async checkAll(evento) {\r\n if (this.semaforo < 1) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n const checkList: any[] = this.d.toArray();\r\n this.itemsSelecionados = [];\r\n if (evento.checked) {\r\n await checkList.forEach((check) => {\r\n check._checked = true;\r\n });\r\n\r\n this.itemsSelecionados = this.listaAux;\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else {\r\n await checkList.forEach((check) => {\r\n check._checked = false;\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n this.updateText();\r\n } else {\r\n this.semaforo = 0;\r\n evento.source._checked = !evento.source._checked;\r\n }\r\n this.semaforo++;\r\n }\r\n\r\n async defi(matform, idOption?: string) {\r\n // console.log('lo2', this.semaforo)\r\n this.semaforo = 0;\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n if (this.semaforo === 0) {\r\n const el: HTMLElement = document.getElementById(idOption) as HTMLElement;\r\n el.click();\r\n }\r\n\r\n\r\n }\r\n\r\n async selecionar(evento, item, todosOption) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n if (this.semaforo < 1) {\r\n\r\n if (evento.checked) {\r\n await this.itemsSelecionados.push(item);\r\n } else {\r\n\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chave + ''] !== item['' + this.chave + ''];\r\n });\r\n }\r\n\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n } else {\r\n todosOption._checked = false;\r\n }\r\n\r\n this.updateText();\r\n } else {\r\n this.semaforo = 0;\r\n evento.source._checked = !evento.source._checked;\r\n }\r\n\r\n\r\n this.semaforo++;\r\n\r\n\r\n }\r\n\r\n config() {\r\n (this.componetKey._element.nativeElement as HTMLElement).style.position = 'unset !important';\r\n\r\n }\r\n\r\n async initOptionsState() {\r\n (this.icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.letInputfocusInState = this.input1.nativeElement.__zone_symbol__focusinfalse;\r\n this.letInputfocusState = this.input1.nativeElement.__zone_symbol__focusfalse;\r\n this.letInputfocusState = this.input1.nativeElement.__zone_symbol__focusfalse;\r\n this.letmatSonStaste = this.matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse;\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n async ocultarIcon(se, matform, componetKey) {\r\n\r\n if (this.simaforooptionClick) {\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n await (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chave + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n setTimeout(() => {\r\n this.mostrarIcon = true;\r\n this.simaforooptionClick = true;\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n }, 100);\r\n } else {\r\n\r\n setTimeout(async () => {\r\n if (await this.OcultarIcon && !componetKey._isOpen) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n }\r\n\r\n this.OcultarIcon = true;\r\n }, 150);\r\n }\r\n }\r\n\r\n filtrarArtigoClassificacao(event: any) {\r\n const termo: string = event.target.value;\r\n this.lista = this.listaAux;\r\n if (termo && termo !== '') {\r\n this.lista = this.lista.filter(item1 => {\r\n return (item1['' + this.chave + ''] as string)?.toLowerCase().includes(termo.toLowerCase()\r\n );\r\n });\r\n }\r\n\r\n this.lista;\r\n setTimeout(() => {\r\n const checkList: any[] = this.d.toArray();\r\n this.itemsSelecionados.forEach((selecionado, i) => {\r\n\r\n this.lista.forEach((item, j) => {\r\n if (selecionado['' + this.chave + ''] === item['' + this.chave + '']) {\r\n checkList[j]._checked = true;\r\n }\r\n });\r\n });\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n this.t._checked = true;\r\n }\r\n }, 0);\r\n\r\n }\r\n\r\n\r\n // A1\r\n async adicionarClassificacao() {\r\n\r\n }\r\n\r\n activar() {\r\n }\r\n\r\n\r\n setIconVisible() {\r\n (this.icon._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n }\r\n\r\n async closeList(se, matform, icon) {\r\n this.placeholder = this.placeholderAux;\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n\r\n // Blur\r\n // this.input1.nativeElement.__zone_symbol__blurfalse = this.letInputblurState;\r\n\r\n (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chave + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n await setTimeout(() => {\r\n this.mostrarIcon = true;\r\n (icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n this.updateText();\r\n }, 0);\r\n }\r\n\r\n\r\n private updateText() {\r\n this.placeholder = this.placeholderAux;\r\n\r\n let valor = '';\r\n this.itemsSelecionados.forEach((item, i) => {\r\n valor += item['' + this.chave + ''];\r\n if ((i + 1) < this.itemsSelecionados.length) {\r\n valor += ', ';\r\n }\r\n });\r\n this.form.get('valor').setValue(valor);\r\n valor;\r\n }\r\n\r\n async prevDefault(evento: any) {\r\n setTimeout(async () => {\r\n }, 0\r\n );\r\n }\r\n\r\n activarSemaforo() {\r\n this.simaforoTodos = true;\r\n }\r\n\r\n async todos(valor: any, todosbol: boolean) {\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n this.visibilidadeIcon = 'visible';\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n if (!this.simaforoTodos) {\r\n\r\n valor._checked = await !valor._checked;\r\n }\r\n const checkList: any[] = this.d.toArray();\r\n if (todosbol) {\r\n await checkList.forEach((check) => {\r\n check._checked = true;\r\n });\r\n this.itemsSelecionados = await this.lista;\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n this.todosbol = true;\r\n\r\n } else if (!todosbol) {\r\n await checkList.forEach((check) => {\r\n check._checked = false;\r\n });\r\n\r\n this.itemsSelecionados = [];\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n this.todosbol = false;\r\n }\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n }\r\n\r\n async definirIdModulo(item, todosOption: any, valor?: any, index?: number, idOption?: string) {\r\n\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n this.todosOption._element.nativeElement.__zone_symbol__clickfalse = false;\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n\r\n const checkList: any[] = this.d.toArray();\r\n let bol: boolean = checkList[index]._checked;\r\n todosOption._checked = false;\r\n this.todosbol = false;\r\n\r\n if (await !this.simaforoTodos) {\r\n checkList[index]._checked = await !valor._checked;\r\n bol = await !checkList[index]._checked;\r\n }\r\n\r\n if (!bol) {\r\n await this.itemsSelecionados.push(item);\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else if (bol) {\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chave + ''] !== item['' + this.chave + ''];\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n }\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n\r\n }\r\n\r\n aoSelecClassificacaoPorAutoComplete(event: any) {\r\n\r\n\r\n }\r\n\r\n @HostListener('click')\r\n fg() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n\r\n {{placeholder}}\r\n \r\n arrow_drop_down\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Todos\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{item[''+chave+'']}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { F } from '@angular/cdk/keycodes';\r\nimport { Component, EventEmitter, Input, OnInit, Output, OnChanges,\r\n SimpleChanges,\r\n ChangeDetectionStrategy } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\n\r\n\r\n@Component({\r\n selector: 'app-intervalo',\r\n templateUrl: './intervalo.component.html',\r\n styleUrls: ['./intervalo.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class IntervaloComponent implements OnInit {\r\n canOver = true;\r\n permitir = false;\r\n auxMin = '';\r\n auxMax = '';\r\n @Input('placeholder') placeholder: any;\r\n @Input('min') min: any;\r\n @Input('max') max: any;\r\n @Input('descricao') descricao: any;\r\n @Output('valores') valores = new EventEmitter();\r\n constructor(\r\n private fb: FormBuilder\r\n ) {\r\n this.placeholder = 'texto default'\r\n }\r\n\r\n ngOnInit(): void {\r\n if ( this.min=== null ) {\r\n this.filterForm.get(this.FORM.minVer).setValue('');\r\n\r\n } \r\n \r\n if ( this.max=== null ) {\r\n this.filterForm.get(this.FORM.maxVer).setValue('');\r\n }\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ( this.min=== null ) {\r\n this.filterForm.get(this.FORM.min).setValue(this.min);\r\n this.filterForm.get(this.FORM.minVer).setValue('');\r\n\r\n } \r\n \r\n if ( this.max=== null ) {\r\n this.filterForm.get(this.FORM.max).setValue(this.FORM.max);\r\n this.filterForm.get(this.FORM.maxVer).setValue('');\r\n }\r\n \r\n }\r\n\r\n FORM = {\r\n empresas: 'idEmpresas',\r\n movimentos: 'idMovimentos',\r\n tipoMovimentos: 'tipoMovimentos',\r\n armazens: 'idArmazens',\r\n artigos: 'idArtigos',\r\n dataInicio: 'dataInicio',\r\n dataFim: 'dataFim',\r\n min: 'min',\r\n max: 'max',\r\n montanteMin: 'montanteMin',\r\n montanteMax: 'montanteMax',\r\n minVer: 'minVer',\r\n maxVer: 'maxVer',\r\n montanteMinVer: 'montanteMinVer',\r\n montanteMaxVer: 'montanteMaxVer',\r\n minQuantidadeAux: 'minQuantidadeAux',\r\n maxQuantidadeAux: 'maxQuantidadeAux',\r\n minMontanteAux: 'minMontanteAux',\r\n maxMontanteAux: 'maxMontanteAux',\r\n caracterQuantidadeMinValido: 'caracterQuantidadeMinValido',\r\n caracterQuantidadeMaxValido: 'caracterQuantidadeMaxValido',\r\n caracterMontanteMinValido: 'caracterMontanteMinValido',\r\n caracterMontanteMaxValido: 'caracterMontanteMaxValido'\r\n };\r\n\r\n filterForm: FormGroup = this.fb.group({\r\n [this.FORM.empresas]: [],\r\n [this.FORM.movimentos]: [],\r\n [this.FORM.tipoMovimentos]: [],\r\n [this.FORM.armazens]: [],\r\n [this.FORM.artigos]: [],\r\n [this.FORM.dataInicio]: null,\r\n [this.FORM.dataFim]: null,\r\n [this.FORM.min]: [null],\r\n [this.FORM.max]: [null],\r\n [this.FORM.montanteMin]: [],\r\n [this.FORM.montanteMax]: [],\r\n [this.FORM.minVer]: [''],\r\n [this.FORM.maxVer]: [''],\r\n [this.FORM.montanteMinVer]: [''],\r\n [this.FORM.montanteMaxVer]: [''],\r\n [this.FORM.minQuantidadeAux]: [''],\r\n [this.FORM.maxQuantidadeAux]: [''],\r\n [this.FORM.minMontanteAux]: [''],\r\n [this.FORM.maxMontanteAux]: [''],\r\n [this.FORM.caracterQuantidadeMinValido]: [],\r\n [this.FORM.caracterQuantidadeMaxValido]: [],\r\n [this.FORM.caracterMontanteMinValido]: [],\r\n [this.FORM.caracterMontanteMaxValido]: [],\r\n });\r\n\r\n get f() {\r\n return this.filterForm.controls;\r\n }\r\n\r\n OnHidden(evento: any) {\r\n // console.log('++++')\r\n this.canOver = true;\r\n \r\n }\r\n\r\nasync setState(evento: any) {\r\n // await this.delay(100);\r\n // console.log('why')\r\n setTimeout(() => {\r\n\r\n this.canOver = false;\r\n }, 0);\r\n const auxMin = this.filterForm.get(this.FORM.minVer).value;\r\n const auxMax = this.filterForm.get(this.FORM.maxVer).value;\r\n const min: number = auxMin && auxMin !== '' ? parseFloat(auxMin.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n const max: number = auxMax && auxMax !== '' ? parseFloat(auxMax.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n this.filterForm.get(this.FORM.minVer).setErrors(null);\r\n this.filterForm.get(this.FORM.maxVer).setErrors(null);\r\n\r\n if (min && max) {\r\n min > max ? this.filterForm.get(this.FORM.minVer).setErrors({inválido: true}) : '';\r\n min > max ? this.filterForm.get(this.FORM.maxVer).setErrors({inválido: true}) : '';\r\n }\r\n\r\n this.filterForm.get(this.FORM.minVer).markAsTouched();\r\n this.filterForm.get(this.FORM.maxVer).markAsTouched();\r\n}\r\n\r\n validarIntervalo(formControl1: FormControl, formControl2: FormControl, from: string) {\r\n\r\n\r\n }\r\n\r\n validarEntrada(event: any, formControlEstado: FormControl) {\r\n this.permitir = true;\r\n let keyCode: number = event.keyCode;\r\n if (keyCode === 8 || (keyCode >= 40 && keyCode <= 57)\r\n || (keyCode >= 96 && keyCode <= 105)\r\n ) {\r\n formControlEstado.setValue(true);\r\n return;\r\n }\r\n formControlEstado.setValue(false);\r\n }\r\n\r\n\r\n async validarMin(\r\n valor: string,\r\n formControlVer: FormControl,\r\n formControl: FormControl,\r\n formControlAux: FormControl,\r\n formControlEstado: FormControl,\r\n from) {\r\n\r\n let sinalValido: boolean = true;\r\n valor = valor.replace(/\\s/g, '');\r\n\r\n // if (valor.includes('-')) {\r\n // sinalValido = valor.startsWith('-') && 1 >= valor.match(/-/g).length;\r\n // }\r\n //Aqui\r\n let valido: boolean = formControlEstado.value\r\n\r\n if (!valido || parseInt(valor.replace(/\\s/g, ''), 10) === 0) {\r\n this.permitir = false;\r\n formControl.setValue(formControlAux.value);\r\n formControlVer.setValue(formControlAux.value);\r\n return;\r\n }\r\n\r\n this.permitir = false;\r\n\r\n await formControl.setValue(valor);\r\n await formControlVer.setValue(valor);\r\n await formControlAux.setValue(valor);\r\n\r\n if (from === 'min') {\r\n this.auxMin = valor;\r\n\r\n } else if (from === 'max') {\r\n this.auxMax = valor;\r\n\r\n }\r\n\r\n const min: number = this.auxMin && this.auxMin !== '' ? parseFloat(this.auxMin.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n const max: number = this.auxMax && this.auxMax !== '' ? parseFloat(this.auxMax.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n this.filterForm.get(this.FORM.minVer).setErrors(null);\r\n this.filterForm.get(this.FORM.maxVer).setErrors(null);\r\n if (this.auxMin && this.auxMax) {\r\n min > max ? this.filterForm.get(this.FORM.minVer).setErrors({inválido: true}) : '';\r\n min > max ? this.filterForm.get(this.FORM.maxVer).setErrors({inválido: true}) : '';\r\n\r\n }\r\n\r\n this.filterForm.get(this.FORM.minVer).markAsTouched();\r\n this.filterForm.get(this.FORM.maxVer).markAsTouched();\r\n\r\n this.valores.emit({\r\n min,\r\n max,\r\n valido: (this.filterForm.get(this.FORM.minVer).valid && this.filterForm.get(this.FORM.maxVer).valid)\r\n });\r\n\r\n }\r\n\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Min\r\n \r\n \r\n -\r\n \r\n Max\r\n \r\n \r\n \r\n \r\n
\r\n ","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\r\nimport {Accao} from '../../models/ENUM';\r\nimport {Format} from '@directives/input-format.directive';\r\nimport {Subscription} from 'rxjs';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {AbstractControl, FormArray, FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {NotificacaoService} from '@services/notificacao/notificacao.service';\r\nimport {Util} from '../../models/generico/util';\r\nimport {CustomValidators} from '../../models/artigos/formacoes/custom-validators';\r\nimport {GaArquivoService} from '@services/gestao-arquivos/ga-arquivo.service';\r\nimport {GaTipo} from '../../models/gestao-arquivos/ga-tipo';\r\nimport {CampoValor, GaArquivo} from '../../models/gestao-arquivos/ga-arquivo';\r\nimport {DatePipe} from '@angular/common';\r\nimport {DataTypes} from '../../../views/gestao-arquivos/ga-tipo-campo/ga-tipo-campo.component';\r\nimport {LoginService} from '@services/aplicacao-service/login.service';\r\n\r\nconst FormNames = {\r\n id: 'id',\r\n idTipo: 'idTipo',\r\n nome: 'nome',\r\n unidadeOrganizativa: 'idUnidadeOrganizativa',\r\n tipo: 'tipo',\r\n dataCriacao: 'dataCriacao',\r\n anexos: 'anexos',\r\n campos: 'campos',\r\n anexosRemovidos: 'anexosRemovidos',\r\n armazem: 'idArmazem',\r\n idCriador: 'idCriador'\r\n};\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'k-arquivo',\r\n templateUrl: './k-arquivo.component.html',\r\n styleUrls: ['./k-arquivo.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class KArquivoComponent implements OnInit, OnDestroy {\r\n readonly formats = Format;\r\n readonly actions = Accao;\r\n readonly today = new Date();\r\n readonly types = DataTypes;\r\n loading = false;\r\n multiplosValores: CampoValor[] = [];\r\n valoresRemovidos: number[] = [];\r\n form: FormGroup = this.fb.group({\r\n [FormNames.id]: 0,\r\n [FormNames.idTipo]: null,\r\n [FormNames.nome]: '',\r\n [FormNames.unidadeOrganizativa]: null,\r\n [FormNames.armazem]: null,\r\n [FormNames.tipo]: [null, Validators.required],\r\n [FormNames.dataCriacao]: new Date(),\r\n [FormNames.anexosRemovidos]: [[]],\r\n [FormNames.idCriador]: 0,\r\n [FormNames.anexos]: this.fb.array([], CustomValidators.notEmpty()),\r\n [FormNames.campos]: this.fb.array([])\r\n });\r\n readonly formNames: { [key: string]: string } = FormNames;\r\n readonly formNameMap: { [key: string]: string } = {\r\n nome: 'Nome',\r\n tipo: 'Tipo de arquivo',\r\n anexos: 'Anexos',\r\n campos: 'Campos',\r\n valor: 'Valor'\r\n };\r\n readonly errorMap: { [key: string]: string } = {\r\n required: 'É obrigatório',\r\n max: 'Excedeu o valor mínimo',\r\n maxlength: 'Excedeu o comprimento máximo',\r\n empty: 'Adicione algum ficheiro',\r\n matDatepickerParse: 'Formato inválido',\r\n matDatepickerMin: 'Excedeu o valor mínimo da data'\r\n };\r\n anexosRemovidos = new Set();\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private _notificacao: NotificacaoService,\r\n private arquivoService: GaArquivoService,\r\n private datePipe: DatePipe,\r\n private loginService: LoginService,\r\n private modalRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public dados: any\r\n ) {\r\n }\r\n\r\n get f() {\r\n return this.form.controls;\r\n }\r\n\r\n get anexos() {\r\n return this.form.get(this.formNames.anexos) as FormArray;\r\n }\r\n\r\n get campos() {\r\n return this.form.get(this.formNames.campos) as FormArray;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnInit(): void {\r\n this.form.patchValue(this.dados.arquivo);\r\n this.f[FormNames.tipo]\r\n .patchValue(this.dados?.tiposArquivos.find(t => t.id === this.dados.arquivo?.idTipo) ?? this.dados.arquivo?.tipo);\r\n this.f[FormNames.idTipo].patchValue(this.f[FormNames.tipo].value?.id);\r\n this.f[FormNames.tipo].value?.campos?.forEach(campo => {\r\n const v = this.dados.arquivo.campos.find(a => a.idCampo === campo.id);\r\n this.campos.push(this.criarFbCampo({\r\n id: v?.id,\r\n idArquivo: v?.idArquivo,\r\n idCampo: v?.idCampo,\r\n valor: campo.insercaoMultipla ? null : v?.valor,\r\n campo\r\n }));\r\n if (v && campo.insercaoMultipla) {\r\n this.multiplosValores = [\r\n ...this.multiplosValores,\r\n ...this.dados.arquivo.campos.filter(c => c.idCampo === v.idCampo)\r\n ];\r\n }\r\n });\r\n this.f[FormNames.idCriador].patchValue(this.dados?.arquivo?.idCriador ?? parseInt(this.loginService.decodedToken.nameid, 10));\r\n this.dados.arquivo?.anexos?.forEach(a => this.anexos.push(this.novoFicheiro(a)));\r\n }\r\n\r\n removerValor(val: CampoValor) {\r\n const i = this.multiplosValores.indexOf(val);\r\n this.valoresRemovidos.push(val.id);\r\n if (i > -1) {\r\n this.multiplosValores.splice(i, 1);\r\n }\r\n }\r\n\r\n carregarFicheiros(e: Event) {\r\n const ficheiros: FileList = (e.currentTarget as HTMLInputElement).files as FileList;\r\n Array.from(ficheiros).forEach(file => {\r\n const fr = new FileReader();\r\n fr.readAsDataURL(file);\r\n fr.onload = () => {\r\n this.anexos.push(this.novoFicheiro({\r\n conteudo: fr.result as string,\r\n tamanho: file.size\r\n }));\r\n };\r\n });\r\n }\r\n\r\n remover(anexo: any, i: number) {\r\n this.anexos.removeAt(i);\r\n this.anexosRemovidos.add(anexo.id);\r\n }\r\n\r\n adicionarValor(campo: AbstractControl) {\r\n this.multiplosValores.push({\r\n id: 0,\r\n valor: campo.value.valor,\r\n idCampo: campo.value.idCampo,\r\n idArquivo: campo.value.idArquivo,\r\n campo: campo.value.campo,\r\n });\r\n campo.get('valor').reset();\r\n }\r\n\r\n download(arquivo: GaArquivo, anexo: any) {\r\n this.loading = true;\r\n const titulo = anexo.nome ||\r\n `Sem título-${this.datePipe.transform(arquivo.dataCriacao, 'dd/MM/yyyy HH:mm:ss')}`;\r\n if (!Util.isHttpRequest(anexo.conteudo)) {\r\n Util.downloadAnexo(anexo.conteudo, titulo);\r\n this.loading = false;\r\n return;\r\n }\r\n this.subscriptions.push(\r\n this.arquivoService.download(anexo.conteudo)\r\n .subscribe(res => {\r\n const blobUrl = res.objecto;\r\n Util.downloadAnexo(blobUrl, titulo);\r\n this.loading = false;\r\n },\r\n error => {\r\n console.error(error);\r\n this._notificacao.notificar(error.error?.mensagem || 'Falha ao carregar o ficheiro');\r\n this.loading = false;\r\n })\r\n );\r\n }\r\n\r\n setTipo(tipo: GaTipo) {\r\n this.campos.clear();\r\n this.f[FormNames.idTipo].patchValue(tipo?.id);\r\n tipo?.campos?.forEach(campo => this.campos.push(this.criarFbCampo({\r\n id: 0,\r\n idArquivo: 0,\r\n idCampo: campo.id,\r\n campo,\r\n } as CampoValor)));\r\n this.f[FormNames.unidadeOrganizativa].patchValue(tipo?.unidadesOrganizativas?.length === 1 ?\r\n tipo?.unidadesOrganizativas[0]?.idUnidadeOrganizativa : null);\r\n }\r\n\r\n\r\n criarFbCampo(v: CampoValor) {\r\n return this.fb.group({\r\n id: v.id ?? 0,\r\n idCampo: v.idCampo ?? v?.campo?.id,\r\n idArquivo: v.idArquivo ?? 0,\r\n valor: (v.campo?.select ? v.valor : Util.parseValue(v.valor, v.campo?.codTipo)) ?? null,\r\n nome: v.campo?.nome,\r\n codTipo: v.campo?.codTipo,\r\n select: v.campo?.select,\r\n insercaoMultipla: v.campo?.insercaoMultipla,\r\n usaCodigo: v.campo?.usaCodigo,\r\n obrigatorio: v.campo?.obrigatorio,\r\n activo: v.campo?.activo,\r\n nomeP: v.campo?.nomeP,\r\n min: v.campo?.min,\r\n max: v.campo?.max,\r\n numMin: v.campo?.numMin,\r\n numMax: v.campo?.numMax,\r\n });\r\n }\r\n\r\n adicionarArquivos() {\r\n if (this.form.invalid) {\r\n this._notificacao.notificar(Util.getFormErrors(this.form, this.formNameMap, this.errorMap));\r\n return;\r\n }\r\n\r\n if (this.dados.parentId <= 0) {\r\n this.f[FormNames.id]\r\n .patchValue(this.f[FormNames.id].value > 0 ? this.f[FormNames.id].value : Math.random() % 10 + Date.now());\r\n this.modalRef.close(this.form);\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n const req = {...this.form.value, idTipo: this.f[FormNames.tipo].value?.id, anexosRemovidos: [...this.anexosRemovidos]};\r\n this.subscriptions.push(\r\n this.arquivoService.postArquivoEspecifico(this.dados.area, this.dados.parentId, req).subscribe({\r\n next: res => {\r\n this.loading = false;\r\n this.anexos.clear();\r\n this.campos.clear();\r\n this.form.patchValue(res.objecto);\r\n res.objecto.anexos.forEach(a => this.anexos.push(this.novoFicheiro(a)));\r\n this.f[FormNames.tipo].value?.campos?.forEach(campo => {\r\n const v = res.objecto.campos.find(a => a.idCampo === campo.id);\r\n this.campos.push(this.criarFbCampo({\r\n id: v?.id,\r\n idArquivo: v?.idArquivo,\r\n idCampo: v?.idCampo,\r\n valor: campo.insercaoMultipla ? null : v?.valor,\r\n campo\r\n }));\r\n if (v && campo.insercaoMultipla) {\r\n this.multiplosValores = [\r\n ...this.multiplosValores,\r\n ...res.objecto.campos.filter(c => c.idCampo === v.idCampo)\r\n ];\r\n }\r\n });\r\n this.modalRef.close(this.form);\r\n },\r\n error: err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao gravar arquivo');\r\n }\r\n })\r\n );\r\n }\r\n\r\n novoFicheiro(anexo?: any) {\r\n return this.fb.group({\r\n id: anexo?.id ?? 0,\r\n idArquivo: anexo?.idArquivo ?? 0,\r\n conteudo: anexo?.conteudo ?? '',\r\n nome: anexo?.nome ?? '',\r\n tamanho: anexo?.tamanho ?? 0\r\n });\r\n }\r\n}\r\n","\r\n \r\n\r\n
\r\n
\r\n \r\n Tipo de arquivo\r\n \r\n Seleccione o tipo de arquivo\r\n {{ tipoArquivo?.nome }}\r\n \r\n \r\n \r\n\r\n\r\n
\r\n \r\n Nome\r\n \r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n \r\n Seleccione\r\n \r\n {{ v.valor }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ val.valor }}\r\n cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n \r\n Seleccione\r\n \r\n {{ v.valor | currency:'':'' }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ val.valor }}\r\n cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n \r\n Seleccione\r\n \r\n {{ v.valor }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ val.valor }}\r\n cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ form.value?.tipo?.campos[indexCampo]?.nome }}\r\n \r\n Seleccione\r\n \r\n \r\n {{ v.valor | date:'dd/MM/yyyy' }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ val.valor | date:'dd/MM/yyyy' }}\r\n cancel\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {tabMessages} from 'app/shared/fake.db/data';\r\nimport {CampoValor, GaArquivo, GaArquivoResponse} from '../../models/gestao-arquivos/ga-arquivo';\r\nimport {Accao} from '../../models/ENUM';\r\nimport {EqFicheiro} from '../../models/equipamentos/eq-ficheiro';\r\nimport {Util} from '../../models/generico/util';\r\nimport {DatePipe} from '@angular/common';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport {GaArquivoService} from '@services/gestao-arquivos/ga-arquivo.service';\r\nimport {NotificacaoService} from '@services/notificacao/notificacao.service';\r\nimport {mergeMap} from 'rxjs/operators';\r\nimport {GaCampo, GaTipo} from '../../models/gestao-arquivos/ga-tipo';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {ModalConfirmacaoComponent} from '../../../views/equipamentos/componentes/modais/modal-confirmacao/modal-confirmacao.component';\r\nimport {DataTypes} from '../../../views/gestao-arquivos/ga-tipo-campo/ga-tipo-campo.component';\r\nimport {KArquivoComponent} from '@shared/components/k-arquivo/k-arquivo.component';\r\nimport {FormGroup} from '@angular/forms';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'k-arquivos',\r\n templateUrl: './k-arquivos.component.html',\r\n styleUrls: ['./k-arquivos.component.scss'],\r\n providers: [DatePipe]\r\n})\r\nexport class KArquivosComponent implements OnInit, OnDestroy, OnChanges {\r\n loading = false;\r\n @Input() action = '';\r\n @Input() parentId = 0;\r\n @Input() area = '';\r\n @Input() tipo!: GaTipo;\r\n @Input() arquivos: GaArquivoResponse[] = [];\r\n @Output() deleteEvent = new EventEmitter();\r\n @Output() updateEvent = new EventEmitter();\r\n filteredArquivos: GaArquivoResponse[] = [];\r\n readonly actions = Accao;\r\n readonly messages = tabMessages;\r\n readonly types = DataTypes;\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private datePipe: DatePipe,\r\n private _notificacao: NotificacaoService,\r\n private dialog: MatDialog,\r\n private arquivoService: GaArquivoService) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes['arquivos']?.currentValue) {\r\n this.filteredArquivos = [...this.arquivos\r\n .filter(a => (a.idTipo ?? a.tipo?.id) === this.tipo.id)\r\n .sort((a, b) =>\r\n Number(a.campos[0]?.valor) - Number(b.campos[0]?.valor))];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n download(arquivo: GaArquivo, anexo: EqFicheiro) {\r\n this.loading = true;\r\n const titulo = anexo.nome ||\r\n `Sem título-${this.datePipe.transform(arquivo.dataCriacao, 'dd/MM/yyyy HH:mm:ss')}`;\r\n if (!Util.isHttpRequest(anexo.conteudo)) {\r\n Util.downloadAnexo(anexo.conteudo, titulo);\r\n this.loading = false;\r\n return;\r\n }\r\n this.subscriptions.push(this.arquivoService.download(anexo.conteudo)\r\n .subscribe(res => {\r\n const blobUrl = res.objecto;\r\n Util.downloadAnexo(blobUrl, titulo);\r\n this.loading = false;\r\n },\r\n error => {\r\n console.error(error);\r\n this.loading = false;\r\n }));\r\n }\r\n\r\n removerFicheiro(arquivo: GaArquivoResponse, anexo: any) {\r\n const splice = () => {\r\n const index = arquivo.anexos.indexOf(anexo);\r\n if (index !== -1) {\r\n arquivo.anexos.splice(index, 1);\r\n arquivo.anexos = [...arquivo.anexos];\r\n }\r\n };\r\n\r\n if (this.action === Accao.cadastrar) {\r\n if (arquivo.anexos.length <= 1) {\r\n this._notificacao.notificar('Não é possível eliminar o último anexo do arquivo. Pelo menos um anexo deve ser mantido.');\r\n return;\r\n }\r\n splice();\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.subscriptions.push(\r\n this.arquivoService.deleteFicheiro(arquivo.id, anexo.id).subscribe({\r\n next: res => {\r\n this.loading = false;\r\n splice();\r\n this._notificacao.notificar(res.mensagem, true);\r\n },\r\n error: err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao remover o ficheiro');\r\n }\r\n })\r\n );\r\n }\r\n\r\n byCampo(item: CampoValor, campo: GaCampo) {\r\n return item.idCampo === campo.id;\r\n }\r\n\r\n editar(arquivo?) {\r\n const modalRef = this.dialog.open(KArquivoComponent, {\r\n width: '70vw',\r\n height: '85vh',\r\n data: {tiposArquivos: [this.tipo], parentId: this.parentId, area: this.area, arquivo, action: this.action}\r\n });\r\n\r\n modalRef.afterClosed().subscribe((res: FormGroup) => {\r\n if (res?.valid) {\r\n if (arquivo) {\r\n this.updateEvent.emit(res.value);\r\n } else {\r\n this.arquivos.push(res.value);\r\n this.arquivos = [...this.arquivos];\r\n }\r\n }\r\n });\r\n }\r\n\r\n remover(row: GaArquivoResponse, index: number) {\r\n const dialogRef = this.dialog.open(ModalConfirmacaoComponent, {\r\n data: {\r\n header: 'Confirmação',\r\n acceptLabel: 'Confirmar',\r\n rejectLabel: 'Cancelar',\r\n message: `Tem a certeza que pretende remover este arquivo?`\r\n }\r\n });\r\n this.subscriptions.push(\r\n dialogRef.afterClosed().pipe(\r\n mergeMap(accepted => {\r\n if (!accepted) {\r\n return new Observable();\r\n }\r\n if (this.action === Accao.cadastrar) {\r\n this.deleteEvent.emit(row.id);\r\n return new Observable();\r\n }\r\n this.loading = true;\r\n return this.arquivoService.deleteArquivo(row.id);\r\n })\r\n ).subscribe({\r\n next: res => {\r\n this.deleteEvent.emit(row.id);\r\n this._notificacao.notificar(res.mensagem, true);\r\n this.loading = false;\r\n },\r\n error: err => {\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || `Falha ao remover o arquivo`);\r\n this.loading = false;\r\n }\r\n })\r\n );\r\n }\r\n\r\n sort(e: any) {\r\n const campo = this.tipo.campos.find(c => c.nome === e.column.name);\r\n this.filteredArquivos = [...this.filteredArquivos\r\n .sort((a, b) => {\r\n const _a = Number(a.campos.find(c => c.idCampo === campo?.id)?.valor);\r\n const _b = Number(b.campos.find(c => c.idCampo === campo?.id)?.valor);\r\n return e.newValue === 'desc' ? _a - _b : _b - _a;\r\n })];\r\n }\r\n}\r\n","\r\n\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n {{ anexo?.nome }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {{ row.nome }}\r\n {{ row.nome }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ (row.campos | filterFn: byCampo: campo)[0]?.valor }}\r\n {{ (row.campos | filterFn: byCampo: campo)[0]?.valor }}\r\n {{ (row.campos | filterFn: byCampo: campo)[0]?.valor | parseValue: campo.codTipo | date:'dd/MM/yyyy' }}\r\n {{ (row.campos | filterFn: byCampo: campo)[0]?.valor | currency: '':'' }}\r\n {{ (row.campos | filterFn: byCampo: campo)[0]?.valor ? 'Sim' : 'Não' }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ row.dataCriacao | date: 'dd/MM/yyyy HH:mm:ss' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ row.anexos.length }}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import {Component, Input, OnInit, TemplateRef, ViewEncapsulation} from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'k-card-column',\r\n templateUrl: './k-card-column.component.html',\r\n styleUrls: ['./k-card-column.component.scss'],\r\n // tslint:disable-next-line:use-component-view-encapsulation\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class KCardColumnComponent implements OnInit {\r\n @Input() template!: TemplateRef;\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import {Component, ContentChildren, EventEmitter, Input, OnInit, Output, QueryList} from '@angular/core';\r\nimport {KCardColumnComponent} from '@shared/components/k-card-column/k-card-column.component';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'k-card',\r\n templateUrl: './k-card.component.html',\r\n styleUrls: ['./k-card.component.scss']\r\n})\r\nexport class KCardComponent implements OnInit {\r\n @Input() header = '';\r\n @Input() footer = '';\r\n @Input() linkDetalhes!: any[] | string;\r\n @Input() list: any[] = [];\r\n @Input() linkEdicao!: any[] | string;\r\n @Output() removeEvent = new EventEmitter();\r\n @ContentChildren(KCardColumnComponent)\r\n public columns: QueryList;\r\n\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n \r\n
\r\n

{{ item[header] }}\r\n

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

{{ item[footer] }}

\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\r\nimport {GaArquivoResponse} from 'app/shared/models/gestao-arquivos/ga-arquivo';\r\nimport {GaTipo} from 'app/shared/models/gestao-arquivos/ga-tipo';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'k-tipos-arquivos',\r\n templateUrl: './k-tipos-arquivos.component.html',\r\n styleUrls: ['./k-tipos-arquivos.component.scss']\r\n})\r\nexport class KTiposArquivosComponent implements OnInit {\r\n @Input() tipos: GaTipo[] = [];\r\n @Input() height = 'calc(80vh - 280px)';\r\n @Input() parentId = 0;\r\n @Input() action = '';\r\n @Input() area = '';\r\n @Input() arquivos: GaArquivoResponse[] = [];\r\n @Output() deleteEvent = new EventEmitter();\r\n @Output() updateEvent = new EventEmitter();\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n byTipo(item: GaArquivoResponse, tipo: GaTipo) {\r\n return item.idTipo === tipo.id;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ row.nome }}\r\n \r\n \r\n\r\n \r\n \r\n {{ row.guardaNomeFicheiro ? 'Sim' : 'Não' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ row.sistema ? 'Sim' : 'Não' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ (arquivos | filterFn: byTipo: row).length }}\r\n \r\n \r\n\r\n","import { Component, OnInit, AfterViewInit, ViewChild, HostListener, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { \r\n Router, \r\n NavigationEnd, \r\n RouteConfigLoadStart, \r\n RouteConfigLoadEnd, \r\n ResolveStart, \r\n ResolveEnd \r\n} from '@angular/router';\r\nimport { Subscription } from \"rxjs\";\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ThemeService } from '../../../services/theme.service';\r\nimport { LayoutService } from '../../../services/layout.service';\r\nimport { filter } from 'rxjs/operators';\r\nimport { JwtAuthService } from '../../../services/auth/jwt-auth.service';\r\n\r\n@Component({\r\n selector: 'app-admin-layout',\r\n templateUrl: './admin-layout.template.html',\r\n})\r\nexport class AdminLayoutComponent implements OnInit, AfterViewInit {\r\n public isModuleLoading: Boolean = false;\r\n private moduleLoaderSub: Subscription;\r\n private layoutConfSub: Subscription;\r\n private routerEventSub: Subscription;\r\n\r\n public scrollConfig = {}\r\n public layoutConf: any = {};\r\n public adminContainerClasses: any = {};\r\n rotaIsFAMobile: boolean = false;\r\n \r\n constructor(\r\n private router: Router,\r\n // public translate: TranslateService,\r\n public themeService: ThemeService,\r\n private layout: LayoutService,\r\n private cdr: ChangeDetectorRef,\r\n private jwtAuth: JwtAuthService\r\n ) {\r\n // Check Auth Token is valid\r\n this.jwtAuth.checkTokenIsValid().subscribe();\r\n\r\n\r\n // Close sidenav after route change in mobile\r\n this.routerEventSub = router.events.pipe(filter(event => event instanceof NavigationEnd))\r\n .subscribe((routeChange: NavigationEnd) => {\r\n this.rotaIsFAMobile = routeChange.url === '/facturacao/factura-mobile/criar-documento';\r\n this.layout.adjustLayout({ route: routeChange.url });\r\n this.scrollToTop();\r\n });\r\n \r\n // Translator init\r\n // const browserLang: string = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n }\r\n\r\n ngOnInit() {\r\n // this.layoutConf = this.layout.layoutConf;\r\n this.layoutConfSub = this.layout.layoutConf$.subscribe((layoutConf) => {\r\n this.layoutConf = layoutConf;\r\n // console.log(this.layoutConf);\r\n \r\n this.adminContainerClasses = this.updateAdminContainerClasses(this.layoutConf);\r\n this.cdr.markForCheck();\r\n });\r\n\r\n // FOR MODULE LOADER FLAG\r\n this.moduleLoaderSub = this.router.events.subscribe(event => {\r\n if(event instanceof RouteConfigLoadStart || event instanceof ResolveStart) {\r\n this.isModuleLoading = true;\r\n }\r\n if(event instanceof RouteConfigLoadEnd || event instanceof ResolveEnd) {\r\n this.isModuleLoading = false;\r\n }\r\n });\r\n }\r\n @HostListener('window:resize', ['$event'])\r\n onResize(event) {\r\n this.layout.adjustLayout(event);\r\n }\r\n \r\n ngAfterViewInit() {\r\n\r\n }\r\n \r\n scrollToTop() {\r\n if(document) {\r\n setTimeout(() => {\r\n let element;\r\n if(this.layoutConf.topbarFixed) {\r\n element = document.querySelector('#rightside-content-hold');\r\n } else {\r\n element = document.querySelector('#main-content-wrap');\r\n }\r\n element.scrollTop = 0;\r\n })\r\n }\r\n }\r\n ngOnDestroy() {\r\n if(this.moduleLoaderSub) {\r\n this.moduleLoaderSub.unsubscribe();\r\n }\r\n if(this.layoutConfSub) {\r\n this.layoutConfSub.unsubscribe();\r\n }\r\n if(this.routerEventSub) {\r\n this.routerEventSub.unsubscribe();\r\n }\r\n }\r\n closeSidebar() {\r\n this.layout.publishLayoutChange({\r\n sidebarStyle: 'closed'\r\n })\r\n }\r\n\r\n sidebarMouseenter(e) {\r\n // console.log(this.layoutConf);\r\n if(this.layoutConf.sidebarStyle === 'compact') {\r\n this.layout.publishLayoutChange({sidebarStyle: 'full'}, {transitionClass: true});\r\n }\r\n }\r\n\r\n sidebarMouseleave(e) {\r\n // console.log(this.layoutConf);\r\n if (\r\n this.layoutConf.sidebarStyle === 'full' &&\r\n this.layoutConf.sidebarCompactToggle\r\n ) {\r\n this.layout.publishLayoutChange({sidebarStyle: 'compact'}, {transitionClass: true});\r\n }\r\n }\r\n\r\n updateAdminContainerClasses(layoutConf) {\r\n return {\r\n 'navigation-top': layoutConf.navigationPos === 'top',\r\n 'sidebar-full': layoutConf.sidebarStyle === 'full',\r\n 'sidebar-compact': layoutConf.sidebarStyle === 'compact' && layoutConf.navigationPos === 'side',\r\n 'compact-toggle-active': layoutConf.sidebarCompactToggle,\r\n 'sidebar-compact-big': layoutConf.sidebarStyle === 'compact-big' && layoutConf.navigationPos === 'side',\r\n 'sidebar-opened': layoutConf.sidebarStyle !== 'closed' && layoutConf.navigationPos === 'side',\r\n 'sidebar-closed': layoutConf.sidebarStyle === 'closed',\r\n 'fixed-topbar': layoutConf.topbarFixed && layoutConf.navigationPos === 'side'\r\n }\r\n }\r\n \r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Component({\r\n selector: 'app-auth-layout',\r\n templateUrl: './auth-layout.component.html'\r\n})\r\nexport class AuthLayoutComponent implements OnInit {\r\n\r\n constructor(\r\n // public translate: TranslateService,\r\n ) {\r\n // Translator init\r\n // const browserLang: string = translate.getBrowserLang();\r\n // translate.use(browserLang.match(/en|fr/) ? browserLang : 'en');\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pos-layout',\r\n template: `\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n `\r\n})\r\nexport class PosLayoutComponent implements OnInit {\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {ExportFile} from '../../../services/export-file/export-file';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {ClientesService} from '../../../services/clientes-service/clientes.service';\r\nimport {FiltrosClientes} from '../../../models/clientes/filtros/filtroclientes';\r\nimport {Cliente} from '../../../models/clientes/cliente';\r\nimport {EmpresaService} from '../../../services/aplicacao-service/empresa.service';\r\nimport {Empresa} from '../../../models/empresa/empresa';\r\nimport {Subscription} from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-export-excel',\r\n templateUrl: './export-excel.component.html',\r\n styleUrls: ['./export-excel.component.scss']\r\n})\r\nexport class ExportExcelComponent implements OnInit {\r\n clientesFiltros: FiltrosClientes;\r\n processoArquivos = [\r\n {\r\n Id: 1,\r\n Tipo: 'Tipo 1',\r\n Nome: 'Nome do arquivo 1',\r\n Tamanho: 23456789\r\n },\r\n {\r\n Id: 1,\r\n Tipo: 'Tipo 1',\r\n Nome: 'Nome do arquivo 1',\r\n Tamanho: 23456789\r\n },\r\n {\r\n Id: 1,\r\n Tipo: 'Tipo 1',\r\n Nome: 'Nome do arquivo 1',\r\n Tamanho: 23456789\r\n },\r\n {\r\n Id: 1,\r\n Tipo: 'Tipo 1',\r\n Nome: 'Nome do arquivo 1',\r\n Tamanho: 23456789\r\n }\r\n ];\r\n clientes: Cliente[];\r\n filtro: FiltrosClientes = {\r\n Codigo: '',\r\n CodigoFiltro: 1,\r\n Email: '',\r\n IdEntidade: 1,\r\n IdEstados: [],\r\n CodIdiomas: [],\r\n CodPaises: [],\r\n IdTipos: [],\r\n NIF: '',\r\n Nome: ''\r\n };\r\nempresa: Empresa;\r\n empresaSub: Subscription;\r\n\r\n constructor( private file: ExportFile,\r\n private clientesService: ClientesService,\r\n private modalRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private empresaService: EmpresaService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.clientesService.getClientesListagem(this.filtro).subscribe(res => {\r\n this.clientes = res.objecto;\r\n });\r\n\r\n\r\n this.empresaSub = this.empresaService.getEmpresas().subscribe(res => {\r\n this.empresa = res[0];\r\n })\r\n }\r\n\r\n exportarExcel() {\r\n this.file.exportToFile(this.data.ficheiro, 'Clientes', 'TabArquivos', 'landscape');\r\n this.modalRef.close();\r\n }\r\n\r\n cancelar() {\r\n this.modalRef.close();\r\n }\r\n}\r\n","
\r\n \r\n close\r\n \r\n
\r\n

Export lista

\r\n
\r\n\r\n \r\n
\r\n
\"\"
\r\n

{{empresa.nomeEmpresa}}

\r\n \r\n \r\n \r\n Código\r\n Nome\r\n E-mail\r\n NIF\r\n País\r\n Província\r\n Estado\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{item.codigo}}\r\n \r\n {{ item?.nome }}\r\n {{ item?.email }}\r\n\r\n {{ item?.nif }}\r\n {{ item?.pais }}\r\n {{ item?.provincia }}\r\n \r\n {{ item?.idEstado ? 'Activo':'Activo'}}\r\n \r\n \r\n \r\n\r\n \r\n
\r\n\r\n\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-export-pdf',\r\n templateUrl: './export-pdf.component.html',\r\n styleUrls: ['./export-pdf.component.scss']\r\n})\r\nexport class ExportPdfComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","

export-pdf works!

\r\n","import {Component, EventEmitter, Input, Output} from '@angular/core';\r\nimport { mapaAccao } from '@config/accao.config';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ki-modal-base',\r\n template: `\r\n \r\n
\r\n \r\n
\r\n \r\n close\r\n \r\n
\r\n

\r\n {{ tituloModal }}\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n `\r\n})\r\nexport class ModalBaseComponent {\r\n @Input() tituloModal = '';\r\n @Input() loading = false;\r\n @Input() btnCancelar = '';\r\n @Input() btnGravar = 'Guardar';\r\n @Input() verBtnGravar = true;\r\n @Input() comBorda = true;\r\n @Input() primary = false;\r\n @Input() secondary = false;\r\n @Input() accao = '';\r\n @Input() codigoAccao = '';\r\n @Output() aoGravar = new EventEmitter();\r\n @Output() aoCancelar = new EventEmitter();\r\n mapaAccao = mapaAccao;\r\n constructor() {\r\n }\r\n\r\n cancelar(valor: boolean) {\r\n this.aoCancelar.emit(valor);\r\n }\r\n\r\n}\r\n","\r\nimport { Component, OnInit,Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n@Component({\r\n selector: 'app-aviso',\r\n templateUrl: './aviso.component.html',\r\n styleUrls: ['./aviso.component.scss']\r\n})\r\nexport class AvisoComponent implements OnInit {\r\n avisos: any[]=[]\r\n aviso: boolean = false\r\n title: string;\r\n textoConfirmar: string;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public modalRef: MatDialogRef,\r\n ) { \r\n this.textoConfirmar = this.data?.textoConfirmar\r\n this.data.avisos?.forEach((element, index) => {\r\n console.log('Elemento', element);\r\n this.avisos.push({\r\n indice: index,\r\n aviso: element\r\n })\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.aviso = this.data.aviso;\r\n \r\n \r\n\r\n console.log(\"Avisos:\",this.avisos)\r\n\r\n if (this.data.accao === 'ANULAR') {\r\n\r\n this.title = this.aviso ? \"Avisos\" : \"Anular \"+this.data.title;\r\n } else {\r\n\r\n this.title = this.aviso ? this.data.avisos.length > 1? \"Avisos\" : 'Aviso' : \"Remover \"+this.data.title;\r\n }\r\n }\r\n\r\n feichar(){\r\n this.modalRef.close(null);\r\n }\r\n\r\n cancelar() {\r\n this.modalRef.close(null);\r\n }\r\n\r\n remover() {\r\n this.modalRef.close(this.data);\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n close\r\n \r\n
\r\n \r\n
\r\n

{{title}}

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

\r\n {{data.message}}\r\n

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

{{aviso.aviso}}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-modal-erro',\r\n templateUrl: './modal-erro.component.html',\r\n styleUrls: ['./modal-erro.component.scss']\r\n})\r\nexport class ModalErroComponent implements OnInit {\r\n static parseMsg(msg: string, tipo?: 'SUCCESS' | 'ERROR') {\r\n return msg.split('\\n')\r\n .filter(line => line.trim() !== '')\r\n .map(line => {\r\n const match = RegExp(/Item \\d+: (.+)/).exec(line);\r\n return match ? {tipo: tipo || 'ERROR', mensagem: match[0]} : {tipo: tipo || 'SUCCESS', mensagem: line};\r\n });\r\n }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public mensagens: { tipo: string, mensagem: string }[]) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","
\r\n

Logs

\r\n\r\n \r\n \r\n \r\n \r\n check_circle\r\n error\r\n \r\n {{ m.mensagem }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n","import {Component, Inject, Input} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {Router} from '@angular/router';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'modal-sessao-expirada',\r\n template: `\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {{mensagem}} \r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n `\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class ModalSessaoExpirada {\r\n mensagem = '';\r\n constructor(private modalRef: MatDialogRef, private rota: Router, @Inject(MAT_DIALOG_DATA) public dados: any) {\r\n if (dados && dados.mensagem) {\r\n this.mensagem = dados.mensagem;\r\n }\r\n }\r\n\r\n redirecionarLogin() {\r\n localStorage.removeItem('utilizadorSessao');\r\n localStorage.removeItem('_utilizador');\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('permissoesUtilizador');\r\n this.rota.navigateByUrl('/sessoes/login');\r\n this.modalRef.disableClose = false;\r\n this.modalRef.afterClosed();\r\n }\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MensagemDto } from 'app/shared/models/aplicacao/mensagemdto';\r\n\r\n\r\n@Component({\r\n selector: 'app-modal-remover',\r\n templateUrl: './modal-remover.component.html',\r\n styleUrls: ['./modal-remover.component.scss']\r\n})\r\nexport class ModalRemoverComponent implements OnInit {\r\n nome: string;\r\n titulo: string;\r\n mensagem: string;\r\n mensagemRetorno: MensagemDto;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public modalRef: MatDialogRef,\r\n ) {\r\n this.titulo = data?.titulo;\r\n this.mensagem = data?.mensagem;\r\n }\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n onNoClick(code?: number) {\r\n this.modalRef.close(code);\r\n }\r\n\r\n removerCaracteristica() {\r\n this.modalRef.close(this.data.idCaracteristica);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n close\r\n \r\n
\r\n
\r\n

Remover {{titulo}}

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

\r\n

\r\n Confirma a remoção da caracteristica {{mensagem}}?\r\n

\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n ","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { MenuDataService } from '@services/aplicacao-service/data/menu-data.service';\r\nimport { DashboardService } from '@services/dashboard/dashboard.service';\r\n\r\n@Component({\r\n selector: 'app-notifications',\r\n templateUrl: './notifications.component.html'\r\n})\r\nexport class NotificationsComponent implements OnInit {\r\n @Input() notificPanel;\r\n\r\n // Dummy notifications\r\n notifications = [\r\n {\r\n message: 'New contact added',\r\n icon: 'assignment_ind',\r\n time: '2 Refere',\r\n route: '/inbox',\r\n color: 'primary'\r\n }, {\r\n message: '2 Referência para tratar',\r\n icon: 'chat',\r\n time: '0 min',\r\n route: '/facturacao/referencia-multicaixa/tratar',\r\n color: 'accent'\r\n }, {\r\n message: 'Server rebooted',\r\n icon: 'settings_backup_restore',\r\n time: '12 min ago',\r\n route: '/charts',\r\n color: 'warn'\r\n }\r\n]\r\n\r\nMENU = {\r\n VENDA: \"FACTUR\",\r\n COMPRA: \"COMPRA\",\r\n TESOURARIA: \"TESOUR\",\r\n ENTIDADE: \"CLIENT\",\r\n ARTIGO: \"ARTIGO\",\r\n DASHBO: \"DASHBO\",\r\n};\r\n Menu_Vendas: boolean;\r\n\r\n constructor(private router: Router, private dashboardService: DashboardService,private menuStore: MenuDataService) {\r\n this.menusAplicacao();\r\n }\r\n\r\n menusAplicacao() {\r\n this.menuStore.getListaMenus().subscribe((menus) => {\r\n this.Menu_Vendas = menus.findIndex((m) => m.codMenu === this.MENU.VENDA) !== -1;\r\n if(this.Menu_Vendas){\r\n this.getNotificacoeaFincanca();\r\n }\r\n });\r\n }\r\n\r\n getNotificacoeaFincanca() {\r\n this.dashboardService.notificacoes().subscribe((m) => {\r\n const dados = m.objecto;\r\n this.notifications = dados?.notifications;\r\n },error=>{\r\n console.log(\"Erro das notificacoes fin\",error);\r\n }) }\r\n\r\n ngOnInit() {\r\n this.router.events.subscribe((routeChange) => {\r\n if (routeChange instanceof NavigationEnd) {\r\n this.notificPanel.close();\r\n }\r\n });\r\n }\r\n clearAll(e) {\r\n e.preventDefault();\r\n this.notifications = [];\r\n }\r\n\r\n // return this.router.navigateByUrl(\r\n // \"facturacao/referencia-multicaixa/tratar\"\r\n // );\r\n \r\n}\r\n","
\r\n
Notificação
\r\n
\r\n\r\n \r\n \r\n {{n.icon}}\r\n \r\n
\r\n

{{n.message}}

\r\n {{n.time}}\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {FormBuilder, FormGroup} from '@angular/forms';\r\nimport {Accao} from 'app/shared/models/ENUM';\r\nimport {ThemeService} from 'app/shared/services/theme.service';\r\nimport {Util} from '../../../models/generico/util';\r\n\r\nexport interface AdicionarConfig {\r\n matTooltip: string;\r\n callback?: () => void;\r\n}\r\n\r\n@Component({\r\n selector: 'app-auto-complete',\r\n templateUrl: './auto-complete.component.html',\r\n styleUrls: ['./auto-complete.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AutoCompleteComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input('lista') lista: any[];\r\n @Input('listaAux') listaAux: any[];\r\n @Input('colunas') colunas: any[];\r\n @Input('chaves') chaves: any[];\r\n @Input('tamanhoPainel') tamanhoPainel: string;\r\n @Input('tamanhoColunas') tamanhoColunas: string;\r\n @Input('mostrarBotaoAdd') mostrarBotaoAdd = false;\r\n @Input() adicionarConfig?: AdicionarConfig;\r\n @Input() chaveIndex = 0;\r\n @Input('setValue') setValue: string = null;\r\n @Input('checkBox') checkBox = true;\r\n @Input('placeholder') placeholder = 'nome';\r\n @Input('placeholderAux') placeholderAux = 'nome';\r\n @Output('selecionados') selecionados = new EventEmitter();\r\n @Output('callback') callback = new EventEmitter();\r\n @Input('Reset') Reset: boolean;\r\n\r\n @ViewChild('componetKey') componetKey: any;\r\n @ViewChild('input1') input1: any;\r\n @ViewChild('t') t: any;\r\n @ViewChild('icon') icon: any;\r\n @ViewChild('matform') matform: any;\r\n @ViewChild('header') header: any;\r\n @ViewChildren('options') options: QueryList;\r\n @ViewChildren('d') d: QueryList;\r\n @Input() _readonly = false;\r\n\r\n @Input() accao = '';\r\n actions = Accao;\r\n form: FormGroup;\r\n todosbol = false;\r\n items: any[] = [{caracteristicaP: 'teste'}];\r\n\r\n itemsSelecionados: any[] = [];\r\n stateClose: any;\r\n letInputfocusInState: any;\r\n letInputfocusState: any;\r\n letmatSonStaste: any;\r\n simaforoTodos = false;\r\n simaforooptionClick = false;\r\n mostrarIcon = true;\r\n OcultarIcon = true;\r\n OcultarIcon1 = false;\r\n semaforo = 0;\r\n visibilidadeIcon = 'hidden';\r\n @Output() onSet = new EventEmitter();\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private themeService: ThemeService,\r\n ) {\r\n this.form = this.fb.group({\r\n valor: ['']\r\n });\r\n this.lista = [];\r\n this.listaAux = [];\r\n }\r\n\r\n\r\n ngAfterViewInit() {\r\n this.initOptionsState();\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (this.setValue !== null) {\r\n this.form.get('valor').setValue(this.setValue);\r\n }\r\n\r\n if (this.Reset) {\r\n this.itemsSelecionados = [];\r\n this.placeholder = this.placeholderAux;\r\n if (this.t) {\r\n this.t._checked = false;\r\n }\r\n\r\n this.form.get('valor').setValue('');\r\n const checkList: any[] = this.d?.toArray();\r\n\r\n checkList?.forEach((check) => {\r\n check._checked = false;\r\n });\r\n this.Reset = true;\r\n }\r\n }\r\n\r\n config() {\r\n (this.componetKey._element.nativeElement as HTMLElement).style.position = 'unset !important';\r\n\r\n }\r\n\r\n getValue(obj, key) {\r\n const keys = key.split('.');\r\n let value = obj;\r\n\r\n for (const element of keys) {\r\n value = value ? value[element] : null;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n initOptionsState() {\r\n\r\n if (this.checkBox) {\r\n (this.icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n }\r\n\r\n this.header._element.nativeElement.__zone_symbol__clickfalse = [];\r\n this.letInputfocusInState = this.input1.nativeElement.__zone_symbol__focusinfalse;\r\n this.letInputfocusState = this.input1.nativeElement.__zone_symbol__focusfalse;\r\n this.letmatSonStaste = this.matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse;\r\n if (this.checkBox) {\r\n this.options.forEach((option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n adicionarClassificacao(item: any) {}\r\n\r\n\r\n async ocultarIcon(se, matform) {\r\n\r\n this.OcultarIcon1 = true;\r\n\r\n if (this.simaforooptionClick) {\r\n\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n\r\n await (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chaves[this.chaveIndex].valor + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n setTimeout(() => {\r\n this.mostrarIcon = true;\r\n this.simaforooptionClick = true;\r\n\r\n if (this.checkBox) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n }\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n }, 100);\r\n } else {\r\n setTimeout(async () => {\r\n\r\n if (this.checkBox && await this.OcultarIcon) {\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n }\r\n\r\n this.OcultarIcon = true;\r\n }, 150);\r\n }\r\n }\r\n\r\n\r\n filtrarArtigoClassificacao(event: any) {\r\n\r\n const termo: string = event.target.value;\r\n this.lista = this.listaAux;\r\n if (termo && termo !== '') {\r\n this.lista = this.lista.filter(item1 => {\r\n\r\n let bol = false;\r\n this.chaves.forEach(chave => {\r\n bol ||= (Util.crawl(item1, chave.valor) as string)?.toLowerCase().includes(termo.toLowerCase());\r\n });\r\n return bol;\r\n });\r\n }\r\n\r\n if (!this.checkBox) {\r\n\r\n this.selecionados.emit(\r\n {\r\n 'selecionado': null\r\n }\r\n );\r\n }\r\n\r\n setTimeout(() => {\r\n\r\n const checkList: any[] = this.d.toArray();\r\n // checkList.forEach( (item: any) => {\r\n this.itemsSelecionados.forEach((selecionado, i) => {\r\n\r\n this.lista.forEach((item, j) => {\r\n if (selecionado['' + this.chaves[0].valor + ''] === item['' + this.chaves[0].valor + '']) {\r\n\r\n if (checkList[j]) {\r\n checkList[j]._checked = true;\r\n }\r\n }\r\n\r\n });\r\n // })\r\n });\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n\r\n\r\n if (this.t) {\r\n\r\n this.t._checked = true;\r\n }\r\n }\r\n }, 0);\r\n\r\n }\r\n\r\n onClose() {\r\n let valor = '';\r\n this.onSet.emit(true);\r\n this.itemsSelecionados.forEach((selecionado, i) => {\r\n const key = this.chaves[this.chaveIndex].valor;\r\n const keyParts = key.split('.'); // Split the key by dot\r\n\r\n let value = selecionado;\r\n for (const part of keyParts) {\r\n value = value[part]; // Access each nested property\r\n }\r\n valor += value;\r\n if ((i + 1) < this.itemsSelecionados.length) {\r\n valor += ', ';\r\n }\r\n\r\n this.form.get('valor').setValue(valor);\r\n });\r\n }\r\n\r\n\r\n activar() {\r\n\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = this.stateClose;\r\n // this.input1._element.nativeElement.focus({ focusVisible: false });\r\n }\r\n\r\n setIconVisible() {\r\n this.lista = this.listaAux;\r\n if (this.checkBox) {\r\n\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n }\r\n }\r\n\r\n closeList(se, matform, icon) {\r\n this.OcultarIcon1 = true;\r\n if (this.checkBox) {\r\n this.placeholder = this.placeholderAux;\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n (se as HTMLElement).click();\r\n\r\n if (this.itemsSelecionados.length === 1) {\r\n this.placeholder = this.itemsSelecionados[0]['' + this.chaves[0].valor + ''];\r\n } else if (this.itemsSelecionados.length > 1) {\r\n this.placeholder = '(' + this.itemsSelecionados.length + ') selecionados';\r\n }\r\n\r\n setTimeout(() => {\r\n this.mostrarIcon = true;\r\n (icon._elementRef.nativeElement as HTMLElement).style.visibility = 'hidden';\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n\r\n }, 100);\r\n } else {\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = [];\r\n this.input1.nativeElement.__zone_symbol__focusfalse = [];\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = [];\r\n (se as HTMLElement).click();\r\n\r\n setTimeout(() => {\r\n this.mostrarIcon = true;\r\n this.input1.nativeElement.__zone_symbol__focusinfalse = this.letInputfocusInState;\r\n this.input1.nativeElement.__zone_symbol__focusfalse = this.letInputfocusState;\r\n matform._elementRef.nativeElement.children[0].children[0].__zone_symbol__clickfalse = this.letmatSonStaste;\r\n }, 100);\r\n }\r\n }\r\n\r\n desativarAccaoAoClicarNoHeader(matform) {\r\n matform._element.nativeElement.__zone_symbol__clickfalse = [];\r\n\r\n }\r\n\r\n\r\n private updateText() {\r\n this.placeholder = this.placeholderAux;\r\n\r\n let valor = '';\r\n this.itemsSelecionados.forEach((item, i) => {\r\n valor += item['' + this.chaves[this.chaveIndex].valor + ''];\r\n if ((i + 1) < this.itemsSelecionados.length) {\r\n valor += ', ';\r\n }\r\n });\r\n this.form.get('valor').setValue(valor);\r\n valor;\r\n\r\n\r\n }\r\n\r\n async prevDefault(evento: any) {\r\n setTimeout(async () => {\r\n // this.close._element.nativeElement.__zone_symbol__clickfalse = false;\r\n }, 0\r\n );\r\n }\r\n\r\n activarSemaforo() {\r\n this.simaforoTodos = true;\r\n }\r\n\r\n\r\n async checkAll(evento) {\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n const checkList: any[] = this.d.toArray();\r\n this.itemsSelecionados = [];\r\n if (evento.checked) {\r\n await checkList.forEach((check) => {\r\n check._checked = true;\r\n });\r\n\r\n this.itemsSelecionados = this.listaAux;\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else {\r\n await checkList.forEach((check) => {\r\n check._checked = false;\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n this.updateText();\r\n }\r\n\r\n async todos(valor: any, todosbol: boolean) {\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n }\r\n\r\n async selecionar(evento, item, todosOption) {\r\n\r\n if (this.semaforo < 1) {\r\n if (this.checkBox) {\r\n if (evento.checked) {\r\n await this.itemsSelecionados.push(item);\r\n } else {\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chaves[0].valor + ''] !== item['' + this.chaves[0].valor + ''];\r\n });\r\n }\r\n\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n } else {\r\n todosOption._checked = false;\r\n }\r\n } else {\r\n this.selecionados.emit(\r\n {'selecionado': item}\r\n );\r\n }\r\n this.updateText();\r\n } else {\r\n this.semaforo = 0;\r\n evento.source._checked = !evento.source._checked;\r\n }\r\n\r\n\r\n this.semaforo++;\r\n\r\n\r\n }\r\n\r\n async defi(matform, idOption?: string) {\r\n // console.log('lo2', this.semaforo)\r\n\r\n this.semaforo = 0;\r\n if (this.checkBox) {\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n }\r\n if (this.semaforo === 0) {\r\n if (idOption) {\r\n const el: HTMLElement = document.getElementById(idOption) as HTMLElement;\r\n if (el) {\r\n el.click();\r\n }\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n async definirIdModulo(item, todosOption: any, valor?: any, index?: number, se?: any, idOption?: string) {\r\n // console.log('SEEE 1:::')\r\n\r\n const el: HTMLElement = document.getElementById(idOption) as HTMLElement;\r\n el.click();\r\n if (this.checkBox) {\r\n this.mostrarIcon = false;\r\n this.simaforooptionClick = false;\r\n this.OcultarIcon = false;\r\n await this.input1.nativeElement.focus({focusVisible: true});\r\n\r\n (this.icon?._elementRef.nativeElement as HTMLElement).style.visibility = 'visible';\r\n this.OcultarIcon = false;\r\n\r\n if (this.checkBox) {\r\n await this.options.forEach(async (option: any) => {\r\n option._element.nativeElement.__zone_symbol__clickfalse = false;\r\n });\r\n }\r\n\r\n const checkList: any[] = this.d.toArray();\r\n let bol: boolean = checkList[index]._checked;\r\n todosOption._checked = false;\r\n this.todosbol = false;\r\n\r\n if (await !this.simaforoTodos) {\r\n checkList[index]._checked = await !valor._results[index]._checked;\r\n bol = await !checkList[index]._checked;\r\n }\r\n\r\n if (!bol) {\r\n let existe = false;\r\n await this.itemsSelecionados.forEach(selecionado => {\r\n if (selecionado[this.chaves[0].valor] === item[this.chaves[0].valor]) {\r\n existe = true;\r\n }\r\n });\r\n\r\n if (!existe) {\r\n await this.itemsSelecionados.push(item);\r\n }\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n } else if (bol) {\r\n this.itemsSelecionados = await this.itemsSelecionados.filter(item1 => {\r\n return item1['' + this.chaves[0].valor + ''] !== item['' + this.chaves[0].valor + ''];\r\n });\r\n this.selecionados.emit(\r\n {'selecionados': this.itemsSelecionados}\r\n );\r\n }\r\n\r\n if (this.itemsSelecionados.length === this.listaAux.length) {\r\n todosOption._checked = true;\r\n }\r\n\r\n this.updateText();\r\n this.simaforoTodos = false;\r\n } else {\r\n // Aqui\r\n this.form.get('valor').setValue(item[this.chaves[this.chaveIndex].valor]);\r\n\r\n this.selecionados.emit(\r\n {'selecionado': item}\r\n );\r\n\r\n\r\n (se as HTMLElement).click();\r\n setTimeout(() => {\r\n }, 100);\r\n }\r\n\r\n }\r\n\r\n aoSelecClassificacaoPorAutoComplete(evento: any, se: any) {\r\n if (!this.checkBox) {\r\n const item = evento.option.value;\r\n this.itemsSelecionados = [];\r\n this.itemsSelecionados.push(item);\r\n this.updateText();\r\n this.selecionados.emit(\r\n {'selecionado': this.itemsSelecionados[0]}\r\n );\r\n }\r\n }\r\n\r\n openPanel() {\r\n this.lista = [...this.listaAux];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n {{ placeholder }}\r\n \r\n\r\n \r\n arrow_drop_down\r\n \r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n\r\n \r\n \r\n {{ coluna.valor }}\r\n \r\n \r\n\r\n \r\n \r\n +\r\n \r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ getValue(item, chave.valor) }}\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {FormArray, FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {Country, CountryCod} from 'app/shared/models/artigos/country-code-json/country-cod';\r\nimport {ClienteContactos} from 'app/shared/models/clientes/cliente-contactos';\r\nimport {ComponenteTelefonico} from 'app/shared/models/recursos-humanos/Colaboradores/componente-telefonico';\r\nimport {AplicacaoService} from 'app/shared/services/aplicacao-service/aplicacao.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {Paises} from '../../../models/aplicacao/paises';\r\nimport {Accao} from '../../../models/ENUM';\r\nimport {PhoneComponent} from '@shared/components/telefone/app-phone';\r\n\r\nconst CONTACTOS_INICIAIS: any[] = [\r\n {idTipoContacto: 1},\r\n {idTipoContacto: 1},\r\n {idTipoContacto: 2},\r\n {idTipoContacto: 2},\r\n {idTipoContacto: 3},\r\n {idTipoContacto: 3},\r\n];\r\n\r\n@Component({\r\n selector: 'app-contacto',\r\n templateUrl: './contacto.component.html',\r\n styleUrls: ['./contacto.component.scss'],\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [CountryCod]\r\n})\r\nexport class ContactoComponent implements OnInit, AfterViewInit, OnChanges {\r\n public formContacto: FormGroup;\r\n protected mostrarDelete: number;\r\n protected listaTiposContactos;\r\n protected listaContriesFlag: any[];\r\n ContactosRemover = new Set();\r\n protected initVectorComponenteTelefonico: ComponenteTelefonico[];\r\n // protected idsRentecoesClientes: number[];\r\n protected selectedRows: any[];\r\n protected isoCountryCode: Country;\r\n protected indicativoActual: string;\r\n protected telInvalido: boolean;\r\n protected selected: any[];\r\n protected selTel: Country;\r\n protected strSelect1: string;\r\n protected strSelect2: string;\r\n protected countryCode: string;\r\n protected valido = true;\r\n protected subscriptions: Subscription[];\r\n @Input('listaDeContactos') listaDeContactos: ClienteContactos[];\r\n @Input('obterListasContacto') obterListasContacto = false;\r\n @Input('idCliente') idCliente = 0;\r\n @Input('actualizarListasContacto') actualizarListasContacto = false;\r\n @Output('obterLista') obterLista: any = new EventEmitter();\r\n @Input() validarLista = true;\r\n @Input() paises: Paises[] = [];\r\n @Input() accao = '';\r\n @ViewChildren('matSelect1') contactosRef: any[] = [];\r\n @ViewChildren(PhoneComponent) phoneComponents!: QueryList;\r\n readonly actions = Accao;\r\n loading = true;\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private countryCod: CountryCod,\r\n private aplicacao: AplicacaoService\r\n ) {\r\n\r\n this.subscriptions = [];\r\n this.listaTiposContactos = [];\r\n this.listaDeContactos = [];\r\n this.listaContriesFlag = this.countryCod.getContryObject();\r\n this.selectedRows = [];\r\n this.isoCountryCode = null;\r\n this.indicativoActual = '';\r\n this.telInvalido = true;\r\n this.selected = [];\r\n this.selTel = null;\r\n this.accao = 'C';\r\n this.initStrSelect();\r\n this.formContacto = this.fb.group({\r\n contactos: this.fb.array([])\r\n });\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscriptions.push(\r\n this.aplicacao.getTiposContactos()\r\n .subscribe(tiposContacto => {\r\n this.loading = false;\r\n this.listaTiposContactos = tiposContacto.filter(\r\n x => x.tipoContacto?.trim()?.toUpperCase() !== 'FAX'\r\n && x.tipoContacto?.trim() !== 'Skype');\r\n this.listaTiposContactos.unshift({\r\n id: 1,\r\n tipoContacto: 'E-mail',\r\n usaNewsLetters: true,\r\n usarCliente: true,\r\n usarRh : true,\r\n });\r\n\r\n if(this.listaDeContactos.length === 0) {\r\n this.listaTiposContactos.forEach(t => {\r\n const c = this.listaDeContactos.find(a => a.idTipoContacto === t.id);\r\n this.contactos.push(this.initFormContacto({\r\n ...c,\r\n idTipoContacto: t.id,\r\n tipoContacto: t.tipoContacto,\r\n }));\r\n });\r\n }\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n ngAfterViewInit(): void {\r\n\r\n }\r\n\r\n get contactos() {\r\n return this.formContacto.get('contactos') as FormArray;\r\n }\r\n\r\n validarContacto(index: number, chaves: string[]): boolean {\r\n chaves.forEach((chave) => {\r\n const control: FormControl = this.contactos['controls'][index].get(chave) as FormControl;\r\n control?.setErrors(null);\r\n switch (chave) {\r\n case 'idTipoContacto' : {\r\n if (control.value < 1) {\r\n control.setErrors({invalido: true});\r\n this.valido = false;\r\n }\r\n break;\r\n }\r\n case 'selectedCountryCode' : {\r\n const idTipoContacto: number = this.contactos['controls'][index].get('idTipoContacto').value;\r\n if (idTipoContacto > 1 && idTipoContacto < 5) {\r\n\r\n if (!control.value) {\r\n control.setErrors({invalido: true});\r\n this.contactos['controls'][index].get('contacto').setErrors({invalido: true});\r\n this.contactos['controls'][index].get('contacto').markAsTouched();\r\n this.valido = false;\r\n }\r\n }\r\n break;\r\n }\r\n case 'contacto' : {\r\n\r\n const idTipoContacto: number = this.contactos['controls'][index].get('idTipoContacto').value;\r\n if (idTipoContacto > 1 && idTipoContacto < 5) {\r\n const country: Country[] = this.listaContriesFlag.filter((country: Country) => {\r\n return country.dialCode === (\r\n control.value as string).replace(/\\s/g, '');\r\n });\r\n\r\n if (!(country.length === 0 && this.contactos['controls'][index].get('selectedCountryCode').value && control.value)) {\r\n control.setErrors({invalido: true});\r\n this.valido = false;\r\n }\r\n } else if (idTipoContacto === 1) {\r\n control.addValidators([Validators.pattern(/^(([^<>()\\[\\]\\\\.,;:\\s@']+(\\.[^<>()\\[\\]\\\\.,;:\\s@']+)*)|('.+'))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/)]);\r\n control.updateValueAndValidity();\r\n if (control.invalid) {\r\n this.valido = false;\r\n }\r\n } else {\r\n control.addValidators([Validators.required]);\r\n control.updateValueAndValidity();\r\n\r\n if (control.invalid) {\r\n this.valido = false;\r\n }\r\n }\r\n break;\r\n }\r\n\r\n }\r\n control?.markAsTouched();\r\n });\r\n return this.valido;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n\r\n if (changes && changes['paises'] && changes['paises'].currentValue) {\r\n this.paises = changes['paises'].currentValue;\r\n }\r\n\r\n if (this.obterListasContacto) {\r\n // Emitir o evento ao parent component //\r\n this.valido = true;\r\n\r\n this.contactos.controls.forEach((control: FormControl, index) => {\r\n\r\n if (this.contactos.controls[index].value.idTipoContacto) {\r\n\r\n if (!this.contactos.controls[index].value.idTipoContacto\r\n && this.contactos.controls[index].value.idTipoContacto > 0\r\n && (this.contactos.controls[index].get('contacto').value\r\n && (this.contactos.controls[index].get('contacto').value).trim().length < 1)\r\n ) {\r\n this.contactos.controls[index].get('invalido').setValue(true);\r\n }\r\n\r\n if (this.contactos.controls[index].get('tipoContacto').value === 'E-mail') {\r\n if (!this.validateEmail(control.value.contacto)) {\r\n this.contactos.controls[index].get('invalido').setValue(true);\r\n } else {\r\n this.contactos.controls[index].get('invalido').setValue(false);\r\n }\r\n }\r\n\r\n }\r\n\r\n });\r\n\r\n this.obterLista.emit({\r\n valido: (this.contactos.value.filter(obj => obj.idTipoContacto && obj.invalido)).length > 0 ? false : true,\r\n contactos: this.contactos.value.filter(obj => obj.idTipoContacto && obj.contacto !== null).map(obj => obj),\r\n ContactosRemover: [...this.ContactosRemover]\r\n });\r\n }\r\n\r\n if (this.actualizarListasContacto && this.listaDeContactos.length > 0) {\r\n while(this.contactos.controls.length > 0) {\r\n this.contactos.removeAt(0);\r\n }\r\n this.listaDeContactos.forEach(c => {\r\n const i = (this.contactos.value as any[]).findIndex(x => x.idTipoContacto === c.idTipoContacto);\r\n this.contactos.push(this.initFormContacto(c));\r\n // if (i > -1) {\r\n // this.contactos.removeAt(i);\r\n // this.contactos.insert(i, this.initFormContacto(c));\r\n // }\r\n });\r\n\r\n setTimeout(() => {\r\n const elementosNativosRef = (this.contactosRef as any)._results as any[];\r\n\r\n (elementosNativosRef)?.forEach(nativoRef => {\r\n const id = nativoRef?._id;\r\n if (id) {\r\n const lista = (id as string).split('-');\r\n const index = lista[lista.length - 1];\r\n // const native: HTMLElement = document.getElementById(id);\r\n // const country: Country = (this.contactos['controls'][index].get('selectedCountryCode')).value;\r\n\r\n // Ver se uso outro prara inicializar\r\n // this.changeCountryCode(id, country, parseInt(index, 10));\r\n }\r\n });\r\n }, 500);\r\n }\r\n }\r\n\r\n\r\n initStrSelect() {\r\n this.strSelect1 = '
';\r\n this.strSelect2 = '
';\r\n }\r\n\r\n\r\n initFormContacto(contacto: ClienteContactos | null): FormGroup {\r\n let res = null;\r\n let countryCod = null;\r\n if (contacto?.idTipoContacto > 1 && contacto?.idTipoContacto < 5) {\r\n res = contacto?.contacto ? this.encontrarCodIso(contacto.contacto) : null;\r\n countryCod = res?.country ? res.country : null;\r\n }\r\n return this.fb.group({\r\n idContacto: contacto?.idContacto ?? 0,\r\n idCliente: this.idCliente,\r\n contacto: contacto?.contacto ?? '',\r\n caracterValido: false,\r\n invalido: false,\r\n valorAux: countryCod || '',\r\n selectedCountryCode: countryCod || [],\r\n idTipoContacto: contacto?.idTipoContacto,\r\n tipoContacto: contacto?.tipoContacto ?? '',\r\n activo: contacto?.activo,\r\n default: contacto?.default,\r\n });\r\n }\r\n\r\n\r\n async aoEscrever(formGroup: FormGroup, idComponent: string, i) {\r\n // await this.adicionarNovoContactoForm(idComponent, i, 3, 2);\r\n const control: FormControl = formGroup.get('contacto') as FormControl;\r\n control.setValidators(null);\r\n control.updateValueAndValidity();\r\n control.markAsTouched();\r\n // this.validarcontacto(control, 'E-mail');\r\n }\r\n\r\n\r\n changeCountryCode(idInPut: string, country: Country, index: number) {\r\n this.isoCountryCode = null;\r\n const fg = this.contactos['controls'][index];\r\n const native: HTMLElement = document\r\n .getElementById(idInPut) ?\r\n document.getElementById(idInPut)\r\n .children[0] as HTMLElement : null;\r\n\r\n let valor: string[] = [];\r\n let contacto = '';\r\n\r\n if ((fg.get('contacto').value.split(' ') as []).length > 1) {\r\n valor = fg\r\n .get('contacto')\r\n .value.split(' ');\r\n } else {\r\n contacto = (fg\r\n .get('contacto')\r\n .value as string).replace(this.indicativoActual, '');\r\n }\r\n\r\n let valorAux = '';\r\n for (let i = 1; i < valor.length; i++) {\r\n\r\n valorAux += ' ' + valor[i];\r\n }\r\n\r\n if (native && country) {\r\n native.innerHTML = this.strSelect1 + country.flag + this.strSelect2;\r\n }\r\n\r\n let countryCode = '';\r\n\r\n this.indicativoActual = country.dialCode;\r\n if (valor.length > 1) {\r\n countryCode = valor.length > 1 ? country.dialCode + valorAux :\r\n country.dialCode + ' ';\r\n } else {\r\n\r\n const Tel = this.encontrarCodIso(contacto);\r\n if (Tel === null || Tel === undefined) {\r\n\r\n countryCode = country.dialCode + contacto;\r\n } else {\r\n countryCode = contacto.replace(Tel.country.dialCode, country.dialCode);\r\n\r\n }\r\n }\r\n\r\n\r\n fg.get('contacto').setValue(countryCode);\r\n fg.get('valorAux').setValue(this.countryCode);\r\n }\r\n\r\n\r\n encontrarCodIso(telefone: string): { telefone: string, country: Country } | null {\r\n if (telefone && telefone !== '') {\r\n let auxTel: string = telefone;\r\n if ((telefone as string)\r\n .startsWith('00')) {\r\n auxTel = telefone.replace('00', '+');\r\n\r\n }\r\n const listaContriesFlagAux: Country[] = this.countryCod.getContryObject();\r\n\r\n listaContriesFlagAux.sort((a, b) => {\r\n return parseInt(b.dialCode, 10) - parseInt(a.dialCode, 10);\r\n });\r\n\r\n for (const element of listaContriesFlagAux) {\r\n const codIso = element.dialCode;\r\n if (auxTel.startsWith(codIso)) {\r\n return {telefone, country: element};\r\n }\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n onInput(index: number, contacto: any) {\r\n const valorContacto = contacto.value;\r\n if (index === 0\r\n // && valorContacto.contacto !== ''\r\n && valorContacto.idTipoContacto > 0) {\r\n this.contactos.insert(0, this.initFormContacto(null));\r\n }\r\n }\r\n\r\n validateEmail(email: string) {\r\n // Regular expression pattern for basic email validation\r\n const pattern = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n\r\n // Check if the email matches the pattern\r\n return pattern.test(email);\r\n }\r\n\r\n\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n {{ contacto.get('tipoContacto').value }} {{i + 1}} \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import {ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewChild} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\r\nimport {DataIntervalService} from 'app/shared/services/data-service/data-interval/data-interval.service';\r\nimport {ranges} from '../../../fake.db/data';\r\nimport {Util} from 'app/shared/models/generico/util';\r\n\r\n@Component({\r\n selector: 'app-intervalo-data',\r\n templateUrl: './intervalo-data.component.html',\r\n styleUrls: ['./intervalo-data.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class IntervaloDataComponent implements OnInit, OnChanges {\r\n @ViewChild('inData1') dateInput?: ElementRef;\r\n @Input('placeholder') placerholder = '';\r\n @Input('selData1') selData1 = null;\r\n @Output('setData') setData = new EventEmitter();\r\n @Output('go') go = new EventEmitter();\r\n ranges: any = ranges;\r\n form: FormGroup;\r\n valorData: string;\r\n // [moment().subtract(29, 'days'), moment()]\r\n // selData1={\r\n // inicio: moment().subtract(29, 'days'),\r\n // fim: moment()\r\n // Dia mãximo do mês y ...\r\n // }\r\n constructor(\r\n private dataIntervalService: DataIntervalService,\r\n private fb: FormBuilder\r\n ) {\r\n this.initForm();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.selData1) {\r\n this.setData.emit(this.selData1);\r\n this.go.emit({});\r\n }\r\n }\r\n\r\n initForm() {\r\n this.form = this.fb.group({\r\n data: []\r\n });\r\n }\r\n\r\n validarCaracter(evento: any) {\r\n this.dataIntervalService.validarCaracter(evento);\r\n }\r\n\r\n validarData(evento: any, idInput: string, formcontrolname: string): void {\r\n const formControl: FormControl = (this.form.get(formcontrolname) as FormControl);\r\n this.dataIntervalService.validarData(evento, formControl, idInput);\r\n\r\n if (this.dataIntervalService.getValido()) {\r\n\r\n this.valorData = this.dataIntervalService.getValorData();\r\n\r\n this.setData.emit({\r\n inicio: this.format((this.valorData as string).split('-')[0]),\r\n fim: this.format((this.valorData as string).split('-')[1])\r\n });\r\n }\r\n }\r\n\r\n // format2( strDate: string): any {\r\n // return new Date(Util.strParaDataISO(strDate.replace(/\\s/g,'')\r\n // .replace(/[/]/g,'-').split('-')\r\n // .reverse().toString()\r\n // .replace(/[,]/g,'-')))\r\n // .toISOString();\r\n // }\r\n\r\n format(strDate: string): any {\r\n return new Date(Util.strParaDataISO(strDate.replace(/\\s/g, '').replace(/[/]/g, '-').split('-').reverse().toString().replace(/[,]/g, '-'))).toISOString();\r\n }\r\n\r\n getDataInterval(event: any, idInput: string) {\r\n if (event?.inicio?._d && event?.fim?._d) {\r\n this.dataIntervalService.setValorData(this.formatarStrParaDataISO((Util.strParaDataISO(event?.inicio?._d) as string).split('-')) + ' - ' +\r\n this.formatarStrParaDataISO(\r\n (Util.strParaDataISO(event?.fim?._d) as string).split('-')));\r\n\r\n\r\n this.valorData = this.dataIntervalService.getValorData();\r\n\r\n this.setData.emit({\r\n inicio: this.format((this.valorData as string).split('-')[0]),\r\n fim: this.format((this.valorData as string).split('-')[1]).replace('T00:00', 'T23:59')\r\n });\r\n }\r\n }\r\n\r\n validarIntervalo(dia1: number, mes1: number, ano1: number, dia2: number, mes2: number, ano2: number): boolean {\r\n return this.dataIntervalService.validarIntervalo(dia1, mes1, ano1, dia2, mes2, ano2);\r\n }\r\n\r\n maxDia(mes: number, ano?: number): number {\r\n\r\n return this.dataIntervalService.maxDia(mes, ano);\r\n }\r\n\r\n\r\n formatarStrParaDataISO(data: string[]): string {\r\n return this.dataIntervalService.formatarStrParaDataISO(data);\r\n }\r\n\r\n reverteFormatarStrParaDataISO(data: string[]): string {\r\n return this.dataIntervalService.reverteFormatarStrParaDataISO(data);\r\n }\r\n\r\n}\r\n","
\r\n \r\n {{ placerholder }}\r\n \r\n \r\n\r\n
\r\n","import {CurrencyPipe} from '@angular/common';\r\nimport {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup} from '@angular/forms';\r\nimport {FormatarQuantidadePipe} from 'app/shared/pipes/formatar-quantidade.pipe';\r\nimport {timer} from 'rxjs';\r\nimport {take} from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-intervalo-valores',\r\n templateUrl: './intervalo-valores.component.html',\r\n styleUrls: ['./intervalo-valores.component.scss'],\r\n providers: [CurrencyPipe, FormatarQuantidadePipe]\r\n})\r\nexport class IntervaloValoresComponent implements OnInit, OnChanges {\r\n canOver = true;\r\n permitir = false;\r\n auxMin = '';\r\n auxMax = '';\r\n @Input('placeholder') placeholder: any;\r\n @Input('min') min: any;\r\n @Input('max') max: any;\r\n @Input('limpar') limpar: boolean;\r\n @Input() errorMessage = '';\r\n @Input('descricao') descricao: any;\r\n @Output('setValores') valores = new EventEmitter();\r\n\r\n FORM = {\r\n empresas: 'idEmpresas',\r\n movimentos: 'idMovimentos',\r\n tipoMovimentos: 'tipoMovimentos',\r\n armazens: 'idArmazens',\r\n artigos: 'idArtigos',\r\n dataInicio: 'dataInicio',\r\n dataFim: 'dataFim',\r\n min: 'min',\r\n max: 'max',\r\n montanteMin: 'montanteMin',\r\n montanteMax: 'montanteMax',\r\n minVer: 'minVer',\r\n maxVer: 'maxVer',\r\n montanteMinVer: 'montanteMinVer',\r\n montanteMaxVer: 'montanteMaxVer',\r\n minQuantidadeAux: 'minQuantidadeAux',\r\n maxQuantidadeAux: 'maxQuantidadeAux',\r\n minMontanteAux: 'minMontanteAux',\r\n maxMontanteAux: 'maxMontanteAux',\r\n caracterQuantidadeMinValido: 'caracterQuantidadeMinValido',\r\n caracterQuantidadeMaxValido: 'caracterQuantidadeMaxValido',\r\n caracterMontanteMinValido: 'caracterMontanteMinValido',\r\n caracterMontanteMaxValido: 'caracterMontanteMaxValido'\r\n };\r\n\r\n filterForm: FormGroup = this.fb.group({\r\n [this.FORM.empresas]: [],\r\n [this.FORM.movimentos]: [],\r\n [this.FORM.tipoMovimentos]: [],\r\n [this.FORM.armazens]: [],\r\n [this.FORM.artigos]: [],\r\n [this.FORM.dataInicio]: null,\r\n [this.FORM.dataFim]: null,\r\n [this.FORM.min]: [null],\r\n [this.FORM.max]: [null],\r\n [this.FORM.montanteMin]: [],\r\n [this.FORM.montanteMax]: [],\r\n [this.FORM.minVer]: [''],\r\n [this.FORM.maxVer]: [''],\r\n [this.FORM.montanteMinVer]: [''],\r\n [this.FORM.montanteMaxVer]: [''],\r\n [this.FORM.minQuantidadeAux]: [''],\r\n [this.FORM.maxQuantidadeAux]: [''],\r\n [this.FORM.minMontanteAux]: [''],\r\n [this.FORM.maxMontanteAux]: [''],\r\n [this.FORM.caracterQuantidadeMinValido]: [],\r\n [this.FORM.caracterQuantidadeMaxValido]: [],\r\n [this.FORM.caracterMontanteMinValido]: [],\r\n [this.FORM.caracterMontanteMaxValido]: []\r\n });\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private formatarQuantidadePipe: FormatarQuantidadePipe\r\n ) {\r\n this.placeholder = 'texto default';\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.min === null) {\r\n this.filterForm.get(this.FORM.minVer).setValue('');\r\n\r\n }\r\n\r\n if (this.max === null) {\r\n this.filterForm.get(this.FORM.maxVer).setValue('');\r\n }\r\n }\r\n\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.limpar) {\r\n this.auxMin = '';\r\n this.auxMax = '';\r\n this.filterForm.get(this.FORM.min).setValue(null);\r\n this.filterForm.get(this.FORM.minVer).setValue('');\r\n this.filterForm.get(this.FORM.max).setValue(null);\r\n this.filterForm.get(this.FORM.maxVer).setValue('');\r\n }\r\n\r\n\r\n if (this.min === null) {\r\n this.filterForm.get(this.FORM.min).setValue(this.min);\r\n this.filterForm.get(this.FORM.minVer).setValue('');\r\n\r\n }\r\n\r\n if (this.max === null) {\r\n this.filterForm.get(this.FORM.max).setValue(this.FORM.max);\r\n this.filterForm.get(this.FORM.maxVer).setValue('');\r\n }\r\n }\r\n\r\n get f() {\r\n return this.filterForm.controls;\r\n }\r\n\r\n delay(milliseconds: number) {\r\n return timer(milliseconds).pipe(take(1)).toPromise();\r\n }\r\n\r\n OnHidden(evento: any) {\r\n setTimeout(() => {\r\n\r\n this.canOver = true;\r\n }, 0);\r\n }\r\n\r\n async setState(evento: any) {\r\n // await this.delay(100);\r\n setTimeout(() => {\r\n\r\n this.canOver = false;\r\n }, 0);\r\n const auxMin = this.filterForm.get(this.FORM.minVer).value;\r\n const auxMax = this.filterForm.get(this.FORM.maxVer).value;\r\n const min: number = auxMin && auxMin !== '' ? parseFloat(auxMin.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n const max: number = auxMax && auxMax !== '' ? parseFloat(auxMax.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n this.filterForm.get(this.FORM.minVer).setErrors(null);\r\n this.filterForm.get(this.FORM.maxVer).setErrors(null);\r\n\r\n if (min && max) {\r\n min > max ? this.filterForm.get(this.FORM.minVer).setErrors({inválido: true}) : '';\r\n min > max ? this.filterForm.get(this.FORM.maxVer).setErrors({inválido: true}) : '';\r\n }\r\n\r\n this.filterForm.get(this.FORM.minVer).markAsTouched();\r\n this.filterForm.get(this.FORM.maxVer).markAsTouched();\r\n }\r\n\r\n validarEntrada(event: any, formControlEstado: FormControl) {\r\n this.permitir = true;\r\n const keyCode: number = event.charCode;\r\n\r\n if (keyCode === 8 || keyCode === 32 || keyCode === 45\r\n || (keyCode >= 48 && keyCode <= 57)) {\r\n formControlEstado.setValue(true);\r\n return;\r\n }\r\n formControlEstado.setValue(false);\r\n }\r\n\r\n\r\n async validarMin(\r\n valor: string,\r\n formControlVer: FormControl,\r\n formControl: FormControl,\r\n formControlAux: FormControl,\r\n formControlEstado: FormControl,\r\n from) {\r\n let sinalValido = true;\r\n valor = valor.replace(/\\s/g, '');\r\n\r\n // Aqui\r\n if (valor.includes('-')) {\r\n sinalValido = valor.startsWith('-') && 1 >= valor.match(/-/g).length;\r\n }\r\n // Aqui\r\n const valido: boolean = formControlEstado.value;\r\n\r\n if ((!valido || !sinalValido) && this.permitir) {\r\n this.permitir = false;\r\n formControl.setValue(formControlAux.value);\r\n formControlVer.setValue(formControlAux.value);\r\n return;\r\n }\r\n\r\n\r\n this.permitir = false;\r\n await this.formatarQuantidadePipe.transform(\r\n (valor + '').replace(/^[0][,][0][0]/g, '')\r\n .replace(/^[0][,][0]/g, '')\r\n .replace(/^[0][,]/g, '')\r\n .replace(/\\./g, '')\r\n .replace(/,/g, '')\r\n ).then(async (valorAux) => {\r\n\r\n await formControl.setValue(valorAux);\r\n await formControlVer.setValue(valorAux);\r\n await formControlAux.setValue(valorAux);\r\n\r\n if (from === 'min') {\r\n this.auxMin = valorAux;\r\n\r\n } else if (from === 'max') {\r\n this.auxMax = valorAux;\r\n\r\n }\r\n\r\n const min: number = this.auxMin && this.auxMin !== '' ? parseFloat(this.auxMin.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n const max: number = this.auxMax && this.auxMax !== '' ? parseFloat(this.auxMax.replace(/[.]/g, '').replace(/,/g, '.')) : null;\r\n this.filterForm.get(this.FORM.minVer).setErrors(null);\r\n this.filterForm.get(this.FORM.maxVer).setErrors(null);\r\n if (this.auxMin && this.auxMax) {\r\n min > max ? this.filterForm.get(this.FORM.minVer).setErrors({inválido: true}) : '';\r\n min > max ? this.filterForm.get(this.FORM.maxVer).setErrors({inválido: true}) : '';\r\n\r\n }\r\n\r\n this.filterForm.get(this.FORM.minVer).markAsTouched();\r\n this.filterForm.get(this.FORM.maxVer).markAsTouched();\r\n\r\n\r\n this.valores.emit({\r\n min,\r\n max,\r\n valido: (this.filterForm.get(this.FORM.minVer).valid && this.filterForm.get(this.FORM.maxVer).valid)\r\n });\r\n\r\n\r\n }\r\n );\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n {{\r\n (f[FORM.minVer].value === '' && f[FORM.maxVer].value === '') ? '' + placeholder + '' :\r\n f[FORM.maxVer].value === '' ? 'Desde ' + f[FORM.minVer].value + ' ' + (descricao ? descricao : '') :\r\n f[FORM.minVer].value === '' ? 'Até ' + f[FORM.maxVer].value + ' ' + (descricao ? descricao : '') :\r\n f[FORM.minVer].value + ' a ' + f[FORM.maxVer].value + ' ' + (descricao ? descricao : '')\r\n }}\r\n \r\n  \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n {{ errorMessage }}\r\n
\r\n \r\n \r\n \r\n Min\r\n \r\n \r\n -\r\n \r\n Max\r\n \r\n \r\n \r\n \r\n
\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChildren\r\n} from '@angular/core';\r\nimport {FormBuilder, FormGroup} from '@angular/forms';\r\nimport {MatCheckbox} from '@angular/material/checkbox';\r\nimport {MatSelect} from '@angular/material/select';\r\n\r\n@Component({\r\n selector: 'app-select-retecoes-check-box',\r\n templateUrl: './select-retecoes-check-box.component.html',\r\n styleUrls: ['./select-retecoes-check-box.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SelectRetecoesCheckBoxComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() lista: any[] = [];\r\n @Input() chaveId = '';\r\n @Input() chaveTexto = '';\r\n @Input() placeholder = '';\r\n @Input() limpar = false;\r\n @Output() obterSelecionadoId = new EventEmitter();\r\n @ViewChildren('check') check: any[] = [];\r\n listaInterna: any [] = [];\r\n semaforo = true;\r\n idSelected = 0;\r\n ocultarCheckBoxNoForm = true;\r\n form: FormGroup;\r\n\r\n constructor(private fb: FormBuilder) {\r\n this.form = this.initForm();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.limpar) {\r\n this.ocultarCheckBoxNoForm = true;\r\n this.form.get('selecionado').setValue('');\r\n }\r\n\r\n const obj = {\r\n [this.chaveId]: 0,\r\n [this.chaveTexto]: 'Não usa'\r\n };\r\n this.listaInterna = this.lista;\r\n this.listaInterna.push(obj);\r\n this.listaInterna.sort((a, b) => a[this.chaveId] - b[this.chaveId]);\r\n\r\n }\r\n\r\n initForm(): FormGroup {\r\n return this.fb.group({\r\n selecionado: []\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n initStr(): string {\r\n return 'Não Usa1';\r\n }\r\n\r\n ngAfterViewInit() {\r\n const el = document.getElementById('mat-select-value-1');\r\n if (el) {\r\n // el.children[0].innerHTML = this.initStr();\r\n }\r\n }\r\n\r\n pevDefault(evento) {\r\n evento.preventDefault();\r\n }\r\n\r\n setFromCheckBox(id: number) {\r\n this.idSelected = id;\r\n const checks: MatCheckbox[] = (this.check as any)._results as MatCheckbox[];\r\n this.semaforo = false;\r\n checks[0].checked = id !== 0;\r\n }\r\n\r\n\r\n onSelect(evento: any) {\r\n if (evento?.value && (evento?.value as []).length > 1) {\r\n evento.value = (evento?.value as []).slice(1, 2);\r\n }\r\n (evento?.source as MatSelect)?.close();\r\n }\r\n\r\n // MatCheckbox\r\n setOption(id: number) {\r\n if (!id) {\r\n id = this.idSelected;\r\n } else {\r\n this.semaforo = true;\r\n }\r\n\r\n const checks: MatCheckbox[] = (this.check as any)._results as MatCheckbox[];\r\n let desmarcar = true;\r\n checks.forEach(check => {\r\n if (id === parseInt(check.id, 10)) {\r\n desmarcar = !(id !== 0 && !check.checked);\r\n\r\n if (this.semaforo) {\r\n check.toggle();\r\n } else {\r\n this.semaforo = true;\r\n }\r\n\r\n // && (check.checked !== false || )\r\n // if (id !== '0' ){\r\n\r\n // desmarcar = false;\r\n // } else {\r\n // desmarcar = true;\r\n // }\r\n\r\n // if (check.checked === false) {\r\n // desmarcar = true;\r\n // }\r\n checks[0].checked = true;\r\n } else {\r\n check.checked = false;\r\n }\r\n });\r\n\r\n if (desmarcar) {\r\n checks[0].checked = false;\r\n this.ocultarCheckBoxNoForm = true;\r\n this.form.get('selecionado').setValue('0');\r\n this.obterSelecionadoId.emit({\r\n idSelecionado: null\r\n });\r\n } else {\r\n this.ocultarCheckBoxNoForm = false;\r\n this.obterSelecionadoId.emit({\r\n idSelecionado: this.form.get('selecionado').value\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n\r\n \r\n\r\n {{placeholder}}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n {{item[chaveTexto]}}\r\n \r\n {{item[chaveTexto]}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit, Output, ViewChild, EventEmitter } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Country, CountryCod } from 'app/shared/models/artigos/country-code-json/country-cod';\r\n\r\n@Component({\r\n selector: 'app-telefone',\r\n templateUrl: './telefone.component.html',\r\n styleUrls: ['./telefone.component.scss']\r\n})\r\nexport class TelefoneComponent implements OnInit {\r\n isoCountryCode: Country = null;\r\n indicativoActual: string = '';\r\n telInvalido: boolean = true;\r\n selected = [];\r\n listaContriesFlag: any[] = [];\r\n selTel: Country = null;\r\n countryCode: string;\r\n strSelect1: string;\r\n strSelect2: string;\r\n @Input('accao') accao='';\r\n @Input('telefone') telefone='';\r\n @Output('changePhone') changePhone = new EventEmitter();\r\n formGroupTel: FormGroup;\r\n constructor(\r\n public countryCod: CountryCod,\r\n private fb: FormBuilder\r\n ) { \r\n this.listaContriesFlag = this.countryCod.getContryObject();\r\n this.initStrSelect();\r\n this.countryCode = '';\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n initStrSelect() {\r\n this.strSelect1 = '
'\r\n this.strSelect2 = '
'\r\n}\r\n\r\nisbackSpaceKeyBoard(evento) {\r\n let keyCode: number = evento.keyCode;\r\n let fg = this.formGroupTel as FormGroup;\r\n\r\n if (keyCode === 8) {\r\n fg.get('caracterValido').setValue(true);\r\n }\r\n\r\n}\r\n\r\nvalidarTel(idInPut: string, value: any, index: number) {\r\n let bool: boolean = true;\r\n if (value.length > 1) {\r\n if ((value as string)\r\n .substring(1, (value as string).length)\r\n .includes('+')) {\r\n bool = false;\r\n }\r\n }\r\n\r\n let fg = this.formGroupTel as FormGroup;\r\n let valido: boolean = fg.get('caracterValido').value && bool;\r\n\r\n if (!valido) {\r\n fg?.get('contacto').setValue(\r\n fg?.get('valorAux').value\r\n );\r\n return\r\n }\r\n // this.aoEscrever(formControl, idInPut, index);\r\n const regExp = RegExp('(([+]|[00])([1-9]([0-9]|[0-9]{0}){3})[ ]([0-9]|[0-9]{0}){7})|(([+]|[00])([1-9]([0-9]|[0-9]{0}){3})([0-9]|[0-9]{0}){7})');\r\n \r\n // const regExp = RegExp('(([+]|[00])([1-9]([0-9]|[0-9]{0}){3})[ ][0-9]{4}([0-9]|[0-9]{0}){7})|(([+]|[00])([1-9]([0-9]|[0-9]{0}){3})[0-9]{4}([0-9]|[0-9]{0}){7})');\r\n \r\n\r\n if (regExp.test(value)) {\r\n this.telInvalido = false;\r\n } else {\r\n this.telInvalido = true;\r\n }\r\n\r\n fg?.get('valorAux').setValue(\r\n fg?.get('contacto').value\r\n );\r\n\r\n let native: HTMLElement = document.getElementById(idInPut).children[0] as HTMLElement;\r\n\r\n //Usar os primeiros 5 caracteres, para cada uns dos 5... buscar o indicativo.\r\n let codISO: string;\r\n if (value.split(' ').length > 1) {\r\n if ((value.split(' ')[0] as string)\r\n .startsWith('00')) {\r\n codISO = (value.split(' ') as string)[0]\r\n .replace('00', '+');\r\n\r\n } else {\r\n\r\n codISO = value.split(' ')[0];\r\n }\r\n } else {\r\n if ((value.split(' ')[0] as string)\r\n .startsWith('00')) {\r\n value = (value.split(' ') as string)[0]\r\n .replace('00', '+');\r\n\r\n }\r\n const valor: string = value;\r\n const sub04: string = valor && valor.length > 4 ? valor.substring(0, 5) : null;\r\n const sub03: string = valor && valor.length > 3 ? valor.substring(0, 4) : null;\r\n const sub02: string = valor && valor.length > 2 ? valor.substring(0, 3) : null;\r\n const sub01: string = valor && valor.length > 1 ? valor.substring(0, 2) : null;\r\n\r\n let listaContriesFlagAux: Country[] = this.countryCod.getContryObject();\r\n\r\n listaContriesFlagAux.sort((a, b) => {\r\n return parseInt(b.dialCode) - parseInt(a.dialCode);\r\n });\r\n\r\n for (let i = 0; i < listaContriesFlagAux.length; i++) {\r\n\r\n if (sub04) {\r\n //Condição para quebrar ... Se cumprir quebrar ...\r\n if (listaContriesFlagAux[i].dialCode === sub04) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub03) {\r\n if (listaContriesFlagAux[i].dialCode === sub03) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub02) {\r\n if (listaContriesFlagAux[i].dialCode === sub02) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub01) {\r\n if (listaContriesFlagAux[i].dialCode === sub01) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n let control: FormControl = fg\r\n .get('contacto') as FormControl;\r\n\r\n let country: Country[] = this.listaContriesFlag.filter((country: Country) => {\r\n return country.dialCode === codISO\r\n });\r\n \r\n \r\n \r\n if (country.length > 0) {\r\n this.indicativoActual = codISO;\r\n fg?.get('selectedCountryCode')\r\n .setValue(country[0]);\r\n native.innerHTML = this.strSelect1 + country[0].flag + this.strSelect2;\r\n this.changePhone.emit({\r\n telefone: country[0].flag\r\n })\r\n } else {\r\n this.indicativoActual = '';\r\n // fg?.get('contacto').setErrors({\r\n // Inválido: true\r\n // }, { emitEvent: true });\r\n native.innerHTML = this.strSelect1 + '' + this.strSelect2;\r\n this.changePhone.emit({\r\n telefone: ''\r\n })\r\n fg?.get('selectedCountryCode')\r\n .setValue(null);\r\n }\r\n // control.markAsTouched({ onlySelf: true });\r\n // fg?.get('contacto').markAsTouched({ onlySelf: true })\r\n\r\n\r\n\r\n}\r\n\r\nreconhecerCaracter(evento: any) {\r\n\r\n let charCode: number = evento.charCode;\r\n const str: string = evento.target.value;\r\n\r\n let fg = this.formGroupTel as FormGroup;\r\n if ((\r\n (charCode >= 48 && charCode <= 57)\r\n || charCode === 43\r\n || charCode === 32 || charCode === 8)) {\r\n fg.get('caracterValido').setValue(true);\r\n } else {\r\n fg.get('caracterValido').setValue(false);\r\n\r\n }\r\n\r\n}\r\n\r\nchangeCountryCode(idInPut: string, country: Country) {\r\n this.isoCountryCode = null;\r\n\r\n let fg = this.formGroupTel as FormGroup;\r\n\r\n let native: HTMLElement = document\r\n .getElementById(idInPut)\r\n .children[0] as HTMLElement;\r\n\r\n let valor: string[] = [];\r\n let contacto: string = '';\r\n\r\n if ((fg\r\n .get('contacto')\r\n .value.split(' ') as [])\r\n .length > 1\r\n ) {\r\n valor = fg\r\n .get('contacto')\r\n .value.split(' ');\r\n } else {\r\n contacto = (fg\r\n .get('contacto')\r\n .value as string).replace(this.indicativoActual, '');\r\n }\r\n\r\n let valorAux = ''\r\n for (let i = 1; i < valor.length; i++) {\r\n\r\n valorAux += ' ' + valor[i]\r\n }\r\n\r\n native.innerHTML = this.strSelect1 + country.flag + this.strSelect2;\r\n\r\n let countryCode: string = '';\r\n\r\n this.indicativoActual = country.dialCode;\r\n if (valor.length > 1) {\r\n countryCode = valor.length > 1 ? country.dialCode + valorAux :\r\n country.dialCode + ' ';\r\n } else {\r\n countryCode = country.dialCode + contacto;\r\n }\r\n\r\n\r\n fg\r\n .get('contacto').setValue(countryCode);\r\n\r\n fg\r\n .get('valorAux').setValue(this.countryCode);\r\n}\r\n\r\ngetformGroupTel(countryCod?: string) {\r\n // , [Validators.pattern('[+]([1-9]([0-9]|[0-9]{0}){3})[ ][0-9]{4}([0-9]|[0-9]{0}){7}')]\r\n return this.fb.group({\r\n contacto: [''],\r\n caracterValido: [false],\r\n valorAux: [countryCod ? countryCod : ''],\r\n selectedCountryCode: []\r\n })\r\n}\r\n\r\n @ViewChild('matSelect1') matSelect1: any;\r\n async initContacto(idComponent: string) {\r\n let fg = this.formGroupTel as FormGroup;\r\n if (document.getElementById(idComponent)) {\r\n //??\r\n let native: HTMLElement = await document\r\n .getElementById(idComponent)\r\n .children[0] as HTMLElement;\r\n\r\n let country: Country[] = null;\r\n if (this.isoCountryCode && this.isoCountryCode.dialCode) {\r\n country = await this.listaContriesFlag.filter((country: Country) => {\r\n return country.dialCode.toLowerCase() === this.isoCountryCode.dialCode\r\n .toLowerCase()\r\n });\r\n\r\n\r\n } else {\r\n country = await this.listaContriesFlag.filter((country: Country) => {\r\n return country.flag.toLowerCase() === localStorage\r\n .getItem('__cod__Pais')\r\n .replace(/\\s/g, '').toLowerCase()\r\n });\r\n }\r\n\r\n let countryCode: string = country.length > 0 ?\r\n country[0].dialCode + ' ' : '';\r\n\r\n if (this.isoCountryCode && this.telefone) {\r\n countryCode = this.isoCountryCode.dialCode + ' ' + this.telefone;\r\n\r\n } else if (this.telefone) {\r\n\r\n //Verificar se começa com 00\r\n if ((this.telefone.split(' ')[0] as string)\r\n .startsWith('00')) {\r\n this.telefone = this.telefone.replace('00', '+');\r\n\r\n }\r\n // if (this.isoCountryCode && this.isoCountryCode.dialCode) {\r\n const valor: string = this.telefone;\r\n let codISO: string = '';\r\n const sub04: string = valor && valor.length > 4 ? valor.substring(0, 5) : null;\r\n const sub03: string = valor && valor.length > 3 ? valor.substring(0, 4) : null;\r\n const sub02: string = valor && valor.length > 2 ? valor.substring(0, 3) : null;\r\n const sub01: string = valor && valor.length > 1 ? valor.substring(0, 2) : null;\r\n\r\n let listaContriesFlagAux: Country[] = this.countryCod.getContryObject();\r\n\r\n listaContriesFlagAux.sort((a, b) => {\r\n return parseInt(b.dialCode) - parseInt(a.dialCode);\r\n });\r\n\r\n for (let i = 0; i < listaContriesFlagAux.length; i++) {\r\n\r\n if (sub04) {\r\n //Condição para quebrar ... Se cumprir quebrar ...\r\n if (listaContriesFlagAux[i].dialCode === sub04) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub03) {\r\n if (listaContriesFlagAux[i].dialCode === sub03) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub02) {\r\n if (listaContriesFlagAux[i].dialCode === sub02) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n if (sub01) {\r\n if (listaContriesFlagAux[i].dialCode === sub01) {\r\n codISO = listaContriesFlagAux[i].dialCode;\r\n break;\r\n }\r\n }\r\n\r\n }\r\n\r\n this.indicativoActual = codISO;\r\n country = this.listaContriesFlag.filter((country: Country) => {\r\n return country.dialCode === codISO\r\n });\r\n if (country) {\r\n fg?.get('selectedCountryCode')\r\n .setValue(country[0]);\r\n\r\n }\r\n countryCode = this.telefone;\r\n\r\n\r\n\r\n // } else {\r\n // countryCode = country.length > 0 ?\r\n // country[0].dialCode + ' ' + this.telefone : '';\r\n // }\r\n\r\n }\r\n\r\n this.indicativoActual = countryCode;\r\n fg.get('contacto').setValue(countryCode);\r\n fg?.get('valorAux').setValue(\r\n countryCode\r\n );\r\n\r\n if (this.accao !== 'D') {\r\n fg.get('valorAux').setValue(this.countryCode);\r\n }\r\n if (country.length > 0) {\r\n\r\n fg.get('selectedCountryCode')\r\n .setValue(country[0]);\r\n native.innerHTML = this.strSelect1 + country[0].flag + this.strSelect2;\r\n } else {\r\n native.innerHTML = this.strSelect1 + '' + this.strSelect2;\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n  \r\n {{countryCode.countryName}} \r\n {{countryCode.dialCode}} \r\n \r\n \r\n
\r\n
\r\n \r\n ConfigPhone\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-pdf',\r\n templateUrl: './pdf.component.html',\r\n styleUrls: ['./pdf.component.scss']\r\n})\r\nexport class PdfComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-progress',\r\n templateUrl: './progress.component.html',\r\n styleUrls: ['./progress.component.scss']\r\n})\r\nexport class ProgressComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n","import {NgModule} from '@angular/core';\r\nimport {RouterModule} from '@angular/router';\r\nimport {SharedMaterialModule} from '../shared-material.module';\r\nimport {TranslateModule} from '@ngx-translate/core';\r\nimport {CommonModule} from '@angular/common';\r\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\r\nimport {PerfectScrollbarModule} from 'ngx-perfect-scrollbar';\r\nimport {SearchModule} from '../search/search.module';\r\nimport {SharedPipesModule} from '../pipes/shared-pipes.module';\r\nimport {FlexLayoutModule} from '@angular/flex-layout';\r\nimport {SharedDirectivesModule} from '../directives/shared-directives.module';\r\n// ONLY REQUIRED FOR **SIDE** NAVIGATION LAYOUT\r\nimport {HeaderSideComponent} from './header-side/header-side.component';\r\nimport {SidebarSideComponent} from './sidebar-side/sidebar-side.component';\r\n// ONLY REQUIRED FOR **TOP** NAVIGATION LAYOUT\r\nimport {HeaderTopComponent} from './header-top/header-top.component';\r\nimport {SidebarTopComponent} from './sidebar-top/sidebar-top.component';\r\n// ONLY FOR DEMO\r\nimport {CustomizerComponent} from './customizer/customizer.component';\r\n// ALWAYS REQUIRED\r\nimport {AdminLayoutComponent} from './layouts/admin-layout/admin-layout.component';\r\nimport {AuthLayoutComponent} from './layouts/auth-layout/auth-layout.component';\r\nimport {NotificationsComponent} from './notifications/notifications.component';\r\nimport {SidenavComponent} from './sidenav/sidenav.component';\r\nimport {FooterComponent} from './footer/footer.component';\r\nimport {BreadcrumbComponent} from './breadcrumb/breadcrumb.component';\r\nimport {AppComfirmComponent} from '../services/app-confirm/app-confirm.component';\r\nimport {AppLoaderComponent} from '../services/app-loader/app-loader.component';\r\nimport {ButtonLoadingComponent} from './button-loading/button-loading.component';\r\nimport {EgretSidebarComponent, EgretSidebarTogglerDirective} from './egret-sidebar/egret-sidebar.component';\r\nimport {BottomSheetShareComponent} from './bottom-sheet-share/bottom-sheet-share.component';\r\nimport {EgretNotifications2Component} from './egret-notifications2/egret-notifications2.component';\r\nimport {ExportExcelComponent} from './modais/export-excel/export-excel.component';\r\nimport {ExportPdfComponent} from './modais/export-pdf/export-pdf.component';\r\nimport {ProgressComponent} from './progress/progress.component';\r\nimport {TabAccoesMultiplas} from './tab-accoes-multiplas/tab-accoes-multiplas';\r\nimport {ModalSessaoExpirada} from './modal-sessao-expirada/modal-sessao-expirada';\r\nimport {BtnSmComponent} from './botoes/btn-sm';\r\nimport {ModalBaseComponent} from './modais/modal-base/modal-base.component';\r\nimport {CardAddFicheiroComponent} from './cards/card-add-ficheiro';\r\nimport {InputAutocompleteComponent} from './input-autocomplete/input-autocomplete.component';\r\nimport {MatIconModule} from '@angular/material/icon';\r\nimport {AvisoComponent} from './modal-aviso/aviso/aviso.component';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {OverlayPanelModule} from 'primeng/overlaypanel';\r\nimport {IntervaloComponent} from './intervalo/intervalo.component';\r\nimport {AutoCompleteComponent} from './novos-componentes/auto-complete/auto-complete.component';\r\nimport {IntervaloDataComponent} from './novos-componentes/intervalo-data/intervalo-data.component';\r\nimport {NgxDaterangepickerMd} from 'ngx-daterangepicker-material';\r\nimport {IntervaloValoresComponent} from './novos-componentes/intervalo-valores/intervalo-valores.component';\r\nimport {ModalCargaDescarga} from '../../views/facturacao/modais/modal-carga-descarga/modal-carga-descarga';\r\nimport {TelefoneComponent} from './novos-componentes/telefone/telefone.component';\r\nimport {ModalRemoverComponent} from './notifications/modais/modal-remover/modal-remover.component';\r\nimport {NgxMaskModule} from 'ngx-mask';\r\nimport {SelectRetecoesCheckBoxComponent} from './novos-componentes/select-retecoes-check-box/select-retecoes-check-box.component';\r\nimport {ContactoComponent} from './novos-componentes/contacto/contacto.component';\r\nimport {TabelaItensFinComponent} from './Tabelas/tabela-itens-fin/tabela-itens-fin.component';\r\nimport {FiltarArtigoPipe} from 'app/views/facturacao/facturacao/saft/pipes/filtar-artigo.pipe';\r\nimport {Autocomplete} from './autocomplete/autocomplete';\r\nimport {PosLayoutComponent} from './layouts/pos-layout/pos-layout.component';\r\nimport {PosNavegacaoComponent} from '../../views/pos/componentes/pos-navegacao/pos-navegacao.component';\r\nimport {PosContainer} from '../../views/pos/componentes/pos-container/pos-container';\r\nimport {KCardComponent} from '@shared/components/k-card/k-card.component';\r\nimport {KCardColumnComponent} from '@shared/components/k-card-column/k-card-column.component';\r\nimport {KTiposArquivosComponent} from '@shared/components/k-tipos-arquivos/k-tipos-arquivos.component';\r\nimport {NgxDatatableModule} from '@swimlane/ngx-datatable';\r\nimport {KArquivosComponent} from '@shared/components/k-arquivos/k-arquivos.component';\r\nimport {KArquivoComponent} from '@shared/components/k-arquivo/k-arquivo.component';\r\nimport { PhoneComponent } from '@shared/components/telefone/app-phone';\r\nimport {DocumentosComponent} from '@shared/components/documentos/documentos.component';\r\nimport {PdfComponent} from '@shared/components/pdf/pdf.component';\r\nimport { TecladoModule } from '../keyboard/teclado.module';\r\nimport { ModalErroComponent } from './modal-erro/modal-erro.component';\r\nimport { AppFone} from '@shared/components/forms/app-phone';\r\nimport { AppDialCode } from '@shared/components/forms/app-dial-code';\r\n\r\nconst components = [\r\n HeaderTopComponent,\r\n SidebarTopComponent,\r\n SidenavComponent,\r\n NotificationsComponent,\r\n SidebarSideComponent,\r\n HeaderSideComponent,\r\n AdminLayoutComponent,\r\n AuthLayoutComponent,\r\n PosLayoutComponent,\r\n PosNavegacaoComponent,\r\n PosContainer,\r\n BreadcrumbComponent,\r\n AppComfirmComponent,\r\n AppLoaderComponent,\r\n EgretNotifications2Component,\r\n CustomizerComponent,\r\n ButtonLoadingComponent,\r\n EgretSidebarComponent,\r\n FooterComponent,\r\n EgretSidebarTogglerDirective,\r\n BottomSheetShareComponent,\r\n ExportExcelComponent,\r\n ExportPdfComponent,\r\n ProgressComponent,\r\n TabAccoesMultiplas,\r\n ModalSessaoExpirada,\r\n BtnSmComponent,\r\n ModalBaseComponent,\r\n CardAddFicheiroComponent,\r\n InputAutocompleteComponent,\r\n AvisoComponent,\r\n IntervaloComponent,\r\n AutoCompleteComponent,\r\n IntervaloDataComponent,\r\n IntervaloValoresComponent,\r\n ModalCargaDescarga,\r\n TelefoneComponent,\r\n ModalRemoverComponent,\r\n SelectRetecoesCheckBoxComponent,\r\n ContactoComponent,\r\n TabelaItensFinComponent,\r\n FiltarArtigoPipe,\r\n Autocomplete,\r\n KCardComponent,\r\n KCardColumnComponent,\r\n KTiposArquivosComponent,\r\n KArquivosComponent,\r\n KArquivoComponent,\r\n PhoneComponent,\r\n DocumentosComponent,\r\n AppFone, AppDialCode,\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n MatIconModule,\r\n CommonModule,\r\n FormsModule,\r\n RouterModule,\r\n TranslateModule,\r\n FlexLayoutModule,\r\n PerfectScrollbarModule,\r\n SearchModule,\r\n SharedPipesModule,\r\n SharedDirectivesModule,\r\n SharedMaterialModule,\r\n ReactiveFormsModule,\r\n ScrollingModule,\r\n OverlayPanelModule,\r\n NgxDaterangepickerMd.forRoot(),\r\n NgxMaskModule,\r\n NgxDatatableModule,\r\n TecladoModule\r\n ],\r\n declarations: [\r\n components,\r\n PdfComponent,\r\n ModalErroComponent\r\n ],\r\n // entryComponents: [AppComfirmComponent, AppLoaderComponent, BottomSheetShareComponent],\r\n exports: [\r\n components,\r\n PdfComponent\r\n ]\r\n})\r\nexport class SharedComponentsModule {\r\n}\r\n","import {Component, OnInit, OnDestroy, AfterViewInit} from '@angular/core';\r\nimport {NavigationService} from '../../../shared/services/navigation.service';\r\nimport {ThemeService} from '../../services/theme.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {ILayoutConf, LayoutService} from 'app/shared/services/layout.service';\r\nimport {JwtAuthService} from 'app/shared/services/auth/jwt-auth.service';\r\nimport { UtilizadorSessao } from 'app/shared/models/aplicacao/utilizador-sessao';\r\nimport { LoginService } from 'app/shared/services/aplicacao-service/login.service';\r\n\r\n@Component({\r\n selector: 'app-sidebar-side',\r\n templateUrl: './sidebar-side.component.html'\r\n})\r\nexport class SidebarSideComponent implements OnInit, OnDestroy, AfterViewInit {\r\n public menuItems: any[];\r\n public appLogo = 'assets/images/logo/kiami.png';\r\n public hasIconTypeMenuItem: boolean;\r\n public iconTypeMenuTitle: string;\r\n private menuItemsSub: Subscription;\r\n public layoutConf: ILayoutConf;\r\n\r\n constructor(\r\n private navService: NavigationService,\r\n public themeService: ThemeService,\r\n private layout: LayoutService,\r\n public jwtAuth: JwtAuthService,\r\n private loginService: LoginService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.iconTypeMenuTitle = this.navService.iconTypeMenuTitle;\r\n this.menuItemsSub = this.navService.menuItems$.subscribe(menuItem => {\r\n this.menuItems = menuItem;\r\n // Checks item list has any icon type.\r\n this.hasIconTypeMenuItem = !!this.menuItems.filter(\r\n item => item.type === 'icon'\r\n ).length;\r\n });\r\n this.layoutConf = this.layout.layoutConf;\r\n\r\n let utilizador: UtilizadorSessao = this.loginService?.getUtilizadorSessao();\r\n this.filtrarMenu(utilizador?.sistema);\r\n }\r\n\r\n\r\n filtrarMenu( sistema: boolean) {\r\n if (!sistema){\r\n let menu: any= this.menuItems.find(menu => menu?.code === 'ADMINI');\r\n menu.sub = menu?.sub?.filter( sub => sub?.name !== 'Módulos');\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.menuItemsSub) {\r\n this.menuItemsSub.unsubscribe();\r\n }\r\n }\r\n\r\n toggleCollapse() {\r\n if (\r\n this.layoutConf.sidebarCompactToggle\r\n ) {\r\n this.appLogo = 'assets/images/logo/kiami.png';\r\n this.layout.publishLayoutChange({\r\n sidebarCompactToggle: false\r\n });\r\n } else {\r\n this.appLogo = 'assets/images/logo/icon.png';\r\n this.layout.publishLayoutChange({\r\n // sidebarStyle: \"compact\",\r\n sidebarCompactToggle: true\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n \"KiamiSoft\r\n\r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy, AfterViewInit } from '@angular/core';\r\n// import PerfectScrollbar from 'perfect-scrollbar';\r\nimport { NavigationService } from \"../../../shared/services/navigation.service\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'app-sidebar-top',\r\n templateUrl: './sidebar-top.component.html'\r\n})\r\nexport class SidebarTopComponent implements OnInit, OnDestroy, AfterViewInit {\r\n // private sidebarPS: PerfectScrollbar;\r\n public menuItems: any[];\r\n private menuItemsSub: Subscription;\r\n constructor(\r\n private navService: NavigationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.menuItemsSub = this.navService.menuItems$.subscribe(menuItem => {\r\n this.menuItems = menuItem.filter(item => item.type !== 'icon' && item.type !== 'separator');\r\n });\r\n }\r\n ngAfterViewInit() {\r\n // setTimeout(() => {\r\n // this.sidebarPS = new PerfectScrollbar('#sidebar-top-scroll-area', {\r\n // suppressScrollX: true\r\n // })\r\n // })\r\n }\r\n ngOnDestroy() {\r\n // if(this.sidebarPS) {\r\n // this.sidebarPS.destroy();\r\n // }\r\n if( this.menuItemsSub ) {\r\n this.menuItemsSub.unsubscribe()\r\n }\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n \r\n
\r\n
","import {CmsFormulario} from 'app/shared/models/cms/cms-formularios';\r\nimport {Component, Input, OnInit} from '@angular/core';\r\nimport {Menu} from 'app/shared/models/aplicacao/menu';\r\nimport {Observable, Subscription} from 'rxjs';\r\nimport {ProcessosClassificacoes} from 'app/shared/models/processos/processosclassificacoes';\r\nimport {Entidades} from 'app/shared/models/clientes/entidades';\r\nimport {ArtigoClassificacao} from 'app/shared/models/artigos/artigo-classificacao';\r\nimport {menuCode} from '../../fake.db/data';\r\nimport {AplicacaoService} from 'app/shared/services/aplicacao-service/aplicacao.service';\r\nimport {ClientesGeraisService} from 'app/shared/services/clientes-service/clientes-gerais.service';\r\n\r\nimport {ArtigosService} from 'app/shared/services/artigos/artigos.service';\r\nimport {ProcessosService} from 'app/shared/services/processos/processos.service';\r\nimport {MenuDataService} from 'app/shared/services/aplicacao-service/data/menu-data.service';\r\nimport {LoginService} from 'app/shared/services/aplicacao-service/login.service';\r\nimport {Utilizadores} from 'app/shared/models/aplicacao/utilizadores';\r\nimport {JwtHelperService} from '@auth0/angular-jwt';\r\nimport {MenuDinamico} from 'app/shared/models/aplicacao/menudinamico';\r\nimport {AppDataService} from 'app/shared/services/data/app-data.service';\r\nimport {CmsPaginaListagem} from 'app/shared/models/cms/cms-paginaListagem';\r\nimport {RecursosHumanosService} from 'app/shared/services/recursos-humanos/recursos-humanos.service';\r\nimport {CmsGeralService} from 'app/shared/services/cms/cms-geral.service';\r\nimport {EqClassificacaoService} from '../../services/equipamentos/eq-classificacao.service';\r\nimport {EqClassificacao} from '../../models/equipamentos/eq-classificacao';\r\nimport {NavigationStart, Router} from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport {AppStoreService} from 'app/shared/services/aplicacao-service/data/app-store.service';\r\nimport {DefinirDadosDoFooterService} from '../footer/definir-dados-do -footer/definir-dados-do-footer.service';\r\nimport {FinancasService} from '../../services/financas/financas.service';\r\nimport {JwtAuthService} from '../../services/auth/jwt-auth.service';\r\nimport {NotificacaoService} from '@services/notificacao/notificacao.service';\r\nimport {PosService} from '@services/pos/pos.service';\r\n\r\n@Component({\r\n selector: 'app-sidenav',\r\n templateUrl: './sidenav.template.html',\r\n styleUrls: ['./sidenav.component.scss']\r\n})\r\nexport class SidenavComponent implements OnInit {\r\n menus: Menu[];\r\n linkUrlRota = '';\r\n idClassRota = '';\r\n // tslint:disable-next-line: no-input-rename\r\n @Input('items') public menuItems: any[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('hasIconMenu') public hasIconTypeMenuItem: boolean;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('iconMenuTitle') public iconTypeMenuTitle: string;\r\n\r\n public listamenus: Menu[] = [];\r\n public listamenu: string[] = [];\r\n public listaMenusObservable$: Observable;\r\n public clientesEntidades: Entidades[] = [];\r\n public processosClassificacoes: ProcessosClassificacoes[] = [];\r\n public artigosClassificacao: ArtigoClassificacao[] = [];\r\n public idMenuActivo: number;\r\n public idMenuPOSActivo: number;\r\n public idMenuVendaActivo: number;\r\n public PermissoesPOS: any[] = [];\r\n public PermissoesVenda: any[] = [];\r\n\r\n listaMenu: any[] = [];\r\n listaMenuArtigo: any[] = [];\r\n listaMenuProc: MenuDinamico[] = [];\r\n listaMenuEvent: MenuDinamico[] = [];\r\n listaMenuClient: MenuDinamico[] = [];\r\n listaMenuFornecedor: MenuDinamico[] = [];\r\n listaMenuEquipamento: MenuDinamico[] = [];\r\n subscriptions: Subscription[] = [];\r\n codigoMenu = menuCode;\r\n utlizador: any;\r\n jwtHelper = new JwtHelperService();\r\n decodedToken: any;\r\n codigoMenuFinancas = 'FACTUR';\r\n codigoMenuPOS = 'POS';\r\n codigoMenuCompra = 'COMPRA';\r\n codigoMenuTesouraria = 'TESOUR';\r\n codigoMenuArtigos = 'ARTIGO';\r\n codigoMenuProcessos = 'PROCES';\r\n codigoMenuCliente = 'CLIENT';\r\n codigoMenuEvento = 'EVENTO';\r\n codigoMenuCMS = 'GESCON';\r\n codigoMenurRecursosHumanos = 'RECHUM';\r\n codMenuEquipamento = 'EQUATI';\r\n UsaDashboard = false;\r\n usaMenuFacturacao = false;\r\n usaMenuPOS = false;\r\n usaMenuCompra = false;\r\n usaMenuTesouraria = false;\r\n usaMenuArtigo = false;\r\n usaMenuProcesso = false;\r\n usaMenuCliente = false;\r\n usaMenuFornecedor = false;\r\n usaMenuCMS = false;\r\n usaMenuEvento = false;\r\n usaMenuRecursosHumanos = false;\r\n paginas: CmsPaginaListagem[] = [];\r\n gruposRegistos: any[] = [];\r\n listaFormularios: CmsFormulario[] = [];\r\n idIdioma = 1;\r\n rotaActual: string;\r\n listaEstuturasOrganizativas: any[] = [];\r\n listaModulosEventos: any[] = [];\r\n codIdiomaDefoult: any = 'PT';\r\n\r\n ConfiguracaoCMS: any;\r\n galerias: any[] = [];\r\n EmDesenvolvimento = false;\r\n public gereStock = false;\r\n // gereStock = false;\r\n equipamentos: EqClassificacao[] = [];\r\n dadosAplicacao: any;\r\n usaMenuEquipamento: boolean;\r\n confAdm = {\r\n name: 'Conf. {ART}',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Famílias', state: 'configuracoes/tipos'},\r\n {name: 'Categorias', state: 'configuracoes/categoria'},\r\n {name: 'Variantes', state: 'configuracoes/variantes/lista'},\r\n {name: 'Estados', state: 'configuracoes/estados'},\r\n {name: 'Tipos de Arquivos', state: 'configuracoes/tiposArquivos'},\r\n {name: 'E-mails', state: 'configuracoes/emails/lista'},\r\n {\r\n name: 'E-mails Automáticos',\r\n state: 'configuracoes/emails/automaticos'\r\n },\r\n {name: 'Ciclos de Renovação', state: 'configuracoes/ciclos'}\r\n ]\r\n };\r\n vendaConfig!: any;\r\n POSCONSCONF: boolean;\r\n\r\n constructor(\r\n private aplicacaoService: AplicacaoService,\r\n private clientesGeraisService: ClientesGeraisService,\r\n private artigosService: ArtigosService,\r\n private processosService: ProcessosService,\r\n private loginService: LoginService,\r\n private menuData: MenuDataService,\r\n private appDataService: AppDataService,\r\n private geralService: CmsGeralService,\r\n public appStore: AppDataService,\r\n private definirDadosDoFooterService: DefinirDadosDoFooterService,\r\n private rota: Router,\r\n private recursosHumanosService: RecursosHumanosService,\r\n private equipamentoClassService: EqClassificacaoService,\r\n private financaService: FinancasService,\r\n private aplicacaoDado: AppStoreService,\r\n private jwtAuthService: JwtAuthService,\r\n private _notificacao: NotificacaoService,\r\n private _posServico: PosService,\r\n ) {\r\n this.appStore.getRotalActual().subscribe((res: any) => {\r\n this.rotaActual = res;\r\n });\r\n this.utlizador = this.loginService.getUtilizadorSessao();\r\n this.getMenusAplicacao();\r\n }\r\n\r\n getPermissoesPOS(utlizador: Utilizadores) {\r\n this._posServico.permissoesUtilizador(utlizador.idUtilizador).subscribe(per => {\r\n this.PermissoesPOS = per?.objecto;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getAplicacao();\r\n this.aplicacaoService.gereStock$.subscribe(s => this.gereStock = s);\r\n this.actualizarToken();\r\n this.setRotaActiva();\r\n }\r\n\r\n // A tratar\r\n getAplicacao() {\r\n if (this.aplicacaoDado.aplicacao) {\r\n this.aplicacaoDado.getAplicacao().subscribe(app => {\r\n this.DadosAplicacao(app);\r\n });\r\n } else {\r\n this.aplicacaoService.getAplicacaoGeral().subscribe((res: any) => {\r\n localStorage.setItem('codPais', res?.codPais ? res?.codPais.replace(/\\s/g, '') : '');\r\n localStorage.setItem('gereStocks', res.gereStocks ? res.gereStocks : false);\r\n this.DadosAplicacao(res);\r\n });\r\n }\r\n }\r\n\r\n naturezasActivas(ns: any[]) {\r\n return ns?.filter(n => n.activo) ?? [];\r\n }\r\n\r\n replaceConf(str: string, _class: ArtigoClassificacao) {\r\n return _class?.codNatureza === 'S' && this.getArtigo(6)?.activo && str.includes('Configurações') ?\r\n `Conf. ${_class?.classificacaoP}` : str;\r\n }\r\n\r\n // getPluralizedWord(palavra: string): string {\r\n // return pluralize.plural(palavra, 2, 'pt');\r\n // }\r\n\r\n DadosAplicacao(res) {\r\n if (res) {\r\n this.definirDadosDoFooterService.definirValores({\r\n licencaEmpresa: res?.licencaEmpresa,\r\n aplicacao: res\r\n });\r\n this.dadosAplicacao = res;\r\n this.aplicacaoDado.setAplicacao(this.dadosAplicacao);\r\n if (this.usaMenuPOS && this.dadosAplicacao?.gerePermissoesUtilizador) {\r\n this.getPermissoesPOS(this.utlizador);\r\n }\r\n\r\n this.EmDesenvolvimento = res.codTipoInstalacao === 'D';\r\n this.gereStock = res.gereStocks;\r\n this.jwtAuthService.gerePermissoesUtilizador$.next(res.gerePermissoesUtilizador);\r\n this.aplicacaoService.gereStockBS.next(this.gereStock);\r\n if (this.dadosAplicacao && this.dadosAplicacao.dataValidade) {\r\n const dataValidade = moment(\r\n new Date(this.dadosAplicacao.dataValidade)\r\n );\r\n const dataHoje = moment((new Date()).setHours(0, 0, 0, 0));\r\n const diasEmFalta = dataValidade.diff(dataHoje, 'days');\r\n this.appStore.diasEmFalta.next(diasEmFalta);\r\n if (diasEmFalta < 15) {\r\n this.appStore.$mostrarAviso.next(true);\r\n } else {\r\n this.appStore.$mostrarAviso.next(false);\r\n }\r\n }\r\n localStorage.setItem('__cod__Pais', res.codPais);\r\n localStorage.setItem('moedaEmpresa', res.moeda1);\r\n if (!res.gereMarcacoesArtigos) {\r\n const i = this.menuItems.findIndex(m => m.code === 'MARCA');\r\n if (i > -1) {\r\n this.menuItems.splice(i, 1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n getMenusAplicacao() {\r\n this.menuData.getListaMenus().subscribe((menus) => {\r\n if (menus.length > 0) {\r\n this.listamenus = menus;\r\n this.UsaDashboard = menus.some(m => m.codMenu === 'DASHBO');\r\n this.criarListaMenu(menus);\r\n } else {\r\n this.aplicacaoService.getMenus().subscribe((res) => {\r\n this.listamenus = res;\r\n this.criarListaMenu(res);\r\n this.menuData.setListaMenus(res);\r\n });\r\n }\r\n });\r\n }\r\n\r\n setRotaActiva() {\r\n this.rota.events.subscribe((event: any) => {\r\n if (event instanceof NavigationStart) {\r\n const partesRota = event.url.split('/');\r\n this.linkUrlRota = event.url.split('/')[1];\r\n localStorage.setItem('rotaMenuActivo', this.linkUrlRota);\r\n if (partesRota && partesRota.length > 0) {\r\n localStorage.setItem('idClassRota', partesRota[partesRota.length - 1]);\r\n }\r\n }\r\n });\r\n\r\n if (localStorage.getItem('rotaMenuActivo')) {\r\n this.linkUrlRota = localStorage.getItem('rotaMenuActivo');\r\n this.idClassRota = localStorage.getItem('idClassRota');\r\n }\r\n }\r\n\r\n configuracaoVenda(){\r\n // tslint:disable-next-line:prefer-for-of\r\n this.subscriptions.push(\r\n this.financaService.getConfiguracao().subscribe(c => {\r\n const reno = this.menuItems.find(x => x.code === 'RENOVA');\r\n const ren = this.listamenus.find(x => x.codMenu === 'RENOVA');\r\n const admini = this.menuItems.find(x => x.code === 'ADM');\r\n // TODO: Implementar principio DRY nesta area. By XP //\r\n this.vendaConfig = c.objecto;\r\n if (!this.vendaConfig.usaRenovaveis) {\r\n const i = this.menuItems.indexOf(reno);\r\n if (i > -1) {\r\n this.menuItems.splice(i, 1);\r\n }\r\n } else if (reno) {\r\n reno.name = this.vendaConfig.nomeRenovaveisP;\r\n reno.sub[0].name = this.vendaConfig.nomeRenovaveisP;\r\n if (ren?.menu) {\r\n ren.menu = this.vendaConfig.nomeRenovaveisP;\r\n }\r\n }\r\n\r\n if (!this.vendaConfig.usaAdministrativos) {\r\n const i = this.menuItems.indexOf(admini);\r\n if (i > -1) {\r\n this.menuItems.splice(i, 1);\r\n }\r\n }\r\n })\r\n );\r\n\r\n }\r\n\r\n criarListaMenu(menus: Menu[]) {\r\n\r\n const menu = menus.find(m => m?.codMenu === 'RECHUM');\r\n\r\n if (menu) {\r\n const listaMenusDinamico = menus.find(m => m.codMenu === 'CLIENT')?.menusDinamicos?.filter(m => m.idClassificacao !== 5);\r\n\r\n if (listaMenusDinamico) {\r\n\r\n menus.find(m => m.codMenu === 'CLIENT').menusDinamicos = listaMenusDinamico;\r\n }\r\n }\r\n\r\n for (const element of menus) {\r\n this.listamenu.push(element.codMenu);\r\n if (element.codMenu.toUpperCase() === 'COMUNI') {\r\n this.menuData.moduloComActivo.next(true);\r\n }\r\n if (element.codMenu === this.codigoMenuCliente) {\r\n if (!this.usaMenuCliente) {\r\n this.listaMenuClient = element.menusDinamicos;\r\n this.clientesGeraisService.getEntidades().subscribe((res) => {\r\n this.clientesEntidades = res.objecto;\r\n });\r\n this.usaMenuCliente = true;\r\n }\r\n }\r\n\r\n if (element.codMenu === this.codigoMenuArtigos) {\r\n if (!this.usaMenuArtigo) {\r\n this.listaMenuArtigo = element.menusDinamicos;\r\n this.artigosService.getClassificacoesArtigos().subscribe(\r\n (res) => {\r\n this.artigosClassificacao = res;\r\n });\r\n this.usaMenuArtigo = true;\r\n }\r\n }\r\n\r\n if (element.codMenu === this.codMenuEquipamento) {\r\n if (!this.usaMenuEquipamento) {\r\n this.listaMenuEquipamento = element?.menusDinamicos ?? [];\r\n this.usaMenuEquipamento = true;\r\n this.equipamentoClassService\r\n .getClassificacoes()\r\n .subscribe(x => this.equipamentos = x.objecto.filter(e => e.activo));\r\n }\r\n }\r\n\r\n if (element.codMenu === this.codigoMenuCMS) {\r\n if (!this.usaMenuCMS) {\r\n this.usaMenuCMS = true;\r\n this.getMenusCMS();\r\n }\r\n }\r\n if (element.codMenu === this.codigoMenuProcessos) {\r\n if (!this.usaMenuProcesso) {\r\n this.listaMenuProc = element.menusDinamicos;\r\n this.processosService.getClassificacoes()?.subscribe((res) => {\r\n this.processosClassificacoes = res.objecto;\r\n },\r\n (error) => {\r\n console.log('Erro1', error);\r\n });\r\n this.usaMenuProcesso = true;\r\n this.appDataService.setEstadoModuloProcessos(this.usaMenuProcesso);\r\n }\r\n }\r\n if (element.codMenu === this.codigoMenuFinancas) {\r\n this.usaMenuFacturacao = true;\r\n this.configuracaoVenda();\r\n }\r\n if (element.codMenu === this.codigoMenuCompra) {\r\n this.usaMenuCompra = true;\r\n }\r\n\r\n if (element.codMenu === this.codigoMenuPOS) {\r\n this.usaMenuPOS = true;\r\n }\r\n\r\n\r\n if (element.codMenu === this.codigoMenurRecursosHumanos) {\r\n if (!this.usaMenuRecursosHumanos) {\r\n this.usaMenuRecursosHumanos = true;\r\n this.recursosHumanosService.getListaEstruturasOrgnizativas().subscribe(x => {\r\n this.listaEstuturasOrganizativas = x.objecto.filter(y => y.activo === true);\r\n },\r\n erro => {\r\n });\r\n }\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n getNomeModulo(idClassificacao?: number): string {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n if (obj && obj.nomeModuloP?.length > 0) {\r\n return obj.nomeModuloP;\r\n } else {\r\n return 'Módulos';\r\n }\r\n }\r\n return 'Módulos';\r\n }\r\n\r\n getNomeEvento(idClassificacao?: number): string {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n if (obj && obj?.nomeEventoP?.length > 0) {\r\n return obj?.nomeEventoP;\r\n } else {\r\n return obj?.classificacaoP;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n getNomeRealizacao(idClassificacao?: number): string {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n if (obj && obj?.nomeRealizacaoP?.length > 0) {\r\n return obj?.nomeRealizacaoP;\r\n } else {\r\n return obj?.classificacaoP;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n getEquipamento(id: number) {\r\n return this.equipamentos.find(x => x.id === id);\r\n }\r\n\r\n usarModulo(idClassificacao: number): boolean {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n if (obj && obj.idOpcModulos > 1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n multiplasRealizacoes(idClassificacao: number): boolean {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n if (obj?.multiplasRealizacoes) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n usaInscricao(idClassificacao: number): boolean {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n return obj && obj.idOpcInscricoes > 1;\r\n }\r\n return false;\r\n }\r\n\r\n opcaoCertificado(idClassificacao: number): boolean {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n return obj && obj.idOpcCertificados > 1;\r\n }\r\n return false;\r\n }\r\n\r\n Formacao(idClassificacao: number): boolean {\r\n if (idClassificacao > 0) {\r\n const obj = this.listaModulosEventos?.find(x => x.idClassificacao === idClassificacao);\r\n return obj && obj.codNatureza === 'F';\r\n }\r\n return false;\r\n }\r\n\r\n getMenuNaoDinamico(codMenu: string, i): boolean {\r\n return !this.listamenus.find((m) => m.codMenu === codMenu)?.dinamico;\r\n }\r\n\r\n getCliente(idEntidade: number): Entidades {\r\n if (this.clientesEntidades) {\r\n return this.clientesEntidades?.find((m) => m.idEntidade === idEntidade);\r\n }\r\n return null;\r\n }\r\n\r\n getArtigo(idClassificacao: number): ArtigoClassificacao {\r\n return this.artigosClassificacao?.find(m => m.idClassificacao === idClassificacao) ?? null;\r\n }\r\n\r\n getProcessos(idClassificacao: number): ProcessosClassificacoes {\r\n if (this.processosClassificacoes) {\r\n return this.processosClassificacoes.find(\r\n (m) => m.idClassificacao === idClassificacao\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n getConfiguracaoVenda() {\r\n\r\n }\r\n\r\n getMenu(codMenu: string): Menu {\r\n return this.listamenus.find((m) => m.codMenu === codMenu);\r\n }\r\n\r\n async actualizarToken() {\r\n const token = localStorage.getItem('token');\r\n this.decodedToken = await this.jwtHelper.decodeToken(token);\r\n this.loginService.decodedToken = this.decodedToken;\r\n }\r\n\r\n getMenusCMS() {\r\n this.geralService.getMenusCMS().subscribe((res: any) => {\r\n const dadosMenu = res?.objecto;\r\n this.paginas = dadosMenu?.paginas;\r\n this.gruposRegistos = [...dadosMenu?.gruposRegistos];\r\n this.listaFormularios = dadosMenu?.listaFormularios;\r\n this.galerias = dadosMenu?.galerias;\r\n this.ConfiguracaoCMS = dadosMenu?.configuracaoCMS;\r\n });\r\n }\r\n\r\n // Only for demo purpose\r\n addMenuItem() {\r\n this.menuItems.push({\r\n name: 'ITEM',\r\n type: 'dropDown',\r\n tooltip: 'Item',\r\n icon: 'done',\r\n state: 'material',\r\n sub: [\r\n {name: 'SUBITEM', state: 'cards'},\r\n {name: 'SUBITEM', state: 'buttons'}\r\n ]\r\n });\r\n }\r\n\r\n activarDropDown(id: number, state?: string, rota?: string) {\r\n if (this.idMenuActivo === id) {\r\n return (this.idMenuActivo = null);\r\n }\r\n return (this.idMenuActivo = id);\r\n }\r\n\r\n activarDropDownPos(id: number, state?: string) {\r\n if (this.PermissoesPOS?.length <= 0 && !this.utlizador?.sisAdmin && this.dadosAplicacao?.gerePermissoesUtilizador) {\r\n this._notificacao.notificar('Sem permissão POS', false, 5000);\r\n this.idMenuPOSActivo = null;\r\n return;\r\n }\r\n\r\n if (this.idMenuPOSActivo === id) {\r\n return (this.idMenuPOSActivo = null);\r\n }\r\n return (this.idMenuPOSActivo = id);\r\n }\r\n\r\n activarDropDownVenda(id: number, state?: string) {\r\n if (this.PermissoesVenda?.length <= 0 && !this.utlizador?.sisAdmin && this.dadosAplicacao?.gerePermissoesUtilizador) {\r\n this._notificacao.notificar('Sem permissões de Venda!', false, 5000);\r\n this.idMenuVendaActivo = null;\r\n return;\r\n }\r\n\r\n if (this.idMenuVendaActivo === id) {\r\n return (this.idMenuVendaActivo = null);\r\n }\r\n return (this.idMenuVendaActivo = id);\r\n }\r\n\r\n consultarVenda(subMenu: string) {\r\n console.log('Consultar doc', subMenu);\r\n }\r\n\r\n\r\n consultarConfPOS() {\r\n if (this.PermissoesPOS?.filter(p => p.codPermissao === 'POCONSCONF')?.length > 0 || this.utlizador?.sisAdmin || !this.dadosAplicacao?.gerePermissoesUtilizador) {\r\n this.POSCONSCONF = true;\r\n } else {\r\n this._notificacao.notificar('Sem permissão para consultar as configurações do POS!', false, 5000);\r\n }\r\n }\r\n\r\n openFullScreen() {\r\n\r\n }\r\n}\r\n","\r\n\r\n \r\n\r\n \r\n \r\n {{itemLvL2.name| translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n\r\n \r\n \r\n {{itemLvL2.name| translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n
\r\n\r\n \r\n \r\n {{itemLvL2.name | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL2.name | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL2.name | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n {{itemLvL2.name | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
  • \r\n \r\n\r\n \r\n {{itemLvL2.name | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n\r\n \r\n \r\n
  • \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n
  • \r\n \r\n
  • \r\n
    \r\n\r\n\r\n \r\n
  • \r\n \r\n\r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n {{getArtigo(artigo.idClassificacao)?.nomeTipoP ?? 'Tipos' |\r\n translate}}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ itemLvL3.name| translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{getArtigo(artigo.idClassificacao)?.nomeTurmas\r\n | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n
  • \r\n \r\n \r\n\r\n
  • \r\n \r\n {{ confAdm.name.replace('{ART}', getArtigo(6)?.classificacaoP)\r\n | translate}}\r\n \r\n keyboard_arrow_right\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n
    \r\n\r\n\r\n\r\n
  • \r\n\r\n \r\n\r\n \r\n \r\n \r\n {{getProcessos(processo.idClassificacao)?.nomeCategoriaP}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n Tipo\r\n {{getProcessos(processo.idClassificacao).nomeTarefasP |\r\n translate}}\r\n \r\n \r\n\r\n \r\n \r\n Estados\r\n {{getProcessos(processo.idClassificacao).nomeTarefasP |\r\n translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{getProcessos(processo.idClassificacao).nomeTarefasP\r\n |\r\n translate}}\r\n \r\n \r\n\r\n \r\n \r\n {{itemLvL3.name | translate}}\r\n \r\n \r\n
  • \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n\r\n



  • \r\n\r\n","import {Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges} from '@angular/core';\r\nimport {AccaoEntidade} from '../../models/clientes/accao-entidade';\r\nimport {Entidades} from '../../models/clientes/entidades';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'accoes-multiplas-tabela',\r\n template: `\r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n `\r\n// tslint:disable-next-line:component-class-suffix\r\n})\r\nexport class TabAccoesMultiplas implements OnChanges, OnInit {\r\n @Output() aoEnviarEmail: EventEmitter = new EventEmitter();\r\n @Output() aoImprimir: EventEmitter = new EventEmitter();\r\n @Output() aoImprimirEtiqueta: EventEmitter = new EventEmitter();\r\n @Output() aoDeletar: EventEmitter = new EventEmitter();\r\n @Output() aoRemover: EventEmitter = new EventEmitter();\r\n @Output() aoAdicionar: EventEmitter = new EventEmitter();\r\n @Output() aoExportarExcel: EventEmitter = new EventEmitter();\r\n @Output() aoImportarExcel: EventEmitter = new EventEmitter();\r\n @Output() aoExportarPDF: EventEmitter = new EventEmitter();\r\n @Output() aoNavegarRota: EventEmitter = new EventEmitter();\r\n @Output() aoAvaliar: EventEmitter = new EventEmitter();\r\n @Output() aoPagarDocumento: EventEmitter = new EventEmitter();\r\n @Output() aoFiltrar: EventEmitter = new EventEmitter();\r\n @Output() aoLimpar: EventEmitter = new EventEmitter();\r\n @Output() aoMudarLista: EventEmitter = new EventEmitter();\r\n\r\n @Input() podeEliminar: boolean;\r\n @Input() podeImprimir: boolean;\r\n @Input() podeExportarExcel: boolean;\r\n @Input() podeImportarExcel: boolean;\r\n @Input() podeExportarPDF: boolean;\r\n @Input() podeEnviarEmail: boolean;\r\n @Input() podeImprimirEtiqueta: boolean;\r\n @Input() podePagarDoc: boolean;\r\n @Input() podeCriarItem: boolean;\r\n @Input() podeAddItem: boolean;\r\n @Input() podeMudarLista: boolean;\r\n @Input() podeFiltrar: boolean;\r\n @Input() podeLimpar: boolean;\r\n @Input() podeMudarListaComMenu: boolean;\r\n @Input() mostrarBtnCriar = true;\r\n @Input() mostrarBtnAdd = false;\r\n @Input() accaoEntidade: AccaoEntidade;\r\n @Input() listaAccoes: AccaoEntidade[] = [];\r\n @Input() podeInserirCLI;\r\n @Input() mostrarAvaliacao: boolean;\r\n @Input() entidade: Entidades;\r\n @Input() tituloBtn: string;\r\n @Input() tituloBtnAdd: string;\r\n @Input() rotaItem: string;\r\n @Input() indiceTab: number;\r\n icon = '';\r\n iconLista: any = {\r\n 1: 'list',\r\n 2: 'view_list',\r\n 3: 'grid_view'\r\n };\r\n\r\n ngOnInit() {\r\n this.icon = this.iconLista[this.indiceTab];\r\n }\r\n\r\n enviarEmail() {\r\n this.aoEnviarEmail.emit(true);\r\n }\r\n\r\n pagarDocumento() {\r\n this.aoPagarDocumento.emit(true);\r\n }\r\n\r\n remover() {\r\n this.aoRemover.emit(true);\r\n }\r\n\r\n adicionar() {\r\n this.aoAdicionar.emit();\r\n }\r\n\r\n deletar() {\r\n this.aoDeletar.emit(true);\r\n }\r\n\r\n exportarExcel() {\r\n this.aoExportarExcel.emit(true);\r\n }\r\n\r\n exportarPDF() {\r\n this.aoExportarPDF.emit(true);\r\n }\r\n\r\n mudarLista(indice: number, icon: string) {\r\n this.icon = this.iconLista[indice];\r\n this.aoMudarLista.emit(indice);\r\n }\r\n\r\n navegar() {\r\n this.aoNavegarRota.emit(true);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n }\r\n\r\n}\r\n","import {Component, EventEmitter, forwardRef, Input, OnChanges, Output, SimpleChanges} from '@angular/core';\r\nimport {AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, Validator} from '@angular/forms';\r\nimport {Country} from '../../models/artigos/country-code-json/country-cod';\r\nimport {Paises} from '../../models/aplicacao/paises';\r\nimport {Accao} from '../../models/ENUM';\r\n\r\n@Component({\r\n selector: 'app-phone',\r\n template: `\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {{ label }}\r\n \r\n \r\n
    \r\n
    \r\n `,\r\n styles: [\r\n `\r\n .label-indicativo {\r\n height: 35px;\r\n border-radius: 0.4em 0 0 0.4em;\r\n border: 1px solid rgba(0, 0, 0, 0.15) !important;\r\n display: inline-flex;\r\n justify-content: center;\r\n align-items: center;\r\n background: #ffffff !important;\r\n padding-left: 5px !important;\r\n padding-right: 2px !important;\r\n min-width: 90px;\r\n }\r\n\r\n #telefone {\r\n display: inline-flex;\r\n align-items: center;\r\n width: 100%;\r\n }\r\n `,\r\n ],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PhoneComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PhoneComponent implements ControlValueAccessor, OnChanges, Validator {\r\n @Input() paises: Paises[] = [{idPais:6,codPais:\"AO\",pais:\"Angola\",nacionalidade:\"Angolana\",naturalidade:\"Angolana\",indicativo:\"+244\"},{idPais:1,codPais:\"AF\",pais:\"Afeganistão\",nacionalidade:\"Afegã\",naturalidade:\"Afegã\",indicativo:\"+93\"},{idPais:2,codPais:\"ZA\",pais:\"África do Sul\",nacionalidade:\"Sul- Africana\",naturalidade:\"Sul- Africana\",indicativo:\"+27\"},{idPais:3,codPais:\"AL\",pais:\"Albânia\",nacionalidade:\"Albanês\",naturalidade:\"Albanês\",indicativo:\"+355\"},{idPais:4,codPais:\"DE\",pais:\"Alemanha\",nacionalidade:\"Alemã\",naturalidade:\"Alemã\",indicativo:\"+49\"},{idPais:5,codPais:\"AD\",pais:\"Andorra\",nacionalidade:\"Andorrana\",naturalidade:\"Andorrana\",indicativo:\"+376\"},{idPais:7,codPais:\"AG\",pais:\"Antiga e Barbuda\",nacionalidade:\"Antiguana\",naturalidade:\"Antiguana\",indicativo:\"+1268\"},{idPais:8,codPais:\"SA\",pais:\"Arábia Saudita\",nacionalidade:\"Árabe \",naturalidade:\"Árabe \",indicativo:\"+966\"},{idPais:9,codPais:\"DZ\",pais:\"Argélia\",nacionalidade:\"Argelina\",naturalidade:\"Argelina\",indicativo:\"+213\"},{idPais:10,codPais:\"AR\",pais:\"Argentina\",nacionalidade:\"Argentina\",naturalidade:\"Argentina\",indicativo:\"+54\"},{idPais:11,codPais:\"AM\",pais:\"Arménia\",nacionalidade:\"Armenia\",naturalidade:\"Armenia\",indicativo:\"+374\"},{idPais:12,codPais:\"AU\",pais:\"Austrália\",nacionalidade:\"Australiana\",naturalidade:\"Australiana\",indicativo:\"+61\"},{idPais:13,codPais:\"AT\",pais:\"Áustria\",nacionalidade:\"Austriaca\",naturalidade:\"Austriaca\",indicativo:\"+43\"},{idPais:14,codPais:\"AZ\",pais:\"Azerbaijão\",nacionalidade:\"Azeri\",naturalidade:\"Azeri\",indicativo:\"+994\"},{idPais:15,codPais:\"BS\",pais:\"Bahamas\",nacionalidade:\"Bahamense\",naturalidade:\"Bahamense\",indicativo:\"+1242\"},{idPais:16,codPais:\"BD\",pais:\"Bangladesh\",nacionalidade:\"Bangladês\",naturalidade:\"Bangladês\",indicativo:\"+880\"},{idPais:17,codPais:\"BB\",pais:\"Barbados\",nacionalidade:\"Barbadiana\",naturalidade:\"Barbadiana\",indicativo:\"+1246\"},{idPais:18,codPais:\"BH\",pais:\"Barém\",nacionalidade:\"Baremita\",naturalidade:\"Baremita\",indicativo:\"+973\"},{idPais:19,codPais:\"BE\",pais:\"Bélgica\",nacionalidade:\"Belga\",naturalidade:\"Belga\",indicativo:\"+32\"},{idPais:20,codPais:\"BZ\",pais:\"Belize\",nacionalidade:\"Belizenha\",naturalidade:\"Belizenha\",indicativo:\"+501\"},{idPais:21,codPais:\"BJ\",pais:\"Benim\",nacionalidade:\"Beninense\",naturalidade:\"Beninense\",indicativo:\"+229\"},{idPais:22,codPais:\"BY\",pais:\"Bielorrússia\",nacionalidade:\"Bielorussa\",naturalidade:\"Bielorussa\",indicativo:\"+375\"},{idPais:23,codPais:\"BO\",pais:\"Bolívia\",nacionalidade:\"Boliviana\",naturalidade:\"Boliviana\",indicativo:\"+591\"},{idPais:24,codPais:\"BA\",pais:\"Bósnia e Herzegovina\",nacionalidade:\"Bósnia\",naturalidade:\"Bósnia\",indicativo:\"+387\"},{idPais:25,codPais:\"BW\",pais:\"Botsuana\",nacionalidade:\"Bechuana\",naturalidade:\"Bechuana\",indicativo:\"+267\"},{idPais:26,codPais:\"BR\",pais:\"Brasil\",nacionalidade:\"Brasileira\",naturalidade:\"Brasileira\",indicativo:\"+55\"},{idPais:27,codPais:\"BN\",pais:\"Brunei\",nacionalidade:\"Bruneana\",naturalidade:\"Bruneana\",indicativo:\"+673\"},{idPais:28,codPais:\"BG\",pais:\"Bulgária\",nacionalidade:\"Búlgara\",naturalidade:\"Búlgara\",indicativo:\"+359\"},{idPais:29,codPais:\"BF\",pais:\"Burquina Faso\",nacionalidade:\"Burquinense\",naturalidade:\"Burquinense\",indicativo:\"+226\"},{idPais:30,codPais:\"BI\",pais:\"Burúndi\",nacionalidade:\"Burundês\",naturalidade:\"Burundês\",indicativo:\"+257\"},{idPais:31,codPais:\"BT\",pais:\"Butão\",nacionalidade:\"Butanense\",naturalidade:\"Butanense\",indicativo:\"+975\"},{idPais:32,codPais:\"CV\",pais:\"Cabo Verde\",nacionalidade:\"Cabo-veridiana\",naturalidade:\"Cabo-veridiana\",indicativo:\"+238\"},{idPais:33,codPais:\"CM\",pais:\"Camarões\",nacionalidade:\"Camaronense\",naturalidade:\"Camaronense\",indicativo:\"+237\"},{idPais:34,codPais:\"KH\",pais:\"Camboja\",nacionalidade:\"Cambojana\",naturalidade:\"Cambojana\",indicativo:\"+855\"},{idPais:35,codPais:\"CA\",pais:\"Canadá\",nacionalidade:\"Canadense\",naturalidade:\"Canadense\",indicativo:\"+1\"},{idPais:36,codPais:\"QA\",pais:\"Catar\",nacionalidade:\"Catarense\",naturalidade:\"Catarense\",indicativo:\"+974\"},{idPais:37,codPais:\"KZ\",pais:\"Cazaquistão\",nacionalidade:\"Cazaque\",naturalidade:\"Cazaque\",indicativo:\"+77\"},{idPais:38,codPais:\"TD\",pais:\"Chade\",nacionalidade:\"Chadiana\",naturalidade:\"Chadiana\",indicativo:\"+235\"},{idPais:39,codPais:\"CL\",pais:\"Chile\",nacionalidade:\"Chilena\",naturalidade:\"Chilena\",indicativo:\"+56\"},{idPais:40,codPais:\"CN\",pais:\"China\",nacionalidade:\"Chinesa\",naturalidade:\"Chinesa\",indicativo:\"+86\"},{idPais:41,codPais:\"CY\",pais:\"Chipre\",nacionalidade:\"Cipriota\",naturalidade:\"Cipriota\",indicativo:\"+357\"},{idPais:42,codPais:\"CO\",pais:\"Colômbia\",nacionalidade:\"Colombiana\",naturalidade:\"Colombiana\",indicativo:\"+57\"},{idPais:43,codPais:\"KM\",pais:\"Comores\",nacionalidade:\"Comoriana\",naturalidade:\"Comoriana\",indicativo:\"+269\"},{idPais:44,codPais:\"CG\",pais:\"Congo-Brazzaville\",nacionalidade:\"Congolesa\",naturalidade:\"Congolesa\",indicativo:\"+242\"},{idPais:45,codPais:\"KP\",pais:\"Coreia do Norte\",nacionalidade:\"Norte-Coreana\",naturalidade:\"Norte-Coreana\",indicativo:\"+850\"},{idPais:46,codPais:\"KR\",pais:\"Coreia do Sul\",nacionalidade:\"Sul-Coreana\",naturalidade:\"Sul-Coreana\",indicativo:\"+82\"},{idPais:47,codPais:\"- \",pais:\"Cosovo\",nacionalidade:\"Cosovar\",naturalidade:\"Cosovar\",indicativo:null},{idPais:48,codPais:\"CI\",pais:\"Costa do Marfim\",nacionalidade:\"Costa Marfinense\",naturalidade:\"Costa Marfinense\",indicativo:\"+225\"},{idPais:49,codPais:\"CR\",pais:\"Costa Rica\",nacionalidade:\"Costa-riquenha\",naturalidade:\"Costa-riquenha\",indicativo:\"+506\"},{idPais:50,codPais:\"HR\",pais:\"Croácia\",nacionalidade:\"Croata\",naturalidade:\"Croata\",indicativo:\"+385\"},{idPais:51,codPais:\"KW\",pais:\"Cuaite\",nacionalidade:\"Cuaitiana\",naturalidade:\"Cuaitiana\",indicativo:\"+965\"},{idPais:52,codPais:\"CU\",pais:\"Cuba\",nacionalidade:\"Cubana\",naturalidade:\"Cubana\",indicativo:\"+53\"},{idPais:53,codPais:\"DK\",pais:\"Dinamarca\",nacionalidade:\"Dinamarquesa\",naturalidade:\"Dinamarquesa\",indicativo:\"+45\"},{idPais:54,codPais:\"DM\",pais:\"Dominica\",nacionalidade:\"Dominiquense\",naturalidade:\"Dominiquense\",indicativo:\"+1767\"},{idPais:55,codPais:\"EG\",pais:\"Egito\",nacionalidade:\"Egípcia\",naturalidade:\"Egípcia\",indicativo:\"+20\"},{idPais:56,codPais:\"AE\",pais:\"Emirados Árabes Unidos\",nacionalidade:\"Árabe \",naturalidade:\"Árabe \",indicativo:\"+971\"},{idPais:57,codPais:\"EC\",pais:\"Equador\",nacionalidade:\"Equatoriana\",naturalidade:\"Equatoriana\",indicativo:\"+593\"},{idPais:58,codPais:\"ER\",pais:\"Eritreia\",nacionalidade:\"Eritreu\",naturalidade:\"Eritreu\",indicativo:\"+291\"},{idPais:59,codPais:\"SK\",pais:\"Eslováquia\",nacionalidade:\"Eslovaca\",naturalidade:\"Eslovaca\",indicativo:\"+421\"},{idPais:60,codPais:\"SI\",pais:\"Eslovénia\",nacionalidade:\"Eslovena\",naturalidade:\"Eslovena\",indicativo:\"+386\"},{idPais:61,codPais:\"ES\",pais:\"Espanha\",nacionalidade:\"Espanhola\",naturalidade:\"Espanhola\",indicativo:\"+34\"},{idPais:62,codPais:\"PS\",pais:\"Estado da Palestina\",nacionalidade:\"Palestina \",naturalidade:\"Palestina \",indicativo:\"+970\"},{idPais:63,codPais:\"US\",pais:\"Estados Unidos\",nacionalidade:\"Americana \",naturalidade:\"Americana \",indicativo:\"+1\"},{idPais:64,codPais:\"EE\",pais:\"Estónia\",nacionalidade:\"Estoniana\",naturalidade:\"Estoniana\",indicativo:\"+372\"},{idPais:65,codPais:\"ET\",pais:\"Etiópia\",nacionalidade:\"Etíope\",naturalidade:\"Etíope\",indicativo:\"+251\"},{idPais:66,codPais:\"FJ\",pais:\"Fiji\",nacionalidade:\"Fijiana \",naturalidade:\"Fijiana \",indicativo:\"+679\"},{idPais:67,codPais:\"PH\",pais:\"Filipinas\",nacionalidade:\"Filipina\",naturalidade:\"Filipina\",indicativo:\"+63\"},{idPais:68,codPais:\"FI\",pais:\"Finlândia\",nacionalidade:\"Filandesa\",naturalidade:\"Filandesa\",indicativo:\"+358\"},{idPais:69,codPais:\"FR\",pais:\"França\",nacionalidade:\"Francesa\",naturalidade:\"Francesa\",indicativo:\"+33\"},{idPais:70,codPais:\"GA\",pais:\"Gabão\",nacionalidade:\"Gabonense\",naturalidade:\"Gabonense\",indicativo:\"+241\"},{idPais:71,codPais:\"GM\",pais:\"Gâmbia\",nacionalidade:\"Gambiana\",naturalidade:\"Gambiana\",indicativo:\"+220\"},{idPais:72,codPais:\"GH\",pais:\"Gana\",nacionalidade:\"Ganense\",naturalidade:\"Ganense\",indicativo:\"+233\"},{idPais:73,codPais:\"GE\",pais:\"Geórgia\",nacionalidade:\"Geórgica\",naturalidade:\"Geórgica\",indicativo:\"+995\"},{idPais:74,codPais:\"GD\",pais:\"Granada\",nacionalidade:\"Granadina\",naturalidade:\"Granadina\",indicativo:\"+1473\"},{idPais:75,codPais:\"GR\",pais:\"Grécia\",nacionalidade:\"Grega\",naturalidade:\"Grega\",indicativo:\"+30\"},{idPais:76,codPais:\"GT\",pais:\"Guatemala\",nacionalidade:\"Guatemalteca\",naturalidade:\"Guatemalteca\",indicativo:\"+502\"},{idPais:77,codPais:\"GY\",pais:\"Guiana\",nacionalidade:\"Guianense\",naturalidade:\"Guianense\",indicativo:\"+595\"},{idPais:78,codPais:\"GN\",pais:\"Guiné\",nacionalidade:\"Guineana\",naturalidade:\"Guineana\",indicativo:\"+224\"},{idPais:79,codPais:\"GQ\",pais:\"Guiné Equatorial\",nacionalidade:\"Guiné-Equatoriana\",naturalidade:\"Guiné-Equatoriana\",indicativo:\"+240\"},{idPais:80,codPais:\"GW\",pais:\"Guiné-Bissau\",nacionalidade:\"Guineense\",naturalidade:\"Guineense\",indicativo:\"+245\"},{idPais:81,codPais:\"HT\",pais:\"Haiti\",nacionalidade:\"Haitiana\",naturalidade:\"Haitiana\",indicativo:\"+509\"},{idPais:82,codPais:\"HN\",pais:\"Honduras\",nacionalidade:\"Hondurenha\",naturalidade:\"Hondurenha\",indicativo:\"+504\"},{idPais:83,codPais:\"HU\",pais:\"Hungria\",nacionalidade:\"Hungara\",naturalidade:\"Hungara\",indicativo:\"+36\"},{idPais:84,codPais:\"YE\",pais:\"Iémen\",nacionalidade:\"Iemenita\",naturalidade:\"Iemenita\",indicativo:\"+967\"},{idPais:198,codPais:\"KY\",pais:\"Ilhas Caimão\",nacionalidade:\"Caimanense\",naturalidade:\"Caimanense\",indicativo:\"+ 345\"},{idPais:85,codPais:\"MH\",pais:\"Ilhas Marechal\",nacionalidade:\"Marechalina\",naturalidade:\"Marechalina\",indicativo:\"+692\"},{idPais:86,codPais:\"IN\",pais:\"Índia\",nacionalidade:\"Indiana\",naturalidade:\"Indiana\",indicativo:\"+91\"},{idPais:87,codPais:\"ID\",pais:\"Indonésia\",nacionalidade:\"Indonesa\",naturalidade:\"Indonesa\",indicativo:\"+62\"},{idPais:88,codPais:\"IR\",pais:\"Irão\",nacionalidade:\"Iraniana\",naturalidade:\"Iraniana\",indicativo:\"+98\"},{idPais:89,codPais:\"IQ\",pais:\"Iraque\",nacionalidade:\"Iraquiana\",naturalidade:\"Iraquiana\",indicativo:\"+964\"},{idPais:90,codPais:\"IE\",pais:\"Irlanda\",nacionalidade:\"Irlandesa\",naturalidade:\"Irlandesa\",indicativo:\"+353\"},{idPais:91,codPais:\"IS\",pais:\"Islândia\",nacionalidade:\"Islandesa\",naturalidade:\"Islandesa\",indicativo:\"+354\"},{idPais:92,codPais:\"IL\",pais:\"Israel\",nacionalidade:\"Israelense\",naturalidade:\"Israelense\",indicativo:\"+972\"},{idPais:93,codPais:\"IT\",pais:\"Itália\",nacionalidade:\"Italiana\",naturalidade:\"Italiana\",indicativo:\"+39\"},{idPais:94,codPais:\"JM\",pais:\"Jamaica\",nacionalidade:\"Jamaicana\",naturalidade:\"Jamaicana\",indicativo:\"+1876\"},{idPais:95,codPais:\"JP\",pais:\"Japão\",nacionalidade:\"Japonesa\",naturalidade:\"Japonesa\",indicativo:\"+81\"},{idPais:96,codPais:\"DJ\",pais:\"Jibuti\",nacionalidade:\"Jibutiana\",naturalidade:\"Jibutiana\",indicativo:\"+253\"},{idPais:97,codPais:\"JO\",pais:\"Jordânia\",nacionalidade:\"Jordão\",naturalidade:\"Jordão\",indicativo:\"+962\"},{idPais:98,codPais:\"LA\",pais:\"Laos\",nacionalidade:\"Laosiana\",naturalidade:\"Laosiana\",indicativo:\"+856\"},{idPais:99,codPais:\"LS\",pais:\"Lesoto\",nacionalidade:\"Lesotiana\",naturalidade:\"Lesotiana\",indicativo:\"+266\"},{idPais:100,codPais:\"LV\",pais:\"Letónia\",nacionalidade:\"Letoniana\",naturalidade:\"Letoniana\",indicativo:\"+371\"},{idPais:101,codPais:\"LB\",pais:\"Líbano\",nacionalidade:\"Libanesa\",naturalidade:\"Libanesa\",indicativo:\"+961\"},{idPais:102,codPais:\"LR\",pais:\"Libéria\",nacionalidade:\"Liberiana\",naturalidade:\"Liberiana\",indicativo:\"+231\"},{idPais:103,codPais:\"LY\",pais:\"Líbia\",nacionalidade:\"Líbia\",naturalidade:\"Líbia\",indicativo:\"+218\"},{idPais:104,codPais:\"LI\",pais:\"Listenstaine\",nacionalidade:\"Listenstainense\",naturalidade:\"Listenstainense\",indicativo:\"+423\"},{idPais:105,codPais:\"LT\",pais:\"Lituânia\",nacionalidade:\"Lituana\",naturalidade:\"Lituana\",indicativo:\"+370\"},{idPais:106,codPais:\"LU\",pais:\"Luxemburgo\",nacionalidade:\"Luxemburguesa\",naturalidade:\"Luxemburguesa\",indicativo:\"+352\"},{idPais:107,codPais:\"MK\",pais:\"Macedónia\",nacionalidade:\"Macedônia\",naturalidade:\"Macedônia\",indicativo:\"+389\"},{idPais:108,codPais:\"MG\",pais:\"Madagáscar\",nacionalidade:\"Madagascarense\",naturalidade:\"Madagascarense\",indicativo:\"+261\"},{idPais:109,codPais:\"MY\",pais:\"Malásia\",nacionalidade:\"Malaia\",naturalidade:\"Malaia\",indicativo:\"+60\"},{idPais:110,codPais:\"MW\",pais:\"Maláui\",nacionalidade:\"Malauiana\",naturalidade:\"Malauiana\",indicativo:\"+265\"},{idPais:111,codPais:\"MV\",pais:\"Maldivas\",nacionalidade:\"Maldiva\",naturalidade:\"Maldiva\",indicativo:\"+960\"},{idPais:112,codPais:\"ML\",pais:\"Mali\",nacionalidade:\"Maliana\",naturalidade:\"Maliana\",indicativo:\"+223\"},{idPais:113,codPais:\"MT\",pais:\"Malta\",nacionalidade:\"Maltês\",naturalidade:\"Maltês\",indicativo:\"+356\"},{idPais:114,codPais:\"MA\",pais:\"Marrocos\",nacionalidade:\"Marroquina\",naturalidade:\"Marroquina\",indicativo:\"+212\"},{idPais:115,codPais:\"MU\",pais:\"Maurícia\",nacionalidade:\"Mauriciana\",naturalidade:\"Mauriciana\",indicativo:\"+230\"},{idPais:116,codPais:\"MR\",pais:\"Mauritânia\",nacionalidade:\"Mauritana\",naturalidade:\"Mauritana\",indicativo:\"+222\"},{idPais:117,codPais:\"MX\",pais:\"México\",nacionalidade:\"Mexicana\",naturalidade:\"Mexicana\",indicativo:\"+52\"},{idPais:118,codPais:\"MM\",pais:\"Mianmar\",nacionalidade:\"Birmanesa\",naturalidade:\"Birmanesa\",indicativo:\"+95\"},{idPais:119,codPais:\"FM\",pais:\"Micronésia\",nacionalidade:\"Micronésia\",naturalidade:\"Micronésia\",indicativo:\"+691\"},{idPais:120,codPais:\"MZ\",pais:\"Moçambique\",nacionalidade:\"Moçambicana\",naturalidade:\"Moçambicana\",indicativo:\"+258\"},{idPais:121,codPais:\"MD\",pais:\"Moldávia\",nacionalidade:\"Moldávia\",naturalidade:\"Moldávia\",indicativo:\"+373\"},{idPais:122,codPais:\"MC\",pais:\"Mónaco\",nacionalidade:\"Monegasca\",naturalidade:\"Monegasca\",indicativo:\"+377\"},{idPais:123,codPais:\"MN\",pais:\"Mongólia\",nacionalidade:\"Mongol\",naturalidade:\"Mongol\",indicativo:\"+976\"},{idPais:124,codPais:\"ME\",pais:\"Montenegro\",nacionalidade:\"Montenegrina\",naturalidade:\"Montenegrina\",indicativo:\"+382\"},{idPais:125,codPais:\"NA\",pais:\"Namíbia\",nacionalidade:\"Namibiana\",naturalidade:\"Namibiana\",indicativo:\"+264\"},{idPais:126,codPais:\"NR\",pais:\"Nauru\",nacionalidade:\"Nauruana\",naturalidade:\"Nauruana\",indicativo:\"+674\"},{idPais:127,codPais:\"NP\",pais:\"Nepal\",nacionalidade:\"Nepalesa\",naturalidade:\"Nepalesa\",indicativo:\"+977\"},{idPais:128,codPais:\"NI\",pais:\"Nicarágua\",nacionalidade:\"Nicaraguense\",naturalidade:\"Nicaraguense\",indicativo:\"+505\"},{idPais:129,codPais:\"NE\",pais:\"Níger\",nacionalidade:\"Nigerina\",naturalidade:\"Nigerina\",indicativo:\"+227\"},{idPais:130,codPais:\"NG\",pais:\"Nigéria\",nacionalidade:\"Nigeriana\",naturalidade:\"Nigeriana\",indicativo:\"+234\"},{idPais:131,codPais:\"NO\",pais:\"Noruega\",nacionalidade:\"Noroeguesa\",naturalidade:\"Noroeguesa\",indicativo:\"+47\"},{idPais:132,codPais:\"NZ\",pais:\"Nova Zelândia\",nacionalidade:\"Neozelandesa\",naturalidade:\"Neozelandesa\",indicativo:\"+64\"},{idPais:133,codPais:\"OM\",pais:\"Omã\",nacionalidade:\"Omanense\",naturalidade:\"Omanense\",indicativo:\"+968\"},{idPais:134,codPais:\"NL\",pais:\"Países Baixos\",nacionalidade:\"Holandesa\",naturalidade:\"Holandesa\",indicativo:\"+31\"},{idPais:135,codPais:\"PW\",pais:\"Palau\",nacionalidade:\"Palauense\",naturalidade:\"Palauense\",indicativo:\"+680\"},{idPais:136,codPais:\"PA\",pais:\"Panamá\",nacionalidade:\"Panamenha\",naturalidade:\"Panamenha\",indicativo:\"+507\"},{idPais:137,codPais:\"PG\",pais:\"Papua Nova Guiné\",nacionalidade:\"Papuásia\",naturalidade:\"Papuásia\",indicativo:\"+675\"},{idPais:138,codPais:\"PK\",pais:\"Paquistão\",nacionalidade:\"Paquistanesa\",naturalidade:\"Paquistanesa\",indicativo:\"+92\"},{idPais:139,codPais:\"PY\",pais:\"Paraguai\",nacionalidade:\"Paraguaia\",naturalidade:\"Paraguaia\",indicativo:\"+595\"},{idPais:140,codPais:\"PE\",pais:\"Peru\",nacionalidade:\"Peruana\",naturalidade:\"Peruana\",indicativo:\"+51\"},{idPais:141,codPais:\"PL\",pais:\"Polónia\",nacionalidade:\"Polonesa\",naturalidade:\"Polonesa\",indicativo:\"+48\"},{idPais:142,codPais:\"PT\",pais:\"Portugal\",nacionalidade:\"Portuguesa\",naturalidade:\"Portuguesa\",indicativo:\"+351\"},{idPais:143,codPais:\"KE\",pais:\"Quénia\",nacionalidade:\"Queniana\",naturalidade:\"Queniana\",indicativo:\"+254\"},{idPais:144,codPais:\"KG\",pais:\"Quirguistão\",nacionalidade:\"Quirguistanesa\",naturalidade:\"Quirguistanesa\",indicativo:\"+996\"},{idPais:145,codPais:\"KI\",pais:\"Quiribáti\",nacionalidade:\"Quiribatiana\",naturalidade:\"Quiribatiana\",indicativo:\"+686\"},{idPais:146,codPais:\"GB\",pais:\"Reino Unido\",nacionalidade:\"Britânica\",naturalidade:\"Britânica\",indicativo:\"+44\"},{idPais:147,codPais:\"CF\",pais:\"República Centro-Africana\",nacionalidade:\"Centro-Africana\",naturalidade:\"Centro-Africana\",indicativo:\"+236\"},{idPais:148,codPais:\"CZ\",pais:\"República Checa\",nacionalidade:\"Checa\",naturalidade:\"Checa\",indicativo:\"+420\"},{idPais:149,codPais:\"CD\",pais:\"República Democrática do Congo\",nacionalidade:\"Congolesa\",naturalidade:\"Congolesa\",indicativo:\"+243\"},{idPais:150,codPais:\"DO\",pais:\"República Dominicana\",nacionalidade:\"Dominicana\",naturalidade:\"Dominicana\",indicativo:\"+1849\"},{idPais:151,codPais:\"RO\",pais:\"Roménia\",nacionalidade:\"Romena\",naturalidade:\"Romena\",indicativo:\"+40\"},{idPais:152,codPais:\"RW\",pais:\"Ruanda\",nacionalidade:\"Ruandesa\",naturalidade:\"Ruandesa\",indicativo:\"+250\"},{idPais:153,codPais:\"RU\",pais:\"Rússia\",nacionalidade:\"Russa\",naturalidade:\"Russa\",indicativo:\"+7\"},{idPais:154,codPais:\"SB\",pais:\"Salomão\",nacionalidade:\"Salomônica\",naturalidade:\"Salomônica\",indicativo:\"+677\"},{idPais:155,codPais:\"SV\",pais:\"Salvador\",nacionalidade:\"Salvador\",naturalidade:\"Salvador\",indicativo:\"+503\"},{idPais:156,codPais:\"WS\",pais:\"Samoa\",nacionalidade:\"Samoana\",naturalidade:\"Samoana\",indicativo:\"+685\"},{idPais:157,codPais:\"LC\",pais:\"Santa Lúcia\",nacionalidade:\"Santa-Lucense\",naturalidade:\"Santa-Lucense\",indicativo:\"+1758\"},{idPais:158,codPais:\"KN\",pais:\"São Cristóvão e Neves\",nacionalidade:\"São-Cristovense\",naturalidade:\"São-Cristovense\",indicativo:\"+1869\"},{idPais:159,codPais:\"SM\",pais:\"São Marinho\",nacionalidade:\"São-Marinense\",naturalidade:\"São-Marinense\",indicativo:\"+378\"},{idPais:160,codPais:\"ST\",pais:\"São Tomé e Príncipe\",nacionalidade:\"São-Tomense\",naturalidade:\"São-Tomense\",indicativo:\"+239\"},{idPais:161,codPais:\"VC\",pais:\"São Vicente e Granadinas\",nacionalidade:\"São-Vicentina\",naturalidade:\"São-Vicentina\",indicativo:\"+1784\"},{idPais:162,codPais:\"SC\",pais:\"Seicheles\",nacionalidade:\"Seichelense\",naturalidade:\"Seichelense\",indicativo:\"+248\"},{idPais:163,codPais:\"SN\",pais:\"Senegal\",nacionalidade:\"Senegalesa\",naturalidade:\"Senegalesa\",indicativo:\"+221\"},{idPais:164,codPais:\"SL\",pais:\"Serra Leoa\",nacionalidade:\"Serra-Leoanesa\",naturalidade:\"Serra-Leoanesa\",indicativo:\"+232\"},{idPais:165,codPais:\"RS\",pais:\"Sérvia\",nacionalidade:\"Servia\",naturalidade:\"Servia\",indicativo:\"+381\"},{idPais:166,codPais:\"SG\",pais:\"Singapura\",nacionalidade:\"Singapurense\",naturalidade:\"Singapurense\",indicativo:\"+65\"},{idPais:167,codPais:\"SY\",pais:\"Síria\",nacionalidade:\"Síria\",naturalidade:\"Síria\",indicativo:\"+963\"},{idPais:168,codPais:\"SO\",pais:\"Somália\",nacionalidade:\"Somali\",naturalidade:\"Somali\",indicativo:\"+252\"},{idPais:169,codPais:\"LK\",pais:\"Sri Lanca\",nacionalidade:\"Srilankesa\",naturalidade:\"Srilankesa\",indicativo:\"+94\"},{idPais:170,codPais:\"SZ\",pais:\"Suazilândia\",nacionalidade:\"Suazi\",naturalidade:\"Suazi\",indicativo:\"+268\"},{idPais:171,codPais:\"SD\",pais:\"Sudão\",nacionalidade:\"Sudanense\",naturalidade:\"Sudanense\",indicativo:\"+249\"},{idPais:172,codPais:\"SS\",pais:\"Sudão do Sul\",nacionalidade:\"Sul-Sudanense\",naturalidade:\"Sul-Sudanense\",indicativo:\"+211\"},{idPais:173,codPais:\"SE\",pais:\"Suécia\",nacionalidade:\"Sueca\",naturalidade:\"Sueca\",indicativo:\"+46\"},{idPais:174,codPais:\"CH\",pais:\"Suíça\",nacionalidade:\"Suiça\",naturalidade:\"Suiça\",indicativo:\"+41\"},{idPais:175,codPais:\"SR\",pais:\"Suriname\",nacionalidade:\"Suinamês\",naturalidade:\"Suinamês\",indicativo:\"+597\"},{idPais:176,codPais:\"TH\",pais:\"Tailândia\",nacionalidade:\"Tailandesa\",naturalidade:\"Tailandesa\",indicativo:\"+66\"},{idPais:177,codPais:\"TW\",pais:\"Taiuã\",nacionalidade:\"Taiwanesa\",naturalidade:\"Taiwanesa\",indicativo:\"+886\"},{idPais:178,codPais:\"TJ\",pais:\"Tajiquistão\",nacionalidade:\"Tajique\",naturalidade:\"Tajique\",indicativo:\"+992\"},{idPais:179,codPais:\"TZ\",pais:\"Tanzânia\",nacionalidade:\"Tanzaniana\",naturalidade:\"Tanzaniana\",indicativo:\"+255\"},{idPais:180,codPais:\"TL\",pais:\"Timor-Leste\",nacionalidade:\"Timorense\",naturalidade:\"Timorense\",indicativo:\"+670\"},{idPais:181,codPais:\"TG\",pais:\"Togo\",nacionalidade:\"Togolesa\",naturalidade:\"Togolesa\",indicativo:\"+228\"},{idPais:182,codPais:\"TO\",pais:\"Tonga\",nacionalidade:\"Tonganesa\",naturalidade:\"Tonganesa\",indicativo:\"+676\"},{idPais:183,codPais:\"TT\",pais:\"Trindade e Tobago\",nacionalidade:\"Trinitária\",naturalidade:\"Trinitária\",indicativo:\"+1868\"},{idPais:184,codPais:\"TN\",pais:\"Tunísia\",nacionalidade:\"Tunisiana\",naturalidade:\"Tunisiana\",indicativo:\"+216\"},{idPais:185,codPais:\"TM\",pais:\"Turcomenistão\",nacionalidade:\"Turcomena\",naturalidade:\"Turcomena\",indicativo:\"+993\"},{idPais:186,codPais:\"TR\",pais:\"Turquia\",nacionalidade:\"Turca\",naturalidade:\"Turca\",indicativo:\"+90\"},{idPais:187,codPais:\"TV\",pais:\"Tuvalu\",nacionalidade:\"Tuvaluana \",naturalidade:\"Tuvaluana \",indicativo:\"+688\"},{idPais:188,codPais:\"UA\",pais:\"Ucrânia\",nacionalidade:\"Ucraniana\",naturalidade:\"Ucraniana\",indicativo:\"+380\"},{idPais:189,codPais:\"UG\",pais:\"Uganda\",nacionalidade:\"Ugandesa\",naturalidade:\"Ugandesa\",indicativo:\"+256\"},{idPais:190,codPais:\"UY\",pais:\"Uruguai\",nacionalidade:\"Uruguaia\",naturalidade:\"Uruguaia\",indicativo:\"+598\"},{idPais:191,codPais:\"UZ\",pais:\"Usbequistão\",nacionalidade:\"Uzbeque\",naturalidade:\"Uzbeque\",indicativo:\"+998\"},{idPais:192,codPais:\"VU\",pais:\"Vanuatu\",nacionalidade:\"Vunuatuana\",naturalidade:\"Vunuatuana\",indicativo:\"+678\"},{idPais:193,codPais:\"VA\",pais:\"Vaticano\",nacionalidade:\"Vaticano\",naturalidade:\"Vaticano\",indicativo:\"+379\"},{idPais:194,codPais:\"VE\",pais:\"Venezuela\",nacionalidade:\"Venezualena\",naturalidade:\"Venezualena\",indicativo:\"+58\"},{idPais:195,codPais:\"VN\",pais:\"Vietnã\",nacionalidade:\"Vietnamita\",naturalidade:\"Vietnamita\",indicativo:\"+84\"},{idPais:196,codPais:\"ZM\",pais:\"Zâmbia\",nacionalidade:\"Zambiana\",naturalidade:\"Zambiana\",indicativo:\"+260\"},{idPais:197,codPais:\"ZW\",pais:\"Zimbábwe\",nacionalidade:\"Zimbabueana\",naturalidade:\"Zimbabueana\",indicativo:\"+263\"}];\r\n @Input() label = 'Telefone';\r\n @Input() id: string | number = '';\r\n valorTelefone = '';\r\n indicativo = '';\r\n @Input() translateYValue = 7;\r\n @Input() accao = '';\r\n @Output() aoMudarIndicativo = new EventEmitter();\r\n paisesAux: Country[] = [];\r\n paisSeleccionado!: Paises;\r\n Telefone = '';\r\n hasError = false;\r\n readonly actions = Accao;\r\n onChange: any = () => {\r\n }\r\n\r\n onTouch: any = () => {\r\n }\r\n\r\n set value(val: any) {\r\n\r\n if (val && this.paises) {\r\n\r\n for (const item of this.paises) {\r\n if (val.startsWith(item.indicativo)) {\r\n this.paisSeleccionado = item;\r\n this.aoMudarIndicativo.emit(item.indicativo);\r\n this.Telefone = val.split(item.indicativo)[1];\r\n return;\r\n } else {\r\n this.Telefone = val;\r\n this.paisSeleccionado = null;\r\n this.aoMudarIndicativo.emit(null);\r\n }\r\n }\r\n } else {\r\n this.Telefone = val;\r\n }\r\n }\r\n\r\n writeValue(valor: any) {\r\n if (valor) {\r\n this.value = valor;\r\n this.valorTelefone = valor;\r\n } else {\r\n this.value = '+244';\r\n }\r\n }\r\n\r\n registerOnChange(fn: any) {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any) {\r\n this.onTouch = fn;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes && changes['paises'] && changes['paises']?.currentValue) {\r\n this.paises = changes['paises'].currentValue;\r\n this.paisesAux = changes['paises'].currentValue;\r\n if (!this.Telefone) {\r\n this.paisSeleccionado = this.paises.find(\r\n (p) => p.codPais === 'AO'\r\n );\r\n if (this.paisSeleccionado && this.paisSeleccionado.indicativo && this.Telefone && this.Telefone.trim().length > 0) {\r\n this.aoMudarIndicativo.emit(this.paisSeleccionado.indicativo);\r\n }\r\n } else {\r\n this.aoMudarIndicativo.emit('');\r\n }\r\n }\r\n }\r\n\r\n onInput(event: any) {\r\n }\r\n\r\n onBlur() {\r\n if (this.Telefone && this.Telefone.trim().length > 0) {\r\n this.onChange(`${this.paisSeleccionado.indicativo} ${this.Telefone}`);\r\n this.aoMudarIndicativo.emit(this.paisSeleccionado?.indicativo);\r\n } else {\r\n this.onChange(`${this.paisSeleccionado.indicativo}`);\r\n }\r\n }\r\n\r\n onChangeIndicativo(pais: Paises) {\r\n this.paisSeleccionado = pais;\r\n if (this.Telefone && this.Telefone.trim().length > 0) {\r\n this.onChange(\r\n `${this.paisSeleccionado.indicativo} ${this.Telefone}`\r\n );\r\n this.aoMudarIndicativo.emit(this.paisSeleccionado?.indicativo);\r\n } else {\r\n this.onChange(``);\r\n }\r\n }\r\n\r\n isUSAOrCAPhoneNumber(phoneNumber: string): string {\r\n const canadianRegex = /^(\\+?1\\s*[-\\/\\.]?)?\\(?[2-9]\\d{2}\\)?[-\\/\\.]?\\s*\\d{3}[-\\/\\.]?\\s*\\d{4}$/;\r\n const americanRegex = /^(\\+?1\\s*[-\\/\\.]?)?[2-9]\\d{2}\\s*[-\\/\\.]?\\s*\\d{3}\\s*[-\\/\\.]?\\s*\\d{4}$/;\r\n\r\n if (canadianRegex.test(phoneNumber)) {\r\n return 'CA';\r\n } else if (americanRegex.test(phoneNumber)) {\r\n return 'US';\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n validate(control: AbstractControl): { [key: string]: any } | null {\r\n this.hasError = !this.paisSeleccionado || this.Telefone.trim() === '';\r\n return this.hasError ? {required: true} : null;\r\n }\r\n}\r\n","import { Breakpoints } from '@angular/cdk/layout';\r\nimport { FiltroMetodoPagamentoDto } from 'app/shared/models/financas/filtro-metodo-pagamento.dto';\r\n\r\nexport const mapaAccao = new Map([\r\n ['D', 'Consultar'],\r\n ['C', 'Criar'],\r\n ['E', 'Editar'],\r\n]);\r\n\r\nexport const btnGravarFA = new Map([\r\n ['GI', 'Gravar e imprimir'],\r\n ['GE', 'Gravar e enviar por e-mail'],\r\n ]);\r\n\r\nexport const breakPointMap = new Map([\r\n [Breakpoints.XSmall, 'XSmall'],\r\n [Breakpoints.Small, 'Small'],\r\n [Breakpoints.Medium, 'Medium'],\r\n [Breakpoints.Large, 'Large'],\r\n [Breakpoints.XLarge, 'XLarge'],\r\n // [Breakpoints.Tablet, 'Tablet'],\r\n // [Breakpoints.Web, 'Web'],\r\n // [Breakpoints.WebLandscape, 'WebLandscape'],\r\n // [Breakpoints.WebPortrait, 'WebPortrait'],\r\n // [Breakpoints.Handset, 'Handset'],\r\n]);\r\n\r\nexport const lgPainel = {\r\n XSmall: 320,\r\n Small: 400,\r\n Medium: 500,\r\n Large: 600,\r\n XLarge: 700,\r\n};\r\n\r\nexport const modalOverLay = {\r\n XSmall: 100,\r\n Small: 100,\r\n Medium: 100,\r\n Large: 80,\r\n XLarge: 70,\r\n};\r\n\r\nexport const FILTRO_METODO_PAGAMENTO: FiltroMetodoPagamentoDto = {\r\n recebimento: true,\r\n pagamento: false,\r\n utilizador: null\r\n};\r\n","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[address]'\r\n})\r\nexport class AddressDirective {\r\n @Input('texto') texto: string = '';\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n this.renderer.setStyle(el.nativeElement, 'height', '40px');\r\n this.renderer.setStyle(el.nativeElement, 'resize', 'none');\r\n this.renderer.setStyle(el.nativeElement, 'overflow-y', 'hidden');\r\n this.renderer.setStyle(el.nativeElement, 'width', '441px');\r\n this.renderer.setAttribute(el.nativeElement, 'maxlength', '156');\r\n this.renderer.setAttribute(el.nativeElement, 'rows', '3');\r\n this.renderer.setAttribute(el.nativeElement, 'cols', '40');\r\n }\r\n @HostListener('paste', ['$event']) onPaste(event: ClipboardEvent) {\r\n const linhas = this.texto.match(/\\n/g);\r\n if (linhas && linhas.length > 1) {event.preventDefault(); return; }\r\n if (linhas) {\r\n if (linhas.length === 1 && this.texto.split('\\n')[1].length > 52) {\r\n event.preventDefault();\r\n } else if (linhas.length > 1 && this.texto.split('\\n')[2].length > 23) {\r\n event.preventDefault();\r\n }\r\n } else if (this.texto.length > 156) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('keypress', ['$event']) onKeyPress(event: any) {\r\n const linhas = event.target.value.match(/\\n/g);\r\n if (linhas && linhas.length > 3) {event.preventDefault(); return; }\r\n if (linhas) {\r\n if (linhas.length === 1 && event.target.value.split('\\n')[1].length > 52) {\r\n event.preventDefault();\r\n } else if (linhas.length > 1 && event.target.value.split('\\n')[2].length > 23) {\r\n event.preventDefault();\r\n }\r\n if (linhas.length > 1 && event.charCode === 13) {\r\n event.preventDefault();\r\n }\r\n } else if (event.target.value.length > 156) {\r\n event.preventDefault();\r\n }\r\n }\r\n} // Directive //\r\n","import {Directive, ElementRef, HostListener, Input, OnInit} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Directive({\r\n selector: '[appBlockSpace]'\r\n})\r\nexport class BlockSpaceDirective implements OnInit {\r\n private regex: RegExp = new RegExp(/^\\d*\\,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'Space', ];\r\n@Input() valorMax;\r\nvalorActual: any;\r\n constructor(private el: ElementRef) {\r\n this.valorActual = this.el.nativeElement.value;\r\n }\r\n\r\n ngOnInit() {\r\n console.log('Valor do Input agora: ', this.valorActual)\r\n }\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n console.log('Pressed Key', event.key);\r\n console.log('Key', event.key);\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n\r\n console.log('Valor do input: ', this.valorActual);\r\n const position = this.el.nativeElement.selectionStart;\r\n // const next: string = [valorActual.slice(0, position), event.key === ',' ? ',' : event.key, valorActual.slice(position)].join('');\r\n // if (Util.convertToFloat(next)) {console.log('Max: ', next); event.preventDefault(); }\r\n // if (next && !String(next).match(this.regex)) { event.preventDefault(); }\r\n }\r\n}\r\n","import {Directive, HostListener, OnChanges} from '@angular/core';\r\nimport {NgControl, NgModel} from '@angular/forms';\r\nimport {CurrencyPipe, DecimalPipe} from '@angular/common';\r\n\r\n@Directive({\r\n selector: '[appCurrencyI18n]',\r\n providers: [NgModel, CurrencyPipe, DecimalPipe],\r\n 'host': {\r\n '(blur)': 'onInputChange($event)',\r\n '(focus)': 'onInputChange($event)'\r\n },\r\n})\r\nexport class CurrencyI18nDirective {\r\n constructor(\r\n private model: NgModel,\r\n private currencyPipe: CurrencyPipe,\r\n public ngControl: NgControl\r\n ) {\r\n }\r\n\r\n onInputChange($event) {\r\n const value = $event.target.value;\r\n if (!value) {\r\n return;\r\n }\r\n\r\n let plainNumber: number;\r\n let formattedValue: string;\r\n\r\n const decimalSeparatorIndex = value.lastIndexOf(',');\r\n if (decimalSeparatorIndex > 0) {\r\n // if input has decimal part\r\n const wholeNumberPart = value.substring(0, decimalSeparatorIndex);\r\n const decimalPart = value.substr(decimalSeparatorIndex + 1);\r\n plainNumber = parseFloat(\r\n wholeNumberPart.replace(/[^\\d]/g, '') + '.' + decimalPart\r\n );\r\n } else {\r\n // input does not have decimal part\r\n plainNumber = parseFloat(value.replace(/[^\\d]/g, ''));\r\n }\r\n\r\n if (!plainNumber) {\r\n formattedValue = '';\r\n } else {\r\n formattedValue = this.currencyPipe.transform(\r\n plainNumber.toFixed(2),\r\n 'AOA',\r\n 'symbol'\r\n );\r\n }\r\n\r\n this.ngControl.valueAccessor.writeValue(formattedValue);\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDecimalPlaces]'\r\n})\r\nexport class DecimalPlacesDirective {\r\n private regex: RegExp = new RegExp(/^\\d*\\,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n // const next: string = [current.slice(0, position), event.key === 'Decimal' ? ',' : event.key, current.slice(position)].join('');\r\n const next: string = [current.slice(0, position), event.key === ',' ? ',' : event.key, current.slice(position)].join('');\r\n console.log('Valor: ', next);\r\n // if (parseFloat(next) >= 100) { event.preventDefault();}\r\n console.log('Pressed', current);\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import { Directive, HostListener, Inject } from '@angular/core';\r\nimport { DropdownLinkDirective } from './dropdown-link.directive';\r\n\r\n@Directive({\r\n selector: '[appDropdownToggle]',\r\n})\r\nexport class DropdownAnchorDirective {\r\n protected navlink: DropdownLinkDirective;\r\n\r\n constructor(@Inject(DropdownLinkDirective) navlink: DropdownLinkDirective) {\r\n this.navlink = navlink;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(e: any) {\r\n this.navlink.toggle();\r\n }\r\n}\r\n","import { Directive, HostBinding, Inject, Input, OnInit, OnDestroy } from '@angular/core';\r\n\r\nimport { AppDropdownDirective } from './dropdown.directive';\r\n\r\n@Directive({\r\n selector: '[appDropdownLink]',\r\n})\r\nexport class DropdownLinkDirective implements OnInit, OnDestroy {\r\n @Input() public group: any;\r\n\r\n protected _open: boolean;\r\n protected nav: AppDropdownDirective;\r\n\r\n @HostBinding('class.open')\r\n @Input()\r\n get open(): boolean {\r\n return this._open;\r\n }\r\n\r\n set open(value: boolean) {\r\n this._open = value;\r\n // if (value) {\r\n // this.nav.closeOtherLinks(this);\r\n // }\r\n }\r\n\r\n public constructor(@Inject(AppDropdownDirective) nav: AppDropdownDirective) {\r\n this.nav = nav;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this.nav.addLink(this);\r\n }\r\n\r\n public ngOnDestroy(): any {\r\n this.nav.removeGroup(this);\r\n }\r\n\r\n public toggle(): any {\r\n this.open = !this.open;\r\n }\r\n}\r\n","import {Directive, OnInit} from '@angular/core';\r\nimport {NavigationEnd, Router} from '@angular/router';\r\nimport {DropdownLinkDirective} from './dropdown-link.directive';\r\nimport {Subscription} from 'rxjs';\r\nimport {filter} from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[appDropdown]'\r\n})\r\nexport class AppDropdownDirective implements OnInit {\r\n protected navlinks: DropdownLinkDirective[] = [];\r\n\r\n private _router: Subscription;\r\n\r\n public closeOtherLinks(openLink: DropdownLinkDirective): void {\r\n this.navlinks.forEach((link: DropdownLinkDirective) => {\r\n if (link !== openLink) {\r\n link.open = false;\r\n }\r\n });\r\n }\r\n\r\n public addLink(link: DropdownLinkDirective): void {\r\n this.navlinks.push(link);\r\n }\r\n\r\n public removeGroup(link: DropdownLinkDirective): void {\r\n const index = this.navlinks.indexOf(link);\r\n if (index !== -1) {\r\n this.navlinks.splice(index, 1);\r\n }\r\n }\r\n\r\n public getUrl() {\r\n return this.router.url;\r\n }\r\n\r\n public ngOnInit(): any {\r\n this._router = this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => {\r\n this.navlinks.forEach((link: DropdownLinkDirective) => {\r\n if (link.group) {\r\n const routeUrl = this.getUrl();\r\n const currentUrl = routeUrl.split('/');\r\n if (currentUrl.indexOf(link.group) > 0) {\r\n link.open = true;\r\n this.closeOtherLinks(link);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n constructor(private router: Router) {\r\n }\r\n\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n Attribute,\r\n OnInit,\r\n Input,\r\n Renderer2,\r\n NgZone,\r\n SimpleChanges,\r\n OnChanges,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from \"@angular/core\";\r\nimport * as hl from \"highlight.js\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Directive({\r\n host: {\r\n \"[class.hljs]\": \"true\",\r\n \"[innerHTML]\": \"highlightedCode\"\r\n },\r\n selector: \"[egretHighlight]\"\r\n})\r\nexport class EgretHighlightDirective implements OnInit, OnChanges, OnDestroy {\r\n constructor(\r\n private el: ElementRef,\r\n private cdr: ChangeDetectorRef,\r\n private _zone: NgZone,\r\n private http: HttpClient\r\n ) {\r\n this.unsubscribeAll = new Subject();\r\n }\r\n // Inner highlighted html\r\n highlightedCode: string;\r\n\r\n @Input() path: string;\r\n @Input(\"egretHighlight\") code: string;\r\n private unsubscribeAll: Subject;\r\n @Input() languages: string[];\r\n\r\n ngOnInit() {\r\n if (this.code) {\r\n this.highlightElement(this.code);\r\n }\r\n if (this.path) {\r\n this.highlightedCode = \"Loading...\"\r\n this.http\r\n .get(this.path, { responseType: \"text\" })\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe(response => {\r\n this.highlightElement(response, this.languages);\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (\r\n changes[\"code\"] &&\r\n changes[\"code\"].currentValue &&\r\n changes[\"code\"].currentValue !== changes[\"code\"].previousValue\r\n ) {\r\n this.highlightElement(this.code);\r\n // console.log('hljs on change', changes)\r\n }\r\n }\r\n\r\n highlightElement(code: string, languages?: string[]) {\r\n this._zone.runOutsideAngular(() => {\r\n const res = hl.highlightAuto(code);\r\n this.highlightedCode = res.value;\r\n // this.cdr.detectChanges();\r\n // console.log(languages)\r\n });\r\n }\r\n}\r\n","import { Directive, Host, Self, Optional, OnDestroy, OnInit } from '@angular/core';\r\nimport { MediaChange, MediaObserver } from \"@angular/flex-layout\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\n\r\n@Directive({\r\n selector: '[EgretSideNavToggle]'\r\n})\r\nexport class EgretSideNavToggleDirective implements OnInit, OnDestroy {\r\n isMobile;\r\n screenSizeWatcher: Subscription;\r\n constructor(\r\n private mediaObserver: MediaObserver,\r\n @Host() @Self() @Optional() public sideNav: MatSidenav\r\n ) { \r\n }\r\n\r\n ngOnInit() {\r\n this.initSideNav();\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.screenSizeWatcher) {\r\n this.screenSizeWatcher.unsubscribe()\r\n }\r\n }\r\n\r\n updateSidenav() {\r\n var self = this;\r\n setTimeout(() => {\r\n self.sideNav.opened = !self.isMobile;\r\n self.sideNav.mode = self.isMobile ? 'over' : 'side';\r\n })\r\n }\r\n initSideNav() {\r\n this.isMobile = this.mediaObserver.isActive('xs') || this.mediaObserver.isActive('sm');\r\n // console.log(this.isMobile)\r\n this.updateSidenav();\r\n this.screenSizeWatcher = this.mediaObserver.media$.subscribe((change: MediaChange) => {\r\n this.isMobile = (change.mqAlias == 'xs') || (change.mqAlias == 'sm');\r\n this.updateSidenav();\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Directive,\r\n OnInit,\r\n OnDestroy,\r\n HostBinding,\r\n Input,\r\n HostListener\r\n} from \"@angular/core\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { MatchMediaService } from \"app/shared/services/match-media.service\";\r\nimport { EgretSidenavHelperService } from \"./egret-sidenav-helper.service\";\r\nimport { MatSidenav } from \"@angular/material/sidenav\";\r\nimport { MediaObserver } from \"@angular/flex-layout\";\r\n\r\n@Directive({\r\n selector: \"[egretSidenavHelper]\"\r\n})\r\nexport class EgretSidenavHelperDirective implements OnInit, OnDestroy {\r\n @HostBinding(\"class.is-open\")\r\n isOpen: boolean;\r\n\r\n @Input(\"egretSidenavHelper\")\r\n id: string;\r\n\r\n @Input(\"isOpen\")\r\n isOpenBreakpoint: string;\r\n\r\n private unsubscribeAll: Subject;\r\n\r\n constructor(\r\n private matchMediaService: MatchMediaService,\r\n private egretSidenavHelperService: EgretSidenavHelperService,\r\n private matSidenav: MatSidenav,\r\n private mediaObserver: MediaObserver\r\n ) {\r\n // Set the default value\r\n this.isOpen = true;\r\n\r\n this.unsubscribeAll = new Subject();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.egretSidenavHelperService.setSidenav(this.id, this.matSidenav);\r\n\r\n if (this.mediaObserver.isActive(this.isOpenBreakpoint)) {\r\n this.isOpen = true;\r\n this.matSidenav.mode = \"side\";\r\n this.matSidenav.toggle(true);\r\n } else {\r\n this.isOpen = false;\r\n this.matSidenav.mode = \"over\";\r\n this.matSidenav.toggle(false);\r\n }\r\n\r\n this.matchMediaService.onMediaChange\r\n .pipe(takeUntil(this.unsubscribeAll))\r\n .subscribe(() => {\r\n if (this.mediaObserver.isActive(this.isOpenBreakpoint)) {\r\n this.isOpen = true;\r\n this.matSidenav.mode = \"side\";\r\n this.matSidenav.toggle(true);\r\n } else {\r\n this.isOpen = false;\r\n this.matSidenav.mode = \"over\";\r\n this.matSidenav.toggle(false);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.unsubscribeAll.next();\r\n this.unsubscribeAll.complete();\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: \"[egretSidenavToggler]\"\r\n})\r\nexport class EgretSidenavTogglerDirective {\r\n @Input(\"egretSidenavToggler\")\r\n public id: any;\r\n\r\n constructor(private egretSidenavHelperService: EgretSidenavHelperService) {}\r\n\r\n @HostListener(\"click\")\r\n onClick() {\r\n // console.log(this.egretSidenavHelperService.getSidenav(this.id))\r\n this.egretSidenavHelperService.getSidenav(this.id).toggle();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatSidenav } from \"@angular/material/sidenav\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class EgretSidenavHelperService {\r\n sidenavList: MatSidenav[];\r\n\r\n constructor() {\r\n this.sidenavList = [];\r\n }\r\n\r\n setSidenav(id, sidenav): void {\r\n this.sidenavList[id] = sidenav;\r\n }\r\n\r\n getSidenav(id): any {\r\n return this.sidenavList[id];\r\n }\r\n}\r\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[statusBgColor]'\r\n})\r\nexport class EstadoBgColorDirective implements OnInit {\r\n @Input() statusPag: string = '';\r\n bgClass: string = 'light-blue-700 light-blue-700-fg';\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\n ngOnInit() {\r\n this.setBgClass();\r\n }\r\n\r\n// class=\"pr-1 pl-1\r\n// {{row?.estadoPagamento && row.estadoPagamento?.toLowerCase().trim() ===\r\n// ' Por Pagar '.toLowerCase().trim() ? 'orange-800 orange-800-fg':\r\n// row?.estadoPagamento && row.estadoPagamento?.toLowerCase().trim() ===\r\n// ' Pago '.toLowerCase().trim() ? 'light-green-800 light-green-800-fg':\r\n// row.estadoPagamento?.toLowerCase().trim() ===\r\n// ' Anulado '.toLowerCase().trim() ? 'red-A100 red-A400-fg':'light-blue-700 light-blue-700-fg'\r\n// }}\"\r\n setBgClass() {\r\n switch (true) {\r\n case this.statusPag.toLowerCase().trim() === 'por pagar': {\r\n this.bgClass = 'orange-800 orange-800-fg';\r\n }\r\n break;\r\n case this.statusPag.toLowerCase().trim() === 'pago':\r\n {\r\n this.bgClass = 'light-green-800 light-green-800-fg';\r\n }\r\n break;\r\n case this.statusPag.toLowerCase().trim() === 'anulado':\r\n {\r\n this.bgClass = 'light-green-800 light-green-800-fg';\r\n }\r\n break;\r\n }\r\n\r\n this.renderer.setAttribute(this.el.nativeElement, 'class', this.bgClass);\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\r\nimport {FixedStoreService} from '../services/data/fixed-store.service';\r\n\r\n@Directive({\r\n selector: '[appFixTop]'\r\n})\r\nexport class FixTopDirective {\r\n constructor(private el: ElementRef, private fixStore: FixedStoreService) {\r\n\r\n this.el.nativeElement.addEventListener('scroll', () => {\r\n if (window.pageYOffset < this.el.nativeElement.offsetTop) {\r\n fixStore.setFixTop(true);\r\n } else {\r\n fixStore.setFixTop(false);\r\n }\r\n if (this.el.nativeElement.offsetHeight < 5) {\r\n fixStore.setFixTop(false);\r\n }\r\n })\r\n }\r\n\r\n\r\n}\r\n","import { Directive, ElementRef, Attribute, OnInit } from '@angular/core';\r\n\r\n@Directive({ selector: '[fontSize]' })\r\nexport class FontSizeDirective implements OnInit {\r\n constructor( @Attribute('fontSize') public fontSize: string, private el: ElementRef) { }\r\n ngOnInit() {\r\n this.el.nativeElement.fontSize = this.fontSize;\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener, Input, OnInit} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Directive({\r\n selector: '[appFormatDecimals]'\r\n})\r\nexport class FormatDecimalsDirective implements OnInit {\r\n private regex: RegExp = new RegExp(/^\\d*\\,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n@Input() valorMax;\r\nvalorActual: any;\r\n constructor(private el: ElementRef) {\r\n this.valorActual = this.el.nativeElement.value;\r\n }\r\n\r\n ngOnInit() {\r\n console.log('Valor do Input agora: ', this.valorActual)\r\n }\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n console.log('Pressed Key', event.key);\r\n\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n\r\n console.log('Valor do input: ', this.valorActual);\r\n const position = this.el.nativeElement.selectionStart;\r\n // const next: string = [valorActual.slice(0, position), event.key === ',' ? ',' : event.key, valorActual.slice(position)].join('');\r\n // if (Util.convertToFloat(next)) {console.log('Max: ', next); event.preventDefault(); }\r\n // if (next && !String(next).match(this.regex)) { event.preventDefault(); }\r\n }\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {CurrencyPipe} from '@angular/common';\r\nimport {Util} from '../models/generico/util';\r\n\r\n\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[formatarHora]',\r\n})\r\nexport class FormatarHoraDirective {\r\n @Input() valor = '';\r\n @HostListener('input', ['$event']) onInput(event: Event) {\r\n let target = event.target as HTMLInputElement;\r\n target.value = target.value.toUpperCase().replace(/[a-zA-Z\\sç;?><_=+/ºª%$#\"!|()&´`«»'}{*^~\\t\\n]/gi, '');\r\n }\r\n}\r\n","import {Directive, ElementRef, Input} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[fundoCard]'\r\n}) export class FundoCardDirective {\r\n @Input() setFundoCard: number;\r\n fundos: any[] = [\r\n {fundo: 'background: url(/assets/images/backgrounds/circles.png), linear-gradient(90deg, rgb(223 223 227) -19.83%, rgb(69,153,238) 189.85%);!important;' },\r\n {fundo: 'background: url(/assets/images/backgrounds/circles.png), linear-gradient(90deg, rgb(223 223 227) -19.83%, rgb(193,9,68) 189.85%);!important;' },\r\n {fundo: 'background: url(/assets/images/backgrounds/circles.png), linear-gradient(90deg, rgb(223 223 227) -19.83%, rgb(69,153,238) 189.85%);!important;' },\r\n {fundo: 'background: url(/assets/images/backgrounds/circles.png), linear-gradient(90deg, rgb(223 223 227) -19.83%, rgb(238,131,69) 189.85%);!important;' }\r\n ];\r\n\r\n constructor(private el: ElementRef) {\r\n el.nativeElement.style.background = this.fundos[this.setFundoCard]?.fundo;\r\n }\r\n}","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Directive({\r\n selector: '[appInputDecimals]'\r\n})\r\nexport class InputDecimalsDirective {\r\n private regex: RegExp = new RegExp(/^\\d*\\,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n@Input() valorMax;\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n console.log('Pressed Key', event.key);\r\n\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key === ',' ? ',' : event.key, current.slice(position)].join('');\r\n if (Util.convertToFloat(next) > this.valorMax) {console.log('Max: ', next); event.preventDefault(); }\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {CurrencyPipe} from '@angular/common';\r\nimport {Util} from '../models/generico/util';\r\n\r\nexport enum Format {\r\n Cod = 'codigo',\r\n Decimal = 'decimal',\r\n Data = 'data',\r\n Perc = 'perc',\r\n GPS = 'GPS',\r\n Tel = 'Tel',\r\n Time = 'Time'\r\n}\r\n\r\n@Directive({\r\n selector: '[appInputFormat]',\r\n providers: [CurrencyPipe]\r\n})\r\nexport class InputFormatDirective {\r\n @Input('appInputFormat') format = '';\r\n\r\n constructor(private currencyPipe: CurrencyPipe) {\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n onInput(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n let position = target.selectionStart;\r\n switch (this.format) {\r\n case Format.Cod:\r\n target.value = target.value.toUpperCase().replace(/[^a-zA-Z0-9\\-\\\\\\/.#]+/g, '');\r\n break;\r\n case Format.Decimal:\r\n this.parseDecimal(target);\r\n break;\r\n case Format.Perc:\r\n this.parseDecimal(target);\r\n target.value = String(Util.clamp(Util.convertToFloat(target.value), 0, 100));\r\n this.parseDecimal(target);\r\n break;\r\n case Format.Data:\r\n for (let i = 0; i < target.value.length; i++) {\r\n if (i === 2 || i === 5) {\r\n target.value = target.value[i] !== '/' ? target.value.slice(0, i) : target.value;\r\n } else if (isNaN(Number(target.value[i]))) {\r\n target.value = target.value.slice(0, i);\r\n }\r\n }\r\n break;\r\n case Format.GPS:\r\n target.value = this.formatCoordinates(target.value.replace(/[^0-9.-]/g, ''));\r\n break;\r\n case Format.Tel: {\r\n const val = target.value;\r\n target.value = val.replace(/[^0-9\\s]/g, '');\r\n position -= Number(val.length !== target.value.length);\r\n target.selectionStart = position;\r\n target.selectionEnd = position;\r\n }\r\n break;\r\n case Format.Time:\r\n Util.timeInput(target);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n formatCoordinates(value: string) {\r\n if (!value) {\r\n return '';\r\n }\r\n\r\n const [degreesPart, minutesPart] = value\r\n .replace(/[^0-9.]/g, '')\r\n .split('.');\r\n return `${value.includes('-') ? '-' : ''}${degreesPart}.${minutesPart || ''}`;\r\n }\r\n\r\n /**\r\n * Formata o valor de um <‘input’/> em decimal.\r\n * @deprecated Usar a directiva [currencyMask] no lugar desta função.\r\n */\r\n private parseDecimal(target: HTMLInputElement) {\r\n console.error('Usar a directiva [currencyMask] no lugar desta função.');\r\n let position = target.selectionStart;\r\n const value = Math.round(Math.abs(Util.convertToFloat(target.value)) * 100) / 100;\r\n const txt = this.currencyPipe.transform(isNaN(value) ? 0 : value, '', '');\r\n if (txt.length < target.value.length) {\r\n position--;\r\n } else if (txt.length > target.value.length && target.value.includes(',')) {\r\n position++;\r\n }\r\n target.value = txt;\r\n target.selectionStart = position;\r\n target.selectionEnd = position;\r\n }\r\n\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appInputToUpper]'\r\n}) export class InputToUpperDirective {\r\n constructor(private el: ElementRef, private control: NgControl) {}\r\n @HostListener('input', ['$event']) onInput(event: Event) {\r\n const input = event.target as HTMLInputElement;\r\n const value = input.value.toUpperCase();\r\n input.value = value;\r\n if (this.control?.control) {\r\n this.control.control.setValue(value, {\r\n emitEvent: false\r\n });\r\n }\r\n }\r\n}\r\n","import {ContentChild, Directive, Input, TemplateRef} from '@angular/core';\r\nimport {SectionDirective} from '@directives/section.directive';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[k-card-column]',\r\n})\r\nexport class KCardColumnDirective {\r\n @ContentChild(SectionDirective, {read: TemplateRef, static: true})\r\n _cellTemplateQuery: TemplateRef;\r\n\r\n @Input('section')\r\n _cellTemplateInput: TemplateRef;\r\n\r\n get sectionTemplate(): TemplateRef {\r\n return this._cellTemplateInput || this._cellTemplateQuery;\r\n }\r\n\r\n constructor() {\r\n }\r\n\r\n}\r\n","import { Directive, Input, TemplateRef, ViewContainerRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appIsMobile]'\r\n})\r\nexport class IsMobileDirective implements OnInit {\r\n\r\n shouldDisplayOnMobile = false;\r\n @Input('appIsMobile') set showOnMobile(condition: boolean) {\r\n this.shouldDisplayOnMobile = condition;\r\n this.updateView();\r\n }\r\n\r\n constructor(private templateRef: TemplateRef, private viewContainer: ViewContainerRef) {}\r\n\r\n ngOnInit(): void {\r\n this.updateView();\r\n }\r\n\r\n private updateView(): void {\r\n const isMobile = this.isMobileDevice();\r\n if (isMobile && this.shouldDisplayOnMobile) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n }\r\n\r\n private isMobileDevice(): boolean {\r\n return /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener, Input} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Directive({\r\n selector: '[maxDigitos]'\r\n})\r\nexport class MaxDigitosDirective {\r\n @Input() valorMax: number;\r\n private regex: RegExp = new RegExp(/^\\d*,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n\r\n constructor(private el: ElementRef) {\r\n }\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n const current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key === ',' ? ',' : event.key, current.slice(position)].join('');\r\n if (Util.convertToFloat(next) >= this.valorMax) {\r\n console.log('Max Sao iguais: ', next);\r\n event.preventDefault();\r\n }\r\n\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {Directive, HostListener, Input} from '@angular/core';\r\nimport {AbstractControl} from '@angular/forms';\r\n\r\nexport interface TipoSelecao {\r\n control: AbstractControl;\r\n list?: any[];\r\n}\r\n\r\n@Directive({\r\n selector: '[appOptionSelection]'\r\n})\r\nexport class OptionSelectionDirective {\r\n @Input('appOptionSelection') option!: TipoSelecao;\r\n\r\n constructor() {\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const values = this.option.control.value.filter(l => l !== undefined);\r\n // Selecionar todos\r\n if (this.option?.list && this.option) {\r\n this.option.control.patchValue(values.length >= this.option.list.length ? [] : this.option?.list);\r\n return;\r\n }\r\n // Selecionar todos os booleanos\r\n this.option.control.patchValue(values.length >= 2 ? [] : [true, false]);\r\n }\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[phone]',\r\n})\r\nexport class PhoneDirective {\r\n @Input() valor = '';\r\n @HostListener('input', ['$event']) onInput(event: Event) {\r\n let target = event.target as HTMLInputElement;\r\n target.value = target.value.toUpperCase().replace(/[a-zA-Zç;?><_=+/ºª%$#\"!|()&´`«»'}{*^~\\t\\n]/gi, '');\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[posInputUpdate]'\r\n}) export class PosInputUpdateDirective implements OnInit {\r\nconstructor(private el: ElementRef) {\r\n}\r\nngOnInit() {\r\n console.log(this.el.nativeElement);\r\n}\r\n @HostListener('change', ['$event']) onChange(event: any) {\r\n console.log(event);\r\n if (event.target !== event.currentTarget && this.el.nativeElement.classList.contains('open')) {\r\n // console.log(event)\r\n }\r\n }\r\n @HostListener('click', ['$event']) onClick(event: any) {\r\n console.log(event);\r\n if (event.target !== event.currentTarget && this.el.nativeElement.classList.contains('open')) {\r\n // console.log(event)\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, Attribute, OnInit, HostListener } from '@angular/core';\r\n\r\n@Directive({ selector: '[scrollTo]' })\r\nexport class ScrollToDirective implements OnInit {\r\n constructor( @Attribute('scrollTo') public elmID: string, private el: ElementRef) { }\r\n\r\n ngOnInit() {}\r\n\r\n currentYPosition() {\r\n // Firefox, Chrome, Opera, Safari\r\n if (self.pageYOffset) return self.pageYOffset;\r\n // Internet Explorer 6 - standards mode\r\n if (document.documentElement && document.documentElement.scrollTop)\r\n return document.documentElement.scrollTop;\r\n // Internet Explorer 6, 7 and 8\r\n if (document.body.scrollTop) return document.body.scrollTop;\r\n return 0;\r\n };\r\n\r\n elmYPosition(eID) {\r\n var elm = document.getElementById(eID);\r\n var y = elm.offsetTop;\r\n var node: any = elm;\r\n while (node.offsetParent && node.offsetParent != document.body) {\r\n node = node.offsetParent;\r\n y += node.offsetTop;\r\n }\r\n return y;\r\n };\r\n\r\n @HostListener('click', ['$event'])\r\n smoothScroll() {\r\n if(!this.elmID)\r\n return;\r\n var startY = this.currentYPosition();\r\n var stopY = this.elmYPosition(this.elmID);\r\n var distance = stopY > startY ? stopY - startY : startY - stopY;\r\n if (distance < 100) {\r\n scrollTo(0, stopY);\r\n return;\r\n }\r\n var speed = Math.round(distance / 50);\r\n if (speed >= 20) speed = 20;\r\n var step = Math.round(distance / 25);\r\n var leapY = stopY > startY ? startY + step : startY - step;\r\n var timer = 0;\r\n if (stopY > startY) {\r\n for (var i = startY; i < stopY; i += step) {\r\n setTimeout(\"window.scrollTo(0, \" + leapY + \")\", timer * speed);\r\n leapY += step;\r\n if (leapY > stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return;\r\n }\r\n for (var i = startY; i > stopY; i -= step) {\r\n setTimeout(\"window.scrollTo(0, \" + leapY + \")\", timer * speed);\r\n leapY -= step;\r\n if (leapY < stopY) leapY = stopY;\r\n timer++;\r\n }\r\n return false;\r\n };\r\n}","import {Directive, TemplateRef} from '@angular/core';\r\n\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: '[section]'\r\n})\r\nexport class SectionDirective {\r\n constructor(public template: TemplateRef) {\r\n }\r\n}\r\n","import {Directive, ElementRef, HostListener, OnInit, Renderer2} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appSelectedActive]'\r\n})\r\nexport class SelectedActiveDirective implements OnInit {\r\n constructor(private el: ElementRef, private renderer: Renderer2) {\r\n }\r\nactive: boolean;\r\n element = this.el.nativeElement;\r\n @HostListener('click', ['$event']) onClick(e) {\r\n this.active = !this.active;\r\n if (this.active) {\r\n this.renderer.addClass(this.element, 'filtroActivo');\r\n } else {\r\n this.renderer.removeClass(this.element, 'filtroActivo');\r\n }\r\n }\r\n ngOnInit() {\r\n\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {FontSizeDirective} from './font-size.directive';\r\nimport {ScrollToDirective} from './scroll-to.directive';\r\nimport {AppDropdownDirective} from './dropdown.directive';\r\nimport {DropdownAnchorDirective} from './dropdown-anchor.directive';\r\nimport {DropdownLinkDirective} from './dropdown-link.directive';\r\nimport {EgretSideNavToggleDirective} from './egret-side-nav-toggle.directive';\r\nimport {EgretSidenavHelperDirective, EgretSidenavTogglerDirective} from './egret-sidenav-helper/egret-sidenav-helper.directive';\r\nimport {EgretHighlightDirective} from './egret-highlight.directive';\r\nimport {SelectedActiveDirective} from './selected-active.directive';\r\nimport {TwoDecimalsDirective} from './two-decimals.directive';\r\nimport {DecimalPlacesDirective} from './decimal-places.directive';\r\nimport {InputDecimalsDirective} from './input-decimals.directive';\r\nimport {FormatDecimalsDirective} from './format-decimals.directive';\r\nimport {FixTopDirective} from './fix-top.directive';\r\nimport {BlockSpaceDirective} from './block-space.directive';\r\nimport {MaxDigitosDirective} from './max-digitos.directive';\r\nimport {FundoCardDirective} from './fundo-card.directive';\r\nimport {CurrencyI18nDirective} from './currency-i18n.directive';\r\nimport {InputFormatDirective} from './input-format.directive';\r\nimport {OptionSelectionDirective} from './option-selection.directive';\r\nimport {ToggleOpenDirective} from './toggle-open.directive';\r\nimport {FormatarHoraDirective} from './formatar-hora.directive';\r\nimport {AddressDirective} from './address.directive';\r\nimport {EstadoBgColorDirective} from './estado-bg-color.directive';\r\nimport {SectionDirective} from '@directives/section.directive';\r\nimport {KCardColumnDirective} from '@directives/k-card-column.directive';\r\nimport { PhoneDirective } from '@directives/phone.directive';\r\nimport { PosInputUpdateDirective } from '@directives/pos-input-update.directive';\r\nimport { IsMobileDirective } from '@directives/layouts/is-mobile.directive';\r\nimport { InputToUpperDirective } from '@directives/input-to-uppercase.directive';\r\nimport { AppFlagDirective } from '@shared/components/forms/app-flag.directive';\r\n\r\n\r\nconst DIRECTIVES = [\r\n FontSizeDirective,\r\n ScrollToDirective,\r\n AppDropdownDirective,\r\n DropdownAnchorDirective,\r\n DropdownLinkDirective,\r\n EgretSideNavToggleDirective,\r\n EgretSidenavHelperDirective,\r\n EgretSidenavTogglerDirective,\r\n EgretHighlightDirective,\r\n SelectedActiveDirective,\r\n TwoDecimalsDirective,\r\n InputDecimalsDirective,\r\n DecimalPlacesDirective,\r\n FormatDecimalsDirective,\r\n FixTopDirective,\r\n BlockSpaceDirective,\r\n MaxDigitosDirective,\r\n FundoCardDirective,\r\n CurrencyI18nDirective,\r\n InputFormatDirective,\r\n OptionSelectionDirective,\r\n ToggleOpenDirective,\r\n FormatarHoraDirective,\r\n KCardColumnDirective,\r\n SectionDirective,\r\n AddressDirective,\r\n EstadoBgColorDirective,\r\n PhoneDirective,\r\n PosInputUpdateDirective,\r\n IsMobileDirective, InputToUpperDirective, AppFlagDirective\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: DIRECTIVES,\r\n exports: DIRECTIVES\r\n})\r\nexport class SharedDirectivesModule {\r\n}\r\n\r\n","import { Directive, ElementRef, HostListener, OnInit, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationEnd } from '@angular/router';\r\nimport { DropdownLinkDirective } from './dropdown-link.directive';\r\nimport { Subscription } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[appToggleOpen]'\r\n})\r\nexport class ToggleOpenDirective implements OnInit {\r\n protected navlinks: DropdownLinkDirective[] = [];\r\n\r\n private _router: Subscription;\r\n\r\n public closeOtherLinks(openLink: DropdownLinkDirective): void {\r\n this.navlinks.forEach((link: DropdownLinkDirective) => {\r\n if (link !== openLink) {\r\n link.open = false;\r\n }\r\n });\r\n }\r\n\r\n \r\n public getUrl() {\r\n return this.router.url;\r\n }\r\n \r\n public ngOnInit(): any {\r\n this._router = this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => {\r\n this.navlinks.forEach((link: DropdownLinkDirective) => {\r\n if (link.group) {\r\n const routeUrl = this.getUrl();\r\n const currentUrl = routeUrl.split('/');\r\n if (currentUrl.indexOf( link.group ) > 0) {\r\n link.open = true;\r\n this.closeOtherLinks(link);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n @HostListener('click', ['$event']) onClick(event: any) {\r\n // event.stopPropagation();\r\n if (event.target !== event.currentTarget && this.el.nativeElement.classList.contains('open')) {\r\n // console.log(event)\r\n }\r\n }\r\n constructor(private router: Router, private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n}\r\n","import {Directive, ElementRef, HostListener} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Directive({\r\n selector: '[appTwoDecimals]'\r\n})\r\nexport class TwoDecimalsDirective {\r\n private regex: RegExp = new RegExp(/^\\d*\\,?\\d{0,2}$/g);\r\n private specialKeys: string[] = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\r\n\r\n constructor(private el: ElementRef) {}\r\n\r\n @HostListener('keydown', ['$event']) onKeyDown(event: KeyboardEvent) {\r\n\r\n if (this.specialKeys.indexOf(event.key) !== -1) {\r\n return;\r\n }\r\n\r\n let current: string = this.el.nativeElement.value;\r\n const position = this.el.nativeElement.selectionStart;\r\n const next: string = [current.slice(0, position), event.key === ',' ? ',' : event.key, current.slice(position)].join('');\r\n if (Util.convertToFloat(next) > 100) {console.log('Max: ', next); event.preventDefault(); }\r\n if (next && !String(next).match(this.regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n}\r\n","import {ProcessosTarefas} from '../models/processos/processostarefas';\r\nimport {FiltrosClientes} from '../models/clientes/filtros/filtroclientes';\r\nimport * as moment from 'moment';\r\nimport {Accao} from '../models/ENUM';\r\n\r\nexport const tabMessages = {\r\n emptyMessage: 'Sem dados para mostrar',\r\n totalMessage: 'Total',\r\n selectedMessage: 'seleccionados'\r\n};\r\n\r\nexport const imagensLista: any[] = [\r\n {src: 'assets/images/sq-1.jpg'},\r\n {src: 'assets/images/sq-2.jpg'},\r\n {src: 'assets/images/sq-3.jpg'},\r\n {src: 'assets/images/sq-4.jpg'},\r\n {src: 'assets/images/sq-5.jpg'},\r\n {src: 'assets/images/sq-6.jpg'},\r\n {src: 'assets/images/sq-7.jpg'},\r\n {src: 'assets/images/sq-8.jpg'},\r\n {src: 'assets/images/sq-9.jpg'},\r\n {src: 'assets/images/sq-10.jpg'},\r\n {src: 'assets/images/sq-11.jpg'},\r\n {src: 'assets/images/sq-12.jpg'}\r\n];\r\n\r\nexport const Operacoes: { [key: string]: string } = {\r\n [Accao.cadastrar]: 'Criar',\r\n [Accao.editar]: 'Editar',\r\n [Accao.detalhes]: 'Consultar'\r\n};\r\n\r\nexport const lista: number[] = [];\r\n\r\nexport const tarefas: ProcessosTarefas[] = [];\r\n\r\nexport const menuCode = [\r\n {\r\n codMenu: 'CLIENT',\r\n RotaAPI: '',\r\n menu: 'Clientes'\r\n },\r\n {\r\n codMenu: 'RECHUM',\r\n RotaAPI: '',\r\n menu: 'Recursos Humanos'\r\n },\r\n {\r\n codMenu: 'ARTIGO',\r\n RotaAPI: '',\r\n menu: 'Artigos'\r\n },\r\n {\r\n codMenu: 'PROCES',\r\n RotaAPI: '',\r\n menu: 'Processos'\r\n },\r\n {\r\n codMenu: 'VENDAS',\r\n RotaAPI: '',\r\n menu: 'Vendas'\r\n },\r\n\r\n {\r\n codMenu: 'EVENTO',\r\n RotaAPI: '',\r\n menu: 'Eventos'\r\n },\r\n\r\n {\r\n codMenu: 'COMUNI',\r\n RotaAPI: '',\r\n menu: 'Comunicação'\r\n },\r\n {\r\n codMenu: 'UTILIZ',\r\n RotaAPI: '',\r\n menu: 'Utilizadores'\r\n },\r\n {\r\n codMenu: 'EQUIPA',\r\n RotaAPI: '',\r\n menu: 'Equipamentos'\r\n },\r\n {\r\n codMenu: 'GAR',\r\n RotaAPI: '',\r\n menu: 'Gestão de Arquivos'\r\n },\r\n {\r\n codMenu: 'ADMINI',\r\n RotaAPI: '',\r\n menu: 'Administração'\r\n }\r\n];\r\n\r\nexport const model = new FiltrosClientes(\r\n 1,\r\n 1,\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n lista,\r\n lista\r\n);\r\n\r\nexport const myBase64 = '';\r\n\r\nexport const artigosFA = [{\r\n idClassificacao: 3,\r\n classificacaoP: 'Artigos',\r\n idArtigo: 40,\r\n codArtigo: '2020_KIAMI',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: '2020_KIAMI',\r\n descricao: '2020_KIAMI',\r\n condicoesAdesao: '2020_KIAMI',\r\n informacaoAdicional: '2020_KIAMI',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 2000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 3,\r\n classificacaoP: 'Artigos',\r\n idArtigo: 42,\r\n codArtigo: '202020213108',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: '202020213108',\r\n descricao: '202020213108',\r\n condicoesAdesao: '202020213108',\r\n informacaoAdicional: '202020213108',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 20000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 3,\r\n classificacaoP: 'Artigos',\r\n idArtigo: 41,\r\n codArtigo: '202991995',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: '202991995',\r\n descricao: '202991995',\r\n condicoesAdesao: '202991995',\r\n informacaoAdicional: '202991995',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 200000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 110,\r\n codArtigo: 'SH00000016',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Ads',\r\n descricao: 'asd',\r\n condicoesAdesao: 'asd',\r\n informacaoAdicional: 'asd',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 2222,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 110,\r\n codArtigo: 'SH00000016',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Ads',\r\n descricao: 'asd',\r\n condicoesAdesao: 'asd',\r\n informacaoAdicional: 'asd',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 2222,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 9,\r\n codArtigo: 'KIAMI_2020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Calças brancas',\r\n descricao: 'Nossas Calças',\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 5,\r\n codIva: 'M00 ',\r\n taxaIva: 0,\r\n 'precoM1': 50,\r\n 'precoM2': 50,\r\n imagem: '9.jpeg',\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 9,\r\n codArtigo: 'KIAMI_2020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Calças brancas',\r\n descricao: 'Nossas Calças',\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 5,\r\n codIva: 'M00 ',\r\n taxaIva: 0,\r\n 'precoM1': 50,\r\n 'precoM2': 50,\r\n imagem: '9.jpeg',\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 13,\r\n codArtigo: 'ARTIGO',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Camisolas pretas.',\r\n descricao: 'Nossas camisolas pretas.',\r\n condicoesAdesao: 'Condições editada.',\r\n informacaoAdicional: 'Informação editada.',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 648,\r\n 'precoM2': 648,\r\n imagem: '13.jpeg',\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 13,\r\n codArtigo: 'ARTIGO',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Camisolas pretas.',\r\n descricao: 'Nossas camisolas pretas.',\r\n condicoesAdesao: 'Condições editada.',\r\n informacaoAdicional: 'Informação editada.',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 648,\r\n 'precoM2': 648,\r\n imagem: '13.jpeg',\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 4,\r\n codArtigo: 'ARTIGO -1',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Com Fornecedor',\r\n descricao: 'Artigo com Fornecedor',\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 100,\r\n 'precoM2': 600,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 4,\r\n codArtigo: 'ARTIGO -1',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Com Fornecedor',\r\n descricao: 'Artigo com Fornecedor',\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 100,\r\n 'precoM2': 600,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 3,\r\n classificacaoP: 'Artigos',\r\n idArtigo: 64,\r\n codArtigo: 'COSTA_2021',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'COSTA_2021',\r\n descricao: 'COSTA_2021',\r\n condicoesAdesao: 'COSTA_2021',\r\n informacaoAdicional: 'COSTA_2021',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 20000,\r\n 'precoM2': 20000,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 3,\r\n classificacaoP: 'Artigos',\r\n idArtigo: 63,\r\n codArtigo: 'DEF_2021',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'DEF_2021',\r\n descricao: 'DEF_2021',\r\n condicoesAdesao: 'DEF_2021',\r\n informacaoAdicional: 'DEF_2021',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 0.55,\r\n 'precoM2': 2000,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 133,\r\n codArtigo: '3234567890',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Designacao',\r\n descricao: 'Descriao',\r\n condicoesAdesao: 'Condicoes de Adesao',\r\n informacaoAdicional: 'Informacao Adicional',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 2345,\r\n 'precoM2': 2345,\r\n imagem: '133.jpeg',\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto',\r\n estado: 'Suspenso'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 111,\r\n codArtigo: 'SH00000017',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'dffdf',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 13323,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 111,\r\n codArtigo: 'SH00000017',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'dffdf',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 13323,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 120,\r\n codArtigo: 'SH00000025',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Marcação',\r\n descricao: 'Marcação',\r\n condicoesAdesao: 'Marcação',\r\n informacaoAdicional: 'Marcação',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 4000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 120,\r\n codArtigo: 'SH00000025',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Marcação',\r\n descricao: 'Marcação',\r\n condicoesAdesao: 'Marcação',\r\n informacaoAdicional: 'Marcação',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 4000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 10,\r\n codArtigo: 'P_2020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Nossas Calças Jeans',\r\n descricao: 'Calças Jeans',\r\n condicoesAdesao: 'Condições segundo produto',\r\n informacaoAdicional: 'Informações segundo produto',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 10,\r\n 'precoM2': 10,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 10,\r\n codArtigo: 'P_2020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Nossas Calças Jeans',\r\n descricao: 'Calças Jeans',\r\n condicoesAdesao: 'Condições segundo produto',\r\n informacaoAdicional: 'Informações segundo produto',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 10,\r\n 'precoM2': 10,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Produto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 119,\r\n codArtigo: 'SH00000024',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Obrigatorio',\r\n descricao: 'Obrigatorio',\r\n condicoesAdesao: 'Obrigatorio',\r\n informacaoAdicional: 'Obrigatorio',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 3444,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 119,\r\n codArtigo: 'SH00000024',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Obrigatorio',\r\n descricao: 'Obrigatorio',\r\n condicoesAdesao: 'Obrigatorio',\r\n informacaoAdicional: 'Obrigatorio',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 3444,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 2,\r\n classificacaoP: 'Produtos',\r\n idArtigo: 134,\r\n codArtigo: 'PC-GAMER22',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'pv',\r\n descricao: 'nada a descrever',\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 5000000,\r\n 'precoM2': 20000,\r\n imagem: '134.jpeg',\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: false,\r\n tipo: 'Produto',\r\n estado: 'Inactivo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 29,\r\n codArtigo: 'S28',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'sddfd',\r\n descricao: 'vxf',\r\n condicoesAdesao: 'xcv',\r\n informacaoAdicional: 'xcv',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 233234,\r\n 'precoM2': 233234,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 87,\r\n codArtigo: 'ACA',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'sdf',\r\n descricao: 'asdsad',\r\n condicoesAdesao: 'asdas',\r\n informacaoAdicional: 'asd',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 5000,\r\n 'precoM2': 4000,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 32,\r\n codArtigo: 'MC 220',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Serviço 2021',\r\n descricao: 'a',\r\n condicoesAdesao: 'a',\r\n informacaoAdicional: 'a',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 7777,\r\n 'precoM2': 7777,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 31,\r\n codArtigo: '001245',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Servico Rotura',\r\n descricao: 'Bla',\r\n condicoesAdesao: 'Bla',\r\n informacaoAdicional: 'Bla',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 2000,\r\n 'precoM2': 2000,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 135,\r\n codArtigo: '00000001',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Serviço teste',\r\n descricao: null,\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 0.55,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: false,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 113,\r\n codArtigo: 'SH00000019',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 0,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 113,\r\n codArtigo: 'SH00000019',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 0,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 121,\r\n codArtigo: '00000000',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste',\r\n descricao: null,\r\n condicoesAdesao: null,\r\n informacaoAdicional: null,\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 3000,\r\n 'precoM2': 299,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: false,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 115,\r\n codArtigo: 'SH00000020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 0012',\r\n descricao: 'asdasd',\r\n condicoesAdesao: 'asd',\r\n informacaoAdicional: 'asd',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 2000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 115,\r\n codArtigo: 'SH00000020',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 0012',\r\n descricao: 'asdasd',\r\n condicoesAdesao: 'asd',\r\n informacaoAdicional: 'asd',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 2000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 112,\r\n codArtigo: 'SH00000018',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 2',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 2000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 112,\r\n codArtigo: 'SH00000018',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 2',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 2000,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 117,\r\n codArtigo: 'SH00000022',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 2021-03-09',\r\n descricao: 'Teste 2021-03-09',\r\n condicoesAdesao: 'Teste 2021-03-09',\r\n informacaoAdicional: 'Teste 2021-03-09',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 12122,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 117,\r\n codArtigo: 'SH00000022',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Teste 2021-03-09',\r\n descricao: 'Teste 2021-03-09',\r\n condicoesAdesao: 'Teste 2021-03-09',\r\n informacaoAdicional: 'Teste 2021-03-09',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 12122,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 118,\r\n codArtigo: 'SH00000023',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'tipoObrigatorio',\r\n descricao: 'tipoObrigatorio',\r\n condicoesAdesao: 'tipoObrigatorio',\r\n informacaoAdicional: 'tipoObrigatorio',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 978979,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 118,\r\n codArtigo: 'SH00000023',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Tipo Obrigatorio',\r\n descricao: 'Tipo de servico obrigatorio',\r\n condicoesAdesao: 'tipoObrigatorio',\r\n informacaoAdicional: 'tipoObrigatorio',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 978979,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 2,\r\n codUnidade: 'CX',\r\n unidadeSingular: 'Caixa',\r\n unidadePlural: 'Caixas',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 116,\r\n codArtigo: 'SH00000021',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Transportes de Luxo (UBER EAT)',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 0,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 116,\r\n codArtigo: 'SH00000021',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'Transportes',\r\n descricao: '',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 4,\r\n codIva: '14',\r\n taxaIva: 14,\r\n 'precoM1': 0,\r\n 'precoM2': 0,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 109,\r\n codArtigo: 'SH00000015',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'zasdasd',\r\n descricao: 'Escrevendo Alguma coisa',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 0,\r\n 'precoM2': 123123,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço Composto',\r\n estado: 'Activo'\r\n}, {\r\n idClassificacao: 1,\r\n classificacaoP: 'Serviços',\r\n idArtigo: 109,\r\n codArtigo: 'SH00000015',\r\n idIdioma: 1,\r\n codIdioma: null,\r\n artigo: 'zasdasd',\r\n descricao: 'Escrevendo Alguma coisa',\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n idIva: 6,\r\n codIva: 'M02',\r\n taxaIva: 0,\r\n 'precoM1': 0,\r\n 'precoM2': 123123,\r\n imagem: null,\r\n idUnidadeMedida: 1,\r\n codUnidade: 'UN',\r\n unidadeSingular: 'Unidade',\r\n unidadePlural: 'Unidades',\r\n sujeitoARetencao: true,\r\n tipo: 'Serviço Composto',\r\n estado: 'Activo'\r\n}];\r\n\r\nexport const ranges: any = {\r\n 'Hoje': [moment(), moment()],\r\n 'Ontem': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],\r\n 'Últimos 7 dias': [moment().subtract(6, 'days'), moment()],\r\n 'Últimos 30 dias': [moment().subtract(29, 'days'), moment()],\r\n 'Mês corrente': [moment().startOf('month'), moment().endOf('month')],\r\n 'Ano corrente': [moment().startOf('year'), moment().endOf('year')],\r\n 'Último mês': [moment().subtract(1, 'month').startOf('month'),\r\n moment().subtract(1, 'month').endOf('month')]\r\n};\r\n\r\nexport const horasEvento = [\r\n {id: 1, valor: '00:00'},\r\n {id: 2, valor: '00:15'},\r\n {id: 3, valor: '00:30'},\r\n {id: 4, valor: '00:45'},\r\n {id: 5, valor: '01:00'},\r\n {id: 6, valor: '01:15'},\r\n {id: 7, valor: '01:30'},\r\n {id: 8, valor: '01:45'},\r\n {id: 9, valor: '02:00'},\r\n {id: 10, valor: '02:15'},\r\n {id: 11, valor: '02:30'},\r\n {id: 12, valor: '02:45'},\r\n {id: 13, valor: '03:00'},\r\n {id: 14, valor: '03:15'},\r\n {id: 15, valor: '03:30'},\r\n {id: 16, valor: '03:45'},\r\n {id: 17, valor: '04:00'},\r\n {id: 18, valor: '04:15'},\r\n {id: 19, valor: '04:30'},\r\n {id: 20, valor: '04:45'},\r\n {id: 21, valor: '05:00'},\r\n {id: 22, valor: '05:15'},\r\n {id: 23, valor: '05:30'},\r\n {id: 24, valor: '05:45'},\r\n {id: 25, valor: '06:00'},\r\n {id: 26, valor: '06:15'},\r\n {id: 27, valor: '06:30'},\r\n {id: 28, valor: '06:45'},\r\n {id: 29, valor: '07:00'},\r\n {id: 30, valor: '07:15'},\r\n {id: 31, valor: '07:30'},\r\n {id: 32, valor: '07:45'},\r\n {id: 33, valor: '08:00'},\r\n {id: 34, valor: '08:15'},\r\n {id: 35, valor: '08:30'},\r\n {id: 36, valor: '08:45'},\r\n {id: 37, valor: '09:00'},\r\n {id: 38, valor: '09:15'},\r\n {id: 39, valor: '09:30'},\r\n {id: 40, valor: '09:45'},\r\n {id: 41, valor: '10:00'},\r\n {id: 42, valor: '10:15'},\r\n {id: 43, valor: '10:30'},\r\n {id: 44, valor: '10:45'},\r\n {id: 45, valor: '11:00'},\r\n {id: 46, valor: '11:15'},\r\n {id: 47, valor: '11:30'},\r\n {id: 48, valor: '11:45'},\r\n {id: 49, valor: '12:00'},\r\n {id: 50, valor: '12:15'},\r\n {id: 51, valor: '12:30'},\r\n {id: 52, valor: '12:45'},\r\n {id: 53, valor: '13:00'},\r\n {id: 54, valor: '13:15'},\r\n {id: 55, valor: '13:30'},\r\n {id: 56, valor: '13:45'},\r\n {id: 57, valor: '14:00'},\r\n {id: 58, valor: '14:15'},\r\n {id: 59, valor: '14:30'},\r\n {id: 60, valor: '14:45'},\r\n {id: 61, valor: '15:00'},\r\n {id: 62, valor: '15:15'},\r\n {id: 63, valor: '15:30'},\r\n {id: 64, valor: '15:45'},\r\n {id: 65, valor: '16:00'},\r\n {id: 66, valor: '16:15'},\r\n {id: 67, valor: '16:30'},\r\n {id: 68, valor: '16:45'},\r\n {id: 69, valor: '17:00'},\r\n {id: 70, valor: '17:15'},\r\n {id: 71, valor: '17:30'},\r\n {id: 72, valor: '17:45'},\r\n {id: 73, valor: '18:00'},\r\n {id: 74, valor: '18:15'},\r\n {id: 75, valor: '18:30'},\r\n {id: 76, valor: '18:45'},\r\n {id: 77, valor: '19:00'},\r\n {id: 78, valor: '19:15'},\r\n {id: 79, valor: '19:30'},\r\n {id: 80, valor: '19:45'},\r\n {id: 81, valor: '20:00'},\r\n {id: 82, valor: '20:15'},\r\n {id: 83, valor: '20:30'},\r\n {id: 84, valor: '20:45'},\r\n {id: 85, valor: '21:00'},\r\n {id: 86, valor: '21:15'},\r\n {id: 87, valor: '21:30'},\r\n {id: 88, valor: '21:45'},\r\n {id: 89, valor: '22:00'},\r\n {id: 90, valor: '22:15'},\r\n {id: 91, valor: '22:30'},\r\n {id: 92, valor: '22:45'},\r\n {id: 93, valor: '23:00'},\r\n {id: 94, valor: '23:15'},\r\n {id: 95, valor: '23:30'},\r\n {id: 96, valor: '23:45'}\r\n];\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n CanActivate,\r\n ActivatedRouteSnapshot,\r\n RouterStateSnapshot,\r\n Router,\r\n} from '@angular/router';\r\nimport { JwtAuthService } from \"../services/auth/jwt-auth.service\";\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(private router: Router, private jwtAuth: JwtAuthService) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.jwtAuth.isLoggedIn()) {\r\n return true;\r\n } else {\r\n this.router.navigate([\"/sessoes/login\"], {\r\n queryParams: {\r\n return: state.url\r\n }\r\n });\r\n return false;\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {ActivatedRouteSnapshot, CanActivateChild, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\r\nimport {Observable} from 'rxjs';\r\nimport {LoginService} from '@services/aplicacao-service/login.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserValidadorGuard implements CanActivateChild {\r\n constructor(private router: Router, private loginService: LoginService) {\r\n }\r\n\r\n canActivateChild(\r\n route: ActivatedRouteSnapshot,\r\n state: RouterStateSnapshot): Observable | Promise | boolean | UrlTree {\r\n const usr = this.loginService.getUtilizadorSessao();\r\n if (usr?.validador && !state.url.includes('/artigos/inscricoes/QRCODE/')) {\r\n this.router.navigate(['/artigos/inscricoes/QRCODE/0']).finally();\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","export function getQueryParam(prop) {\r\n var params = {};\r\n var search = decodeURIComponent(window.location.href.slice(window.location.href.indexOf('?') + 1));\r\n var definitions = search.split('&');\r\n definitions.forEach(function (val, key) {\r\n var parts = val.split('=', 2);\r\n params[parts[0]] = parts[1];\r\n });\r\n return (prop && prop in params) ? params[prop] : params;\r\n}","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpHandler,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { JwtAuthService } from '../services/auth/jwt-auth.service';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n constructor(private jwtAuth: JwtAuthService) {}\r\n\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n const token = localStorage.getItem('token');\r\n let requisicaoAlterada;\r\n if (token) {\r\n requisicaoAlterada = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n },\r\n });\r\n } else {\r\n requisicaoAlterada = req;\r\n }\r\n return next.handle(requisicaoAlterada);\r\n }\r\n}\r\n","import {\r\n Directive,\r\n OnInit,\r\n ElementRef,\r\n Renderer2,\r\n HostListener\r\n} from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { NgControl } from '@angular/forms';\r\n\r\nimport { KeyboardService } from '../keyboard.service';\r\nimport { DecimalPipe } from '@angular/common';\r\nenum MaskExpression {\r\n EMPTY_STRING = '',\r\n DOT = '.',\r\n COMMA = ',',\r\n MINUS = '-',\r\n}\r\n@Directive({\r\n // tslint:disable-next-line:directive-selector\r\n selector: 'input[oskInputNum]',\r\n providers: [DecimalPipe],\r\n exportAs: 'oskInputNum',\r\n})\r\nexport class OskInputNumDirective implements OnInit {\r\n private keySubscription: Subscription;\r\n private backspaceSubscription: Subscription;\r\n private enterSubscription: Subscription;\r\n private measure: HTMLElement;\r\n private allowNegativeNumbers = false;\r\n private decimalMarker = ',';\r\n private thousandSeparator = '.';\r\n\r\n\r\n constructor(private render: Renderer2,\r\n private el: ElementRef, private keyboard: KeyboardService,\r\n private ngControl: NgControl,\r\n private decimalPipe: DecimalPipe) {}\r\n\r\n ngOnInit() {\r\n // TODO I'm sure there's an \"Angular way\" of doing this\r\n const thisStyle = window.getComputedStyle(this.el.nativeElement);\r\n this.measure = document.createElement('span');\r\n this.measure.style.position = 'absolute';\r\n this.measure.style.right = '100%';\r\n this.measure.style.font = thisStyle.font;\r\n document.body.appendChild(this.measure);\r\n this.el.nativeElement.value = this.decimalPipe.transform(this.el.nativeElement.value.replaceAll('.', '').replaceAll(',', '.'), '1.2-2');\r\n }\r\n\r\n @HostListener('focus')\r\n private onFocus() {\r\n this.keyboard.fireKeyboardRequested(true);\r\n this.subscribeToKeyboardEvents();\r\n }\r\n\r\n @HostListener('input', ['$event']) private onInput(event: Event): void {\r\n const target = event.target as HTMLInputElement;\r\n target.value = target.value.toUpperCase().replace(/[a-zA-Zç;.?><_=+/ºª%$#\"!|()&´`«»'}{*^~\\t\\n]/gi, '');\r\n }\r\n\r\n @HostListener('blur')\r\n private onBlur() {\r\n this.keyboard.fireKeyboardRequested(false);\r\n this.unsubscribeFromKeyboardEvents();\r\n }\r\n\r\n private subscribeToKeyboardEvents() {\r\n this.keySubscription = this.keyboard.keyPressed.subscribe(key =>\r\n this.onKey(key)\r\n );\r\n this.backspaceSubscription = this.keyboard.backspacePressed.subscribe(_ =>\r\n this.onBackspace()\r\n );\r\n this.enterSubscription = this.keyboard.enterPressed.subscribe(_ =>\r\n this.onEnter()\r\n );\r\n }\r\n\r\n private unsubscribeFromKeyboardEvents() {\r\n this.keySubscription.unsubscribe();\r\n this.backspaceSubscription.unsubscribe();\r\n this.enterSubscription.unsubscribe();\r\n }\r\n\r\n private _stripToDecimal(str: string): string {\r\n return str\r\n .split(MaskExpression.EMPTY_STRING)\r\n .filter((i: string, idx: number) => {\r\n const isDecimalMarker =\r\n typeof this.decimalMarker === 'string'\r\n ? i === this.decimalMarker\r\n : // TODO (inepipenko) use utility type\r\n (this.decimalMarker as string).includes(\r\n i as MaskExpression.COMMA | MaskExpression.DOT\r\n );\r\n return (\r\n i.match('^-?\\\\d') ||\r\n i === this.thousandSeparator ||\r\n isDecimalMarker ||\r\n (i === MaskExpression.MINUS && idx === 0 && this.allowNegativeNumbers)\r\n );\r\n })\r\n .join(MaskExpression.EMPTY_STRING);\r\n }\r\n\r\n private onKey(key: string) {\r\n if (key && key === '.') {\r\n return;\r\n }\r\n let inputCurrentValue = this.el.nativeElement.value;\r\n const valorComVirgula = this.el.nativeElement.value;\r\n // TODO Refactor this into a single method with the code in onBackspace\r\n const element = this.el.nativeElement,\r\n start = element.selectionStart,\r\n end = element.selectionEnd;\r\n\r\n // Verificar se tem pontos e substituir //\r\n // if (inputCurrentValue.includes('.') || !inputCurrentValue.includes(',')) {\r\n // inputCurrentValue = inputCurrentValue.replaceAll('.', '');\r\n // this.ngControl.control.setValue(inputCurrentValue);\r\n // }\r\n\r\n // Se inclui virgulas, verificar se tem digitos depois da virgula //\r\n // const splitLength = inputCurrentValue && (inputCurrentValue.split(',')[1]) ? (inputCurrentValue.split(',')[1]).toString().length : 0;\r\n // if (inputCurrentValue.includes(',') && splitLength > 0 && splitLength < 2) {\r\n // inputCurrentValue = inputCurrentValue.replace(',', '.');\r\n // this.ngControl.control.setValue(inputCurrentValue);\r\n // }\r\n\r\n // if (inputCurrentValue.includes(',') && splitLength >= 2) {\r\n // inputCurrentValue = inputCurrentValue.split(',')[0] + ',' + inputCurrentValue.split(',')[1].slice(0, 2);\r\n // inputCurrentValue = inputCurrentValue.replace(',', '.');\r\n // this.ngControl.control.setValue(this._stripToDecimal(inputCurrentValue));\r\n // return;\r\n // }\r\n\r\n \r\n // if (inputCurrentValue.includes(',')) {\r\n // inputCurrentValue = inputCurrentValue.split(',')[0] + ',' + inputCurrentValue.split(',')[1].slice(0, 2);\r\n // inputCurrentValue = inputCurrentValue.replace(',', '.');\r\n // this.ngControl.control.setValue(this._stripToDecimal(inputCurrentValue));\r\n // return;\r\n // }\r\n\r\n\r\n this.measure.textContent = element.value.substr(0, start) + key;\r\n element.value =\r\n element.value.substr(0, start) + key + element.value.substr(end);\r\n\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = start + 1;\r\n\r\n this.updateScrollPosition();\r\n }\r\n\r\n private onBackspace() {\r\n let element = this.el.nativeElement,\r\n start = element.selectionStart,\r\n end = element.selectionEnd;\r\n\r\n if (start === 0) {\r\n return;\r\n }\r\n\r\n if (start === end) {\r\n start--;\r\n }\r\n this.measure.textContent = element.value.substr(0, start);\r\n element.value = element.value.substr(0, start) + element.value.substr(end);\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = start;\r\n this.updateScrollPosition();\r\n }\r\n\r\n private updateScrollPosition() {\r\n const element = this.el.nativeElement;\r\n element.scrollLeft = this.measure.offsetWidth - (element.clientWidth - 10);\r\n if (element.value && !this.ngControl.control.value) {\r\n this.ngControl.control.setValue(element.value.replaceAll(',', '.'));\r\n }\r\n const event = new Event('input', { bubbles: true });\r\n this.el.nativeElement.dispatchEvent(event);\r\n }\r\n\r\n private onEnter() {\r\n\r\n }\r\n\r\n}\r\n","import { Directive, Input, HostBinding, HostListener, OnInit, OnDestroy } from '@angular/core';\r\nimport { KeyboardService } from '../keyboard.service';\r\n\r\n\r\n@Directive({\r\n selector: '[appTeclas]'\r\n})\r\nexport class TeclasDirective implements OnInit, OnDestroy {\r\n private _values: string[];\r\n\r\n @Input('appTeclas') values: string;\r\n\r\n @HostBinding('innerText') currentValue: string;\r\n\r\n constructor(private keyboard: KeyboardService) { }\r\n\r\n ngOnInit() {\r\n this._values = this.values.split(' ');\r\n // this.currentValue = this._values[0];\r\n this.currentValue = this.values;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.keyboard.shiftChanged.unsubscribe();\r\n this.keyboard.altChanged.unsubscribe();\r\n }\r\n\r\n\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.keyboard.fireKeyPressed(this.currentValue);\r\n }\r\n}\r\n","import { Directive, Input, HostBinding, HostListener, OnInit, OnDestroy } from '@angular/core';\r\nimport { KeyboardService } from './keyboard.service';\r\n\r\n@Directive({\r\n selector: '[appKeyboardKey]'\r\n})\r\nexport class KeyboardKeyDirective implements OnInit, OnDestroy {\r\n private _values: string[];\r\n private isShifted: boolean;\r\n private isAlt: boolean;\r\n\r\n @Input('appKeyboardKey') values: string;\r\n @Input() capsActive: boolean = false;\r\n\r\n @HostBinding('innerText') currentValue: string;\r\n\r\n constructor(private keyboard: KeyboardService) { }\r\n\r\n ngOnInit() {\r\n this._values = this.values.split(' ');\r\n this.currentValue = this.capsActive ? (this._values[0]).toUpperCase() : this._values[0];\r\n\r\n this.keyboard.shiftChanged.subscribe(shift => {\r\n this.isShifted = shift;\r\n this.updateCurrentValue();\r\n });\r\n this.keyboard.altChanged.subscribe(alt => {\r\n this.isAlt = alt;\r\n this.updateCurrentValue();\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.keyboard.shiftChanged.unsubscribe();\r\n this.keyboard.altChanged.unsubscribe();\r\n }\r\n\r\n updateCurrentValue() {\r\n if (!this.capsActive) {\r\n this.currentValue = this._values[0];\r\n } else {\r\n this.currentValue = this._values[0].toUpperCase();\r\n }\r\n\r\n // if (!this.isAlt) {\r\n // if (!this.capsActive) {\r\n // this.currentValue = this._values[0];\r\n // } else {\r\n // this.currentValue = this._values[0].toUpperCase();\r\n // }\r\n // } else {\r\n // if (!this.isShifted) {\r\n // this.currentValue = this._values[1];\r\n // } else {\r\n // this.currentValue = this._values[2];\r\n // }\r\n // }\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.keyboard.fireKeyPressed(this.capsActive ? this.currentValue.toUpperCase() : this.currentValue);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, Subscription } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class KeyboardService {\r\n private _shift: boolean = false;\r\n\r\n private _alt: boolean = false;\r\n\r\n private _keyboardRequested: Subject;\r\n private _shiftChanged: Subject;\r\n private _altChanged: Subject;\r\n private _keyPressed: Subject;\r\n private _backspacePressed: Subject;\r\n private _enterPressed: Subject;\r\n\r\n constructor() {\r\n this._keyboardRequested = new Subject();\r\n this._shiftChanged = new Subject();\r\n this._altChanged = new Subject();\r\n this._keyPressed = new Subject();\r\n this._backspacePressed = new Subject();\r\n this._enterPressed = new Subject();\r\n }\r\n\r\n get shift(): boolean {\r\n return this._shift;\r\n }\r\n\r\n set shift(value:boolean) {\r\n this._shiftChanged.next(this._shift = value);\r\n }\r\n\r\n get alt(): boolean {\r\n return this._alt;\r\n }\r\n\r\n set alt(value: boolean) {\r\n this._altChanged.next(this._alt = value);\r\n }\r\n\r\n get keyboardRequested() {\r\n return this._keyboardRequested;\r\n }\r\n\r\n get shiftChanged() {\r\n return this._shiftChanged;\r\n }\r\n\r\n get altChanged() {\r\n return this._altChanged;\r\n }\r\n\r\n get keyPressed() {\r\n return this._keyPressed;\r\n }\r\n\r\n get backspacePressed() {\r\n return this._backspacePressed;\r\n }\r\n\r\n get enterPressed() {\r\n return this._enterPressed;\r\n }\r\n\r\n fireKeyboardRequested(show: boolean) {\r\n this._keyboardRequested.next(show);\r\n }\r\n\r\n fireKeyPressed(key:string) {\r\n this._keyPressed.next(key);\r\n }\r\n\r\n fireBackspacePressed() {\r\n this._backspacePressed.next();\r\n }\r\n\r\n fireEnterPressed() {\r\n this._enterPressed.next();\r\n }\r\n\r\n checkB4Unsubscribe(sub: Subscription) {\r\n if(sub && !sub.closed){\r\n sub.unsubscribe();\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, HostListener, HostBinding, ElementRef, Input, AfterViewInit } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { KeyboardService } from '../keyboard.service';\r\n\r\n@Component({\r\n selector: 'app-keyboard',\r\n templateUrl: './keyboard.component.html',\r\n styleUrls: ['./keyboard.component.css']\r\n})\r\nexport class KeyboardComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('class.shown')\r\n private shown: boolean;\r\n @Input() tipoTeclado: any = {\r\n numerico: false,\r\n alpha: true\r\n };\r\n private keyboardSubscription: Subscription;\r\n alphaKeysActive: boolean = true;\r\n symbolKeysActive: boolean = false;\r\n capsActive: boolean = false;\r\n\r\n constructor(private el: ElementRef, public keyboard: KeyboardService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.keyboardSubscription = this.keyboard.keyboardRequested.subscribe(show => {\r\n this.shown = !show;\r\n });\r\n }\r\n ngAfterViewInit() {}\r\n\r\n ngOnDestroy() {\r\n this.keyboardSubscription.unsubscribe();\r\n }\r\n\r\n onShift() {\r\n this.keyboard.shift = !this.keyboard.shift;\r\n }\r\n\r\n\r\n onAlt() {\r\n this.keyboard.alt = !this.keyboard.alt;\r\n this.keyboard.shift = false;\r\n }\r\n\r\n onBackspace() {\r\n this.keyboard.fireBackspacePressed();\r\n }\r\n\r\n onEnter() {\r\n this.keyboard.fireEnterPressed();\r\n }\r\n\r\n mudarTeclas(){\r\n this.symbolKeysActive = !this.symbolKeysActive;\r\n this.alphaKeysActive = !this.alphaKeysActive;\r\n }\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('click', ['$event'])\r\n onMouseEvent(event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n","import { Component, OnInit, OnDestroy, HostListener, HostBinding, ElementRef, Input, AfterViewInit, EventEmitter, Output } from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { KeyboardService } from '../keyboard.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'teclado-numerico',\r\n template: `\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n `,\r\n styleUrls: ['./teclado-numerico.view.css']\r\n})\r\nexport class TecladoNumericoView implements OnInit, OnDestroy, AfterViewInit {\r\n @HostBinding('class.shown')\r\n private shown: boolean;\r\n @Output() aoPressTecla = new EventEmitter();\r\n @Output() aoPressBackspace = new EventEmitter();\r\n @Output() aoLimprar = new EventEmitter();\r\n @Input() tecladoLivre = false;\r\n @Input() tipoTeclado: any = {\r\n numerico: false,\r\n alpha: true\r\n };\r\n private keyboardSubscription: Subscription;\r\n\r\n constructor(private el: ElementRef, public keyboard: KeyboardService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.keyboardSubscription = this.keyboard.keyboardRequested.subscribe(show => {\r\n if (show) {\r\n this.shown = true;\r\n } else {\r\n this.shown = true;\r\n }\r\n });\r\n }\r\n\r\n numeroSelecionado(valor:number){\r\n this.aoPressTecla.emit(valor);\r\n }\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.keyboardSubscription.unsubscribe();\r\n }\r\n\r\n onShift() {\r\n this.keyboard.shift = !this.keyboard.shift;\r\n }\r\n\r\n onBackspace() {\r\n this.aoPressBackspace.emit(true);\r\n }\r\n\r\n onClear(){\r\n this.aoLimprar.emit(true);\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n @HostListener('click', ['$event'])\r\n onMouseEvent(event: MouseEvent) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }\r\n}\r\n","import {\r\n Directive,\r\n OnInit,\r\n ElementRef,\r\n Renderer2,\r\n HostListener, OnDestroy, HostBinding\r\n} from '@angular/core';\r\nimport { KeyboardService } from \"./keyboard.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: \"[appOskInput]\",\r\n})\r\nexport class OskInputDirective implements OnInit, OnDestroy {\r\n private keySubscription: Subscription;\r\n private backspaceSubscription: Subscription;\r\n private enterSubscription: Subscription;\r\n private measure: HTMLElement;\r\n @HostBinding('innerText') currentValue: string;\r\n constructor(private render: Renderer2,\r\n private el: ElementRef, private keyboard: KeyboardService, private control: NgControl) {\r\n }\r\n\r\n ngOnInit() {\r\n let thisStyle = window.getComputedStyle(this.el.nativeElement);\r\n this.measure = document.createElement(\"span\");\r\n this.measure.style.position = \"absolute\";\r\n this.measure.style.right = \"100%\";\r\n this.measure.style.font = thisStyle.font;\r\n document.body.appendChild(this.measure);\r\n }\r\n\r\n @HostListener(\"focus\")\r\n private onFocus() {\r\n this.keyboard.fireKeyboardRequested(true);\r\n this.subscribeToKeyboardEvents();\r\n }\r\n\r\n @HostListener(\"blur\")\r\n private onBlur() {\r\n this.keyboard.fireKeyboardRequested(false);\r\n this.unsubscribeFromKeyboardEvents();\r\n }\r\n\r\n private subscribeToKeyboardEvents() {\r\n this.keySubscription = this.keyboard.keyPressed.subscribe(key =>\r\n this.onKey(key)\r\n );\r\n this.backspaceSubscription = this.keyboard.backspacePressed.subscribe(_ =>\r\n this.onBackspace()\r\n );\r\n\r\n }\r\n\r\n private unsubscribeFromKeyboardEvents() {\r\n // this.keySubscription.unsubscribe();\r\n this.keyboard.checkB4Unsubscribe(this.keySubscription);\r\n // this.backspaceSubscription.unsubscribe();\r\n this.keyboard.checkB4Unsubscribe(this.backspaceSubscription);\r\n // this.enterSubscription.unsubscribe();\r\n this.keyboard.checkB4Unsubscribe(this.enterSubscription);\r\n }\r\n\r\n private onKey(key: string) {\r\n // TODO Refactor this into a single method with the code in onBackspace\r\n let element = this.el.nativeElement,\r\n start = element.selectionStart,\r\n end = element.selectionEnd;\r\n\r\n this.measure.textContent = element.value.substr(0, start) + key;\r\n element.value =\r\n element.value.substr(0, start) + key + element.value.substr(end);\r\n\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = start + 1;\r\n\r\n this.updateScrollPosition();\r\n }\r\n\r\n private onBackspace() {\r\n let element = this.el.nativeElement,\r\n start = element.selectionStart,\r\n end = element.selectionEnd;\r\n\r\n if (start === 0) {\r\n return;\r\n }\r\n\r\n if (start === end) {\r\n start--;\r\n }\r\n this.measure.textContent = element.value.substr(0, start);\r\n element.value = element.value.substr(0, start) + element.value.substr(end);\r\n element.focus();\r\n element.selectionStart = element.selectionEnd = start;\r\n this.updateScrollPosition();\r\n }\r\n\r\n private updateScrollPosition() {\r\n let element = this.el.nativeElement;\r\n element.scrollLeft = this.measure.offsetWidth - (element.clientWidth - 10);\r\n this.actualizarControl(element.value);\r\n const event = new Event('input', { bubbles: true });\r\n this.el.nativeElement.dispatchEvent(event);\r\n }\r\n\r\n actualizarControl(novoValor: string) {\r\n if (this.control && this.control.control) {\r\n this.control.control.setValue(novoValor);\r\n }\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n this.keyboard.shiftChanged.unsubscribe();\r\n this.keyboard.altChanged.unsubscribe();\r\n }\r\n // @HostListener('click') onClick() { this.keyboard.fireKeyPressed(this.currentValue); }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { KeyboardKeyDirective } from './keyboard-key.directive';\r\nimport { OskInputDirective } from './osk-input.directive';\r\nimport { VirtualKeyboardDirective } from './virtual-keyboard.directive';\r\nimport { KeyboardComponent } from './keyboard/keyboard.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FlexModule } from '@angular/flex-layout';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { TeclasDirective } from './directivas/teclas.directive';\r\nimport { TecladoNumericoView } from './numerico/teclado-numerico.view';\r\nimport { OskInputNumDirective } from './directivas/osk-input-num.directive';\r\nimport { PosTecladoVirtual } from '../../views/pos/componentes/keyboard/pos-teclado-virtual';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nconst componentes = [KeyboardKeyDirective,\r\n OskInputDirective, OskInputNumDirective,\r\n VirtualKeyboardDirective, KeyboardComponent, PosTecladoVirtual,\r\n TeclasDirective, TecladoNumericoView];\r\n@NgModule({\r\n imports: [ReactiveFormsModule, CommonModule, FlexModule, MatIconModule, DragDropModule],\r\n exports: componentes,\r\n declarations: componentes,\r\n}) export class TecladoModule {\r\n\r\n}\r\n","import { Directive, HostListener, Input } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[appVirtualKeyboard]'\r\n})\r\nexport class VirtualKeyboardDirective {\r\n @Input() appVirtualKeyboard: string[] = [];\r\n\r\n constructor(private ngControl: NgControl) {}\r\n\r\n @HostListener('click', ['$event.target']) onClick(target: HTMLElement) {\r\n const key = target.innerText;\r\n if (!this.ngControl.control || !key) return;\r\n\r\n let currentValue = this.ngControl.control.value || '';\r\n if (key === '←') {\r\n this.ngControl.control.setValue(currentValue.slice(0, -1));\r\n } else if (key === 'Space') {\r\n this.ngControl.control.setValue(currentValue + ' ');\r\n } else {\r\n this.ngControl.control.setValue(currentValue + key);\r\n }\r\n }\r\n}\r\n","export enum Genero {\r\n genMasculino = 1,\r\n genFeminino = 2\r\n}\r\n\r\nexport enum Accao {\r\n editar = 'E',\r\n detalhes = 'D',\r\n cadastrar = 'C'\r\n}\r\n\r\nexport enum Opc {\r\n NAO = 1,\r\n OPCIONAL = 2,\r\n OBRIGATORIO = 3\r\n}\r\n","import { UtilizadorSessao } from \"../../aplicacao/utilizador-sessao\";\r\n\r\nexport class ArtigoFiltros {\r\n constructor(\r\n public IdClassificacao?: number,\r\n public CodIdioma?: string,\r\n public CodArtigo?: string,\r\n public IdTiposArtigo?: number[],\r\n public Descricao?: string,\r\n public IdEstado?: number[],\r\n public IdUnidade?: number[],\r\n public Marcacao?: boolean[],\r\n public ValorMinMoeda1?: number,\r\n public ValorMaxMoeda1?: number,\r\n public ValorMinMoeda2?: number,\r\n public ValorMaxMoeda2?: number,\r\n public DataInicio?: string,\r\n public DataFim?: string,\r\n public Imagem?: boolean[],\r\n public renovavel?: boolean,\r\n public utilizadorSessao?: UtilizadorSessao\r\n ) {\r\n }\r\n}\r\n","\r\nexport class CountryCod {\r\n\r\n constructor() { }\r\n\r\n str = 'dialCode: +1 % flag:\tCA % countryName:\tCanada %' +\r\n 'dialCode: +1 % flag:\tUS % countryName:\tUnited States %' +\r\n 'dialCode: +1242 % flag:\t\tBS % countryName:\tBahamas %' +\r\n 'dialCode: +1246 % flag:\t\tBB % countryName:\tBarbados %' +\r\n 'dialCode: +1264 % flag:\t \tAI % countryName:\tAnguilla %' +\r\n 'dialCode: +1268 % flag:\t\tAG % countryName:\tAntigua and Barbuda %' +\r\n 'dialCode: +1284 % flag:\t \tVG % countryName:\tVirgin Islands, British %' +\r\n 'dialCode: +1340 % flag:\t\tVI % countryName:\tVirgin Islands, U.S. %' +\r\n 'dialCode: +1441 % flag:\t \tBM % countryName:\tBermuda %' +\r\n 'dialCode: +1473 % flag:\t \tGD % countryName:\tGrenada %' +\r\n 'dialCode: +1649 % flag:\t\tTC % countryName:\tTurks and Caicos Islands %' +\r\n 'dialCode: +1664 % flag:\t\tMS % countryName:\tMontserrat %' +\r\n 'dialCode: +1670 % flag:\t \tMP % countryName:\tNorthern Mariana Islands %' +\r\n 'dialCode: +1671 % flag:\t \tGU % countryName:\tGuam %' +\r\n 'dialCode: +1684 % flag:\t\tAS % countryName:\tAmerican Samoa %' +\r\n 'dialCode: +1758 % flag:\t \tLC % countryName:\tSaint Lucia %' +\r\n 'dialCode: +1767 % flag:\t \tDM % countryName:\tDominica %' +\r\n 'dialCode: +1784 % flag:\t\tVC % countryName:\tSaint Vincent and the Grenadines %' +\r\n 'dialCode: +1849 % flag:\t \tDO % countryName:\tDominican Republic %' +\r\n 'dialCode: +1868 % flag:\t\tTT % countryName:\tTrinidad and Tobago %' +\r\n 'dialCode: +1869 % flag:\t \tKN % countryName:\tSaint Kitts and Nevis %' +\r\n 'dialCode: +1876 % flag:\t \tJM % countryName:\tJamaica %' +\r\n 'dialCode: +1939 % flag:\t\tPR % countryName:\tPuerto Rico %' +\r\n 'dialCode: +20 \t % flag:\tEG % countryName:\tEgypt %' +\r\n 'dialCode: +211 \t % flag:\tSS % countryName:\tSouth Sudan %' +\r\n 'dialCode: +212 % flag: \tMA % countryName:\tMorocco %' +\r\n 'dialCode: +213 \t % flag:\tDZ % countryName:\tAlgeria %' +\r\n 'dialCode: +216 % flag:\tTN % countryName:\tTunisia %' +\r\n 'dialCode: +218 % flag:\tLY % countryName:\tLibyan Arab Jamahiriya %' +\r\n 'dialCode: +220 % flag: \tGM % countryName:\tGambia %' +\r\n 'dialCode: +221 % flag: \tSN % countryName:\tSenegal %' +\r\n 'dialCode: +222 % flag:\tMR % countryName:\tMauritania %' +\r\n 'dialCode: +223 % flag: \tML % countryName:\tMali %' +\r\n 'dialCode: +224 % flag:\t \tGN % countryName:\tGuinea %' +\r\n 'dialCode: +225 % flag: \tCI % countryName:\tCote dIvoire %' +\r\n 'dialCode: +226 \t % flag:\tBF % countryName:\tBurkina Faso %' +\r\n 'dialCode: +227 % flag: \tNE % countryName:\tNiger %' +\r\n 'dialCode: +228 % flag: \tTG % countryName:\tTogo %' +\r\n 'dialCode: +229 % flag:\tBJ % countryName:\tBenin %' +\r\n 'dialCode: +230 % flag: \tMU % countryName:\tMauritius %' +\r\n 'dialCode: +231 % flag:\tLR % countryName:\tLiberia %' +\r\n 'dialCode: +232 % flag: \tSL % countryName:\tSierra Leone %' +\r\n 'dialCode: +233 % flag: \tGH % countryName:\tGhana %' +\r\n 'dialCode: +234 % flag: \tNG % countryName:\tNigeria %' +\r\n 'dialCode: +235 % flag: \tTD % countryName:\tChad %' +\r\n 'dialCode: +236 % flag: \tCF % countryName:\tCentral African Republic %' +\r\n 'dialCode: +237 \t % flag:\tCM % countryName:\tCameroon %' +\r\n 'dialCode: +238 % flag: \tCV % countryName:\tCape Verde %' +\r\n 'dialCode: +239 % flag:\tST % countryName:\tSao Tome and Principe %' +\r\n 'dialCode: +240 % flag:\tGQ % countryName:\tEquatorial Guinea %' +\r\n 'dialCode: +241 % flag: \tGA % countryName:\tGabon %' +\r\n 'dialCode: +242 % flag: \tCG % countryName:\tCongo %' +\r\n 'dialCode: +243 % flag: \tCD % countryName:\tCongo, The Democratic Republic of the Congo %' +\r\n 'dialCode: +244 % flag:\tAO % countryName:\tAngola %' +\r\n 'dialCode: +245 % flag:\tGW % countryName:\tGuinea-Bissau %' +\r\n 'dialCode: +246 % flag:\tIO % countryName:\tBritish Indian Ocean Territory %' +\r\n 'dialCode: +248 % flag:\tSC % countryName:\tSeychelles %' +\r\n 'dialCode: +249 % flag: \tSD % countryName:\tSudan %' +\r\n 'dialCode: +250 % flag: \tRW % countryName:\tRwanda %' +\r\n 'dialCode: +251 % flag: \tET % countryName:\tEthiopia %' +\r\n 'dialCode: +252 \t % flag:\tSO % countryName:\tSomalia %' +\r\n 'dialCode: +253 % flag:\tDJ % countryName:\tDjibouti %' +\r\n 'dialCode: +254 % flag:\tKE % countryName:\tKenya %' +\r\n 'dialCode: +255 \t % flag:\tTZ % countryName:\tTanzania, United Republic of Tanzania %' +\r\n 'dialCode: +256 % flag:\tUG % countryName:\tUganda %' +\r\n 'dialCode: +257 % flag: \tBI % countryName:\tBurundi %' +\r\n 'dialCode: +258 % flag: \tMZ % countryName:\tMozambique %' +\r\n 'dialCode: +260 \t % flag:\tZM % countryName:\tZambia %' +\r\n 'dialCode: +261 % flag: \tMG % countryName:\tMadagascar %' +\r\n 'dialCode: +262 % flag: \tTF % countryName:\tFrench Southern Territories %' +\r\n 'dialCode: +262 % flag:\tYT % countryName:\tMayotte %' +\r\n 'dialCode: +262 % flag: \tRE % countryName:\tReunion %' +\r\n 'dialCode: +263 % flag: \tZW % countryName:\tZimbabwe %' +\r\n 'dialCode: +264 % flag: \tNA % countryName:\tNamibia %' +\r\n 'dialCode: +265 % flag: \tMW % countryName:\tMalawi %' +\r\n 'dialCode: +266 % flag:\tLS % countryName:\tLesotho %' +\r\n 'dialCode: +267 % flag: \tBW % countryName:\tBotswana %' +\r\n 'dialCode: +268 % flag: \tSZ % countryName:\tSwaziland %' +\r\n 'dialCode: +269 % flag: \tKM % countryName:\tComoros %' +\r\n 'dialCode: +27 \t % flag:\tZA % countryName:\tSouth Africa %' +\r\n 'dialCode: +290 % flag: \tSH % countryName:\tSaint Helena, Ascension and Tristan Da Cunha %' +\r\n 'dialCode: +291 % flag: \tER % countryName:\tEritrea %' +\r\n 'dialCode: +297 \t % flag:\tAW % countryName:\tAruba %' +\r\n 'dialCode: +298 \t % flag:\tFO % countryName:\tFaroe Islands %' +\r\n 'dialCode: +299 % flag: \tGL % countryName:\tGreenland %' +\r\n 'dialCode: +30 % flag: \tGR % countryName:\tGreece %' +\r\n 'dialCode: +31 % flag: \tNL % countryName:\tNetherlands %' +\r\n 'dialCode: +32 % flag: \tBE % countryName:\tBelgium %' +\r\n 'dialCode: +33 % flag: \tFR % countryName:\tFrance %' +\r\n 'dialCode: +34 % flag: \tES % countryName:\tSpain %' +\r\n 'dialCode: +345 % flag: \tKY % countryName:\tCayman Islands %' +\r\n 'dialCode: +350 % flag: \tGI % countryName:\tGibraltar %' +\r\n 'dialCode: +351 % flag: \tPT % countryName:\tPortugal %' +\r\n 'dialCode: +352 % flag: \tLU % countryName:\tLuxembourg %' +\r\n 'dialCode: +353 % flag: \tIE % countryName:\tIreland %' +\r\n 'dialCode: +354 % flag: \tIS % countryName:\tIceland %' +\r\n 'dialCode: +355 % flag: \tAL % countryName:\tAlbania %' +\r\n 'dialCode: +356 % flag: \tMT % countryName:\tMalta %' +\r\n 'dialCode: +357 % flag: \tCY % countryName:\tCyprus %' +\r\n 'dialCode: +358 % flag: \tAX % countryName:\tÅland Islands %' +\r\n 'dialCode: +358 % flag: \tFI % countryName:\tFinland %' +\r\n 'dialCode: +359 % flag: \tBG % countryName:\tBulgaria %' +\r\n 'dialCode: +36 % flag: \tHU % countryName:\tHungary %' +\r\n 'dialCode: +370 \t % flag:\tLT % countryName:\tLithuania %' +\r\n 'dialCode: +371 % flag: \tLV % countryName:\tLatvia %' +\r\n 'dialCode: +372 % flag: \tEE % countryName:\tEstonia %' +\r\n 'dialCode: +373 % flag: \tMD % countryName:\tMoldova %' +\r\n 'dialCode: +374 % flag: \tAM % countryName:\tArmenia %' +\r\n 'dialCode: +375 % flag: \tBY % countryName:\tBelarus %' +\r\n 'dialCode: +376 % flag: \tAD % countryName:\tAndorra %' +\r\n 'dialCode: +377 % flag:\t \tMC % countryName:\tMonaco %' +\r\n 'dialCode: +378 % flag: \tSM % countryName:\tSan Marino %' +\r\n 'dialCode: +379 % flag: \tVA % countryName:\tHoly See (Vatican City State) %' +\r\n 'dialCode: +380 % flag: \tUA % countryName:\tUkraine %' +\r\n 'dialCode: +381 % flag:\t \tRS % countryName:\tSerbia %' +\r\n 'dialCode: +382 % flag: \tME % countryName:\tMontenegro %' +\r\n 'dialCode: +383 % flag: \tXK % countryName:\tKosovo %' +\r\n 'dialCode: +385 % flag: \tHR % countryName:\tCroatia %' +\r\n 'dialCode: +386 % flag:\tSI % countryName:\tSlovenia %' +\r\n 'dialCode: +387 % flag: \tBA % countryName:\tBosnia and Herzegovina %' +\r\n 'dialCode: +389 % flag: \tMK % countryName:\tNorth Macedonia %' +\r\n 'dialCode: +39 % flag: \tIT % countryName:\tItaly %' +\r\n 'dialCode: +40 % flag: \tRO % countryName:\tRomania %' +\r\n 'dialCode: +41 % flag:\tCH % countryName:\tSwitzerland %' +\r\n 'dialCode: +420 % flag: \tCZ % countryName:\tCzech Republic %' +\r\n 'dialCode: +421 % flag: \tSK % countryName:\tSlovakia %' +\r\n 'dialCode: +423 % flag:\tLI % countryName:\tLiechtenstein %' +\r\n 'dialCode: +43 % flag: \tAT % countryName:\tAustria %' +\r\n 'dialCode: +44 % flag: \tGG % countryName:\tGuernsey %' +\r\n 'dialCode: +44 % flag:\t \tIM % countryName:\tIsle of Man %' +\r\n 'dialCode: +44 % flag:\t \tJE % countryName:\tJersey %' +\r\n 'dialCode: +44 % flag:\t \tGB % countryName:\tUnited Kingdom %' +\r\n 'dialCode: +45 % flag:\t \tDK % countryName:\tDenmark %' +\r\n 'dialCode: +46 % flag: \tSE % countryName:\tSweden %' +\r\n 'dialCode: +47 % flag:\t \tBV % countryName:\tBouvet Island %' +\r\n 'dialCode: +47 % flag: \tNO % countryName:\tNorway %' +\r\n 'dialCode: +47 % flag: \tSJ % countryName:\tSvalbard and Jan Mayen %' +\r\n 'dialCode: +48 % flag: \tPL % countryName:\tPoland %' +\r\n 'dialCode: +49 % flag: \tDE % countryName:\tGermany %' +\r\n 'dialCode: +500 % flag: \tFK % countryName:\tFalkland Islands (Malvinas) %' +\r\n 'dialCode: +500 % flag: \tGS % countryName:\tSouth Georgia and the South Sandwich Islands %' +\r\n 'dialCode: +501 % flag:\tBZ % countryName:\tBelize %' +\r\n 'dialCode: +502 % flag: \tGT % countryName:\tGuatemala %' +\r\n 'dialCode: +503 % flag:\tSV \t % countryName: El Salvador %' +\r\n 'dialCode: +504 % flag: \tHN % countryName:\tHonduras %' +\r\n 'dialCode: +505 % flag:\tNI % countryName:\tNicaragua %' +\r\n 'dialCode: +506 \t % flag:\tCR % countryName:\tCosta Rica %' +\r\n 'dialCode: +507 % flag: \tPA % countryName:\tPanama %' +\r\n 'dialCode: +508 % flag: \tPM % countryName:\tSaint Pierre and Miquelon %' +\r\n 'dialCode: +509 % flag:\tHT % countryName:\tHaiti %' +\r\n 'dialCode: +51 % flag:\tPE % countryName:\tPeru %' +\r\n 'dialCode: +52 % flag: \tMX % countryName:\tMexico %' +\r\n 'dialCode: +53 % flag: \tCU % countryName:\tCuba %' +\r\n 'dialCode: +54 % flag: \tAR % countryName:\tArgentina %' +\r\n 'dialCode: +55 % flag: \tBR % countryName:\tBrazil %' +\r\n 'dialCode: +56 % flag: \tCL % countryName:\tChile %' +\r\n 'dialCode: +57 % flag: \tCO % countryName:\tColombia %' +\r\n 'dialCode: +58 % flag: \tVE % countryName:\tVenezuela, Bolivarian Republic of Venezuela %' +\r\n 'dialCode: +590 % flag: \tGP % countryName:\tGuadeloupe %' +\r\n 'dialCode: +590 \t % flag:\tBL % countryName:\tSaint Barthelemy %' +\r\n 'dialCode: +590 \t % flag:\tMF % countryName:\tSaint Martin %' +\r\n 'dialCode: +591 % flag:\tBO % countryName:\tBolivia, Plurinational State of bolivia %' +\r\n 'dialCode: +592 % flag: \tGY % countryName:\tGuyana %' +\r\n 'dialCode: +593 % flag: \tEC % countryName:\tEcuador %' +\r\n 'dialCode: +594 % flag: \tGF % countryName:\tFrench Guiana %' +\r\n 'dialCode: +595 % flag: \tPY % countryName:\tParaguay %' +\r\n 'dialCode: +596 % flag: \tMQ % countryName:\tMartinique %' +\r\n 'dialCode: +597 % flag: \tSR % countryName:\tSuriname %' +\r\n 'dialCode: +598 % flag: \tUY % countryName:\tUruguay %' +\r\n // 'dialCode: +599 % flag:\tAN % countryName:\tNetherlands Antilles %' +\r\n 'dialCode: +60 % flag: \tMY % countryName:\tMalaysia %' +\r\n 'dialCode: +61 % flag: \tAU % countryName:\tAustralia %' +\r\n 'dialCode: +61 % flag: \tCX % countryName:\tChristmas Island %' +\r\n 'dialCode: +61 % flag: \tCC % countryName:\tCocos (Keeling) Islands %' +\r\n 'dialCode: +62 \t % flag:\tID % countryName:\tIndonesia %' +\r\n 'dialCode: +63 \t % flag:\tPH % countryName:\tPhilippines %' +\r\n 'dialCode: +64 % flag: \tNZ % countryName:\tNew Zealand %' +\r\n 'dialCode: +64 % flag: \tPN % countryName:\tPitcairn %' +\r\n 'dialCode: +65 % flag: \tSG % countryName:\tSingapore %' +\r\n 'dialCode: +66 % flag: \tTH % countryName:\tThailand %' +\r\n 'dialCode: +670 % flag: \tTL % countryName:\tTimor-Leste %' +\r\n 'dialCode: +672 % flag:\tAQ % countryName:\tAntarctica %' +\r\n 'dialCode: +672 % flag: \tHM % countryName:\tHeard Island and Mcdonald Islands %' +\r\n 'dialCode: +672 % flag: \tNF % countryName:\tNorfolk Island %' +\r\n 'dialCode: +673 % flag: \tBN % countryName:\tBrunei Darussalam %' +\r\n 'dialCode: +674 % flag:\tNR % countryName:\tNauru %' +\r\n 'dialCode: +675 \t % flag:\tPG % countryName:\tPapua New Guinea %' +\r\n 'dialCode: +676 \t % flag:\tTO % countryName:\tTonga %' +\r\n 'dialCode: +677 \t % flag:\tSB % countryName:\tSolomon Islands %' +\r\n 'dialCode: +678 \t % flag:\tVU % countryName:\tVanuatu %' +\r\n 'dialCode: +679 % flag:\tFJ % countryName:\tFiji %' +\r\n 'dialCode: +680 \t % flag:\tPW % countryName:\tPalau %' +\r\n 'dialCode: +681 \t % flag:\tWF % countryName:\tWallis and Futuna %' +\r\n 'dialCode: +682 \t % flag:\tCK % countryName:\tCook Islands %' +\r\n 'dialCode: +683 \t % flag:\tNU % countryName:\tNiue %' +\r\n 'dialCode: +685 \t % flag:\tWS % countryName:\tSamoa %' +\r\n 'dialCode: +686 \t % flag:\tKI % countryName:\tKiribati %' +\r\n 'dialCode: +687 \t % flag:\tNC % countryName:\tNew Caledonia %' +\r\n 'dialCode: +688 \t % flag:\tTV % countryName:\tTuvalu %' +\r\n 'dialCode: +689 \t % flag:\tPF % countryName:\tFrench Polynesia %' +\r\n 'dialCode: +690 \t % flag:\tTK % countryName:\tTokelau %' +\r\n 'dialCode: +691 \t % flag:\tFM % countryName:\tMicronesia, Federated States of Micronesia %' +\r\n 'dialCode: +692 \t % flag:\tMH % countryName:\tMarshall Islands %' +\r\n 'dialCode: +7 \t % flag:\tKZ % countryName:\tKazakhstan %' +\r\n 'dialCode: +7 \t % flag:\tRU % countryName:\tRussia %' +\r\n 'dialCode: +81 % flag:\tJP % countryName:\tJapan %' +\r\n 'dialCode: +82 % flag: \tKR % countryName:\tKorea, Republic of South Korea %' +\r\n 'dialCode: +84 % flag: \tVN % countryName:\tVietnam %' +\r\n 'dialCode: +850 % flag: \tKP % countryName:\tKorea, Democratic Peoples Republic of Korea %' +\r\n 'dialCode: +852 % flag: \tHK % countryName:\tHong Kong %' +\r\n 'dialCode: +853 % flag: \tMO % countryName:\tMacao %' +\r\n 'dialCode: +855 % flag: \tKH % countryName:\tCambodia %' +\r\n 'dialCode: +856 % flag: \tLA % countryName:\tLaos %' +\r\n 'dialCode: +86 % flag: \tCN % countryName:\tChina %' +\r\n 'dialCode: +880 % flag: \tBD % countryName:\tBangladesh %' +\r\n 'dialCode: +886 % flag:\tTW % countryName:\tTaiwan %' +\r\n 'dialCode: +90 % flag: \tTR % countryName:\tTürkiye %' +\r\n 'dialCode: +91 % flag: \tIN % countryName:\tIndia %' +\r\n 'dialCode: +92 % flag: \tPK % countryName:\tPakistan %' +\r\n 'dialCode: +93 % flag: \tAF % countryName:\tAfghanistan %' +\r\n 'dialCode: +94 % flag: \tLK % countryName:\tSri Lanka %' +\r\n 'dialCode: +95 % flag:\tMM % countryName:\tMyanmar %' +\r\n 'dialCode: +960 % flag: \tMV % countryName:\tMaldives %' +\r\n 'dialCode: +961 % flag: \tLB % countryName:\tLebanon %' +\r\n 'dialCode: +962 % flag: \tJO % countryName:\tJordan %' +\r\n 'dialCode: +963 % flag: \tSY % countryName:\tSyrian Arab Republic %' +\r\n 'dialCode: +964 % flag: \tIQ % countryName:\tIraq %' +\r\n 'dialCode: +965 % flag:\tKW % countryName:\tKuwait %' +\r\n 'dialCode: +966 % flag: \tSA % countryName:\tSaudi Arabia %' +\r\n 'dialCode: +967 % flag: \tYE % countryName:\tYemen %' +\r\n 'dialCode: +968 % flag: \tOM % countryName:\tOman %' +\r\n 'dialCode: +970 % flag: \tPS % countryName:\tPalestinian Territory, Occupied %' +\r\n 'dialCode: +971 % flag: \tAE % countryName:\tUnited Arab Emirates %' +\r\n 'dialCode: +972 % flag: \tIL % countryName:\tIsrael %' +\r\n 'dialCode: +973 % flag: \tBH % countryName:\tBahrain %' +\r\n 'dialCode: +974 % flag: \tQA % countryName:\tQatar %' +\r\n 'dialCode: +975 % flag: \tBT % countryName:\tBhutan %' +\r\n 'dialCode: +976 % flag: \tMN % countryName:\tMongolia %' +\r\n 'dialCode: +977 % flag: \tNP % countryName:\tNepal %' +\r\n 'dialCode: +98 % flag: \tIR % countryName:\tIran, Islamic Republic of Persian Gulf %' +\r\n 'dialCode: +992 % flag: \tTJ % countryName:\tTajikistan %' +\r\n 'dialCode: +993 \t % flag:\tTM % countryName:\tTurkmenistan %' +\r\n 'dialCode: +994 % flag:\tAZ % countryName:\tAzerbaijan %' +\r\n 'dialCode: +995 % flag:\tGE % countryName:\tGeorgia %' +\r\n 'dialCode: +996 \t % flag:\tKG % countryName:\tKyrgyzstan %' +\r\n 'dialCode: +998 % flag: \tUZ % countryName:\tUzbekistan'\r\n\r\n public getContryObject(): {\r\n dialCode: string,\r\n flag: string,\r\n countryName: string\r\n }[] {\r\n\r\n\r\n let arr: string[] = this.str\r\n .replace(/\\t/g, '')\r\n .replace(/dialCode:/g, '')\r\n .replace(/flag:/g, '')\r\n .replace(/countryName:/g, '')\r\n .split('%');\r\n\r\n let obj: {\r\n dialCode: string,\r\n flag: string,\r\n countryName: string\r\n }[] = [];\r\n\r\n\r\n for (let i = 0; i < arr.length; i += 3) {\r\n obj[obj.length] = {\r\n dialCode: arr[i].replace(/\\s/g, ''),\r\n flag: arr[i + 1].replace(/\\s/g, ''),\r\n countryName: arr[i + 2]\r\n }\r\n }\r\n\r\n obj.sort((country1: Country, country2 : Country) => {\r\n return country1.countryName.localeCompare(country2.countryName);\r\n });\r\n\r\n return obj;\r\n\r\n }\r\n\r\n\r\n}\r\n\r\n\r\nexport interface Country{\r\n dialCode: string,\r\n flag: string,\r\n countryName: string\r\n}","import {AbstractControl, FormArray, ValidationErrors, ValidatorFn} from '@angular/forms';\r\nimport {Util} from '../../generico/util';\r\nimport moment from 'moment';\r\n\r\nexport class CustomValidators {\r\n static greaterThanDate(startControl: AbstractControl): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (!startControl.value || !endControl.value) {\r\n return null;\r\n }\r\n const startDate: Date = moment.isMoment(startControl.value) ? startControl.value.toDate() : new Date(startControl.value);\r\n const endDate: Date = moment.isMoment(endControl.value) ? endControl.value.toDate() : new Date(endControl.value);\r\n if (startDate > endDate) {\r\n return {greaterThan: true};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static equals(incomeControl: AbstractControl): ValidatorFn {\r\n return (thisControl: AbstractControl): ValidationErrors | null => {\r\n const incomeValue: string = incomeControl.value;\r\n const thisValue: string = thisControl.value;\r\n if (!incomeValue || !thisValue) {\r\n return null;\r\n }\r\n\r\n return incomeValue !== thisValue ? {equal: true} : null;\r\n };\r\n }\r\n\r\n static lesserThanDate(startControl: AbstractControl): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (!startControl.value || !endControl.value) {\r\n return null;\r\n }\r\n const startDate: Date = moment.isMoment(startControl.value) ? startControl.value.toDate() : new Date(startControl.value);\r\n const endDate: Date = moment.isMoment(endControl.value) ? endControl.value.toDate() : new Date(endControl.value);\r\n if (startDate < endDate) {\r\n return {lesserThan: true};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static greaterThan(startControl: AbstractControl, integer: boolean = false): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (startControl.value !== 0 && endControl.value !== 0 && (!startControl.value || !endControl.value)) {\r\n return null;\r\n }\r\n const start: number = integer ? parseInt(startControl.value, 10) : Util.convertToFloat(startControl.value);\r\n const end: number = integer ? parseInt(endControl.value, 10) : Util.convertToFloat(endControl.value);\r\n if (end > start) {\r\n return {greaterThan: {max: start, value: end}};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static lesserThan(startControl: AbstractControl, integer: boolean = false): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (startControl.value !== 0 && endControl.value !== 0 && (!startControl.value || !endControl.value)) {\r\n return null;\r\n }\r\n const start: number = integer ? parseInt(startControl.value, 10) : Util.convertToFloat(startControl.value);\r\n const end: number = integer ? parseInt(endControl.value, 10) : Util.convertToFloat(endControl.value);\r\n if (start > end) {\r\n return {lesserThan: {min: start, value: end}};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static greaterThanEqual(startControl: AbstractControl, integer: boolean = false): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (!startControl.value || !endControl.value) {\r\n return null;\r\n }\r\n const start: number = integer ? parseInt(startControl.value, 10) : Util.convertToFloat(startControl.value);\r\n const end: number = integer ? parseInt(endControl.value, 10) : Util.convertToFloat(endControl.value);\r\n if (end >= start) {\r\n return {greaterThanEqual: {max: startControl.value, value: endControl.value}};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static lesserThanEqual(startControl: AbstractControl, integer: boolean = false): ValidatorFn {\r\n return (endControl: AbstractControl): ValidationErrors | null => {\r\n if (!startControl.value || !endControl.value) {\r\n return null;\r\n }\r\n const start: number = integer ? parseInt(startControl.value, 10) : Util.convertToFloat(startControl.value);\r\n const end: number = integer ? parseInt(endControl.value, 10) : Util.convertToFloat(endControl.value);\r\n if (start >= end) {\r\n return {lesserThanEqual: {min: startControl.value, value: endControl.value}};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static notEmpty(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const formArray = control as FormArray;\r\n if (!formArray || formArray.length === 0) {\r\n return {empty: true};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static notEmptyArray(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const array = control.value;\r\n if (!Array.isArray(array) || array?.length === 0) {\r\n return {empty: true};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static greaterThanZero(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = Util.convertToFloat(control.value);\r\n if (isNaN(value) || value <= 0) {\r\n return {greaterThanZero: true};\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n static destinatario(): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n const value = control.value;\r\n if (!value) {\r\n return null;\r\n }\r\n const regex = /^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$/;\r\n const val = value.split(/[,;]/).filter(email => !regex.test(email.trim()));\r\n return val.length <= 0 ? null : {invalid: {emails: val.join(';')}};\r\n };\r\n }\r\n}\r\n","export class FiltrosClientes {\r\n DocIdentificacao?: string;\r\n constructor(\r\n public IdEntidade?: number,\r\n public CodigoFiltro?: number,\r\n public Codigo?: string,\r\n public Email?: string,\r\n public Nome?: string,\r\n public NIF?: string,\r\n public DataRegistoDe?: string,\r\n public DataRegistoAte?: string,\r\n public IdTipos?: number[],\r\n public IdEstados?: number[],\r\n public CodPaises?: string[],\r\n public CodIdiomas?: string[],\r\n public NumeroRegistos?: number,\r\n public PageSize?: number,\r\n public PageIndex?: number,\r\n public Utilizador?: any,\r\n public FiltrarData?: boolean,\r\n ) {\r\n }\r\n}\r\n","export interface ClienteFacturacao {\r\n idEntidade?: number;\r\n entidadeP?: string;\r\n idCliente?: number;\r\n idDadosFacturacao?: number;\r\n idMetodoPagRec?: number;\r\n idCondicaoPagamento?: number;\r\n metodoPagRec?: string;\r\n mesesDiaFixo?: number;\r\n diaFixo?: boolean;\r\n dias?: string;\r\n codCliente?: string;\r\n nome?: string;\r\n cidade?: string;\r\n email?: string;\r\n nif?: string;\r\n niffact?: string;\r\n idEstado?: number;\r\n estado?: string;\r\n idMoeda?: number;\r\n codMoeda?: string;\r\n nomeFact?: string;\r\n nifFact?: string;\r\n idPaisFact?: number;\r\n codPaisFact?: string;\r\n paisFact?: string;\r\n idProvinciaFact?: number;\r\n provinciaFact?: string;\r\n provicnciaFact?: string;\r\n idMunicipioFact?: number;\r\n municipioFact?: string;\r\n idZonaFact?: number;\r\n zonaFact?: string;\r\n moradaFact?: string;\r\n codPostalFact?: string;\r\n codPersonJuridica?: string;\r\n designacaoCodPostalFact?: string;\r\n clientesRetencoes?: any [];\r\n dadosComerciais?:any;\r\n activoFact?: boolean;\r\n generico?: boolean;\r\n precoDefault?: number;\r\n entidadeCliente?: boolean;\r\n entidadeFornecedor?: boolean;\r\n entidadeEstado?: boolean;\r\n entidadeColaborador?: boolean\r\n}\r\n\r\n\r\nexport function newClienteFat(c: any) {\r\n return {\r\n idEntidade: c.idEntidade,\r\n idCliente: c.idCliente,\r\n codCliente: c.codigo,\r\n nif: c.nif,\r\n nome: c.nome,\r\n idMetodoPagRec: c.idMetodoPagRec\r\n };\r\n}\r\n","import {Entidades} from '../clientes/entidades';\r\nimport {AbstractControl, FormArray, FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {Paises} from '../aplicacao/paises';\r\nimport {DAY} from 'app/views/artigos/renovavel-form/renovavel-form.component';\r\nimport {DataTypes} from 'app/views/gestao-arquivos/ga-tipo-campo/ga-tipo-campo.component';\r\nimport {Permissoes} from '../aplicacao/permissoes';\r\nimport * as XLSX from 'xlsx';\r\n\r\nexport class Util {\r\n\r\n public OpcaoNaoUsado = 1;\r\n\r\n static timeInput(target: HTMLInputElement) {\r\n const position = target.selectionStart;\r\n target.value = this.timeFormat(target.value);\r\n const offset = Number(target.value.length === 4);\r\n target.selectionStart = position + offset;\r\n target.selectionEnd = target.selectionStart;\r\n }\r\n\r\n static timeFormat(value: string) {\r\n let formattedValue = value.replace(/\\D/g, '');\r\n\r\n if (formattedValue.length > 2) {\r\n const minutes = parseInt(formattedValue.slice(2), 10) > 59 ? 59 : formattedValue.slice(2);\r\n const hours = parseInt(formattedValue.slice(0, 2), 10) > 23 ? 23 : formattedValue.slice(0, 2);\r\n formattedValue = `${hours}:${minutes}`;\r\n }\r\n\r\n return formattedValue.slice(0, 5);\r\n }\r\n\r\n static formatTimeWithTwoDigits(date: Date): string {\r\n if (!date) {\r\n return '00:00';\r\n }\r\n date = new Date(date);\r\n const hours = date.getHours().toString().padStart(2, '0');\r\n const minutes = date.getMinutes().toString().padStart(2, '0');\r\n date.setSeconds(0);\r\n return `${hours}:${minutes}`;\r\n }\r\n\r\n static timeStringToDecimal(timeString: string): number {\r\n const [hoursStr, minutesStr] = timeString.split(':');\r\n const hours = parseInt(hoursStr, 10);\r\n const minutes = parseInt(minutesStr, 10);\r\n return this.timeDecimal(hours, minutes);\r\n }\r\n\r\n static groupByCodeArea(permissoes: Permissoes[]): Record {\r\n return permissoes.reduce((groups, permissao) => {\r\n const {area} = permissao;\r\n if (!groups[area]) {\r\n groups[area] = [];\r\n }\r\n groups[area].push(permissao);\r\n return groups;\r\n }, {} as Record);\r\n }\r\n\r\n static organizarTiposArtigo(tipos: any[]): any[] {\r\n return tipos.reduce((acc, element) => {\r\n const updatedAcc = [...acc, element];\r\n if (element.tiposFilhos?.length > 0) {\r\n return [...updatedAcc, ...this.organizarTiposArtigo(element.tiposFilhos)];\r\n }\r\n return updatedAcc;\r\n }, []);\r\n }\r\n\r\n static repeat(arr: any, n: number) {\r\n return [].concat(...Array(n).fill(arr));\r\n }\r\n\r\n static timeDecimal(hours: number, minutes: number) {\r\n const decimalHours = hours + (minutes / 60);\r\n return Math.round(decimalHours * 100) / 100;\r\n }\r\n\r\n static base64ToArray(base64: string) {\r\n const bytes = this.base64ToArrayBuffer(base64);\r\n const workbook = XLSX.read(bytes, {type: 'array'});\r\n const worksheet = workbook.Sheets[workbook.SheetNames[0]];\r\n return XLSX.utils.sheet_to_json(worksheet);\r\n }\r\n\r\n static sliceArrayIntoChunks(dataArray: any, chunkSize: number, transform?: (item: any) => any) {\r\n const chunks = [];\r\n for (let i = 0; i < dataArray.length; i += chunkSize) {\r\n const chunk = dataArray.slice(i, i + chunkSize);\r\n chunks.push(transform ? transform(chunk) : chunk);\r\n }\r\n return chunks;\r\n }\r\n\r\n static bytesToBase64(bytes: string) {\r\n let binary = '';\r\n for (let i = 0; i < bytes.length; i++) {\r\n binary += String.fromCharCode(bytes.charCodeAt(i));\r\n }\r\n return btoa(binary);\r\n }\r\n\r\n static arrayToBase64(arrayChunk) {\r\n const jsonString = JSON.stringify(arrayChunk);\r\n const bytes = new TextEncoder().encode(jsonString);\r\n const binaryString = String.fromCharCode(...bytes);\r\n return btoa(binaryString);\r\n }\r\n\r\n static deepCompare(obj1, obj2) {\r\n // Check if the two items are the same object in memory\r\n if (obj1 === obj2) {\r\n return true;\r\n }\r\n\r\n // Check if either item is null or not an object\r\n if (typeof obj1 !== 'object' || obj1 === null ||\r\n typeof obj2 !== 'object' || obj2 === null) {\r\n return obj1 === obj2;\r\n }\r\n\r\n // Check if both items are arrays\r\n if (Array.isArray(obj1) && Array.isArray(obj2)) {\r\n if (obj1.length !== obj2.length) {\r\n return false;\r\n }\r\n for (let i = 0; i < obj1.length; i++) {\r\n if (!this.deepCompare(obj1[i], obj2[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n // Check if both items are dates\r\n if (obj1 instanceof Date && obj2 instanceof Date) {\r\n return obj1.getTime() === obj2.getTime();\r\n }\r\n\r\n // Check if both items are regular expressions\r\n if (obj1 instanceof RegExp && obj2 instanceof RegExp) {\r\n return obj1.toString() === obj2.toString();\r\n }\r\n\r\n // Get the keys of both objects\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n\r\n // Check if the objects have the same number of properties\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n\r\n // Check if all properties in obj1 exist in obj2 with the same values\r\n for (const key of keys1) {\r\n if (!keys2.includes(key) || !this.deepCompare(obj1[key], obj2[key])) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n static areObjectsEqual(obj1, obj2) {\r\n // Get the keys of the objects\r\n const keys1 = Object.keys(obj1);\r\n const keys2 = Object.keys(obj2);\r\n\r\n // Check if the number of properties is the same\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n\r\n // Check the values of each property\r\n for (const key of keys1) {\r\n // Check if the property exists in both objects\r\n if (!(key in obj2)) {\r\n return false;\r\n }\r\n\r\n // Compare the values of the properties\r\n if (obj1[key] !== obj2[key]) {\r\n return false;\r\n }\r\n }\r\n\r\n // All properties have the same values\r\n return true;\r\n }\r\n\r\n static getValue(obj: any, key: string) {\r\n const keys = key.split('.');\r\n let value = obj;\r\n\r\n for (const element of keys) {\r\n value = value ? value[element] : null;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n static compareObjectsByKeys(obj1: any, obj2: any, keys: string[]) {\r\n // Check if both inputs are objects\r\n if (typeof obj1 !== 'object' || typeof obj2 !== 'object') {\r\n return false;\r\n }\r\n\r\n // Compare each key\r\n return keys.every(key => this.getValue(obj1, key) === this.getValue(obj2, key));\r\n }\r\n\r\n static timeString(decimalTime) {\r\n const hours = Math.floor(decimalTime);\r\n const minutes = Math.round((decimalTime % 1) * 60);\r\n return `${hours}:${minutes.toString().padStart(2, '0')}`;\r\n }\r\n\r\n static formatTime(date: Date) {\r\n date = date ? new Date(date) : null;\r\n if (isNaN(date?.getTime())) {\r\n return '';\r\n }\r\n const d0 = new Date(date);\r\n const m0 = d0.getMinutes() < 10 ? `0${d0.getMinutes()}` : `${d0.getMinutes()}`;\r\n const h0 = d0.getHours() < 10 ? `0${d0.getHours()}` : `${d0.getHours()}`;\r\n return `${h0}:${m0}`;\r\n }\r\n\r\n static moradaInput(e: Event) {\r\n const textarea = e.target as HTMLTextAreaElement;\r\n const lineHeight = parseInt(getComputedStyle(textarea).lineHeight, 10);\r\n const lines = Math.floor(textarea.scrollHeight / lineHeight);\r\n const brs = textarea.value.split('\\n');\r\n\r\n if (brs.length > 3) {\r\n textarea.value = brs.slice(0, 3).join('\\n');\r\n return;\r\n }\r\n\r\n if (lines > 3) {\r\n textarea.value = textarea.value.slice(0, -1);\r\n }\r\n }\r\n\r\n static duration(startDate: Date, endDate: Date) {\r\n const t0 = startDate?.getTime();\r\n const tf = endDate?.getTime();\r\n if ((isNaN(t0) || isNaN(tf)) || (startDate > endDate)) {\r\n return '';\r\n }\r\n\r\n const duration = tf - t0;\r\n const totalSeconds = Math.floor(duration / 1000);\r\n\r\n if (totalSeconds < 60) {\r\n return `${totalSeconds} segundos`;\r\n } else if (totalSeconds < 3600) {\r\n const totalMinutes = Math.floor(totalSeconds / 60);\r\n return `${totalMinutes} minutos`;\r\n } else if (totalSeconds < 86400) {\r\n const hours = Math.floor(totalSeconds / 3600);\r\n const minutes = Math.floor((totalSeconds % 3600) / 60);\r\n return `${hours} horas, ${minutes} minutos`;\r\n } else if (totalSeconds < 2592000) {\r\n const days = Math.floor(totalSeconds / 86400);\r\n const hours = Math.floor((totalSeconds % 86400) / 3600);\r\n const minutes = Math.floor(((totalSeconds % 86400) % 3600) / 60);\r\n return `${days} dias, ${hours} horas, ${minutes} minutos`;\r\n } else if (totalSeconds < 31536000) {\r\n const months = Math.floor(totalSeconds / 2592000);\r\n return `${months} meses`;\r\n } else {\r\n const years = Math.floor(totalSeconds / 31536000);\r\n return `${years} anos`;\r\n }\r\n }\r\n\r\n static calculateMinutes(startDate: Date, endDate: Date) {\r\n const t0 = startDate?.getTime();\r\n const tf = endDate?.getTime();\r\n if ((isNaN(t0) || isNaN(tf)) || (startDate > endDate)) {\r\n return null;\r\n }\r\n const duration = tf - t0;\r\n const diffInMinutes = duration / (1000 * 60);\r\n return Math.round(diffInMinutes);\r\n }\r\n\r\n static calculateIntervals(startDate: Date, endDate: Date, intervaloMinutos: number) {\r\n const t0 = startDate?.getTime();\r\n const tf = endDate?.getTime();\r\n if ((isNaN(t0) || isNaN(tf)) || (startDate > endDate)) {\r\n return null;\r\n }\r\n const duration = tf - t0;\r\n const intervalDurationInMilliseconds = intervaloMinutos * 1000 * 60;\r\n return duration / intervalDurationInMilliseconds;\r\n }\r\n\r\n static parseDuration(durationString: string): number[] {\r\n const parts = durationString.split(', ');\r\n const result: number[] = [0, 0, 0, 0, 0];\r\n\r\n for (const part of parts) {\r\n if (part.endsWith(' anos')) {\r\n result[0] = parseInt(part.replace(' anos', ''), 10);\r\n } else if (part.endsWith(' meses')) {\r\n result[1] = parseInt(part.replace(' meses', ''), 10);\r\n } else if (part.endsWith(' dias')) {\r\n result[2] = parseInt(part.replace(' dias', ''), 10);\r\n } else if (part.endsWith(' horas')) {\r\n result[3] = parseInt(part.replace(' horas', ''), 10);\r\n } else if (part.endsWith(' minutos')) {\r\n result[4] = parseInt(part.replace(' minutos', ''), 10);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static base64ToArrayBuffer(base64: string): ArrayBuffer {\r\n const byteString = atob(base64.split(',')[1]);\r\n const ab = new ArrayBuffer(byteString.length);\r\n const ia = new Uint8Array(ab);\r\n for (let i = 0; i < byteString.length; i++) {\r\n ia[i] = byteString.charCodeAt(i);\r\n }\r\n return ab;\r\n }\r\n\r\n static UTCDate(inicio: Date, fim: Date) {\r\n if (inicio && fim) {\r\n const d0 = new Date(inicio);\r\n const d1 = new Date(fim);\r\n return [\r\n new Date(Date.UTC(d0.getFullYear(), d0.getMonth(), d0.getDate())),\r\n new Date(Date.UTC(d1.getFullYear(), d1.getMonth(), d1.getDate()))\r\n ];\r\n }\r\n return [];\r\n }\r\n\r\n static _UTCDate(date: Date | string) {\r\n date = date ? new Date(date) : null;\r\n return date ? new Date(Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n date.getHours(),\r\n date.getMinutes())) : null;\r\n }\r\n\r\n static clamp(value: number, min: number, max: number) {\r\n return Math.min(Math.max(value, min), max);\r\n }\r\n\r\n static addDays(date: Date, qtd: number = 1): Date {\r\n return new Date(date.getTime() + qtd * DAY);\r\n }\r\n\r\n static isLeapYear(year: number): boolean {\r\n return ((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0);\r\n }\r\n\r\n static getDaysInMonth(year: number, month: number): number {\r\n return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\r\n }\r\n\r\n static addMonths(date: Date, value: number = 1): Date {\r\n const n = date.getDate();\r\n const df = new Date(date);\r\n df.setDate(1);\r\n df.setMonth(df.getMonth() + value);\r\n df.setDate(Math.min(n, this.getDaysInMonth(df.getFullYear(), df.getMonth())));\r\n return df;\r\n }\r\n\r\n static getControlErrors(control: FormControl, name: string, errorMap: { [p: string]: string }) {\r\n let errorMessage = '';\r\n if (control.errors) {\r\n Object.keys(control.errors).forEach((errorKey: string) => {\r\n switch (errorKey) {\r\n case 'min':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Min: ${control.errors['min']['min']}. \\n`;\r\n break;\r\n case 'max':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Max: ${control.errors['max']['max']}. \\n`;\r\n break;\r\n case 'lesserThan':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Max: ${control.errors['lesserThan']['min']}. \\n`;\r\n break;\r\n case 'greaterThan':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Min: ${control.errors['greaterThan']['max']}. \\n`;\r\n break;\r\n case 'lesserThanEqual':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Max: ${control.errors['lesserThanEqual']['min']}. \\n`;\r\n break;\r\n case 'greaterThanEqual':\r\n errorMessage += `${name}: ${errorMap[errorKey]}. Min: ${control.errors['greaterThanEqual']['max']}. \\n`;\r\n break;\r\n default:\r\n errorMessage += `${name}: ${errorMap[errorKey]}. \\n`;\r\n break;\r\n }\r\n });\r\n }\r\n\r\n return errorMessage;\r\n }\r\n\r\n static getFormErrors(form: FormGroup | FormArray, formNameMap: { [key: string]: string }, errorMap: { [key: string]: string }): string {\r\n let errorMessage = '';\r\n\r\n // Iterate over all the controls in the form group\r\n Object.keys(form.controls).forEach((key: string) => {\r\n const control = form.controls[key];\r\n\r\n // If the control is a form group, recursively call the function\r\n if (control instanceof FormGroup || control instanceof FormArray) {\r\n const nestedErrorMessage = Util.getFormErrors(control, formNameMap, errorMap);\r\n\r\n if (nestedErrorMessage) {\r\n errorMessage += `${formNameMap[key] ?? `[${parseInt(key, 10) + 1}]`}: ${nestedErrorMessage}\\n`;\r\n }\r\n }\r\n\r\n // If the control has errors, concatenate the error messages\r\n if (control.errors) {\r\n Object.keys(control.errors).forEach((errorKey: string) => {\r\n switch (errorKey) {\r\n case 'min':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Min: ${control.errors['min']['min']}. \\n`;\r\n break;\r\n case 'max':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Max: ${control.errors['max']['max']}. \\n`;\r\n break;\r\n case 'lesserThan':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Max: ${control.errors['lesserThan']['min']}. \\n`;\r\n break;\r\n case 'greaterThan':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Min: ${control.errors['greaterThan']['max']}. \\n`;\r\n break;\r\n case 'lesserThanEqual':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Max: ${control.errors['lesserThanEqual']['min']}. \\n`;\r\n break;\r\n case 'greaterThanEqual':\r\n errorMessage += `${formNameMap[key]}: ${errorMap[errorKey]}. Min: ${control.errors['greaterThanEqual']['max']}. \\n`;\r\n break;\r\n case 'minlength':\r\n errorMessage += `${formNameMap[key] ?? `[${parseInt(key, 10) + 1}]`}: Deve ter no minímo ${control.errors['minlength']['requiredLength']} caracteres. Comprimento: ${control.errors['minlength']['actualLength']}. \\n`;\r\n break;\r\n case 'maxlength':\r\n errorMessage += `${formNameMap[key] ?? `[${parseInt(key, 10) + 1}]`}: Deve ter no máximo ${control.errors['maxlength']['requiredLength']} caracteres. Comprimento: ${control.errors['maxlength']['actualLength']}. \\n`;\r\n break;\r\n case 'invalid':\r\n errorMessage += `${formNameMap[key] ?? `[${parseInt(key, 10) + 1}]`}: ${errorMap[errorKey]}.\\n E-mails: ${control.errors['invalid']['emails']}. \\n`;\r\n break;\r\n default:\r\n errorMessage += `${formNameMap[key] ?? `[${parseInt(key, 10) + 1}]`}: ${errorMap[errorKey]}. \\n`;\r\n break;\r\n }\r\n });\r\n }\r\n });\r\n\r\n return errorMessage;\r\n }\r\n\r\n static getErrorKey(form: FormGroup): string {\r\n for (const key of Object.keys(form.controls)) {\r\n const control = form.controls[key];\r\n\r\n // If the control is a form group, recursively call the function\r\n if (control instanceof FormGroup) {\r\n const errorKey = Util.getErrorKey(control);\r\n if (errorKey) {\r\n return errorKey;\r\n }\r\n }\r\n\r\n // If the control has errors return the key\r\n if (control.errors) {\r\n const parentKey = this.findParentKey(control);\r\n return parentKey ? `${parentKey}.${key}` : key;\r\n }\r\n }\r\n\r\n return '';\r\n }\r\n\r\n static parseValue(value: string, type: string) {\r\n switch (type) {\r\n case DataTypes.BOOL:\r\n value = String(value)?.toLowerCase()?.trim();\r\n return value === 'true' || value === 'sim';\r\n case DataTypes.DATE:\r\n return value ? new Date(value) : '';\r\n default:\r\n return value;\r\n }\r\n }\r\n\r\n static stringfyValue(value: string, type: string) {\r\n switch (type) {\r\n case DataTypes.BOOL:\r\n return value === 'true' ? 'Sim' : 'Não';\r\n case DataTypes.DATE:\r\n return this.formatDate(new Date(value));\r\n default:\r\n return value;\r\n }\r\n }\r\n\r\n static formatDate(date) {\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are 0-indexed\r\n const year = date.getFullYear();\r\n\r\n return `${day}/${month}/${year}`;\r\n }\r\n\r\n static collectTree(list: any[], filtered: any[], key: string, fk: string) {\r\n let result = [...filtered];\r\n for (const child of filtered) {\r\n result = [...result, ...this.collectTree(list, list.filter(a => child[key] === a[fk]), key, fk)];\r\n }\r\n return result;\r\n }\r\n\r\n static compareLists(list1: any[], list2: any[]) {\r\n const added = [];\r\n const removed = [];\r\n const modified = [];\r\n\r\n // Check for added elements\r\n for (const item of list2) {\r\n if (!list1.some((x) => x.id === item.id)) {\r\n added.push(item);\r\n }\r\n }\r\n\r\n // Check for removed elements\r\n for (const item of list1) {\r\n if (!list2.some((x) => x.id === item.id)) {\r\n removed.push(item);\r\n }\r\n }\r\n\r\n // Check for modified elements\r\n for (const item2 of list2) {\r\n const item1 = list1.find((x) => x.id === item2.id);\r\n if (item1 && JSON.stringify(item1) !== JSON.stringify(item2)) {\r\n modified.push({old: item1, new: item2});\r\n }\r\n }\r\n\r\n return {added, removed, modified};\r\n }\r\n\r\n static findParentKey(formControl: AbstractControl): string | null {\r\n const root = formControl.parent?.parent;\r\n if (!root) {\r\n return null;\r\n }\r\n\r\n return Object.keys(root.controls).find(key => root.controls[key] === formControl.parent) || null;\r\n }\r\n\r\n static getLabelProvincia(codPais: string, paises?: Paises[]): string {\r\n return paises?.find((p) => p.codPais === codPais)?.idOpcCodigoPostal < 2\r\n ? 'Distrito'\r\n : 'Província';\r\n }\r\n\r\n static getLabelMunicipio(codPais: string, paises?: Paises[]): string {\r\n return paises?.find((p) => p.codPais === codPais)?.idOpcCodigoPostal < 2\r\n ? 'Concelho'\r\n : 'Munícipio';\r\n }\r\n\r\n public static isHttpRequest(url: string): boolean {\r\n const regex = /^(http:\\/\\/|https:\\/\\/)/;\r\n return regex.test(url);\r\n }\r\n\r\n public static filterNonOverlappingDates(objects: any[]) {\r\n return objects.filter((obj, index, arr) => {\r\n const {dataInicio, dataFim} = obj;\r\n\r\n // Check if there is any overlap with previous objects\r\n for (let i = 0; i < index; i++) {\r\n const prevObj = arr[i];\r\n if (dataInicio <= prevObj.dataFim && dataFim >= prevObj.dataInicio) {\r\n return false; // Overlapping dates, exclude the object\r\n }\r\n }\r\n\r\n return true; // Non-overlapping dates, include the object\r\n });\r\n }\r\n\r\n public static strToDate(valor: string) {\r\n if (valor) {\r\n const dataString = valor\r\n .split('-')\r\n .reverse()\r\n .toString()\r\n .replace(',', '-')\r\n .replace(',', '-');\r\n const dataConvertida = new Date(dataString).getTime();\r\n return dataConvertida;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n public static strParaDataISO(dataStr: any) {\r\n if (dataStr) {\r\n return Util.FromStrToDate(\r\n new Intl.DateTimeFormat('pt-PT').format(Date.parse(dataStr))\r\n );\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n public static FromStrToDate(valor: any) {\r\n return valor\r\n ? valor\r\n .split('/')\r\n .reverse()\r\n .toString()\r\n .replace(',', '-')\r\n .replace(',', '-')\r\n : '';\r\n }\r\n\r\n public static convertToFloat(valor: string | number): number {\r\n if (typeof (valor) === 'number') {\r\n return this.DuasCasasDecimais(valor);\r\n }\r\n\r\n if (valor?.includes(',')) {\r\n return this.DuasCasasDecimais(parseFloat(\r\n String(valor)\r\n .replaceAll('.', '')\r\n .replace(',', '.')\r\n .replace(/[^0-9.,]/g, ''))\r\n );\r\n } else {\r\n return this.DuasCasasDecimais(parseFloat(\r\n String(valor)\r\n .replace(',', '.')\r\n .replace(/[^0-9.,]/g, ''))\r\n );\r\n }\r\n }\r\n\r\n static round(value: number, decimals: number = 0): number {\r\n if (decimals < 0) {\r\n throw new Error('Decimals must be non-negative');\r\n }\r\n\r\n const factor = Math.pow(10, decimals);\r\n const tempValue = value * factor;\r\n const roundedTemp = Math.round(tempValue);\r\n let diff = Math.abs(tempValue - roundedTemp);\r\n diff = Math.round(diff * factor) / factor;\r\n\r\n if (diff >= 0.5) {\r\n return Math.round(tempValue + Math.sign(tempValue) * 0.001) / factor;\r\n }\r\n\r\n return Number((Math.round(tempValue) / factor).toFixed(decimals));\r\n }\r\n\r\n public static convertToFloat3Casas(valor: string | number): number {\r\n if (typeof (valor) === 'number') {\r\n return this.TresCasasDecimais(valor);\r\n }\r\n return this.TresCasasDecimais(parseFloat(\r\n String(valor)\r\n .replaceAll('.', '')\r\n .replace(',', '.')\r\n .replace(/[^0-9.,]/g, ''))\r\n );\r\n }\r\n\r\n static TresCasasDecimais(valor?: number | string): number {\r\n if (typeof valor === 'string') {\r\n // Tenta converter a string em um número.\r\n valor = valor.replace('.', '');\r\n valor = parseFloat(valor.replace(',', '.'));\r\n }\r\n\r\n if (typeof valor !== 'number' || isNaN(valor)) {\r\n // Se o valor não é um número válido, retorne zero ou outro valor padrão.\r\n return 0;\r\n }\r\n\r\n return Math.round((valor || 0) * 1000) / 1000;\r\n }\r\n\r\n static DuasCasasDecimais(valor?: number | string): number {\r\n if (typeof valor === 'string') {\r\n if (valor?.includes(',')) {\r\n valor = valor.replace('.', '');\r\n }\r\n valor = parseFloat(valor.replace(',', '.'));\r\n }\r\n\r\n if (typeof valor !== 'number' || isNaN(valor)) {\r\n return 0;\r\n }\r\n\r\n return Math.round((valor || 0) * 100) / 100;\r\n }\r\n\r\n\r\n public static replaceSliceInStrToDate(valor: any) {\r\n if (valor) {\r\n return valor.split('/').toString().replace(',', '-').replace(',', '-');\r\n }\r\n return '';\r\n }\r\n\r\n public static getData(dia: number, mes: number, ano: any): string {\r\n const mesActual = mes + 1;\r\n const data =\r\n ano.toString() +\r\n '-' +\r\n (mesActual < 10 ? '0' + mesActual.toString() : mesActual.toString()) +\r\n '-' +\r\n (dia < 10 ? '0' + dia.toString() : dia.toString());\r\n return data;\r\n }\r\n\r\n public static momToDate(momentDate: any): string {\r\n if (momentDate) {\r\n if (momentDate._isAMomentObject) {\r\n const mesActual = momentDate._i.month + 1;\r\n const data =\r\n momentDate._i.year.toString() +\r\n '-' +\r\n (mesActual < 10 ? '0' + mesActual.toString() : mesActual.toString()) +\r\n '-' +\r\n (momentDate._i.date < 10\r\n ? '0' + momentDate._i.date.toString()\r\n : momentDate._i.date.toString());\r\n return data;\r\n } else {\r\n const rgx = new RegExp('/', 'gi');\r\n const date = Intl.DateTimeFormat('en-GB').format(new Date(momentDate));\r\n return date.replace(rgx, '-');\r\n }\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n public static getAnoData(dia: number, mes: number, ano: any): string {\r\n return ano;\r\n }\r\n\r\n public static getLabelNome(entidade: Entidades) {\r\n return entidade.idOpcPriUltimoNome === 1 ? 'Nome' : 'Nome completo';\r\n }\r\n\r\n public static alterarFormatoData(data: string) {\r\n if (data) {\r\n return (\r\n data.substring(6, 11) +\r\n '-' +\r\n data.substring(3, 5) +\r\n '-' +\r\n data.substring(0, 2)\r\n );\r\n }\r\n return '';\r\n }\r\n\r\n public static getFormErros(form: AbstractControl) {\r\n if (form instanceof FormControl) {\r\n return form.errors ?? null;\r\n }\r\n if (form instanceof FormArray) {\r\n return form.errors ?? null;\r\n }\r\n if (form instanceof FormGroup) {\r\n const groupErrors = form.errors;\r\n const formErrors = groupErrors ? {groupErrors} : {};\r\n Object.keys(form.controls).forEach((key) => {\r\n const error = this.getFormErros(form.get(key));\r\n if (error !== null) {\r\n formErrors[key] = error;\r\n }\r\n });\r\n return Object.keys(formErrors).length > 0 ? formErrors : null;\r\n }\r\n }\r\n\r\n public static formatarDecimal(strNum: any): string {\r\n const valor = strNum.toString();\r\n if (valor) {\r\n if (valor.includes('.')) {\r\n const valorComVirgula = valor.toString().replace('.', ',');\r\n const partesDoNumero = valorComVirgula.split(',');\r\n let numeroFormatado = '';\r\n if (partesDoNumero[1].length === 1) {\r\n numeroFormatado = partesDoNumero[0] + ',' + partesDoNumero[1] + '0';\r\n } else {\r\n numeroFormatado = partesDoNumero[0] + ',' + partesDoNumero[1];\r\n }\r\n return numeroFormatado;\r\n } else {\r\n return valor + ',00';\r\n }\r\n } else {\r\n return '0,00';\r\n }\r\n }\r\n\r\n public static reverterDecimal(valor: any) {\r\n if (valor && typeof valor === 'string' && valor.includes(',')) {\r\n const valorComPonto = valor.toString().replace(',', '.');\r\n return parseFloat(valorComPonto);\r\n } else {\r\n return valor;\r\n }\r\n }\r\n\r\n public static fromStrToDate(date: any) {\r\n const dtTime = new Intl.DateTimeFormat('pt-PT', {\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric'\r\n }).format(Date.parse(date));\r\n return dtTime;\r\n }\r\n\r\n public static DownloadXML(dados) {\r\n const element = document.createElement('a');\r\n const blob = new Blob([dados.objecto], {\r\n type: 'text/xml'\r\n });\r\n element.href = URL.createObjectURL(blob);\r\n element.setAttribute('download', dados.mensagem);\r\n document.body.appendChild(element);\r\n element.click();\r\n }\r\n\r\n public static downloadAnexo(anexo: string, nomeAnexo: string) {\r\n if (!anexo) {\r\n return;\r\n }\r\n const link = document.createElement('a');\r\n link.href = anexo;\r\n link.download = nomeAnexo;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n }\r\n\r\n public static midpointRound(number) {\r\n return number < 0 ? -Math.round(-number * 2) / 2 : Math.round(number * 2) / 2;\r\n }\r\n\r\n public static CurrencyEnToPt(valor) {\r\n const delimiter = ',';\r\n const val = valor.split('.', 2);\r\n const d = val[1];\r\n let i = parseInt(val[0], 10);\r\n if (isNaN(i)) {\r\n return '';\r\n }\r\n let minus = '';\r\n if (i < 0) {\r\n minus = '-';\r\n }\r\n i = Math.abs(i);\r\n let n = String(i);\r\n const valTemp = [];\r\n while (n.length > 3) {\r\n const nn = n.substr(n.length - 3);\r\n valTemp.unshift(nn);\r\n n = n.substr(0, n.length - 3);\r\n }\r\n if (n.length > 0) {\r\n val.unshift(n);\r\n }\r\n n = valTemp.join(delimiter);\r\n if (d.length < 1) {\r\n valor = n;\r\n } else {\r\n valor = n + '.' + d;\r\n }\r\n valor = minus + valor;\r\n return valor;\r\n }\r\n\r\n public static validarCodigoLivre(classificacao, form: any, campo: any) {\r\n if (!classificacao) {\r\n const valorCodigo = form.get(campo).value;\r\n if (valorCodigo.trim().length < 1) {\r\n form.get(campo).setValue('');\r\n form.get(campo).setValidators(Validators.required);\r\n form.get(campo).updateValueAndValidity();\r\n form.get(campo).markAsTouched({onlySelf: true});\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // Função para formatação de casas decimais //\r\n\r\n public static formatarCasasDecimais(valor) {\r\n // Valor string //\r\n if (valor && typeof valor === 'string') {\r\n if (valor.includes(',')) {\r\n const decimalPart = valor.split(',', 2)[1];\r\n const integerPart = valor.split(',', 2)[0];\r\n if (decimalPart.length > 1) {\r\n return valor;\r\n } else {\r\n return integerPart + ',' + decimalPart + '0';\r\n }\r\n } else {\r\n return valor + ',00';\r\n }\r\n }\r\n\r\n // Valor numérico //\r\n if (valor && typeof valor === 'number') {\r\n const num = '' + valor;\r\n if (num.includes('.')) {\r\n const decimalPart = num.split('.', 2)[1];\r\n const integerPart = num.split('.', 2)[0];\r\n if (decimalPart.length > 1) {\r\n return valor;\r\n } else {\r\n return integerPart + ',' + decimalPart + '0';\r\n }\r\n } else {\r\n return valor + ',00';\r\n }\r\n }\r\n }\r\n\r\n public static DataConvertida(data: any): string {\r\n if (data) {\r\n const d = new Date(data);\r\n const novaData = `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(\r\n d.getDate()\r\n )}T${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;\r\n return novaData;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n public static AnoData(data: any): number {\r\n if (data) {\r\n const d = new Date(data);\r\n const novaData = d.getFullYear();\r\n return novaData;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static crawl(a: any, prop: string) {\r\n const keyParts = prop.split('.');\r\n let value = a;\r\n for (const part of keyParts) {\r\n value = value[part];\r\n }\r\n return value;\r\n }\r\n\r\n static parseDate(value: Date | string) {\r\n if (!value) {\r\n return null;\r\n }\r\n if (typeof value === 'string') {\r\n const [datePart, timePart] = value.split('T');\r\n const [yy, MM, dd] = datePart.split('-').map(Number);\r\n const [hh, mm] = timePart.split(':').map(Number);\r\n return new Date(yy, MM - 1, dd, hh, mm);\r\n }\r\n return new Date(value);\r\n }\r\n\r\n strParaDouble(valor: any) {\r\n if (valor) {\r\n return valor.replaceAll(/\\./gi, '').replace(',', '.');\r\n } else {\r\n return 0;\r\n }\r\n }\r\n}\r\n\r\n\r\nfunction pad(value) {\r\n return value.toString().padStart(2, 0);\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PessoasContactos } from '../models/clientes/pessoas-contactos';\r\nimport { GrupoContactoCliDto } from '../models/clientes/grupo-contacto-cli.dto';\r\n\r\n@Pipe({\r\n name: 'agruparContactos',\r\n pure: true\r\n}) export class AgruparContactosPipe implements PipeTransform {\r\n grupoContactos: GrupoContactoCliDto[] = [];\r\n transform(pessoaContacto: PessoasContactos): any {\r\n if(pessoaContacto && pessoaContacto.contactos && pessoaContacto.contactos.length > 0) {\r\n for(let i = 0; i < pessoaContacto.contactos.length; i++) {\r\n if (!this.grupoContactos.find(x => x.idTipoContacto === pessoaContacto.contactos[i].idTipoContacto)) {\r\n this.grupoContactos.push({\r\n idTipoContacto: pessoaContacto.contactos[i].idTipoContacto,\r\n tipoContacto: pessoaContacto.contactos[i].tipoContacto,\r\n contactos: [],\r\n });\r\n }\r\n }\r\n for(let i = 0; i < this.grupoContactos.length; i++){\r\n for(let j = 0; j < pessoaContacto.contactos.length; j++){\r\n if(this.grupoContactos[i].idTipoContacto === pessoaContacto.contactos[j].idTipoContacto){\r\n this.grupoContactos[i].contactos.push({\r\n activo: pessoaContacto.contactos[j].activo,\r\n contacto: pessoaContacto.contactos[j].contacto,\r\n })\r\n }\r\n }\r\n }\r\n }\r\n return this.grupoContactos.sort((a, b) => {\r\n return a.idTipoContacto - b.idTipoContacto;\r\n });\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'all',\r\n pure: true,\r\n})\r\nexport class AllPipe implements PipeTransform {\r\n\r\n transform(items: any[], predicate: (item: any) => boolean): boolean {\r\n if (!items || !predicate) {\r\n return false;\r\n }\r\n return items.every(item => predicate(item));\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'calculoDeVaga'\n})\nexport class CalculoDeVagaPipe implements PipeTransform {\n\n transform( realizacao: any): string| number {\n realizacao?.vagas === 'Ilimitadas' ? 'Ilimitadas' : (parseInt(realizacao?.vagas, 10) - realizacao.qtdInscritos);\n\n const regex = RegExp('^[0-9]+$');\n\n if (realizacao?.vagas ) {\n\n\n return realizacao?.vagas === 'Ilimitadas' ? 'Ilimitadas' : regex.test(realizacao?.vagas) && regex.test(realizacao.qtdInscritos)? \n (parseInt(realizacao?.vagas, 10) - realizacao.qtdInscritos): '';\n } else {\n return '';\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatDate } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'codTipo',\r\n pure: true\r\n}) export class CodTipoPipe implements PipeTransform {\r\n public transform(valor: any, codTipo: string): any {\r\n if (valor) {\r\n if (codTipo === 'BOL') {\r\n return valor ? 'Sim' : 'Não';\r\n }\r\n\r\n if (codTipo === 'DEC') {\r\n return valor;\r\n }\r\n\r\n if (codTipo === 'INT') {\r\n return valor;\r\n }\r\n\r\n if (codTipo === 'TXT') {\r\n return valor;\r\n }\r\n\r\n if (codTipo === 'DAT') {\r\n return formatDate(valor, 'dd/MM/yyyy', 'pt');\r\n }\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'colCriador',\r\n pure : true\r\n})\r\nexport class ColCriadorPipe implements PipeTransform {\r\n\r\n public transform(criador: any, prop: string): any {\r\n if (criador && criador[prop]) {\r\n return criador[prop];\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'colName',\r\n pure: true\r\n})\r\nexport class ColNamePipe implements PipeTransform {\r\n\r\n public transform(valor: any): any {\r\n let precoStr = '';\r\n if (typeof(valor) === 'string') {\r\n if (valor.includes(',')) {\r\n precoStr = valor.replace(',', '.');\r\n return parseFloat(precoStr);\r\n }\r\n } else {\r\n return parseFloat(valor);\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'colTipo',\r\n pure: true\r\n})\r\nexport class ColTipoPipe implements PipeTransform {\r\n\r\n public transform(tipo: any, prop: string): any {\r\n if (tipo && tipo[prop]) {\r\n return tipo[prop];\r\n }\r\n return '';\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'codTitulo',\r\n pure: true\r\n}) export class CodTituloPipe implements PipeTransform {\r\n public transform(valor: any, titulo: string): any {\r\n if (valor) {\r\n\r\n }\r\n return '';\r\n }\r\n}\r\n","export enum IdOpc {\r\n 'NaoObrigatorio' = 1,\r\n 'Opcional' = 2,\r\n 'Obrigatorio' = 3\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { TipoDocumento } from 'app/shared/models/financas/documentos/documentosTipos';\r\n\r\n@Pipe({\r\n name: 'tipoDocumento'\r\n})\r\nexport class TipoDocumentoPipe implements PipeTransform {\r\n\r\n transform( tiposDocumentos: TipoDocumento [], codAreaTesouraria: string): TipoDocumento [] {\r\n\r\n if ( tiposDocumentos?.length > 0 ) {\r\n \r\n tiposDocumentos = tiposDocumentos?.filter(tipoDocumento => \r\n tipoDocumento?.codAreaTesouraria?.toLowerCase() === codAreaTesouraria?.toLowerCase());\r\n }\r\n return tiposDocumentos;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { CompraTipoDocumentoDto } from 'app/shared/models/compras/documentos/compra-tipo-documento.dto';\r\nimport { Documentos } from 'app/shared/models/financas/documentos/documentos';\r\nimport { IdOpc } from '../enum/idOpc';\r\n\r\n@Pipe({\r\n name: 'validarDocumentoCompra'\r\n})\r\nexport class ValidarDocumentoCompraPipe implements PipeTransform {\r\n\r\n transform( formDocumento: FormGroup, \r\n tipoDocSelecionado: CompraTipoDocumentoDto,\r\n \r\n ): unknown {\r\n\r\n let erroDocReferencia: boolean;\r\n if (tipoDocSelecionado.idOpcDocReferencia === IdOpc.Obrigatorio) {\r\n // erroDocReferencia = \r\n }\r\n\r\n\r\n return null;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Util} from 'app/shared/models/generico/util';\r\n\r\n@Pipe({\r\n name: 'convertToFloat'\r\n})\r\nexport class ConvertToFloatPipe implements PipeTransform {\r\n\r\n transform(value: unknown, ...args: unknown[]): unknown {\r\n if (typeof (value) === 'number') {\r\n return Util.DuasCasasDecimais(value);\r\n }\r\n return Util.DuasCasasDecimais(parseFloat(\r\n String(value)\r\n .replaceAll('.', '')\r\n .replace(',', '.')\r\n .replace(/[^0-9.,]/g, ''))\r\n );\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Util } from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'dataReversePt'\r\n})\r\nexport class DataReversePtPipe implements PipeTransform {\r\n \r\n transform( data: Date): string {\r\n if (data) {\r\n return Util.momToDate(data);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\nimport { FaseProcesso } from '../models/processos/processos';\r\n\r\n@Pipe({\r\n name: 'descArtigos',\r\n pure: true\r\n})\r\nexport class DescArtigoPipe implements PipeTransform {\r\n\r\n public transform(fases: FaseProcesso[]): any {\r\n if (fases && fases.length > 0) {\r\n return !!fases.find(f => f.artigos.length > 0);\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DocumentosPendentes} from \"app/shared/models/financas/documentos-por-regularizar/documentos-por-regularizar\";\r\n@Pipe({\r\n name: 'docStatus',\r\n pure: true\r\n})\r\nexport class DocStatusPipe implements PipeTransform {\r\n // https://dev-back.kiami.ao/fin/api/v1/documentos/estadosPagamento\r\n // F - facturado - E- emitido - T - retificado, \r\n public transform(doc: DocumentosPendentes): any {\r\n if(doc && doc.codDocumento){\r\n if(doc.codDocumento === 'A'){ // Anulado\r\n return \"red-500-fg text-white\";\r\n }\r\n if(doc.codDocumento === 'P'){ // Aprovado\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'N'){ // Em análise\"\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'E'){ // Emitido\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'F'){ // Facturado\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'C'){ // Parcialmente Facturado\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'D'){ // Pendente\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'R'){ // Rectificado (Parcialmente)\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'T'){ // Rectificado (Totalmente)\r\n return \"bg-secundary text-white\";\r\n }\r\n if(doc.codDocumento === 'J'){ // Rejeitado\r\n return \"bg-secundary text-white\";\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'duration'\r\n})\r\nexport class DurationPipe implements PipeTransform {\r\n\r\n transform(dataInicio: Date, dataFim: Date) {\r\n return !dataInicio || !dataFim ? '' : Util.duration(new Date(dataInicio), new Date(dataFim));\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Documentos } from '../models/financas/documentos/documentos';\r\nconst COD_VALIDOS = {\r\n 'R': true,\r\n 'T': true,\r\n 'A': true,\r\n};\r\n@Pipe({\r\n name: 'estadoDocValido',\r\n pure: true\r\n}) export class EstadoDocValidoPipe implements PipeTransform {\r\n transform(documento: Documentos): boolean {\r\n if (documento && documento?.codEstadoDocumento) {\r\n return COD_VALIDOS[documento?.codEstadoDocumento.toUpperCase()];\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'excerpt' })\r\nexport class ExcerptPipe implements PipeTransform {\r\n transform(text: string, limit: number = 5) {\r\n if(text.length <= limit)\r\n return text;\r\n return text.substring(0, limit) + '...';\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\nimport { FaseProcesso } from '../models/processos/processos';\r\n\r\n@Pipe({\r\n name: 'faseTemItems',\r\n pure: true\r\n})\r\nexport class FaseTemArtigoPipe implements PipeTransform {\r\n\r\n public transform(fases: FaseProcesso[] = []): boolean {\r\n return !!fases.find(f => f.artigos && f.artigos.length > 0);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterById',\r\n})\r\nexport class FilterByIdPipe implements PipeTransform {\r\n transform(items: any[], id: number): any[] {\r\n if (!items) {\r\n return [];\r\n }\r\n if (!id) {\r\n return items;\r\n }\r\n return items.filter(item => item.id !== id);\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filterFn',\r\n pure: false\r\n})\r\nexport class FilterFnPipe implements PipeTransform {\r\n transform(items: any[], predicate: (item: any, ...args: any[]) => boolean, ...args: any[]): any[] {\r\n if (!items || !predicate) {\r\n return items;\r\n }\r\n return items.filter(item => predicate(item, ...args));\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filtrarPessoaContactoRelacao',\r\n pure: true\r\n})\r\nexport class FiltrarPessoaContactoRelacaoPipe implements PipeTransform {\r\n\r\n transform(pessoasContactosRelacoes:any[], value: string): any[] {\r\n const termo = value;\r\n if (pessoasContactosRelacoes.length > 0 && termo){\r\n pessoasContactosRelacoes = pessoasContactosRelacoes.filter( pessoaContactoRelacao => {\r\n return (pessoaContactoRelacao?.relacao.toLowerCase() as string)\r\n .includes( termo.toLowerCase());\r\n })\r\n }\r\n\r\n return pessoasContactosRelacoes;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filtroEmailsManuais',\r\n pure: true\r\n})\r\nexport class FiltroEmailsManuaisPipe implements PipeTransform {\r\n\r\n transform(emailsManuais:any[], value: string): any[] {\r\n const termo = value;\r\n if (emailsManuais.length > 0 && termo){\r\n emailsManuais = emailsManuais.filter( emailManual => {\r\n return (emailManual?.descricao.toLowerCase() as string)\r\n .includes( termo.toLowerCase());\r\n })\r\n }\r\n\r\n return emailsManuais;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'listaTemMaisDe'\r\n})\r\nexport class ListaTemMaisDePipe implements PipeTransform {\r\n\r\n transform(lista: any [], valor: number): boolean {\r\n if (lista) {\r\n\r\n return lista.length > valor; \r\n }\r\n\r\n return false;\r\n } \r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'formatTime'\r\n})\r\nexport class FormatTimePipe implements PipeTransform {\r\n\r\n transform(value: Date): string {\r\n return Util.formatTimeWithTwoDigits(value);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'numOrdinal'\r\n})\r\nexport class FormatarOrdinalPipe implements PipeTransform {\r\nnumeraisOrdinais = ['Segunda', 'Terceira', 'Quarta', 'Quinta', 'Sexta', 'Sétima',\r\n 'Oitava', 'Nona', 'Décima', 'Décima Primeira', 'Décima Segunda', 'Décima Terceira', 'Décima Quarta',\r\n 'Décima Quinta', 'Décima Sexta', 'Décima Sétima', 'Décima Oitava', 'Décima Nona', 'Vigésima', 'Vigésima Primeira',\r\n 'Vigésima Segunda', 'Vigésima Terceira', 'Vigésima Quarta', 'Vigésima Quinta', 'Vigésima Sexta', 'Vigésima Sétima', 'Vigésima Oitava',\r\n 'Vigésima Nona', 'Trigésima', 'Trigésima Primeira', 'Trigésima Segunda', 'Trigésima Terceira', 'Trigésima Quarta', 'Trigésima Quinta'];\r\n public transform(valor: any): any {\r\n if (valor && typeof(valor) === 'number' && valor < this.numeraisOrdinais.length) {\r\n return this.numeraisOrdinais[valor - 1];\r\n } else {}\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'formatarQuantidade'\r\n})\r\nexport class FormatarQuantidadePipe implements PipeTransform {\r\n\r\n async transform(valor1: string): Promise {\r\n let valor: string = valor1.replace(/\\s/g, '');\r\n let sinal: string = '';\r\n \r\n if (valor) {\r\n if ( valor.includes('-')){\r\n \r\n if (valor.length === 1) {\r\n return '-';\r\n } else if (valor === '') {\r\n return '0,00'\r\n }\r\n\r\n valor = valor.split('-')[1];\r\n valor = parseInt(valor)+'';\r\n valor = await valor.replace(/^[0][0]/g, '').replace(/^[0]/g, '');\r\n sinal = '-';\r\n } \r\n else {\r\n valor = parseInt(valor)+'';\r\n if ( valor === '0'){\r\n return '0,00';\r\n }\r\n }\r\n\r\n if (valor.length > 2) {\r\n let str1: string = '';\r\n let str2: string = '';\r\n let strAux: string = '';\r\n if (!valor.includes('.')) {\r\n str1 = valor.substring((valor.length - 2), valor.length);\r\n str2 = valor.substring(0, (valor.length - 2));\r\n } else {\r\n str1 = valor.split('.')[1];\r\n str2 = valor.split('.')[0];\r\n }\r\n \r\n \r\n for (let i = str2.length; i > 3; i -= 3) {\r\n strAux = '.' + str2.substring((i - 3), i) + strAux;\r\n if (i - 3 < 4) {\r\n strAux = str2.substring(0, (i - 3)) + strAux;\r\n\r\n }\r\n }\r\n if (strAux !==''){\r\n strAux = sinal+' '+strAux + ',' + str1;\r\n }else {\r\n strAux = sinal+' '+str2 + ',' + str1;\r\n \r\n }\r\n return strAux;\r\n } else {\r\n if (valor.length === 2) {\r\n valor = sinal +' 0,'+valor;\r\n\r\n } else\r\n if (valor.length === 1){\r\n\r\n valor = sinal +' 0,0'+valor;\r\n } else {\r\n\r\n valor = valor !==''? sinal +' 0,'+valor: '0,00';\r\n }\r\n }\r\n }\r\n\r\n return valor;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'getmenu',\r\n pure: true\r\n}) export class GetMenuPipe implements PipeTransform {\r\npublic transform( codMenu: string, listaMenus: any[]): any {\r\n if (codMenu && codMenu.length > 0 && listaMenus && listaMenus.length > 0) {\r\n return listaMenus.find((m) => m.codMenu === codMenu).menu;\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: \"getValueByKey\",\r\n pure: false\r\n})\r\nexport class GetValueByKeyPipe implements PipeTransform {\r\n transform(value: any[], id: number, property: string): any {\r\n const filteredObj = value.find(item => {\r\n if (item.id !== undefined) {\r\n return item.id === id;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n if (filteredObj) {\r\n return filteredObj[property];\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'iconFicheiro'\r\n})\r\nexport class IconFicheiroPipe implements PipeTransform {\r\n\r\n transform(valor: any, ...args: unknown[]): any {\r\n let extensaoFicheiro = '';\r\n let partesLinkFicheiro;\r\n if (valor) {\r\n partesLinkFicheiro = valor.nome.split('.');\r\n\r\n if (partesLinkFicheiro?.length > 0) {\r\n extensaoFicheiro = partesLinkFicheiro[partesLinkFicheiro.length - 1];\r\n console.log('Extensao ', extensaoFicheiro)\r\n }\r\n\r\n switch (extensaoFicheiro) {\r\n case 'pdf': return 'assets/images/icons/pdf-icon.svg';\r\n case 'msword': return 'assets/images/file-types/005-documents.svg';\r\n case 'vnd.openxmlformats-officedocument.wordprocessingml.document': return 'assets/images/icons/word-icon.svg';\r\n // Ficheiro Excel\r\n case 'vnd.openxmlformats-officedocument.spreadsheetml.sheet': return 'assets/images/icons/xcel-icon.svg';\r\n // Ficheiro PowerPoint\r\n case 'vnd.openxmlformats-officedocument.presentationml.presentation': return 'assets/images/icons/powerpoint-icon.svg';\r\n case 'jpeg': return valor.link;\r\n case 'jpg': return valor.link;\r\n case 'png': return valor.link;\r\n case 'svg': return valor.link;\r\n case 'webp': return valor.link;\r\n default: return 'assets/images/icons/default_ficheiro.svg';\r\n }\r\n\r\n }\r\n }\r\n}\r\n","import { Input, Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'inputContactoCerto' })\r\nexport class InputContactoCerto implements PipeTransform {\r\n @Input('tipoContacto') tipoContacto: string = '';\r\n\r\n constructor() {}\r\n\r\n transform(valor: any): any {\r\n if (valor && this.tipoContacto) {\r\n return valor === this.tipoContacto;\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'inserirQuebraLinha'\r\n})\r\nexport class InserirQuebraLinhaPipe implements PipeTransform {\r\n rgx = new RegExp('\\n', 'gi');\r\n public transform(valor: any): any {\r\n if (typeof(valor) === 'string') {\r\n const strNova = valor.replace(this.rgx, '
    ');\r\n return strNova;\r\n } else {\r\n return valor;\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'kDate'\r\n})\r\nexport class KDatePipe implements PipeTransform {\r\n\r\n transform(value?: Date | string): string {\r\n const date = Util.parseDate(value);\r\n if (!date) {\r\n return '';\r\n }\r\n const year = date.getFullYear();\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n return `${this.padZero(day)}/${this.padZero(month)}/${year} ${this.padZero(hours)}:${this.padZero(minutes)}`;\r\n }\r\n\r\n private padZero(num: number): string {\r\n return num.toString().padStart(2, '0');\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'labelMunicipio'\r\n})\r\nexport class LabelMunicipioPipe implements PipeTransform {\r\n\r\n public transform(valor: any, ...args): any {\r\n if (valor && typeof(valor.trim()) === 'string' && valor.trim().length > 0 && valor.toUpperCase() === 'AO') {\r\n return 'Município';\r\n } else {\r\n return 'Freguesia';\r\n }\r\n }\r\n\r\n}\r\n","import {Input, Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'labelProvincia'\r\n})\r\nexport class LabelProvinciaPipe implements PipeTransform {\r\n@Input() valorLabel;\r\n public transform(valor: any, ...args): any {\r\n if (valor && typeof(valor.trim()) === 'string' && valor.trim().length > 0 && valor.toUpperCase() === 'AO') {\r\n return 'Pronvícia';\r\n } else {\r\n return 'Distrito';\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'linkYouTube',\r\n pure: true\r\n})\r\nexport class LinkYoutubePipe implements PipeTransform {\r\nconstructor(protected sanitizer: DomSanitizer) {\r\n}\r\n public transform(link: any): any {\r\n let idLinkVideo = '';\r\n let partesLink;\r\n if (link && link.includes('www.youtube.com')) {\r\n partesLink = link.split('=');\r\n if (partesLink?.length > 0) {\r\n idLinkVideo = partesLink[1];\r\n return 'https://i.ytimg.com/vi/' + idLinkVideo + '/hqdefault.jpg?';\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Empresa } from 'app/shared/models/empresa/empresa';\r\n\r\n@Pipe({\r\n name: 'mostrarCodEmpresa',\r\n pure: true\r\n})\r\nexport class MostrarCodEmpresaPipe implements PipeTransform {\r\n\r\n transform(empresas: Empresa[]): boolean {\r\n\r\n if ( empresas && empresas?.length >1 ){\r\n let tamanho = 0;\r\n for( let i = 0; i < empresas?.length; i++) {\r\n if ( empresas[i]?.estado?.toLowerCase() ===\"Activo\".toLowerCase()){\r\n tamanho ++;\r\n }\r\n if ( tamanho > 1) {\r\n return true;\r\n }\r\n }\r\n } else {\r\n\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'msgExpiracao',\r\n pure: true\r\n})export class MsgExpiracaoPipe implements PipeTransform {\r\n public transform(valor: number): any {\r\n let msgExpiracao = '';\r\n switch (true) {\r\n case (valor > 1): {\r\n msgExpiracao = ` A sua licença expira em ${valor} dias!`;\r\n break;\r\n }\r\n case (valor === 1): {\r\n msgExpiracao = ` A sua licença expira em ${valor} dia!`;\r\n break;\r\n }\r\n case (valor === 0): {\r\n msgExpiracao = ` A sua licença expira hoje!`;\r\n break;\r\n }\r\n case (valor === -1): {\r\n msgExpiracao = ` A sua licença expirou há ${Math.abs(valor)} dia!`;\r\n break;\r\n }\r\n case (valor < -1): {\r\n msgExpiracao = ` A sua licença expirou há ${Math.abs(valor)} dias!`;\r\n break;\r\n }\r\n default: msgExpiracao = ` A sua licença expirou!`;\r\n break;\r\n }\r\n return msgExpiracao;\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'parseValue'\r\n})\r\nexport class ParseValuePipe implements PipeTransform {\r\n\r\n transform(value: string, type: string): string {\r\n return Util.parseValue(value, type).toString();\r\n }\r\n\r\n}\r\n","import { Input, Pipe, PipeTransform } from '@angular/core';\r\nimport { PessoasContactosRelacoes } from '../models/clientes/pessoas-contactos-relacoes';\r\n\r\n@Pipe({\r\n name: 'codPerson',\r\n pure: true\r\n}) export class PorPersonalidadePipe implements PipeTransform {\r\n\r\n transform(valores: PessoasContactosRelacoes[], codigo: string): any {\r\n if (valores.length > 0 && codigo) {\r\n return valores.filter(valor => valor.codPersonJuridica === codigo);\r\n }\r\n return [];\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'printWithBr'\r\n})\r\nexport class PrintWithBrPipe implements PipeTransform {\r\n\r\n public transform(valor: any): any {\r\n if (typeof(valor) === 'string') {\r\n const frase = valor.split('\\n');\r\n let fraseFormata = '';\r\n frase.forEach((item, index) => {\r\n if (index < frase.length - 2) {\r\n fraseFormata += item + '
    ';\r\n } else {fraseFormata += item; }\r\n });\r\n return fraseFormata;\r\n\r\n } else {\r\n return valor;\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: 'relativeTime' })\r\nexport class RelativeTimePipe implements PipeTransform {\r\n transform(value: Date) {\r\n if(!(value instanceof Date))\r\n value = new Date(value);\r\n\r\n let seconds: number = Math.floor(((new Date()).getTime() - value.getTime()) / 1000);\r\n let interval: number = Math.floor(seconds / 31536000);\r\n \r\n if (interval > 1) {\r\n return interval + \" years ago\";\r\n }\r\n interval = Math.floor(seconds / 2592000);\r\n if (interval > 1) {\r\n return interval + \" months ago\";\r\n }\r\n interval = Math.floor(seconds / 86400);\r\n if (interval > 1) {\r\n return interval + \" days ago\";\r\n }\r\n interval = Math.floor(seconds / 3600);\r\n if (interval > 1) {\r\n return interval + \" hours ago\";\r\n }\r\n interval = Math.floor(seconds / 60);\r\n if (interval > 1) {\r\n return interval + \" minutes ago\";\r\n }\r\n return Math.floor(seconds) + \" seconds ago\";\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe',\r\n pure: true\r\n})\r\nexport class SafePipe implements PipeTransform {\r\nconstructor(protected sanitizer: DomSanitizer) {\r\n}\r\n public transform(valor: any, tipo: string): SafeHtml | SafeStyle | SafeUrl| SafeResourceUrl | SafeScript {\r\n switch (tipo) {\r\n case 'html' : return this.sanitizer.bypassSecurityTrustHtml(valor);\r\n case 'style' : return this.sanitizer.bypassSecurityTrustStyle(valor);\r\n case 'script' : return this.sanitizer.bypassSecurityTrustScript(valor);\r\n case 'url' : return this.sanitizer.bypassSecurityTrustUrl(valor);\r\n case 'resourceUrl' : return this.sanitizer.bypassSecurityTrustResourceUrl(valor);\r\n default: return;\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe(\r\n {\r\n name: 'bgFicheiro',\r\n pure: true\r\n }\r\n)\r\nexport class SetBgFicheiroPipe implements PipeTransform{\r\n public transform(valor: any, ...args): any {\r\n let extensao = '';\r\n if (valor) {\r\n let splittedString = valor.split('.');\r\n extensao = splittedString[splittedString.length - 1];\r\n if (extensao.toLowerCase() === 'svg') {\r\n return 'bg-light-gray';\r\n }\r\n }\r\n }\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {CommonModule} from '@angular/common';\r\n\r\nimport {RelativeTimePipe} from './relative-time.pipe';\r\nimport {ExcerptPipe} from './excerpt.pipe';\r\nimport {GetValueByKeyPipe} from './get-value-by-key.pipe';\r\nimport {SafePipe} from './safe.pipe';\r\nimport {StringFloatPipe} from './string-float.pipe';\r\nimport {FormatarOrdinalPipe} from './formatar-ordinal.pipe';\r\nimport {TipoFicheiroPipe} from './tipo-ficheiro.pipe';\r\nimport {InserirQuebraLinhaPipe} from './inserir-quebra-linha.pipe';\r\nimport {PrintWithBrPipe} from './print-with-br.pipe';\r\nimport {LabelProvinciaPipe} from './label-provincia.pipe';\r\nimport {LabelMunicipioPipe} from './label-municipio.pipe';\r\nimport {StrNormalCasePipe} from './str-normal-case.pipe';\r\nimport {LinkYoutubePipe} from './link-youtube.pipe';\r\nimport {TamanhoFicheiroPipe} from './tamanhoFicheiro.pipe';\r\nimport {IconFicheiroPipe} from './icon-ficheiro.pipe';\r\nimport {SetBgFicheiroPipe} from './set-bg-ficheiro.pipe';\r\nimport {DataReversePtPipe} from './data-reverse-pt.pipe';\r\nimport {FilterByIdPipe} from './filter-by-id.pipe';\r\nimport {FormatarQuantidadePipe} from './formatar-quantidade.pipe';\r\nimport {CalculoDeVagaPipe} from './calculo-vagas-disponivel/calculo-de-vaga.pipe';\r\nimport {GetMenuPipe} from './get-menu/get-menu.pipe';\r\nimport {MostrarCodEmpresaPipe} from './mostrar-codEmpresa/mostrar-cod-empresa.pipe';\r\nimport {TipoDocumentoPipe} from './compras/tipo-documento.pipe';\r\nimport {ValidarDocumentoCompraPipe} from './compras/validar-documento.ts/validar-documento-compra.pipe';\r\nimport {ListaTemMaisDePipe} from './financas-shared/listas/lista-tem-mais-de.pipe';\r\nimport {FiltrarPessoaContactoRelacaoPipe} from './filtros-auto-complete/pipe/filtrar-pessoa-contacto-relacao.pipe';\r\nimport {FiltroEmailsManuaisPipe} from './filtros-auto-complete/pipe/filtro-emails-manuais.pipe';\r\nimport {ColNamePipe} from './col-name.pipe';\r\nimport {ColCriadorPipe} from './col-criador.pipe';\r\nimport {ColTipoPipe} from './col-tipo.pipe';\r\nimport {CodTipoPipe} from './cod-tipo.pipe';\r\nimport {CodTituloPipe} from './col-titulo.pipe';\r\nimport {MsgExpiracaoPipe} from './msg-expiracao.pipe';\r\nimport {FilterFnPipe} from './filter-fn.pipe';\r\nimport { SomeFnPipe } from './some-fn.pipe';\r\nimport { SumPipe } from './sum.pipe';\r\nimport { TabTotalizadorPipe } from './tabela-totalizador/tab-totalizador.pipe';\r\nimport { AllPipe } from './all.pipe';\r\nimport { ConvertToFloatPipe } from './convert-to-float.pipe';\r\nimport { ParseValuePipe } from './parse-value.pipe';\r\nimport { AgruparContactosPipe } from '@pipes/agrupar-contactos.pipe';\r\nimport { InputContactoCerto } from '@pipes/input-contacto-certo';\r\nimport { PorPersonalidadePipe } from '@pipes/por-personalidade.pipe';\r\nimport {DocStatusPipe} from '@pipes/doc-status.pipe';\r\nimport { DurationPipe } from './duration.pipe';\r\nimport { FormatTimePipe } from './format-time.pipe';\r\nimport { KDatePipe } from './k-date.pipe';\r\nimport { EstadoDocValidoPipe } from '@pipes/estado-doc-valido.pipe';\r\nimport { TabStockTotalPipe } from '@pipes/tabela-totalizador/tab-stock-total.pipe';\r\nimport { TabStockExistenciaPipe } from '@pipes/tabela-totalizador/tab-stock-existencia.pipe';\r\nimport { TabTotalTempoPipe } from '@pipes/tabela-totalizador/tab-total-tempo.pipe';\r\nimport { FaseTemArtigoPipe } from '@pipes/fase-tem-artigo.pipe';\r\nimport { DescArtigoPipe } from '@pipes/desc-artigo.pipe';\r\nimport { TemProcIdArtigoPipe } from '@pipes/tem-proc-id-artigo.pipe';\r\n\r\nconst pipes = [\r\n RelativeTimePipe,\r\n ExcerptPipe,\r\n GetValueByKeyPipe,\r\n StringFloatPipe,\r\n FormatarOrdinalPipe,\r\n TipoFicheiroPipe,\r\n InserirQuebraLinhaPipe,\r\n PrintWithBrPipe,\r\n LabelProvinciaPipe,\r\n LabelMunicipioPipe,\r\n StrNormalCasePipe,\r\n LinkYoutubePipe,\r\n TamanhoFicheiroPipe,\r\n IconFicheiroPipe,\r\n SetBgFicheiroPipe,\r\n CalculoDeVagaPipe,\r\n GetMenuPipe,\r\n MostrarCodEmpresaPipe,\r\n TipoDocumentoPipe,\r\n ValidarDocumentoCompraPipe,\r\n ListaTemMaisDePipe,\r\n FiltrarPessoaContactoRelacaoPipe,\r\n FiltroEmailsManuaisPipe,\r\n ColNamePipe,\r\n ColCriadorPipe,\r\n ColTipoPipe,\r\n CodTipoPipe,\r\n CodTituloPipe,\r\n MsgExpiracaoPipe,\r\n AgruparContactosPipe,\r\n InputContactoCerto,\r\n PorPersonalidadePipe,\r\n DocStatusPipe,\r\n EstadoDocValidoPipe,\r\n TabStockTotalPipe,\r\n TabStockExistenciaPipe,\r\n TabTotalTempoPipe,\r\n FaseTemArtigoPipe,\r\n DescArtigoPipe,\r\n TemProcIdArtigoPipe,\r\n FaseTemArtigoPipe\r\n];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n pipes,\r\n SafePipe,\r\n DataReversePtPipe,\r\n FilterByIdPipe,\r\n FormatarQuantidadePipe,\r\n FilterFnPipe,\r\n SomeFnPipe,\r\n SumPipe,\r\n TabTotalizadorPipe,\r\n AllPipe,\r\n ConvertToFloatPipe,\r\n ParseValuePipe,\r\n DurationPipe,\r\n FormatTimePipe,\r\n KDatePipe,\r\n\r\n ],\r\n exports: [\r\n pipes,\r\n SafePipe,\r\n FilterByIdPipe,\r\n FilterFnPipe,\r\n SomeFnPipe,\r\n SumPipe,\r\n TabTotalizadorPipe,\r\n AllPipe,\r\n ConvertToFloatPipe,\r\n ParseValuePipe,\r\n DurationPipe,\r\n FormatTimePipe,\r\n KDatePipe\r\n ]\r\n})\r\nexport class SharedPipesModule {\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'someFn'\r\n})\r\nexport class SomeFnPipe implements PipeTransform {\r\n\r\n transform(items: any[], predicate: (item: any, ...args: any[]) => boolean, ...args: any[]): boolean {\r\n if (!items || !predicate) {\r\n return false;\r\n }\r\n return items.some(item => predicate(item, ...args));\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'toNormalCase'\r\n})\r\nexport class StrNormalCasePipe implements PipeTransform {\r\nconstructor(protected sanitizer: DomSanitizer) {\r\n}\r\n public transform(valor: any): any {\r\n if (valor) {\r\n const wholeStr = valor.toLowerCase();\r\n return wholeStr.substring(0, 1).toUpperCase() + wholeStr.substring(1);\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'strToFloat'\r\n})\r\nexport class StringFloatPipe implements PipeTransform {\r\n\r\n public transform(valor: any): any {\r\n let precoStr = '';\r\n if (typeof(valor) === 'string') {\r\n if (valor.includes(',')) {\r\n precoStr = valor.replace(',', '.');\r\n return parseFloat(precoStr);\r\n }\r\n } else {\r\n return parseFloat(valor);\r\n }\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {Util} from '../models/generico/util';\r\n\r\n@Pipe({\r\n name: 'sum'\r\n})\r\nexport class SumPipe implements PipeTransform {\r\n\r\n transform(value: string | number, value2: string | number): number {\r\n return Util.convertToFloat(value) + Util.convertToFloat(value2);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\ninterface MovimentoStock {\r\n codArmazem: string;\r\n codArtigo: string;\r\n codDocumento: string;\r\n codEmpresa: string;\r\n codMovimento: string;\r\n dataCriacao: Date | string;\r\n dataMovimento: Date | string;\r\n idArmazem: number;\r\n idArtigo: number;\r\n idEmpresa: number;\r\n idMovimento: number;\r\n movimento: string;\r\n nomeArtigo: string;\r\n preco: number;\r\n quantidade: number;\r\n total: number;\r\n unidadeMedida: string;\r\n url: string;\r\n utilizador: any;\r\n cliente: any;\r\n}\r\n@Pipe({\r\n name: 'tabStockExistencia',\r\n pure: true\r\n}) export class TabStockExistenciaPipe implements PipeTransform {\r\ntransform(movimentos: any[] = [], propKey?: string) {\r\n const totalSaidas: number = this.calcTotalMovimentos(movimentos, 'S', propKey);\r\n const totalEntradas: number = this.calcTotalMovimentos(movimentos, 'E', propKey);\r\n return totalEntradas - totalSaidas;\r\n}\r\n\r\ncalcTotalMovimentos(dados: any[]= [], codMov: string, propKey: string) {\r\n let movimentos: MovimentoStock[] = [];\r\n let total = 0;\r\n if (dados && dados.length && dados.length > 0) {\r\n movimentos = dados.filter(m => m.codMovimento === codMov);\r\n total = movimentos.reduce((a, obj) => {\r\n return a + obj[propKey];\r\n }, 0);\r\n }\r\n return total;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\ninterface MovimentoStock {\r\n codArmazem: string;\r\n codArtigo: string;\r\n codDocumento: string;\r\n codEmpresa: string;\r\n codMovimento: string;\r\n dataCriacao: Date | string;\r\n dataMovimento: Date | string;\r\n idArmazem: number;\r\n idArtigo: number;\r\n idEmpresa: number;\r\n idMovimento: number;\r\n movimento: string;\r\n nomeArtigo: string;\r\n preco: number;\r\n quantidade: number;\r\n total: number;\r\n unidadeMedida: string;\r\n url: string;\r\n utilizador: any;\r\n cliente: any;\r\n}\r\n@Pipe({\r\n name: 'tabStockTotal',\r\n pure: true\r\n}) export class TabStockTotalPipe implements PipeTransform {\r\ntransform(dados: any[] = [], codMov?: string, propKey?: string) {\r\nlet movimentos: MovimentoStock[] = [];\r\nlet total = 0;\r\nif (dados && dados.length && dados.length > 0) {\r\n movimentos = dados.filter(m => m.codMovimento === codMov);\r\n total = movimentos.reduce((a, obj) => {\r\n return a + obj[propKey];\r\n }, 0);\r\n}\r\n return total;\r\n}\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tabTotalTempo',\r\n pure: true,\r\n})\r\nexport class TabTotalTempoPipe implements PipeTransform {\r\n transform(listaDados: any[], prop?: string): any {\r\n let total = 0;\r\n if (listaDados && listaDados.length && listaDados.length > 0) {\r\n total = listaDados.reduce((a, obj) => {\r\n return a + obj['tempo'];\r\n }, 0);\r\n }\r\n return total;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tabTotalizador',\r\n pure: true,\r\n})\r\nexport class TabTotalizadorPipe implements PipeTransform {\r\n transform(listaDados: any[], prop: string): any {\r\n let total = 0;\r\n if (listaDados && listaDados.length && listaDados.length > 0) {\r\n if (prop && prop.length && prop.length > 0) {\r\n if (prop === 'pendenteTotal') {\r\n total = listaDados.reduce((a, obj) => {\r\n return a + (obj[prop] + obj['pendenteIva']);\r\n }, 0);\r\n } else {\r\n total = listaDados.reduce((a, obj) => {\r\n return a + obj[prop];\r\n }, 0);\r\n }\r\n\r\n }\r\n }\r\n return total;\r\n }\r\n\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'tamanho'\r\n}) export class TamanhoFicheiroPipe implements PipeTransform {\r\n public transform(valor: any): any {\r\n return Math.round(valor / (1024 ** 2) * Math.pow(10, 2)) / Math.pow(10, 2);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'temProcIdArtigo',\r\n pure: true,\r\n}) export class TemProcIdArtigoPipe implements PipeTransform {\r\n transform(artigos: any): any {\r\n if (artigos.length > 0) {\r\n return artigos.filter(a => a.idProcessoArtigo && a.idProcessoArtigo > 0).map((artigo, indice) => {\r\n return {\r\n ...artigo,\r\n idItemTab: indice + 1,\r\n };\r\n });\r\n }\r\n return [];\r\n }\r\n}\r\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport {DomSanitizer} from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'tipoFicheiro',\r\n pure: true\r\n})\r\nexport class TipoFicheiroPipe implements PipeTransform {\r\n constructor(protected sanitizer: DomSanitizer) {\r\n }\r\n\r\n public transform(valor: any): any {\r\n let extensaoFicheiro = '';\r\n let metaDadosFicheiro = '';\r\n let partesLinkFicheiro;\r\n if (valor) {\r\n if (valor.split(';')[0] && valor.split(';')[0].length > 0) {\r\n console.log('', valor.split(';')[0]);\r\n metaDadosFicheiro = valor.split(';')[0];\r\n partesLinkFicheiro = metaDadosFicheiro.split('/');\r\n } else {\r\n console.log('', valor.split('.'));\r\n if (valor.split('.') && valor.split('.').length > 0) {\r\n partesLinkFicheiro = valor.split('.');\r\n }\r\n }\r\n\r\n if (partesLinkFicheiro?.length > 0) {\r\n const parts = partesLinkFicheiro[partesLinkFicheiro.length - 1].split('.');\r\n extensaoFicheiro = parts[parts.length - 1];\r\n }\r\n\r\n switch (extensaoFicheiro) {\r\n case 'pdf':\r\n return 'assets/images/icons/pdf-icon.svg';\r\n case 'msword':\r\n return 'assets/images/file-types/005-documents.svg';\r\n case 'docx':\r\n return 'assets/images/file-types/005-documents.svg';\r\n case 'vnd.openxmlformats-officedocument.wordprocessingml.document':\r\n return 'assets/images/icons/word-icon.svg';\r\n // Ficheiro Excel :: 'vnd.openxmlformats-officedocument.spreadsheetml.sheet' => 'sheet'\r\n case 'sheet':\r\n return 'assets/images/icons/xcel-icon.svg';\r\n case 'xlsx':\r\n return 'assets/images/icons/xcel-icon.svg';\r\n // Ficheiro PowerPoint\r\n case 'vnd.openxmlformats-officedocument.presentationml.presentation':\r\n return 'assets/images/icons/powerpoint-icon.svg';\r\n case 'pptx':\r\n return 'assets/images/icons/powerpoint-icon.svg';\r\n case 'jpeg':\r\n return valor;\r\n case 'jpg':\r\n return valor;\r\n case 'png':\r\n return valor;\r\n case 'svg':\r\n return valor;\r\n case 'webp':\r\n return valor;\r\n default:\r\n return 'assets/images/icons/default_ficheiro.svg';\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n Input\r\n} from \"@angular/core\";\r\nimport { FormControl } from \"@angular/forms\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { debounceTime } from \"rxjs/operators\";\r\nimport { SearchService } from \"../search.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\n\r\n@Component({\r\n selector: \"egret-search-input-over\",\r\n templateUrl: \"./search-input-over.component.html\",\r\n styleUrls: [\"./search-input-over.component.scss\"]\r\n})\r\nexport class SearchInputOverComponent implements OnInit, OnDestroy {\r\n isOpen: boolean;\r\n @Input('resultPage') resultPage: string;\r\n @Input('placeholder') placeholder: string = \"Search here\";\r\n @Output(\"search\") search = new EventEmitter();\r\n searchCtrl = new FormControl();\r\n searchCtrlSub: Subscription;\r\n constructor(\r\n private searchService: SearchService,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchCtrl.valueChanges.pipe(debounceTime(200))\r\n .subscribe(value => {\r\n this.search.emit(value);\r\n this.searchService.searchTerm.next(value);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.searchCtrlSub) {\r\n this.searchCtrlSub.unsubscribe();\r\n }\r\n }\r\n navigateToResult() {\r\n if(this.resultPage) {\r\n this.router.navigateByUrl(this.resultPage);\r\n }\r\n }\r\n open() {\r\n this.isOpen = true;\r\n this.navigateToResult();\r\n }\r\n close() {\r\n this.isOpen = false;\r\n }\r\n toggle() {\r\n this.isOpen = !this.isOpen;\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n \r\n
    \r\n close\r\n
    \r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SearchInputOverComponent } from \"./search-input-over/search-input-over.component\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\n\r\n@NgModule({\r\n declarations: [SearchInputOverComponent],\r\n exports: [SearchInputOverComponent],\r\n imports: [ReactiveFormsModule, MatIconModule, MatButtonModule, CommonModule]\r\n})\r\nexport class SearchModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SearchService {\r\n public searchTerm: BehaviorSubject = new BehaviorSubject('');\r\n public searchTerm$: Observable = this.searchTerm.asObservable();\r\n\r\n constructor() {}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {\r\n CalcularItensTotalDto,\r\n DocumentoCalculoRetencoesDto,\r\n DocumentoCalculoTotaisDto,\r\n FADocumentosItensDto,\r\n FINRetencoesDto\r\n} from './Dtos/DtosCalculoFin';\r\nimport {Util} from 'app/shared/models/generico/util';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CalculosFinancasService {\r\n constructor() {\r\n }\r\n\r\n CalcularRetencoes(dadosCalcular: any): DocumentoCalculoRetencoesDto {\r\n const dadosCalcularDto = converterParaCamelCase(dadosCalcular);\r\n\r\n let Total: number = 0;\r\n if (dadosCalcularDto.retencoesCLiente !== null) {\r\n for (let item of dadosCalcularDto.retencoesCLiente) {\r\n Total += this.CalcularRetencao(dadosCalcularDto.itens, item);\r\n }\r\n }\r\n dadosCalcularDto.valorRetencao = Total;\r\n return dadosCalcularDto;\r\n }\r\n\r\n private CalcularRetencao(itens: any, retencao: FINRetencoesDto): number {\r\n let itensTemp = itens.filter((i) => i.idRetencao === retencao.idRetencao);\r\n\r\n if (itensTemp.length <= 0) {\r\n return 0;\r\n }\r\n\r\n let TotalItem: number = itensTemp.reduce(\r\n (acc, curr) => acc + (Util.convertToFloat(curr.subTotal) ?? 0),\r\n 0\r\n );\r\n let montate: number = 0;\r\n\r\n if (TotalItem > retencao.valorMinimo) {\r\n montate = TotalItem * (retencao.valorPercentual / 100);\r\n }\r\n\r\n return Math.round(montate * 100) / 100;\r\n }\r\n\r\n calcularTotais(dadosCalcularDto: DocumentoCalculoTotaisDto): any {\r\n let dadosCalcular = converterParaCamelCase(dadosCalcularDto);\r\n dadosCalcular.totalGeral = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce((acc, item) => acc + (item.totalGeral || 0), 0)\r\n );\r\n dadosCalcular.totalIliq = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce((acc, item) => acc + (item.subTotalIliq || 0), 0)\r\n );\r\n dadosCalcular.totalDescontos = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce((acc, item) => acc + item.desconto, 0)\r\n );\r\n dadosCalcular.totalIva = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce((acc, item) => acc + (item.imposto || 0), 0)\r\n );\r\n\r\n dadosCalcular.totalIliq += dadosCalcular.totalDescontos;\r\n\r\n if (dadosCalcular.conversaoDirecta) {\r\n return this.conversaoDirectaItem(dadosCalcular);\r\n } else {\r\n return this.ConversaoIndirectaItem(dadosCalcular);\r\n }\r\n }\r\n\r\n CalcularTotais(dadosCalcularDto: any): DocumentoCalculoTotaisDto {\r\n let dadosCalcular = converterParaCamelCase(dadosCalcularDto);\r\n\r\n dadosCalcular.totalGeral = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce(\r\n (acc, curr) => acc + Util.convertToFloat(curr.totalGeral),\r\n 0\r\n )\r\n );\r\n\r\n dadosCalcular.totalIliq = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce(\r\n (acc, curr) => acc + Util.convertToFloat(curr.subTotalIliq),\r\n 0\r\n )\r\n );\r\n\r\n dadosCalcular.totalDescontos = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce(\r\n (acc, curr) => acc + Util.convertToFloat(curr.desconto),\r\n 0\r\n )\r\n );\r\n dadosCalcular.totalIva = this.DuasCasasDecimais(\r\n dadosCalcular.itens.reduce(\r\n (acc, curr) => acc + Util.convertToFloat(curr.imposto),\r\n 0\r\n )\r\n );\r\n\r\n\r\n dadosCalcular = dadosCalcular.conversaoDirecta == true\r\n ? this.conversaoDirecta(dadosCalcular)\r\n : this.ConversaoIndirecta(dadosCalcular);\r\n return dadosCalcular;\r\n }\r\n\r\n CalcularTotaisMoedaEstrangeira(\r\n dadosCalcularDto: any\r\n ): DocumentoCalculoTotaisDto {\r\n let dadosCalcular = converterParaCamelCase(dadosCalcularDto);\r\n\r\n dadosCalcular = dadosCalcular.conversaoDirecta\r\n ? this.conversaoDirecta(dadosCalcular)\r\n : this.ConversaoIndirecta(dadosCalcular);\r\n\r\n return dadosCalcular;\r\n }\r\n\r\n private conversaoDirecta(\r\n dadosCalcular: DocumentoCalculoTotaisDto\r\n ): DocumentoCalculoTotaisDto {\r\n if (\r\n !dadosCalcular.conversaoDirecta ||\r\n dadosCalcular.taxaCambio == null ||\r\n dadosCalcular.taxaCambio <= 0\r\n ) {\r\n return dadosCalcular;\r\n }\r\n\r\n let taxacambio: number = dadosCalcular.taxaCambio;\r\n\r\n dadosCalcular.totalIvaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIva * taxacambio\r\n );\r\n dadosCalcular.totalMoedaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIliq * taxacambio\r\n );\r\n dadosCalcular.totalIliqCliente =\r\n dadosCalcular.totalMoedaCliente + dadosCalcular.totalIvaCliente;\r\n\r\n return dadosCalcular;\r\n }\r\n\r\n private ConversaoIndirecta(\r\n dadosCalcular: DocumentoCalculoTotaisDto\r\n ): DocumentoCalculoTotaisDto {\r\n if (\r\n dadosCalcular?.conversaoDirecta ||\r\n dadosCalcular?.taxaCambio == null ||\r\n dadosCalcular?.taxaCambio <= 0\r\n ) {\r\n return dadosCalcular;\r\n }\r\n\r\n let taxacambio: number = dadosCalcular.taxaCambio;\r\n\r\n dadosCalcular.totalIvaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIva / taxacambio\r\n );\r\n dadosCalcular.totalMoedaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIliq / taxacambio\r\n );\r\n dadosCalcular.totalIliqCliente =\r\n dadosCalcular.totalMoedaCliente + dadosCalcular.totalIvaCliente;\r\n\r\n return dadosCalcular;\r\n }\r\n\r\n //itens\r\n CalcularValoresIten(item: FADocumentosItensDto): FADocumentosItensDto {\r\n item = this.CalcularItem(item);\r\n return item;\r\n }\r\n\r\n CalcularValoresItens(itens: FADocumentosItensDto[]): FADocumentosItensDto[] {\r\n const listaItem: FADocumentosItensDto[] = [];\r\n for (const item of itens) {\r\n listaItem.push(this.CalcularItem(item));\r\n }\r\n\r\n return listaItem;\r\n }\r\n\r\n CalcularItem(item: FADocumentosItensDto): FADocumentosItensDto {\r\n item.quantidade = this.TresCasasDecimais(item.quantidade);\r\n item.impostoDedutivelPerc = this.DuasCasasDecimais(item.impostoDedutivelPerc);\r\n item.descontoPerc = this.DuasCasasDecimais(item.descontoPerc);\r\n item.taxaImposto = this.DuasCasasDecimais(item.taxaImposto);\r\n item.preco = this.DuasCasasDecimais(item.preco);\r\n item.desconto = this.CalcularDesconto(item);\r\n item.subTotal = this.DuasCasasDecimais(item.quantidade * item.preco - item.desconto);\r\n item.imposto = this.DuasCasasDecimais((item.taxaImposto / 100) * item.subTotal);\r\n item.total = this.DuasCasasDecimais(item.subTotal);\r\n item.totalGeral = this.DuasCasasDecimais(item.subTotal + item.imposto);\r\n item.subTotalIliq = this.DuasCasasDecimais(item.quantidade * item.preco);\r\n return item;\r\n }\r\n\r\n \r\n CalcularItemPOS(item: any): any {\r\n item.quantidade = this.TresCasasDecimais(item.quantidade);\r\n item.impostoDedutivelPerc = this.DuasCasasDecimais(item.impostoDedutivelPerc);\r\n item.descontoPerc = this.DuasCasasDecimais(item.descontoPerc);\r\n if(item.descontoPerc>100){\r\n item.descontoPerc=100;\r\n }\r\n item.taxaImposto = this.DuasCasasDecimais(item.taxaImposto);\r\n item.preco = this.DuasCasasDecimais(item.preco);\r\n item.desconto = this.CalcularDesconto(item);\r\n item.subTotal = this.DuasCasasDecimais(item.quantidade * item.preco - item.desconto);\r\n item.imposto = this.DuasCasasDecimais((item.taxaImposto / 100) * item.subTotal);\r\n item.totalGeral = this.DuasCasasDecimais(item.subTotal + item.imposto);\r\n item.subTotalIliq = this.DuasCasasDecimais(item.quantidade * item.preco);\r\n item.total = item.subTotal;\r\n return item;\r\n }\r\n\r\n CalcularDesconto(item: FADocumentosItensDto): number {\r\n if (item.descontoPerc <= 100) {\r\n const desconto = Util.convertToFloat(item.quantidade) * Util.convertToFloat(item.preco) * (Util.convertToFloat(item.descontoPerc) / 100);\r\n return desconto;\r\n }\r\n const desconto = Util.convertToFloat(item.quantidade) * Util.convertToFloat(item.preco) * 1 || 0;\r\n return desconto;\r\n }\r\n\r\n CalcularValoresItem(dadosCalcularDto: CalcularItensTotalDto): any {\r\n let calculo = converterParaCamelCase(dadosCalcularDto);\r\n\r\n const itemResp = this.CalcularValoresIten(calculo.item);\r\n const item = itemResp;\r\n const index = calculo.itens.findIndex((i) => i.idItem === item.idItem);\r\n calculo.itens[index] = itemResp;\r\n calculo.totais.itens = calculo.itens.filter((a) => a.idArtigo > 0);\r\n const totais = this.CalcularTotais(calculo.totais);\r\n\r\n const retorno = {item, totais: totais};\r\n return retorno;\r\n }\r\n\r\n CalcularValoresItensTotais(dadosCalcularDto: CalcularItensTotalDto): any {\r\n let calculo = converterParaCamelCase(dadosCalcularDto);\r\n const itens = this.CalcularValoresItens(calculo.itens);\r\n\r\n calculo.totais.itens = itens.filter((a) => a.idArtigo > 0);\r\n const totais = this.CalcularTotais(calculo.totais);\r\n const retorno = {itens, totais: totais};\r\n return retorno;\r\n }\r\n\r\n conversaoDirectaItem(dadosCalcular: DocumentoCalculoTotaisDto): any {\r\n if (\r\n !dadosCalcular.conversaoDirecta ||\r\n dadosCalcular.taxaCambio === null ||\r\n dadosCalcular.taxaCambio <= 0\r\n ) {\r\n return dadosCalcular;\r\n }\r\n\r\n const taxacambio = dadosCalcular.taxaCambio;\r\n\r\n dadosCalcular.totalIvaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIva * taxacambio\r\n );\r\n dadosCalcular.totalMoedaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIliq * taxacambio\r\n );\r\n dadosCalcular.totalIliqCliente =\r\n dadosCalcular.totalMoedaCliente + dadosCalcular.totalIvaCliente;\r\n\r\n return dadosCalcular;\r\n }\r\n\r\n ConversaoIndirectaItem(\r\n dadosCalcular: DocumentoCalculoTotaisDto\r\n ): DocumentoCalculoTotaisDto {\r\n if (\r\n !dadosCalcular.conversaoDirecta ||\r\n dadosCalcular.taxaCambio === null ||\r\n dadosCalcular.taxaCambio <= 0\r\n ) {\r\n return dadosCalcular;\r\n }\r\n\r\n const taxacambio = dadosCalcular.taxaCambio;\r\n\r\n dadosCalcular.totalIvaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIva / taxacambio\r\n );\r\n dadosCalcular.totalMoedaCliente = this.DuasCasasDecimais(\r\n dadosCalcular.totalIliq / taxacambio\r\n );\r\n dadosCalcular.totalIliqCliente =\r\n dadosCalcular.totalMoedaCliente + dadosCalcular.totalIvaCliente;\r\n\r\n return dadosCalcular;\r\n }\r\n\r\n retornarPrecoArtigo(precos: any[], posicaoPreco: number): number {\r\n if (precos?.length <= 0) {\r\n return 0;\r\n }\r\n let precoDef = precos[0];\r\n switch (posicaoPreco) {\r\n case 1:\r\n return retornarValorPosicao1(precoDef);\r\n case 2:\r\n return retornarValorPosicao2(precoDef);\r\n case 3:\r\n return retornarValorPosicao3(precoDef);\r\n default:\r\n return retornarValorPosicao1(precoDef);\r\n }\r\n }\r\n\r\n DuasCasasDecimaisTeste(valor?: number | string): number {\r\n if (typeof valor === 'string') {\r\n // Tenta converter a string em um número.\r\n valor = valor.replace(/\\./g, '').replace(',', '.');\r\n valor = parseFloat(valor);\r\n }\r\n\r\n if (typeof valor !== 'number' || isNaN(valor)) {\r\n // Se o valor não é um número válido, retorne zero ou outro valor padrão.\r\n return 0;\r\n }\r\n return Math.round((valor || 0) * 100) / 100;\r\n }\r\n TresCasasDecimais(valor?: number | string): number {\r\n if (typeof valor === 'string') {\r\n // Tenta converter a string em um número.\r\n valor = valor.replace('.', '');\r\n valor = parseFloat(valor.replace(',', '.'));\r\n }\r\n \r\n if (typeof valor !== 'number' || isNaN(valor)) {\r\n // Se o valor não é um número válido, retorne zero ou outro valor padrão.\r\n return 0;\r\n }\r\n \r\n return Math.round((valor || 0) * 1000) / 1000;\r\n }\r\n \r\n DuasCasasDecimais(valor?: number | string): number {\r\n if (typeof valor === 'string') {\r\n // Tenta converter a string em um número.\r\n valor = valor.replace(/\\./g, '').replace(',', '.');\r\n valor = parseFloat(valor);\r\n }\r\n\r\n if (typeof valor !== 'number' || isNaN(valor)) {\r\n // Se o valor não é um número válido, retorne zero ou outro valor padrão.\r\n return 0;\r\n }\r\n return Math.round((valor || 0) * 100) / 100;\r\n }\r\n}\r\n\r\nfunction converterParaCamelCase(obj: any): any {\r\n if (obj === null || typeof obj !== 'object') {\r\n return obj;\r\n }\r\n\r\n if (Array.isArray(obj)) {\r\n return obj.map((item) => converterParaCamelCase(item));\r\n }\r\n\r\n const camelCaseObj: { [key: string]: any } = {};\r\n\r\n for (const key in obj) {\r\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\r\n const camelCaseKey = key.charAt(0).toLowerCase() + key.slice(1);\r\n camelCaseObj[camelCaseKey] = converterParaCamelCase(obj[key]);\r\n }\r\n }\r\n\r\n return camelCaseObj;\r\n}\r\n\r\nfunction retornarValorPosicao1(precoDef: any): number {\r\n return precoDef.preco1;\r\n}\r\n\r\nfunction retornarValorPosicao2(precoDef: any): number {\r\n return precoDef?.preco2 < 0 ? retornarValorPosicao1(precoDef) : precoDef.preco2;\r\n}\r\n\r\nfunction retornarValorPosicao3(precoDef: any): number {\r\n return precoDef?.preco3 < 0 ? retornarValorPosicao2(precoDef) : precoDef.preco3;\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport {Aplicacao} from 'app/shared/models/aplicacao/aplicacao';\r\nimport {environment} from 'environments/environment';\r\nimport {EmailLog} from 'app/shared/models/aplicacao/emailLog';\r\nimport {Perfis} from 'app/shared/models/aplicacao/perfis';\r\nimport {Pais} from 'app/shared/models/recursos-humanos/pais';\r\nimport {Provincia} from 'app/shared/models/recursos-humanos/provincia';\r\nimport { filter, shareReplay, tap } from 'rxjs/operators';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {Idioma} from '../../models/aplicacao/idioma';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token')\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AplicacaoService {\r\n private aplicacao$ = new BehaviorSubject(null);\r\n baseUrlAplicacao: string;\r\n baseUrlCliente: string;\r\n InstalacaoUrl: string;\r\n gereStockBS: BehaviorSubject = new BehaviorSubject(null);\r\n $dadosApp = new BehaviorSubject(null);\r\n gereStock$: Observable = this.gereStockBS.asObservable();\r\n\r\n codPais: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n ) {\r\n this.baseUrlAplicacao = `${environment.apiAplicacao}`;\r\n this.baseUrlCliente = `${environment.apiClientes}`;\r\n this.InstalacaoUrl = `${environment.instalacao}`;\r\n const gereStockJson = localStorage.getItem('gereStocks');\r\n // const gereStock = gereStockJson !== null ? JSON.parse(gereStockJson) : null;\r\n // this.gereStockBS = new BehaviorSubject(gereStock);\r\n this.gereStock$ = this.gereStockBS.asObservable();\r\n this.codPais = localStorage.getItem('codPais') ? localStorage.getItem('codPais') : '';\r\n this.gereStock$.subscribe(s => localStorage.setItem('gereStocks', String(s)));\r\n\r\n }\r\n\r\n public getCodPais(): string {\r\n return this.codPais;\r\n }\r\n\r\n public getGereStocks() {\r\n return this.gereStockBS.value;\r\n }\r\n\r\n getInstalacao(nomeInstalacao: string): Observable {\r\n const modelo = {NomeLinkInstalacao: nomeInstalacao};\r\n return this.http.post(this.InstalacaoUrl, modelo);\r\n }\r\n\r\n //#region Área feita antes de 01-04-2021\r\n getLogotipoApp(): Observable {\r\n return this.http.get(this.baseUrlAplicacao + 'aplicacao/logotipo', httpOptions);\r\n }\r\n\r\n getMkEmails() {\r\n return this.http.get>(this.baseUrlAplicacao + 'Mykiami/emails', httpOptions);\r\n }\r\n\r\n putMkEmail(req: any) {\r\n return this.http.post>(this.baseUrlAplicacao + 'Mykiami/emails', req, httpOptions);\r\n }\r\n\r\n getAplicacao(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/aplicacao', httpOptions)\r\n .pipe(shareReplay(1), tap(res => this.$dadosApp.next(res)));\r\n }\r\n\r\n getAplicacaoGeral(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/aplicacao', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getMeses(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/meses', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getMenus(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/menus/1', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getMoedas(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/moedas', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getTiposEmpregos(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/TiposEmprego', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getIdiomas(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/idiomas', httpOptions)\r\n .pipe(shareReplay(1));\r\n\r\n }\r\n\r\n getTodosIdiomas(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/todosIdiomas', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getIdiomaAplicacao() {\r\n return this.http.get(this.baseUrlAplicacao + 'aplicacao/idiomas/utilizadores', httpOptions);\r\n }\r\n\r\n getProeficiencia(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/proeficienciaidiomas', httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarPermissoes(modelo: any) {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPermissoes(): Observable {\r\n return this.http.get(this.baseUrlAplicacao + 'permissoes', httpOptions);\r\n }\r\n\r\n\r\n getPermissoesTipos(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/tipos', httpOptions)\r\n .pipe();\r\n }\r\n\r\n // ECARVALHO - Retirar\r\n getPermissoesAplicacao(idUtilizador: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/' + idUtilizador, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPermissoesUtilizador(idUtilizador: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlAplicacao + 'permissoes/utilizador/' + idUtilizador,\r\n httpOptions\r\n );\r\n }\r\n\r\n getPermissoesUtilizadorArea(idUtilizador: number, codArea: string) {\r\n httpOptions['params'] = {codArea};\r\n return this.http.get>(`${this.baseUrlAplicacao}permissoes/areas/${idUtilizador}`, httpOptions);\r\n }\r\n\r\n getPaises(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/paises/true', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getEstados(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/estados', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getProvincias(codPais: string): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/provincias/' + codPais, httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getGrausAcademicos(): Observable {\r\n\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'Aplicacao/GrausAcademicos', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getMunicipios(codPais: string, idProvincia: number) {\r\n if (codPais && codPais.length > 0 && idProvincia > 0) {\r\n return this.http\r\n .get(\r\n this.baseUrlAplicacao + 'aplicacao/municipios/' + codPais + '/' + idProvincia,\r\n httpOptions\r\n )\r\n .pipe(shareReplay(1));\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getZonas(idMunicipio: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlAplicacao + 'aplicacao/zonas/' + idMunicipio,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getSexos(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/sexos', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getEstadosCivis(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/estadoscivis', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getCategoriasContactos(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/categoriascontactos', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getTiposContactos(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/tiposcontactos', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n getOpcoesInsercao(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/opcoesinsercao', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getUnidades(idTipo: number): Observable {\r\n return this.http.get(this.baseUrlAplicacao + 'aplicacao/unidadesmedidas/' + idTipo, httpOptions);\r\n }\r\n\r\n getEmails(\r\n activo: boolean,\r\n disponivelEmails: boolean\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlAplicacao +\r\n 'emails/emailenvio/' +\r\n activo +\r\n '/' +\r\n disponivelEmails,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getLogs() {\r\n return this.http.get>(`${this.baseUrlAplicacao}emails/logs`, httpOptions);\r\n }\r\n\r\n getLog(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'emails/emaillog/' + id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n removerLog(modelo: any) {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'emails/emaillog/remover', modelo, httpOptions);\r\n }\r\n\r\n removerLogLote(logs: number[]) {\r\n return this.http.post>(`${this.baseUrlAplicacao}emails/log/remover`, logs);\r\n }\r\n\r\n getEmail(idEmail: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'emails/emailenvio/' + idEmail, httpOptions)\r\n .pipe();\r\n }\r\n\r\n servidoresEmail(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'emails/servidoresEmail/', httpOptions)\r\n .pipe();\r\n }\r\n\r\n servidorEmail(idservidor: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'emails/servidorEmail/' + idservidor, httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n salvarEmail(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'emails/emailenvio/salvar', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n alterarSenhaEmail(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'emails/emailenvio/alterarSenhaEmail', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n enviarEmail(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'emails/enviaremail', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n enviarEmailCliente(req: any) {\r\n return this.http.post>(this.baseUrlAplicacao + 'emails/enviaremail/clientes', req, httpOptions);\r\n }\r\n\r\n enviarEmailTeste(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'emails/teste', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n editarAplicacao(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'aplicacao/editarAplicacao/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getAppIcones(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'aplicacao/icones', httpOptions)\r\n .pipe();\r\n }\r\n\r\n //#endregion\r\n //#region Ária de Permissões do Perfil\r\n\r\n getPerfis(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/perfil', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPerfil(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/perfil/' + id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPerfisPermissoes(): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/perfil/permissoes', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPerfilPermissoes(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/perfil/permissoes/' + id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPerfilUtilizador(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlAplicacao + 'permissoes/perfil/utilizador/' + id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarPerfil(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes/perfil', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarPerfil(idPerfil: number): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes/perfil/eliminar', idPerfil, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarPermissaoPerfil(idPerfilPermissao: number): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes/perfil/permissao/eliminar', idPerfilPermissao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarPerfilPermissoes(modelo: any) {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes/perfil/gravarPermissoes', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarPerfilUtilizador(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlAplicacao + 'permissoes/perfil/utilizador', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getmetodosPagRec(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/comercial/metodosPagRec', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCondicoesPagamento(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/comercial/condicoespagamento', httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n getAreasPermissoes() {\r\n return this.http.get>(this.baseUrlAplicacao + 'aplicacao/areas');\r\n }\r\n\r\n //#endregion\r\n putPermissaoEq(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/equipamentos/lote', req);\r\n }\r\n\r\n putPermissaoFi(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/financas/lote', req);\r\n }\r\n\r\n putPermissaoAr(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/artigos/lote', req);\r\n }\r\n\r\n getPermissaoEq(idUtilizador: number, codPermissao: string) {\r\n return this.http.get>(this.baseUrlAplicacao + `permissoes/${idUtilizador}/equipamentos`, {params: {codPermissao}});\r\n }\r\n\r\n deletePermissoes(codArea: string, permissoes: number[]) {\r\n return this.http.post>(this.baseUrlAplicacao + `permissoes/remover-lote`, permissoes, {params: {codArea}});\r\n }\r\n\r\n putPermissaoFaPos(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/facturacao-pos/lote', req);\r\n }\r\n\r\n putPermissaoAdmin(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/admin/lote', req);\r\n }\r\n\r\n putPermissaoCl(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/entidades/lote', req);\r\n }\r\n\r\n putPermissaoPr(req: any[]) {\r\n return this.http.post>(this.baseUrlAplicacao + 'permissoes/processos/lote', req);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Aplicacao } from 'app/shared/models/aplicacao/aplicacao';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppStoreService {\r\n public aplicacao$ = new BehaviorSubject(null);\r\n public aplicacao = false;\r\n\r\n constructor() {}\r\n\r\n setAplicacao(aplicacao: Aplicacao) {\r\n if(!this.aplicacao){\r\n this.aplicacao$.next(aplicacao);\r\n }\r\n }\r\n\r\n getAplicacao(): Observable {\r\n this.aplicacao=true;\r\n return this.aplicacao$.asObservable();\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Menu} from 'app/shared/models/aplicacao/menu';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport {map} from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MenuDataService {\r\n private listaMenus$ = new BehaviorSubject([]);\r\n moduloComActivo = new BehaviorSubject(false);\r\n constructor() {\r\n }\r\n setListaMenus(menus: Menu[]) {\r\n this.listaMenus$.next(menus);\r\n }\r\n getListaMenus(): Observable {\r\n return this.listaMenus$.asObservable().pipe(map(ms => {\r\n ms.forEach(m => m.codMenu = m.codMenu.trim());\r\n return ms;\r\n }));\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Permissoes } from \"app/shared/models/aplicacao/permissoes\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PermissoesDataService {\r\n private listaPermissoes$ = new BehaviorSubject([]);\r\n\r\n constructor() {}\r\n\r\n setListaPermissoes(permissoes: Permissoes[]) {\r\n this.listaPermissoes$.next(permissoes);\r\n }\r\n\r\n getListaPermissoes(): Observable {\r\n return this.listaPermissoes$.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpClient,\r\n HttpHeaders,\r\n HttpErrorResponse,\r\n} from '@angular/common/http';\r\nimport { Empresa } from 'app/shared/models/empresa/empresa';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, shareReplay } from 'rxjs/operators';\r\nimport { EstadosEmpresa } from 'app/shared/models/empresa/estadosempresa';\r\nimport { environment } from 'environments/environment';\r\nimport { RegimeIvaDto } from '../../models/financas/iva/regime-iva.dto';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class EmpresaService {\r\n baseUrl: string;\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiAplicacao}`;\r\n }\r\n\r\n getEmpresa(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/' + id, httpOptions);\r\n }\r\n criarNovaEmpresa(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/criarNovaEmpresa', httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n criarEmpresaConfig(modelo:any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/empresas/criarEmpresaConfig',modelo, httpOptions)\r\n .pipe();\r\n }\r\n \r\n //\r\n getEmpresas(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEmpresasActivas(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/activas', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadosEmpresa(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/estados', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n BuscarCodRegimeIva(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/regimeIva', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n buscarCodRegimeIvaEmpresas(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/regimeIvaEmpresas', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getRegimesIVA(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/empresas/regimeIva', httpOptions)\r\n .pipe(shareReplay(1));\r\n }\r\n\r\n salvar(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/empresas/', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n editar(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/empresas/editar', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n remover(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/empresas/remover', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n}\r\n","import {environment} from 'environments/environment';\r\n\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {map} from 'rxjs/operators';\r\nimport {JwtHelperService} from '@auth0/angular-jwt';\r\nimport {LocalStoreService} from '../local-store.service';\r\nimport {Utilizadores} from 'app/shared/models/aplicacao/utilizadores';\r\nimport {BehaviorSubject, Observable} from 'rxjs';\r\nimport {Permissoes} from 'app/shared/models/aplicacao/permissoes';\r\nimport {PermissoesDataService} from './data/permissoes-data.service';\r\nimport {ModalSessaoExpirada} from '../../components/modal-sessao-expirada/modal-sessao-expirada';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {Router} from '@angular/router';\r\nimport {AplicacaoService} from './aplicacao.service';\r\nimport { PosUtilityService } from 'app/views/pos/pos-services/pos-utility.service';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoginService {\r\n jwtHelper = new JwtHelperService();\r\n decodedToken: any;\r\n utilizadorDto: any;\r\n\r\n permissoesUtilizador: Permissoes[] = [];\r\n\r\n mudarPassord: any;\r\n baseUrl: string;\r\n token: string;\r\n isAuthenticated: boolean;\r\n user: Utilizadores;\r\n user$ = (new BehaviorSubject(null));\r\n signingIn: boolean;\r\n return: string;\r\n APP_USER = '_utilizador';\r\n\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private router: Router,\r\n private aplicacaoService: AplicacaoService,\r\n private posUtilityService: PosUtilityService,\r\n private localSore: LocalStoreService, private permissoesDataService: PermissoesDataService, private modal: MatDialog,) {\r\n this.baseUrl = `${environment.apiAplicacao}`;\r\n }\r\n\r\n login(model: any): Observable {\r\n return this.http.post(this.baseUrl + 'aplicacao/login', model).pipe(\r\n map(\r\n (response: any) => {\r\n const user = response.objecto;\r\n if (user?.token) {\r\n localStorage.setItem('token', user.token);\r\n this.decodedToken = this.jwtHelper.decodeToken(user.token);\r\n this.utilizadorDto = user.utilizador;\r\n localStorage.setItem('@u53r1d$', this.decodedToken.nameid);\r\n this.mudarPassord = user.mudarPass;\r\n localStorage.setItem('utilizadorSessao', JSON.stringify(user.utilizadorSessao));\r\n }\r\n },\r\n (error) => {\r\n console.log('Error', error);\r\n this.mudarPassord = false;\r\n }\r\n )\r\n );\r\n }\r\n\r\n getPermissoes(): any {\r\n if (localStorage.getItem('permissoesUtilizador') != null) {\r\n return JSON.parse(localStorage.getItem('permissoesUtilizador'));\r\n }\r\n return [];\r\n }\r\n\r\n getUtilizadorSessao(): any {\r\n if (localStorage.getItem('utilizadorSessao') != null) {\r\n return JSON.parse(localStorage.getItem('utilizadorSessao'));\r\n }\r\n return null;\r\n }\r\n\r\n getSessaoUtilizador() {\r\n if (window.localStorage && localStorage.getItem('utilizadorSessao')) {\r\n return JSON.parse(localStorage.getItem('utilizadorSessao'));\r\n }\r\n return null;\r\n }\r\n\r\n loggedIn() {\r\n if (localStorage.getItem('token') != null) {\r\n const token = localStorage.getItem('token');\r\n return !this.jwtHelper.isTokenExpired(token);\r\n }\r\n return false;\r\n }\r\n\r\n setUserAndToken(token: string, user: Utilizadores, isAuthenticated: boolean) {\r\n this.isAuthenticated = isAuthenticated;\r\n this.token = token;\r\n this.user = user;\r\n this.user$.next(user);\r\n this.localSore.setItem(this.APP_USER, user);\r\n }\r\n\r\n logout() {\r\n localStorage.removeItem('token');\r\n localStorage.removeItem('artigos');\r\n localStorage.removeItem('processos');\r\n localStorage.removeItem('financas');\r\n localStorage.removeItem('gereStocks');\r\n localStorage.removeItem('clean_cache');\r\n localStorage.removeItem('dashLoaderActivo');\r\n this.posUtilityService.clearLocalTerminal();\r\n this.aplicacaoService.gereStockBS.next(null);\r\n this.router.navigate([localStorage.getItem('urlAtual')]);\r\n }\r\n\r\n terminarSessao(erro) {\r\n const modalRef = this.modal.open(ModalSessaoExpirada, {\r\n minWidth: '300px',\r\n minHeight: '100px',\r\n data: {mensagem: erro.error},\r\n disableClose: true\r\n });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders,} from '@angular/common/http';\r\nimport {Observable, throwError} from 'rxjs';\r\nimport {catchError, share} from 'rxjs/operators';\r\nimport {environment} from 'environments/environment';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json',\r\n }),\r\n};\r\nconst httpOptionsPost = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UtilizadoresService {\r\n baseUrl: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiAplicacao}`;\r\n }\r\n\r\n getUtilizadores() {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/utilizadores', httpOptions)\r\n .pipe(catchError(null), share());\r\n }\r\n\r\n getUtilizadoresBase() {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/utilizadores/listabase', httpOptions)\r\n .pipe(catchError(null), share());\r\n }\r\n\r\n getUtilizadoresEstados(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/utilizadores/estados', httpOptions)\r\n .pipe(catchError(null), share());\r\n }\r\n\r\n getUtilizador(id: number): Observable {\r\n return this.http.get(\r\n this.baseUrl + 'aplicacao/utilizadores/' + id,\r\n httpOptions\r\n );\r\n }\r\n\r\n removerUtilizador(model: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrl + 'aplicacao/utilizadores/remover/',\r\n model,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n alterarPasswordLogin(model: any): Observable {\r\n return this.http.post(\r\n this.baseUrl + 'aplicacao/utilizadores/alterarPassword/login',\r\n model,\r\n httpOptions\r\n );\r\n }\r\n\r\n alterarPasswordPerfil(model: any): Observable {\r\n return this.http.post(\r\n this.baseUrl + 'aplicacao/utilizadores/alterarPassword/perfil',\r\n model,\r\n httpOptions\r\n );\r\n }\r\n\r\n alterarPassword(model: any): Observable {\r\n return this.http.post(\r\n this.baseUrl + 'aplicacao/utilizadores/alterarPassword/',\r\n model,\r\n httpOptions\r\n );\r\n }\r\n\r\n salvarUtilizador(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/utilizadores/', model, httpOptionsPost)\r\n .pipe();\r\n }\r\n\r\n removerPermissoesutilizador(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/utilizadores/removerPermissoesutilizador', model, httpOptionsPost)\r\n .pipe();\r\n }\r\n\r\n adicionarPermissoesutilizador(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/utilizadores/adicionarPermissoesutilizador', model, httpOptionsPost)\r\n .pipe();\r\n }\r\n\r\n editarUtilizador(model: any) {\r\n return this.http\r\n .post(\r\n this.baseUrl + 'aplicacao/utilizadores/editar/',\r\n model,\r\n httpOptionsPost\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n editarPerfil(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'aplicacao/perfil/editar/', model, httpOptionsPost)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n editarLayoutUtilizador(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrl + 'aplicacao/utilizadores/editarLayout',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n recuperarSenha(email: string): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrl + 'aplicacao/utilizadores/recuperar-senha/' + email,\r\n null\r\n );\r\n }\r\n\r\n mudarPass(req: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrl + 'aplicacao/utilizadores/password',\r\n req\r\n );\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n}\r\n","import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Component, Inject } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-confirm',\r\n template: `

    {{ data.title }}

    \r\n
    {{ data.message }}
    \r\n
    \r\n \r\n  \r\n \r\n \r\n
    `,\r\n})\r\nexport class AppComfirmComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data:any\r\n ) {}\r\n}","import { Observable } from 'rxjs';\r\nimport { MatDialogRef, MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { AppComfirmComponent } from './app-confirm.component';\r\n\r\ninterface confirmData {\r\n title?: string,\r\n message?: string\r\n}\r\n\r\n@Injectable()\r\nexport class AppConfirmService {\r\n\r\n constructor(private dialog: MatDialog) { }\r\n\r\n public confirm(data: confirmData = {}): Observable {\r\n data.title = data.title || 'Confirm';\r\n data.message = data.message || 'Are you sure?';\r\n let dialogRef: MatDialogRef;\r\n dialogRef = this.dialog.open(AppComfirmComponent, {\r\n width: '380px',\r\n disableClose: true,\r\n data: {title: data.title, message: data.message}\r\n });\r\n return dialogRef.afterClosed();\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-app-loader',\r\n templateUrl: './app-loader.component.html',\r\n styleUrls: ['./app-loader.component.css']\r\n})\r\nexport class AppLoaderComponent implements OnInit {\r\n title;\r\n message;\r\n constructor(public dialogRef: MatDialogRef) {}\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
    \r\n
    {{ title }}
    \r\n
    \r\n \r\n
    \r\n
    \r\n","import { Injectable } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { AppLoaderComponent } from './app-loader.component';\r\n\r\ninterface Config {\r\n width?: string\r\n}\r\n\r\n@Injectable()\r\nexport class AppLoaderService {\r\n dialogRef: MatDialogRef;\r\n constructor(private dialog: MatDialog) { }\r\n\r\n public open(title: string = 'Please wait', config: Config = {width: '200px'}): Observable {\r\n this.dialogRef = this.dialog.open(AppLoaderComponent, { disableClose: true, backdropClass: 'light-backdrop'});\r\n this.dialogRef.updateSize(config.width);\r\n this.dialogRef.componentInstance.title = title;\r\n return this.dialogRef.afterClosed();\r\n }\r\n\r\n public close() {\r\n if(this.dialogRef)\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {environment} from 'environments/environment';\r\nimport {Observable} from 'rxjs';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json'\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EstadoArtigosService {\r\n baseUrl: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiArtigos}`;\r\n }\r\n\r\n// Estados\r\n getEstados(idClassificacao: number) {\r\n return this.http.get(this.baseUrl + 'estado/' + idClassificacao, httpOptions);\r\n }\r\n\r\n getEstado(idEstado: number): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'estado/get/' + idEstado, httpOptions);\r\n }\r\n\r\n getTodosEstados(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'estado', httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarEstado(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'estado', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n ActivarDesactivar(model: any): Observable {\r\n\r\n return this.http\r\n .post(this.baseUrl + 'estado/activarDesactivar', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarEstadoArtigo(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'estado/Artigo', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarEstado(idEstado: number): Observable {\r\n return this.http\r\n .post(this.baseUrl + 'estado/eliminar/', idEstado, httpOptions)\r\n .pipe();\r\n }\r\n\r\n// Fim Estados\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\r\nimport {environment} from 'environments/environment';\r\nimport {ArtigoClassificacao} from '../../models/artigos/artigo-classificacao';\r\nimport {BehaviorSubject, Observable, of, throwError} from 'rxjs';\r\nimport {catchError} from 'rxjs/internal/operators/catchError';\r\nimport {ArtigosTipos} from 'app/shared/models/artigos/artigostipos';\r\nimport {ArtigosVarianteOpcoes} from 'app/shared/models/artigos/artigovarianteopcoes';\r\nimport {ArtigosVariante} from 'app/shared/models/artigos/artigosvariantes';\r\nimport {ArtigosFacturacao} from 'app/shared/models/artigos/artigosfacturacao';\r\nimport {ArtigosConfiguracaoVariante} from 'app/shared/models/artigos/artigoconfiguracaovariante';\r\nimport {ArtigosTiposVariante} from 'app/shared/models/artigos/artigotiposvariantes';\r\nimport {ArtigosValores} from 'app/shared/models/artigos/artigosvalores';\r\nimport {Fornecedor} from 'app/shared/models/fornecedores/fornecedor';\r\nimport {ArtigoNatureza} from '../../models/artigos/artigoNatureza';\r\nimport {VarianteConunas} from 'app/shared/models/artigos/varianteartigocolunas';\r\nimport {Fornecedores} from 'app/shared/models/fornecedores/fornecedores';\r\nimport {ArParametrizacao} from 'app/shared/models/artigos/arparametrizacao';\r\nimport {TipoArmazem} from 'app/shared/models/artigos/tipoarmazem';\r\nimport {Armazem} from 'app/shared/models/artigos/armazem';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {ArtigoLista} from '../../models/artigos/artigoLista';\r\nimport {LoginService} from '../aplicacao-service/login.service';\r\nimport {UtilizadorSessao} from '../../models/aplicacao/utilizador-sessao';\r\nimport {Util} from '../../models/generico/util';\r\nimport {Evento} from '../../models/artigos/emails/evento';\r\nimport {EmailAutomatico} from '../../models/artigos/emails/email-automatico';\r\nimport {EstadoFluxo} from '../../../views/artigos/renovavel-form/renovavel-form.component';\r\nimport {tap} from 'rxjs/operators';\r\nimport {Unidade} from '../../models/aplicacao/unidade';\r\nimport {GaCampo} from '../../models/gestao-arquivos/ga-tipo';\r\nimport {TagInscricao} from '../../../views/artigos/inscricao/inscricao.component';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json'\r\n })\r\n};\r\n\r\nexport class Ciclo {\r\n static DIARIO = 1;\r\n static SEMANAL = 2;\r\n static QUINZENAL = 3;\r\n static MENSAL = 4;\r\n static BIMESTRAL = 5;\r\n static TRIMESTRAL = 6;\r\n static SEMESTRAL = 7;\r\n static ANUAL = 8;\r\n static BIENAL = 9;\r\n static QUINQUENAL = 10;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ArtigosService {\r\n\r\n url: string;\r\n artigosFA$ = new BehaviorSubject(null);\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService) {\r\n this.url = `${environment.apiArtigos}`;\r\n }\r\n\r\n getClassificacoesArtigos(): Observable {\r\n return this.http\r\n .get(this.url + 'classificacoes', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getArtigosPorNatureza(natureza: string): Observable {\r\n return this.http.get(`${this.url}artigo/natureza/${natureza}`);\r\n }\r\n\r\n ImpressaoEtiqueta(modelo: any): Observable {\r\n return this.http.post(`${this.url}artigo/etiquetas`, modelo);\r\n }\r\n\r\n ImpressaoEtiquetaDescktop(modelo: any): Observable {\r\n return this.http.post(`http://localhost:7000/api/imprimir/`, modelo, httpOptions).pipe();\r\n }\r\n\r\n removerClassificacao(idclassificacao: any) {\r\n return this.http.post(this.url + 'classificacoes/parametrizacao/' + idclassificacao, null, httpOptions);\r\n }\r\n\r\n getParametrizacao(): Observable {\r\n return this.http\r\n .get(this.url + 'classificacoes/parametrizacoes', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarParametrizacao(modelo: any): Observable {\r\n return this.http\r\n .post(this.url + 'classificacoes/parametrizacao', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getClassificacaoArtigo(id: number): Observable {\r\n return this.http\r\n .get(this.url + 'classificacoes/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVariantes(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.url + 'variantes/' + idClassificacao, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVariantesArtigo(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.url + 'variantes/artigo/' + idClassificacao, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVarianteColunas(idVariante: number): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/variante/colunas/' + idVariante,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getValores(\r\n idClassificacao: number,\r\n codIdioma: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/valores/' + idClassificacao + '/' + codIdioma,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVarianteOpcoes(\r\n idClassificacao: number\r\n ): Observable {\r\n return this.http\r\n .get(this.url + 'varianteOpcoes/' + idClassificacao, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVarianteTipos(\r\n idClassificacao: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/varianteTipo/' + idClassificacao,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getCategorias(idClassificacao: number, codIdioma: string): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'categorias/' + idClassificacao + '/' + codIdioma,\r\n httpOptions\r\n );\r\n // .pipe(catchError(null));\r\n }\r\n\r\n getCategoria(idCategoria: number): Observable {\r\n return this.http\r\n .get(this.url + 'categorias/' + idCategoria, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n eliminarCategoria(idCategoria: number): Observable {\r\n return this.http\r\n .post(this.url + 'categorias/eliminar', idCategoria, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCategoriasTexto(\r\n idClassificacao: number,\r\n idCategoria: number,\r\n codIdioma: string\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url +\r\n 'categorias/' +\r\n idClassificacao +\r\n '/' +\r\n idCategoria +\r\n '/' +\r\n codIdioma,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getArtigo(idArtigo: number, codIdioma: string) {\r\n return this.http\r\n .post(this.url + 'artigo/' + codIdioma + '/' + idArtigo,\r\n this.loginService.getUtilizadorSessao(),\r\n httpOptions);\r\n }\r\n\r\n getArtigos(model: any): Observable {\r\n model.utilizadorSessao = this.loginService.getUtilizadorSessao();\r\n return this.http.post(this.url + 'artigos/filtrar', model, httpOptions).pipe(catchError(err => {\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: err.error?.mensagem || ''}) : throwError(err);\r\n }));\r\n }\r\n\r\n getTodosArtigos() {\r\n return this.http.get>(`${this.url}artigos/todos`);\r\n }\r\n\r\n getArtigoIva(CodPais: string): Observable {\r\n return this.http\r\n .get(this.url + 'getIvaArtigo/' + CodPais, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n salvarCategoria(model: any) {\r\n return this.http\r\n .post(this.url + 'categorias/', model, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n // Tipo de Artigo\r\n getTipos(idClassificacao: number, codIdioma: string): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'tipo/tipos/' + idClassificacao + '/' + codIdioma,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n filtrarTipos(filtro: any) {\r\n return this.http.post(this.url + 'tipo/tipos/filtrar', filtro);\r\n }\r\n\r\n getTipo(idTipo: number, codIdioma: string): Observable {\r\n return this.http\r\n .get(this.url + 'tipo/' + idTipo + '/' + codIdioma, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipotexto(idTipo: number, codIdioma: string): Observable {\r\n return this.http\r\n .get(this.url + 'tipo/texto/' + idTipo + '/' + codIdioma, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n salvarTipo(model: any): Observable {\r\n return this.http.post(this.url + 'tipo/', model, httpOptions).pipe();\r\n }\r\n\r\n editarTipo(idTipo: number, model: ArtigosTipos) {\r\n return this.http\r\n .put(this.url + 'tipo/' + idTipo, model, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n removerTipoArtigo(idTipo: number) {\r\n return this.http.post(this.url + 'tipo/eliminar/', idTipo, httpOptions);\r\n }\r\n\r\n removerTipo(idTipo: number) {\r\n return this.http\r\n .post(this.url + 'tipo/' + idTipo, httpOptions);\r\n }\r\n\r\n // salvaArtigo(model: any): Observable {\r\n // model.utilizadorSessao = JSON.parse(\r\n // localStorage.getItem(\"utilizadorSessao\")\r\n // );\r\n // return this.http.post(this.baseUrl + \"artigo\", model, httpOptions).pipe();\r\n // }\r\n\r\n salvaArtigo(model: any): Observable {\r\n model.utilizadorSessao = JSON.parse(\r\n localStorage.getItem('utilizadorSessao')\r\n );\r\n return this.http.post(this.url + `artigo/${model.CodTipoArtigo}`, model, httpOptions).pipe();\r\n }\r\n\r\n gravarArtigo(model: any): Observable {\r\n model.utilizadorSessao = JSON.parse(\r\n localStorage.getItem('utilizadorSessao')\r\n );\r\n return this.http.post(this.url + 'artigo', model, httpOptions).pipe();\r\n }\r\n\r\n editarArtigo(model: any): Observable {\r\n model.utilizadorSessao = JSON.parse(\r\n localStorage.getItem('utilizadorSessao')\r\n );\r\n return this.http.post(this.url + 'deprecated/artigo', model, httpOptions).pipe();\r\n }\r\n\r\n removerArtigo(idArtigo: number): Observable {\r\n return this.http\r\n .post(this.url + 'removerArtigo', {idArtigo, utilizadorSessao: this.loginService.getUtilizadorSessao()}, httpOptions);\r\n }\r\n\r\n getArtigosVendas(modelo) {\r\n return this.http.post>(this.url + 'artigos/vendas', modelo);\r\n }\r\n\r\n getArtigosCompras(modelo) {\r\n return this.http.post>(this.url + 'artigos/compras', modelo);\r\n }\r\n\r\n getArtigosFacturacao(codIdioma: number): Observable {\r\n return this.http\r\n .get(this.url + 'facturacao/' + codIdioma, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n\r\n salvarOpcaoVariante(model: any) {\r\n return this.http\r\n .post(this.url + 'variantes/varianteOpcoes/', model, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n salvarVariante(model: any) {\r\n return this.http\r\n .post(this.url + 'variantes/', model, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVarianteOpcao(idVarianteOpcao: number): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/varianteOpcao/' + idVarianteOpcao,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVariante(idVariante: number): Observable {\r\n return this.http\r\n .get(this.url + 'variantes/variante/' + idVariante, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getVarianteConfiguracoes(\r\n idVariante: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/varianteConfiguracao/' + idVariante,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n // Fornecedores\r\n getFornecedores(codIdioma: string): Observable {\r\n return this.http\r\n .get(this.url + 'fornecedores/' + codIdioma, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarArtigosFornecedor(model: any): Observable {\r\n return this.http\r\n .post(this.url + 'fornecedores/', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getArtigosFornecedor(\r\n idFornecedor: number,\r\n codIdioma: string\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'fornecedores/' + idFornecedor + '/' + codIdioma,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n removerArtigosFornecedor(modelo: any) {\r\n return this.http.post(\r\n this.url + 'fornecedores/remover/',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n\r\n // Fim Fornecedores\r\n getArtigoVariante(idArtigo: number): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'variantes/GetArtigoVariante/' + idArtigo,\r\n httpOptions\r\n );\r\n }\r\n\r\n // gerarToken(model: any) {\r\n // return this.http\r\n // .post(this.baseUrl + 'gerartoken/', model)\r\n // .pipe(catchError(null));\r\n // }\r\n\r\n getTiposArtigo(codNatureza: string): Observable {\r\n return this.http.get(this.url + 'tiposArtigo/' + codNatureza, httpOptions);\r\n }\r\n\r\n getTodosTiposArtigo(): Observable {\r\n return this.http.get(this.url + 'tipos-artigos/listar', httpOptions);\r\n }\r\n\r\n gravarTiposArtigo(modelo: any): Observable {\r\n return this.http.post(this.url + 'tiposArtigo', modelo, httpOptions);\r\n }\r\n\r\n eliminarTiposArtigo(modelo: any): Observable {\r\n return this.http\r\n .post(this.url + 'tipoArtigo/eliminar', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTipoArtigo(id: number) {\r\n return this.http.get>(this.url + 'tipoArtigo/' + id, httpOptions);\r\n }\r\n\r\n getCodigoArtigo(idClassificacao: number, data: string, IdTipoArtigo: number) {\r\n return this.http\r\n .get(\r\n this.url +\r\n 'codigo/' +\r\n idClassificacao +\r\n '/' +\r\n data +\r\n '/' +\r\n IdTipoArtigo,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n //#region Armazem\r\n getTiposArmazem(): Observable {\r\n return this.http\r\n .get(this.url + 'armazem/armazem/tipos-armazens', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTiposArmazemConf(): Observable {\r\n return this.http\r\n .get(this.url + 'armazem/tipo-armazem-conf/listar', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipoArmazem(id: number): Observable {\r\n return this.http\r\n .get(this.url + 'armazem/armazem/tipoArmazem/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarTipoArmazem(modelo: any): Observable {\r\n return this.http\r\n .post(this.url + 'armazem/tipoArmazem', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarTipoArmazem(idTipoArmazem: any): Observable {\r\n return this.http\r\n .post(\r\n this.url + 'armazem/tipoArmazem/eliminar',\r\n idTipoArmazem,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getArmazens(modelo: any): Observable {\r\n return this.http\r\n .post(this.url + 'armazem/armazens', modelo, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getArmazensLista(): Observable {\r\n return this.http\r\n .get(this.url + 'armazem/armazem/armazens', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getArmazem(idArmazem: number) {\r\n return this.http.get(this.url + 'armazem/armazem/' + idArmazem, httpOptions);\r\n }\r\n\r\n gravarArmazem(modelo: any) {\r\n return this.http.post(this.url + 'armazem/armazem', modelo, httpOptions);\r\n }\r\n\r\n eliminarArmazem(idArmazem: any) {\r\n return this.http.post(this.url + 'armazem/armazem/eliminar', idArmazem, httpOptions);\r\n }\r\n\r\n //#endregion\r\n getNatureza() {\r\n return this.http.get(this.url + 'artigo/naturezas', httpOptions);\r\n }\r\n\r\n //#region stock\r\n getStockMovimento(): Observable {\r\n return this.http\r\n .get(this.url + 'stock/stockmovimento', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getStocksMovimentos(filtro: any): Observable {\r\n return this.http.post(this.url + 'stock/movimentos', filtro, httpOptions);\r\n }\r\n\r\n getArtigosStock(): Observable {\r\n return this.http\r\n .get(this.url + 'stock/stock/artigos', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getStock(idStock: number): Observable {\r\n return this.http\r\n .get(this.url + 'stock/stock/' + idStock, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarStock(modelo: any): Observable {\r\n return this.http\r\n .post(this.url + 'stock/stock', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarStock(idStock: any): Observable {\r\n return this.http\r\n .post(this.url + 'stock/stock/eliminar', idStock, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTextoArtigo(idArtigo: number, codIdioma: string): Observable {\r\n return this.http\r\n .get(\r\n this.url + 'artigo/texto/' + idArtigo + '/' + codIdioma,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n buscarUnidadeMedida(): Observable {\r\n return this.http.get(this.url + 'unidadeMedida', httpOptions).pipe();\r\n }\r\n\r\n buscarArtigoVarianteComRegistoValores(\r\n idArtigo: number,\r\n idVariante: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.url +\r\n 'variantes2/varianteCamposOrganizado/' +\r\n idArtigo +\r\n '/' +\r\n idVariante,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n //#endregiongetStock\r\n\r\n setArtigosFAStore(artigos: any): any {\r\n this.artigosFA$.next(artigos);\r\n }\r\n\r\n getArtigosFAStore(): any {\r\n return this.artigosFA$.asObservable();\r\n }\r\n\r\n// ---------------------------Seccao dos modulos -------------------------------------------\r\n\r\n getModulos(modelo: any): Observable {\r\n return this.http.post(this.url + 'modulos/classificacao', modelo);\r\n }\r\n\r\n detalheModulo(idModulo): Observable {\r\n return this.http.get(this.url + 'modulos/' + idModulo);\r\n }\r\n\r\n gravaModulo(modelo): Observable {\r\n return this.http.post(this.url + 'modulos', modelo, httpOptions);\r\n }\r\n\r\n deletarModulo(idModulo): Observable {\r\n return this.http.post(this.url + 'modulos/remover/' + idModulo, null);\r\n }\r\n\r\n // ---------------------------Fimm----------------------------------------------------------\r\n\r\n\r\n// ------------------------ Secção de realizações----------------------------------------------\r\n\r\n getRealizacoes(): Observable {\r\n return this.http.get(this.url + 'realizacoes');\r\n }\r\n\r\n listarRealizacoesPorClassificacao(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'realizacoes/classificacao/' + idClassificacao);\r\n }\r\n\r\n listarRealizacoesMultiplas(modelo: number): Observable {\r\n return this.http.post(this.url + 'realizacoes/classificacao/realizacoesMultiplas', modelo);\r\n }\r\n\r\n mostrarRealizacoesPeloId(IdRealizacao): Observable {\r\n return this.http.get(this.url + 'realizacoes/' + IdRealizacao);\r\n }\r\n\r\n registarRealizacoes(modelo): Observable {\r\n return this.http.post(this.url + 'realizacoes/adicionar', modelo, httpOptions);\r\n }\r\n\r\n editarRealizacoes(IdRealizacao, modelo): Observable {\r\n return this.http.post(this.url + 'realizacoes/Editar/' + IdRealizacao, modelo);\r\n }\r\n\r\n eliminarRealizacoes(IdRealizacao): Observable {\r\n return this.http.post(this.url + 'realizacoes/remover/' + IdRealizacao, null);\r\n }\r\n\r\n getRealizacoesTurmas(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'realizacoes/realizacoesTurmas/' + idClassificacao);\r\n }\r\n\r\n getRealizacaoTurma(idRealizacaoTurma: number): Observable {\r\n return this.http.get(this.url + 'realizacoes/realizacaoTurma/' + idRealizacaoTurma);\r\n }\r\n\r\n// ---------------------------Fimm---------------------------------------------------------------------------\r\n\r\n// ------------------------ Secção de inscricoes----------------------------------------------------------------\r\n\r\n getListEstadosInscricao(): Observable {\r\n return this.http.get(this.url + 'inscricoes/estadosInscricoes');\r\n }\r\n\r\n getListEstadosPagamentos(): Observable {\r\n return this.http.get(this.url + 'inscricoes/estadosPagamentos');\r\n }\r\n\r\n\r\n getListInscricao(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/classificacao', modelo);\r\n }\r\n\r\n getInscricoesParaSelect(idClassificacao: any): Observable {\r\n return this.http.get(this.url + 'inscricoes/classificacao/' + idClassificacao);\r\n }\r\n\r\n listarInscricoesSemTurmas(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/semTurmas', modelo);\r\n }\r\n\r\n mostrarInscricaoPelolId(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/Inscricao', modelo, httpOptions);\r\n }\r\n\r\n inserirInscricoes(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/', modelo, httpOptions);\r\n }\r\n\r\n editarInscricoes(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/Editar/', modelo, httpOptions);\r\n }\r\n\r\n deletarInscricao(inscricao) {\r\n return this.http.post(this.url + 'inscricoes/remover/', inscricao);\r\n }\r\n\r\n getEntidades(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/ListarEntidades', modelo);\r\n }\r\n\r\n getInscritos(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/inscritos', modelo);\r\n }\r\n\r\n getInscrito(modelo: any): Observable {\r\n return this.http.post(this.url + 'inscricoes/inscrito', modelo);\r\n }\r\n\r\n adicionarInscricoesTurma(modelo: any[]): Observable {\r\n return this.http.post(this.url + 'inscricoes/turmas/adicionar/', modelo);\r\n }\r\n\r\n getInscricoesTurma(idRealizacaoTurma: number) {\r\n return this.http.get(this.url + 'inscricoes/turmas/listar/' + idRealizacaoTurma);\r\n }\r\n\r\n mudarEstadoInscricaoTurma(idRealizacoesInscricoesTurmas: number): Observable {\r\n return this.http.post(this.url + 'inscricoes/turmas/mudarEstado/' + idRealizacoesInscricoesTurmas, null);\r\n }\r\n\r\n removerInscricaoTurma(idRealizacoesInscricoesTurmas: number): Observable {\r\n return this.http.post(this.url + 'inscricoes/turmas/remover/' + idRealizacoesInscricoesTurmas, null);\r\n }\r\n\r\n getCertificado(idInscricao: number, fundo: boolean) {\r\n return this.http.get(this.url + 'inscricoes/certificado/' + idInscricao + '/' + fundo);\r\n }\r\n\r\n getNumero(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'inscricoes/numero/' + idClassificacao);\r\n }\r\n\r\n // ------------------------------Secção dos locais----------------------------\r\n\r\n getLocais(modelo: any): Observable {\r\n return this.http.post(this.url + 'locais/lista', modelo);\r\n }\r\n\r\n getLocal(idLocal: number): Observable {\r\n return this.http.get(this.url + 'locais/' + idLocal);\r\n }\r\n\r\n gravarLocal(modelo: any): Observable {\r\n return this.http.post(this.url + 'locais', modelo, httpOptions);\r\n }\r\n\r\n removerLocal(idLocal: any): Observable {\r\n return this.http.post(this.url + 'locais/' + idLocal, null);\r\n }\r\n\r\n activarDesactivarLocal(idLocal: any): Observable {\r\n return this.http.post(this.url + 'locais/activacao/' + idLocal, null);\r\n }\r\n\r\n getPaises(): Observable {\r\n return this.http.get(this.url + 'locais/paises');\r\n }\r\n\r\n getProvincias(idPais: number): Observable {\r\n return this.http.get(this.url + 'locais/provincias/' + idPais);\r\n }\r\n\r\n getMunicipios(idProvinca: number): Observable {\r\n return this.http.get(this.url + 'locais/municipios/' + idProvinca);\r\n }\r\n\r\n getZonas(idMunicipio: number): Observable {\r\n return this.http.get(this.url + 'locais/zonas/' + idMunicipio);\r\n }\r\n\r\n // ---------------------------Seccao dos tipo de arquivos das inscrições -----------------------------\r\n\r\n getTiposArquivos(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'tipoArquivosInscricoes/lista/' + idClassificacao);\r\n }\r\n\r\n getTipoArquivo(idTipoArquivo: number): Observable {\r\n return this.http.get(this.url + 'tipoArquivosInscricoes/' + idTipoArquivo);\r\n }\r\n\r\n gravarTipoArquivo(modelo: any): Observable {\r\n return this.http.post(this.url + 'tipoArquivosInscricoes/', modelo);\r\n }\r\n\r\n removerTipoArquivo(idTipoArquivo: number): Observable {\r\n return this.http.post(this.url + 'tipoArquivosInscricoes/remover/' + idTipoArquivo, null);\r\n }\r\n\r\n // ---------------------------Seccao dos e-mails -----------------------------\r\n\r\n getEmails(codIdioma: string, idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'emails/' + codIdioma + '/' + idClassificacao);\r\n }\r\n\r\n getEmail(idEmailInscricao: number): Observable {\r\n return this.http.get(this.url + 'emails/detalhe/' + idEmailInscricao);\r\n }\r\n\r\n gravarEmails(modelo: any): Observable {\r\n return this.http.post(this.url + 'emails/gravar/', modelo, httpOptions);\r\n }\r\n\r\n removerEmail(idEmailInscricao: number): Observable {\r\n return this.http.post(this.url + 'emails/' + idEmailInscricao, null);\r\n }\r\n\r\n // ---------------------------Seccao das avaliações -----------------------------\r\n\r\n getAvaliacao(idRealizacaoInscricao: number): Observable {\r\n return this.http.get(this.url + 'avaliacaoRealizacao/' + idRealizacaoInscricao);\r\n }\r\n\r\n salvarAvaliacao(modelo: any): Observable {\r\n return this.http.post(this.url + 'avaliacaoRealizacao/', modelo);\r\n }\r\n\r\n getEstadosAvaliacao(): Observable {\r\n return this.http.get(this.url + 'avaliacaoRealizacao/listarEstados');\r\n }\r\n\r\n\r\n getAvaliacoesModulos(idRealizacaoInscricao: number): Observable {\r\n return this.http.get(this.url + 'avaliacoesModulos/lista/' + idRealizacaoInscricao);\r\n }\r\n\r\n salvarAvaliacoesModulos(modelo: any): Observable {\r\n return this.http.post(this.url + 'avaliacoesModulos/', modelo);\r\n }\r\n\r\n\r\n // --------------------------- Secção dos renováveis -----------------------------\r\n getEstadosRenovavel(): Observable {\r\n return this.http.get(`${this.url}renovavel/estados`).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''}) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getFluxos() {\r\n return this.http.get>(`${this.url}renovavel/estados/fluxos`);\r\n }\r\n\r\n getCiclosRenovacao(): Observable {\r\n return this.http.get(`${this.url}renovavel/ciclos`).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''}) : throwError(() => err);\r\n }));\r\n }\r\n\r\n postRenovavel(servico: any) {\r\n return this.http.post(`${this.url}renovavel`, servico);\r\n }\r\n\r\n postRenovavelLote(servico: any) {\r\n return this.http.post(`${this.url}renovavel/lote`, servico);\r\n }\r\n\r\n getRenovaveis(idEquipamento: number = 0) {\r\n return this.http.post(`${this.url}renovaveis`, this.loginService.getUtilizadorSessao(),\r\n {params: {idEquipamento}})\r\n .pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''}) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getRenovaveisPaginar(index: number = 1, size: number = 20) {\r\n return this.http.post(`${this.url}renovaveis/paginas`, this.loginService.getUtilizadorSessao(),\r\n {params: {index, size}})\r\n .pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''}) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getRenovaveisPaginarListView(index: number = 1, size: number = 200) {\r\n return this.http.post(`${this.url}renovaveis/paginas/view`, this.loginService.getUtilizadorSessao(),\r\n {params: {index, size}});\r\n }\r\n\r\n getRenovavel(id: number) {\r\n return this.http.post(`${this.url}renovavel/${id}`, this.loginService.getUtilizadorSessao());\r\n }\r\n\r\n renovavelRunJob(id: number) {\r\n return this.http.post(`${this.url}renovavel/${id}/jobs`, {});\r\n }\r\n\r\n eliminarRenovavel(id: number) {\r\n return this.http.post(`${this.url}renovavel/eliminar/`, id, httpOptions);\r\n }\r\n\r\n editarRenovavel(payload) {\r\n return this.http.post(`${this.url}renovavel/${payload.id}/editar`, payload);\r\n }\r\n\r\n filterRenovaveis(filtro: any) {\r\n filtro.utilizadorSessao = this.loginService.getUtilizadorSessao();\r\n return this.http.post(`${this.url}renovaveis/filtrar`, filtro).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''}) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getNumeracaoRenovavel(idEmpresa: number) {\r\n return this.http.get(`${this.url}renovavel/${idEmpresa}/codigo`);\r\n }\r\n\r\n alternarActivoSuspensoRenovavel(id: number, idTransicao: number) {\r\n return this.http.post>(`${this.url}renovaveis/${id}/estado/alternar`, idTransicao);\r\n }\r\n\r\n getRenovavelRenovacoes(id: number) {\r\n return this.http.get(`${this.url}renovavel/${id}/renovacoes`);\r\n }\r\n\r\n calculateExpirationDate(ciclo, dataInicio: Date | string): Date | null {\r\n if (!dataInicio) {\r\n return null;\r\n }\r\n let d = new Date(dataInicio);\r\n switch (ciclo?.idCicloRenovacao) {\r\n case Ciclo.DIARIO:\r\n break;\r\n case Ciclo.SEMANAL:\r\n d = Util.addDays(d, 6);\r\n break;\r\n case Ciclo.QUINZENAL:\r\n d = Util.addDays(d, 14);\r\n break;\r\n case Ciclo.MENSAL:\r\n d = Util.addDays(Util.addMonths(d), -1);\r\n break;\r\n case Ciclo.BIMESTRAL:\r\n d = Util.addDays(Util.addMonths(d, 2), -1);\r\n break;\r\n case Ciclo.TRIMESTRAL:\r\n d = Util.addDays(Util.addMonths(d, 3), -1);\r\n break;\r\n case Ciclo.SEMESTRAL:\r\n d = Util.addDays(Util.addMonths(d, 6), -1);\r\n break;\r\n case Ciclo.ANUAL:\r\n d.setFullYear(d.getFullYear() + 1);\r\n d = Util.addDays(d, -1);\r\n break;\r\n case Ciclo.BIENAL:\r\n d.setFullYear(d.getFullYear() + 2);\r\n d = Util.addDays(d, -1);\r\n break;\r\n case Ciclo.QUINQUENAL:\r\n d.setFullYear(d.getFullYear() + 5);\r\n d = Util.addDays(d, -1);\r\n break;\r\n default:\r\n return null;\r\n }\r\n d.setHours(23);\r\n d.setMinutes(59);\r\n d.setSeconds(59);\r\n return d;\r\n }\r\n\r\n filtrarArtigos(event: any, artigos) {\r\n const termo = event.target.value;\r\n if (!termo) {\r\n return [];\r\n }\r\n\r\n return artigos.filter(a =>\r\n (a.nomeArtigo ?? a.artigo)?.toLowerCase()?.includes(termo.toLowerCase()) ||\r\n a.codArtigo && a.codArtigo.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n }\r\n\r\n filtrarArmazens(event: any, armazens) {\r\n const termo = event.target.value;\r\n if (!termo) {\r\n return [];\r\n }\r\n\r\n return armazens.filter(a =>\r\n a.designacao?.toLowerCase()?.includes(termo.toLowerCase()) ||\r\n a.codigoArmazem?.toLowerCase()?.includes(termo.toLowerCase())\r\n );\r\n }\r\n\r\n isArtigoValidoRenovacao(idCliente: number, idArtigo: number, idRenovavel: number = 0) {\r\n return this.http.get(`${this.url}renovavel/artigo/${idArtigo}`, {\r\n params: {idRenovavel, idCliente}\r\n });\r\n }\r\n\r\n // ---------------------------Seccao das turmas -----------------------------\r\n\r\n getTurmas(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'turmas/lista/' + idClassificacao);\r\n }\r\n\r\n getTurma(idTurma: number): Observable {\r\n return this.http.get(this.url + 'turmas/detalhe/' + idTurma);\r\n }\r\n\r\n gravarTurma(modelo: any): Observable {\r\n return this.http.post(this.url + 'turmas/', modelo);\r\n }\r\n\r\n removerTurma(idTurma: number): Observable {\r\n return this.http.post(this.url + 'turmas/' + idTurma, null);\r\n }\r\n\r\n\r\n // ---------------------------Seccao dos certificados -----------------------------\r\n\r\n getCertificados(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'certificados/lista/' + idClassificacao);\r\n }\r\n\r\n detalharCertificado(idCertificado: number): Observable {\r\n return this.http.get(this.url + 'certificados/' + idCertificado);\r\n }\r\n\r\n gravarCertificados(modelo: any): Observable {\r\n\r\n return this.http.post(this.url + 'certificados', modelo);\r\n }\r\n\r\n removerCertificado(idCertificado: number): Observable {\r\n return this.http.post(this.url + 'certificados/remover/' + idCertificado, null);\r\n }\r\n\r\n getTiposArtigoGeral() {\r\n return this.http.get(this.url + 'tiposArtigo', httpOptions);\r\n }\r\n\r\n // ---------------------------Seccao dos tipos de colaboração -----------------------------\r\n\r\n getTiposColaboracao(idClassificacao: number): Observable {\r\n return this.http.get(this.url + 'tiposColaboracao/lista/' + idClassificacao);\r\n }\r\n\r\n getTipoColaboracao(idTipoColaboracao: number): Observable {\r\n return this.http.get(this.url + 'tiposColaboracao/detalhe/' + idTipoColaboracao);\r\n }\r\n\r\n gravarTipoColaboracao(modelo: any): Observable {\r\n return this.http.post(this.url + 'tiposColaboracao/', modelo);\r\n }\r\n\r\n removerTipoColaboracao(idTipoColaboracao: number): Observable {\r\n return this.http.post(this.url + 'tiposColaboracao/remover/' + idTipoColaboracao, null);\r\n }\r\n\r\n // ---------------------------Seccao dos tipos de colaboração -----------------------------\r\n\r\n getAulas(idRealizacaoTurma: number): Observable {\r\n return this.http.get(this.url + 'aulas/lista/' + idRealizacaoTurma);\r\n }\r\n\r\n getAula(idRealizacaoTurmaAula: number): Observable {\r\n return this.http.get(this.url + 'aulas/detalhe/' + idRealizacaoTurmaAula);\r\n }\r\n\r\n registarAula(modelo: any): Observable {\r\n return this.http.post(this.url + 'aulas/', modelo);\r\n }\r\n\r\n removerAula(idRealizacaoTurmaAula: number): Observable {\r\n return this.http.post(this.url + 'aulas/' + idRealizacaoTurmaAula, null);\r\n }\r\n\r\n renovar(idCliente: number, artigos: any[]) {\r\n return this.http.post(`${this.url}renovar/${idCliente}`, artigos);\r\n }\r\n\r\n getTiposDespesasART(utilizadorSessao: UtilizadorSessao) {\r\n return this.http.post(this.url + 'despesas', utilizadorSessao, httpOptions);\r\n }\r\n\r\n // E-mails ----------------------------------------------------------------\r\n getEmailEventos() {\r\n return this.http.get>(`${this.url}emails/automaticos/eventos`).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: err.error?.mensagem || ''} as Resposta) :\r\n throwError(() => err);\r\n }));\r\n }\r\n\r\n getEmailAutomaticos() {\r\n return this.http.get>(`${this.url}emails/automaticos`).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: err.error?.mensagem || 'N/A'} as Resposta) :\r\n throwError(() => err);\r\n }));\r\n }\r\n\r\n postEmailAutomatico(payload: EmailAutomatico) {\r\n return this.http.post>(`${this.url}emails/automaticos`, payload);\r\n }\r\n\r\n getEmailAutomatico(id: number) {\r\n return this.http.get>(`${this.url}emails/automaticos/${id}`);\r\n }\r\n\r\n putEmailAutomatico(payload: EmailAutomatico) {\r\n return this.http.post>(`${this.url}emails/automaticos/${payload.id}`, payload);\r\n }\r\n\r\n getCiclo(id: number) {\r\n return this.http.get>(`${this.url}renovavel/ciclos/${id}`);\r\n }\r\n\r\n putCiclo(payload: any) {\r\n return this.http.post>(`${this.url}renovavel/ciclos/${payload.idCiclo}`, payload);\r\n }\r\n\r\n deleteEmailAutomatico(id: number) {\r\n return this.http.post>(`${this.url}emails/automaticos/${id}/eliminar`, {});\r\n }\r\n\r\n getRenovacoes() {\r\n return this.http.get>(`${this.url}renovacoes`)\r\n .pipe(tap(res => res.objecto.forEach(r => r.documentos = [...r.documentos, ...r.documentosTe])));\r\n }\r\n\r\n filterRenovacoes(filtro: any) {\r\n return this.http.post>(`${this.url}renovacoes/filtrar`, filtro)\r\n .pipe(tap(res => res.objecto.forEach(r => r.documentos = [...r.documentos, ...r.documentosTe])));\r\n }\r\n\r\n getEmpresas() {\r\n return this.http.get>(`${this.url}stock/empresas`);\r\n }\r\n\r\n putFornecedor(fornecedor: any) {\r\n return this.http.post>(`${this.url}artigo/${fornecedor.idArtigo}/fornecedor`, fornecedor);\r\n }\r\n\r\n eliminarFornecedor(id: number, idFornecedor: number) {\r\n return this.http.post(`${this.url}artigo/${id}/fornecedor/remover`, idFornecedor);\r\n }\r\n\r\n putLembrete(lembrete: any) {\r\n return this.http.post>(`${this.url}realizacoes/${lembrete.idRealizacao}/lembretes`, lembrete);\r\n }\r\n\r\n deleteLembrete(id: number) {\r\n return this.http.post>(`${this.url}realizacoes/lembretes/remover`, id);\r\n }\r\n\r\n putNumeracao(req: any) {\r\n return this.http.post>(`${this.url}classificacoes/numeracoes`, req);\r\n }\r\n\r\n getNumeracoes() {\r\n return this.http.get>(`${this.url}classificacoes/numeracoes`);\r\n }\r\n\r\n getNumeracao(id: number) {\r\n return this.http.get>(`${this.url}classificacoes/numeracoes/${id}`);\r\n }\r\n\r\n deleteNumeracao(id: number) {\r\n return this.http.post>(`${this.url}classificacoes/numeracoes/remover`, id);\r\n }\r\n\r\n getCodigo(idClassificacao: number) {\r\n return this.http.get>(`${this.url}artigos/codigo/${idClassificacao}`);\r\n }\r\n\r\n postArtigoLote(req: { ficheiro: string, idClassificacao: number }) {\r\n return this.http.post>(`${this.url}artigos/carregamento`, {...req, utilizador: this.loginService.getUtilizadorSessao()});\r\n }\r\n\r\n getTiposAdm() {\r\n return this.http.get>(`${this.url}tipo/administrativos`);\r\n }\r\n\r\n putEntidade(req: any) {\r\n return this.http.post>(`${this.url}artigos/${req.idArtigo}/entidades`, req);\r\n }\r\n\r\n eliminarEntidade(idArtigo: number, idEntidade: number) {\r\n return this.http.post(`${this.url}artigos/${idArtigo}/entidades/remover`, idEntidade);\r\n }\r\n\r\n getEntidadesAssociadas(idArtigo: number) {\r\n return this.http.get>(`${this.url}artigos/${idArtigo}/entidades`);\r\n }\r\n\r\n putPrecoAdm(value: any) {\r\n return this.http.post>(`${this.url}artigos/${value.idArtigo}/entidades/precos`, value);\r\n }\r\n\r\n getCicloAdm() {\r\n return this.http.get>(`${this.url}artigos/ciclos-administrativos`);\r\n }\r\n\r\n getAdministrativos() {\r\n return this.http.get>(`${this.url}artigos/administrativos`);\r\n }\r\n\r\n getPrecosAdm(idArtigo: number) {\r\n return this.http.get>(`${this.url}artigos/${idArtigo}/entidades/precos`);\r\n }\r\n\r\n gerarQuotas(req: any) {\r\n return this.http.post>(`${this.url}artigos/gerar-quotas`, {\r\n ...req,\r\n utilizador: this.loginService.getUtilizadorSessao()\r\n });\r\n }\r\n\r\n getQuotas(idArtigo: number) {\r\n return this.http.get>(`${this.url}artigos/${idArtigo}/quotas`);\r\n }\r\n\r\n getRenovacoesAdm() {\r\n return this.http.get>(`${this.url}artigos/quotas/renovacoes`);\r\n }\r\n\r\n filtrarRenocavoes(filtro: any) {\r\n return this.http.post>(`${this.url}artigos/quotas/renovacoes`, filtro);\r\n }\r\n\r\n enviarEmail(req: any) {\r\n return this.http.post>(`${this.url}renovaveis/enviar-email`, req);\r\n }\r\n\r\n enviarEmailTemplate(req: any) {\r\n return this.http.post>(`${this.url}renovaveis/testar-email`, req);\r\n }\r\n\r\n anularRenovacao(id: number) {\r\n return this.http.post>(`${this.url}renovacoes/anular`, id);\r\n }\r\n\r\n usaEquipamentos() {\r\n return this.http.get>(`${this.url}renovaveis/usa-equipamentos`);\r\n }\r\n\r\n getUnidades(idTipo: number) {\r\n return this.http.get(`${this.url}classificacoes/unidades-medida`, {params: {idTipo}});\r\n }\r\n\r\n getCampos(idClassificacao: number) {\r\n return this.http.get(`${this.url}classificacoes/${idClassificacao}/campos`);\r\n }\r\n\r\n postInscricoesLote(req: any) {\r\n return this.http.post>(`${this.url}inscricoes/lote`, req);\r\n }\r\n\r\n enviarSMS(req: any) {\r\n return this.http.post>(`${this.url}inscricoes/sms`, req);\r\n }\r\n\r\n getTags() {\r\n return this.http.get>(`${this.url}inscricoes/tags`);\r\n }\r\n\r\n atenderInscricao(req: any) {\r\n return this.http.post>(`${this.url}inscricoes/atender`, req);\r\n }\r\n\r\n enviarEmailInscricao(req: any) {\r\n return this.http.post>(`${this.url}inscricoes/emails`, req);\r\n }\r\n\r\n imprimirInscricoes(req: any) {\r\n req.idUtilizador = this.loginService.getUtilizadorSessao()?.idUtilizador;\r\n return this.http.post>(`${this.url}inscricoes/pdf`, req);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { LoginService } from '../aplicacao-service/login.service';\r\n\r\n@Injectable( { providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n public authToken;\r\n private isAuthenticated = true;\r\n\r\n constructor(private router: Router, private loginService: LoginService) {}\r\n canActivate( next: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n if (this.loginService.loggedIn()) {\r\n return true;\r\n } else {\r\n this.router.navigate(['/sessoes/login']);\r\n return false;\r\n }\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { LocalStoreService } from '../local-store.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { map, catchError, delay } from 'rxjs/operators';\r\nimport { User } from '../../models/user.model';\r\nimport { of, BehaviorSubject, throwError } from 'rxjs';\r\nimport { environment } from 'environments/environment';\r\n\r\n// ================= only for demo purpose ===========\r\nconst DEMO_TOKEN =\r\n 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1YjhkNDc4MDc4NmM3MjE3MjBkYzU1NzMiLCJlbWFpbCI6InJhZmkuYm9ncmFAZ21haWwuY29tIiwicm9sZSI6IlNBIiwiYWN0aXZlIjp0cnVlLCJpYXQiOjE1ODc3MTc2NTgsImV4cCI6MTU4ODMyMjQ1OH0.dXw0ySun5ex98dOzTEk0lkmXJvxg3Qgz4ed';\r\n\r\nconst DEMO_USER: User = {\r\n id: '5b700c45639d2c0c54b354ba',\r\n displayName: 'Watson Joyce',\r\n role: 'SA',\r\n};\r\n// ================= you will get those data from server =======\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class JwtAuthService {\r\n token;\r\n isAuthenticated: boolean;\r\n user: User = {};\r\n user$ = (new BehaviorSubject(this.user));\r\n usaMenuPOS$ = (new BehaviorSubject(false));\r\n gerePermissoesUtilizador$ = (new BehaviorSubject(false));\r\n signingIn: boolean;\r\n return: string;\r\n JWT_TOKEN = 'JWT_TOKEN';\r\n APP_USER = 'EGRET_USER';\r\n\r\n constructor(\r\n private ls: LocalStoreService,\r\n private http: HttpClient,\r\n private router: Router,\r\n private route: ActivatedRoute\r\n ) {\r\n this.route.queryParams\r\n .subscribe(params => this.return = params['return'] || '/');\r\n }\r\n\r\n public signin(username, password) {\r\n return of({token: DEMO_TOKEN, user: DEMO_USER})\r\n .pipe(\r\n delay(1000),\r\n map((res: any) => {\r\n this.setUserAndToken(res.token, res.user, !!res);\r\n this.signingIn = false;\r\n return res;\r\n }),\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n\r\n // FOLLOWING CODE SENDS SIGNIN REQUEST TO SERVER\r\n\r\n // this.signingIn = true;\r\n // return this.http.post(`${environment.apiURL}/auth/local`, { username, password })\r\n // .pipe(\r\n // map((res: any) => {\r\n // this.setUserAndToken(res.token, res.user, !!res);\r\n // this.signingIn = false;\r\n // return res;\r\n // }),\r\n // catchError((error) => {\r\n // return throwError(error);\r\n // })\r\n // );\r\n }\r\n\r\n /*\r\n checkTokenIsValid is called inside constructor of\r\n shared/components/layouts/admin-layout/admin-layout.component.ts\r\n */\r\n public checkTokenIsValid() {\r\n return of(DEMO_USER)\r\n .pipe(\r\n map((profile: User) => {\r\n this.setUserAndToken(this.getJwtToken(), profile, true);\r\n this.signingIn = false;\r\n return profile;\r\n }),\r\n catchError((error) => {\r\n return of(error);\r\n })\r\n );\r\n\r\n /*\r\n The following code get user data and jwt token is assigned to\r\n Request header using token.interceptor\r\n This checks if the existing token is valid when app is reloaded\r\n */\r\n\r\n // return this.http.get(`${environment.apiURL}/api/users/profile`)\r\n // .pipe(\r\n // map((profile: User) => {\r\n // this.setUserAndToken(this.getJwtToken(), profile, true);\r\n // return profile;\r\n // }),\r\n // catchError((error) => {\r\n // this.signout();\r\n // return of(error);\r\n // })\r\n // );\r\n }\r\n\r\n public signout() {\r\n this.setUserAndToken(null, null, false);\r\n localStorage.removeItem('app89B8B8E486421463D7E0F5mostrarAviso');\r\n localStorage.removeItem('diasEmFalta');\r\n this.router.navigateByUrl('sessions/signin');\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n return !!this.getJwtToken();\r\n }\r\n\r\n getJwtToken() {\r\n return this.ls.getItem(this.JWT_TOKEN);\r\n }\r\n getUser() {\r\n return this.ls.getItem(this.APP_USER);\r\n }\r\n\r\n setUserAndToken(token: string, user: User, isAuthenticated: boolean) {\r\n this.isAuthenticated = isAuthenticated;\r\n this.token = token;\r\n this.user = user;\r\n this.user$.next(user);\r\n this.ls.setItem(this.JWT_TOKEN, token);\r\n this.ls.setItem(this.APP_USER, user);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {Entidades} from 'app/shared/models/clientes/entidades';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders,} from '@angular/common/http';\r\nimport {Observable, throwError} from 'rxjs';\r\nimport {Titulos} from 'app/shared/models/aplicacao/titulos';\r\nimport {TiposEnderecoCliente} from 'app/shared/models/clientes/tiposenderecoCliente';\r\nimport {environment} from 'environments/environment';\r\nimport {ClienteAcesso} from 'app/shared/models/clientes/clienteacessos';\r\nimport {ConfCodigosClientes} from 'app/shared/models/clientes/confcodigos';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {PessoasContactos} from '../../models/clientes/pessoas-contactos';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ClientesGeraisService {\r\n baseUrlCliente: string;\r\n baseUrl: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiAplicacao}`;\r\n this.baseUrlCliente = `${environment.apiClientes}`;\r\n\r\n }\r\n\r\n getEntidades(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'entidades', httpOptions);\r\n // .get(this.baseUrl + \"clientesEntidades\", httpOptions)\r\n }\r\n\r\n getEntidade(idEntidade: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'entidades/' + idEntidade, httpOptions);\r\n }\r\n\r\n getEntidadesRelacoesFilhos(\r\n idEntidadeFilho: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente +\r\n 'entidades/relacoesEntidadesFilhos/' +\r\n idEntidadeFilho, httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTitulos(): Observable {\r\n return this.http\r\n .get(this.baseUrl + 'aplicacao/titulos', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n\r\n getEstados(idEntidade: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/estados/' + idEntidade, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTodosEstados(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/estados', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstado(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/estados/estadoprincipal/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadoDetalhe(idEstado: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/estados/estado/' + idEstado, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getDetalheEstado(idEstado: number, idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/estados/' + idEstado + '/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n ActivarEstado(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/estados/activarEstado/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n TornarEstadoDefault(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/estados/estadoprincipal/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarEstado(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/estados/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n EliminarEstado(idEstado: any): Observable {\r\n return this.http\r\n .delete(this.baseUrlCliente + 'clientes/estados/eliminar/' + idEstado, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTipos(idEntidade: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientesTipos/entidade/' + idEntidade, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipoCliente(idTipo: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientesTipos/' + idTipo, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n // Tipo de Documentos\r\n\r\n gravarTipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/tipos-documentos/', modelo, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n editarTipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/editar',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n removerTipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/remover/',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n activarTipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/activar/',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getTiposDocumentos(idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/entidade/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTodosTiposDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/tipos-documentos/', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipoDocumento(\r\n idTipo: number,\r\n idEntidade: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/' + idTipo + '/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTiposDocumentosEntidade(\r\n idEntidade: Number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/tipos-documentos/entidade/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n\r\n getTiposArquivos(idEntidade: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientesTiposArquivos/entidade/' + idEntidade, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTiposContactos(): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/contactos/tipos/', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getPessoasContactosRelacao(idEntidade: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/relacao/' + idEntidade, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarPessoasContactosRelacaoFuncao(modelo: any): Observable {\r\n return this.http.post(this.baseUrlCliente + 'clientes/relacao/gravar', modelo, httpOptions);\r\n }\r\n\r\n gravarPessoasContactosRelacao(modelo: any): Observable {\r\n return this.http.post(this.baseUrlCliente + 'clientes/gravar/', modelo, httpOptions);\r\n }\r\n\r\n\r\n getTipoArquivo(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientesTiposArquivos/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTiposEnderecos(idEntidade: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/tiposenderecos/' + idEntidade, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipoEndereco(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/tiposenderecos/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getCodigo(idEntidade: number, idTipo: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/codigos/' + idEntidade + '/' + idTipo, httpOptions);\r\n }\r\n\r\n getCodigoEntidade(idEntidade?: number, idTipo?: number, dataRegisto?: any): Observable {\r\n // return this.http.get(this.baseUrlCliente + 'clientes/proximoCodigo/' + idEntidade + '/' + idTipo + '/' + dataRegisto);\r\n return this.http.post(this.baseUrlCliente + 'clientes/proximoCodigo', {\r\n idEntidade,\r\n idTipo,\r\n dataRegisto\r\n }, httpOptions).pipe(catchError(null));\r\n }\r\n\r\n\r\n getConfCodigo(\r\n idEntidade: number,\r\n idTipo: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente +\r\n 'clientes/codigotipoinsercao/' +\r\n idEntidade +\r\n '/' +\r\n idTipo,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n\r\n /*Post*/\r\n salvarEstado(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/estados/', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n removerEstado(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/estados/remover/', modelo, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n salvarTipos(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientesTipos', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n removerTipos(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientesTipos/remover', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n salvarTiposArquivos(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientesTiposArquivos', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n removerTiposArquivos(model: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/tiposarquivos/remover',\r\n model,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n editarPasswordAcesso(model: any) {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/editar/' + model?.Id + '/password/', model, httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n // Caracteristicas\r\n getCaracteristicas(idClassificacao: number, activo: boolean): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/caracteristicas/' + idClassificacao + '/' + activo, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTiposDadosCaracteristica(): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/caracteristicas/tiposDados', httpOptions);\r\n }\r\n\r\n // parametrizacao\r\n getParametrizacao(): Observable {\r\n return this.http\r\n // .get(this.baseUrlCliente + 'clientes/parametrizacao/', httpOptions)\r\n .get(this.baseUrlCliente + 'entidades/', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n eliminarEntidade(idEntidade: number): Observable {\r\n return this.http\r\n // .get(this.baseUrlCliente + 'clientes/parametrizacao/', httpOptions)\r\n .delete(this.baseUrlCliente + 'entidades/' + idEntidade, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getParametrizacaoEntidade(idEntidade: number): Observable {\r\n return this.http\r\n // .get(this.baseUrlCliente + 'clientes/parametrizacao/' + idEntidade, httpOptions)\r\n .get(this.baseUrlCliente + 'entidades/' + idEntidade, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n salvarParametrizacao(modelo: any): Observable {\r\n return this.http\r\n //EJVC .post(this.baseUrlCliente + 'clientes/parametrizacao',modelo, httpOptions)\r\n .post(this.baseUrlCliente + 'entidades', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n getNaturezas(): Observable {\r\n return this.http.get(this.baseUrlCliente + 'entidades/naturezas/', httpOptions);\r\n }\r\n\r\n getSectores() {\r\n return this.http.get>(`${this.baseUrlCliente}/sectores-actividade`);\r\n }\r\n\r\n putPessoaContacto(req: PessoasContactos) {\r\n return this.http.post>(`${this.baseUrlCliente}clientes/contactos/pessoas`, req);\r\n }\r\n\r\n deletePessoaContacto(id: number) {\r\n return this.http.post>(`${this.baseUrlCliente}clientes/contactos/pessoas/remover`, id);\r\n }\r\n\r\n setResponsavel(id: number, idCliente: number) {\r\n return this.http.post>(`${this.baseUrlCliente}clientes/contactos/${idCliente}/pessoas/responsavel`, id);\r\n }\r\n\r\n // Acessos\r\n\r\n parametrizacaoAcesso(): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'acessos/parametrizacao', httpOptions)\r\n .pipe();\r\n }\r\n\r\n recuperarAcesso(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'acessos/recuperar', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n \r\n salvarAcessos(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'acessos/CriarAcessoBackOffice', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n editarAcesso(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'acessos/editar/', model, httpOptions)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n\r\n mudarActivacao(idCliente: number) : Observable {\r\n return this.http.post(`${this.baseUrlCliente}acessos/${idCliente}/activacao`, {}).pipe();\r\n }\r\n\r\n getAcessos(dados: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'acessos/filtro', dados, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getAcessosCliente(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/acessosclientes/' + id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getAcesso(id: number, idCliente: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/acessos/' + id + '/' + idCliente,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n apagarAcesso(idCliente: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'acessos/remover/'+idCliente, {}, httpOptions)\r\n .pipe();\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders} from '@angular/common/http';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {BehaviorSubject, Observable, of, throwError} from 'rxjs';\r\nimport {environment} from 'environments/environment';\r\nimport {Cliente} from '../../models/clientes/cliente';\r\nimport {ClientesEmails} from 'app/shared/models/clientes/clienteemails';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {LoginService} from '@services/aplicacao-service/login.service';\r\nimport {ClPermissao} from '../../models/clientes/cl-permissao';\r\n\r\n/*const httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n }),\r\n};\r\n*/\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json'\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ClientesService {\r\n baseUrlCliente: string;\r\n tabPessoaContactoActiva$ = new BehaviorSubject(false);\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService) {\r\n this.baseUrlCliente = `${environment.apiClientes}`;\r\n }\r\n\r\n gravar(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarClienteInscricao(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/inscricao/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getEstadosClientes() {\r\n // https://dev-back.kiami.ao/cli/api/v1/clientes/estados\r\n return this.http.get(this.baseUrlCliente + 'clientes/estados');\r\n }\r\n\r\n Actualizar(modelo: any): Observable {\r\n return this.http.post(\r\n this.baseUrlCliente + 'clientes/actualizar',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n\r\n remover(idEntidade: number, idCliente: number): Observable {\r\n return this.http.post(this.baseUrlCliente + 'clientes/remover/' + idEntidade + '/' + idCliente,\r\n null,\r\n {\r\n headers: httpOptions.headers,\r\n params: {idUtilizador: this.loginService.getUtilizadorSessao()?.idUtilizador}\r\n });\r\n }\r\n\r\n removerVarios(modelo: any[]): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/removerVarios', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getClientesListagem(model: any): Observable {\r\n model.utilizador = this.loginService.getUtilizadorSessao();\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/listagem', model, httpOptions);\r\n }\r\n\r\n getClientesListagem2(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/listagem2', model, httpOptions);\r\n }\r\n\r\n getClientesPdf(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/pdf', model, httpOptions);\r\n }\r\n\r\n getTodosClientes(filtro: any): Observable {\r\n filtro.idUtilizador = this.loginService.getUtilizadorSessao()?.idUtilizador;\r\n return this.http\r\n .post(this.baseUrlCliente + 'clientes/listabase', filtro, httpOptions)\r\n .pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ? of({objecto: [], statusCode: err.status, mensagem: ''} as Resposta) : err;\r\n }));\r\n }\r\n\r\n getTiposEntidadesClientes() {\r\n return this.http.get(\r\n this.baseUrlCliente + 'clientes/entidades',\r\n httpOptions\r\n );\r\n }\r\n\r\n getEntidadesClientes() {\r\n return this.http.get(\r\n this.baseUrlCliente + 'clientes/entidades',\r\n httpOptions\r\n );\r\n }\r\n\r\n getEntidadesClientesComtipos(): Observable {\r\n return this.http.get(\r\n this.baseUrlCliente + 'entidades/entidadesComTipos',\r\n httpOptions\r\n );\r\n }\r\n\r\n getCliente(idCliente: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/' + idCliente, {\r\n headers: httpOptions.headers,\r\n params: {idUtilizador: this.loginService.getUtilizadorSessao()?.idUtilizador}\r\n });\r\n }\r\n\r\n getClientesTodasEntidades(idCliente: number): Observable {\r\n return this.http\r\n .get(this.baseUrlCliente + 'clientes/' + idCliente, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getClienteEnderecos(idCliente: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/enderecos/' + idCliente,\r\n {\r\n headers: httpOptions.headers,\r\n params: {idUtilizador: this.loginService.getUtilizadorSessao()?.idUtilizador}\r\n });\r\n }\r\n\r\n getTiposEntidadesCliente(idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientesTipos/entidade/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getClientePeloCodigo(codigo: string): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/verificarPeloCodigo/' + codigo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getEmailsManuais(idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/emails/emailsManuais/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getPersonalidadesJuridicas(idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'entidades/personalidadesJuridicas/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTodasPersonalidadesJuridicas(): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'entidades/personalidadesJuridicas',\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarEmailsManuais(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/emails/emailsManuais',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n /*emails automaticos*/\r\n gravarEmailsAutomatico(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/emailsautomaticos/',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getEmailsAutomaticos(idEntidade: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente + 'clientes/emailsautomaticos/' + idEntidade,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n removerEmailsAutomatico(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlCliente + 'clientes/emailsautomaticos/remover/',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getEmailsManual(\r\n idEmailManual: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente +\r\n 'clientes/emails/emailManual/' +\r\n idEmailManual,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEmailsAutomatico(\r\n idEmailAutomatico: number,\r\n idEntidade: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlCliente +\r\n 'clientes/emailsautomaticos/' +\r\n idEmailAutomatico +\r\n '/' +\r\n idEntidade,\r\n httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getRelatorioPessoasXML(dataInicio?: any, dataFim?: any): Observable {\r\n return this.http.get(\r\n this.baseUrlCliente + 'clientesRelatorios/pessoasXml/' + dataInicio,\r\n httpOptions\r\n );\r\n // return this.http.get(this.baseUrl + 'clientesRelatorios/pessoasXml/' + dataInicio + '/' + dataFim, httpOptions);\r\n }\r\n\r\n getTiposDadosCaracteristica(): Observable {\r\n return this.http.get(\r\n this.baseUrlCliente + 'clientes/caracteristicas/tiposDados',\r\n httpOptions\r\n );\r\n }\r\n\r\n getExcelParaJson(ficheiroExcel): Observable {\r\n return this.http.post(\r\n this.baseUrlCliente + 'clientes/caracteristicas/carregarDados',\r\n ficheiroExcel,\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarValor(modelo): Observable {\r\n return this.http.post(this.baseUrlCliente + 'clientes/caracteristicas/salvar', modelo, httpOptions);\r\n }\r\n\r\n getValorCaracteristica(idValor: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/caracteristicas/valor/' + idValor, httpOptions);\r\n }\r\n\r\n verificarCaracteristica(idCaracteristica: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/caracteristicas/verificar/' + idCaracteristica, httpOptions);\r\n }\r\n\r\n getCaracteristica(idEntidade: number, idCaracteristica: number): Observable {\r\n return this.http.get(this.baseUrlCliente + 'clientes/caracteristicas/caracteristica/' + idEntidade + '/' + idCaracteristica, httpOptions);\r\n }\r\n\r\n getPermissoesCLI(filtro: any) {\r\n return this.http.post(\r\n this.baseUrlCliente + 'clientesPermissoes/filtrar',\r\n filtro\r\n );\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n\r\n // Tipos Colaboração\r\n\r\n getTiposColaboracao(): Observable {\r\n return this.http.get(this.baseUrlCliente + 'tipoColaboracao/lista/', httpOptions);\r\n }\r\n\r\n getGraus() {\r\n return this.http.get>(`${this.baseUrlCliente}clientes/graus`);\r\n }\r\n\r\n enviarSMS(req: any) {\r\n return this.http.post>(`${this.baseUrlCliente}clientes/sms`, req);\r\n }\r\n}\r\n","import { CmsIdiomas } from \"./../../models/cms/cms-idiomas.model\";\r\nimport { CmsIdioma } from \"./../../models/cms/cms-idioma.model\";\r\nimport { env } from \"./../../../../assets/env/env.config\";\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject, Subject, Observable, Subscription } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { environment } from \"environments/environment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CmsGeralService {\r\n idiomaSubject = new Subject();\r\n idiomas: CmsIdiomas;\r\n idiomaDefault: CmsIdioma;\r\n outrosIdiomas: any;\r\n sub: Subscription;\r\n setIdiomaDefault(obj: CmsIdiomas) {}\r\n\r\n baseUrl = `${environment.cmsUrl}`;\r\n constructor(private http: HttpClient) {}\r\n\r\n getIdiomasSubject() {\r\n if (this.idiomas) this.idiomaSubject.next(this.idiomas);\r\n else {\r\n this.getIdiomas().subscribe((dados) => {\r\n this.idiomas = dados;\r\n\r\n this.idiomaDefault = dados.objecto?.find((x) => x.default == true);\r\n this.outrosIdiomas = dados?.objecto?.filter((x) => x.default === false);\r\n this.idiomaSubject.next(dados);\r\n });\r\n }\r\n }\r\n\r\n activarIdioma(codIdioma: string): Observable {\r\n return this.http\r\n .post(this.baseUrl + \"gerais/activarDesativarIdioma/\" + codIdioma, null)\r\n .pipe();\r\n }\r\n\r\n eliminarIdioma(codIdioma: string): Observable {\r\n return this.http\r\n .post(this.baseUrl + \"gerais/removerIdioma/\" + codIdioma, null)\r\n .pipe();\r\n }\r\n\r\n gravarIdioma(modelo: any): Observable {\r\n return this.http.post(this.baseUrl + \"gerais/gravarIdioma\", modelo).pipe();\r\n }\r\n\r\n getemaisEnvio(): Observable {\r\n return this.http\r\n .get(this.baseUrl + \"gerais/emaisEnvio\")\r\n .pipe(catchError(null));\r\n }\r\n\r\n getIdiomas(): Observable {\r\n return this.http\r\n .get(this.baseUrl + \"gerais/idiomas\")\r\n .pipe(catchError(null));\r\n }\r\n\r\n getIdiomaDefault(): Observable {\r\n return this.http\r\n .get(this.baseUrl + \"gerais/idiomaDefault\")\r\n .pipe(catchError(null));\r\n }\r\n\r\n gravarConfiguracao(modelo: any): Observable {\r\n return this.http.post(this.baseUrl + \"gerais/configuracoes\", modelo).pipe();\r\n }\r\n\r\n getConfiguracao(): Observable {\r\n return this.http\r\n .get(this.baseUrl + \"gerais/configuracoes\")\r\n .pipe(catchError(null));\r\n }\r\n getMenusCMS(): Observable {\r\n return this.http\r\n .get(this.baseUrl + \"gerais/menusCms\")\r\n .pipe(catchError(null));\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Router, NavigationStart } from \"@angular/router\";\r\nimport { filter } from \"rxjs/operators\";\r\nimport { LayoutService } from \"./layout.service\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class CustomizerService {\r\n\r\n\r\n colors = [\r\n {\r\n class: \"black\",\r\n active: false\r\n },\r\n {\r\n class: \"white\",\r\n active: false\r\n },\r\n {\r\n class: \"dark-blue\",\r\n active: false\r\n },\r\n {\r\n class: \"grey\",\r\n active: false\r\n },\r\n {\r\n class: \"brown\",\r\n active: false\r\n },\r\n {\r\n class: \"gray\",\r\n active: false\r\n },\r\n {\r\n class: \"purple\",\r\n active: false\r\n },\r\n {\r\n class: \"blue\",\r\n active: false\r\n },\r\n \r\n {\r\n class: \"indigo\",\r\n active: false\r\n },\r\n {\r\n class: \"yellow\",\r\n active: false\r\n },\r\n {\r\n class: \"green\",\r\n active: false\r\n },\r\n {\r\n class: \"pink\",\r\n active: false\r\n },\r\n {\r\n class: \"red\",\r\n active: false\r\n },\r\n {\r\n class: \"slate\",\r\n active: false\r\n }\r\n ];\r\n selectedSidebarColor;\r\n topbarColors: any[];\r\n sidebarColors: any[];\r\n footerColors: any[];\r\n\r\n constructor(\r\n private router: Router, \r\n private layout: LayoutService,\r\n ) {\r\n this.topbarColors = this.getTopbarColors();\r\n this.sidebarColors = this.getSidebarColors();\r\n this.footerColors = this.getFooterColors();\r\n }\r\n\r\n getSidebarColors() {\r\n let sidebarColors = ['black', 'slate', 'white', 'grey', 'brown', 'purple', 'dark-blue',];\r\n return this.colors.filter(color => {\r\n return sidebarColors.includes(color.class);\r\n })\r\n .map(c => {\r\n c.active = c.class === this.layout.layoutConf.sidebarColor;\r\n return {...c};\r\n });\r\n }\r\n\r\n getTopbarColors() {\r\n let topbarColors = ['black', 'slate', 'white', 'dark-gray', 'purple', 'dark-blue', 'indigo', 'pink', 'red', 'yellow', 'green'];\r\n return this.colors.filter(color => {\r\n return topbarColors.includes(color.class);\r\n })\r\n .map(c => {\r\n c.active = c.class === this.layout.layoutConf.topbarColor;\r\n return {...c};\r\n });\r\n }\r\n\r\n getFooterColors() {\r\n let footerColors = ['black', 'slate', 'white', 'dark-gray', 'purple', 'dark-blue', 'indigo', 'pink', 'red', 'yellow', 'green'];\r\n return this.colors.filter(color => {\r\n return footerColors.includes(color.class);\r\n })\r\n .map(c => {\r\n c.active = c.class === this.layout.layoutConf.footerColor;\r\n return {...c};\r\n });\r\n }\r\n\r\n\r\n changeSidebarColor(color) {\r\n this.layout.publishLayoutChange({ sidebarColor: color.class });\r\n this.sidebarColors = this.getSidebarColors();\r\n }\r\n\r\n changeTopbarColor(color) {\r\n this.layout.publishLayoutChange({ topbarColor: color.class });\r\n this.topbarColors = this.getTopbarColors();\r\n }\r\n\r\n changeFooterColor(color) {\r\n this.layout.publishLayoutChange({ footerColor: color.class });\r\n this.footerColors = this.getFooterColors();\r\n }\r\n\r\n removeClass(el, className) {\r\n if (!el || el.length === 0) return;\r\n if (!el.length) {\r\n el.classList.remove(className);\r\n } else {\r\n for (var i = 0; i < el.length; i++) {\r\n el[i].classList.remove(className);\r\n }\r\n }\r\n }\r\n addClass(el, className) {\r\n if (!el) return;\r\n if (!el.length) {\r\n el.classList.add(className);\r\n } else {\r\n for (var i = 0; i < el.length; i++) {\r\n el[i].classList.add(className);\r\n }\r\n }\r\n }\r\n findClosest(el, className) {\r\n if (!el) return;\r\n while (el) {\r\n var parent = el.parentElement;\r\n if (parent && this.hasClass(parent, className)) {\r\n return parent;\r\n }\r\n el = parent;\r\n }\r\n }\r\n hasClass(el, className) {\r\n if (!el) return;\r\n return (\r\n ` ${el.className} `.replace(/[\\n\\t]/g, \" \").indexOf(` ${className} `) > -1\r\n );\r\n }\r\n toggleClass(el, className) {\r\n if (!el) return;\r\n if (this.hasClass(el, className)) {\r\n this.removeClass(el, className);\r\n } else {\r\n this.addClass(el, className);\r\n }\r\n }\r\n\r\n}","import { Injectable } from \"@angular/core\";\r\nimport {\r\n HttpHeaders,\r\n HttpClient,\r\n} from \"@angular/common/http\";\r\nimport { environment } from \"environments/environment\";\r\nimport \"rxjs/add/operator/catch\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DashboardService {\r\n baseUrl: string;\r\n baseUrlFinanca: string;\r\n baseUrlCliente: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrlFinanca = `${environment.apiFinancas}dashboard/`;\r\n this.baseUrlCliente = `${environment.apiClientes}dashboard/`;\r\n }\r\n\r\n metricas_venda_totais(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasVenda/totais\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n\r\n metricas_venda_grafico(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasVenda/graficos\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n\r\n metricas_tesouraria_totais(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasTesouraria/totais\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n\r\n metricas_tesouraria_grafico(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasTesouraria/graficos\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n metricas_compra_totais(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasCompra/totais\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n\r\n metricas_compra_grafico(utilizador:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"metricasCompra/graficos\",utilizador,httpOptions)\r\n .pipe();\r\n }\r\n metricas_Cliente_totais(metricas:any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + \"metricasCliente/totais\",metricas,httpOptions)\r\n .pipe();\r\n }\r\n\r\n metricas_Cliente_grafico(metricas:any): Observable {\r\n return this.http\r\n .post(this.baseUrlCliente + \"metricasCliente/graficos\",metricas,httpOptions)\r\n .pipe();\r\n }\r\n\r\n dadosFiltro(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"dadosFiltro\",httpOptions)\r\n .pipe();\r\n }\r\n\r\n notificacoes(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"notificacoes\",httpOptions)\r\n .pipe();\r\n }\r\n}","import {Injectable} from '@angular/core';\r\nimport {FormControl} from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataIntervalService {\r\n\r\n private selData;\r\n private valido: boolean;\r\n private valorData: string;\r\n private digitouValorInvalido: boolean;\r\n\r\n constructor() {\r\n this.digitouValorInvalido = false;\r\n this.valido = true;\r\n this.valorData = '';\r\n }\r\n\r\n public getSetData() {\r\n return this.selData;\r\n }\r\n\r\n\r\n public setSetData(inicio: string | null, fim: string | null) {\r\n this.selData = {\r\n inicio: inicio,\r\n fim: fim\r\n };\r\n }\r\n\r\n public getValido(): boolean {\r\n return this.valido;\r\n }\r\n\r\n public setValido(valido: boolean): void {\r\n this.valido = valido;\r\n }\r\n\r\n public getValorData(): string {\r\n return this.valorData;\r\n }\r\n\r\n public setValorData(valorData: string): void {\r\n this.valorData = valorData;\r\n }\r\n\r\n public getDigitouValorInvalido(): boolean {\r\n return this.digitouValorInvalido;\r\n }\r\n\r\n public setDigitouValorInvalido(digitouValorInvalido: boolean): void {\r\n this.digitouValorInvalido = digitouValorInvalido;\r\n }\r\n\r\n\r\n public validarCaracter(evento: any) {\r\n let charCode: number = evento.charCode;\r\n if (!(\r\n (charCode >= 47 && charCode <= 57)\r\n || charCode === 45\r\n || charCode === 32 || charCode === 8)) {\r\n this.digitouValorInvalido = true;\r\n } else {\r\n this.digitouValorInvalido = false;\r\n\r\n }\r\n }\r\n\r\n // Ao alterar o valor do Input\r\n public validarData(evento: any, formControl: FormControl, idInput: string) {\r\n let valorAux: string = evento.target.value;\r\n if (this.digitouValorInvalido) {\r\n\r\n let inData: any = document.getElementById(idInput);\r\n inData.value = this.valorData + '';\r\n } else {\r\n this.valorData = evento.target.value;\r\n }\r\n\r\n this.digitouValorInvalido = false;\r\n\r\n let regexp = RegExp('^[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4} - ' +\r\n '[0-3]?[0-9]/[0-1]?[0-9]/[0-9]{4}$');\r\n\r\n if (regexp.test(valorAux)) {\r\n\r\n let data: string = valorAux;\r\n\r\n let valorNumDia1: number = parseInt(data.split('-')[0].split('/')[0]);\r\n let valorNumDia2: number = parseInt(data.split('-')[1].split('/')[0]);\r\n\r\n let valorNumMes1: number = parseInt(data.split('-')[0].split('/')[1]);\r\n let valorNumMes2: number = parseInt(data.split('-')[1].split('/')[1]);\r\n\r\n let valorNumAno1: number = parseInt(data.split('-')[0].split('/')[2]);\r\n let valorNumAno2: number = parseInt(data.split('-')[1].split('/')[2]);\r\n\r\n let intervaloValido: boolean = this.validarIntervalo(valorNumDia1, valorNumMes1, valorNumAno1, valorNumDia2, valorNumMes2, valorNumAno2);\r\n\r\n let max1: number = this.maxDia(valorNumMes1, valorNumAno1);\r\n let max2: number = this.maxDia(valorNumMes2, valorNumAno2);\r\n\r\n if (intervaloValido && ((valorNumDia1 >= 1 && valorNumDia2 >= 1))\r\n && ((valorNumDia1 <= max1\r\n && valorNumDia2 <= max2))\r\n && ((valorNumMes1 >= 1 && valorNumMes2 >= 1))\r\n && ((valorNumMes1 <= 12 && valorNumMes2 <= 12))\r\n ) {\r\n\r\n formControl.setErrors(null);\r\n\r\n this.valido = true;\r\n } else {\r\n\r\n formControl.setErrors({\r\n intervaloDeDataIncorrecto: false, emitEvent: true\r\n });\r\n\r\n this.valido = false;\r\n }\r\n\r\n } else if (valorAux === '') {\r\n formControl.setErrors(null);\r\n } else {\r\n formControl.setErrors({\r\n intervaloDeDataIncorrecto: false, emitEvent: true\r\n });\r\n\r\n this.valido = false;\r\n }\r\n\r\n formControl.markAsTouched({onlySelf: true});\r\n }\r\n\r\n public validarIntervalo(dia1: number, mes1: number, ano1: number, dia2: number, mes2: number, ano2: number): boolean {\r\n return (ano2 > ano1) || (((ano2 === ano1) && mes2 > mes1) || (((ano2 === ano1) && (mes2 === mes1))\r\n && dia2 >= dia1));\r\n }\r\n\r\n // Dia mãximo do mês y ...\r\n public maxDia(mes: number, ano?: number): number {\r\n\r\n if (mes === 1 || mes === 3 || mes === 5 || mes === 7 || mes === 8\r\n || mes === 10 || mes === 12) {\r\n return 31;\r\n } else if (mes === 4 || mes === 6 || mes === 9 || mes === 11) {\r\n return 30;\r\n } else if (mes === 2) {\r\n\r\n // Prevenir Ano bissexto\r\n if (ano && ano % 4 === 0) {\r\n return 29;\r\n }\r\n\r\n return 28;\r\n }\r\n return 1;\r\n }\r\n\r\n public formatarStrParaDataISO(data: string[]): string {\r\n data.reverse();\r\n return data[0] + '/' + data[1] + '/' + data[2];\r\n }\r\n\r\n public reverteFormatarStrParaDataISO(data: string[]): string {\r\n data;\r\n return data[1] + '-' + data[0] + '-' + data[2];\r\n }\r\n\r\n public reverteFormatarStrParaDataISOPt(data: string[]): string {\r\n data;\r\n return data[2] + '-' + data[1] + '-' + data[0];\r\n }\r\n\r\n public reverteFormatarStrParaDataISOPtMom(data: string[]): string {\r\n data;\r\n return data[0] + '-' + data[1] + '-' + data[2];\r\n }\r\n\r\n\r\n public validarData1(evento: any, formControl: FormControl, idInput: string) {\r\n let valorAux: string = evento.target.value;\r\n\r\n if (this.digitouValorInvalido) {\r\n\r\n let inData: any = document.getElementById(idInput);\r\n inData.value = this.valorData + '';\r\n } else {\r\n this.valorData = evento.target.value;\r\n }\r\n\r\n this.digitouValorInvalido = false;\r\n\r\n let regexp = RegExp('^[0-3]?[0-9]/[0-1]?[0-9]/(19|[2-9][0-9]){1}[0-9]{2}$');\r\n // let regexp = RegExp('^[0-3]?[0-9]/[0-1]?[0-9]/[1-9][0-9][0-9]{2}$');\r\n\r\n if (regexp.test(valorAux)) {\r\n\r\n let data: string = valorAux;\r\n\r\n let valorNumDia1: number = parseInt(data.split('/')[0]);\r\n\r\n let valorNumMes1: number = parseInt(data.split('/')[1]);\r\n\r\n let valorNumAno1: number = parseInt(data.split('/')[2]);\r\n\r\n let max1: number = this.maxDia(valorNumMes1, valorNumAno1);\r\n\r\n if ((valorNumDia1 >= 1)\r\n && ((valorNumDia1 <= max1))\r\n && ((valorNumMes1 >= 1))\r\n && ((valorNumMes1 <= 12))\r\n ) {\r\n\r\n formControl.setErrors(null);\r\n\r\n this.valido = true;\r\n } else {\r\n\r\n formControl.setErrors({\r\n DataIncorrecto: false, emitEvent: true\r\n });\r\n\r\n this.valido = false;\r\n }\r\n\r\n } else {\r\n formControl.setErrors({\r\n DataIncorrecto: false, emitEvent: true\r\n });\r\n\r\n this.valido = false;\r\n }\r\n\r\n formControl.markAsTouched({onlySelf: true});\r\n }\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Utilizadores} from '../../models/aplicacao/utilizadores';\r\nimport {Observable} from 'rxjs/internal/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AppDataService {\r\n private userData$ = new BehaviorSubject(null);\r\n private moduloProcessosActivo$ = new BehaviorSubject(null);\r\n private logotipoApp$ = new BehaviorSubject(null);\r\n private nome$ = new BehaviorSubject('');\r\n private fotoPerfil$ = new BehaviorSubject('');\r\n private varianteTab$ = new BehaviorSubject(null);\r\n exportar = new BehaviorSubject(false);\r\n rotaActual = new BehaviorSubject(null);\r\n diasEmFalta = new BehaviorSubject(null);\r\n $mostrarAviso = new BehaviorSubject(false);\r\n\r\n constructor() {\r\n }\r\n\r\n setRotalActual(rota: string) {\r\n this.rotaActual.next(rota);\r\n }\r\n\r\n getRotalActual() {\r\n return this.rotaActual.asObservable();\r\n }\r\n\r\n setEstadoModuloProcessos(estado: boolean) {\r\n this.moduloProcessosActivo$.next(estado);\r\n }\r\n\r\n getEstadoModuloProcessos(): Observable {\r\n return this.moduloProcessosActivo$.asObservable();\r\n }\r\n\r\n setInfoUtilizador(utilizador: Utilizadores) {\r\n this.userData$.next(utilizador);\r\n }\r\n\r\n getInfoUtilizador(): Observable {\r\n return this.userData$.asObservable();\r\n }\r\n\r\n setNome(nome: string) {\r\n this.nome$.next(nome);\r\n }\r\n\r\n setFotoPerfil(foto: string) {\r\n this.fotoPerfil$.next(foto);\r\n }\r\n\r\n getFotoPerfil(): Observable {\r\n return this.fotoPerfil$.asObservable();\r\n }\r\n\r\n getNome(): Observable {\r\n return this.nome$.asObservable();\r\n }\r\n\r\n setTabVariante(tabvariante: any) {\r\n this.varianteTab$.next(tabvariante);\r\n }\r\n\r\n getTabVariante() {\r\n return this.varianteTab$.asObservable();\r\n }\r\n\r\n setExportar(exportar: boolean) {\r\n this.exportar.next(exportar);\r\n }\r\n\r\n getExportar() {\r\n return this.exportar.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Utilizadores} from '../../models/aplicacao/utilizadores';\r\nimport {Observable} from 'rxjs/internal/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FixedStoreService {\r\n private fixTop$ = new BehaviorSubject(false);\r\n\r\n constructor() { }\r\n\r\n setFixTop(fixed: any) {\r\n this.fixTop$.next(fixed);\r\n }\r\n\r\n getFixTop(): Observable {\r\n return this.fixTop$.asObservable();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {BehaviorSubject} from 'rxjs';\r\nimport {Utilizadores} from '../../models/aplicacao/utilizadores';\r\nimport {Observable} from 'rxjs/internal/Observable';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserDataService {\r\n private userData$ = new BehaviorSubject(null);\r\n private logotipoApp$ = new BehaviorSubject(null);\r\n private nome$ = new BehaviorSubject('');\r\n private fotoPerfil$ = new BehaviorSubject('');\r\n private varianteTab$ = new BehaviorSubject(null);\r\n exportar = new BehaviorSubject(false);\r\n\r\n constructor() { }\r\n\r\n setLogo(logo: any) {\r\n this.logotipoApp$.next(logo);\r\n }\r\n\r\n getLogo(): Observable {\r\n return this.logotipoApp$.asObservable();\r\n }\r\n\r\n setInfoUtilizador(utilizador: Utilizadores) {\r\n this.userData$.next(utilizador);\r\n }\r\n\r\n getInfoUtilizador(): Observable {\r\n return this.userData$.asObservable();\r\n }\r\n\r\n setNome(nome: string) {\r\n this.nome$.next(nome);\r\n }\r\n\r\n setFotoPerfil(foto: string) {\r\n this.fotoPerfil$.next(foto);\r\n }\r\n getFotoPerfil(): Observable {\r\n return this.fotoPerfil$.asObservable();\r\n }\r\n\r\n getNome(): Observable {\r\n return this.nome$.asObservable();\r\n }\r\n setTabVariante(tabvariante: any) {\r\n this.varianteTab$.next(tabvariante);\r\n }\r\n getTabVariante() {\r\n return this.varianteTab$.asObservable();\r\n}\r\n\r\nsetExportar(exportar: boolean) {\r\n this.exportar.next(exportar);\r\n}\r\n\r\ngetExportar() {\r\n return this.exportar.asObservable();\r\n}\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {environment} from '../../../../environments/environment';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {Opcao} from 'app/shared/models/equipamentos/opcao';\r\nimport {EqClassificacao, EqClassificacaoResponse} from '../../models/equipamentos/eq-classificacao';\r\nimport {catchError} from 'rxjs/operators';\r\nimport {of, throwError} from 'rxjs';\r\nimport {Unidade} from '../../models/aplicacao/unidade';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EqClassificacaoService {\r\n readonly url = `${environment.apiEquipamentos}Classificacoes`;\r\n\r\n constructor(private http: HttpClient) {\r\n }\r\n\r\n getOpcoes() {\r\n return this.http.get>(`${this.url}/opcoes`);\r\n }\r\n\r\n getUnidades(idTipo: number) {\r\n return this.http.get(`${this.url}/unidades-medida`, {params: {idTipo}});\r\n }\r\n\r\n postClassificacao(modelo: EqClassificacao) {\r\n return this.http.post>(this.url, modelo);\r\n }\r\n\r\n getClassificacoes() {\r\n return this.http.get>(this.url).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''} as Resposta) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getClassificacao(id: number) {\r\n return this.http.get>(`${this.url}/${id}`);\r\n }\r\n\r\n putClassificacao(modelo: EqClassificacao) {\r\n return this.http.post>(`${this.url}/${modelo.id}`, modelo);\r\n }\r\n\r\n deleteClassificacao(id: number) {\r\n return this.http.post>(`${this.url}/remover/${id}`, {});\r\n }\r\n\r\n filtrarDocumentos(req: any) {\r\n return this.http.post>(`${this.url}/documentos`, req);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {environment} from '../../../../environments/environment';\r\nimport {Equipamento, EquipamentoResponse} from '../../models/equipamentos/equipamento';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {EquipamentoFiltro} from '../../models/equipamentos/equipamento-filtro';\r\nimport {catchError, tap} from 'rxjs/operators';\r\nimport {of, Subject, throwError} from 'rxjs';\r\nimport {Armazem} from '../../models/artigos/armazem';\r\nimport {EqEstado} from '../../models/equipamentos/eq-estado';\r\nimport {Documentos} from '../../models/financas/documentos/documentos';\r\nimport {LoginService} from '@services/aplicacao-service/login.service';\r\nimport {FiltroPreferencia} from '../../models/equipamentos/filtro-preferencia';\r\nimport {HttpTransportType, HubConnection, HubConnectionBuilder, LogLevel} from '@microsoft/signalr';\r\nimport { MenuDataService } from '@services/aplicacao-service/data/menu-data.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EquipamentoService {\r\n url = `${environment.apiEquipamentos}Equipamentos`;\r\n private connection!: HubConnection;\r\n private equipmentUpdatedSubject = new Subject();\r\n equipamentosUpdated$ = this.equipmentUpdatedSubject.asObservable();\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService, private menuStore: MenuDataService) {\r\n this.menuStore.getListaMenus().subscribe((menus) => {\r\n let menuEquipamento = menus.findIndex((m) => m.codMenu === \"EQUIPA\") !== -1; \r\n if(menuEquipamento){\r\n this.connect();\r\n }\r\n });\r\n }\r\n\r\n connect() {\r\n this.connection = new HubConnectionBuilder()\r\n .configureLogging(LogLevel.Information)\r\n .withAutomaticReconnect()\r\n .withUrl(`${environment.equipamentosHub}equipamentos`, {\r\n withCredentials: false,\r\n transport: HttpTransportType.WebSockets\r\n })\r\n .build();\r\n this.connection.on('UpdateEquipamentos', () => this.equipmentUpdatedSubject.next());\r\n this.connection.start().then(() => console.log('SignalR connection started'));\r\n }\r\n\r\n updateEquipamentos() {\r\n return this.connection.invoke('LoopbackUpdateEquipamentos');\r\n }\r\n\r\n postEquipamento(modelo: Equipamento) {\r\n return this.http.post>(this.url, modelo);\r\n }\r\n\r\n getEquipamentos() {\r\n return this.http.get>(this.url);\r\n }\r\n\r\n getEquipamento(id: number) {\r\n return this.http.get>(`${this.url}/${id}`,\r\n {params: {idUtilizador: this.loginService.getUtilizadorSessao()?.idUtilizador}});\r\n }\r\n\r\n filtrarEquipamentos(filtro: EquipamentoFiltro) {\r\n filtro.idUtilizador = this.loginService.getUtilizadorSessao()?.idUtilizador;\r\n return this.http.post>(`${this.url}/filtrar`, filtro)\r\n .pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''} as Resposta) : throwError(err);\r\n }));\r\n }\r\n\r\n putEquipamento(modelo: Equipamento) {\r\n return this.http.post>(`${this.url}/${modelo.id}`, modelo);\r\n }\r\n\r\n deleteEquipamento(id: number) {\r\n return this.http.post>(`${this.url}/remover/${id}`, {});\r\n }\r\n\r\n getArmazens() {\r\n return this.http.get>(`${this.url}/armazens`);\r\n }\r\n\r\n getCombustiveis() {\r\n return this.http.get>(`${this.url}/combustiveis`);\r\n }\r\n\r\n getEmpresas() {\r\n return this.http.get>(`${this.url}/empresas`);\r\n }\r\n\r\n putEquipamentoLote(req: any) {\r\n return this.http.post>(`${this.url}/lote`, req);\r\n }\r\n\r\n getDocumentos(id: number) {\r\n return this.http.get>(`${this.url}/${id}/documentos`,\r\n {params: {idUtilizador: this.loginService.getUtilizadorSessao()?.idUtilizador}});\r\n }\r\n\r\n imprimirDocumentoEntidade(id: number, code: string) {\r\n return this.http.get>(`${this.url}/entidades/${id}/documentos`, {params: {code}});\r\n }\r\n\r\n filtrarPermissoes(filtro: any) {\r\n return this.http.post>(`${this.url}/permissoes/filtrar`, filtro);\r\n }\r\n\r\n getPreferencias(filtro: any) {\r\n return this.http.post>(`${this.url}/preferencias/filtrar`, filtro);\r\n }\r\n\r\n patchEntidade(req: { dataFim: Date; id: number; dataInicio: Date }) {\r\n return this.http.post>(`${this.url}/entidades`, req);\r\n }\r\n}\r\n","import { ErrorHandler, Injectable, Injector, ApplicationRef, ChangeDetectorRef } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ErrorHandlerService extends ErrorHandler {\r\n\r\n errorCount = 0;\r\n\r\n constructor(protected injector: Injector) {\r\n super();\r\n }\r\n // https://github.com/angular/angular/issues/17010\r\n handleError(error: any) {\r\n let increment = 5;\r\n let max = 50;\r\n\r\n // Prevents change detection\r\n let debugCtx = error['ngDebugContext'];\r\n let changeDetectorRef = debugCtx && debugCtx.injector.get(ChangeDetectorRef);\r\n if (changeDetectorRef) changeDetectorRef.detach();\r\n\r\n this.errorCount = this.errorCount + 1;\r\n if (this.errorCount % increment === 0) {\r\n console.log(' ');\r\n console.log(`errorHandler() was called ${this.errorCount} times.`);\r\n console.log(' ');\r\n super.handleError(error);\r\n\r\n if (this.errorCount === max) {\r\n console.log(' ');\r\n console.log(`Preventing recursive error after ${this.errorCount} recursive errors.`);\r\n console.log(' ');\r\n\r\n let appRef = this.injector.get(ApplicationRef);\r\n appRef.tick();\r\n }\r\n }\r\n else if (this.errorCount === 1) {\r\n super.handleError(error);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\n// import {ExportAsConfig, ExportAsService} from 'ngx-export-as';\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportFile {\r\nconstructor(private exportAs: any) {\r\n}\r\n\r\n exportToFile(_type?: any, name?: string, id?: string, _orientation?: string) {\r\n // ExportAsConfig\r\n const exportAsConfig: any = {\r\n type: _type, // the type you want to download\r\n elementIdOrContent: id, // the id of html/table element,\r\n options: { // html-docx-js document options\r\n jsPDF: {\r\n orientation: 'landscape'\r\n },\r\n orientation: _orientation,\r\n margins: {\r\n top: '20'\r\n }\r\n }\r\n };\r\n this.exportAs.save(exportAsConfig, name).subscribe(res => console.log('Resultado da criacao', res));\r\n }\r\n\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {IVAs} from 'app/shared/models/artigos/IVAs';\r\nimport {Observable} from 'rxjs/internal/Observable';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders, HttpParams} from '@angular/common/http';\r\nimport {environment} from 'environments/environment';\r\nimport {catchError} from 'rxjs/internal/operators/catchError';\r\nimport {throwError} from 'rxjs/internal/observable/throwError';\r\nimport {Estados} from '../../models/financas/documentos/estados';\r\nimport {MetodosPagRec} from '../../models/financas/metodosPagRec';\r\nimport {CondicoesPagamento} from '../../models/financas/condicoesPagamento';\r\nimport {Documentos} from 'app/shared/models/financas/documentos/documentos';\r\nimport {FinRetencao} from '../../models/financas/finRetencao';\r\nimport {Series} from 'app/shared/models/financas/documentos/series';\r\nimport {ConfiguracaoEmpresa} from 'app/shared/models/financas/documentos/configuracaoempresa';\r\nimport {ValidarSerie} from 'app/shared/models/financas/documentos/validarSerie';\r\nimport {EstadosMotivos} from 'app/shared/models/financas/documentos/estadosmotivos';\r\nimport {SaftXml} from 'app/shared/models/financas/documentos/saftxml';\r\nimport 'rxjs/add/operator/catch';\r\nimport {FiltroDocumentoReferencia} from '../../models/financas/filtro-documento-referencia';\r\nimport {EntidadeTesouraria} from 'app/shared/models/financas/area-tesouraria';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {LoginService} from '../aplicacao-service/login.service';\r\nimport {FiltroMetodoPagamentoDto} from '../../models/financas/filtro-metodo-pagamento.dto';\r\nimport {FiltroSaftDto} from '../../models/financas/filtro-saft.dto';\r\nimport {ArtigosFacturacao} from '../../models/artigos/artigosfacturacao';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n 'Accept': 'application/json'\r\n })\r\n};\r\n\r\ntype HttpOptions = {\r\n headers?: HttpHeaders | { [header: string]: string | string[]; };\r\n observe?: 'body'; params?: HttpParams | { [param: string]: string | string[]; };\r\n reportProgress?: boolean; responseType?: 'json' /* or \"text\" as \"json\" */;\r\n withCredentials?: boolean;\r\n}\r\n\r\nlet get_http_options_text = (): HttpOptions => {\r\n return {\r\n headers: {'Content-Type': 'text/plain'},\r\n observe: 'body',\r\n responseType: 'text' as 'json', // @see https://github.com/angular/angular/issues/18586\r\n withCredentials: true\r\n };\r\n};\r\n\r\n\r\nconst httpOptionsXml = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'text/html; charset=UTF-8'\r\n })\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FinancasService {\r\n baseUrl: string;\r\n baseUrlFinanca: string;\r\n\r\n constructor(private http: HttpClient, private loginService: LoginService) {\r\n this.baseUrlFinanca = `${environment.apiFinancas}`;\r\n }\r\n\r\n getEntidadeTesouraria(): Observable> {\r\n return this.http.get>(\r\n this.baseUrlFinanca + 'tesouraria/areas',\r\n httpOptions\r\n );\r\n }\r\n\r\n getIVAs(codPais?: string): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'ivas/' + codPais, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTaxasCambioMomento(idMoedaLocal: number, idMoedaPretendida: number, dataCambio: string): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'financas/taxasCambio/' + idMoedaLocal + '/' + idMoedaPretendida + '/' + dataCambio, httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n getTiposIVAs(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'tiposTaxasIva/', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEmpresasFi() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'financas/empresas',\r\n httpOptions\r\n );\r\n }\r\n\r\n getEmpresaFi(idEmpresa) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'financas/empresas/' + idEmpresa,\r\n httpOptions\r\n );\r\n }\r\n\r\n efectuarCobrancaAdministrativos(modelo:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/administrativos/', modelo)\r\n .pipe();\r\n }\r\n\r\n getItemsDoc(idDoc: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentosFa/itens/' + idDoc, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gerarSaft(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/saftao/', modelo)\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getSAFT(filtro: FiltroSaftDto) {\r\n return this.http.post(this.baseUrlFinanca + 'Saft/getXmlFile', filtro);\r\n }\r\n\r\n gerarFicheiroSaft(\r\n idEmpresa: any,\r\n dataInicio: any,\r\n dataFim: any\r\n ): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'Saft/getXmlFile/' +\r\n 'AO' +\r\n '/' +\r\n idEmpresa +\r\n '/' +\r\n dataInicio +\r\n '/' +\r\n dataFim\r\n );\r\n }\r\n\r\n getCabecalhosDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas')\r\n .pipe(catchError(null));\r\n }\r\n\r\n getDocumentosPendentes() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'documentosTesouraria/pendentes'\r\n );\r\n }\r\n\r\n getDocumentosFA(filtro: any): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'vendas', filtro, httpOptions).pipe();\r\n }\r\n\r\n getDocumentosFAInscricoes(filtro: any): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'vendas/realizacoesInscricoes', filtro, httpOptions).pipe();\r\n }\r\n\r\n // Email do Documento\r\n getEmailDocumento(idDocumento: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/email/' + idDocumento, httpOptions)\r\n .pipe();\r\n }\r\n\r\n enviarEmailFactura(value: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/email', value, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Email de tesouraria\r\n\r\n getEmailTesouraria(idRecibo: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentosTesouraria/email/' + idRecibo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Anexo\r\n getAnexoDocumento(idDocumento: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/anexo/' + idDocumento, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getDocumentosFAListagemPDF(filtro: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/ListagemPDF', filtro, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getItensCompras(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'compras/itens', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getItensDocumentosFA(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/Itens', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getDetalhesDocumentoFA(idDocumento: number) {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/' + idDocumento)\r\n .pipe();\r\n }\r\n\r\n getDocumentoFAImpressao(idDocumento: number, codFormatoImpressao?: string) {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'vendas/imprimirDocumento/' + idDocumento + '/' + codFormatoImpressao, httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getDocumentoComprasImpressao(idDocumento: number) {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'compras/imprimirDocumento/' + idDocumento, httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getDocumentosFAPrevisualizar(documento: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/previsualizarDocumento', documento, httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n getDocumentoFA(\r\n numeroDocumento: number,\r\n idTipo: number,\r\n idSerie: number,\r\n idEmpresa: number\r\n ): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'vendas/' +\r\n idEmpresa +\r\n '/' +\r\n idSerie +\r\n '/' +\r\n idTipo +\r\n '/' +\r\n numeroDocumento, httpOptions\r\n );\r\n }\r\n\r\n getTiposDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/tipos', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getTipoDocumento(idTipoDocumento: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/tipo/' + idTipoDocumento, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n criartipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/tipo/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminartipoDocumento(idTipoDocumento: number): Observable {\r\n return this.http\r\n .delete(\r\n this.baseUrlFinanca + 'vendas/tipo/remover/' + idTipoDocumento, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n editartipoDocumento(modelo: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'vendas/tipo/actualizar', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getEstadosDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentos/estados', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadosPagamento(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentos/estadosPagamento', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCategoriasDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentos/categorias', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getFormatosImpressao(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'vendas/formatosImpressao', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getMovimentosDocumentos(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'financas/movimentos', httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadoDocumento(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentos/estado/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getProximoNumero(\r\n idEmpresa: number,\r\n idSerie: number,\r\n idTipoDocumento: number\r\n ): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'vendas/numerodocumento/' +\r\n idEmpresa +\r\n '/' +\r\n idSerie +\r\n '/' +\r\n idTipoDocumento, httpOptions\r\n ).pipe();\r\n }\r\n\r\n getMetodosPagRec(usadaPagamentos: boolean): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'metodosPagRec/' + usadaPagamentos ? 'pag' : '', httpOptions\r\n );\r\n }\r\n\r\n getMetodoPagRec(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'MetodosPagRec/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getMetodosPagamento(usadaPagamentos?: boolean): Observable {\r\n const opcao = usadaPagamentos ? '/pag' : '';\r\n return this.http.get(this.baseUrlFinanca + 'metodosPagRec' + opcao, httpOptions);\r\n }\r\n\r\n getMetodosPagamentos(path: string) {\r\n return this.http.get(`${this.baseUrlFinanca}metodosPagRec/${path}`, httpOptions);\r\n }\r\n\r\n getMetodosPagamentosTemp(filtro: FiltroMetodoPagamentoDto) {\r\n return this.http.post(`${this.baseUrlFinanca}metodosPagRec/obter`, filtro);\r\n }\r\n\r\n getMetodosPagamentosEmpresa(filtro: FiltroMetodoPagamentoDto) {\r\n return this.http.post(`${this.baseUrlFinanca}metodosPagRec/porEmpresa`, filtro);\r\n }\r\n\r\n getPendentesFiltro(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'compras/filtroPendente/', httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCondicoesPagamentos() { // : Observable\r\n return this.http.get>(this.baseUrlFinanca + 'condicoesPagamento', httpOptions);\r\n }\r\n\r\n getCondicaoPagamento(id: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'condicaopagamento/' + id, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n activarCondicaoPagamento(opcao: string, idCondicaoPagamento: number) {\r\n return this.http.post(\r\n this.baseUrlFinanca +\r\n 'condicoesPagamento/' +\r\n opcao +\r\n '/' +\r\n idCondicaoPagamento,\r\n httpOptions\r\n );\r\n }\r\n\r\n getDataVencimentoDoc(dataDocumento: any, idCondicaoPagamento) {\r\n return this.http.post>(this.baseUrlFinanca + 'condicoesPagamento/dataVencimento',\r\n {\r\n dataDocumento,\r\n idCondicaoPagamento\r\n }, httpOptions\r\n );\r\n }\r\n\r\n activarMetodoPag(acccao: string, recPag: string, codMetodoPagRec: string) {\r\n return this.http.post(\r\n this.baseUrlFinanca +\r\n 'metodosPagRec/' +\r\n acccao +\r\n '/' +\r\n recPag +\r\n '/' +\r\n codMetodoPagRec,\r\n httpOptions\r\n );\r\n }\r\n\r\n getEmpresasTiposConta(idEmpresa?: number, idTipoConta?: number): any {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'bancosContas/contasEmpresaTipoConta/' +\r\n idEmpresa +\r\n '/' +\r\n idTipoConta, httpOptions\r\n );\r\n }\r\n\r\n getTiposContaEmpresa(idEmpresa?: number, idTipoConta?: number): any {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'bancosContas/contasEmpresaTipoConta/' +\r\n idEmpresa +\r\n '/' +\r\n idTipoConta, httpOptions\r\n );\r\n }\r\n\r\n getContasEmpresa(idEmpresa: number): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'bancosContas/contasEmpresa/' +\r\n idEmpresa, httpOptions\r\n ).pipe();\r\n }\r\n\r\n\r\n gravarDocumentoFA(modelo: any): Observable {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'vendas/Gravar',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n\r\n // gerarToken(model: any) {\r\n // return this.http\r\n // .post(this.baseUrlFinanca + 'gerartoken/', model)\r\n // .pipe(catchError(null));\r\n // }\r\n\r\n getRetencoes(codPais: string): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'retencoes/' + codPais, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getRetencoesFA(idCliente, codPais, dataDocumento): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca +\r\n 'Clientes/ClienteRetencoes/' +\r\n idCliente +\r\n '/' +\r\n codPais +\r\n '/' +\r\n dataDocumento, httpOptions\r\n )\r\n .pipe(\r\n catchError((err: any) => {\r\n return throwError(err);\r\n })\r\n );\r\n }\r\n\r\n getRetencao(codPais: string, idRetencao: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'retencoes/' + codPais + '/' + idRetencao, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getClienteFA(idCliente, codArea): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'clientes/' + idCliente + '/' + codArea, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Series\r\n getSeriesTodas(): Observable {\r\n return this.http.get(this.baseUrlFinanca + 'series').pipe(catchError(null));\r\n }\r\n\r\n // Series\r\n getSeriesTodasActivas(): Observable {\r\n return this.http.get(this.baseUrlFinanca + 'series/activas').pipe(catchError(null));\r\n }\r\n\r\n //AC eliminar metodo\r\n // getSeries(): Observable {\r\n // return this.http.get(this.baseUrlFinanca + 'series');\r\n // }\r\n\r\n getTodasSeries(modelo: any): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'series/obter', modelo, httpOptions);\r\n }\r\n\r\n\r\n criarSerie(modelo: any, idSerie) {\r\n if (idSerie) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'series/actualizar/' + idSerie,\r\n modelo,\r\n httpOptions\r\n );\r\n } else {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'series',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n }\r\n\r\n eliminarSerie(idSerie: any) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'series/eliminar/' + idSerie,\r\n httpOptions\r\n );\r\n }\r\n\r\n activarSerie(opcao: any, idSerie: number) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'series/' + opcao + '/' + idSerie,\r\n httpOptions\r\n );\r\n }\r\n\r\n actualizarSerie(idSerie: any) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'series/actualizar/' + idSerie,\r\n httpOptions\r\n );\r\n }\r\n\r\n getTiposConta() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/tiposContas',\r\n httpOptions\r\n );\r\n }\r\n\r\n verificarSeriesAnoCorrente(\r\n idEmpresa: number,\r\n idTipoDoc: number\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca +\r\n 'documento/verificarSeriesAnoCorrente/' +\r\n idEmpresa +\r\n '/' +\r\n idTipoDoc, httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n getConfiguracaoEmpresa(idEmpresa: number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + 'documentos/configuracaoEmpresa/' + idEmpresa, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadosPeloTipoDocumento(idTipoDocumento: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca +\r\n 'documentos/estadoTipoDocumento/' +\r\n idTipoDocumento, httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getEstadosMotivos(codEstadoDocumento?: string): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'vendas/motivosEstado/' + codEstadoDocumento, httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n getDocumentosMotivos(): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'vendas/motivosDocumento', httpOptions\r\n )\r\n .pipe(catchError(null));\r\n }\r\n\r\n\r\n gravarMotivo(modelo: any) {\r\n return this.http\r\n .post(\r\n this.baseUrlFinanca + 'vendas/motivosEstado',\r\n modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n alterarEstadoDocumentoFA(doc: any): Observable {\r\n let modelo = {\r\n IdDocumento: doc.idDocumento,\r\n IdMotivo: doc.idMotivo,\r\n IdUtilizador: doc.idUtilizador,\r\n Utilizador: this.loginService.getSessaoUtilizador(),\r\n };\r\n return this.http\r\n .post(\r\n this.baseUrlFinanca +\r\n 'vendas/anular/', modelo,\r\n httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n validarSerie(idEmpresa: number, idSerie: number, data: string) {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca +\r\n 'documento/validarSerie/' +\r\n idEmpresa +\r\n '/' +\r\n idSerie +\r\n '/' +\r\n data, httpOptions\r\n )\r\n .pipe(catchError(this.handleError));\r\n }\r\n\r\n filtrarCabecalhos(modelo: any) {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'documentos/filtrados' + modelo, httpOptions)\r\n .pipe(catchError(null));\r\n }\r\n\r\n //endPoints para obterEntidade das áres ... Início ...\r\n getEntidadesCliente() {\r\n return this.http.get(this.baseUrlFinanca + 'clientes', httpOptions);\r\n }\r\n\r\n getEntidadesClientePorArea(codAreaTesouraria: string) {\r\n return this.http.get(this.baseUrlFinanca + 'clientes/' + codAreaTesouraria, httpOptions);\r\n }\r\n\r\n getEntidadesClientePorAreaPendentes(codAreaTesouraria: string) {\r\n return this.http.get(this.baseUrlFinanca + 'clientes/pendentes/' + codAreaTesouraria, httpOptions);\r\n }\r\n\r\n\r\n getEntidadesFornecedor() {\r\n return this.http.get(this.baseUrlFinanca + 'clientes/fornecedores', httpOptions);\r\n }\r\n\r\n getEntidadesEstado() {\r\n return this.http.get(this.baseUrlFinanca + 'clientes/estado', httpOptions);\r\n }\r\n\r\n getEntidadesColaborador() {\r\n return this.http.get(this.baseUrlFinanca + 'clientes/colaboradores', httpOptions);\r\n }\r\n\r\n//endPoints para obterEntidade das áres ... Fim ...\r\n\r\n getTaxasCambio(filtro: any): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'financas/obterTaxasCambio', filtro, httpOptions);\r\n }\r\n\r\n gravarTaxasCambio(modelo: any) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'financas/inserirTaxaCambio',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n\r\n getConfigTaxaCambio(\r\n idMoedaLocal?: number,\r\n idMoedaPretendida?: number,\r\n dataInicio?: any,\r\n dataFim?: any\r\n ): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'financas/taxasCambio/' +\r\n idMoedaLocal +\r\n '/' +\r\n idMoedaPretendida +\r\n '/' +\r\n dataInicio +\r\n '/' +\r\n dataFim, httpOptions\r\n );\r\n }\r\n\r\n getNumeracaoDocumentos(): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'vendas/numeracaoDocumentos',\r\n httpOptions\r\n );\r\n }\r\n\r\n getConfigEmpresas(): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'financas/empresas',\r\n httpOptions\r\n );\r\n }\r\n\r\n getConfigEmpresa(idEmpresa) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'financas/empresas/' + idEmpresa,\r\n httpOptions\r\n );\r\n }\r\n\r\n getDocsTePendentesRetencao(idEmpresa: number, idCliente: number) {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/pendentesRetencao/' +\r\n idEmpresa +\r\n '/' +\r\n idCliente,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getTiposDocumentosTe(): Observable {\r\n return this.http.get(this.baseUrlFinanca + 'documentosTesouraria/tipos', httpOptions);\r\n }\r\n\r\n getDocumentosTEPendentes(filtroTe: any) {\r\n return this.http.post(this.baseUrlFinanca + 'documentosTesouraria/pendentes', filtroTe, httpOptions);\r\n }\r\n\r\n getDocumentosTEPendentesPdf(filtroTe: any): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'documentosTesouraria/pendentes/pdf', filtroTe, httpOptions);\r\n }\r\n\r\n getDocumentosTEPdf(filtroTe: any) {\r\n return this.http.post(this.baseUrlFinanca + 'documentosTesouraria/pdf', filtroTe, httpOptions).pipe();\r\n }\r\n\r\n getTipoDocumentoTe(idTipo: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'documentosTesouraria/tipo/' + idTipo,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getProximoNumeroTe(\r\n idEmpresa: number,\r\n idSerie: number,\r\n codTipoDocumento: string\r\n ) {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/proximoNumero/' +\r\n idEmpresa +\r\n '/' +\r\n idSerie +\r\n '/' +\r\n codTipoDocumento, httpOptions\r\n );\r\n }\r\n\r\n gravarDocumentoTe(documemto: any) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'documentosTesouraria/gravar',\r\n documemto,\r\n httpOptions\r\n );\r\n }\r\n\r\n\r\n getDocumentosTe(filtro: any): Observable {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'documentosTesouraria',\r\n filtro,\r\n httpOptions\r\n );\r\n }\r\n\r\n getDocumentoTe(idDocumento: number): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'documentosTesouraria/' + idDocumento,\r\n httpOptions\r\n );\r\n }\r\n\r\n getDocumentoFAPagar(idDocumento: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlFinanca + 'documentosTesouraria/pagar/' + idDocumento, httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n pesquisarDocumentoTe(\r\n idEmpresa: number,\r\n idSerie: number,\r\n idTipo: number,\r\n numeroDoc: number\r\n ): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/' +\r\n idEmpresa +\r\n '/' +\r\n idSerie +\r\n '/' +\r\n idTipo +\r\n '/' +\r\n numeroDoc, httpOptions\r\n );\r\n }\r\n\r\n // anular/{idUtilizador}/{idDocumento}/{idMotivo}\r\n alterarDocumentoTe(\r\n idUtilizador: number,\r\n idDocumento: number,\r\n idMotivo: number\r\n ) {\r\n return this.http.post(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/anular/' +\r\n idUtilizador +\r\n '/' +\r\n idDocumento +\r\n '/' +\r\n idMotivo,\r\n httpOptions\r\n );\r\n }\r\n\r\n anularDocumento(filtro: any) {\r\n return this.http.post(this.baseUrlFinanca + 'documentosTesouraria/anular', filtro);\r\n }\r\n\r\n getMotivosAnulacaoTe() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'documentosTesouraria/motivosAnulacao',\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarMotivoAnulacaoTe(motivoAnulacao: string) {\r\n return this.http.post(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/motivosAnulacao/' +\r\n motivoAnulacao,\r\n httpOptions\r\n );\r\n }\r\n\r\n // Novos endpoints //\r\n getMotivosFA() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'vendas/motivos',\r\n httpOptions\r\n );\r\n }\r\n\r\n getMotivosEstadosFA() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'vendas/motivosEstado',\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarMotivosEstadosFA() {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'vendas/motivosEstado',\r\n httpOptions\r\n );\r\n }\r\n\r\n getMotivoEstadoFA(codEstado: string) {\r\n return this.http.get>(\r\n this.baseUrlFinanca + 'vendas/motivosEstado/' + codEstado,\r\n httpOptions\r\n );\r\n }\r\n\r\n actualizarNumeroImpressoes(idDocumento?) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'vendas/actualizarImpressoes/' + idDocumento,\r\n httpOptions\r\n );\r\n }\r\n\r\n actualizarNumeroImpressoesTe(idDocumento?) {\r\n return this.http.post(\r\n this.baseUrlFinanca +\r\n 'documentosTesouraria/actualizarImpressoes/' +\r\n idDocumento,\r\n httpOptions\r\n );\r\n }\r\n\r\n getBancos(): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/bancos',\r\n httpOptions\r\n );\r\n }\r\n\r\n getBanco(idBanco) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/bancos/' + idBanco,\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarBanco(modelo: any, idBanco?: any) {\r\n if (!idBanco) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'bancosContas/bancos',\r\n modelo,\r\n httpOptions\r\n );\r\n } else {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'bancosContas/bancoUpdate',\r\n modelo,\r\n httpOptions\r\n );\r\n }\r\n }\r\n\r\n removerBanco(idBanco) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/bancoDelete/' + idBanco,\r\n httpOptions\r\n );\r\n }\r\n\r\n getContas(): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/contas',\r\n httpOptions\r\n );\r\n }\r\n\r\n getConta(idConta) {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'bancosContas/contas/' + idConta,\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarConta(modelo: any) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'bancosContas/contas',\r\n modelo,\r\n httpOptions\r\n );\r\n\r\n // if (!idBanco) {\r\n\r\n // } else {\r\n // return this.http.post(\r\n // this.baseUrlFinanca + 'bancosContas/contaUpdate',\r\n // modelo,\r\n // httpOptions\r\n // );\r\n // }\r\n }\r\n\r\n removerConta(idConta) {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'bancosContas/contasDelete/' + idConta,\r\n httpOptions\r\n );\r\n }\r\n\r\n // Contas Correntes //\r\n getContaCorrenteCliente(filtro: any) {\r\n return this.http.post(this.baseUrlFinanca + 'tesouraria/contaCorrente', filtro, httpOptions);\r\n }\r\n\r\n getTiposDocumentosTeClientes() {\r\n return this.http.get(this.baseUrlFinanca + 'documentosTesouraria/tipos', httpOptions);\r\n }\r\n\r\n imprimirDocTE(idDocumento: number): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'documentosTesouraria/imprimirRecibo/' + idDocumento, httpOptions\r\n );\r\n }\r\n\r\n getAnexoRecibo(idRecibo: number): Observable {\r\n return this.http.get(\r\n this.baseUrlFinanca + 'documentosTesouraria/anexo/' + idRecibo, httpOptions\r\n );\r\n }\r\n\r\n enviarEmailrRecibo(value: any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + 'documentosTesouraria/email', value, httpOptions)\r\n .pipe();\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n let erroMsg = null;\r\n if (error.error instanceof ErrorEvent) {\r\n erroMsg = error;\r\n } else {\r\n erroMsg = error;\r\n }\r\n return throwError(erroMsg);\r\n }\r\n\r\n// Saldos\r\n getSaldos(filtro): Observable {\r\n return this.http.post(\r\n this.baseUrlFinanca + 'tesouraria/saldos', filtro, httpOptions\r\n );\r\n }\r\n\r\n getTodasPermissoes(filtro: any) {\r\n return this.http.post(this.baseUrlFinanca + 'permissoes/obter', filtro, httpOptions);\r\n }\r\n\r\n getPermissoesUtilizador(filtro) {\r\n return this.http.post(this.baseUrlFinanca + 'permissoes/obterUtilizadores', filtro, httpOptions);\r\n }\r\n\r\n editarPermissoesFAUtilizador(permissoesAdicionar: any) {\r\n return this.http.post(this.baseUrlFinanca + 'permissoes/editarUtilizadores', permissoesAdicionar, httpOptions);\r\n }\r\n\r\n // Documentos Pendentes ara geracao de Referencia //\r\n pesquisarDocsReferencia(filtroPesquisa: FiltroDocumentoReferencia) {\r\n return this.http.post(this.baseUrlFinanca + 'vendas/pesquisaDocumentosReferencia', filtroPesquisa, httpOptions);\r\n }\r\n\r\n getArmazens(): Observable {\r\n return this.http.post(this.baseUrlFinanca + 'artigos/armazens', this.loginService.getUtilizadorSessao(), httpOptions);\r\n }\r\n\r\n getArtigosVendas() {\r\n return this.http.get>(`${this.baseUrlFinanca}artigos/vendas`);\r\n }\r\n\r\n getArtigosCompras() {\r\n return this.http.get>(`${this.baseUrlFinanca}artigos/compras`);\r\n }\r\n\r\n getConfiguracao() {\r\n return this.http.get>(`${this.baseUrlFinanca}configuracoes/vendas`);\r\n }\r\n\r\n postRascunhoCP(req: any) {\r\n return this.http.post>(`${this.baseUrlFinanca}compras/rascunhos`, req);\r\n }\r\n\r\n getRascunhos() {\r\n // const idUtilizador = this.loginService.getUtilizadorSessao()?.idUtilizador;\r\n const idUtilizador = 0;\r\n return this.http.get>(`${this.baseUrlFinanca}compras/rascunhos`, {params: {idUtilizador}});\r\n }\r\n\r\n deleteRascunho(id: number) {\r\n return this.http.post>(`${this.baseUrlFinanca}compras/rascunhos/remover`, id);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs/internal/Observable\";\r\nimport {\r\n HttpHeaders,\r\n HttpClient,\r\n} from \"@angular/common/http\";\r\nimport { environment } from \"environments/environment\";\r\nimport \"rxjs/add/operator/catch\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token')\r\n })\r\n};\r\n\r\nconst httpOptionsXml = {\r\n headers: new HttpHeaders({\r\n Authorization: \"Bearer \" + localStorage.getItem(\"token\"),\r\n \"Content-Type\": \"text/html; charset=UTF-8\",\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ReferenciasService {\r\n baseUrl: string;\r\n baseUrlFinanca: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrlFinanca = `${environment.apiFinancas}referenciasBancarias/`;\r\n }\r\n\r\n getReferenciasDocumentosBanc(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"listar\",httpOptions)\r\n .pipe();\r\n }\r\n\r\n getReferenciasDocumentosBancErro(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"erros\",httpOptions)\r\n .pipe();\r\n }\r\n\r\n getEstadoReferencias(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"estados\",httpOptions)\r\n .pipe();\r\n }\r\n\r\n getEntidadesRefActivas(): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"entidadesActivas\",httpOptions)\r\n .pipe();\r\n }\r\n\r\n getEntidadesRefActivasEmpresa(idEmpresa): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"entidadesActivas/\"+idEmpresa,httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n getReferenciaEntidade(idEntidade:number): Observable {\r\n return this.http\r\n .get(this.baseUrlFinanca + \"gerarReferencia/\"+idEntidade,httpOptions)\r\n .pipe();\r\n }\r\n\r\n \r\n getDetalheReferencia(modelo:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"detalheReferencia\",modelo,httpOptions)\r\n .pipe();\r\n }\r\n\r\n anularReferenciaBanc(modelo:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"anularReferencia\",modelo,httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarEmailsDocumentosTe(dados:any): Observable {\r\n return this.http\r\n .post(this.baseUrlFinanca + \"documentosTesouraria/gravarEmailTesourariaCliente\",dados,httpOptions)\r\n .pipe();\r\n }\r\n }\r\n\r\n\r\n\r\n","import {HttpClient} from '@angular/common/http';\r\nimport {Injectable} from '@angular/core';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {environment} from '../../../../environments/environment';\r\nimport {GaArquivo, GaArquivoResponse} from '../../models/gestao-arquivos/ga-arquivo';\r\nimport {catchError, map} from 'rxjs/operators';\r\nimport {BehaviorSubject, of, throwError} from 'rxjs';\r\nimport {NotificacaoService} from '../notificacao/notificacao.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GaArquivoService {\r\n url = `${environment.apiArquivos}Arquivos`;\r\n filterState = new BehaviorSubject({});\r\n filterState$ = this.filterState.asObservable();\r\n\r\n constructor(private http: HttpClient, private _notificacao: NotificacaoService) {\r\n }\r\n\r\n getArquivos() {\r\n return this.http.get>(this.url).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''} as Resposta) : throwError(err);\r\n }));\r\n }\r\n\r\n getArquivo(id: number) {\r\n return this.http.get>(`${this.url}/${id}`);\r\n }\r\n\r\n download(caminho: string) {\r\n return this.http.post>(`${this.url}/download`, {caminho});\r\n }\r\n\r\n postArquivo(modelo: GaArquivo) {\r\n return this.http.post>(this.url, modelo);\r\n }\r\n\r\n putArquivo(modelo: GaArquivo) {\r\n return this.http.post>(`${this.url}/${modelo.id}`, modelo);\r\n }\r\n\r\n deleteArquivo(id: number) {\r\n return this.http.post>(`${this.url}/remover/${id}`, {});\r\n }\r\n\r\n // TODO: Tipar o input\r\n filtrarArquivos(filtro: any) {\r\n return this.http.post>(`${this.url}/filtrar`, filtro).pipe(catchError(err => {\r\n console.error(err);\r\n return err.status === 404 ?\r\n of({objecto: [], statusCode: err.status, mensagem: ''} as Resposta) : throwError(() => err);\r\n }));\r\n }\r\n\r\n getArquivosEspecifico(codArea: string, id: number) {\r\n return this.http.get>(`${this.url}/especifico`, {params: {codArea, id}});\r\n }\r\n\r\n postArquivoEspecifico(codArea: string, id: number, arquivo: GaArquivo) {\r\n return this.http.post>(`${this.url}/especifico`, arquivo, {params: {codArea, id}});\r\n }\r\n\r\n postArquivoLote(codArea: string, id: number, arquivos: GaArquivo[]) {\r\n return this.http.post>(`${this.url}/especifico/lote`, arquivos, {params: {codArea, id}})\r\n .pipe(map(res => {\r\n if (res.mensagem) {\r\n this._notificacao.notificar(res.mensagem);\r\n }\r\n return res;\r\n }));\r\n }\r\n\r\n postArquivoLotes(codArea: string, objs: any[]) {\r\n return this.http.post>(`${this.url}/especifico/lotes`, objs, {params: {codArea}})\r\n .pipe(map(res => {\r\n if (res.mensagem) {\r\n this._notificacao.notificar(res.mensagem);\r\n }\r\n return res;\r\n }));\r\n }\r\n\r\n deleteFicheiro(idArquivo: number, idFicheiro: number) {\r\n return this.http.post>(`${this.url}/remover/${idArquivo}/ficheiros/${idFicheiro}`, {});\r\n }\r\n\r\n getArmazens() {\r\n return this.http.get>(`${this.url}/armazens`);\r\n }\r\n}\r\n","import { Injectable, Renderer2 } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { getQueryParam } from '../helpers/url.helper';\r\nimport { ThemeService } from './theme.service';\r\n\r\nexport interface ILayoutConf {\r\n navigationPos?: string; // side, top\r\n sidebarStyle?: string; // full, compact, closed\r\n sidebarCompactToggle?: boolean; // sidebar expandable on hover\r\n sidebarColor?: string; // Sidebar background color http://demos.ui-lib.com/egret-doc/#egret-colors\r\n dir?: string; // ltr, rtl\r\n isMobile?: boolean; // updated automatically\r\n useBreadcrumb?: boolean; // Breadcrumb enabled/disabled\r\n breadcrumb?: string; // simple, title\r\n topbarFixed?: boolean; // Fixed header\r\n footerFixed?: boolean; // Fixed Footer\r\n topbarColor?: string; // Header background color http://demos.ui-lib.com/egret-doc/#egret-colors\r\n footerColor?: string; // Header background color http://demos.ui-lib.com/egret-doc/#egret-colors\r\n matTheme?: string; // material theme. egret-blue, egret-navy, egret-dark-purple, egret-dark-pink\r\n perfectScrollbar?: boolean;\r\n}\r\nexport interface ILayoutChangeOptions {\r\n duration?: number;\r\n transitionClass?: boolean;\r\n}\r\ninterface IAdjustScreenOptions {\r\n browserEvent?: any;\r\n route?: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LayoutService {\r\n public layoutConf: ILayoutConf = {};\r\n layoutConfSubject = new BehaviorSubject(this.layoutConf);\r\n dadosExpiracao = new BehaviorSubject(null);\r\n layoutConf$ = this.layoutConfSubject.asObservable();\r\n public isMobile: boolean;\r\n public currentRoute: string;\r\n// public fullWidthRoutes = ['shop'];\r\n public fullWidthRoutes = [];\r\n\r\n constructor(private themeService: ThemeService) {\r\n this.setAppLayout(\r\n // ******** SET YOUR LAYOUT OPTIONS HERE *********\r\n {\r\n navigationPos: 'side', // side, top\r\n sidebarStyle: 'full', // full, compact, closed\r\n sidebarColor: 'slate', // http://demos.ui-lib.com/egret-doc/#egret-colors\r\n sidebarCompactToggle: false, // applied when \"sidebarStyle\" is \"compact\"\r\n dir: 'ltr', // ltr, rtl\r\n useBreadcrumb: false,\r\n topbarFixed: false,\r\n footerFixed: true,\r\n topbarColor: 'white', // http://demos.ui-lib.com/egret-doc/#egret-colors\r\n footerColor: 'slate', // http://demos.ui-lib.com/egret-doc/#egret-colors\r\n matTheme: 'egret-navy', // egret-navy, egret-navy-dark\r\n breadcrumb: 'simple', // simple, title\r\n perfectScrollbar: true,\r\n }\r\n );\r\n }\r\n\r\n setAppLayout(layoutConf: ILayoutConf) {\r\n this.layoutConf = { ...this.layoutConf, ...layoutConf };\r\n this.applyMatTheme(this.layoutConf.matTheme);\r\n\r\n // ******* Only for demo purpose ***\r\n this.setLayoutFromQuery();\r\n // **********************\r\n }\r\n\r\n publishLayoutChange(lc: ILayoutConf, opt: ILayoutChangeOptions = {}) {\r\n if (this.layoutConf.matTheme !== lc.matTheme && lc.matTheme) {\r\n this.themeService.changeTheme(this.layoutConf.matTheme, lc.matTheme);\r\n }\r\n\r\n this.layoutConf = Object.assign(this.layoutConf, lc);\r\n this.layoutConfSubject.next(this.layoutConf);\r\n }\r\n\r\n applyMatTheme(theme) {\r\n this.themeService.applyMatTheme(this.layoutConf.matTheme);\r\n }\r\n\r\n setLayoutFromQuery() {\r\n const layoutConfString = getQueryParam('layout');\r\n const prevTheme = this.layoutConf.matTheme;\r\n try {\r\n this.layoutConf = JSON.parse(layoutConfString);\r\n this.themeService.changeTheme(prevTheme, this.layoutConf.matTheme);\r\n } catch (e) {}\r\n }\r\n\r\n adjustLayout(options: IAdjustScreenOptions = {}) {\r\n let sidebarStyle: string;\r\n this.isMobile = this.isSm();\r\n this.currentRoute = options.route || this.currentRoute;\r\n sidebarStyle = this.isMobile ? 'closed' : 'full';\r\n\r\n if (this.currentRoute) {\r\n this.fullWidthRoutes.forEach((route) => {\r\n if (this.currentRoute.indexOf(route) !== -1) {\r\n sidebarStyle = 'closed';\r\n }\r\n });\r\n }\r\n\r\n this.publishLayoutChange({\r\n isMobile: this.isMobile,\r\n sidebarStyle,\r\n });\r\n }\r\n isSm() {\r\n return window.matchMedia(`(max-width: 959px)`).matches;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LocalStoreService {\r\n private ls = window.localStorage;\r\n\r\n constructor() {}\r\n\r\n public setItem(key, value) {\r\n value = JSON.stringify(value);\r\n this.ls.setItem(key, value);\r\n return true;\r\n }\r\n\r\n public getItem(key) {\r\n const value = this.ls.getItem(key);\r\n try {\r\n return JSON.parse(value);\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n\r\n public clear() {\r\n this.ls.clear();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MediaObserver, MediaChange } from '@angular/flex-layout';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MatchMediaService {\r\n activeMediaQuery: string;\r\n onMediaChange: BehaviorSubject = new BehaviorSubject('');\r\n\r\n constructor(private mediaObserver: MediaObserver) {\r\n this.activeMediaQuery = '';\r\n this.init();\r\n }\r\n\r\n private init(): void {\r\n this.mediaObserver.media$.subscribe((change: MediaChange) => {\r\n if (this.activeMediaQuery !== change.mqAlias) {\r\n this.activeMediaQuery = change.mqAlias;\r\n this.onMediaChange.next(change.mqAlias);\r\n }\r\n });\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {BehaviorSubject} from 'rxjs';\r\n\r\ninterface IMenuItem {\r\n type: string; // Possible values: link/dropDown/icon/separator/extLink\r\n name?: string; // Used as display text for item and title for separator type\r\n state?: string; // Router state\r\n icon?: string; // Material icon name\r\n code?: string; // Material icon name\r\n svgIcon?: string; // UI Lib icon name\r\n tooltip?: string; // Tooltip text\r\n disabled?: boolean; // If true, item will not be appeared in sidenav.\r\n sub?: IChildItem[]; // Dropdown items\r\n badges?: IBadge[];\r\n desenvolvimento?: boolean;\r\n dev?: boolean;\r\n}\r\n\r\ninterface IChildItem {\r\n type?: string;\r\n name: string; // Display text\r\n state?: string; // Router state\r\n icon?: string; // Material icon name\r\n svgIcon?: string; // UI Lib icon name\r\n sub?: IChildItem[];\r\n desenvolvimento?: boolean;\r\n dev?: boolean;\r\n}\r\n\r\ninterface IBadge {\r\n color: string; // primary/accent/warn/hex color codes(#fff000)\r\n value: string; // Display text\r\n}\r\n\r\n@Injectable()\r\nexport class NavigationService {\r\n iconMenu: IMenuItem[] = [\r\n {\r\n name: 'DASHBOARD',\r\n code: 'DASHBO',\r\n type: 'link',\r\n tooltip: 'Dashboard',\r\n svgIcon: 'ulb_server',\r\n icon: 'dashboard',\r\n state: 'dashboard'\r\n },\r\n\r\n // Menu Recursos Humanos\r\n {\r\n name: 'Recursos Humanos',\r\n code: 'RECHUM',\r\n svgIcon: 'group_add',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'group_add',\r\n state: 'rh',\r\n sub: [\r\n {\r\n name: 'Colaboradores',\r\n state: 'clientes/lista/5'\r\n //state: 'rh/colaboradores'\r\n },\r\n\r\n {\r\n name: 'Estruturas Organizativas',\r\n state: 'estrutura',\r\n type: 'dropDown',\r\n desenvolvimento: true\r\n },\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Cargos', state: 'configuracoes/cargos'},\r\n {\r\n name: 'Dados Colaborador',\r\n state: 'configuracoes/dados-colaborador'\r\n },\r\n {\r\n name: 'Estruturas Organizativas',\r\n state: 'configuracoes/configuracao-estruturas-organizativas'\r\n },\r\n // {name: 'Estrutura Organizativa',state: 'configuracoes/estrutura-organizativa'},\r\n {name: 'Funções', state: 'configuracoes/funcoes'},\r\n {\r\n name: 'Grau Parentesco',\r\n state: 'configuracoes/grau-parentesco'\r\n },\r\n {name: 'Posições', state: 'configuracoes/posicoes'},\r\n // {name: 'Tipos de Colaboração', state: 'configuracoes/tipos-colaboracao'},\r\n {\r\n name: 'Tipos de Contacto',\r\n state: 'configuracoes/tipos-contactos'\r\n },\r\n {\r\n name: 'Tipos de Documento',\r\n state: 'configuracoes/tipos-documentos'\r\n },\r\n {\r\n name: 'Tipos de Informação',\r\n state: 'configuracoes/tipos-informacao'\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Menu Clientes\r\n {\r\n name: 'Clientes',\r\n code: 'CLIENT',\r\n svgIcon: 'group_add',\r\n type: 'dropDown',\r\n tooltip: 'Clientes',\r\n icon: 'group_add',\r\n state: 'clientes',\r\n sub: [\r\n {\r\n name: 'Clientes',\r\n state: 'lista'\r\n },\r\n {\r\n name: 'Acessos',\r\n state: 'lista/acessos'\r\n },\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Estados', state: 'configuracoes/estados'},\r\n {name: 'Caracteristicas', state: 'configuracoes/caracteristicas'},\r\n {name: 'Sectores Actividade', state: 'configuracoes/sectores-actividade'},\r\n {name: 'Tipos', state: 'configuracoes/tipos'},\r\n {name: 'Tipos de Documentos', state: 'configuracoes/documentos'},\r\n {name: 'Tipos de Arquivos', state: 'configuracoes/tipos-arquivos'},\r\n {\r\n name: 'Email´s Manuais',\r\n state: 'configuracoes/emails-manuais-lista'\r\n },\r\n {\r\n name: 'Email´s Automáticos',\r\n state: 'configuracoes/emailsautomaticos'\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n // Menu Fornecedor\r\n {\r\n name: 'Fornecedores',\r\n code: 'FORNEC0',\r\n type: 'dropDown',\r\n tooltip: 'Fornecedores',\r\n svgIcon: 'local_shipping',\r\n icon: 'local_shipping',\r\n state: 'fornecedores',\r\n sub: [\r\n {\r\n name: 'Fornecedores',\r\n state: 'lista'\r\n },\r\n {\r\n name: 'Configuração',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Estados', state: 'configuracao/estados/lista'},\r\n {name: 'Categorias', state: 'configuracao/categorias/lista'},\r\n {name: 'Tipos Fornecedor', state: 'configuracao/tipos/lista'}\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n {\r\n name: 'Artigos',\r\n code: 'ARTIGO',\r\n type: 'dropDown',\r\n tooltip: 'Artigos',\r\n icon: 'shopping_basket',\r\n state: 'artigos',\r\n sub: [\r\n {name: 'Artigos', state: 'lista'},\r\n {name: 'Administrativos', state: 'lista/6'},\r\n {name: 'Realizações', state: 'realizacoes/lista'},\r\n {name: 'Inscrições', state: 'inscricoes/lista', desenvolvimento: true},\r\n {name: 'Pagamentos', state: 'documentos-inscricoes/lista'},\r\n {name: 'Turmas', state: 'realizacoesTurmas/lista', desenvolvimento: true},\r\n {name: 'Módulos', state: 'modulos/lista', desenvolvimento: true},\r\n {name: 'Armazéns', state: 'lista'},\r\n {\r\n name: 'Stocks', type: 'dropDown',\r\n sub: [\r\n {name: 'Documentos', state: '/stock/documentos'},\r\n {name: 'Stocks', state: '/stock'},\r\n {name: 'Hst. Stocks', state: '/stock/historico'}\r\n ]\r\n },\r\n {\r\n name: 'Inventário',\r\n type: 'dropDown', desenvolvimento: true,\r\n sub: [\r\n {name: 'Inventário', state: 'inventario/lista', desenvolvimento: true}\r\n // { name: 'Armazéns', state: 'inventario/armazens' },\r\n ]\r\n },\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Famílias', state: 'configuracoes/tipos'},\r\n {name: 'Categorias', state: 'configuracoes/categoria'},\r\n {name: 'Marcas', state: 'configuracoes/marcas'},\r\n {name: 'Variantes', state: 'configuracoes/variantes/lista'},\r\n {name: 'Estados', state: 'configuracoes/estados'},\r\n {name: 'Tipos de Arquivos', state: 'configuracoes/tipos-arquivos'},\r\n {name: 'Tipos de Certificados', state: 'configuracoes/certificados/lista'},\r\n {name: 'Movimentos de Stock', state: '/stocks/movimentos'},\r\n {name: 'Tipos de Arquivos das inscrições', state: 'configuracoes/tipos-arquivos-inscricoes/lista'},\r\n {name: 'Locais', state: 'configuracoes/locais/lista'},\r\n {name: 'E-mails', state: 'configuracoes/emails/lista'},\r\n {\r\n name: 'E-mails Automáticos',\r\n state: 'configuracoes/emails/automaticos'\r\n },\r\n {name: 'Turmas', state: 'configuracoes/turmas/lista'},\r\n {name: 'Tipos de Colaboração', state: 'configuracoes/tipos-colaboracao/lista'},\r\n {name: 'Ciclos de Renovação', state: 'configuracoes/ciclos'}\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n {\r\n name: 'Marcações',\r\n code: 'MARCA',\r\n type: 'dropDown',\r\n tooltip: 'Marcações',\r\n icon: 'group_add',\r\n state: 'marcacoes',\r\n sub: [\r\n {name: 'Horários', state: 'horarios'},\r\n {name: 'Marcações', state: 'lista'},\r\n // {name: 'Atendimentos', state: 'atendimentos'},\r\n ]\r\n },\r\n // Menu Recrutamento\r\n {\r\n name: 'Recrutamento',\r\n code: 'RECRUT',\r\n type: 'dropDown',\r\n tooltip: 'Recrutamento',\r\n icon: 'group_add',\r\n state: 'recrutamento',\r\n sub: [\r\n {\r\n name: 'Vagas',\r\n state: 'vagas'\r\n },\r\n {\r\n name: 'Candidaturas',\r\n state: 'candidaturas/lista'\r\n },\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Áreas', state: 'configuracoes/areas'},\r\n {name: 'Funções', state: 'configuracoes/funcoes'},\r\n {name: 'Cargos', state: 'configuracoes/cargos'},\r\n {name: 'Graus Académicos', state: 'configuracoes/grausacademico'}\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Menu\tProcessos\r\n {\r\n name: 'Processos',\r\n code: 'PROCES',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'swap_calls',\r\n state: 'processos',\r\n sub: [\r\n {name: 'processos', state: 'lista'},\r\n {name: 'processoEntidades', state: 'tempos'},\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Tipos', state: 'configuracoes/tipos'},\r\n {name: 'CategoriasPro', state: 'configuracoes/categorias'},\r\n {name: 'TiposTarefa', state: 'configuracoes/tipo-tarefa'},\r\n {name: 'Atividades', state: 'configuracoes/tarefas'},\r\n {name: 'Estados', state: 'configuracoes/estados'},\r\n {name: 'EstadosTarefa', state: 'configuracoes/estados-tarefa'},\r\n {\r\n name: 'Tipos Arquivos',\r\n state: 'configuracoes/tipos-arquivos'\r\n },\r\n {\r\n name: 'Email´s Automáticos',\r\n state: 'configuracoes/emailsautomaticos'\r\n },\r\n {\r\n name: 'Localizações',\r\n state: 'configuracoes/tiposlocalizacao'\r\n },\r\n {\r\n name: 'Intervenientes',\r\n state: 'configuracoes/intervenientes'\r\n },\r\n {\r\n name: 'Equipamentos Intervenção',\r\n state: 'configuracoes/equipamentos'\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n // Menu Equipamentos\r\n {\r\n name: 'Equipamentos',\r\n code: 'EQUATI',\r\n type: 'dropDown',\r\n tooltip: 'Equipamentos',\r\n icon: 'build',\r\n state: 'equipamentos',\r\n sub: [\r\n {name: 'Equipamentos', state: 'lista'},\r\n {name: 'Facturação', state: 'facturacao'},\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Localizações', state: 'configuracoes/localizacoes'},\r\n {name: 'Tipos', state: 'configuracoes/tipos'},\r\n {\r\n name: 'Estados',\r\n state: 'configuracoes/estados'\r\n },\r\n {name: 'Marcas e Modelos', state: 'configuracoes/marcas'},\r\n {name: 'Estados de Ocupação', state: 'configuracoes/estados/ocupacao'},\r\n {\r\n name: 'Tipos de Arquivos',\r\n state: 'configuracoes/tipos-arquivos'\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Manutencao\r\n\r\n {\r\n name: 'Manutenção',\r\n code: 'MANUTE',\r\n type: 'dropDown',\r\n tooltip: 'Manutenção',\r\n icon: 'directions_car',\r\n state: 'manutencao',\r\n sub: [\r\n {\r\n name: 'Manutenções',\r\n state: 'lista'\r\n },\r\n\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Tipos de Manutenção', state: 'configuracoes/tipos'},\r\n {name: 'Estados da Manutenção', state: 'configuracoes/estados'}\r\n ]\r\n }\r\n ]\r\n },\r\n {name: 'Administrativos', code: 'ADM', state: 'facturacao/pagamentos/6', type: 'link', icon: 'store_mall_directory'},\r\n {\r\n name: 'Renováveis', state: '', code: 'RENOVA',\r\n type: 'dropDown',\r\n icon: 'store_mall_directory',\r\n sub: [\r\n {name: 'Renováveis', state: 'facturacao/renovaveis/1'},\r\n {name: 'Renovações', state: 'facturacao/renovacoes/1'}\r\n ]\r\n },\r\n\r\n // Menu\tFacturação\r\n {\r\n name: 'Vendas',\r\n code: 'FACTUR',\r\n type: 'dropDown',\r\n tooltip: 'Vendas',\r\n icon: 'store_mall_directory',\r\n state: 'facturacao',\r\n sub: [\r\n {name: 'Criar documento', state: 'criar-documento'},\r\n {\r\n name: 'Consultar',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Documentos', state: 'documentos'},\r\n {name: 'Itens', state: 'itens'}\r\n ]\r\n },\r\n // {\r\n // name: 'POS',\r\n // type: 'dropDown',\r\n // sub: [\r\n // {\r\n // name: 'Abrir POS',\r\n // state: 'pos'\r\n // },\r\n // ]\r\n // },\r\n {\r\n name: 'SAFT-AO',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Exportar', state: 'facturacao/saft/exportar'},\r\n {name: 'Consultar', state: 'facturacao/saft/consultar', desenvolvimento: true}\r\n ]\r\n },\r\n {\r\n name: 'Referências Multicaixa',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Consultar', state: 'referencia-multicaixa/consultar'},\r\n {name: 'EasyPay', state: 'referencia-multicaixa/consultar/bcs'},\r\n // {name: 'IZIPAY', state: 'referencia-multicaixa/consultar'},\r\n // {name: 'ProxyPay', state: 'referencia-multicaixa/consultar'},\r\n {name: 'A tratar', state: 'referencia-multicaixa/tratar'}\r\n ]\r\n },\r\n\r\n {\r\n name: 'Configuração',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Tipo Documentos', state: 'facturacao/configuracao/tipos-documentos'},\r\n {name: 'Estados', state: 'facturacao/estados'},\r\n {name: 'Numeração', state: 'facturacao/numeracao'}\r\n ]\r\n },\r\n\r\n ]\r\n },\r\n\r\n // Menu\tPOS\r\n {\r\n name: 'POS',\r\n code: 'POS',\r\n type: 'dropDown',\r\n tooltip: 'POS',\r\n icon: 'add_shopping_cart',\r\n state: 'facturacao',\r\n sub: [\r\n {name: 'Abrir POS', state: 'pos'},\r\n {name: 'Caixas', state: 'pos/caixa'},\r\n {\r\n name: 'Configuração',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Lojas', state: 'pos/lojas'},\r\n {name: 'Salas e Mesas', state: 'pos/salas_Mesas'},\r\n {name: 'Terminais', state: 'pos/terminais'}\r\n ]\r\n },\r\n\r\n ]\r\n },\r\n\r\n\r\n // MENU COMPRAS //\r\n\r\n {\r\n name: 'Compras',\r\n code: 'COMPRA',\r\n type: 'dropDown',\r\n tooltip: 'Compras',\r\n icon: 'shopping_cart',\r\n state: 'compras',\r\n sub: [\r\n {\r\n name: 'Criar documento',\r\n state: 'criar-documento'\r\n },\r\n {\r\n name: 'Consultar',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Documentos', state: 'documentos'},\r\n {name: 'Itens', state: 'itens'},\r\n\r\n ]\r\n },\r\n {\r\n name: 'Configuração', type: 'dropDown',\r\n sub: [\r\n {name: 'Itens de Despesa', state: 'artigos/lista/7', desenvolvimento: false}\r\n ]\r\n },\r\n ]\r\n },\r\n\r\n // Menu\t-\tTesouraria\r\n {\r\n name: 'Tesouraria',\r\n code: 'TESOUR',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'attach_money',\r\n state: 'tesouraria',\r\n sub: [\r\n {name: 'Recebimentos', state: 'recebimentos/pagamentos'},\r\n {name: 'Criar Documento', state: 'clientes/criar-documento'},\r\n {name: 'Consultar Documentos', state: 'consultar-documentos'},\r\n {name: 'Pendentes', state: 'clientes/documentos-pendentes'},\r\n {name: 'Contas correntes', state: 'contas-correntes'},\r\n\r\n {name: 'Saldos', state: 'saldos', desenvolvimento: true},\r\n\r\n {\r\n name: 'Bancos e Caixas',\r\n type: 'dropDown',\r\n sub: [\r\n {\r\n name: 'Contas Bancárias',\r\n state: 'tesouraria/financeira/contas/contas',\r\n //desenvolvimento: true\r\n },\r\n {\r\n name: 'Caixas',\r\n state: 'tesouraria/financeira/contas/caixas'\r\n },\r\n {\r\n name: 'TPA',\r\n state: 'tesouraria/financeira/contas/tpa'\r\n },\r\n {\r\n name: 'Cartões Multicaixa',\r\n state: 'tesouraria/financeira/contas/cartao'\r\n }\r\n ]\r\n },\r\n\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n // {\r\n // name: 'Tipos de Documentos',\r\n // state: 'tesouraria/configuracoes/tipos-documentos'\r\n // },\r\n // {\r\n // name: 'Estado Documentos',\r\n // state: 'tesouraria/configuracoes/estados-documentos'\r\n // },\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Menu - Finanças\r\n // Menu\t-\tTesouraria\r\n {\r\n name: 'Finanças ',\r\n code: 'FINANC',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'attach_money',\r\n state: 'financas',\r\n desenvolvimento: true,\r\n sub: [\r\n {\r\n name: 'Obrigações Fiscais',\r\n type: 'dropDown',\r\n sub: [\r\n {\r\n name: 'IVA',\r\n state: 'obrigacoes-fiscais/iva'\r\n },\r\n {\r\n name: 'Retenções',\r\n state: 'obrigacoes-fiscais/rnf'\r\n },\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n\r\n // Gestao de Arquivos\r\n {\r\n name: 'Gestão de Arquivos',\r\n code: 'GESARQ',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'attach_money',\r\n state: 'gestao-arquivos',\r\n sub: [\r\n {name: 'Arquivos', state: 'arquivos'},\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Empresas', state: 'configuracoes/empresas'},\r\n {name: 'Localizações de Arquivo', state: 'configuracoes/localizacaoArquivos/1'},\r\n {name: 'Tipos de Arquivos', state: 'configuracoes/tipos-arquivos'}\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Menu\tEventos\r\n\r\n // Menu\t•\tComunicação\r\n {\r\n name: 'Comunicação',\r\n code: 'COMUNI',\r\n type: 'dropDown',\r\n tooltip: 'Comunicação',\r\n icon: 'chat',\r\n state: 'comunicacao',\r\n sub: [\r\n {\r\n name: 'Emails',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Log', state: 'emails/logs'},\r\n {name: 'Configuração', state: 'emails/configuracao'},\r\n {name: 'Servidores', state: 'emails/servidores'}\r\n ]\r\n }\r\n // { name: \"Newsletters\", state: \"newsletters\" },\r\n // { name: \"SMS’s\", state: \"sms\" },\r\n ]\r\n },\r\n // Fim -\t•\tComunicação\r\n // Menu\t•\tEquipas\r\n {\r\n name: 'Equipas',\r\n code: 'RESPON',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'groups',\r\n state: 'responsaveis',\r\n sub: [\r\n {\r\n name: 'Equipas',\r\n state: 'equipas/equipas-lista'\r\n }\r\n ]\r\n },\r\n\r\n // Menu\t• Relatórios\r\n {\r\n name: 'Relatórios',\r\n code: 'RELATO',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'person_add',\r\n state: 'relatorios',\r\n sub: [\r\n {\r\n name: 'XML',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Contratos', state: 'contratos'},\r\n {name: 'Garantias', state: 'garantias'},\r\n {name: 'Operações', state: 'operacoes'},\r\n {name: 'Pessoas', state: 'pessoas'}\r\n ]\r\n }\r\n ]\r\n },\r\n\r\n // Menu\t• CMS\r\n {\r\n name: 'CMS',\r\n code: 'GESCON',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'directions_car',\r\n state: 'cms',\r\n sub: [\r\n {\r\n name: 'Páginas',\r\n type: 'dropDown',\r\n\r\n sub: [{name: 'Pagina', state: 'pagina/lista/1'}]\r\n },\r\n {\r\n name: 'Redes sociais',\r\n state: 'redessociais/lista'\r\n },\r\n\r\n {\r\n name: 'Contactos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Contactos', state: 'contactos/lista/1'},\r\n {name: 'Locais', state: 'contactos/locais/lista/1'}\r\n ]\r\n },\r\n\r\n {\r\n name: 'Formulários',\r\n type: 'dropDown',\r\n sub: [{name: 'Contactos', state: 'formulario/lista/1'}]\r\n },\r\n\r\n {\r\n name: 'NewsLetters',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Registos', state: 'newsletters/registos/lista'},\r\n {name: 'Areas', state: 'newsletters/areas/lista'}\r\n // { name: 'Configurações', state: 'newsletters/configuracoes/C/1/1' },\r\n ]\r\n },\r\n\r\n {\r\n name: 'Galerias',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Galeria', state: 'galeria/2'}\r\n ]\r\n },\r\n {\r\n name: 'Repositório',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Arquivos', state: 'arquivos/lista'},\r\n {name: 'Ícones', state: 'icones/lista'},\r\n {name: 'Imagens', state: 'imagens/lista'}\r\n ]\r\n },\r\n\r\n {\r\n name: 'Termos & Políticas',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Política de Cookies', state: 'termos/cookies/lista'},\r\n {\r\n name: 'Política de privacidade',\r\n state: 'termos/privacidade/lista'\r\n }\r\n ]\r\n },\r\n\r\n {\r\n name: 'Faqs',\r\n type: 'dropDown',\r\n\r\n sub: [\r\n {name: 'Areas', state: 'faqs/areas/lista'},\r\n {name: 'Faqs', state: 'faqs/lista'}\r\n ]\r\n },\r\n {\r\n name: 'Links Úteis',\r\n type: 'dropDown',\r\n\r\n sub: [\r\n {name: 'Areas', state: 'link-util/areas'},\r\n {name: 'Links Úteis', state: 'links-uteis'}\r\n ]\r\n },\r\n {\r\n name: 'Equipas',\r\n state: 'equipas'\r\n },\r\n {\r\n name: 'Autores',\r\n state: 'autores'\r\n },\r\n {\r\n name: 'Publicidades',\r\n state: 'publicidades'\r\n },\r\n {\r\n name: 'Notícias',\r\n state: 'noticias'\r\n },\r\n\r\n //AC#\r\n {\r\n name: 'Grupo',\r\n state: 'Grupo'\r\n },\r\n {\r\n name: 'Configurações',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Equipas', state: 'configuracoes/equipas'},\r\n {name: 'Autores Funções', state: 'configuracoes/autoresfuncoes'},\r\n {name: 'Contactos', state: 'configuracoes/contactos'},\r\n {name: 'Idiomas', state: 'configuracoes/idiomas/lista/1'},\r\n {name: 'Locais Caracteristicas', state: 'configuracoes/local-caracteristicas/lista'},\r\n {name: 'Locais Tipos', state: 'configuracoes/tiposlocais/lista'},\r\n {name: 'Logotipos', state: 'configuracoes/logotipos'},\r\n {name: 'Configuração', state: 'configuracoes/configuracao'},\r\n {name: 'Galerias', state: 'configuracoes/galerias'},\r\n {name: 'Páginas', state: 'configuracoes/paginas'},\r\n {name: 'Tipos Noticia', state: 'configuracoes/tiposnoticia'},\r\n {name: 'Categorias Noticia', state: 'configuracoes/categoriasnoticia'}\r\n ]\r\n }\r\n ]\r\n },\r\n // Fim Menu\t• CMS\r\n\r\n // Menu\t•\tUtilizadores\r\n {\r\n name: 'Utilizadores',\r\n code: 'UTILIZ',\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'person_add',\r\n state: 'utilizadores',\r\n sub: [\r\n {name: 'Utilizadores', state: 'lista'},\r\n {name: 'Perfis', state: 'perfis/lista'},\r\n {name: 'Permissões', state: 'permissoes'}\r\n ]\r\n },\r\n // Fim - Utilizadores\r\n\r\n // Menu\t- Configurações\r\n {\r\n name: 'Configurações',\r\n code: null,\r\n type: 'dropDown',\r\n tooltip: 'Material',\r\n icon: 'settings_applications',\r\n state: 'material',\r\n sub: [\r\n {\r\n name: 'Sistema',\r\n type: 'dropDown',\r\n sub: [{name: 'Dados Sistema', state: ''}]\r\n },\r\n {\r\n name: 'Localização',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Paises', state: ''},\r\n {name: 'Províncias', state: ''},\r\n {name: 'Municípios', state: ''},\r\n {name: 'Zonas', state: ''},\r\n {name: 'Códigos Postais', state: ''}\r\n ]\r\n },\r\n {\r\n name: 'Moedas',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Moedas', state: ''},\r\n {name: 'Moedas Sistema', state: ''}\r\n ]\r\n },\r\n {\r\n name: 'Idiomas',\r\n type: 'dropDown',\r\n sub: [{name: 'Idiomas', state: ''}]\r\n },\r\n {\r\n name: 'Documentos',\r\n type: 'dropDown',\r\n sub: [{name: 'Tipos de Documentos Identificação', state: ''}]\r\n },\r\n {\r\n name: 'Impostos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Retenções', state: ''},\r\n {name: 'Impostos', state: ''}\r\n ]\r\n }\r\n ]\r\n },\r\n // Fim -\t•\tConfigurações\r\n\r\n {\r\n name: 'Administração',\r\n code: 'ADMINI',\r\n type: 'dropDown',\r\n tooltip: 'Administração',\r\n icon: 'settings',\r\n state: 'administracao',\r\n sub: [\r\n {\r\n name: 'Aplicação',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Aplicação', state: 'aplicacao/aplicacao'},\r\n {name: 'Icones', state: 'aplicacao/icones'}\r\n ]\r\n },\r\n {\r\n name: 'Módulos',\r\n state: 'modulo/lista'\r\n\r\n },\r\n {\r\n name: 'Artigos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Parametrização', state: 'artigo/parametrizacao'},\r\n {name: 'Numeração', state: 'artigo/numeracao'},\r\n {name: 'Estados', state: 'artigo/estados'},\r\n {name: 'Naturezas de Artigo', state: 'artigo/tiposArtigo'},\r\n {name: 'Tipos de Armazém', state: 'artigo/tiposArmazens', desenvolvimento: true}\r\n\r\n ]\r\n },\r\n {\r\n name: 'Eventos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Parametrização', state: 'evento/parametrizacao'},\r\n {name: 'Numeração', state: 'evento/numeracao'},\r\n {name: 'Estados', state: 'evento/estados'},\r\n {name: 'Naturezas de Evento', state: 'evento/familiasEvento'}\r\n ]\r\n },\r\n {\r\n name: 'Equipamentos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Parametrização', state: 'equipamento/parametrizacoes'},\r\n // {name: 'Numeração', state: 'equipamento/numeracao'},\r\n {name: 'Estados', state: 'equipamento/estados'},\r\n {name: 'Naturezas', state: 'equipamento/naturezas'},\r\n {name: 'Tipos', state: 'equipamento/tipos'},\r\n {name: 'Tipos de Transações', state: 'equipamento/transacoes'},\r\n {name: 'Relações', state: 'equipamento/relacoes'}\r\n ]\r\n },\r\n {\r\n name: 'Processos',\r\n type: 'dropDown',\r\n sub: [{name: 'Parametrização', state: 'processos/parametrizacoes'}]\r\n },\r\n {\r\n name: 'Empresas',\r\n state: 'empresas'\r\n },\r\n {\r\n name: 'Entidades',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Estados', state: 'entidades/estados-lista'},\r\n {name: 'Documentos', state: 'entidades/documentos/lista'},\r\n {name: 'Parametrização', state: 'entidades/parametrizacao'},\r\n {name: 'Relação Entidades', state: 'entidades/relacaoentidades'},\r\n {name: 'Numeração', state: 'entidades/numeracao-lista'}\r\n ]\r\n },\r\n {name: 'Armazéns', state: 'armazens'},\r\n {\r\n name: 'Gestor de Conteúdos',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Formulários', state: 'cms/formularios'},\r\n {name: 'Grupos Registos', state: 'cms/gruposRegistos'},\r\n {name: 'Grupos Tipos', state: 'cms/gruposTipos'},\r\n {name: 'Tipos Arquivos', state: 'cms/tiposarquivo'}\r\n ]\r\n },\r\n\r\n {\r\n name: 'Fornecedores',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Parametrização', state: 'fornecedores/parametrizacao'}\r\n ]\r\n },\r\n {\r\n name: 'Financeira',\r\n type: 'dropDown',\r\n sub: [\r\n {name: 'Bancos', state: 'financeira/bancos'},\r\n //{name: 'Contas', state: 'financeira/contas'},\r\n {name: 'Tipos Documentos', state: 'financeira/documentos-facturacao'},\r\n {name: 'Séries', state: 'financeira/series-lista'},\r\n {name: 'Métodos Pag/Rec', state: 'financeira/metodos-pagamento'},\r\n {name: 'Condições Pag.', state: 'financeira/condicoes-pagamentos'},\r\n {name: 'Moedas e Câmbios', state: 'financeira/moedas-cambios-lista'},\r\n {name: 'IVA', state: 'financeira/IVA'},\r\n {name: 'E-mail', state: 'financeira/email-facturacaoTesouraria'},\r\n {name: 'SMS', state: 'financeira/sms-facturacao'}\r\n ]\r\n },\r\n {\r\n name: 'R. Humanos', type: 'dropDown'\r\n // sub: [\r\n // { name: 'R. Humanos', state: 'Eventos/parametrizacao' }\r\n // ],\r\n }\r\n ]\r\n }\r\n\r\n ];\r\n // Icon menu TITLE at the very top of navigation.\r\n // This title will appear if any icon type item is present in menu.\r\n iconTypeMenuTitle = 'Frequently Accessed';\r\n // sets iconMenu as default;\r\n menuItems = new BehaviorSubject(this.iconMenu);\r\n // navigation component has subscribed to this Observable\r\n menuItems$ = this.menuItems.asObservable();\r\n\r\n constructor() {\r\n }\r\n\r\n // Customizer component uses this method to change menu.\r\n // You can remove this method and customizer component.\r\n // Or you can customize this method to supply different menu for\r\n // different user type.\r\n publishNavigationChange(menuType: string) {\r\n switch (menuType) {\r\n case 'separator-menu':\r\n this.menuItems.next(this.iconMenu);\r\n break;\r\n case 'icon-menu':\r\n this.menuItems.next(this.iconMenu);\r\n break;\r\n default:\r\n this.menuItems.next(this.iconMenu);\r\n }\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {MatSnackBar} from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificacaoService {\r\n accao!: string;\r\n\r\n constructor(private snack: MatSnackBar) {\r\n }\r\n\r\n notificar(mensagem: string, sucesso?: boolean, duracao?: number) {\r\n this.snack.open(\r\n mensagem,\r\n sucesso ? '✔️' : '❌',\r\n {\r\n verticalPosition: 'top',\r\n duration: duracao <= 0 || !duracao ? 5000 : duracao,\r\n panelClass: 'custom-snackbar'\r\n }\r\n );\r\n }\r\n\r\n abrir(){\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subscription } from 'rxjs/internal/Subscription';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n}) export class OnDestroyService {\r\n constructor() {\r\n }\r\n destruir(listaSubscricoes: Subscription[]){\r\n if(listaSubscricoes && listaSubscricoes.length){\r\n listaSubscricoes.forEach((subs: Subscription)=> {\r\n subs.unsubscribe();\r\n })\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { environment } from 'environments/environment';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { Loja } from 'app/shared/models/pos/loja';\r\nimport { PosFiltroConsultaDoc } from '../../../views/pos/modelos/pos-filtro-consulta-doc.dto';\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n 'Content-Type': 'application/json',\r\n }),\r\n};\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PosService {\r\n\r\n\r\n artigosParaVenda$ = new BehaviorSubject([]);\r\n terminalEmUso$ = new BehaviorSubject(null);\r\n lojaSeleccionada$ = new BehaviorSubject(null);\r\n codTelaSeleccionada$ = new BehaviorSubject(null);\r\n localTerminalKey = 'pos_terminal';\r\n baseUrl: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiFinancas}pos`;\r\n }\r\n\r\n getSerie(dado: any): Observable {\r\n return this.http.post(this.baseUrl + '/series', dado, httpOptions).pipe();\r\n }\r\n getCodigoDocumento(dado: any): Observable {\r\n return this.http.post(this.baseUrl + '/codigoDocumento', dado, httpOptions).pipe();\r\n }\r\n getArtigosPOS(idEmpresa: number) {\r\n return this.http.get(this.baseUrl + '/artigos/' + idEmpresa, httpOptions).pipe();\r\n }\r\n getclassificacoesArtigoFA() {\r\n return this.http.get(this.baseUrl + '/classificacoesArtigoFA', httpOptions).pipe();\r\n }\r\n\r\n getTiposArtigoPOS(): Observable {\r\n return this.http.get(this.baseUrl + '/tiposArtigo', httpOptions).pipe();\r\n\r\n }\r\n\r\n getMetodosPagamentosPOS(): Observable {\r\n return this.http.get(this.baseUrl + '/metodosPagamento', httpOptions).pipe();\r\n }\r\n\r\n getContasTerminalPOS(idterminal:number): Observable {\r\n return this.http.get(this.baseUrl + '/contas/'+idterminal, httpOptions).pipe();\r\n }\r\n\r\n permissoesUtilizador(idUtilizador:number): Observable {\r\n return this.http.get(this.baseUrl + '/permissoes/'+idUtilizador, httpOptions).pipe();\r\n }\r\n\r\n getClientesPOS(): Observable {\r\n return this.http.get(this.baseUrl + '/clientes', httpOptions).pipe();\r\n }\r\n\r\n VerificarLicencaPOS(): Observable {\r\n return this.http.get(this.baseUrl + '/licenca', httpOptions).pipe();\r\n }\r\n\r\n getDadosEmailCliente(idCiente: number): Observable {\r\n return this.http.get(this.baseUrl + '/clientes/dadosEmail/' + idCiente, httpOptions).pipe();\r\n }\r\n\r\n getTiposDocumentosPOS(): Observable {\r\n return this.http.get(this.baseUrl + '/tiposDocumento', httpOptions).pipe();\r\n }\r\n\r\n gravarDocumentoPOS(documento): Observable {\r\n return this.http.post(this.baseUrl, documento, httpOptions).pipe();\r\n }\r\n\r\n imprimirVendaPOS(idDocumento: number, idTerminal: number): Observable {\r\n return this.http.get(this.baseUrl + '/imprimirVenda/' + idDocumento + '/' + idTerminal, httpOptions).pipe();\r\n }\r\n getPOSDocumentos(filtro: PosFiltroConsultaDoc) {\r\n return this.http.post(this.baseUrl + '/terminais/documentos/listar', filtro);\r\n }\r\n\r\n imprimirDoc_POS_Desktop(modelo:any): Observable {\r\n return this.http.post('http://localhost:7000/api/imprimirDoc/', modelo, httpOptions).pipe();\r\n }\r\n\r\n tecladovirtual_POS_Desktop(): Observable {\r\n return this.http.get('http://localhost:7000/api/tecladoVirtual/', httpOptions).pipe();\r\n }\r\n\r\n\r\n openFullScreen(fullScreeOpen: boolean) {\r\n const body = document.querySelector('body');\r\n\r\n if (body) {\r\n if (fullScreeOpen) {\r\n body.requestFullscreen({navigationUI: 'hide'});\r\n } else {\r\n if(document.fullscreenElement){\r\n document?.exitFullscreen();\r\n }\r\n }\r\n }\r\n }\r\n\r\n getLocalTerminal() {\r\n return localStorage.getItem(this.localTerminalKey);\r\n }\r\n setLocalTerminal(value: any) {\r\n localStorage.setItem(this.localTerminalKey, JSON.stringify(value));\r\n }\r\n clearLocalTerminal() {\r\n localStorage.removeItem(this.localTerminalKey);\r\n }\r\n\r\n\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpErrorResponse, HttpHeaders,} from '@angular/common/http';\r\nimport {environment} from 'environments/environment';\r\nimport {environment as env} from 'environments/environment';\r\nimport {Observable, throwError} from 'rxjs';\r\nimport {ProcessosEstados} from 'app/shared/models/processos/processosestados';\r\nimport {TiposTarefas} from 'app/shared/models/processos/tipostarefas';\r\nimport {Categoria} from '../../models/processos/categoria';\r\nimport {ProcessosEmailsAutomaticos} from 'app/shared/models/processos/emails-automaticos';\r\nimport {Resposta} from '../../models/resposta';\r\nimport {Documentos} from '../../models/financas/documentos/documentos';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ProcessosService {\r\n\r\n baseUrl: string;\r\n baseUrlProcesso: string;\r\n\r\n constructor(private http: HttpClient) {\r\n this.baseUrl = `${environment.apiAplicacao}`;\r\n this.baseUrlProcesso = `${environment.apiProcessos}`;\r\n }\r\n\r\n getEmailsAutomaticos(idClassificacao: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso + 'emailsautomaticos/' + idClassificacao,\r\n httpOptions\r\n );\r\n }\r\n\r\n gravarEmailsAutomatico(modelo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlProcesso + 'emailsautomaticos', modelo,\r\n httpOptions\r\n );\r\n }\r\n\r\n getEmails(\r\n activo: boolean,\r\n disponivelEmails: boolean\r\n ): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso +\r\n 'emailsautomaticos/emailsEnvio/' +\r\n activo +\r\n '/' +\r\n disponivelEmails,\r\n httpOptions\r\n );\r\n }\r\n\r\n getPeriodicidadeEmails(): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso + 'notificacao/getPeriodicidadeEmails',\r\n httpOptions\r\n );\r\n }\r\n\r\n getEmailAutomatico(idEmailAutomatico: number, idClassificacao: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso + 'emailsautomaticos/' + idEmailAutomatico + '/' + idClassificacao,\r\n httpOptions\r\n );\r\n }\r\n\r\n getClassificacoes(): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'classificacoes', httpOptions);\r\n }\r\n\r\n getClassificacoesParametrizacao(): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso + 'classificacoes/parametrizacao',\r\n httpOptions\r\n );\r\n }\r\n\r\n salvarParametrizacao(modelo: any): Observable {\r\n return this.http.post(\r\n this.baseUrlProcesso + 'classificacoes', modelo, httpOptions\r\n );\r\n }\r\n\r\n getProcessos(model: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlProcesso + 'processos/filtro',\r\n model,\r\n httpOptions\r\n );\r\n }\r\n\r\n getEstadosFacturacao() {\r\n return this.http.get(this.baseUrlProcesso + 'processos/estados-facturacao', httpOptions);\r\n }\r\n\r\n\r\n getProcesso(idProcesso: number, idIdioma: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlProcesso + 'processos/processo/' + idIdioma + '/' + idProcesso,\r\n httpOptions\r\n );\r\n }\r\n\r\n removerProcesso(idProcesso: number): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlProcesso + 'processos/eliminar',\r\n idProcesso,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getClientes() {\r\n return this.http.get(this.baseUrlProcesso + 'clientes', httpOptions);\r\n }\r\n\r\n getTarefas(model: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlProcesso + 'tarefas/GetPrtarefas',\r\n model,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n getEstados(): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'estados', httpOptions);\r\n }\r\n\r\n getEstado(idEstado: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'estados/PrEstados/' + idEstado, httpOptions);\r\n }\r\n\r\n salvar(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'processos/', model, httpOptions);\r\n }\r\n\r\n editar(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'processos/Atualizar', model, httpOptions);\r\n }\r\n\r\n alterarEstadoProcesso(idEstado, idProcesso) {\r\n return this.http.post>(this.baseUrlProcesso + `processos/${idProcesso}/estados/${idEstado}`, httpOptions);\r\n }\r\n\r\n // gerarToken(model: any) {\r\n // return this.http\r\n // .post(this.baseUrlProcesso + 'gerartoken/', model)\r\n // .pipe();\r\n // }\r\n\r\n getCodigoProcesso(modeloCodigo: any): Observable {\r\n return this.http\r\n .post(\r\n this.baseUrlProcesso +\r\n 'numeracao/', modeloCodigo,\r\n httpOptions\r\n )\r\n .pipe();\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error);\r\n }\r\n\r\n getResponsavel(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'responsavel/' + idClassificacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getResponsavelTipo(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'responsavel/tipo/' + idClassificacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Caracteristicas\r\n getCaracteristicas(idClassificacao: number, activo: boolean): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'caracteristicas/' + idClassificacao + '/' + activo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Categoria\r\n getCategorias(idClassificacao: number, idIdioma: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'categorias/' + idClassificacao + '/' + idIdioma, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCategoriasConfiguracao(idClassificacao: number, idIdioma: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'categorias/categorias/' + idClassificacao + '/' + idIdioma, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getCategoria(idCategoria: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'categorias/categoria/' + idCategoria, httpOptions)\r\n .pipe();\r\n }\r\n\r\n SalvarCategoria(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'categorias/', model, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarCategoria(idCategoria: number): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'categorias/eliminar', idCategoria, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Salvar Estado\r\n salvarEstado(model: any): Observable {\r\n return this.http.post(this.baseUrlProcesso + 'estados/', model, httpOptions);\r\n }\r\n\r\n // Eliminar Estado fora de funcionalidade\r\n eliminarEstadoConfig(idEstado: number) {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'estados/eliminar/', idEstado, httpOptions)\r\n .pipe();\r\n }\r\n\r\n eliminarEstado(id: number) {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'tipostarefas/eliminar/estado/', id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n\r\n // Tipo de tarefa\r\n getTipoTarefas(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'tarefas/tipos/', {...httpOptions, params: {idClassificacao}})\r\n .pipe();\r\n }\r\n\r\n getTipoTarefasConfiguracao(idClassificacao: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'tipostarefas/Conf/' + idClassificacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTipoTarefa(id: number) {\r\n return this.http.get>(this.baseUrlProcesso + 'tarefas/tipos/' + id, httpOptions);\r\n }\r\n\r\n gravarTipoTarefa(model: any): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'tarefas/tipos', model, httpOptions);\r\n }\r\n\r\n eliminarTipoTarefa(id: number): Observable {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'tipostarefas/eliminar', id, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // fim Tipo de tarefa\r\n\r\n // ProcessoArtigo\r\n getPrArtigosFornecedor(idArtigo?: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'processosartigos/fornecedor/' + idArtigo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getArtigosProcesso(idProcesso?: number): Observable {\r\n return this.http\r\n .get(this.baseUrlProcesso + 'artigos/' + idProcesso, httpOptions)\r\n .pipe();\r\n }\r\n\r\n // Fim ProcessoArtigo\r\n\r\n\r\n gravarPermissoes(modelo: any) {\r\n return this.http\r\n .post(this.baseUrlProcesso + 'permissoes', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getContratosXML(dataInicio: any, dataFim: any) {\r\n\r\n return this.http.get(this.baseUrlProcesso + 'relatorios/contratosXml/' + dataInicio, httpOptions);\r\n }\r\n\r\n getRelatoriosXML(tipo: any, dataInicio: any, dataFim: any) {\r\n return this.http.get(this.baseUrlProcesso + 'relatorios/' + tipo + 'Xml/' + dataInicio + '/' + dataFim, httpOptions);\r\n }\r\n\r\n getRelatoriosContractosXML(dataInicio: any,) {\r\n return this.http.get(this.baseUrlProcesso + 'relatorios/contratosXml/' + dataInicio, httpOptions);\r\n }\r\n\r\n getRelatorioGarantiasXML(dataInicio?: any, dataFim?: any) {\r\n console.log('Datta no service: ', dataInicio);\r\n return this.http.get(this.baseUrlProcesso + 'relatorios/garantiasXml/' + dataInicio, httpOptions);\r\n }\r\n\r\n getTiposDadosCaracteristica(): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'caracteristicas/tipoDados', httpOptions);\r\n }\r\n\r\n // Localização\r\n getTiposLocalizacao(idClassificacao: number): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'localizacao/tipos/' + idClassificacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getLocalizacaoValoresFixo(idTipoLocalizacao: number): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'localizacao/valorFixo/' + idTipoLocalizacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTiposLocalizacaoConf(idClassificacao: number): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'localizacao/tiposConf/' + idClassificacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getTipoLocalizacao(idTipoLocalizacao: number): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'localizacao/tipo/' + idTipoLocalizacao, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getLocalizacao(idProcesso: number): Observable {\r\n return this.http.get(this.baseUrlProcesso + 'localizacao/' + idProcesso, httpOptions)\r\n .pipe();\r\n }\r\n\r\n gravarTipoLocalizacao(modelo: any): Observable {\r\n return this.http.post(this.baseUrlProcesso + 'localizacao/tipo/', modelo, httpOptions)\r\n .pipe();\r\n }\r\n\r\n getItensProcessoFA(parametros) {\r\n return this.http.post(this.baseUrlProcesso + 'processos/ProcessosFactItens', parametros, httpOptions).pipe();\r\n }\r\n\r\n getClassificacaoProcessosFA() {\r\n // https://appdemo.kiami.ao/pro/api/v1/classificacoes/facturacao\r\n return this.http.get(this.baseUrlProcesso + 'classificacoes/facturacao');\r\n }\r\n\r\n getProcessosFA() {\r\n return this.http.get(this.baseUrlProcesso + 'processos/facturacao');\r\n }\r\n\r\n getArtigosProcessosFA(idIdioma?: number, idProcesso?: number) {\r\n return this.http.get(this.baseUrlProcesso + 'processos/processoF/' + idIdioma + '/' + idProcesso);\r\n }\r\n\r\n getArtigosProcessoALT(payload: any) {\r\n return this.http.post(env.apiArtigos + 'artigos/processos', payload);\r\n }\r\n\r\n postLocalizacao(req: any) {\r\n return this.http.post>(`${this.baseUrlProcesso}processos/${req.idProcesso}/localizacoes`, req);\r\n }\r\n\r\n eliminarLocalizacao(id: number) {\r\n return this.http.post>(`${this.baseUrlProcesso}processos/localizacoes/remover`, id);\r\n }\r\n\r\n onActual(id: number) {\r\n return this.http.post>(`${this.baseUrlProcesso}processos/localizacoes/actual`, id);\r\n }\r\n\r\n getDocumentos(id: number) {\r\n return this.http.get>(`${this.baseUrlProcesso}processos/${id}/documentos`);\r\n }\r\n\r\n getDocumentosCP(id: number) {\r\n return this.http.get>(`${this.baseUrlProcesso}processos/${id}/documentos-compra`);\r\n }\r\n\r\n getSubEstados(id: number) {\r\n return this.http.get>(`${this.baseUrlProcesso}estados/${id}/sub-estados`);\r\n }\r\n\r\n addSubEstado(id: number, idEstado: number) {\r\n return this.http.post>(`${this.baseUrlProcesso}estados/${id}/sub-estados`, idEstado);\r\n }\r\n\r\n removerSubEstado(id: number, idEstado: number) {\r\n return this.http.post>(`${this.baseUrlProcesso}estados/${id}/sub-estados/remover`, idEstado);\r\n }\r\n\r\n getEntidadesTempos(filtros: any): Observable {\r\n return this.http.post(this.baseUrlProcesso + 'processos/temposEntidades', filtros, httpOptions).pipe();\r\n }\r\n\r\n gerarPdfEntidadesTempos(filtros: any): Observable {\r\n return this.http.post(this.baseUrlProcesso + 'processos/gerarPdfEntidadesTempos', filtros, httpOptions).pipe();\r\n }\r\n getProcessosBase(idClassificacao?: number) : Observable{\r\n return this.http.get(this.baseUrlProcesso + 'processos/processosBase/' + idClassificacao);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\nimport {environment} from 'environments/environment';\r\nimport {Observable} from 'rxjs';\r\nimport {TiposEmpregos} from 'app/shared/models/recursos-humanos/tiposempregos';\r\nimport {GrausAcademicos} from 'app/shared/models/recursos-humanos/grausacademicos';\r\nimport {Areas} from 'app/shared/models/recursos-humanos/areas';\r\nimport {Funcoes} from 'app/shared/models/recursos-humanos/funcoes';\r\nimport {Cargos} from 'app/shared/models/recursos-humanos/cargos';\r\nimport {Candidaturas} from 'app/shared/models/recursos-humanos/candidaturas';\r\nimport {TiposOutrasInformacoes} from 'app/shared/models/recursos-humanos/tiposoutrasinformacoes';\r\nimport {Vagas} from '../../models/recrutamento/vagas';\r\nimport {Idioma} from '../../models/recursos-humanos/idioma';\r\nimport {EstadosVagas} from 'app/shared/models/recrutamento/estadosvagas';\r\nimport {Empregadores} from 'app/shared/models/recrutamento/empregadores';\r\nimport {Candidatos} from 'app/shared/models/recrutamento/candidatos';\r\nimport {EstadosCandidaturas} from 'app/shared/models/recrutamento/estadoscandidatura';\r\nimport {LoginService} from '../aplicacao-service/login.service';\r\nimport {rhService} from './rh.service';\r\nimport {Posicao} from 'app/shared/models/recursos-humanos/posicao';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {Unidadeorganizativa} from 'app/shared/models/recursos-humanos/unidadeOrganizativa';\r\nimport {Pais} from 'app/shared/models/recursos-humanos/pais';\r\nimport {EstruturaOrganizativa} from 'app/shared/models/recursos-humanos/EstruturaOrganizativa';\r\nimport {TipoUnidadeOrganizativa} from 'app/shared/models/recursos-humanos/tipo-unidade-organizativa';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class RecursosHumanosService extends rhService {\r\n baseUrl: string;\r\n baseUrlRH: string;\r\n baseUrlAPL: string;\r\n utilizadorSessao: any = {};\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private _loginService: LoginService,\r\n private rhservice: rhService\r\n ) {\r\n super(http);\r\n this.baseUrlRH = `${environment.apiRHumanos}`;\r\n this.baseUrlAPL = `${environment.apiAplicacao}`;\r\n this.utilizadorSessao.utilizadorSessao = this._loginService.getUtilizadorSessao();\r\n this.utilizadorSessao = {utilizadorSessao: this._loginService.getUtilizadorSessao()};\r\n }\r\n\r\n\r\n obterPosicoes(): Observable> {\r\n return this.rhservice.listar>('posicoes');\r\n }\r\n\r\n obterPosicao(id: number): Observable> {\r\n return this.rhservice.obterPeloId>('posicoes', id);\r\n\r\n }\r\n\r\n adicionarPosicao(posicao: Posicao): Observable> {\r\n return this.rhservice.adicionar>('posicoes', posicao);\r\n }\r\n\r\n removerPosicao(id: number): Observable> {\r\n return this.rhservice.remover>('posicoes/remover', id);\r\n }\r\n\r\n\r\n // Estrutura Organizativa Linear\r\n obterUnidadeOrganizativaPorIdEstrutura(id: number): Observable> {\r\n return this.rhservice.obterPeloId>(\r\n 'unidadesOrganizativas/unidadesOrganizativasPorEstrutura', id);\r\n\r\n }\r\n\r\n // Para o Organograma ...\r\n obterOrganogramaPorEstrutura(id: number): Observable> {\r\n return this.rhservice.obterPeloId>(\r\n 'unidadesOrganizativas/organogramaPorEstrutura', id);\r\n\r\n }\r\n\r\n\r\n getTiposEmpregos() {\r\n return this.http.get(this.baseUrlRH + 'tiposempregos', httpOptions);\r\n }\r\n\r\n getGrausAcademicos() {\r\n return this.http.get(this.baseUrlRH + 'grausacademicos', httpOptions);\r\n }\r\n\r\n getNivelAcademicos(): Observable {\r\n return this.http.get(this.baseUrlRH + 'grausParentesco/niveisEscolaridade', httpOptions);\r\n }\r\n\r\n getGrauParentesco(): Observable {\r\n return this.http\r\n .get(this.baseUrlRH + 'grausParentesco', httpOptions);\r\n }\r\n\r\n getTitulos() {\r\n return this.http.get(this.baseUrlAPL + 'aplicacao/titulos', httpOptions);\r\n }\r\n\r\n getAreas() {\r\n return this.http.get(this.baseUrlRH + 'areas', httpOptions);\r\n }\r\n\r\n getIdiomas() {\r\n return this.http.get(this.baseUrlRH + 'idiomas', httpOptions);\r\n }\r\n\r\n getEstadosVagas() {\r\n return this.http.get(this.baseUrlRH + 'estadosvaga', httpOptions);\r\n }\r\n\r\n getFuncoes() {\r\n return this.http.get(this.baseUrlRH + 'funcoes', httpOptions);\r\n }\r\n\r\n // obter os cargos\r\n obterCargos(): Observable {\r\n return this.http.get(this.baseUrlRH + 'cargo', httpOptions);\r\n }\r\n\r\n obterCargo(idCargo: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'cargo/' + idCargo, httpOptions);\r\n }\r\n\r\n\r\n // Adiciona e editar\r\n adicionarCargo(cargo: Cargos) {\r\n return this.http.post(this.baseUrlRH + 'cargo', cargo, httpOptions);\r\n }\r\n\r\n\r\n removerCargo(idCargo: number): Observable {\r\n return this.http.post(this.baseUrlRH + 'cargo/remover/' + idCargo, httpOptions);\r\n }\r\n\r\n\r\n // obter os graus Parentescos\r\n obterGrausParentescos() {\r\n return this.http.get(this.baseUrlRH + 'grausParentesco', httpOptions);\r\n }\r\n\r\n obterGrauParentesco(idGrauParentesco: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'grausParentesco/' + idGrauParentesco, httpOptions);\r\n }\r\n\r\n\r\n // Adiciona e editar\r\n adicionarGrauParentesco(grauParentesco: any) {\r\n return this.http\r\n .post(this.baseUrlRH + 'grausParentesco', grauParentesco, httpOptions);\r\n }\r\n\r\n\r\n removerGrauParentesco(idGrauParentesco: number) {\r\n\r\n return this.http.post>(this.baseUrlRH + 'grausParentesco/remover/' + idGrauParentesco, httpOptions);\r\n }\r\n\r\n\r\n getTiposOutrasInformacoes() {\r\n return this.http.get(this.baseUrlRH + 'tiposoutrasinformacoes', httpOptions);\r\n }\r\n\r\n removerTipoUnidadeOrganizativa(idTipoUnidadeOrg: number) {\r\n return this.http\r\n .post(this.baseUrlRH + 'tiposUnidadesOrganizativas/remover/'\r\n + idTipoUnidadeOrg, httpOptions);\r\n }\r\n\r\n getCandidaturas() {\r\n return this.http.get(this.baseUrlRH + 'candidaturas', httpOptions);\r\n }\r\n\r\n getCandidatura(idCandidato: number, idVaga: number): Observable {\r\n return this.http\r\n .get(\r\n this.baseUrlRH + 'candituracandidato/' + idCandidato + '/' + idVaga,\r\n httpOptions\r\n );\r\n }\r\n\r\n getEmpregadores() {\r\n return this.http.get(this.baseUrlRH + 'empregadores', httpOptions);\r\n }\r\n\r\n getCandidatos() {\r\n return this.http.get(this.baseUrlRH + 'candidatos', httpOptions);\r\n }\r\n\r\n getEstadosCandidaturas() {\r\n return this.http.get(this.baseUrlRH + 'estadoscandidatura', httpOptions);\r\n }\r\n\r\n getEstadoCandidaturaDefault() {\r\n return this.http.get(this.baseUrlRH + 'estadocandidaturadefault', httpOptions);\r\n }\r\n\r\n getVagas(model: any) {\r\n return this.http.post(this.baseUrlRH + 'vagas/', model, httpOptions);\r\n }\r\n\r\n salvarVagas(model: any) {\r\n return this.http\r\n .post(this.baseUrlRH + 'salvarvagas/', model, httpOptions);\r\n }\r\n\r\n salvarCandidatura(model: any) {\r\n return this.http\r\n .post(this.baseUrlRH + 'candidaturas/', model, httpOptions);\r\n }\r\n\r\n // Metodos modulo RH\r\n\r\n getColaboradores(objectoListagem: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'Colaboradores/listagem', objectoListagem, httpOptions);\r\n }\r\n\r\n async getColaboradorById(obj: any): Promise> {\r\n // let result = this.http.post(this.baseUrlRH + 'colaboradores/detalhe', obj).\r\n return await this.http.post(this.baseUrlRH + 'colaboradores/detalhe', obj);\r\n\r\n\r\n // pipe(\r\n // catchError( (error) => {\r\n // console.log('HttpError', error);\r\n // return new Observable();\r\n // })\r\n // )\r\n }\r\n\r\n // -------------- modelo para filtros-----------------\r\n\r\n getColaboradoresFiltro(model: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'filtros', model).pipe();\r\n }\r\n\r\n getColaboradoresFiltroC(model: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'Colaboradores', model).pipe();\r\n }\r\n\r\n addColaboradores(val: any): any {\r\n console.log('ADD COLABORAD .:', val);\r\n\r\n return this.http.post(this.baseUrlRH + 'Colaboradores', val, this.utilizadorSessao).pipe();\r\n }\r\n\r\n updateColaboradores(val: any): Observable {\r\n return this.http.put(this.baseUrlRH + 'Colaboradores...::: ', val).pipe();\r\n }\r\n\r\n deleteColaboradores(id: number): Observable {\r\n\r\n return this.http.post(this.baseUrlRH + 'colaboradores/remover/' + id, this.utilizadorSessao).pipe();\r\n }\r\n\r\n // ---------------------------- pegar dados externos para modulo RH ---------------------------------\r\n getListaGrauParentesco(): Observable {\r\n return this.http.get(this.baseUrlRH + 'parentesco').pipe();\r\n }\r\n\r\n getGrauParentescoById(id: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'parentesco/' + id).pipe();\r\n }\r\n\r\n addGrauParentesco(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'parentesco', obj).pipe();\r\n }\r\n\r\n deleteGrauParentesco(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'parentesco?id=' + id).pipe();\r\n }\r\n\r\n getListaGrausAcademicos(): Observable {\r\n return this.http.get(this.baseUrlRH + 'grausAcademicos').pipe();\r\n }\r\n\r\n addGrauAcademicos(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'grausAcademicos', obj).pipe();\r\n }\r\n\r\n deleteGrauAcademicos(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'grausAcademicos?id=' + id).pipe();\r\n }\r\n\r\n getListaRhTiposDocumento(): Observable {\r\n return this.http.get(this.baseUrlRH + 'TiposDocumentos').pipe();\r\n }\r\n\r\n getRhTipoDocumentoById(id: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'TiposDocumentos/' + id).pipe();\r\n }\r\n\r\n addRhTiposDocumento(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'TiposDocumentos', obj).pipe();\r\n }\r\n\r\n deleteRhTiposDocumento(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'TiposDocumentos?id=' + id).pipe();\r\n }\r\n\r\n getListaRhTiposContacto(): Observable {\r\n return this.http.get(this.baseUrlRH + 'TiposContactos').pipe();\r\n }\r\n\r\n addRhTiposContacto(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'TiposContactos', obj).pipe();\r\n }\r\n\r\n deleteRhTiposContacto(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'TiposContactos?id=' + id).pipe();\r\n }\r\n\r\n getListaOpcoesInsercao(): Observable {\r\n return this.http.get(this.baseUrlRH + 'opcoesInsercao').pipe();\r\n }\r\n\r\n getListaOpcoesInsercaoByID(id: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'opcoesInsercao/' + id).pipe();\r\n }\r\n\r\n getListaPaises(): Observable {\r\n return this.http.get(this.baseUrlRH + 'paises').pipe();\r\n }\r\n\r\n getConfiguracao(): Observable {\r\n return this.http.get(this.baseUrlRH + 'configuracao').pipe();\r\n }\r\n\r\n addConfiguracao(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'configuracao', obj).pipe();\r\n }\r\n\r\n getListaTitulos(): Observable {\r\n return this.http.get(this.baseUrlAPL + 'aplicacao/titulos', httpOptions).pipe();\r\n }\r\n\r\n getListaMunicipios(): Observable {\r\n return this.http.get(this.baseUrlRH + 'municipios').pipe();\r\n }\r\n\r\n getListaProvincias(): Observable {\r\n return this.http.get(this.baseUrlRH + 'provincias').pipe();\r\n }\r\n\r\n getListaZonas(): Observable {\r\n return this.http.get(this.baseUrlRH + 'zonas').pipe();\r\n }\r\n\r\n getListaTiposContacto(): Observable {\r\n return this.http.get(this.baseUrlRH + 'tiposContactos').pipe();\r\n }\r\n\r\n getListaTiposDocumento(): Observable {\r\n return this.http.get(this.baseUrlRH + 'tipoDocumento').pipe();\r\n }\r\n\r\n getListaGeneros(): Observable {\r\n console.log('Generos..:: ', this.baseUrlAPL);\r\n return this.http.get(this.baseUrlAPL + 'aplicacao/sexos', httpOptions).pipe();\r\n }\r\n\r\n getListaEstadosCivis(): Observable {\r\n return this.http.get(this.baseUrlAPL + 'aplicacao/estadoscivis').pipe();\r\n }\r\n\r\n getListaNiveisAcademicos(): Observable {\r\n return this.http.get(this.baseUrlRH + 'niveisAcademicos');\r\n }\r\n\r\n // ---------------------------------------- Estruturas Organizativas CRUD\r\n getListaEstruturasOrgnizativas() {\r\n // return null;\r\n return this.http.get>(this.baseUrlRH + 'estruturasOrganizativas').pipe();\r\n }\r\n\r\n getListaEstruturasOrgnizativasById(id?: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'estruturasOrganizativas/' + id).pipe();\r\n }\r\n\r\n addEstruturasOrgnizativas(obj: any): Observable {\r\n\r\n return this.http.post(this.baseUrlRH + 'estruturasOrganizativas', obj).pipe();\r\n }\r\n\r\n deleteEstruturasOrgnizativas(id: number): Observable {\r\n return this.http.post(this.baseUrlRH + 'estruturasOrganizativas/remover/' + id, []).pipe();\r\n }\r\n\r\n // ---------------------------------------------- Empresas\r\n\r\n\r\n getListaEmpresas(): Observable {\r\n return this.http.get(this.baseUrlRH + 'empresas').pipe();\r\n }\r\n\r\n getEmpresaById(id: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'empresas/' + id).pipe();\r\n }\r\n\r\n // ------------------------------------------------ Tipos Unidades Organizativas\r\n\r\n getListaTiposUnidadesOrganizativas(): Observable> {\r\n return this.listar>\r\n ('tiposUnidadesOrganizativas').pipe();\r\n }\r\n\r\n obterTipoUnidadesOrganizativasPeloId(id: number):\r\n Observable> {\r\n return this.obterPeloId>\r\n ('tiposUnidadesOrganizativas', id).pipe();\r\n }\r\n\r\n addTiposUnidadesOrganizativas(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'tiposUnidadesOrganizativas', obj);\r\n }\r\n\r\n removeTiposUnidadesOrganizativas(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'tiposUnidadesOrganizativas?id=' + id).pipe();\r\n }\r\n\r\n // ---------------------------------------- Unidades organizativas\r\n\r\n getListaUnidadesOrganizativas(): Observable {\r\n return this.http.get(this.baseUrlRH + 'unidadesOrganizativas').pipe();\r\n }\r\n\r\n getListaUnidadesOrganizativasById(id: number): Observable {\r\n return this.http.get(this.baseUrlRH + 'unidadesOrganizativas/' + id).pipe();\r\n }\r\n\r\n addUnidadesOrganizativas(obj: any): Observable {\r\n return this.http.post(this.baseUrlRH + 'unidadesOrganizativas', obj);\r\n }\r\n\r\n removeUnidadesOrganizativas(id: number): Observable {\r\n return this.http.delete(this.baseUrlRH + 'unidadesOrganizativas?id=' + id).pipe();\r\n }\r\n\r\n\r\n obterEstruturasOrganizativas(): Observable {\r\n return this.http.get(this.baseUrlRH + 'estruturasOrganizativas').pipe();\r\n }\r\n\r\n obterEstruturaOrganizativa() {\r\n return this.http.get>(this.baseUrlRH + 'unidadesOrganizativas/estruturaOrganizativa');\r\n }\r\n\r\n obterEstruturaOrganizativaLinear(): Observable> {\r\n return this.rhservice.listar>('unidadesOrganizativas');\r\n\r\n }\r\n\r\n\r\n guardarEstruturaOrganizativa(estruturaOrganizativa: Unidadeorganizativa[]): Observable {\r\n return this.http.post(this.baseUrlRH + 'unidadesOrganizativas', estruturaOrganizativa).pipe();\r\n }\r\n\r\n\r\n apagarEstruturaOrganizativa(idEstruturaOrganizativa: number): Observable {\r\n return this.http.post(this.baseUrlRH + 'unidadesOrganizativas/remover/'\r\n + idEstruturaOrganizativa, []).pipe();\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { environment } from \"environments/environment\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({\r\n Authorization: 'Bearer ' + localStorage.getItem('token'),\r\n }),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\n\r\n\r\nexport class rhService {\r\n\r\n baseUrlRH: string;\r\n constructor(\r\n private _http: HttpClient\r\n ) {\r\n // inicializar valores\r\n this.baseUrlRH = `${environment.apiRHumanos}`;\r\n }\r\n\r\n listar(endpoint: string) {\r\n return this._http.get(this.baseUrlRH + endpoint);\r\n }\r\n\r\n obterPeloId(endpoint: string, id: number): Observable {\r\n return this._http.get(this.baseUrlRH + endpoint + '/' +\r\n +id);\r\n }\r\n\r\n adicionar(endpoint: string, objecto: any): Observable {\r\n return this._http.post(this.baseUrlRH + endpoint, objecto);\r\n }\r\n\r\n remover(endpoint: string, id: number): Observable {\r\n return this._http.post(this.baseUrlRH + endpoint + '/' + id,[]);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router, ActivatedRoute, NavigationEnd, ActivatedRouteSnapshot, Params, PRIMARY_OUTLET } from \"@angular/router\";\r\n\r\ninterface IRoutePart {\r\n title: string,\r\n breadcrumb: string,\r\n params?: Params,\r\n url: string,\r\n urlSegments: any[]\r\n}\r\n\r\n@Injectable()\r\nexport class RoutePartsService {\r\n public routeParts: IRoutePart[];\r\n constructor(private router: Router) {}\r\n\r\n generateRouteParts(snapshot: ActivatedRouteSnapshot): IRoutePart[] {\r\n let routeParts = [] as IRoutePart[];\r\n if (snapshot) {\r\n if (snapshot.firstChild) {\r\n routeParts = routeParts.concat(this.generateRouteParts(snapshot.firstChild));\r\n }\r\n if (snapshot.data['title'] && snapshot.url.length) {\r\n // console.log(snapshot.data['title'], snapshot.url)\r\n routeParts.push({\r\n title: snapshot.data['title'],\r\n breadcrumb: snapshot.data['breadcrumb'],\r\n url: snapshot.url[0].path,\r\n urlSegments: snapshot.url,\r\n params: snapshot.params\r\n });\r\n }\r\n }\r\n return routeParts;\r\n }\r\n}\r\n","import { Injectable, Inject, Renderer2, RendererFactory2, EventEmitter } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { getQueryParam } from '../helpers/url.helper';\r\n\r\nexport interface ITheme {\r\n name: string,\r\n baseColor?: string,\r\n isActive?: boolean\r\n}\r\n\r\n@Injectable()\r\nexport class ThemeService {\r\n public onThemeChange: EventEmitter = new EventEmitter();\r\n\r\n public egretThemes: ITheme[] = [\r\n {\r\n 'name': 'egret-navy',\r\n 'baseColor': '#10174c',\r\n 'isActive': false\r\n },\r\n {\r\n 'name': 'egret-navy-dark',\r\n 'baseColor': '#0081ff',\r\n 'isActive': false\r\n }];\r\n\r\n public activatedTheme: ITheme;\r\n private renderer: Renderer2;\r\n constructor(\r\n @Inject(DOCUMENT) private document: Document,\r\n rendererFactory: RendererFactory2\r\n ) {\r\n this.renderer = rendererFactory.createRenderer(null, null);\r\n }\r\n\r\n // Invoked in AppComponent and apply 'activatedTheme' on startup\r\n applyMatTheme( themeName: string) {\r\n this.activatedTheme = this.egretThemes.find(t => t.name === themeName);\r\n this.flipActiveFlag(themeName);\r\n\r\n // *********** ONLY FOR DEMO **********\r\n this.setThemeFromQuery();\r\n // ************************************\r\n\r\n // this.changeTheme(themeName);\r\n this.renderer.addClass(this.document.body, themeName);\r\n\r\n }\r\n\r\n changeTheme(prevTheme, themeName: string) {\r\n this.renderer.removeClass(this.document.body, prevTheme);\r\n this.renderer.addClass(this.document.body, themeName);\r\n this.flipActiveFlag(themeName);\r\n this.onThemeChange.emit(this.activatedTheme);\r\n }\r\n\r\n flipActiveFlag(themeName: string) {\r\n this.egretThemes.forEach((t) => {\r\n t.isActive = false;\r\n if (t.name === themeName) {\r\n t.isActive = true;\r\n this.activatedTheme = t;\r\n }\r\n });\r\n }\r\n\r\n // *********** ONLY FOR DEMO **********\r\n setThemeFromQuery() {\r\n const themeStr = getQueryParam('theme');\r\n try {\r\n this.activatedTheme = JSON.parse(themeStr);\r\n console.log(this.activatedTheme);\r\n\r\n this.flipActiveFlag(this.activatedTheme.name);\r\n } catch (e) {}\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UILibIconService {\r\n\r\n iconList = [\r\n { 'name': 'ulb_monitor', 'fileName': 'monitor.svg' },\r\n { 'name': 'ulb_money', 'fileName': 'money.svg' },\r\n { 'name': 'ulb_home_security', 'fileName': 'home_security.svg' },\r\n { 'name': 'ulb_paper_plane', 'fileName': 'paper_plane.svg' },\r\n { 'name': 'ulb_menu', 'fileName': 'menu.svg' },\r\n { 'name': 'ulb_home', 'fileName': 'home.svg' },\r\n { 'name': 'ulb_documents', 'fileName': 'documents.svg' },\r\n { 'name': 'ulb_edit', 'fileName': 'edit.svg' },\r\n { 'name': 'ulb_boss', 'fileName': 'boss.svg' },\r\n { 'name': 'ulb_partnership', 'fileName': 'partnership.svg' },\r\n { 'name': 'ulb_partnership_1', 'fileName': 'partnership_1.svg' },\r\n { 'name': 'ulb_success', 'fileName': 'success.svg' },\r\n { 'name': 'ulb_rocket_launch', 'fileName': 'rocket_launch.svg' },\r\n { 'name': 'ulb_rocket', 'fileName': 'rocket.svg' },\r\n { 'name': 'ulb_business_and_trade', 'fileName': 'business_and_trade.svg' },\r\n { 'name': 'ulb_enterprise', 'fileName': 'enterprise.svg' },\r\n { 'name': 'ulb_cloud_computing', 'fileName': 'cloud_computing.svg' },\r\n { 'name': 'ulb_cloud_computing_1', 'fileName': 'cloud_computing_1.svg' },\r\n { 'name': 'ulb_cloud_computing_2', 'fileName': 'cloud_computing_2.svg' },\r\n { 'name': 'ulb_send', 'fileName': 'send.svg' },\r\n { 'name': 'ulb_table', 'fileName': 'table.svg' },\r\n { 'name': 'ulb_notification', 'fileName': 'notification.svg' },\r\n { 'name': 'ulb_person', 'fileName': 'person.svg' },\r\n { 'name': 'ulb_menu_1', 'fileName': 'menu_1.svg' },\r\n { 'name': 'ulb_delete', 'fileName': 'delete.svg' },\r\n { 'name': 'ulb_close', 'fileName': 'close.svg' },\r\n { 'name': 'ulb_magnifying_glass', 'fileName': 'magnifying_glass.svg' },\r\n { 'name': 'ulb_settings', 'fileName': 'settings.svg' },\r\n { 'name': 'ulb_twitter', 'fileName': 'twitter.svg' },\r\n { 'name': 'ulb_facebook', 'fileName': 'facebook.svg' },\r\n { 'name': 'ulb_linkedin', 'fileName': 'linkedin.svg' },\r\n { 'name': 'ulb_pie_chart', 'fileName': 'pie_chart.svg' },\r\n { 'name': 'ulb_paint_palette', 'fileName': 'paint_palette.svg' },\r\n { 'name': 'ulb_server', 'fileName': 'server.svg' },\r\n { 'name': 'ulb_database', 'fileName': 'database.svg' },\r\n { 'name': 'ulb_database_1', 'fileName': 'database_1.svg' },\r\n { 'name': 'ulb_creativity', 'fileName': 'creativity.svg' },\r\n { 'name': 'ulb_list_text', 'fileName': 'list_text.svg' },\r\n { 'name': 'ulb_list', 'fileName': 'list.svg' },\r\n { 'name': 'ulb_shopping_list', 'fileName': 'shopping_list.svg' },\r\n { 'name': 'ulb_checklist', 'fileName': 'checklist.svg' },\r\n { 'name': 'ulb_bullet_list', 'fileName': 'bullet_list.svg' },\r\n { 'name': 'ulb_shopping_cart', 'fileName': 'shopping_cart.svg' },\r\n { 'name': 'ulb_add', 'fileName': 'add.svg' },\r\n { 'name': 'ulb_shopping_cart_1', 'fileName': 'shopping_cart_1.svg' },\r\n { 'name': 'ulb_shopping_basket', 'fileName': 'shopping_basket.svg' },\r\n { 'name': 'ulb_edit_table', 'fileName': 'edit_table.svg' },\r\n { 'name': 'ulb_casino_chips', 'fileName': 'casino_chips.svg' },\r\n { 'name': 'ulb_add_1', 'fileName': 'add_1.svg' },\r\n { 'name': 'ulb_chat', 'fileName': 'chat.svg' },\r\n { 'name': 'ulb_chat_box', 'fileName': 'chat_box.svg' },\r\n { 'name': 'ulb_chat_1', 'fileName': 'chat_1.svg' },\r\n { 'name': 'ulb_agreement', 'fileName': 'agreement.svg' },\r\n { 'name': 'ulb_box', 'fileName': 'box.svg' },\r\n { 'name': 'ulb_link_1', 'fileName': 'link_1.svg' },\r\n { 'name': 'ulb_link', 'fileName': 'link.svg' },\r\n { 'name': 'ulb_message', 'fileName': 'message.svg' },\r\n { 'name': 'ulb_inbox', 'fileName': 'inbox.svg' },\r\n { 'name': 'ulb_inbox_1', 'fileName': 'inbox_1.svg' },\r\n { 'name': 'ulb_invoices', 'fileName': 'invoices.svg' },\r\n { 'name': 'ulb_receipt', 'fileName': 'receipt.svg' },\r\n { 'name': 'ulb_search', 'fileName': 'search.svg' },\r\n { 'name': 'ulb_date', 'fileName': 'date.svg' },\r\n { 'name': 'ulb_building', 'fileName': 'building.svg' },\r\n { 'name': 'ulb_block', 'fileName': 'block.svg' },\r\n { 'name': 'ulb_users', 'fileName': 'users.svg' },\r\n { 'name': 'ulb_user', 'fileName': 'user.svg' },\r\n { 'name': 'ulb_map', 'fileName': 'map.svg' },\r\n { 'name': 'ulb_location', 'fileName': 'location.svg' },\r\n { 'name': 'ulb_drag', 'fileName': 'drag.svg' },\r\n {\r\n 'name': 'ulb_business_card_of_a_man_with_contact_info',\r\n 'fileName': 'business_card_of_a_man_with_contact_info.svg'\r\n },\r\n { 'name': 'ulb_help', 'fileName': 'help.svg' },\r\n { 'name': 'ulb_list_1', 'fileName': 'list_1.svg' }\r\n ]\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer\r\n ) {\r\n }\r\n\r\n init() {\r\n this.iconList.forEach(i => {\r\n this.matIconRegistry.addSvgIcon(\r\n i.name,\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(`assets/images/svg-icons/${i.fileName}`)\r\n );\r\n });\r\n }\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { MatBadgeModule } from \"@angular/material/badge\";\r\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\r\nimport { MatButtonToggleModule } from \"@angular/material/button-toggle\";\r\nimport { MatCardModule } from \"@angular/material/card\";\r\nimport { MatChipsModule } from \"@angular/material/chips\";\r\nimport { MatRippleModule, MatNativeDateModule } from \"@angular/material/core\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatDividerModule } from \"@angular/material/divider\";\r\nimport { MatExpansionModule } from \"@angular/material/expansion\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\r\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\r\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\r\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\r\nimport { MatSortModule } from \"@angular/material/sort\";\r\nimport { MatStepperModule } from \"@angular/material/stepper\";\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from \"@angular/material/tabs\";\r\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\r\nimport { MatTreeModule } from \"@angular/material/tree\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatButtonModule } from \"@angular/material/button\";\r\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\r\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatGridListModule } from \"@angular/material/grid-list\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\nimport { MatListModule } from \"@angular/material/list\";\r\nimport { MatMenuModule } from \"@angular/material/menu\";\r\nimport { MatRadioModule } from \"@angular/material/radio\";\r\nimport { MatSelectModule } from \"@angular/material/select\";\r\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\r\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\r\nimport { MatSliderModule } from \"@angular/material/slider\";\r\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\r\nimport { MatMomentDateModule } from \"@angular/material-moment-adapter\";\r\n\r\n\r\n@NgModule({\r\n exports: [\r\n MatCheckboxModule,\r\n MatButtonModule,\r\n MatInputModule,\r\n MatAutocompleteModule,\r\n MatDatepickerModule,\r\n MatFormFieldModule,\r\n MatRadioModule,\r\n MatSelectModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatSidenavModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatGridListModule,\r\n MatCardModule,\r\n MatStepperModule,\r\n MatTabsModule,\r\n MatExpansionModule,\r\n MatButtonToggleModule,\r\n MatChipsModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatProgressBarModule,\r\n MatDialogModule,\r\n MatTooltipModule,\r\n MatSnackBarModule,\r\n MatTableModule,\r\n MatSortModule,\r\n MatPaginatorModule,\r\n MatNativeDateModule,\r\n MatMomentDateModule,\r\n MatTreeModule,\r\n MatRippleModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatDividerModule\r\n ]\r\n})\r\nexport class SharedMaterialModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n// SERVICES\r\nimport { ThemeService } from './services/theme.service';\r\nimport { NavigationService } from './services/navigation.service';\r\nimport { RoutePartsService } from './services/route-parts.service';\r\nimport { AuthGuard } from './guards/auth.guard';\r\nimport { AppConfirmService } from './services/app-confirm/app-confirm.service';\r\nimport { AppLoaderService } from './services/app-loader/app-loader.service';\r\n\r\nimport { SharedComponentsModule } from './components/shared-components.module';\r\nimport { SharedPipesModule } from './pipes/shared-pipes.module';\r\nimport { SharedDirectivesModule } from './directives/shared-directives.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n SharedComponentsModule,\r\n SharedPipesModule,\r\n SharedDirectivesModule\r\n ],\r\n providers: [\r\n ThemeService,\r\n NavigationService,\r\n RoutePartsService,\r\n AuthGuard,\r\n // UserRoleGuard,\r\n AppConfirmService,\r\n AppLoaderService\r\n ],\r\n exports: [\r\n SharedComponentsModule,\r\n SharedPipesModule,\r\n SharedDirectivesModule,\r\n ]\r\n})\r\nexport class SharedModule { }\r\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\r\nimport {forkJoin, of, Subscription} from 'rxjs';\r\nimport {NotificacaoService} from 'app/shared/services/notificacao/notificacao.service';\r\nimport {FinancasService} from 'app/shared/services/financas/financas.service';\r\nimport {catchError, map, mergeMap, switchMap} from 'rxjs/operators';\r\nimport {LoginService} from 'app/shared/services/aplicacao-service/login.service';\r\nimport {Series} from 'app/shared/models/financas/documentos/series';\r\nimport {Format} from 'app/shared/directives/input-format.directive';\r\nimport {ReferenciasService} from 'app/shared/services/financas/referencias.service';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {Util} from 'app/shared/models/generico/util';\r\nimport {PesquisarCambioComponent} from 'app/views/facturacao/modais/pesquisar-cambio/pesquisar-cambio.component';\r\nimport {ArtigosService} from 'app/shared/services/artigos/artigos.service';\r\nimport {Accao} from 'app/shared/models/ENUM';\r\nimport {CurrencyPipe} from '@angular/common';\r\n\r\nconst FormNames = {\r\n tipo: 'tipo',\r\n serie: 'serie',\r\n numero: 'numero',\r\n codDocumento: 'codDocumento',\r\n dataDocumento: 'dataDocumento',\r\n dataVencimento: 'dataVencimento',\r\n metodoPagamento: 'metodoPagamento',\r\n numRefBancaria: 'referenciaBancariaNum',\r\n idRefBancEntidade: 'idRefBancEntidade',\r\n idContaMetodoPagRec: 'idContaMetodoPagRec',\r\n idCondicaoPagamento: 'idCondicaoPagamento',\r\n ValorRecebido:'ValorRecebido',\r\n observacoes: 'observacoes',\r\n taxaCambio: 'taxaCambio',\r\n};\r\n\r\nenum LoadIndex {\r\n SERIE,\r\n CODIGO,\r\n COND_PAG,\r\n METHOD_PAG,\r\n NUM_REF,\r\n DOC,\r\n CONTA\r\n}\r\n\r\n@Component({\r\n selector: 'app-reno-modal-facturacao',\r\n templateUrl: './reno-modal-facturacao.component.html',\r\n styleUrls: ['./reno-modal-facturacao.component.scss'],\r\n providers: [CurrencyPipe]\r\n})\r\nexport class RenoModalFacturacaoComponent implements OnInit, OnDestroy {\r\n readonly formats = Format;\r\n contas: any[] = [];\r\n loadings: boolean[] = Array.from({length: 7}, () => true);\r\n apresentarValorRecebido:boolean;\r\n form: FormGroup = this.fb.group({\r\n [FormNames.serie]: [null, Validators.required],\r\n [FormNames.tipo]: [null, Validators.required],\r\n [FormNames.numero]: 0,\r\n [FormNames.codDocumento]: '',\r\n [FormNames.metodoPagamento]: null,\r\n [FormNames.dataDocumento]: new Date(),\r\n [FormNames.dataVencimento]: new Date(),\r\n [FormNames.idCondicaoPagamento]: null,\r\n [FormNames.idRefBancEntidade]: null,\r\n [FormNames.numRefBancaria]: null,\r\n [FormNames.idContaMetodoPagRec]: null,\r\n [FormNames.ValorRecebido]:0,\r\n [FormNames.observacoes]: null,\r\n [FormNames.taxaCambio]: null,\r\n });\r\n formNames = FormNames;\r\n minDate = new Date('1922-01-01');\r\n maxDate = new Date();\r\n series: Series[] = [];\r\n entidades: any[] = [];\r\n condicoesPagamento: any[] = [];\r\n totalIliq = 0;\r\n total = 0;\r\n totalImposto = 0;\r\n totalDescontos = 0;\r\n valorRetencao = 0;\r\n totalIliqCliente = 0;\r\n readonly formNameMap: { [key: string]: string } = {\r\n [FormNames.serie]: 'Série',\r\n [FormNames.numero]: 'Número',\r\n [FormNames.tipo]: 'Tipo de Documento',\r\n [FormNames.dataDocumento]: 'Data Documento',\r\n [FormNames.dataVencimento]: 'Data Vencimento',\r\n [FormNames.idRefBancEntidade]: 'Entidade',\r\n [FormNames.idContaMetodoPagRec]: 'Conta'\r\n };\r\n readonly errorMap: { [key: string]: string } = {\r\n required: 'É obrigatório',\r\n max: 'Excedeu o valor máximo',\r\n min: 'Excedeu o valor mínimo',\r\n matDatepickerMin: 'Excedeu o valor mínimo da data',\r\n matDatepickerMax: 'Excedeu o valor máximo da data',\r\n matDatepickerParse: 'Formato inválido',\r\n maxlength: 'Excedeu o comprimento máximo',\r\n greaterThanZero: 'Deve ser um valor positivo',\r\n empty: 'A coleção não pode estar vazia para submissão'\r\n };\r\n taxasCambio: any[] = [];\r\n sendMail = false;\r\n readonly actionToEvent: { [key: string]: string } = {\r\n [Accao.cadastrar]: 'CRIACAO',\r\n [Accao.editar]: 'RENOVACAO',\r\n [Accao.detalhes]: 'RENOVACAO'\r\n };\r\n private subscriptions: Subscription[] = [];\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private _notificacao: NotificacaoService,\r\n private financaService: FinancasService,\r\n private loginService: LoginService,\r\n private referenciaService: ReferenciasService,\r\n private dialog: MatDialog,\r\n private artigoService: ArtigosService,\r\n private currencyPipe: CurrencyPipe,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) {\r\n }\r\n\r\n get f() {\r\n return this.form.controls;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n this.f[FormNames.observacoes].patchValue(this.data.renovavel.descricao);\r\n this.subscriptions.push(\r\n this.f[FormNames.serie].valueChanges.pipe(mergeMap(v => {\r\n const dataFim = v?.dataFim ? new Date(v?.dataFim) : null;\r\n this.maxDate = dataFim ?? new Date();\r\n const dataDoc = this.f[FormNames.dataDocumento].value;\r\n const idCondPag = this.f[FormNames.idCondicaoPagamento].value;\r\n if (!idCondPag) {\r\n return of({objecto: null} as Resposta);\r\n }\r\n this.loadings[LoadIndex.COND_PAG] = true;\r\n this.loadings = [...this.loadings];\r\n return this.financaService.getDataVencimentoDoc(new Date(dataDoc).toISOString(), idCondPag);\r\n })).subscribe(v => this.handleCondPagamento(v), err => this.handleError(err))\r\n );\r\n\r\n this.subscriptions.push(\r\n this.f[FormNames.dataDocumento].valueChanges.pipe(mergeMap(v => {\r\n const idCondPag = this.f[FormNames.idCondicaoPagamento].value;\r\n if (!idCondPag || !v) {\r\n return of({objecto: null} as Resposta);\r\n }\r\n this.loadings[LoadIndex.COND_PAG] = true;\r\n this.loadings = [...this.loadings];\r\n return this.financaService.getDataVencimentoDoc(new Date(v).toISOString(), idCondPag);\r\n })).subscribe(v => this.handleCondPagamento(v), err => this.handleError(err))\r\n );\r\n\r\n this.subscriptions.push(\r\n this.f[FormNames.idCondicaoPagamento].valueChanges.pipe(mergeMap(v => {\r\n const dataDoc = this.f[FormNames.dataDocumento].value;\r\n if (!v || !dataDoc) {\r\n return of({objecto: null} as Resposta);\r\n }\r\n this.loadings[LoadIndex.COND_PAG] = true;\r\n this.loadings = [...this.loadings];\r\n return this.financaService.getDataVencimentoDoc(new Date(dataDoc).toISOString(), v);\r\n })).subscribe(v => this.handleCondPagamento(v), err => this.handleError(err))\r\n );\r\n\r\n this.subscriptions.push(\r\n forkJoin([\r\n this.financaService.getTodasSeries({utilizador: this.loginService.getUtilizadorSessao()})\r\n .pipe(catchError(err => {\r\n console.error(err);\r\n this.loadings[LoadIndex.SERIE] = false;\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao carregar as séries');\r\n return of({objecto: []});\r\n })),\r\n this.financaService.getCondicoesPagamentos().pipe(catchError(err => {\r\n this.loadings[LoadIndex.COND_PAG] = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada as condições de pagamento');\r\n return of({objecto: []} as Resposta);\r\n })),\r\n this.referenciaService.getEntidadesRefActivasEmpresa(this.data.empresa?.idEmpresa)\r\n ]).pipe(switchMap(([ss, cps, es]) => {\r\n // Séries\r\n this.series = ss.objecto.filter(s => s.idEmpresa === this.data.empresa?.idEmpresa);\r\n this.f[FormNames.serie]\r\n .patchValue(this.series.find(s => s.predefinida) ?? (this.series.length === 1 ? this.series[0] : null));\r\n this.f[FormNames.tipo].patchValue(this.data.tipos.find(t => t.codTipoDocumento === this.data.codTipo));\r\n this.getCodigo();\r\n // Codições pagamento\r\n this.condicoesPagamento = cps.objecto.filter(x => x.activo);\r\n // Entidades\r\n this.entidades = es.objecto;\r\n this.f[FormNames.metodoPagamento].patchValue(this.data.metodosPagamento.find(m => m.idMetodoPagRec === this.data.renovavel.idMetodoPagRec));\r\n this.f[FormNames.idCondicaoPagamento].patchValue(this.data.entidade?.dadosComerciais?.idCondicaoPagamento);\r\n this.onMethodSelect({value: this.f[FormNames.metodoPagamento].value});\r\n this.setDates();\r\n return this.data.empresa?.moedaPrincipal !== this.data.entidade?.codMoeda ? this.financaService.getTaxasCambio({\r\n cambiosIndirectos: true,\r\n utilizador: this.loginService.getUtilizadorSessao(),\r\n idsMoedaLocal: [this.data.empresa?.idMoeda1],\r\n idsMoedaPretendida: this.data.entidade?.idMoeda ? [this.data.entidade?.idMoeda] : [],\r\n intervalosData: [\r\n {\r\n operacao: 'EQ',\r\n dataInicio: this.f[FormNames.dataDocumento].value,\r\n dataFim: this.f[FormNames.dataDocumento].value,\r\n },\r\n ],\r\n }).pipe(map(ts => ts ?? [])) : of([]);\r\n }))\r\n .subscribe({\r\n next: ts => {\r\n this.loadings = [...this.loadings.map(() => false)];\r\n this.taxasCambio = ts;\r\n this.f[FormNames.taxaCambio].patchValue(this.taxasCambio.length === 1 ? this.taxasCambio[0] : null);\r\n this.calcular();\r\n }, error: err => {\r\n this.loadings = [...this.loadings.map(() => false)];\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao carregar os dados');\r\n }\r\n })\r\n );\r\n }\r\n\r\n some(value) {\r\n return value;\r\n }\r\n\r\n handleCondPagamento(response: any): void {\r\n\r\n this.loadings[LoadIndex.COND_PAG] = false;\r\n this.loadings = [...this.loadings];\r\n this.f[FormNames.dataVencimento].patchValue(response.objecto?.dataVencimento ?? new Date());\r\n }\r\n\r\n handleError(error: any): void {\r\n this.loadings[LoadIndex.COND_PAG] = false;\r\n this.loadings = [...this.loadings];\r\n console.error(error);\r\n this._notificacao.notificar(error.error?.mensagem || 'Falha inesperada ao carregar as condições de pagamento');\r\n }\r\n\r\n onMethodSelect({value}) {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n if (value?.usaConta) {\r\n this.subscriptions.push(\r\n this.financaService.getTiposContaEmpresa(this.data.empresa?.idEmpresa, value?.tipoContaPag?.idTipoConta)\r\n .subscribe({\r\n next: res => {\r\n this.loadings[LoadIndex.CONTA] = false;\r\n this.loadings = [...this.loadings];\r\n this.contas = res.objecto;\r\n // this.formNameMap[FormNames.idContaMetodoPagRec] = value?.tipoContaPag?.tipoConta;\r\n this.f[FormNames.idContaMetodoPagRec]\r\n .patchValue(this.contas.length === 1 ? this.contas[0] : null);\r\n },\r\n error: err => {\r\n this.loadings[LoadIndex.CONTA] = false;\r\n this.loadings = [...this.loadings];\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao carregar as contas');\r\n }\r\n })\r\n );\r\n } else {\r\n this.f[FormNames.idContaMetodoPagRec].clearValidators();\r\n this.f[FormNames.idContaMetodoPagRec].updateValueAndValidity();\r\n }\r\n\r\n if (value?.codMetodoPagRec === 'RB') {\r\n this.f[FormNames.idRefBancEntidade].addValidators(Validators.required);\r\n if (this.entidades.length === 1) {\r\n this.f[FormNames.idRefBancEntidade].patchValue(this.entidades[0]?.idRefBancEntidade);\r\n this.gerarReferencia({value: this.f[FormNames.idRefBancEntidade].value});\r\n }\r\n } else {\r\n this.f[FormNames.idRefBancEntidade].clearValidators();\r\n this.f[FormNames.idRefBancEntidade].reset();\r\n this.f[FormNames.numRefBancaria].reset();\r\n }\r\n\r\n this.f[FormNames.idRefBancEntidade].updateValueAndValidity();\r\n }\r\n\r\n getCodigo() {\r\n const {serie, tipo} = this.form.value;\r\n if (!serie || !tipo) {\r\n return;\r\n }\r\n this.loadings[LoadIndex.CODIGO] = true;\r\n this.loadings = [...this.loadings];\r\n this.subscriptions.push(\r\n this.financaService.getProximoNumero(this.data.empresa?.idEmpresa, serie?.idSerie, tipo?.idTipoDocumento)\r\n .subscribe({\r\n next: res => {\r\n this.loadings[LoadIndex.CODIGO] = false;\r\n this.loadings = [...this.loadings];\r\n this.form.patchValue({\r\n [FormNames.numero]: res.objecto.numProximo,\r\n [FormNames.codDocumento]: res.objecto.codProximo\r\n });\r\n this.minDate = res.objecto.dataDocActual ? new Date(res.objecto.dataDocActual) : new Date(serie.dataInicio);\r\n this.maxDate = this.data.empresa?.permiteVendasDataFutura ? new Date(serie.DataFim) : new Date();\r\n },\r\n error: err => {\r\n this.loadings[LoadIndex.CODIGO] = false;\r\n this.loadings = [...this.loadings];\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao gerar o código do documento');\r\n }\r\n })\r\n );\r\n }\r\n\r\n gerarReferencia({value}) {\r\n if (!value) {\r\n this.f[FormNames.numRefBancaria].reset();\r\n return;\r\n }\r\n this.loadings[LoadIndex.NUM_REF] = true;\r\n this.loadings = [...this.loadings];\r\n this.subscriptions.push(\r\n this.referenciaService.getReferenciaEntidade(value)\r\n .subscribe({\r\n next: res => {\r\n this.f[FormNames.numRefBancaria].patchValue(res.objecto);\r\n this.loadings[LoadIndex.NUM_REF] = false;\r\n this.loadings = [...this.loadings];\r\n },\r\n error: err => {\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao gerar o número de referência bancária');\r\n console.error(err);\r\n this.loadings[LoadIndex.NUM_REF] = false;\r\n this.loadings = [...this.loadings];\r\n }\r\n }\r\n )\r\n );\r\n }\r\n\r\n calcular() {\r\n this.totalIliq = this.data.itens.reduce((acc, i) => Util.convertToFloat(i.total) + acc, 0);\r\n this.totalImposto = this.data.itens.reduce((acc, i) => Util.convertToFloat(i.imposto) + acc, 0);\r\n this.totalDescontos = this.data.itens.reduce((acc, i) => Util.convertToFloat(i.desconto) + acc, 0);\r\n this.valorRetencao = this.data.entidade?.clientesRetencoes?.reduce((acc, ret) => {\r\n const total = this.data.itens.filter(i => i.idRetencao === ret.idRetencao).reduce((acc2, i) =>\r\n i.total + acc2, 0);\r\n const val = total * ret.valorPercentual / 100;\r\n return (total > ret.valorMinimo ? val : 0) + acc;\r\n }, 0);\r\n this.valorRetencao = Util.round(this.valorRetencao, 2);\r\n this.total = this.totalIliq + this.totalImposto;\r\n this.f[FormNames.ValorRecebido].patchValue(this.totalIliq + this.totalImposto - this.valorRetencao);\r\n this.totalIliqCliente = (this.totalIliq + this.totalImposto) / (this.f[FormNames.taxaCambio].value?.taxaCambio ?? 1);\r\n }\r\n\r\n pesquisarCambio() {\r\n const d = this.f[FormNames.dataDocumento];\r\n const dv = this.f[FormNames.dataVencimento];\r\n const cliente = this.data.entidade;\r\n const empresa = this.data.empresa;\r\n if (d.invalid || dv.invalid) {\r\n this._notificacao.notificar(Util.getFormErrors(this.form, this.formNameMap, this.errorMap));\r\n return;\r\n }\r\n\r\n const ref = this.dialog.open(PesquisarCambioComponent, {\r\n width: '80vw',\r\n data: {\r\n idMoedaPretendida: cliente?.idMoeda === empresa?.idMoeda1 ? cliente?.idMoeda : empresa?.idMoeda1,\r\n idMoedaEmpresa:\r\n cliente?.idMoeda !== empresa?.idMoeda1 ? cliente?.idMoeda : empresa?.idMoeda2,\r\n dataDoc: Util._UTCDate(d.value),\r\n dataVenc: Util._UTCDate(dv.value),\r\n conversaoDirecta: this.f[FormNames.taxaCambio].value?.conversaoDirecta,\r\n legendaTaxaCambio: `${cliente?.codMoeda}/${this.data.empresa?.moedaPrincipal}`,\r\n },\r\n });\r\n\r\n this.subscriptions.push(\r\n ref.afterClosed().subscribe(res => {\r\n if (res) {\r\n this.f[FormNames.taxaCambio].patchValue(res.cambio);\r\n }\r\n })\r\n );\r\n }\r\n\r\n getImposto(id: number) {\r\n return this.data.empresa?.impostos?.find(i => i.idImposto === id);\r\n }\r\n\r\n submit() {\r\n if (this.form.invalid) {\r\n this._notificacao.notificar(Util.getFormErrors(this.form, this.formNameMap, this.errorMap));\r\n return;\r\n }\r\n\r\n this.loadings[LoadIndex.DOC] = true;\r\n this.loadings = [...this.loadings];\r\n const tipo = this.f[FormNames.tipo].value;\r\n const payload = {\r\n ...this.form.value,\r\n idEmpresa: this.data.empresa?.idEmpresa,\r\n idCliente: this.data.entidade?.idCliente,\r\n idSerie: this.f[FormNames.serie].value?.idSerie,\r\n idTipoDocumento: tipo?.idTipoDocumento,\r\n idMetodoPagRec: this.f[FormNames.metodoPagamento].value?.idMetodoPagRec,\r\n idContaMetodoPagRec: this.f[FormNames.idContaMetodoPagRec].value,\r\n idMoeda: this.data.empresa?.idMoedaP,\r\n codArea: 'R',\r\n totalIliquido: this.totalIliq,\r\n total: this.totalIliq + this.totalImposto,\r\n totalIva: this.totalImposto,\r\n ValorRecebido: this.f[FormNames.ValorRecebido].value,\r\n totalRetencoes: tipo?.calculaRetencoes ? this.valorRetencao : 0,\r\n utilizador: this.loginService.getUtilizadorSessao(),\r\n pagamentos: [{\r\n idMetodoPagRec: this.f[FormNames.metodoPagamento].value?.idMetodoPagRec,\r\n idContaMetodoPagRec: this.f[FormNames.metodoPagamento].value?.usaConta &&\r\n this.f[FormNames.tipo].value?.codCategoriaDocumento === 'L' ? this.f[FormNames.idContaMetodoPagRec].value : null,\r\n valorPagamento: this.f[FormNames.ValorRecebido].value,\r\n }],\r\n itens: this.data.itens.map(i => this.itemRequest(i)),\r\n renovavel: this.data.renovavel,\r\n };\r\n payload.idContaMetodoPagRec = this.f[FormNames.metodoPagamento].value?.usaConta &&\r\n this.f[FormNames.tipo].value?.codCategoriaDocumento === 'L' ? payload.idContaMetodoPagRec : null;\r\n this.subscriptions.push(\r\n this.financaService.gravarDocumentoFA(payload)\r\n .pipe(mergeMap(res => {\r\n this.loadings[LoadIndex.DOC] = false;\r\n this.loadings = [...this.loadings];\r\n this._notificacao.notificar(res.mensagem, true);\r\n this.dialogRef.close(true);\r\n return this.sendMail ?\r\n this.artigoService.enviarEmail({\r\n codigo: this.data.renovavel?.codigo,\r\n idEmpresa: this.data.empresa?.idEmpresa,\r\n evento: this.actionToEvent[this.data.action]\r\n }).pipe(catchError(err => {\r\n console.error(err.error?.mensagem);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao enviar e-mail');\r\n return of({objecto: null});\r\n })) : of({objecto: null});\r\n }))\r\n .subscribe({\r\n next: () => {\r\n },\r\n error: err => {\r\n console.error(err.error?.mensagem);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao gravar o documento');\r\n this.loadings[LoadIndex.DOC] = false;\r\n this.loadings = [...this.loadings];\r\n }\r\n })\r\n );\r\n }\r\n\r\n setDates() {\r\n this.apresentarValorRecebido = false;\r\n if (this.f[FormNames.tipo].value?.codCategoriaDocumento === 'L') {\r\n this.f[FormNames.idCondicaoPagamento].patchValue(1); // 1 => Pronto Pagamento\r\n this.f[FormNames.dataVencimento].patchValue(this.f[FormNames.dataDocumento].value);\r\n this.apresentarValorRecebido = true;\r\n }\r\n }\r\n\r\n private itemRequest(i) {\r\n return {\r\n ...i,\r\n codArtigo: i.artigo?.codArtigo,\r\n descontoPerc: Util.convertToFloat(i.descontoPerc),\r\n desconto: Util.convertToFloat(i.desconto),\r\n quantidade: Util.convertToFloat(i.quantidade),\r\n preco: Util.convertToFloat(i.preco),\r\n imposto: Util.convertToFloat(i.imposto),\r\n total: Util.convertToFloat(i.total)\r\n };\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n close\r\n \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n 1\"\r\n [style.width.em]=\"data.empresa?.codEmpresa?.length\">\r\n Empresa\r\n \r\n \r\n\r\n \r\n Série\r\n \r\n Seleccione\r\n \r\n {{ serie.codSerie }}\r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Tipo Documento\r\n \r\n Seleccione\r\n \r\n {{ tipo.codTipoDocumento }} - {{ tipo.tipoDocumento }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Número\r\n \r\n search\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Documento\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Cliente\r\n \r\n \r\n\r\n \r\n Denominação Fiscal\r\n \r\n \r\n\r\n \r\n NIF\r\n \r\n \r\n\r\n \r\n País\r\n \r\n \r\n\r\n \r\n Província\r\n \r\n \r\n\r\n \r\n Cidade\r\n \r\n \r\n\r\n \r\n Moeda {{ data.code === 'CP' ? 'Fornecedor' : 'Cliente' }}\r\n \r\n \r\n
    \r\n\r\n \r\n Morada\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Data Documento\r\n \r\n \r\n \r\n \r\n\r\n \r\n Condição de Pagamento\r\n \r\n Seleccione\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Data Vencimento\r\n \r\n \r\n \r\n \r\n\r\n \r\n Método Pagamento\r\n \r\n Seleccione\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n \r\n Entidade\r\n \r\n Seleccione\r\n \r\n \r\n \r\n \r\n\r\n \r\n Referência\r\n \r\n \r\n
    \r\n\r\n \r\n Conta\r\n \r\n Seleccione\r\n \r\n {{ conta?.nomeConta }}\r\n \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n Total Iliq.: {{ totalIliq | currency: \" \" }}\r\n
    \r\n\r\n
    \r\n Total ({{ data.empresa?.moedaPrincipal }}\r\n ): {{ total | currency: '':'' }}\r\n
    \r\n\r\n
    \r\n \r\n Total ({{ data.entidade?.codMoeda }}\r\n ): {{ totalIliqCliente | currency: '':'' }}\r\n \r\n
    \r\n\r\n
    \r\n \r\n Valor a Pagar: {{ (total - valorRetencao) | currency:\" \" }}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n IVA: {{ totalImposto | currency: '':'' }}\r\n
    \r\n
    \r\n Retenções: {{ valorRetencao | currency: '':'' }}\r\n
    \r\n
    \r\n Total Desc.: {{ totalDescontos | currency: '':'' }}\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Moeda: \r\n \r\n
    \r\n\r\n
    \r\n Câmbio({{ data.entidade?.codMoeda }}\r\n /{{ data.empresa?.moedaPrincipal }}):\r\n \r\n \r\n folder\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n Observações\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    Itens
    #ReferênciaDescriçãoQtd.UNPreço ({{ data.empresa?.moedaPrincipal }})Desc %Desc.Sub-TotalIVA %IVATotal
    {{ i + 1 }}{{ item.artigo?.codArtigo }}{{ item.descricao }}{{ item.quantidade | currency:'':'' }}\r\n {{ item.artigo?.codUnidade }}{{ item.preco | currency:'':'' }}{{ item.descontoPerc | currency:'':'' }}\r\n %{{ item.desconto | currency:'':'' }}\r\n {{ item.total | currency:'':'' }}\r\n \r\n {{ getImposto(item.idImposto)?.taxa | currency:'':'' }}%\r\n \r\n {{ item.imposto | currency:'':'' }}\r\n {{ item.total | sum: item.imposto | currency:'':'' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\r\nimport {forkJoin, Observable, of, Subscription} from 'rxjs';\r\nimport {ActivatedRoute, Router} from '@angular/router';\r\nimport {ArtigosService, Ciclo} from 'app/shared/services/artigos/artigos.service';\r\nimport {ArtigoClassificacao} from 'app/shared/models/artigos/artigo-classificacao';\r\nimport {Accao} from 'app/shared/models/ENUM';\r\nimport {mergeMap, switchMap} from 'rxjs/operators';\r\nimport {ClientesService} from 'app/shared/services/clientes-service/clientes.service';\r\nimport {LoginService} from 'app/shared/services/aplicacao-service/login.service';\r\nimport {AbstractControl, FormArray, FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {Location} from '@angular/common';\r\nimport {NotificacaoService} from 'app/shared/services/notificacao/notificacao.service';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport { SelectionType, id } from '@swimlane/ngx-datatable';\r\nimport {Empresa} from 'app/shared/models/empresa/empresa';\r\nimport {FinancasService} from 'app/shared/services/financas/financas.service';\r\nimport {TipoDocumento} from 'app/shared/models/artigos/entidade/tipo-documento';\r\nimport {Util} from 'app/shared/models/generico/util';\r\nimport {MatSelectChange} from '@angular/material/select';\r\nimport {ArtigoComposicao} from 'app/shared/models/artigos/artigoComposicao';\r\nimport {CustomValidators} from 'app/shared/models/artigos/formacoes/custom-validators';\r\nimport {ModalConfirmacaoComponent} from '../../equipamentos/componentes/modais/modal-confirmacao/modal-confirmacao.component';\r\nimport {Resposta} from 'app/shared/models/resposta';\r\nimport {EquipamentoService} from 'app/shared/services/equipamentos/equipamento.service';\r\nimport {ClienteFacturacao, newClienteFat} from 'app/shared/models/financas/clientes/cliente-facturacao';\r\nimport {MetodosPagRec} from 'app/shared/models/financas/metodosPagRec';\r\nimport {Format} from '@directives/input-format.directive';\r\nimport {RenoModalFacturacaoComponent} from '../modais/reno-modal-facturacao/reno-modal-facturacao.component';\r\nimport { MenuDataService } from '@services/aplicacao-service/data/menu-data.service';\r\n\r\nconst FormNames = {\r\n codArtigo: 'codArtigo',\r\n idArtigo: 'idArtigo',\r\n idCliente: 'idCliente',\r\n idClassificacao: 'idClassificacao',\r\n nomeCliente: 'nomeCliente',\r\n estado: 'idEstadoArtigoRenovavel',\r\n preco: 'preco',\r\n descricao: 'descricao',\r\n ciclo: 'ciclo',\r\n ciclos: 'ciclos',\r\n idImposto: 'idImposto',\r\n ivaIncluido: 'ivaIncluido',\r\n dataInicio: 'dataInicio',\r\n designacao: 'designacao',\r\n codCliente: 'codCliente',\r\n dataFim: 'dataFim',\r\n dataSuspensao: 'dataSuspensao',\r\n dataRenovacaoAutomatica: 'dataRenovacaoAutomatica',\r\n dataExpiracao: 'dataExpiracao',\r\n data1aNotificacao: 'data1aNotificacao',\r\n data2aNotificacao: 'data2aNotificacao',\r\n data3aNotificacao: 'data3aNotificacao',\r\n data4aNotificacao: 'data4aNotificacao',\r\n paymentEstado: 'idEstadoPagamento',\r\n codigo: 'codigo',\r\n dataRegisto: 'dataRegisto',\r\n empresa: 'empresa',\r\n artigos: 'artigos',\r\n unidade: 'unidade',\r\n quantidade: 'quantidade',\r\n total: 'total',\r\n imposto: 'imposto',\r\n nomeArtigo: 'nomeArtigo',\r\n id: 'id',\r\n idRenovavel: 'idRenovavel',\r\n composicao: 'composicao',\r\n precoBloqueado: 'precoBloqueado',\r\n equipamento: 'equipamento',\r\n renovacoesAutomaticas: 'renovacoesAutomaticas',\r\n metodoPagamento: 'idMetodoPagRec',\r\n descontoPerc: 'descontoPerc',\r\n desconto: 'desconto',\r\n notificacoesDesactivadas: 'notificacoesDesactivadas',\r\n emailDestinatarios: 'emailDestinatarios',\r\n semDocumento: 'semDocumento',\r\n idEstadoPagamento: 'idEstadoPagamento',\r\n dias: 'dias',\r\n dataInicioProximaRenovacao: 'dataInicioProximaRenovacao'\r\n};\r\n\r\nexport const DAY = 86400000;\r\n\r\nexport enum Estados {\r\n POR_ACTIVAR = 1,\r\n ACTIVO = 2,\r\n SUSPENSO = 3,\r\n EXPIRADO = 4,\r\n ELIMINADO = 5,\r\n REALIZADO = 6, // Estado pertencente as marcações\r\n}\r\n\r\nexport enum EstadoPagamento {\r\n POR_COBRAR = 1,\r\n POR_PAGAR = 2,\r\n PARCIALMENTE = 3,\r\n PAGO = 4,\r\n ANULADO = 5\r\n}\r\n\r\nexport interface EstadoFluxo {\r\n id: number;\r\n idEstado?: number;\r\n idEstadoSeguinte: number;\r\n estado?: any;\r\n estadoSeguinte?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-renovavel-form',\r\n templateUrl: './renovavel-form.component.html',\r\n styleUrls: ['./renovavel-form.component.scss'],\r\n})\r\nexport class RenovavelFormComponent implements OnInit, OnDestroy {\r\n @ViewChild('renovacoesTable') renovacoesTable!: any;\r\n loading = true;\r\n subscriptions: Subscription[] = [];\r\n public classificacao!: ArtigoClassificacao;\r\n public accao = '';\r\n actions = Accao;\r\n renovavel!: any;\r\n tiposDocumento: TipoDocumento[] = [];\r\n startDate: Date = new Date();\r\n today: Date = new Date();\r\n stateMachine: EstadoFluxo[] = [];\r\n readonly colors: { [key: number]: string } = {\r\n [EstadoPagamento.ANULADO]: 'red-A400 red-A400-fg',\r\n [EstadoPagamento.POR_PAGAR]: 'bg-secondary',\r\n [EstadoPagamento.PAGO]: 'green-A400',\r\n [EstadoPagamento.POR_COBRAR]: 'orange-A400',\r\n [EstadoPagamento.PARCIALMENTE]: 'cyan-A400'\r\n };\r\n readonly states = Estados;\r\n readonly formats = Format;\r\n readonly stateMap: { [key: number]: string } = {\r\n [Estados.ACTIVO]: 'activo',\r\n [Estados.POR_ACTIVAR]: 'por activar',\r\n [Estados.EXPIRADO]: 'expirado',\r\n [Estados.SUSPENSO]: 'suspenso',\r\n [Estados.ELIMINADO]: 'eliminado'\r\n };\r\n readonly title: { [key: string]: any } = {\r\n [Accao.detalhes]: 'Detalhes',\r\n [Accao.editar]: 'Editar',\r\n [Accao.cadastrar]: 'Criar'\r\n };\r\n public clientes: ClienteFacturacao[] = [];\r\n public filteredClientes: any[] = [];\r\n FORM: { [key: string]: string } = FormNames;\r\n form: FormGroup = this.fb.group({\r\n [FormNames.codigo]: '',\r\n [FormNames.empresa]: [null, Validators.required],\r\n [FormNames.designacao]: ['', Validators.maxLength(60)],\r\n [FormNames.descricao]: '',\r\n [FormNames.nomeCliente]: '',\r\n [FormNames.ciclo]: [null, Validators.required],\r\n [FormNames.idCliente]: [0, [Validators.min(1), Validators.required]],\r\n [FormNames.codCliente]: ['', Validators.required],\r\n [FormNames.estado]: [Estados.POR_ACTIVAR, [Validators.min(1), Validators.required]],\r\n [FormNames.dataInicio]: [this.startDate, Validators.required],\r\n [FormNames.dataInicioProximaRenovacao]: [null,Validators.required],\r\n [FormNames.dataFim]: [null, Validators.required],\r\n [FormNames.metodoPagamento]: [null, Validators.required],\r\n [FormNames.emailDestinatarios]: ['', CustomValidators.destinatario()],\r\n [FormNames.dias]: 0,\r\n [FormNames.dataSuspensao]: null,\r\n [FormNames.dataRenovacaoAutomatica]: null,\r\n [FormNames.dataExpiracao]: null,\r\n [FormNames.data1aNotificacao]: null,\r\n [FormNames.data2aNotificacao]: null,\r\n [FormNames.data3aNotificacao]: null,\r\n [FormNames.data4aNotificacao]: null,\r\n [FormNames.equipamento]: null,\r\n [FormNames.dataRegisto]: this.startDate,\r\n [FormNames.renovacoesAutomaticas]: false,\r\n [FormNames.notificacoesDesactivadas]: false,\r\n [FormNames.semDocumento]: false,\r\n [FormNames.idEstadoPagamento]: null,\r\n [FormNames.artigos]: this.fb.array([])\r\n });\r\n artigos: any[] = [];\r\n filteredArtigos: any[] = [];\r\n estados: any[] = [];\r\n activo!: any;\r\n ciclos: any[] = [];\r\n empresas: Empresa[] = [];\r\n impostos: any[] = [];\r\n submitted = false;\r\n id = 0;\r\n paymentEstados: any[] = [];\r\n rowSelectionType = SelectionType;\r\n renovacoes: any[] = [];\r\n selectedIndex = 0;\r\n artigoCtrlConfig = {\r\n [FormNames.id]: 0,\r\n [FormNames.idClassificacao]: 0,\r\n [FormNames.codArtigo]: '',\r\n [FormNames.idArtigo]: 0,\r\n [FormNames.idRenovavel]: 0,\r\n [FormNames.quantidade]: 1,\r\n [FormNames.preco]: null,\r\n [FormNames.total]: 0,\r\n [FormNames.descontoPerc]: null,\r\n [FormNames.desconto]: 0,\r\n [FormNames.idImposto]: null,\r\n [FormNames.imposto]: 0,\r\n [FormNames.ciclos]: [[]],\r\n [FormNames.designacao]: '',\r\n [FormNames.precoBloqueado]: false\r\n };\r\n totalIliq = 0;\r\n total = 0;\r\n totalPendente = 0;\r\n idEquipamento = 0;\r\n metodosPagamento: MetodosPagRec[] = [];\r\n transistions: EstadoFluxo[] = [];\r\n private artigosRemover: any[] = [];\r\n private submitAction: { [key: string]: (servico: any) => Observable } = {\r\n [Accao.cadastrar]: (servico: any) => this.artigoService.postRenovavel(servico),\r\n [Accao.editar]: (servico: any) => this.artigoService.editarRenovavel({\r\n ...servico, id: this.id, artigosRemover: this.artigosRemover\r\n })\r\n };\r\n\r\n constructor(\r\n private dialog: MatDialog,\r\n private route: ActivatedRoute,\r\n public artigoService: ArtigosService,\r\n private clienteService: ClientesService,\r\n private loginService: LoginService,\r\n private fb: FormBuilder,\r\n private _notificacao: NotificacaoService,\r\n private financaService: FinancasService,\r\n private router: Router,\r\n private eqService: EquipamentoService,\r\n public location: Location,\r\n private menuStore: MenuDataService,\r\n private modal: MatDialog\r\n ) {\r\n }\r\n\r\n get f() {\r\n return this.form.controls;\r\n }\r\n\r\n get artigosForm() {\r\n return this.f[FormNames.artigos] as FormArray;\r\n }\r\n\r\n some(item: any, estados: string[], categorias: string[]) {\r\n return estados.includes(item.codEstadoDocumento) && categorias.includes(item.codCategoriaDocumento);\r\n }\r\n\r\n renoValid(item: any) {\r\n return [EstadoPagamento.POR_PAGAR, EstadoPagamento.PARCIALMENTE].includes(item.estado.id);\r\n }\r\n\r\n setForm(r) {\r\n this.renovavel = r.objecto;\r\n\r\n this.renovavel.renovacoesAutomaticas = this.classificacao?.idOpcRenovacaoAutomatica === 2 ?\r\n this.renovavel.renovacoesAutomaticas : this.classificacao?.idOpcRenovacaoAutomatica !== 1;\r\n this.form.patchValue({...this.renovavel, empresa: this.empresas.find(e => e.idEmpresa === this.renovavel.idEmpresa)});\r\n const cliente = this.renovavel.cliente;\r\n const artigo = this.getArtigo(this.renovavel.idArtigo);\r\n const ciclo = this.ciclos?.find(c => c.idCicloRenovacao === this.renovavel.idCicloRenovacao);\r\n this.form.patchValue({\r\n [FormNames.codArtigo]: artigo?.codArtigo ?? '',\r\n [FormNames.nomeCliente]: cliente?.nome ?? '',\r\n [FormNames.idCliente]: cliente?.idCliente ?? 0,\r\n [FormNames.codCliente]: cliente?.codCliente ?? '',\r\n [FormNames.ciclo]: ciclo,\r\n [FormNames.dataRenovacaoAutomatica]: this.renovavel.dataRenovacaoAutomatica,\r\n [FormNames.dias]: this.renovavel.dias,\r\n [FormNames.dataInicio]: new Date(this.renovavel.dataInicio),\r\n [FormNames.dataFim]: new Date(this.renovavel.dataFim),\r\n [FormNames.dataInicioProximaRenovacao]: new Date(this.renovavel.dataInicioProximaRenovacao??this.renovavel.dataRenovacaoAutomatica)\r\n });\r\n this.setDatas(ciclo);\r\n const dNotify = this.renovavel.notificacoesRenovacao;\r\n\r\n if (this.accao === Accao.editar) {\r\n this.form.patchValue({\r\n [FormNames.dataRenovacaoAutomatica]: this.renovavel.dataRenovacaoAutomatica ?\r\n new Date(this.renovavel.dataRenovacaoAutomatica) : this.f[FormNames.dataRenovacaoAutomatica].value,\r\n [FormNames.dataSuspensao]: this.renovavel.dataSuspensao ?\r\n new Date(this.renovavel.dataSuspensao) : this.f[FormNames.dataSuspensao].value\r\n });\r\n if (dNotify) {\r\n this.form.patchValue({\r\n [FormNames.data1aNotificacao]: new Date(dNotify.data1aNotificacao),\r\n [FormNames.data2aNotificacao]: new Date(dNotify.data2aNotificacao),\r\n [FormNames.data3aNotificacao]: new Date(dNotify.data3aNotificacao),\r\n [FormNames.data4aNotificacao]: new Date(dNotify.data4aNotificacao),\r\n });\r\n }\r\n }\r\n\r\n this.artigosForm.clear();\r\n let i = 0;\r\n this.renovavel?.artigos.forEach((a, index) => {\r\n if (a.eliminado) {\r\n return;\r\n }\r\n const art = this.getArtigo(a.idArtigo);\r\n console.log(\"A verificar:: \",)\r\n this.artigosForm.push(this.fb.group({\r\n id: a.id,\r\n idRenovavel: a.idRenovavel,\r\n idClassificacao: a.idClassificacao,\r\n idArtigo: a.idArtigo,\r\n idCicloRenovacao: art?.arartigosPrecosRenovaveis?.find(p => p.idCicloRenovacao === a.idCicloRenovacao),\r\n codArtigo: art?.codArtigo ?? a.codArtigo,\r\n designacao: a.designacao,\r\n idImposto: this.f[FormNames.empresa].value?.impostos?.find(x => x.idImposto === a.idImposto),\r\n imposto: a.imposto,\r\n preco: a.preco,\r\n quantidade: a.quantidade,\r\n descontoPerc: a.descontoPerc,\r\n desconto: a.desconto,\r\n total: a.quantidade * a.preco,\r\n precoBloqueado: a.composicao.length > 0,\r\n ciclos: [[...(art?.arartigosPrecosRenovaveis ?? [])]]\r\n }));\r\n if (a.composicao.length > 0) {\r\n let cmps = [];\r\n this.artigos.forEach(b => cmps = cmps.concat(cmps, b.composicao));\r\n (this.artigosForm.at(index) as FormGroup).addControl(this.FORM.composicao, this.fb.array([]));\r\n a.composicao.map(c => {\r\n const cmp = cmps.find(x => x.idArtigoComposicao === c.idArtigoComposicao);\r\n return {\r\n idArtigoComposicao: c.idArtigoComposicao,\r\n codigo: c.artigo.codArtigo,\r\n idArtigo: cmp?.idArtigo,\r\n descricao: c.descricao ?? c.artigo?.nomeArtigo,\r\n quantidade: c.quantidade,\r\n preco1: c.preco,\r\n quantidadeVariavel: cmp?.quantidadeVariavel,\r\n artigo: c.artigo\r\n };\r\n }).forEach(comp =>\r\n (this.artigosForm\r\n .at(index)\r\n .get(this.FORM.composicao) as FormArray)\r\n .push(this.addNovaComp(comp))\r\n );\r\n const precoArtigo = a.composicao.reduce((acc, val) => acc + val.preco * val.quantidade, 0);\r\n this.setArtigoPreco(precoArtigo, index);\r\n }\r\n this.calcularItemTotal(a.preco, a.quantidade, this.artigosForm.at(i));\r\n this.subscribeFields(i);\r\n i++;\r\n });\r\n this.calculateTotal();\r\n if (this.accao !== Accao.detalhes) {\r\n this.artigosForm.push(this.fb.group(this.artigoCtrlConfig));\r\n }\r\n this.renovacoes = this.renovavel?.renovacoes ?? [];\r\n this.totalPendente = this.renovacoes.reduce((acc, val) => acc + val.pendente, 0);\r\n this.f[this.FORM.dataInicio].setValidators(\r\n this.f[this.FORM.estado].value === this.activo?.idArtigoRenovavelEstado ? [Validators.required] : []\r\n );\r\n this.startDate = this.renovacoes\r\n .find(x => [EstadoPagamento.POR_PAGAR, EstadoPagamento.PARCIALMENTE].includes(x.estado.id)) ??\r\n this.findLast(this.renovacoes, x => x.estado.id === EstadoPagamento.PAGO);\r\n this.f[this.FORM.dataInicio].updateValueAndValidity();\r\n }\r\n\r\n findLast(arr, predicate) {\r\n let lastMatch = null;\r\n\r\n arr.forEach(item => {\r\n if (predicate(item)) {\r\n lastMatch = item;\r\n }\r\n });\r\n\r\n return lastMatch;\r\n }\r\n\r\n\r\n handleError(err) {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha ao gravar o renovável');\r\n }\r\n\r\n emissaoInactiva() {\r\n return this.renovavel?.idEstadoArtigoRenovavel === Estados.SUSPENSO ||\r\n this.renovavel?.idEstadoArtigoRenovavel === Estados.ELIMINADO ||\r\n this.accao === Accao.cadastrar;\r\n }\r\n\r\n async setRoute() {\r\n this.accao = this.accao === this.actions.editar ? this.actions.detalhes : this.actions.editar;\r\n await this.router.navigateByUrl(`/artigos/renovaveis/${this.accao}/${this.classificacao?.idClassificacao}/${this.id}`);\r\n }\r\n\r\n getClassificacao(idClassificacao:number){\r\n this.artigoService.getClassificacaoArtigo(idClassificacao).subscribe(c=>{\r\n this.classificacao = c;\r\n this.f[FormNames.renovacoesAutomaticas].patchValue(this.classificacao.renovacaoAutomaticaDefault);\r\n })\r\n\r\n }\r\n ngOnInit(): void {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n this.subscriptions.push(\r\n this.route.params.pipe(\r\n mergeMap(ps => {\r\n this.loading = true;\r\n this.form.reset({\r\n [FormNames.dataRegisto]: this.today,\r\n [FormNames.dataInicio]: this.today,\r\n [FormNames.estado]: Estados.POR_ACTIVAR\r\n });\r\n this.artigosForm.clear();\r\n this.accao = ps['accao'];\r\n if (this.accao !== Accao.detalhes) {\r\n this.artigosForm.push(this.fb.group(this.artigoCtrlConfig));\r\n }\r\n this.id = parseInt(ps['id'], 10);\r\n this.idEquipamento = parseInt(ps['idEquipamento'], 10);\r\n const idClassificacao = parseInt(ps['idClassificacao'], 10);\r\n this.getClassificacao(idClassificacao);\r\n this.GetDados(idClassificacao);\r\n return this.financaService.getMetodosPagamentos('rec');\r\n }),\r\n switchMap((ps: MetodosPagRec[]) => {\r\n this.metodosPagamento = ps;\r\n return this.artigoService.getArtigoIva('AO');\r\n }),\r\n switchMap(is => {\r\n this.impostos = is.filter(i => i.activo);\r\n return this.financaService.getTiposDocumentos();\r\n }),\r\n switchMap((ts: any) => {\r\n this.tiposDocumento = ts.objecto;\r\n return this.artigoService.getListEstadosPagamentos();\r\n }),\r\n mergeMap(ps => {\r\n this.paymentEstados = ps.objecto;\r\n\r\n return new Observable();\r\n })\r\n ).subscribe()\r\n );\r\n }\r\n GetDados(idClassificacao:number) {\r\n\r\n this.artigoService.getEmpresas().subscribe(emps=>{\r\n this.empresas = emps.objecto;\r\n if (this.empresas.length === 1) {\r\n this.f[this.FORM.empresa].patchValue(this.empresas[0]);\r\n this.setCodigo(this.empresas[0]);\r\n }\r\n })\r\n\r\n this.artigoService.getCiclosRenovacao().subscribe(res=>{\r\n this.ciclos = res.objecto.filter(x => x.activo);\r\n })\r\n\r\n this.artigoService.getEstadosRenovavel().subscribe(res=>{\r\n this.estados = res?.objecto;\r\n this.activo = this.estados.find(e => e.artigoRenovavelEstado.toUpperCase() === 'ACTIVO');\r\n })\r\n \r\n this.artigoService.getFluxos().subscribe(fluxo=>{\r\n this.stateMachine = fluxo.objecto;\r\n this.transistions = this.stateMachine?.filter(x => x.idEstado === this.f[FormNames.estado].value);\r\n })\r\n this.getRenovavel(this.id);\r\n\r\n this.financaService.getEntidadesClientePorArea('C').subscribe(cs=>{\r\n this.clientes = cs.filter(a => a.activoFact);\r\n this.filteredClientes = this.clientes;\r\n })\r\n\r\n this.artigoService.getArtigos({\r\n idClassificacao,\r\n codIdioma: 'pt',\r\n idTiposArtigo: [],\r\n idEstado: [1],\r\n idUnidade: [],\r\n renovavel: true,\r\n }).subscribe(ar=>{\r\n this.artigos = ar?.objecto;\r\n this.filteredArtigos = this.artigos;\r\n })\r\n \r\n\r\n this.menuStore.getListaMenus().subscribe((menus) => {\r\n let menuEquipamento = menus.findIndex((m) => m.codMenu === \"EQUIPA\") !== -1; \r\n if(menuEquipamento){\r\n this.eqService.getEquipamento(this.idEquipamento).subscribe(eq=>{\r\n if (eq) {\r\n this.f[FormNames.equipamento].patchValue({\r\n ...eq.objecto,\r\n natureza: eq.objecto.natureza?.nome,\r\n texto: `${eq.objecto.codigo}${(eq.objecto.designacao ? ': ' + eq.objecto.designacao : '')}`\r\n });\r\n // Para tratar\r\n\r\n //this.clientes = this.clientes?.filter(c => eq.objecto.entidades.some(e => e.idCliente === c.idCliente && e.relacao?.permiteVendas));\r\n this.updateClienteFields(this.clientes.length === 1 ? this.clientes[0] : null);\r\n }\r\n })\r\n }\r\n });\r\n }\r\n getRenovavel(idRenovavel:number){\r\n if(idRenovavel>0){\r\n this.artigoService.getRenovavel(idRenovavel).subscribe(res=>{\r\n this.loading = false;\r\n this.setForm(res);\r\n this.clienteService.getCliente(this.renovavel?.idCliente).subscribe({\r\n next: (c: any) => {\r\n const cliente = newClienteFat(c.objecto);\r\n this.clientes.push(cliente);\r\n this.filteredClientes = this.clientes;\r\n this.updateClienteFields(cliente);\r\n },\r\n error: err => {\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha ao carregar o renovável', false, 4000);\r\n }});\r\n \r\n }, err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha ao carregar os documentos');\r\n })\r\n }else{\r\n this.loading = false;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscriptions.forEach(s => s.unsubscribe());\r\n }\r\n\r\n getCliente(idCliente: number) {\r\n return this.clientes.find(c => c.idCliente === idCliente);\r\n }\r\n\r\n getArtigo(idArtigo: number) {\r\n return this.artigos.find(a => a.idArtigo === idArtigo);\r\n }\r\n\r\n getTipoDocumento(id: number) {\r\n return this.tiposDocumento.find(t => t.idTipoDocumento === id);\r\n }\r\n\r\n toggleExpandRow(row) {\r\n this.renovacoesTable.rowDetail.toggleExpandRow(row);\r\n }\r\n\r\n NaN(value: any) {\r\n return isNaN(value);\r\n }\r\n\r\n updateDatas(ciclo: any) {\r\n const dataInicio = new Date(this.f[FormNames.dataInicio].value);\r\n const dataFim = this.artigoService\r\n .calculateExpirationDate(ciclo, dataInicio);\r\n this.f[FormNames.dataFim].patchValue(dataFim);\r\n //EJVC this.f[FormNames.dataInicioProximaRenovacao].patchValue(Util.addDays(dataInicio, 1));\r\n\r\n if (this.accao === Accao.cadastrar) {\r\n this.f[FormNames.dataInicioProximaRenovacao].patchValue(Util.addDays(dataFim, 1));\r\n this._updateDatas(ciclo, dataInicio, dataFim);\r\n }\r\n }\r\n\r\n _updateDatas(ciclo, dataInicio, dataFim) {\r\n const dataRenovacao = Util.addDays(dataFim, ciclo?.diasRenovacao ?? 0);\r\n this.f[FormNames.dataSuspensao].patchValue(Util.addDays(dataFim, ciclo?.diasSuspensao ?? 0));\r\n this.f[FormNames.dataExpiracao].patchValue(Util.addDays(dataInicio, ciclo?.diasExpiracao ?? 0));\r\n this.f[FormNames.dataRenovacaoAutomatica].patchValue(dataRenovacao);\r\n this.f[FormNames.data1aNotificacao].patchValue(Util.addDays(dataFim, ciclo?.dias2Notificacao ?? 0));\r\n this.f[FormNames.data2aNotificacao].patchValue(Util.addDays(dataFim, ciclo?.dias3Notificacao ?? 0));\r\n this.f[FormNames.data3aNotificacao].patchValue(Util.addDays(dataFim, ciclo?.dias4Notificacao ?? 0));\r\n this.f[FormNames.data4aNotificacao].patchValue(Util.addDays(dataFim, ciclo?.dias5Notificacao ?? 0));\r\n // const dataVencimento = Util.addDays(dataRenovacao, -1);\r\n // if (dataVencimento > dataInicio && this.accao === Accao.cadastrar) {\r\n // this.f[FormNames.dataFim].patchValue(dataVencimento);\r\n // }\r\n // this.f[FormNames.dias].patchValue(this.durationDias(new Date(), this.f[FormNames.dataRenovacao].value));\r\n }\r\n\r\n durationDias(startDate: Date, endDate: Date) {\r\n const t0 = startDate ? new Date(startDate).getTime() : null;\r\n const tf = endDate ? new Date(endDate).getTime() : null;\r\n if ((isNaN(t0) || isNaN(tf)) || [Estados.ELIMINADO, Estados.SUSPENSO].includes(this.f[FormNames.estado].value)) {\r\n return '';\r\n }\r\n\r\n const duration = tf - t0;\r\n const totalSeconds = Math.floor(duration / 1000);\r\n const days = Math.floor(totalSeconds / 86400);\r\n return String(days);\r\n }\r\n\r\n setDatas(ciclo: any) {\r\n const dataInicio = new Date(this.f[FormNames.dataInicio].value);\r\n const dataFim = new Date(this.f[FormNames.dataFim].value);\r\n this._updateDatas(ciclo, dataInicio, dataFim);\r\n }\r\n\r\n filtrarArtigos(event: any) {\r\n const termo = event.target.value;\r\n if (!termo) {\r\n this.filteredArtigos = this.artigos;\r\n return;\r\n }\r\n\r\n this.filteredArtigos = this.artigos.filter(a =>\r\n a?.nomeArtigo?.toLowerCase()?.includes(termo.toLowerCase()) ||\r\n a?.codArtigo?.toLowerCase()?.includes(termo.toLowerCase())\r\n );\r\n }\r\n\r\n showArtigos() {\r\n this.filteredArtigos = this.artigos;\r\n }\r\n\r\n composicao(indexArtFbArray: number) {\r\n return this.artigosForm.at(indexArtFbArray).get('composicao') as FormArray;\r\n }\r\n\r\n addNovaComp(comp: ArtigoComposicao) {\r\n return this.fb.group({\r\n codigo: comp.codigo,\r\n descricao: comp.descricao,\r\n idArtigo: comp.idArtigo,\r\n idArtigoComposicao: comp.idArtigoComposicao,\r\n artigo: comp.artigo,\r\n preco1: comp.preco1,\r\n preco2: comp.preco2,\r\n quantidade: comp.quantidade,\r\n quantidadeVariavel: comp.quantidadeVariavel\r\n });\r\n }\r\n\r\n updateArtigoFields(artigo: any, index: number) {\r\n if (artigo === null) {\r\n return;\r\n }\r\n this.loading = true;\r\n this.artigosForm.at(index).patchValue({\r\n [FormNames.codArtigo]: '',\r\n [FormNames.idArtigo]: 0,\r\n [FormNames.idClassificacao]: 0,\r\n [FormNames.idRenovavel]: this.id,\r\n [FormNames.designacao]: '',\r\n [FormNames.idImposto]: null,\r\n [FormNames.ciclo]: null,\r\n [FormNames.ciclos]: [],\r\n [FormNames.quantidade]: 1,\r\n [FormNames.total]: 1,\r\n [FormNames.imposto]: 1,\r\n [FormNames.desconto]: 1,\r\n [FormNames.descontoPerc]: null,\r\n [FormNames.preco]: null,\r\n });\r\n this.subscriptions.push(\r\n this.artigoService.isArtigoValidoRenovacao(this.f[this.FORM.idCliente].value, artigo.idArtigo, this.id).subscribe({\r\n next: _ => {\r\n if (index === this.artigosForm.length - 1) {\r\n this.artigosForm.push(this.fb.group(this.artigoCtrlConfig));\r\n }\r\n const preco = artigo.arartigosPrecosRenovaveis\r\n .find(p => p.idCicloRenovacao === this.f[this.FORM.ciclo].value?.idCicloRenovacao)?.preco1 ?? artigo.preco1;\r\n this.artigosForm.at(index).patchValue({\r\n [FormNames.codArtigo]: artigo.codArtigo,\r\n [FormNames.idArtigo]: artigo.idArtigo,\r\n [FormNames.idClassificacao]: artigo.idClassificacao,\r\n [FormNames.idRenovavel]: this.id,\r\n [FormNames.designacao]: artigo.nomeArtigo,\r\n [FormNames.idImposto]: this.f[FormNames.empresa].value?.impostos?.find(i => i.idImposto === artigo.idImposto),\r\n [FormNames.ciclos]: artigo.arartigosPrecosRenovaveis,\r\n [FormNames.preco]: preco || null\r\n });\r\n this.artigosForm.at(index).get(FormNames.preco)\r\n .addValidators([Validators.required, CustomValidators.greaterThanZero()]);\r\n this.artigosForm.at(index).get(FormNames.preco).updateValueAndValidity();\r\n this.artigosForm.at(index).get(FormNames.preco).markAsDirty();\r\n this.artigosForm.at(index).get(FormNames.preco).markAsTouched();\r\n this.artigosForm.at(index).get(FormNames.quantidade)\r\n .addValidators([Validators.required, CustomValidators.greaterThanZero()]);\r\n this.artigosForm.at(index).get(FormNames.quantidade).updateValueAndValidity();\r\n this.artigosForm.at(index).get(FormNames.quantidade).markAsDirty();\r\n this.artigosForm.at(index).get(FormNames.quantidade).markAsTouched();\r\n this.artigosForm.at(index).get(FormNames.idImposto).addValidators([Validators.required]);\r\n this.artigosForm.at(index).get(FormNames.idImposto).updateValueAndValidity();\r\n this.artigosForm.at(index).get(FormNames.idImposto).markAsDirty();\r\n this.artigosForm.at(index).get(FormNames.idImposto).markAsTouched();\r\n this.artigosForm.at(index).get(FormNames.idArtigo).addValidators([Validators.required, Validators.min(1)]);\r\n this.artigosForm.at(index).get(FormNames.idArtigo).updateValueAndValidity();\r\n this.artigosForm.at(index).get(FormNames.idArtigo).markAsDirty();\r\n this.artigosForm.at(index).get(FormNames.idArtigo).markAsTouched();\r\n\r\n if (artigo.composicao.length > 0) {\r\n this.artigosForm.at(index).get(FormNames.precoBloqueado).patchValue(true);\r\n (this.artigosForm.at(index) as FormGroup).addControl(FormNames.composicao, this.fb.array([]));\r\n ((this.artigosForm.at(index) as FormGroup).get(FormNames.composicao) as FormArray).clear();\r\n artigo.composicao.forEach(comp =>\r\n (this.artigosForm\r\n .at(index)\r\n .get(FormNames.composicao) as FormArray)\r\n .push(this.addNovaComp(comp))\r\n );\r\n const precoArtigo = artigo.composicao.reduce((acc, val) => acc + val.preco1 * val.quantidade, 0);\r\n this.setArtigoPreco(precoArtigo, index);\r\n } else {\r\n this.artigosForm.at(index).get(FormNames.precoBloqueado).patchValue(false);\r\n (this.artigosForm\r\n .at(index)\r\n .get(FormNames.composicao) as FormArray)?.clear();\r\n }\r\n this.loading = false;\r\n this.subscribeFields(index);\r\n this.calcularItemTotal(preco, 1, this.artigosForm.at(index));\r\n this.calculateTotal();\r\n },\r\n error: err => {\r\n this._notificacao.notificar(err.error.mensagem || err.mensagem, false, 4000);\r\n ((this.artigosForm.at(index) as FormGroup).get(FormNames.composicao) as FormArray)?.clear();\r\n this.calculateTotal();\r\n this.loading = false;\r\n }\r\n }));\r\n }\r\n\r\n updatePrecoCiclo(ciclo: any) {\r\n this.artigosForm.controls.forEach(i => {\r\n const preco = (i.get(this.FORM.composicao) as FormArray)?.value\r\n ?.reduce((acc, val) => acc + val.preco1 * Util.convertToFloat(val.quantidade), 0) ??\r\n i.get(this.FORM.ciclos).value?.find(p => p.idCicloRenovacao === ciclo.idCicloRenovacao)?.preco1;\r\n const total = preco * Util.convertToFloat(i.get(this.FORM.quantidade).value);\r\n i.get(this.FORM.preco).patchValue(preco);\r\n i.get(this.FORM.imposto).patchValue((i.get(this.FORM.idImposto)?.value?.taxa ?? 0) * total * 0.01);\r\n i.get(this.FORM.total).patchValue(total);\r\n });\r\n this.calculateTotal();\r\n }\r\n\r\n filtrarClientes(event: any) {\r\n const termo = event.target.value;\r\n if (!termo) {\r\n this.filteredClientes = this.clientes;\r\n return;\r\n }\r\n\r\n this.filteredClientes = this.clientes.filter(c =>\r\n c.codCliente?.toLowerCase()?.includes(termo.toLowerCase()) ||\r\n c.nome?.toLowerCase()?.includes(termo.toLowerCase())\r\n );\r\n }\r\n\r\n calcularTotal(quantidade: string, preco: number) {\r\n return preco * Util.convertToFloat(quantidade);\r\n }\r\n\r\n calcularTotalCiclo(row, key: string) {\r\n return row.artigos.reduce((sum, item) => sum + item[key], 0);\r\n }\r\n\r\n\r\n showClientes() {\r\n this.filteredClientes = this.clientes;\r\n }\r\n\r\n updateClienteFields(value: any) {\r\n this.form.patchValue({\r\n [FormNames.nomeCliente]: value?.nome,\r\n [FormNames.idCliente]: value?.idCliente,\r\n [FormNames.codCliente]: value?.codCliente\r\n });\r\n\r\n if (!value || this.accao !== Accao.cadastrar) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n this.subscriptions.push(\r\n this.clienteService.getCliente(value.idCliente).subscribe({\r\n next: res => {\r\n this.loading = false;\r\n this.f[FormNames.emailDestinatarios].patchValue(\r\n [value.email || '', ...res.objecto.pessoasContactos\r\n .filter(c => c.contactoFinanceiro)\r\n .flatMap(c => c.contactos.filter(x => x.idTipoContacto === 1))\r\n .map(c => c.contacto)].join('; ')\r\n ); // 1 => \"E-mail\"\r\n if (!res.objecto.email) {\r\n this.form.patchValue({\r\n [this.FORM.nomeCliente]: '',\r\n [this.FORM.idCliente]: 0,\r\n [this.FORM.codCliente]: ''\r\n });\r\n this._notificacao.notificar(`Aviso: Não é permitida a criação de um ${this.classificacao.nomeRenovaveisS} a um cliente sem e-mail!`);\r\n }\r\n },\r\n error: err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao carregar dados adicionais do cliente');\r\n }\r\n })\r\n );\r\n }\r\n\r\n calculatePrice(ctrl: AbstractControl) {\r\n const preco: number = Util.convertToFloat(ctrl.get(FormNames.preco).value);\r\n const quantidade: number = Util.convertToFloat(ctrl.get(FormNames.quantidade).value);\r\n this.calcularItemTotal(preco, quantidade, ctrl);\r\n this.calculateTotal();\r\n }\r\n\r\n recalcularTotal(index: number) {\r\n const preco = this.artigosForm\r\n .at(index)\r\n .get(this.FORM.composicao).value\r\n .reduce((acc, val) => acc + val.preco1 * Util.convertToFloat(val.quantidade), 0);\r\n this.setArtigoPreco(preco, index);\r\n this.calculateTotal();\r\n }\r\n\r\n setArtigoPreco(preco: number, index: number) {\r\n const art = this.artigosForm.at(index);\r\n const qtd = Util.convertToFloat(art.get(FormNames.quantidade).value);\r\n art.get(FormNames.preco).patchValue(preco);\r\n art.get(FormNames.total).patchValue(preco * qtd);\r\n art.get(FormNames.imposto).patchValue(preco * qtd * (art.get(FormNames.idImposto)?.value?.taxa ?? 0) * 0.01);\r\n }\r\n\r\n calcularItemTotal(preco: number, qtd: number, ctrl: AbstractControl) {\r\n const descontoPerc = Util.convertToFloat(ctrl.get(FormNames.descontoPerc).value) * 0.01;\r\n let total: number = preco * qtd;\r\n const desconto = total * descontoPerc;\r\n total -= desconto;\r\n ctrl.get(FormNames.imposto).patchValue((ctrl.get(FormNames.idImposto)?.value?.taxa ?? 0) * total * 0.01);\r\n ctrl.get(FormNames.total).patchValue(total);\r\n ctrl.get(FormNames.desconto).patchValue(desconto);\r\n }\r\n\r\n submit(voltar: boolean = false) {\r\n console.log(\"Clicar em gravar!\",this.form?.controls);\r\n\r\n this.submitted = true;\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n let i = 0;\r\n const artigos = [];\r\n for (const item of this.artigosForm.controls) {\r\n const preco = Util.convertToFloat(item.value.preco);\r\n const quantidade = Util.convertToFloat(item.value.quantidade);\r\n if (item.invalid) {\r\n item.markAllAsTouched();\r\n this._notificacao.notificar(\r\n `${this.classificacao?.classificacaoS.toLowerCase()} número ${i + 1} é inválido. Por favor, preencha corretamente ou remova o item!`);\r\n return;\r\n }\r\n\r\n if (item.get(FormNames.idArtigo).value && preco > 0 && quantidade > 0) {\r\n artigos.push({\r\n id: item.value.id,\r\n idArtigo: item.value.idArtigo,\r\n idRenovavel: item.value.idRenovavel,\r\n idClassificacao: item.value.idClassificacao,\r\n quantidade,\r\n preco,\r\n idImposto: item.value.idImposto?.idImposto,\r\n imposto: Util.convertToFloat(item.value.imposto),\r\n descontoPerc: Util.convertToFloat(item.value.descontoPerc),\r\n desconto: Util.convertToFloat(item.value.desconto),\r\n total: Util.convertToFloat(item.value.total),\r\n designacao: item.value.designacao,\r\n composicao: (item.value.composicao ?? []).map(c => {\r\n return {\r\n idArtigoComposicao: c.idArtigoComposicao,\r\n quantidade: Util.convertToFloat(c.quantidade),\r\n preco: c.preco1,\r\n descricao: c.descricao\r\n };\r\n })\r\n });\r\n }\r\n i++;\r\n }\r\n\r\n if (artigos.length === 0) {\r\n this._notificacao.notificar(\r\n `${this.classificacao?.nomeRenovaveisS} não possui ${this.classificacao?.classificacaoP.toLowerCase()} associados(as). Por favor, preencha corretamente!`);\r\n return;\r\n }\r\n const d = new Date(this.form.value.dataInicio);\r\n const payload = {\r\n codigo: this.f[FormNames.codigo].value,\r\n [FormNames.emailDestinatarios]: this.f[FormNames.emailDestinatarios].value,\r\n idCliente: this.form.value.idCliente,\r\n idEmpresa: this.form.value.empresa?.idEmpresa,\r\n idEquipamento: isNaN(this.idEquipamento) ? null : this.idEquipamento,\r\n idEstadoArtigoRenovavel: this.form.value.idEstadoArtigoRenovavel,\r\n descricao: this.form.value.descricao,\r\n designacao: this.form.value.designacao,\r\n idCicloRenovacao: this.form.value.ciclo?.idCicloRenovacao,\r\n idCriador: this.loginService.getUtilizadorSessao().idUtilizador,\r\n [FormNames.metodoPagamento]: this.f[FormNames.metodoPagamento].value,\r\n [FormNames.idEstadoPagamento]: this.f[FormNames.idEstadoPagamento].value,\r\n renovacoesAutomaticas: this.form.value.renovacoesAutomaticas,\r\n notificacoesDesactivadas: this.f[FormNames.notificacoesDesactivadas].value,\r\n notificacoesRenovacao: {\r\n dataExpiracao: Util._UTCDate(this.f[FormNames.dataExpiracao].value),\r\n dataRenovacao: Util._UTCDate(this.f[FormNames.dataRenovacaoAutomatica].value),\r\n dataSuspensao: Util._UTCDate(this.f[FormNames.dataSuspensao].value),\r\n data1aNotificacao: Util._UTCDate(this.f[FormNames.data1aNotificacao].value),\r\n data2aNotificacao: Util._UTCDate(this.f[FormNames.data2aNotificacao].value),\r\n data3aNotificacao: Util._UTCDate(this.f[FormNames.data3aNotificacao].value),\r\n data4aNotificacao: Util._UTCDate(this.f[FormNames.data4aNotificacao].value)\r\n },\r\n artigos,\r\n dataInicio: new Date(Date.UTC(d.getFullYear(), d.getMonth(), d.getDate())),\r\n dataInicioProximaRenovacao: Util._UTCDate(this.f[FormNames.dataInicioProximaRenovacao].value)\r\n };\r\n if (this.accao === Accao.cadastrar && !this.f[FormNames.semDocumento].value) {\r\n this.emitirDocumento('AC', payload);\r\n } else {\r\n this.loading = true;\r\n this.subscriptions.push(this.submitAction[this.accao](payload)\r\n .pipe(mergeMap(r => {\r\n if (voltar) {\r\n this.loading = false;\r\n this.location.back();\r\n return new Observable();\r\n }\r\n return this.accao === Accao.editar ? this.artigoService.getRenovavel(this.id) : new Observable();\r\n }))\r\n .subscribe({\r\n next: r => {\r\n this.loading = false;\r\n this.renovavel = r.objecto;\r\n const d0 = new Date(this.renovavel.dataInicio);\r\n const df = new Date(this.renovavel.dataFim);\r\n this._updateDatas(this.f[FormNames.ciclo].value, d0, df);\r\n },\r\n error: err => this.handleError(err)\r\n }));\r\n }\r\n }\r\n\r\n calcularDesconto(ctrl: AbstractControl) {\r\n const v = Util.convertToFloat(ctrl.get(FormNames.descontoPerc).value);\r\n if (v < 0 || v > 100) {\r\n ctrl.get(FormNames.descontoPerc).patchValue(Util.clamp(v, 0, 100));\r\n return;\r\n }\r\n const preco: number = Util.convertToFloat(ctrl.get(FormNames.preco).value);\r\n const quantidade: number = Util.convertToFloat(ctrl.get(FormNames.quantidade).value);\r\n this.calcularItemTotal(preco, quantidade, ctrl);\r\n this.calculateTotal();\r\n }\r\n\r\n emitirDocumento(code: string, renovavel?: any) {\r\n const noOffset = [Ciclo.DIARIO, Ciclo.SEMANAL, Ciclo.QUINZENAL];\r\n// const d0 = new Date(this.f[FormNames.dataInicioProximaRenovacao].value ?? renovavel?.dataInicio ?? this.f[FormNames.dataInicio].value);\r\n const d0 = renovavel.id > 0 ? new Date(renovavel.dataInicioProximaRenovacao ?? renovavel?.dataInicio ?? this.f[FormNames.dataInicio].value) \r\n : new Date(renovavel?.dataInicio ?? this.f[FormNames.dataInicio].value) \r\n const rs = this.renovacoes.filter(r => r.estado?.id !== EstadoPagamento.ANULADO);\r\n let dataInicio;\r\n\r\n if (rs.length > 0) {\r\n const df = new Date(rs\r\n .reduce((newest, curr) => new Date(curr.dataFim) > new Date(newest.dataFim) ? curr : newest).dataFim);\r\n dataInicio = d0 > df ?\r\n d0 : noOffset.some(o => this.f[this.FORM.ciclo].value?.idCicloRenovacao === o) ?\r\n df : Util.addDays(df, 1);\r\n } else {\r\n dataInicio = d0;\r\n }\r\n\r\n renovavel.notificacoesRenovacao ??= {\r\n dataExpiracao: Util._UTCDate(this.f[FormNames.dataExpiracao].value),\r\n dataRenovacao: Util._UTCDate(this.f[FormNames.dataRenovacaoAutomatica].value),\r\n dataSuspensao: Util._UTCDate(this.f[FormNames.dataSuspensao].value),\r\n data1aNotificacao: Util._UTCDate(this.f[FormNames.data1aNotificacao].value),\r\n data2aNotificacao: Util._UTCDate(this.f[FormNames.data2aNotificacao].value),\r\n data3aNotificacao: Util._UTCDate(this.f[FormNames.data3aNotificacao].value),\r\n data4aNotificacao: Util._UTCDate(this.f[FormNames.data4aNotificacao].value)\r\n };\r\n renovavel.dataRenovacao ??= renovavel.notificacoesRenovacao?.dataRenovacao;\r\n renovavel.dataSuspensao ??= renovavel.notificacoesRenovacao?.dataSuspensao;\r\n renovavel.dataInicioProximaRenovacao = Util._UTCDate(this.f[FormNames.dataInicioProximaRenovacao].value);\r\n renovavel.id = this.id;\r\n let dataFim = this.artigoService\r\n .calculateExpirationDate(this.f[this.FORM.ciclo].value, dataInicio);\r\n dataFim = new Date(Date.UTC(dataFim.getFullYear(), dataFim.getMonth(), dataFim.getDate()));\r\n dataInicio = new Date(Date.UTC(dataInicio.getFullYear(), dataInicio.getMonth(), dataInicio.getDate()));\r\n const empresa = this.empresas.find(e => e.idEmpresa === renovavel?.idEmpresa);\r\n const end = this.f[FormNames.ciclo].value?.idCicloRenovacao === Ciclo.DIARIO ? '' : ` - ${dataFim.getDate()}/${dataFim.getUTCMonth() + 1}/${dataFim.getUTCFullYear()}`;\r\n const modalRef = this.modal.open(RenoModalFacturacaoComponent, {\r\n width: '100vw',\r\n data: {\r\n empresa,\r\n empresas: this.empresas,\r\n entidade: this.clientes.find(c => c.idCliente === renovavel?.idCliente),\r\n tipos: this.tiposDocumento.filter(t => t.activo && ['C', 'F', 'L', 'O'].includes(t.codCategoriaDocumento)),\r\n codTipo: code,\r\n action: this.accao,\r\n metodosPagamento: this.metodosPagamento,\r\n renovavel,\r\n idRenovavel: this.id,\r\n itens: renovavel?.artigos?.filter(i => !i.eliminado).map(i => {\r\n const art = this.getArtigo(i.idArtigo);\r\n return {\r\n idRenovavelClienteArtigo: i.id,\r\n idArtigo: i.idArtigo,\r\n codArtigo: art?.codArtigo ?? '',\r\n idRetencao: art?.idRetencao,\r\n idRenovavel: this.id,\r\n idCicloRenovacao: renovavel?.idCicloRenovacao,\r\n artigo: art,\r\n quantidade: i.quantidade,\r\n preco: i.preco,\r\n descricao: i.designacao ? `${i.designacao} (${dataInicio.getDate()}/${dataInicio.getUTCMonth() + 1}/${dataInicio.getUTCFullYear()}${end})` : '',\r\n renovavelClienteArtigo: i.designacao,\r\n idImposto: i.idImposto,\r\n desconto: i.desconto,\r\n descontoPerc: i.descontoPerc,\r\n total: i.quantidade * i.preco - i.desconto,\r\n Iva: i.imposto ?? 0,\r\n imposto: i.imposto ?? 0,\r\n dataInicio: i.dataInicio,\r\n dataFim: i.dataFim,\r\n idUnidadeMedida: i.idUnidadeMedida,\r\n artigosComposicao: (i.composicao ?? []).map(c => {\r\n const tax = this.impostos.find(x => x.idImposto === c.artigo.idImposto);\r\n return {\r\n idArtigo: c.idArtigoComposicao,\r\n codArtigo: c.artigo?.codArtigo ?? '',\r\n descricao: c.descricao,\r\n quantidade: c.quantidade,\r\n codUnidade: c.artigo?.codUnidade ?? '',\r\n preco: c.preco,\r\n desconto: 0,\r\n descontoPerc: 0,\r\n taxaIVA: tax?.taxa ?? 0,\r\n codImposto: tax?.codImposto ?? '',\r\n idImposto: tax?.idImposto,\r\n imposto: c.imposto,\r\n total: c.preco * c.quantidade + c.imposto,\r\n texto: false\r\n };\r\n })\r\n };\r\n })\r\n }\r\n });\r\n\r\n this.subscriptions.push(\r\n modalRef.afterClosed().pipe(\r\n mergeMap(accepted => {\r\n if (!accepted) {\r\n return new Observable();\r\n }\r\n if (this.accao === Accao.cadastrar) {\r\n this.location.back();\r\n return new Observable();\r\n }\r\n\r\n this.loading = true;\r\n return this.artigoService.getRenovavel(this.id);\r\n })\r\n ).subscribe({\r\n next: r => {\r\n this.setForm(r);\r\n this.loading = false;\r\n },\r\n error: err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha ao carregar os documentos');\r\n }\r\n })\r\n );\r\n }\r\n\r\n calculateTotal(): void {\r\n this.totalIliq = this.artigosForm.value\r\n .reduce((acc, val) => {\r\n const total = Util.convertToFloat(val.total);\r\n return acc + (isNaN(total) ? 0 : total);\r\n }, 0);\r\n this.total = this.artigosForm.value\r\n .reduce((acc, val) => {\r\n const imposto = Util.convertToFloat(val.imposto);\r\n return acc + (isNaN(imposto) ? 0 : imposto);\r\n }, this.totalIliq);\r\n }\r\n\r\n setCodigo(value: any) {\r\n if (this.accao !== Accao.cadastrar) {\r\n return;\r\n }\r\n this.loading = true;\r\n this.subscriptions.push(this.artigoService.getNumeracaoRenovavel(value?.idEmpresa).subscribe({\r\n next: res => {\r\n this.f[this.FORM.codigo].patchValue(res.objecto.item2);\r\n this.loading = false;\r\n },\r\n error: err => {\r\n this.loading = false;\r\n this._notificacao.notificar(err.mensagem);\r\n }\r\n }));\r\n }\r\n\r\n ivaActivo(item: any) {\r\n return item.activo;\r\n }\r\n\r\n changeState(transition: EstadoFluxo) {\r\n const dialogRef = this.dialog.open(ModalConfirmacaoComponent, {\r\n data: {\r\n header: 'Confirmação',\r\n acceptLabel: 'Confirmar',\r\n rejectLabel: 'Cancelar',\r\n message: `Tem a certeza que pretende ${transition.estadoSeguinte?.accao?.toLowerCase()} este ${this.classificacao.nomeRenovaveisS?.toLowerCase()}?`\r\n }\r\n });\r\n this.subscriptions.push(\r\n dialogRef.afterClosed().pipe(\r\n mergeMap(accepted => {\r\n if (!accepted) {\r\n return new Observable>();\r\n }\r\n this.loading = true;\r\n return this.artigoService.alternarActivoSuspensoRenovavel(this.renovavel.id, transition.idEstadoSeguinte);\r\n })\r\n ).subscribe({\r\n next: v => {\r\n this.loading = false;\r\n this.renovavel.idEstadoArtigoRenovavel = v.objecto;\r\n this.transistions = this.stateMachine.filter(x => x.idEstado === v.objecto);\r\n this.f[this.FORM.estado].patchValue(v.objecto);\r\n this._notificacao.notificar(`${this.classificacao.nomeRenovaveisS} está ${this.stateMap[v.objecto]}`, true);\r\n },\r\n error: err => {\r\n this.loading = false;\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha ao alternar o estado do renovável');\r\n }\r\n })\r\n );\r\n }\r\n\r\n removerArtigo(index: number) {\r\n const idArtigo: number = this.artigosForm.at(index).get(this.FORM.id).value;\r\n if (idArtigo > 0) {\r\n this.artigosRemover.push(idArtigo);\r\n }\r\n this.artigosForm.removeAt(index);\r\n this.calculateTotal();\r\n if (this.artigosForm.length < 1) {\r\n this.artigosForm.push(this.fb.group(this.artigoCtrlConfig));\r\n }\r\n }\r\n\r\n calcularImposto(e: MatSelectChange, ctrl: AbstractControl) {\r\n const preco: number = Util.convertToFloat(ctrl.get(FormNames.preco).value);\r\n const quantidade: number = Util.convertToFloat(ctrl.get(FormNames.quantidade).value);\r\n this.calcularItemTotal(preco, quantidade, ctrl);\r\n this.calculateTotal();\r\n }\r\n\r\n anular(row: any) {\r\n const dialogRef = this.dialog.open(ModalConfirmacaoComponent, {\r\n data: {\r\n header: 'Confirmação',\r\n acceptLabel: 'Confirmar',\r\n rejectLabel: 'Cancelar',\r\n message: `Tem a certeza que pretende anular esta renovação?`\r\n }\r\n });\r\n this.subscriptions.push(\r\n dialogRef.afterClosed().pipe(\r\n mergeMap(accepted => {\r\n if (!accepted) {\r\n return new Observable>();\r\n }\r\n this.loading = true;\r\n return this.artigoService.anularRenovacao(row.id);\r\n })\r\n ).subscribe({\r\n next: res => {\r\n this.loading = false;\r\n row.anulado = res.objecto.anulado;\r\n row.estado = res.objecto.estado;\r\n this.renovacoes = [...this.renovacoes];\r\n this._notificacao.notificar(res.mensagem, true);\r\n },\r\n error: err => {\r\n this.loading = false;\r\n console.error(err);\r\n this._notificacao.notificar(err.error?.mensagem || 'Falha inesperada ao anular a renovação');\r\n }\r\n })\r\n );\r\n }\r\n\r\n private subscribeFields(i: number) {\r\n [\r\n this.artigosForm.at(i).get(FormNames.preco).valueChanges\r\n .subscribe(v => this.calculatePrice(this.artigosForm.at(i))),\r\n this.artigosForm.at(i).get(FormNames.quantidade).valueChanges\r\n .subscribe(v => this.calculatePrice(this.artigosForm.at(i))),\r\n this.artigosForm.at(i).get(FormNames.descontoPerc).valueChanges\r\n .subscribe(v => this.calcularDesconto(this.artigosForm.at(i)))\r\n ].forEach(s => this.subscriptions.push(s));\r\n }\r\n\r\n // Crie getters para calcular condições diretamente\r\n get disableGravar() {\r\n return this.loading || !this.form.valid;\r\n }\r\n \r\n get disableEmitirRenovacao() {\r\n return this.loading || this.accao === this.actions.cadastrar || this.renovavel?.idEstadoArtigoRenovavel === this.states.ELIMINADO;\r\n }\r\n \r\n get showEditarConsultarButton() {\r\n return this.accao !== this.actions.cadastrar && this.accao !== this.actions.detalhes;\r\n }\r\n \r\n}\r\n\r\n","
    \r\n \r\n \r\n
    \r\n\r\n\r\n \r\n
    \r\n

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

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    1\" fxFlex=\"20\" fxFlex.xl=\"15\" fxFlex.lg=\"15\" fxFlex.gt-xs=\"20\"\r\n class=\"pr-1 mb-1\"\r\n [class.campo-inactivo]=\"accao !== actions.cadastrar\">\r\n \r\n Empresa\r\n \r\n \r\n \r\n {{ empresa?.codEmpresa }}\r\n \r\n \r\n \r\n \r\n \r\n Empresa é obrigatória!\r\n \r\n
    \r\n \r\n
    \r\n \r\n Código\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Designação\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data Registo\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n Cod. Cliente\r\n \r\n \r\n 0\">\r\n \r\n Código\r\n Nome\r\n E-mail\r\n NIF\r\n \r\n \r\n \r\n \r\n {{ cliente.codCliente }}\r\n {{ cliente.nome }}\r\n {{ cliente.email }}\r\n {{ cliente.nif }}\r\n \r\n \r\n \r\n \r\n \r\n Cliente é obrigatório!\r\n \r\n
    \r\n \r\n
    \r\n \r\n Cliente\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n Estado\r\n \r\n \r\n {{ estado.artigoRenovavelEstado }}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Ciclo\r\n \r\n \r\n {{ c.cicloRenovacao }}\r\n \r\n \r\n \r\n Preencha o ciclo\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data Início\r\n \r\n \r\n \r\n \r\n \r\n Selecione uma data válida!\r\n \r\n
    \r\n \r\n
    \r\n \r\n Validade\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n 0 ? 'rgba(0, 0, 0, 0.87)' : 'red'\">\r\n Dias\r\n \r\n \r\n
    \r\n \r\n \r\n Método Pagamento\r\n \r\n Nenhum\r\n \r\n {{ m.metodoPagRec }}\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n Total Pendente:\r\n \r\n \r\n
    \r\n
    \r\n \r\n Total Iliq.:\r\n \r\n \r\n
    \r\n
    \r\n \r\n Total:\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Descrição\r\n \r\n \r\n
    \r\n \r\n 0\">\r\n
    \r\n \r\n Cod. {{ f[FORM.equipamento].value?.natureza ?? 'Equipamento' }}\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n Designação {{ f[FORM.equipamento].value?.natureza ?? 'Equipamento' }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Gravar sem documento\r\n \r\n
    \r\n\r\n \r\n
    \r\n \r\n Estado Pagamento\r\n \r\n Nenhum\r\n \r\n {{ m.estadoPagamento }}\r\n \r\n \r\n \r\n \r\n Estado Pagamento é obrigatório\r\n \r\n
    \r\n\r\n
    \r\n
    1\"\r\n >\r\n Dados renovação\r\n \r\n
    \r\n \r\n Data Próxima Renovação\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Renovação Automática\r\n \r\n
    \r\n\r\n
    1\" fxFlex=\"15\" fxFlex.xl=\"15\"\r\n fxFlex.lg=\"15\"\r\n fxFlex.xs=\"100\" class=\"pr-16 pt-1\">\r\n \r\n Desactivar notificações\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n Data Renovação Automática\r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data Suspensão\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data Expiração\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data 1ª Notificação\r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data 2ª Notificação\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data 3ª Notificação\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data 4ª Notificação\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n E-mails a Notificar\r\n \r\n \r\n \r\n Formato de endereços de e-mail inválido(s)\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ classificacao?.classificacaoP }}\r\n
    \r\n \r\n
    \r\n
    \r\n # {{ i + 1 }}\r\n \r\n delete\r\n \r\n
    \r\n \r\n
    \r\n \r\n Cod. Artigo\r\n \r\n \r\n folder\r\n \r\n \r\n 0\"\r\n [value]=\"null\">\r\n \r\n Código\r\n Designação\r\n Reten.\r\n \r\n \r\n \r\n \r\n {{ a.codArtigo }}\r\n {{ a.nomeArtigo }}\r\n \r\n check_small\r\n \r\n \r\n \r\n \r\n \r\n \r\n Seleccione\r\n um {{ classificacao?.classificacaoS?.toLowerCase() }}\r\n \r\n
    \r\n \r\n
    \r\n \r\n Designação\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Quantidade\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Preço\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Desc (%)\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Desconto\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Total\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n IVA\r\n \r\n \r\n {{ iva.codImposto }} -{{ iva.taxa }}%\r\n \r\n \r\n \r\n \r\n Selecione um imposto!\r\n \r\n
    \r\n \r\n
    \r\n \r\n Imposto\r\n \r\n \r\n
    \r\n
    \r\n\r\n 0\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    Código
    \r\n
    \r\n
    \r\n
    Descrição
    \r\n
    \r\n
    \r\n
    Preço
    \r\n
    \r\n
    \r\n
    Unidade
    \r\n
    \r\n
    \r\n
    Quantidade
    \r\n
    \r\n
    \r\n
    Total
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    {{ comp?.value.codigo }}
    \r\n
    \r\n
    \r\n
    {{ comp?.value.descricao }}\r\n
    \r\n
    \r\n
    \r\n
    {{ comp?.value.preco1 | currency: ' ' }}\r\n
    \r\n
    \r\n
    \r\n
    {{ comp.value.artigo?.codUnidade }} \r\n
    \r\n
    \r\n
    \r\n \r\n Quantidade\r\n \r\n \r\n
    \r\n
    \r\n
    {{ calcularTotal(comp.value.quantidade, comp.value.preco1) | currency: '':'' }}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n Renovações\r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ innerRow.designacao }}\r\n \r\n \r\n\r\n \r\n \r\n {{ innerRow.quantidade | currency:'':'' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ innerRow.preco | currency:'':'' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ innerRow.descontoPerc | currency:'':'' }} %\r\n \r\n \r\n\r\n \r\n \r\n {{ innerRow.desconto | currency:'':'' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ innerRow.imposto | currency:'':'' }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ row.dataInicio | date: 'dd-MM-yyyy' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ row.dataFim | date: 'dd-MM-yyyy' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ row.documentos?.length ?? 0 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ row.total | currency:'':'' }}\r\n \r\n \r\n\r\n \r\n \r\n {{ row.pendente | currency:'':'' }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ row.estado?.nome }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-config-layout',\r\n template: `
    `,\r\nstyles: [`\r\n\r\n`]\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class AppConfigLayout {\r\n\r\n}\r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {Data} from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-modal-confirmacao',\r\n templateUrl: './modal-confirmacao.component.html',\r\n styleUrls: ['./modal-confirmacao.component.scss']\r\n})\r\nexport class ModalConfirmacaoComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: Data) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n}\r\n","
    \r\n
    \r\n
    \r\n

    {{ data['header'] }}

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

    {{data['message']}}

    \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Pipe, PipeTransform} from '@angular/core';\r\n\r\ninterface Artigo {\r\n idClassificacao: number;\r\n idArtigo: number;\r\n codArtigo: string;\r\n artigo: string;\r\n idImposto: number;\r\n taxaIva: number;\r\n idUnidadeMedida: number;\r\n codUnidade: string;\r\n unidadeSingular: string;\r\n unidadePlural: string;\r\n sujeitoARetencao: boolean,\r\n tipo: string;\r\n estado: string;\r\n idRetencao: number;\r\n preco1: number;\r\n geridoPorStocks: boolean;\r\n renovavel: boolean;\r\n}\r\n\r\n@Pipe({\r\n name: 'filtarArtigo',\r\n pure: true\r\n})\r\n\r\nexport class FiltarArtigoPipe implements PipeTransform {\r\n\r\n transform(artigos: Artigo[], codCategoriaDocumento: string): Artigo[] {\r\n switch (codCategoriaDocumento) {\r\n case 'C':\r\n case 'O':\r\n return artigos;\r\n default:\r\n return artigos.filter(artigo => artigo.tipo !== 'Evento' && !(artigo.tipo === 'Serviço' && artigo?.renovavel));\r\n }\r\n }\r\n\r\n}\r\n","import {Component, Inject, Injectable, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormBuilder, FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport {MatDialogRef, MAT_DIALOG_DATA, MatDialog} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Estados } from 'app/shared/models/financas/documentos/estados';\r\nimport { EstadosMotivos } from 'app/shared/models/financas/documentos/estadosmotivos';\r\nimport { FinancasService } from 'app/shared/services/financas/financas.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {LoginService} from '../../../../shared/services/aplicacao-service/login.service';\r\nimport {NotificacaoService} from '../../../../shared/services/notificacao/notificacao.service';\r\nimport {ModalAdicionarMotivoAnulacaoComponent} from '../modal-adicionar-motivo-anulacao/modal-adicionar-motivo-anulacao.component';\r\nimport {UtilizadorSessao} from '../../../../shared/models/aplicacao/utilizador-sessao';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-anular',\r\n templateUrl: './anular.component.html',\r\n styleUrls: ['./anular.component.scss'],\r\n})\r\nexport class AnularComponent implements OnInit, OnDestroy {\r\n formAnularFact: FormGroup;\r\n estados: Estados[] = [];\r\n motivos: any[] = [];\r\n motivosTe: any;\r\n usaMotivos = true;\r\n codEstadoAnulado = 'A';\r\n subscricao: Subscription[] = [];\r\n modoAdicao: boolean;\r\n IdMotivoCtrl = new FormControl();\r\n CodEstadoCtrl = new FormControl();\r\n MotivoCtrl = new FormControl();\r\n motivoSeleccionado: any;\r\n opcoes: EstadosMotivos[] = [];\r\n idMotivo: number;\r\n msgErro: string;\r\n ctrlMotivoSelecionado = new FormControl();\r\n listaMotivosFiltro: EstadosMotivos[] = [];\r\n mostrarListaMotivos: boolean;\r\n utilizadorSessao: UtilizadorSessao;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private financasServices: FinancasService,\r\n private fb: FormBuilder,\r\n private alertService: NotificacaoService,\r\n private modalRef: MatDialogRef,\r\n private dialog: MatDialog,\r\n private loginService: LoginService,\r\n ) {\r\n this.getDadosSessaoUtilizador();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.getMotivos(this.codEstadoAnulado);\r\n this.CodEstadoCtrl.setValue(this.codEstadoAnulado);\r\n if (this.data) { this.getEstados(this.data.tipo.id); }\r\n }\r\n\r\n getDadosSessaoUtilizador() {\r\n this.utilizadorSessao = this.loginService.getUtilizadorSessao();\r\n }\r\n filtrarAutocomplete(e: any) {\r\n const termo = e.target.value;\r\n if (termo) {\r\n this.opcoes = this.motivos.filter(\r\n x => x.motivoEstado && x.motivoEstado.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n } else {\r\n this.opcoes = this.motivos;\r\n }\r\n }\r\n\r\n getEstados(idTipo: number) {\r\n this.subscricao.push(\r\n this.financasServices\r\n .getEstadosPeloTipoDocumento(idTipo)\r\n .subscribe((res) => {\r\n this.estados = res.filter((x) => x.codEstadoDocumento !== 'E');\r\n this.getMotivo(this.codEstadoAnulado);\r\n })\r\n );\r\n }\r\n\r\n getMotivos(codEstado) {\r\n this.subscricao.push(\r\n this.financasServices.getEstadosMotivos(codEstado).subscribe((res: any) => {\r\n if (res) { this.motivos = res.objecto;\r\n this.listaMotivosFiltro = res.objecto; }\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n alterarEstadoDoc() {\r\n if(!this.motivoSeleccionado){\r\n this.alertService.notificar('Seleccione um motivo', false, 5000);\r\n return;\r\n }\r\n if (!this.CodEstadoCtrl.value) {\r\n this.CodEstadoCtrl.setValidators([Validators.required]);\r\n this.CodEstadoCtrl.updateValueAndValidity({onlySelf: true});\r\n this.CodEstadoCtrl.markAsTouched({onlySelf: true});\r\n return false;\r\n }\r\n if (!this.ctrlMotivoSelecionado.value) {\r\n this.ctrlMotivoSelecionado.setValidators([Validators.required]);\r\n this.ctrlMotivoSelecionado.updateValueAndValidity();\r\n this.ctrlMotivoSelecionado.markAsTouched({onlySelf: true});\r\n return false;\r\n }\r\n\r\n const doc = {\r\n idUtilizador: this.loginService.decodedToken?.nameid,\r\n idDocumento: this.data.idDocumento,\r\n idEstado: this.codEstadoAnulado,\r\n idMotivo: this.IdMotivoCtrl.value ? this.IdMotivoCtrl.value : null,\r\n\r\n };\r\n\r\n this.subscricao.push(\r\n this.financasServices.alterarEstadoDocumentoFA(doc)\r\n .subscribe(res => {\r\n this.modalRef.close({execucao: true, msg: res.mensagem});\r\n }, (error) => {\r\n this.alertService.notificar(error?.error?.mensagem ?? \"Falha de conexão com a rede! Tente mais tarde.\", false, 5000);\r\n })\r\n );\r\n }\r\n\r\n adicionarMotivo() {\r\n if (this.modoAdicao) {\r\n if (!this.MotivoCtrl.value) {\r\n this.MotivoCtrl.setValidators([Validators.required]);\r\n this.MotivoCtrl.markAsTouched({onlySelf: true});\r\n this.MotivoCtrl.updateValueAndValidity({onlySelf: true});\r\n return false;\r\n }\r\n const modelo = {\r\n CodEstadoDocumento: this.codEstadoAnulado,\r\n MotivoEstado: this.MotivoCtrl.value\r\n };\r\n\r\n this.subscricao.push(\r\n this.financasServices.gravarMotivo(modelo).subscribe((res: any) => {\r\n // this.getMotivos(this.idEstadoAnulado); Para uso futuro\r\n this.motivos.push(res.objecto);\r\n if(!res.mensagem) {\r\n this.alertService.notificar('Motivo adicionado com sucesso!', true, 3000);\r\n } else {\r\n this.alertService.notificar(res.mensagem, true, 3000);\r\n }\r\n\r\n this.MotivoCtrl.reset();\r\n this.modoAdicao = false;\r\n }, error => {\r\n this.alertService.notificar(error.error, false, 3000);\r\n })\r\n );\r\n }\r\n }\r\n\r\n selecMotivo(motivo: EstadosMotivos) {\r\n this.IdMotivoCtrl.patchValue(motivo.idMotivoEstado);\r\n this.motivoSeleccionado = motivo;\r\n this.ctrlMotivoSelecionado.setValue(motivo.motivoEstado);\r\n this.mostrarListaMotivos = false;\r\n }\r\n\r\n getMotivo(codEstado: string) {\r\n this.IdMotivoCtrl.reset();\r\n this.MotivoCtrl.reset();\r\n const estado = this.estados.find((x) => x.codEstadoDocumento === codEstado);\r\n if (estado) {\r\n if (estado.usaMotivo) {\r\n this.CodEstadoCtrl.patchValue(estado.codEstadoDocumento);\r\n this.usaMotivos = estado.usaMotivo;\r\n this.subscricao.push(\r\n this.financasServices\r\n .getEstadosMotivos(estado.codEstadoDocumento).subscribe((res) => {\r\n this.motivos = res;\r\n this.opcoes = res;\r\n }));\r\n } else {\r\n this.CodEstadoCtrl.patchValue(estado.codEstadoDocumento);\r\n this.usaMotivos = false;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscricao.length > 0) {\r\n this.subscricao.forEach(sub => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n adNovoMotivo() {\r\n const modalRef = this.dialog.open(ModalAdicionarMotivoAnulacaoComponent, {\r\n minWidth: '550px',\r\n minHeight: '240px',\r\n });\r\n\r\n modalRef.afterClosed().subscribe((res: any) => {\r\n this.getMotivos(this.codEstadoAnulado);\r\n });\r\n }\r\n} // Fim da class componente //\r\n","
    \r\n
    \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n

    \r\n Anulação {{data?.tipo?.tipo}} {{ data?.codigo }}\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Seleccionar motivo\r\n \r\n arrow_drop_down\r\n \r\n \r\n \r\n {{motivo?.motivoEstado}}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n Por favor escreva o motivo\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Inserir motivo\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n Cancelar\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, Inject, Input, OnDestroy, OnInit} from '@angular/core';\r\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {ArtigosService} from 'app/shared/services/artigos/artigos.service';\r\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\r\nimport {ArtigosTipos} from '../../../../shared/models/artigos/artigostipos';\r\nimport {Unidade} from '../../../../shared/models/aplicacao/unidade';\r\nimport {Subscription} from 'rxjs';\r\nimport {ArtigoNatureza} from '../../../../shared/models/artigos/artigoNatureza';\r\nimport {TipoDocumento} from '../../../../shared/models/financas/documentos/documentosTipos';\r\nimport {LoginService} from '../../../../shared/services/aplicacao-service/login.service';\r\nimport {ArtEstado} from '../../../../shared/models/artigos/art-estado';\r\nimport {EstadoArtigosService} from '../../../../shared/services/artigos/EstadoArtigos.service';\r\nimport {NotificacaoService} from '../../../../shared/services/notificacao/notificacao.service';\r\nimport {ArtigoClassificacao} from '../../../../shared/models/artigos/artigo-classificacao';\r\nimport {Util} from '../../../../shared/models/generico/util';\r\nimport {CurrencyPipe} from '@angular/common';\r\nimport {Opc} from '../../../../shared/models/ENUM';\r\nimport {Format} from '@directives/input-format.directive';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'modal-adicionar-artigo-fa',\r\n templateUrl: './modal-adicionar-artigo-fa.component.html',\r\n styleUrls: ['./modal-adicionar-artigo-fa.component.scss'],\r\n providers: [CurrencyPipe]\r\n})\r\nexport class ModalAdicionarArtigoFaComponent implements OnInit, OnDestroy {\r\n readonly format = Format;\r\n loading = false;\r\n subs: Subscription[] = [];\r\n form: FormGroup = this.fb.group({\r\n nomeArtigo: ['', Validators.required],\r\n idTipoArtigo: null,\r\n idEstadoArtigo: [1, [Validators.required, Validators.min(1)]],\r\n idSubTipoArtigo: [0, Validators.min(0)],\r\n codigoArtigo: ['', Validators.required],\r\n codigoTipoArtigo: '',\r\n descricao: '',\r\n gereEstoque: false,\r\n precoArtigo: [this.currencyPipe.transform(0, '', ''), Validators.min(0)],\r\n idImposto: [0, Validators.required],\r\n idUnidadeMedida: [1, [Validators.required, Validators.min(1)]]\r\n });\r\n\r\n classificacao!: ArtigoClassificacao;\r\n tipos: ArtigosTipos[] = [];\r\n impostos: any[] = [];\r\n unidades: Unidade[] = [];\r\n naturezas: ArtigoNatureza[] = [];\r\n tipoDocumento: TipoDocumento;\r\n idClassificacao = 2;\r\n @Input() tituloModal = 'Adicionar';\r\n dataHoje = new Date();\r\n estados: ArtEstado[] = [];\r\n classificacoes: ArtigoClassificacao[] = [];\r\n codIdioma = 'pt';\r\n submitted = false;\r\n selecionado = false;\r\n gereStock = false;\r\n\r\n constructor(\r\n private artigoService: ArtigosService,\r\n private fb: FormBuilder,\r\n @Inject(MAT_DIALOG_DATA) public dadosModal: any,\r\n private loginService: LoginService,\r\n private alertService: NotificacaoService,\r\n private currencyPipe: CurrencyPipe,\r\n private modal: MatDialog,\r\n private modalRef: MatDialogRef,\r\n private estadoArtigoService: EstadoArtigosService\r\n ) {\r\n // Get tipo documento\r\n\r\n // get Natureza\r\n if (dadosModal.tipoDocumento) {\r\n this.setNaturezas(dadosModal.tipoDocumento.codNatureza);\r\n }\r\n this.buscarUnidadeMedida();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.gereStock = JSON.parse(localStorage.getItem('gereStocks'));\r\n this.setEstados(this.idClassificacao);\r\n this.setIVAs('ao');\r\n this.setClassificacoes();\r\n }\r\n\r\n setEstados(idClassificacao: number) {\r\n this.subs.push(this.estadoArtigoService.getEstados(idClassificacao).subscribe((res: any) => {\r\n this.estados = res.objecto;\r\n }, (erro: any) => {\r\n console.error('ERRO: ', erro);\r\n }));\r\n }\r\n\r\n buscarUnidadeMedida() {\r\n this.loading = true;\r\n this.subs.push(\r\n this.artigoService.buscarUnidadeMedida().subscribe((res: any) => {\r\n this.loading = false;\r\n this.unidades = res.objecto;\r\n }, (erro: any) => {\r\n console.error('ERRO: ', erro);\r\n })\r\n );\r\n }\r\n\r\n setTipos(idClassificacao: number, codIdioma: string) {\r\n this.loading = true;\r\n this.subs.push(\r\n this.artigoService.getTipos(idClassificacao, codIdioma).subscribe((res: any) => {\r\n this.loading = false;\r\n this.tipos = res.objecto;\r\n })\r\n );\r\n }\r\n\r\n setNaturezas(codNatureza: string) {\r\n this.loading = true;\r\n this.subs.push(\r\n this.artigoService.getTodosTiposArtigo().subscribe((res: any) => {\r\n this.loading = false;\r\n this.naturezas = this.classificacao.codNatureza ?\r\n res.filter(t => t.codNatureza === this.classificacao.codNatureza && t.activo)\r\n : res.filter(t => t.activo);\r\n this.f['idTipoArtigo']\r\n .patchValue(this.naturezas.length === 1 ? this.naturezas[0]?.idTipoArtigo : null);\r\n })\r\n );\r\n }\r\n\r\n setIVAs(codPais: string) {\r\n this.subs.push(\r\n this.artigoService.getArtigoIva(codPais).subscribe((res: any) => {\r\n this.impostos = res;\r\n })\r\n );\r\n }\r\n\r\n setClassificacoes() {\r\n this.loading = true;\r\n this.subs.push(\r\n this.artigoService.getClassificacoesArtigos().subscribe(res => {\r\n this.classificacoes = res.filter(c => ['S', 'P', null, undefined].includes(c.codNatureza));\r\n this.classificacao = this.classificacoes.length === 1 ? this.classificacoes[0] : null;\r\n this.tituloModal = 'Adicionar ' + (this.classificacao?.classificacaoS ?? '');\r\n this.loading = false;\r\n },\r\n err => {\r\n this.loading = false;\r\n this.alertService.notificar(err.error.mensagem || err.mensagem, false, 3000);\r\n })\r\n );\r\n }\r\n\r\n getCodigoArtigo(classificacao: ArtigoClassificacao, data: string, idTipoArtigo: number) {\r\n this.loading = true;\r\n this.subs.push(\r\n this.artigoService.getCodigoArtigo(classificacao.idClassificacao, data, idTipoArtigo).subscribe(() => {\r\n this.loading = false;\r\n })\r\n );\r\n }\r\n\r\n submit() {\r\n this.submitted = true;\r\n\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this.loading = true;\r\n const payload = {\r\n idArtigo: 0,\r\n descricao: this.form.value.nomeArtigo,\r\n dataCriacao: this.dataHoje,\r\n composicoes: [],\r\n composicoesRemover: [],\r\n descricaoTextos: [\r\n {\r\n codIdioma: 'pt',\r\n condicoesAdesao: '',\r\n descricao: this.form.value.nomeArtigo,\r\n descricaoLonga: null,\r\n informacaoAdicional: ''\r\n }\r\n ],\r\n idCategorias: [],\r\n idCategoriasRemover: [],\r\n idCriador: +this.loginService.decodedToken.nameid,\r\n idModificador: +this.loginService.decodedToken.nameid,\r\n idEstado: 1,\r\n codArtigo: this.form.value.codigoArtigo,\r\n idClassificacao: this.classificacao.idClassificacao,\r\n idTipo: this.form.value.idSubTipoArtigo,\r\n idTipoArtigo: this.form.value.idTipoArtigo,\r\n preco1: Util.convertToFloat(this.form.value.precoArtigo),\r\n preco2: 0,\r\n preco3: 0,\r\n precos: [\r\n {\r\n idArtigo: 0,\r\n idArtigoPreco: 0,\r\n idEmpresa: this.dadosModal.idEmpresa,\r\n preco1: Util.convertToFloat(this.form.value.precoArtigo),\r\n preco2: 0,\r\n preco3: 0,\r\n idMoeda: 1,\r\n precoIva: true,\r\n dataFim: null,\r\n dataInicio: null,\r\n idModificador: +this.loginService.decodedToken.nameid,\r\n idRegistoArtVar: 0,\r\n precoEntidadeTipos: []\r\n }\r\n ],\r\n eliminarPrecos: [],\r\n descricaoLonga: null,\r\n condicoesAdesao: '',\r\n informacaoAdicional: '',\r\n imagem: '',\r\n idUnidadeMedida: this.form.value.idUnidadeMedida,\r\n idImposto: this.form.value.idImposto,\r\n produto: this.classificacao.codNatureza === 'P',\r\n quantidade: 0,\r\n listaFornecedores: [],\r\n sujeitoAretencoes: false,\r\n idRetencao: 0,\r\n imagens: [],\r\n codTipoArtigo: this.classificacao.codNatureza ??\r\n this.naturezas.find(n => n.idTipoArtigo === this.f['idTipoArtigo'].value)?.codNatureza,\r\n usaVariante: false,\r\n idVariante: 0,\r\n codIdioma: 'PT',\r\n porMarcacao: this.classificacao.idOpcMarcacao === Opc.OBRIGATORIO && this.classificacao.codNatureza === 'S',\r\n renovavel: false,\r\n renovavelMultiplo: false,\r\n gereEstoque: this.f['gereEstoque'].value,\r\n devolucao: false,\r\n variantesValoresDto: [],\r\n variantesValoresEliminar: [],\r\n listaImagensRemover: [],\r\n disponivelOnline: false,\r\n destaque: false,\r\n arquivos: [],\r\n arquivosRemover: [],\r\n utilizador: this.loginService.getUtilizadorSessao(),\r\n realizacoes: [],\r\n realizacoesRemover: [],\r\n modulos: [],\r\n modulosRemover: [],\r\n colaboracoes: [],\r\n colaboracoesRemover: [],\r\n artigoEntidades: [],\r\n artigoEntidadesRemover: [],\r\n usaAvaliacaoRealizacao: false,\r\n usaAvaliacaoRealizacaoModulos: false,\r\n usaCertificado: false\r\n };\r\n\r\n this.subs.push(\r\n this.artigoService.gravarArtigo(payload).subscribe((res: any) => {\r\n this.loading = false;\r\n this.alertService.notificar(res.mensagem, true, 4000);\r\n this.form.reset({\r\n nomeArtigo: '',\r\n idTipoArtigo: 0,\r\n idEstadoArtigo: 1,\r\n idSubTipoArtigo: 0,\r\n codigoArtigo: '',\r\n codigoTipoArtigo: '',\r\n descricao: '',\r\n precoArtigo: this.currencyPipe.transform(0, '', ''),\r\n idImposto: this.classificacao?.idIva ?? 0,\r\n idUnidadeMedida: this.classificacao?.idUnidadeMedidaDefault ?? 0\r\n });\r\n this.form.updateValueAndValidity();\r\n this.form.markAsPristine();\r\n res.objecto.codUnidade = this.unidades.find(u => u.idUnidade === res.objecto.idUnidadeMedida).codUnidade;\r\n this.modalRef.close(res.objecto);\r\n },\r\n err => {\r\n this.loading = false;\r\n this.alertService.notificar(err.error?.mensagem, false, 4000);\r\n })\r\n );\r\n }\r\n\r\n seleccionarClassificacao(classificacao: ArtigoClassificacao) {\r\n this.selecionado = this.selecionado ? this.selecionado : !this.selecionado;\r\n this.classificacao = classificacao;\r\n if (classificacao.codigoTamanho > 0) {\r\n this.f['codigoArtigo'].addValidators([\r\n Validators.minLength(classificacao.codigoTamanho), Validators.maxLength(classificacao.codigoTamanho)\r\n ]);\r\n this.f['codigoArtigo'].updateValueAndValidity();\r\n }\r\n if (classificacao.codigoSequencial) {\r\n this.artigoService.getCodigo(classificacao.idClassificacao).subscribe({\r\n next: res => this.f['codArtigo'].patchValue(res.objecto),\r\n error: err => {\r\n console.error(err);\r\n this.alertService.notificar(err.error?.mensagem || 'Falha inesperada ao gerar o código');\r\n }\r\n });\r\n }\r\n this.f['idImposto'].patchValue(classificacao.idIva ?? 0);\r\n this.tituloModal = 'Adicionar ' + (classificacao?.classificacaoS ?? '');\r\n this.setNaturezas(classificacao?.codNatureza);\r\n this.setTipos(classificacao?.idClassificacao, this.codIdioma);\r\n this.setEstados(classificacao.idClassificacao);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subs.forEach(s => s.unsubscribe());\r\n }\r\n\r\n aoSeleccionarTipoArtigo(tipoArtigo: any) {\r\n if (this.classificacao.codigoSequencial && this.classificacao.codigoAno && !this.classificacao.codigoTipo) {\r\n this.getCodigoArtigo(this.classificacao, Util.strParaDataISO(this.dataHoje), tipoArtigo.idTipoArtigo);\r\n }\r\n }\r\n\r\n get f() {\r\n return this.form.controls;\r\n }\r\n}\r\n","
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n

    \r\n Aguarde...\r\n {{ tituloModal }}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    1\" class=\"flex-y-center\"\r\n style=\"justify-content: center;\">\r\n \r\n
    \r\n
    \r\n
    \r\n
    1)\" fxFlex=\"100\" fxFlex.xl=\"33.33\" fxFlex.lg=\"33.33\"\r\n fxFlex.md=\"100\" class=\"px-1 pb-03\" [class.campo-inactivo]=\"!classificacao\">\r\n \r\n {{ classificacao?.classificacaoP }}\r\n \r\n {{ nat?.nome }}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n {{ classificacao?.nomeTipo }}\r\n \r\n Seleccione o tipo\r\n {{ tipo?.tipoArtigo }}\r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n Código\r\n 0 ? classificacao?.codigoTamanho : 15\"\r\n required [appInputFormat]=\"format.Cod\"\r\n placeholder=\"Cod. Artigo\"/>\r\n \r\n \r\n O código deve ter {{ classificacao?.codigoTamanho }} caracteres!\r\n \r\n
    \r\n\r\n
    \r\n \r\n Designação\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Unidade\r\n \r\n {{ unidade?.unidadePlural }}\r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Preço\r\n \r\n \r\n
    \r\n
    \r\n \r\n IVA*\r\n \r\n \r\n {{ iva.codImposto }} -{{ iva.taxa }}% - {{ iva.descricao }}\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n Gestão de Stocks\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

    Todos os campos marcados com\r\n asterisco são obrigatórios!

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, Inject, OnDestroy} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {NotificacaoService} from '../../../../shared/services/notificacao/notificacao.service';\r\nimport {FinancasService} from '../../../../shared/services/financas/financas.service';\r\nimport {FormControl, Validators} from '@angular/forms';\r\nimport {Subscription} from 'rxjs/internal/Subscription';\r\n\r\n@Component({\r\n selector: 'modal-adicionar-motivo-anulacao',\r\n template: `\r\n
    \r\n \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n

    \r\n Adicionar motivo da anulação\r\n

    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n Motivo\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n `\r\n}) export class ModalAdicionarMotivoAnulacaoComponent implements OnDestroy {\r\n motivoForm = new FormControl();\r\n subs: Subscription[] = [];\r\n codEstadoAnulado = 'A';\r\n activarLoader = false;\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public dados: any,\r\n private alertService: NotificacaoService,\r\n private financaService: FinancasService,\r\n private modalRef: MatDialogRef) { }\r\n\r\n adicionarMotivo() {\r\n if (!this.motivoForm.value) {\r\n this.motivoForm.setValidators([Validators.required]);\r\n this.motivoForm.markAsTouched({onlySelf: true});\r\n this.motivoForm.updateValueAndValidity({onlySelf: true});\r\n this.alertService.notificar('Preencha o motivo da anulação', false, 10000);\r\n return false;\r\n }\r\n const modelo = {\r\n CodEstadoDocumento: this.codEstadoAnulado,\r\n MotivoEstado: this.motivoForm.value\r\n };\r\n this.activarLoader = true;\r\n this.subs.push(\r\n this.financaService.gravarMotivo(modelo).subscribe((res: any) => {\r\n if(!res.mensagem) {\r\n this.alertService.notificar('Motivo adiconado com sucesso!', true, 3000);\r\n } else {\r\n this.alertService.notificar(res.mensagem, true, 3000);\r\n }\r\n // this.alertService.notificar(JSON.stringify(res), true, 6000);\r\n this.activarLoader = false;\r\n this.motivoForm.reset();\r\n }, error => {\r\n this.activarLoader = false;\r\n this.alertService.notificar(JSON.stringify(error), false, 3000);\r\n })\r\n );\r\n\r\n } // Fim\r\n ngOnDestroy() {\r\n if (this.subs && this.subs.length > 0) {\r\n this.subs.forEach(sub => {sub.unsubscribe(); });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ClientesService } from '../../../../shared/services/clientes-service/clientes.service';\r\nimport { horasEvento } from '../../../../shared/fake.db/data';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MoradaCliente } from '../../../../shared/models/clientes/morada-cliente';\r\nimport { formatDate } from '@angular/common';\r\nimport { NotificacaoService } from '../../../../shared/services/notificacao/notificacao.service';\r\nimport { Armazem } from 'app/shared/models/artigos/armazem';\r\nimport moment from 'moment';\r\nimport { CargaDescarga } from '../../../../shared/models/factura/carga-descarga';\r\ninterface Hora {\r\n id: number;\r\n valor: string;\r\n}\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'modal-carga-descarga',\r\n template: `\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n

    Carga

    \r\n
    \r\n
    \r\n
    \r\n \r\n Cod. armazém\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Nome do armazém\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n País\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Província\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Município\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Morada\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n *Data de carga\r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n *Hora da carga\r\n \r\n arrow_drop_down\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n \r\n
    \r\n \r\n Seleccione a hora\r\n \r\n
    \r\n \r\n \r\n {{hora.valor}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n Matrícula\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n

    Descarga

    \r\n
    \r\n
    \r\n
    \r\n \r\n Endereço\r\n \r\n \r\n \r\n
    \r\n \r\n Designação do endereço\r\n \r\n
    \r\n \r\n \r\n {{morada.descricaoEndereco}}\r\n {{ morada.moradaEndereco}}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n País\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Província\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Município\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n Morada\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n *Data de descarga \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n *Hora da carga\r\n \r\n arrow_drop_down\r\n \r\n \r\n \r\n
    \r\n \r\n Seleccione a hora\r\n \r\n
    \r\n \r\n \r\n {{hora.valor}}\r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n `,\r\nstyles: [`.campo-inactivo {pointer-events: none!important;}`]\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class ModalCargaDescarga implements OnInit {\r\n formCarga: FormGroup;\r\n limpar: any;\r\n moradasCliente: MoradaCliente[] = [];\r\n moradasCLIAutoComplete: MoradaCliente[] = [];\r\n listaHorasAutoComplete: Hora[] = [];\r\n horasCargaAutoComplete: Hora[] = [];\r\n horasDescargaAutoComplete: Hora[] = [];\r\n moradaSelecionada: MoradaCliente;\r\n modoConsulta: boolean;\r\n dataHoraCarga = new FormControl();\r\n dataHoraDescarga = new FormControl();\r\n matriculaCarga = new FormControl();\r\n cargaDescarga?: CargaDescarga;\r\n horas = horasEvento;\r\n armazem: Armazem;\r\n morada!: MoradaCliente;\r\n constructor(@Inject(MAT_DIALOG_DATA) public dados: any,\r\n private modalRef: MatDialogRef,\r\n private clienteService: ClientesService,\r\n private snackService: NotificacaoService,\r\n private fb: FormBuilder,\r\n private snack: NotificacaoService) {\r\n this.armazem = dados?.armazemCarga;\r\n this.morada = dados?.moradaCliente;\r\n this.moradasCliente = dados?.moradasCliente;\r\n this.modoConsulta = dados?.modoConsulta;\r\n if (dados && dados.cargaDescarga) {\r\n if (dados && dados.moradasCliente\r\n && dados.moradasCliente.length > 0\r\n && dados.cargaDescarga && dados.cargaDescarga.idEnderecoDescarga) {\r\n this.moradaSelecionada = dados.moradasCliente.find(x => x.idEnderecoCliente === dados.cargaDescarga.idEnderecoDescarga);\r\n }\r\n this.formCarga = this.updateForm(dados.cargaDescarga);\r\n } else {\r\n if (dados && dados.moradasCliente && dados.moradasCliente.length > 0 && dados.moradasCliente.length === 1) {\r\n this.moradaSelecionada = dados.moradasCliente[0];\r\n }\r\n this.formCarga = this.inicForm();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n // this.getMoradaSCliente();\r\n }\r\n\r\n inicForm() {\r\n return this.fb.group({\r\n carga: this.fb.group({\r\n dataCarga: [''],\r\n horaCarga: [''],\r\n matriculaCarga: [''],\r\n codigoArmazem: this.armazem && this.armazem.codigoArmazem,\r\n designacao: this.armazem.designacao,\r\n pais: this.armazem.pais,\r\n provincia: this.armazem.provincia,\r\n municipio: this.armazem.municipio,\r\n morada: this.armazem.morada,\r\n }),\r\n descarga: this.fb.group({\r\n dataDescarga: [''],\r\n horaDescarga: [''],\r\n descricaoEndereco: this.moradaSelecionada?.descricaoEndereco,\r\n idEnderecoCliente: this.moradaSelecionada?.idEnderecoCliente,\r\n pais: this.moradaSelecionada?.codPaisMorada,\r\n codPaisMorada: this.moradaSelecionada?.codPaisMorada,\r\n paisMorada: this.moradaSelecionada?.paisMorada,\r\n provinciaMorada: this.moradaSelecionada?.provinciaMorada,\r\n idProvinciaMorada: this.moradaSelecionada?.idProvinciaMorada,\r\n municipioMorada: this.moradaSelecionada?.municipioMorada,\r\n idMunicipioMorada: this.moradaSelecionada?.idMunicipioMorada,\r\n moradaEndereco: this.moradaSelecionada?.moradaEndereco,\r\n })\r\n });\r\n }\r\n\r\n updateForm(carga: CargaDescarga) {\r\n this.dataHoraCarga.setValue(carga.dataHoraCarga);\r\n this.dataHoraDescarga.setValue(carga.dataHoraDescarga);\r\n return this.fb.group({\r\n carga: this.fb.group({\r\n dataCarga: carga && carga.dataHoraCarga ? carga.dataHoraCarga : '',\r\n horaCarga: carga && carga.dataHoraCarga ? formatDate(carga.dataHoraCarga, 'HH:mm', 'pt') : '',\r\n matriculaCarga: carga && carga.matricula ? carga.matricula : '',\r\n codigoArmazem: carga && carga.codArmazem ? carga.codArmazem : '',\r\n designacao: carga && carga.nomeArmazem ? carga.nomeArmazem : '', // this.armazem.designacao,\r\n pais: carga && carga.paisArmazem ? carga.paisArmazem : '',\r\n provincia: carga && carga.provinciaArmazem ? carga.provinciaArmazem : '',\r\n // municipio: carga && carga. ? carga.provinciaArmazem : '',\r\n municipio: '',\r\n morada: carga && carga.moradaArmazem ? carga.moradaArmazem : '',\r\n }),\r\n descarga: this.fb.group({\r\n dataDescarga: carga && carga.dataHoraDescarga ? carga.dataHoraDescarga : '',\r\n horaDescarga: carga && carga.dataHoraDescarga ? formatDate(carga.dataHoraDescarga, 'HH:mm', 'pt') : '',\r\n descricaoEndereco: carga && carga.nomeEndereco ? carga.nomeEndereco : '',\r\n idEnderecoCliente: carga && carga.idEnderecoDescarga ? carga.idEnderecoDescarga : '',\r\n pais: carga && carga.paisDescarga ? carga.paisDescarga : '',\r\n codPaisMorada: carga && carga.paisDescarga ? carga.paisDescarga : '',\r\n paisMorada: carga && carga.paisDescarga ? carga.paisDescarga : '',\r\n provinciaMorada: carga && carga.provinciaDescarga ? carga.provinciaDescarga : '',\r\n idProvinciaMorada: null,\r\n municipioMorada: '',\r\n idMunicipioMorada: null,\r\n moradaEndereco: carga && carga.moradaDescarga ? carga.moradaDescarga : '',\r\n })\r\n });\r\n }\r\n\r\n get fbGroupCarga() {\r\n return this.formCarga.get('carga') as FormGroup;\r\n }\r\n\r\n get fbGroupDescarga() {\r\n return this.formCarga.get('descarga') as FormGroup;\r\n }\r\n\r\n aoSelecMorada(morada: MoradaCliente) {\r\n if (morada) {\r\n this.moradaSelecionada = morada;\r\n this.fbGroupDescarga.get('idEnderecoCliente').setValue(morada.idEnderecoCliente);\r\n this.fbGroupDescarga.get('pais').setValue(morada.codPaisMorada);\r\n this.fbGroupDescarga.get('codPaisMorada').setValue(morada.codPaisMorada);\r\n this.fbGroupDescarga.get('paisMorada').setValue(morada.paisMorada);\r\n this.fbGroupDescarga.get('provinciaMorada').setValue(morada.provinciaMorada);\r\n this.fbGroupDescarga.get('idProvinciaMorada').setValue(morada.idProvinciaMorada);\r\n this.fbGroupDescarga.get('municipioMorada').setValue(morada.municipioMorada);\r\n this.fbGroupDescarga.get('municipioMorada').setValue(morada.municipioMorada);\r\n this.fbGroupDescarga.get('idMunicipioMorada').setValue(morada.idMunicipioMorada);\r\n this.fbGroupDescarga.get('moradaEndereco').setValue(morada.moradaEndereco);\r\n this.fbGroupDescarga.get('descricaoEndereco').setValue(morada.descricaoEndereco);\r\n }\r\n }\r\n\r\n\r\n aoSelecHoraCarga(dataCarga: any, horaCarga?: any) {\r\n if (!this.formCarga.get('carga').value.dataCarga) {\r\n // this.snackService.notificar('Seleccione a data de carga', false, 6000);\r\n return;\r\n }\r\n const data = formatDate(dataCarga, 'yyy-MM-dd', 'pt');\r\n\r\n if (this.fbGroupCarga.value.horaCarga && this.fbGroupCarga.value.horaCarga.length > 0) {\r\n this.dataHoraCarga.setValue(data + 'T' + this.fbGroupCarga.value.horaCarga);\r\n }\r\n\r\n if (horaCarga && horaCarga.value && horaCarga.value.length > 0) {\r\n this.dataHoraCarga.setValue(data + 'T' + horaCarga.value);\r\n }\r\n\r\n if (data && !this.fbGroupCarga.value.horaCarga && horaCarga && !horaCarga.value) {\r\n this.dataHoraCarga.setValue(data + 'T' + '00');\r\n }\r\n\r\n }\r\n\r\n aoSelecHoraDescarga(dataDescarga: any, horaDescarga?: any) {\r\n if (!this.formCarga.get('descarga').value.dataDescarga) {\r\n // this.snackService.notificar('Seleccione a data de descarga', false, 6000);\r\n return;\r\n }\r\n\r\n const data = formatDate(dataDescarga, 'yyy-MM-dd', 'pt');\r\n if (this.fbGroupDescarga.value.horaDescarga && this.fbGroupDescarga.value.horaDescarga.length > 0) {\r\n this.dataHoraDescarga.setValue(data + 'T' + this.fbGroupDescarga.value.horaDescarga);\r\n }\r\n if (horaDescarga && horaDescarga.value && horaDescarga.value.length > 0) {\r\n this.dataHoraDescarga.setValue(data + 'T' + horaDescarga.value);\r\n }\r\n if (data && !this.fbGroupDescarga.value.horaDescarga && horaDescarga && !horaDescarga.value) {\r\n this.dataHoraDescarga.setValue(data + 'T' + '00');\r\n }\r\n}\r\n filtrarHora(event: any, pontoOrigem: number) {\r\n const termo = event.target.value;\r\n if (termo && termo.trim().length > 0 && this.horas && this.horas.length > 0) {\r\n if (pontoOrigem === 1) {\r\n this.listaHorasAutoComplete = this.horas.filter((x) => (x.valor && x.valor.toLowerCase().includes(termo.toLowerCase())));\r\n }\r\n if (pontoOrigem === 2) {\r\n this.horasDescargaAutoComplete = this.horas.filter((x) => (x.valor && x.valor.toLowerCase().includes(termo.toLowerCase())));\r\n }\r\n } else {\r\n if (pontoOrigem === 1) {\r\n this.listaHorasAutoComplete = this.horas;\r\n }\r\n if (pontoOrigem === 2) {\r\n this.horasDescargaAutoComplete = this.horas;\r\n }\r\n }\r\n }\r\n\r\n//\r\n filtrarMorada(event: any) {\r\n const termo = event.target.value;\r\n if (termo && termo.trim().length > 0 && this.moradasCliente && this.moradasCliente.length > 0) {\r\n this.moradasCLIAutoComplete = this.moradasCliente.filter(\r\n (x) =>\r\n (x.moradaEndereco &&\r\n x.moradaEndereco.toLowerCase().includes(termo.toLowerCase())) ||\r\n x.descricaoEndereco && x.descricaoEndereco.toLowerCase().includes(termo.toLowerCase()) ||\r\n x.codPaisMorada && x.codPaisMorada.toLowerCase().includes(termo.toLowerCase()) ||\r\n x.provinciaMorada && x.provinciaMorada.toLowerCase().includes(termo.toLowerCase()) ||\r\n x.municipioMorada && x.municipioMorada.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n } else {\r\n this.moradasCLIAutoComplete = this.moradasCliente;\r\n }\r\n }\r\n activarLista() {\r\n this.moradasCLIAutoComplete = this.moradasCliente;\r\n }\r\n\r\n activarListaHoras(pontoOrigem: number) {\r\n if (pontoOrigem === 1) {\r\n this.listaHorasAutoComplete = this.horas;\r\n }\r\n if (pontoOrigem === 2) {\r\n this.horasDescargaAutoComplete = this.horas;\r\n }\r\n }\r\n\r\nfecharModal() {\r\n if (!this.dataHoraCarga.value) {\r\n this.snack.notificar('Seleccione a data e hora de carga', false, 7000);\r\n return;\r\n }\r\n\r\n if (!this.fbGroupCarga.get('horaCarga').value) {\r\n this.snack.notificar('Seleccione a data e hora de carga', false, 7000);\r\n return;\r\n }\r\n\r\n if (this.moradasCliente && this.moradasCliente.length > 0 && !this.moradaSelecionada && !this.dados.cargaDescarga) {\r\n this.snack.notificar('Seleccione a morada', false, 7000);\r\n return;\r\n }\r\n\r\n if (!this.moradaSelecionada && !this.dados.cargaDescarga) {\r\n this.snack.notificar('Está em falta a morada do cliente', false, 7000);\r\n return;\r\n }\r\n\r\n if (!this.dataHoraDescarga.value) {\r\n this.snack.notificar('Seleccione a data e hora de descarga', false, 7000);\r\n return;\r\n }\r\n\r\n if (!this.fbGroupDescarga.get('horaDescarga').value) {\r\n this.snack.notificar('Seleccione a data e hora de descarga', false, 7000);\r\n return;\r\n }\r\n\r\n\r\n if (moment(this.dataHoraCarga.value).isSameOrAfter(moment(this.dataHoraDescarga.value))) {\r\n this.snack.notificar('A data de carga deve ser inferior a data de descarga');\r\n return;\r\n }\r\n\r\n\r\n this.modalRef.close({\r\n idEnderecoDescarga: this.formCarga.get('descarga').value.idEnderecoCliente,\r\n cargaDescarga: {\r\n 'idArmazemCarga': this.armazem.idArmazem,\r\n 'codArmazem': this.armazem.codigoArmazem,\r\n 'nomeArmazem': this.armazem.designacao,\r\n 'paisArmazem': this.armazem.pais,\r\n 'provinciaArmazem': this.armazem.provincia,\r\n 'zonaArmazem': '',\r\n 'moradaArmazem': this.armazem.morada,\r\n 'dataHoraCarga': this.dataHoraCarga.value,\r\n 'matricula': this.formCarga.get('carga').value.matriculaCarga,\r\n 'idEnderecoDescarga': this.formCarga.get('descarga').value.idEnderecoCliente,\r\n 'nomeEndereco': this.moradaSelecionada.descricaoEndereco,\r\n 'paisDescarga': this.moradaSelecionada.paisMorada,\r\n 'provinciaDescarga': this.moradaSelecionada.provinciaMorada,\r\n 'zonaDescarga': '',\r\n 'moradaDescarga': this.moradaSelecionada.moradaEndereco,\r\n 'dataHoraDescarga': this.dataHoraDescarga.value,\r\n }\r\n });\r\n}\r\n}\r\n","import {Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output} from '@angular/core';\r\nimport {FormControl} from '@angular/forms';\r\nimport {ArtigosFacturacao} from '../../../../shared/models/artigos/artigosfacturacao';\r\nimport {Aplicacao} from '../../../../shared/models/aplicacao/aplicacao';\r\nimport {Subscription} from 'rxjs';\r\nimport {Empresa} from '../../../../shared/models/empresa/empresa';\r\nimport {MAT_DIALOG_DATA, MatDialog, MatDialogRef} from '@angular/material/dialog';\r\nimport {ArtigosService} from '../../../../shared/services/artigos/artigos.service';\r\nimport {ArtigoFiltros} from '../../../../shared/models/artigos/Filtro/artigofiltro';\r\nimport {ModalAdicionarArtigoFaComponent} from '../modal-adicionar-artigo-fa/modal-adicionar-artigo-fa.component';\r\nimport {LoginService} from 'app/shared/services/aplicacao-service/login.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'modal-pesquisa-artigos-fa',\r\n templateUrl: './modal-pesquisa-artigos-fa.component.html',\r\n styleUrls: ['./modal-pesquisa-artigos-fa.component.scss']\r\n})\r\nexport class ModalPesquisaArtigosFaComponent implements OnInit, OnDestroy {\r\n opcoes = {\r\n P: 'Produtos',\r\n S: 'Serviços',\r\n null: 'Artigos'\r\n };\r\n checkBox = new FormControl();\r\n listaArtigos: ArtigosFacturacao[] = [];\r\n model = '';\r\n param;\r\n todosArtigos = [];\r\n selecionados: boolean;\r\n selected = [];\r\n checked: number;\r\n aplicacao: Aplicacao;\r\n listaDados: any[] = [];\r\n idIdiomaAplicacao = 1;\r\n activarProgresso = true;\r\n subscricao: Subscription[] = [];\r\n empresa: Empresa = {};\r\n activarLoader: boolean;\r\n tituloModal: string;\r\n gereStock: boolean;\r\n @Input() tipoArtigo = '';\r\n @Output() aoActivarAdicaoArtigo = new EventEmitter();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n public modalRef: MatDialogRef,\r\n private artigoService: ArtigosService,\r\n private loginService: LoginService,\r\n private modal: MatDialog\r\n ) {\r\n this.gereStock = data?.gereStock??false;\r\n this.tituloModal = data?.msg;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.param = 2;\r\n if (this.data.artigosFA) {\r\n this.listaArtigos = this.data.artigosFA;\r\n this.listaDados = this.data.artigosFA;\r\n }else{\r\n this.getArtigos();\r\n }\r\n if (this.data.empresa) {\r\n this.empresa = this.data.empresa;\r\n }\r\n }\r\n\r\n getArtigosFacturacao() {\r\n let modelo = this.loginService.getUtilizadorSessao();\r\n\r\n this.subscricao.push(\r\n this.artigoService\r\n .getArtigosVendas(modelo)\r\n .subscribe((res: any) => {\r\n if (res) {\r\n if (this.data && this.data.tipoDocumento.codNatureza === 'P') {\r\n\r\n this.listaArtigos = res.objecto.filter(\r\n (x) => x.codNatureza.toUpperCase() === 'P'\r\n );\r\n this.listaDados = this.listaArtigos;\r\n } else if (\r\n this.data &&\r\n this.data.tipoDocumento.codNatureza === 'S'\r\n ) {\r\n this.listaArtigos = res.objecto.filter(\r\n (x) => x.codNatureza.toUpperCase() === 'S'\r\n );\r\n this.listaDados = this.listaArtigos;\r\n } else {\r\n this.listaArtigos = res.objecto;\r\n this.listaDados = this.listaArtigos;\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n getTodosArtigos() {\r\n const modelo = new ArtigoFiltros(1, 'pt');\r\n this.artigoService.getArtigos(modelo).subscribe(\r\n (res) => {\r\n if (res) {\r\n this.listaArtigos = res;\r\n this.listaDados = res;\r\n }\r\n },\r\n (error) => {\r\n }\r\n );\r\n }\r\n\r\n getArtigos() {\r\n if (this.data) {\r\n if (this.data.tipoArtigos === 1) {\r\n this.getTodosArtigos();\r\n } else {\r\n this.getArtigosFacturacao();\r\n }\r\n }\r\n }\r\n\r\n confirmar(items?: any) {\r\n this.modalRef.close({itens: items});\r\n }\r\n\r\n adicionarItem(item: any, index?: number) {\r\n this.checked = null;\r\n this.todosArtigos = [];\r\n this.todosArtigos.push(item);\r\n this.checked = index;\r\n }\r\n\r\n selecCodigo(item?: any) {\r\n this.adicionarItem(item);\r\n this.modalRef.close({itens: this.todosArtigos, param: this.data.param});\r\n }\r\n\r\n filtrarValores(event, opcao: number) {\r\n\r\n const termo = event.target.value;\r\n let lista = [];\r\n setTimeout(() => {\r\n if (termo) {\r\n switch (opcao) {\r\n // Filtrar codigo //\r\n case 1: {\r\n lista = this.listaDados.filter(\r\n (x) =>\r\n x.codArtigo !== null &&\r\n x.codArtigo.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n break;\r\n }\r\n\r\n case 2: {\r\n lista = this.listaDados.filter(\r\n (x) =>\r\n x.tipo !== null &&\r\n x.tipo.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n break;\r\n }\r\n\r\n case 3: {\r\n lista = this.listaDados.filter(\r\n (x) => {\r\n if (x.tipoArtigos === 1) {\r\n return (x?.descricao !== null && x?.descricao?.toLowerCase()?.includes(termo.toLowerCase()));\r\n } else {\r\n return (x?.artigo !== null && x?.artigo?.toLowerCase()?.includes(termo.toLowerCase()));\r\n }\r\n }\r\n );\r\n break;\r\n }\r\n // Filtrar Estado //\r\n case 4: {\r\n lista = this.listaDados.filter(\r\n (x) =>\r\n x.estado !== null &&\r\n x.estado.toLowerCase().includes(termo.toLowerCase())\r\n );\r\n break;\r\n }\r\n }\r\n\r\n this.listaArtigos = lista;\r\n } else {\r\n this.listaArtigos = [];\r\n this.listaArtigos = [...this.listaDados];\r\n }\r\n }, 900);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscricao.length > 0) {\r\n this.subscricao.forEach((sub) => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n adicionarNovoArtigo() {\r\n this.modal.open(ModalAdicionarArtigoFaComponent, {\r\n width: '60vw',\r\n maxHeight: '90vh',\r\n data: {\r\n tipoDocumento: this.data.tipoDocumento\r\n }\r\n });\r\n this.modalRef.close();\r\n this.aoActivarAdicaoArtigo.emit(true);\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {{tituloModal}}\r\n

    \r\n
    \r\n\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    Código
    \r\n
    Tipo
    \r\n
    Designação
    \r\n
    UN
    \r\n
    Preço {{empresa.codMoeda1}}
    \r\n
    Iva (%)
    \r\n\r\n
    Gere
    Stocks
    \r\n
    Estado
    \r\n
    Sujeito a
    Retenções
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    .
    \r\n
    .
    \r\n
    .
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    .
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {{ data.tipoArtigos === 1 ? item.codArtigo : item?.codArtigo }}\r\n
    \r\n
    {{item?.tipo}}
    \r\n
    {{ data.tipoArtigos === 1 ? item.descricao : item?.artigo }}
    \r\n
    {{ item?.codUnidade }}
    \r\n\r\n
    {{ item?.preco1 | currency: \" \" }}
    \r\n
    {{ item?.taxaIva | currency: ' ' }}
    \r\n
    \r\n
    \r\n \r\n {{ item?.geridoPorStocks === true? 'Sim' :\r\n item?.geridoPorStocks === false ? 'Não':'' }}\r\n
    \r\n
    \r\n
    {{item?.estado}}
    \r\n
    \r\n
    \r\n {{ item?.sujeitoARetencao === true? 'Sim' : \r\n item?.sujeitoARetencao === false ? 'Não' : '' }}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import {Component, Inject, OnDestroy, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {FinancasService} from '../../../../shared/services/financas/financas.service';\r\nimport {Subscription} from 'rxjs';\r\nimport {FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {Moedas} from '../../../../shared/models/aplicacao/moedas';\r\nimport {AplicacaoService} from '../../../../shared/services/aplicacao-service/aplicacao.service';\r\nimport {LoginService} from '../../../../shared/services/aplicacao-service/login.service';\r\nimport {FiltroTaxasCambio} from '../../../../shared/models/financas/filtro-taxas-cambio';\r\nimport {formatDate} from '@angular/common';\r\nimport {TaxasCambio} from '../../../../shared/models/financas/taxas-cambio';\r\nimport {UtilizadorSessao} from '../../../../shared/models/aplicacao/utilizador-sessao';\r\nimport {NotificacaoService} from '../../../../shared/services/notificacao/notificacao.service';\r\nimport moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-pesquisar-cambio',\r\n templateUrl: './pesquisar-cambio.component.html',\r\n styleUrls: ['./pesquisar-cambio.component.scss']\r\n})\r\nexport class PesquisarCambioComponent implements OnInit, OnDestroy {\r\n cambios: TaxasCambio[] = [];\r\n cambio: any = {};\r\n subscricao: Subscription[] = [];\r\n moedaLocal: any;\r\n moedaPretendida: any;\r\n formCambio: FormGroup;\r\n formAdicionarCambio: FormGroup;\r\n moedas: Moedas[] = [];\r\n inverterMoeda: boolean;\r\n utilizadorSessao: UtilizadorSessao;\r\n dataHoje = new Date();\r\n dtInicio: Date | string;\r\n dtFim: Date | string;\r\n dataMax = moment().add(1, 'days');\r\n diaEmSegundos = 1000 * 60 * 60 * 24;\r\n haTrintaDias = new Date(this.dataHoje.getTime() - 30 * this.diaEmSegundos);\r\n filtroPesquisaTaxasCambio: FiltroTaxasCambio;\r\n activarLoader = true;\r\n modoAdicaoCambio = false;\r\n conversaoDirecta: any;\r\n legendaTaxaCambio: string;\r\n ultimos30Dias = {\r\n inicio: moment().subtract(29, 'days'),\r\n fim: moment()\r\n };\r\n\r\n desactivar: boolean;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public objecto: any,\r\n private financaService: FinancasService,\r\n private fb: FormBuilder,\r\n private loginService: LoginService,\r\n private modalRef: MatDialogRef,\r\n private alertService: NotificacaoService,\r\n private aplicacaoService: AplicacaoService) {\r\n this.utilizadorSessao = loginService.getSessaoUtilizador();\r\n this.filtroPesquisaTaxasCambio = {\r\n utilizador: this.utilizadorSessao\r\n };\r\n this.formAdicionarCambio = this.fb.group({\r\n IdMoedaLocal: [''],\r\n IdMoedaPretendida: [''],\r\n TaxaCambio: [''],\r\n DataInicio: [''],\r\n dataCambio: [''],\r\n });\r\n this.legendaTaxaCambio = objecto.legendaTaxaCambio;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscricao.push(this.aplicacaoService.getMoedas().subscribe((moedas) => {\r\n this.moedas = moedas;\r\n this.moedaLocal = this.moedas.find(x => x.id === this.objecto.idMoedaEmpresa);\r\n this.moedaPretendida = this.moedas.find(x => x.id === this.objecto.idMoedaPretendida);\r\n }));\r\n\r\n\r\n this.formCambio = this.fb.group({\r\n IdMoedaLocal: [this.objecto ? this.objecto.idMoedaEmpresa : ''],\r\n IdMoedaPretendida: [this.objecto ? this.objecto.idMoedaPretendida : ''],\r\n DataInicio: [this.objecto ? this.objecto.dataDoc : null],\r\n DataFim: [this.objecto ? this.objecto.dataVenc : null],\r\n IncluiTaxaInversa: [''],\r\n });\r\n\r\n this.conversaoDirecta = this.objecto.conversaoDirecta;\r\n if (!this.conversaoDirecta) {\r\n this.inverterCambio();\r\n }\r\n }\r\n\r\n filtrarMoeda(moedas: any[]): any[] {\r\n return moedas.filter(moeda => moeda.id !== 1);\r\n }\r\n\r\n\r\n ObterTaxaCambioMomento(modelo) {\r\n this.subscricao.push(\r\n this.financaService\r\n .getTaxasCambio(\r\n modelo\r\n )\r\n .subscribe(\r\n (res) => {\r\n this.activarLoader = false;\r\n this.cambios = res;\r\n console.log(\"Cambios \",res);\r\n\r\n },\r\n (error) => {\r\n this.alertService.notificar(error?.error.mensagem);\r\n }\r\n ));\r\n }\r\n\r\n\r\n setDates(evento: any) {\r\n evento.fim;\r\n this.formCambio.get('DataInicio').setValue(evento.inicio);\r\n this.formCambio.get('DataFim').setValue(evento.fim);\r\n\r\n }\r\n\r\n getKeys(obj: any): string[] {\r\n return Object.keys(obj);\r\n }\r\n\r\n pesquisarCambio() {\r\n let dataInicio, dataFim;\r\n dataInicio = this.formCambio.value.DataInicio;\r\n dataFim = this.formCambio.value.DataFim;\r\n\r\n this.filtroPesquisaTaxasCambio = {\r\n idsMoedaLocal: [this.formCambio.value.IdMoedaLocal],\r\n idsMoedaPretendida: [this.formCambio.value.IdMoedaPretendida],\r\n intervalosData: [\r\n {\r\n operacao: 'BT',\r\n dataInicio: dataInicio,\r\n dataFim: dataFim\r\n }\r\n ],\r\n cambiosIndirectos: !this.formCambio.value.IncluiTaxaIndirecta,\r\n utilizador: this.utilizadorSessao\r\n };\r\n\r\n this.ObterTaxaCambioMomento(this.filtroPesquisaTaxasCambio);\r\n }\r\n\r\n filtrarValores($event: Event, number: number) {\r\n }\r\n\r\n selecCambio(valorCambio: any) {\r\n const modelo = {\r\n cambio: valorCambio,\r\n moedaEmpresa: this.inverterMoeda ? this.moedaPretendida : this.moedaLocal,\r\n moedaDocumento: this.inverterMoeda ? this.moedaLocal : this.moedaPretendida,\r\n taxaInvertida: this.inverterMoeda,\r\n };\r\n modelo.cambio.conversaoDirecta = this.conversaoDirecta;\r\n this.modalRef.close(modelo);\r\n }\r\n\r\n inverterCambio() {\r\n if (this.inverterMoeda) {\r\n this.conversaoDirecta = true;\r\n this.formCambio.get('IdMoedaLocal').setValue(this.objecto.idMoedaPretendida);\r\n this.formCambio.get('IdMoedaPretendida').setValue(this.objecto.idMoedaEmpresa);\r\n } else {\r\n this.conversaoDirecta = false;\r\n this.formCambio.get('IdMoedaLocal').setValue(this.objecto.idMoedaEmpresa);\r\n this.formCambio.get('IdMoedaPretendida').setValue(this.objecto.idMoedaPretendida);\r\n }\r\n this.inverterMoeda = !this.inverterMoeda;\r\n\r\n console.log(\"Cambios ::\",this.inverterMoeda);\r\n\r\n this.pesquisarCambio();\r\n }\r\n\r\n getData(event: any, opcao?: number) {\r\n const dtFim = new Date(this.formCambio.value.DataFim).getTime();\r\n const dtInicio = new Date(this.formCambio.value.DataInicio).getTime();\r\n if (opcao === 1) {\r\n if (dtFim && dtFim < dtInicio) {\r\n }\r\n }\r\n if (opcao === 2) {\r\n }\r\n }\r\n\r\n gravarCambio() {\r\n if (!this.formAdicionarCambio.value.IdMoedaLocal\r\n || !this.formAdicionarCambio.value.IdMoedaPretendida\r\n || !this.formAdicionarCambio.value.TaxaCambio\r\n || !this.formAdicionarCambio.value.dataCambio) {\r\n\r\n Object.keys(this.formCambio.controls).forEach(campo => {\r\n if (!this.formAdicionarCambio.get(campo).value) {\r\n this.formAdicionarCambio.get(campo).setValidators([Validators.required]);\r\n this.formAdicionarCambio.get(campo).markAsTouched({onlySelf: true});\r\n this.formAdicionarCambio.get(campo).updateValueAndValidity({onlySelf: true});\r\n return false;\r\n }\r\n });\r\n this.alertService.notificar('Por favor, preencha os campos em falta', false, 4000);\r\n return false;\r\n }\r\n this.desactivar = true;\r\n\r\n const moedaLocal = this.moedas.find(x => x.id === this.formAdicionarCambio.value.IdMoedaLocal);\r\n const moedaPretendida = this.moedas.find(x => x.id === this.formAdicionarCambio.value.IdMoedaPretendida);\r\n const dataRange = this.formAdicionarCambio.value.dataCambio;\r\n const modelo = {\r\n idMoedaLocal: this.formAdicionarCambio.value.IdMoedaLocal,\r\n codMoedaLocal: moedaLocal.codigo,\r\n idMoedaPretendida: this.formAdicionarCambio.value.IdMoedaPretendida,\r\n codMoedaPretendida: moedaPretendida.codigo,\r\n taxaCambio: this.formAdicionarCambio.value.TaxaCambio,\r\n dataCambio: formatDate(dataRange.inicio._d, 'yyyy-MM-ddTHH:mm:ss', 'pt-PT'),\r\n utilizador: this.utilizadorSessao,\r\n };\r\n this.activarLoader = true;\r\n this.financaService.gravarTaxasCambio(modelo).subscribe((res: any) => {\r\n this.desactivar = false;\r\n this.activarLoader = false;\r\n if (res.statusCode === 201) {\r\n this.formAdicionarCambio.reset();\r\n }\r\n this.alertService.notificar(res.mensagem, true, 4000);\r\n setTimeout(() => {\r\n this.modoAdicaoCambio = false;\r\n this.modalRef.updateSize('80vw', '70vh');\r\n });\r\n this.formCambio.reset();\r\n this.ObterTaxaCambioMomento(this.filtroPesquisaTaxasCambio);\r\n }, error => {\r\n this.activarLoader = false;\r\n if (error.status === 200) {\r\n this.formAdicionarCambio.reset();\r\n this.alertService.notificar(error.error.text, false, 4000);\r\n } else if (error.status === 418) {\r\n this.loginService.terminarSessao(error);\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 500) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 400) {\r\n this.alertService.notificar(JSON.stringify(error.error.mensagem), false, 5000);\r\n } else if (error.status === 404) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 403) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 405) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 407) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else if (error.status === 409) {\r\n this.alertService.notificar(JSON.stringify(error.error), false, 5000);\r\n } else {\r\n this.alertService.notificar(JSON.stringify(error), false, 15000);\r\n }\r\n this.desactivar = false;\r\n });\r\n }\r\n\r\n adicionarNovoCambio() {\r\n if (!this.modoAdicaoCambio) {\r\n this.modoAdicaoCambio = true;\r\n this.modalRef.updateSize('60vw', '55vh');\r\n } else {\r\n this.modoAdicaoCambio = false;\r\n this.modalRef.updateSize('80vw', '70vh');\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscricao.length > 0) {\r\n this.subscricao.forEach((sub) => {\r\n sub.unsubscribe();\r\n });\r\n }\r\n }\r\n\r\n\r\n resetarMP(event: any) {\r\n this.formCambio.get('IdMoedaLocal').setValue(event.value);\r\n this.formCambio.get('IdMoedaPretendida').reset();\r\n }\r\n\r\n aoSelecData(event: any) {\r\n\r\n }\r\n}\r\n","\r\n
    \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n

    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Moeda de \r\n \r\n \r\n {{moeda.codigo}}\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Moeda para \r\n \r\n \r\n {{moeda.codigo}}\r\n \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Taxa de Câmbio\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n Data Câmbio\r\n \r\n\r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n Moeda de\r\n \r\n \r\n {{moeda.codigo}}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n \r\n Moeda para \r\n \r\n {{ moeda.codigo }}\r\n \r\n \r\n
    \r\n\r\n\r\n \r\n\r\n \r\n\r\n
    \r\n Incluir taxas indirectas!\r\n
    \r\n \r\n \r\n
    \r\n\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    Moeda local
    \r\n
    Moeda pretendida
    \r\n
    Taxa de câmbio
    \r\n
    Data início
    \r\n
    Data fim
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {{cambio.codMoedaLocal}}
    \r\n
    {{cambio.codMoedaPretendida}}
    \r\n
    {{cambio.taxaCambio | number : '1.1-6'}}
    \r\n
    \r\n {{cambio.dataCambio | date: 'dd/MM/YYYY'}} -\r\n {{cambio.dataCambio | date: 'HH:mm'}}\r\n
    \r\n
    \r\n {{cambio.dataValidade | date: 'dd/MM/YYYY'}} -\r\n {{cambio.dataValidade | date: 'HH:mm'}}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n","import {Component, Input, OnInit} from '@angular/core';\r\nimport {FormGroup} from '@angular/forms';\r\nimport {Accao} from '../../../shared/models/ENUM';\r\nimport {MatSlideToggleChange} from '@angular/material/slide-toggle';\r\nimport {GaCampo, GaTipoDado} from '../../../shared/models/gestao-arquivos/ga-tipo';\r\nimport {Format} from '../../../shared/directives/input-format.directive';\r\nimport {MatDialog} from '@angular/material/dialog';\r\nimport {ModalAddValoresComponent} from '../modal-add-valores/modal-add-valores.component';\r\n\r\nconst FormNames = {\r\n id: 'id',\r\n nome: 'nome',\r\n nomeP: 'nomeP',\r\n activo: 'activo',\r\n tipo: 'tipo',\r\n porTipo: 'porTipo',\r\n select: 'select',\r\n insercaoMultipla: 'insercaoMultipla',\r\n usaCodigo: 'usaCodigo',\r\n disponivelLista: 'disponivelLista',\r\n min: 'min',\r\n max: 'max',\r\n numMin: 'numMin',\r\n numMax: 'numMax',\r\n obrigatorio: 'obrigatorio',\r\n valores: 'valores'\r\n};\r\n\r\nexport class DataTypes {\r\n static INTEIRO = 'INT';\r\n static BOOL = 'BOL';\r\n static TEXT = 'TXT';\r\n static DECIMAL = 'DEC';\r\n static DATE = 'DAT';\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'ga-tipo-campo',\r\n templateUrl: './ga-tipo-campo.component.html',\r\n styleUrls: ['./ga-tipo-campo.component.scss']\r\n})\r\nexport class GaTipoCampoComponent implements OnInit {\r\n @Input() campo!: FormGroup;\r\n @Input() action = '';\r\n @Input() tipos: GaTipoDado[] = [];\r\n @Input() context = '';\r\n readonly actions = Accao;\r\n readonly types = DataTypes;\r\n readonly formats = Format;\r\n readonly formNames: { [key: string]: string } = FormNames;\r\n\r\n static isPlural(campo: GaCampo) {\r\n return campo.select || campo.insercaoMultipla;\r\n }\r\n\r\n constructor(private dialog: MatDialog) {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n updateSelectFields(e: MatSlideToggleChange, campo: FormGroup) {\r\n campo.get(FormNames.usaCodigo).patchValue(e.checked && campo.get(FormNames.usaCodigo).value);\r\n campo.get(FormNames.insercaoMultipla).patchValue(e.checked && campo.get(FormNames.insercaoMultipla).value);\r\n this.resetNumInsercoes(campo);\r\n }\r\n\r\n resetNumInsercoes(campo: FormGroup) {\r\n campo.get(FormNames.numMin).reset();\r\n campo.get(FormNames.numMax).reset();\r\n }\r\n\r\n isPlural(campo: FormGroup) {\r\n return GaTipoCampoComponent.isPlural(campo.value);\r\n }\r\n\r\n adicionarOpcoes(campo: FormGroup) {\r\n const _ = this.dialog.open(ModalAddValoresComponent, {\r\n width: 'calc(70vw - 250px)',\r\n height: '75vh',\r\n data: {\r\n campo,\r\n action: this.action,\r\n }\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n
    \r\n \r\n Tipo de dados\r\n \r\n \r\n {{ t.nome }}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Seleção\r\n \r\n
    \r\n \r\n
    \r\n \r\n Usa Código\r\n \r\n
    \r\n \r\n
    \r\n \r\n Inserção Múltipla\r\n \r\n
    \r\n \r\n
    \r\n \r\n \r\n Nome {{ isPlural(campo) ? 'Singular' : '' }}\r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Nome Plural\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Valor Mínimo\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Valor Máximo\r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n Data Mínima\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Data Máxima\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n Tamanho\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n Inserções Mínima\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n Inserções Máxima\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Disponível Lista\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Obrigatório\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n Por Tipo\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n Activo\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n Valores\r\n ({{ campo.value.valores?.length ?? 0 }})\r\n \r\n
    \r\n
    \r\n
    \r\n","import {Component, Inject, OnInit} from '@angular/core';\r\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\r\nimport {FormArray, FormBuilder, FormGroup, Validators} from '@angular/forms';\r\nimport {Accao} from '../../../shared/models/ENUM';\r\nimport {Util} from '../../../shared/models/generico/util';\r\nimport {NotificacaoService} from '@services/notificacao/notificacao.service';\r\n\r\n@Component({\r\n selector: 'app-modal-add-valores',\r\n templateUrl: './modal-add-valores.component.html',\r\n styleUrls: ['./modal-add-valores.component.scss']\r\n})\r\nexport class ModalAddValoresComponent implements OnInit {\r\n form: FormGroup = this.fb.group({\r\n 'id': 0,\r\n 'idCampo': 0,\r\n 'valor': [null, Validators.required],\r\n 'codigo': null,\r\n 'activo': true\r\n });\r\n readonly actions = Accao;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private fb: FormBuilder,\r\n private alertService: NotificacaoService,\r\n public modalRef: MatDialogRef) {\r\n }\r\n\r\n get f() {\r\n return this.form.controls;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.f['codigo'].addValidators(this.data.campo.value.usaCodigo ? Validators.required : null);\r\n }\r\n\r\n cancelar() {\r\n this.modalRef.close(null);\r\n }\r\n\r\n addValor() {\r\n const ctrl = this.data.campo.get('valores');\r\n if ((ctrl.value as any[]).some(x => x.valor === this.form.value.valor && x.codigo === this.form.value.codigo)) {\r\n this.alertService.notificar(`Este valor de seleção já foi adicionado!`);\r\n return;\r\n }\r\n (ctrl as FormArray).push(this.newValor(this.form));\r\n this.form.reset({activo: true, id: 0});\r\n }\r\n\r\n removerValor(index: number) {\r\n const vs: FormArray = this.data.campo.get('valores');\r\n (this.data.campo.get('valoresRemovidos').value as number[]).push(vs.at(index).value.id);\r\n vs.removeAt(index);\r\n }\r\n\r\n private newValor(form: FormGroup) {\r\n return this.fb.group({\r\n 'id': form.value.id,\r\n 'idCampo': form.value.idCampo ?? 0,\r\n 'valor': [Util.parseValue(form.value.valor, this.data.campo.value?.codTipo), Validators.required],\r\n 'codigo': [form.value.codigo?.toUpperCase(), form.get('codigo').validator],\r\n 'activo': form.value.activo\r\n });\r\n }\r\n}\r\n","
    \r\n
    \r\n \r\n close\r\n \r\n
    \r\n
    \r\n

    Valores de seleção

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n","import { Component, ElementRef, EventEmitter, Input, Output } from '@angular/core';\r\nimport { PosUtilityService } from '../../pos-services/pos-utility.service';\r\nimport { KeyboardService } from '../../../../shared/keyboard/keyboard.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'pos-teclado-virtual',\r\n template: `\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n Teclado virtual\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n `,\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class PosTecladoVirtual {\r\n @Output() aoDeletar = new EventEmitter();\r\n @Output() aoPressTecla = new EventEmitter();\r\n @Output() aoResetar = new EventEmitter();\r\n @Output() aoFechar = new EventEmitter();\r\n @Input() inputHTMLActual: HTMLInputElement;\r\n @Input() tecladoLivre: boolean = true;\r\n @Input() tecladoActivo: any = {\r\n numerico: false,\r\n alpha: true\r\n };\r\n\r\n protected capsLockActiva = false;\r\n constructor(public posUtilityService: PosUtilityService, public keyboard: KeyboardService) {\r\n }\r\nfecharTeclado(){\r\n this.posUtilityService.mostrarTecladoAlpha$.next(false);\r\n}\r\n\r\n}\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'pos-modal-notify',\r\n template: `\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {{dadosModal?.titulo ?? ''}}  

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

    {{dadosModal?.info}}

    \r\n
    \r\n
    \r\n
    \r\n `,\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class PosModalNotifiy {\r\nconstructor(@Inject(MAT_DIALOG_DATA) public dadosModal: any,\r\n private dialogRef: MatDialogRef) {}\r\n\r\n fecharSnack() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'pos-container',\r\n template: '
    ',\r\n styles: [`\r\n \r\n `]\r\n// tslint:disable-next-line:component-class-suffix\r\n}) export class PosContainer {\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { LoginService } from 'app/shared/services/aplicacao-service/login.service';\r\nimport { LocalStoreService } from 'app/shared/services/local-store.service';\r\nimport { Utilizadores } from 'app/shared/models/aplicacao/utilizadores';\r\nimport { menuPOS } from 'app/views/pos/pos.deb/pos.deb';\r\nimport { PosUtilityService } from 'app/views/pos/pos-services/pos-utility.service';\r\nimport { PosIpcService } from '../../pos-services/pos-ipc.service';\r\nimport { PosService } from '@services/pos/pos.service';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'pos-navegacao',\r\n template: `\r\n
    \r\n
    \r\n
    \r\n \"Kiami\"\r\n
    \r\n \r\n
    \r\n
    \r\n

    {{(posUtilityService?.terminalEmUso$ | async)?.nomeTerminal}} +

    \r\n
    \r\n
    \r\n
    \r\n \r\n {{(posUtilityService?.terminalOperator$ | async)?.nome}} {{user?.username}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n `\r\n}) export class PosNavegacaoComponent implements OnInit {\r\n fullScreeOpen = false;\r\n menuPOS: any[] = menuPOS;\r\n terminalActivo: any;\r\n user: any;\r\n telaLojaActiva: boolean = true;\r\n constructor(\r\n public posUtilityService: PosUtilityService,\r\n public posService: PosService,\r\n public authService: LoginService,\r\n public ipcService: PosIpcService,\r\n public localStore: LocalStoreService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.user = this.authService.getUtilizadorSessao(); \r\n this.terminalActivo = JSON.parse(this.posUtilityService.getLocalTerminal());\r\n this.terminalActivo = JSON.parse(this.terminalActivo);\r\n this.posUtilityService.terminalEmUso$.next(this.terminalActivo);\r\n\r\n\r\n }\r\n\r\n openFullScreen() {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n if (!this.fullScreeOpen) {\r\n this.fullScreeOpen = true;\r\n this.posUtilityService.openFullScreen(true);\r\n } else {\r\n this.fullScreeOpen = false;\r\n this.posUtilityService.openFullScreen(false);\r\n }\r\n }\r\n }\r\n\r\n activarTecladoVirtual() {\r\n this.posUtilityService.mostrarTecladoAlpha$.next(true);\r\n this.posService.tecladovirtual_POS_Desktop().subscribe(res=>{\r\n \r\n });\r\n }\r\n\r\n sairPOS() {\r\n this.posUtilityService.clearLocalTerminal();\r\n this.fullScreeOpen = false;\r\n this.posUtilityService.openFullScreen(false);\r\n }\r\n}\r\n","import { Inject, Injectable, PLATFORM_ID } from '@angular/core';\r\ndeclare global {\r\n interface Window {\r\n electronAPI: {\r\n send: (chanell: string, data: any) => void;\r\n };\r\n }\r\n}\r\n@Injectable({\r\n providedIn: 'root'\r\n}) export class PosIpcService {\r\n\r\n // tslint:disable-next-line:no-shadowed-variable\r\n constructor() {\r\n\r\n }\r\n\r\n onBtnClick(): void {\r\n window.electronAPI.send('btn-click', 'Button clicked from Angular');\r\n }\r\n activarTecladoVirtual() {\r\n window.electronAPI.send('activate-keyboard', 'Activate POS KeyBoard');\r\n }\r\n send(channel: string, data: any) {\r\n window.electronAPI.send(channel, data);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { PosModalNotifiy } from 'app/views/pos/componentes/modais/pos-modal-notifiy/pos-modal-notifiy';\r\nimport { Utilizadores } from 'app/shared/models/aplicacao/utilizadores';\r\nimport { PosArtigoModel } from '../modelos/pos-artigo.model';\r\nimport { Util } from '../../../shared/models/generico/util';\r\nimport { ItemDocumento } from '../../../shared/models/item-documento';\r\nimport { FormBuilder } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PosUtilityService {\r\n artigosParaVenda$ = new BehaviorSubject([]);\r\n terminalEmUso$ = new BehaviorSubject(null);\r\n mostrarTecladoAlpha$ = new BehaviorSubject(false);\r\n mostrarTelaLoja$ = new BehaviorSubject(true);\r\n terminalOperator$ = new BehaviorSubject(null);\r\n localTerminalKey = 'pos_terminal';\r\n\r\n public static isNum(value: any): boolean {\r\n return !isNaN(parseFloat(value)) && isFinite(parseFloat(value));\r\n }\r\n\r\n \r\n constructor(private snack: MatSnackBar, private dialog: MatDialog, private fb: FormBuilder) { }\r\n\r\n openFullScreen(fullScreeOpen: boolean) {\r\n const body = document.querySelector('body');\r\n if (body) {\r\n if (fullScreeOpen) {\r\n body.requestFullscreen({navigationUI: 'hide'});\r\n } else {\r\n document.exitFullscreen();\r\n }\r\n }\r\n }\r\n\r\n getPOSOperatorFromLocal() {\r\n if (localStorage.getItem('_utilizador')) {\r\n this.terminalOperator$.next(JSON.parse(localStorage.getItem('_utilizador')));\r\n }\r\n }\r\n getLocalTerminal() {\r\n return localStorage.getItem(this.localTerminalKey);\r\n }\r\n setLocalTerminal(value: any) {\r\n localStorage.setItem(this.localTerminalKey, JSON.stringify(value));\r\n }\r\n clearLocalTerminal() {\r\n localStorage.removeItem(this.localTerminalKey);\r\n }\r\n\r\n posSnackToast(mensagem: string, res?: boolean, duracao?: number) {\r\n this.snack.open(\r\n mensagem,\r\n res ? '✔️' : '❌',\r\n {\r\n verticalPosition: 'top',\r\n duration: duracao <= 0 || !duracao ? 50000 : duracao,\r\n panelClass: 'pos-notify'\r\n }\r\n );\r\n }\r\n\r\n posDialogToast(titulo?: string, info?: string, res?: boolean) {\r\n this.dialog.open(\r\n PosModalNotifiy, {\r\n width: '30vw',\r\n panelClass: 'pos-dialog-toast',\r\n data: {titulo, info, res},\r\n }\r\n );\r\n }\r\n\r\n criarItemControl(item?: ItemDocumento) {\r\n return this.fb.group({\r\n idArtigo: item && item.idArtigo ? item.idArtigo : null,\r\n codArtigo: item && item.codArtigo ? item.codArtigo : null,\r\n descricao: item && item.descricao ? item.descricao : '',\r\n idImposto: item && item.idImposto ? item.idImposto : null,\r\n taxaImposto: item && item.taxaImposto ? item.taxaImposto : null,\r\n idIva: item && item.idImposto ? item.idImposto : null,\r\n precoItem: item && item.preco ? item.preco : 0,\r\n quantidade: [item?.quantidade ? Util.convertToFloat3Casas(item.quantidade) : Util.convertToFloat3Casas(1)],\r\n subTotal: item && item.subTotal ? item.subTotal : 0,\r\n totalGeral: item && item.totalGeral ? item.totalGeral : 0,\r\n subTotalIliq: item && item.subTotalIliq ? item.subTotalIliq : 0,\r\n total: item && item.total ? item.total : 0,\r\n descontoPerc: item && item.descontoPerc ? item.descontoPerc : 0,\r\n desconto: item && item.desconto ? item.desconto : 0,\r\n unidadeMedida: '',\r\n codUnidade: item && item.codUnidade ? item.codUnidade : 'UN',\r\n idArmazem: 0\r\n });\r\n }\r\n\r\n}\r\n","export const menuPOS = [\r\n {\r\n titulo: 'Bloquear terminal',\r\n icon: 'lock',\r\n rota: '',\r\n nav: false,\r\n tela: false,\r\n },\r\n {\r\n titulo: 'Trocar de operador',\r\n icon: 'switch_accounts',\r\n rota: 'sessoes/logout',\r\n nav: false,\r\n tela: false,\r\n },\r\n {\r\n titulo: 'Trocar tela',\r\n icon: 'widgets',\r\n rota: '',\r\n nav: false,\r\n tela: true,\r\n },\r\n {\r\n titulo: 'Sair do POS',\r\n icon: 'undo',\r\n rota: '/dashboard',\r\n nav: true,\r\n tela: false,\r\n },\r\n {\r\n titulo: 'Sair',\r\n icon: 'logout',\r\n rota: 'sessoes/logout',\r\n nav: false,\r\n tela: false,\r\n }\r\n]\r\n","export const urlCliente = localStorage.getItem('clienteUrl');\r\n// export const urlCliente = 'https://kiami-qualidade-back.independent.co.ao/';\r\n\r\n //export const urlCliente = 'https://kiami-back.pwimoveis.com/';\r\n\r\n// export const urlInstalacoes = 'https://instalacoes-back.kiami.ao/api/v1/';\r\n// export const urlCliente = 'https://kiami-back.garrafeiradopatriota.ao/';\r\n// export const urlCliente = 'https://independent-back.kiami.ao/';\r\nexport const urlInstalacoes = 'https://back.appkiami.ao/api/v1/';\r\n// export const urlCliente = 'https://jornaldeangola-back.kiami.ao/';\r\n// export const urlCliente = 'https://solip-back.kiami.ao/';\r\n// export const urlCliente = 'https://appdemo.kiami.ao/';\r\n// export const urlCliente = 'https://kiami-back.kiami.ao/';\r\n// export const urlCliente = 'https://kiamisoft-back.kiami.ao/';\r\n// Conectivas\r\n// export const urlCliente = 'https://kiami-back.conectiva.pt/';\r\n// Recredit\r\n// export const urlCliente = \"https://recredit-back.kiami.ao/\";\r\n// export const urlCliente = 'https://srr-back.kiami.ao/';\r\n\r\n// AAMGA\r\n// export const urlCliente = \"https://aamga-back.kiami.ao/\";\r\n\r\n// OCPCA\r\n// export const urlCliente = \"https://ocpca-back.kiami.ao/\";\r\n\r\n// *** INSTALAÇÕES QUE SÓ USAM GESTOR DE CONTEUDOS *** //\r\n// const urlCliente = 'https://ensa-back.kiami.ao/';\r\n// ASSOCIAÇÃO DE ACTUÁRIOS DE ANGOLA\r\n// export const urlCliente = \"https://kiami-back.actuariosangola.org/\";\r\n// export const urlCliente = 'https://curiositychoice-back.kiami.ao/';\r\n\r\n// ARC-CONSULTORIA\r\n// export const urlCliente = 'https://arc-consultoria-back.kiami.ao/';\r\n// export const urlCliente = \"https://kiami-back.claramelo.com/\";\r\n// FAN\r\n// export const urlCliente = \"https://kiami-back.fanatacao.ao/\";\r\n// export const urlCliente = 'https://suresil.appkiami.ao/';\r\n\r\n// TST\r\n //export const urlCliente = 'https://tst-back.kiami.ao/';\r\n\r\nconst env = {\r\n instalacao: urlInstalacoes + 'instalacoes/instalacao/',\r\n\r\n // aplicacao: \"https://localhost:44332/api/v1/\",\r\n\r\n // aplicacao: \"https://localhost:100/api/v1/\",\r\n aplicacao: urlCliente + 'apl/api/v1/',\r\n\r\n // artigos: 'https://localhost:44332/api/v1/',\r\n // artigos: 'https://localhost:101/api/v1/',\r\n artigos: urlCliente + 'art/api/v1/',\r\n\r\n //clientes: 'https://localhost:44332/api/v1/',\r\n clientes: urlCliente + 'cli/api/v1/',\r\n\r\n // financas: 'https://localhost:44332/api/v1/',\r\n financas: urlCliente + 'fin/api/v1/',\r\n\r\n //processos: \"https://localhost:44332/api/v2/\",\r\n processos: urlCliente + 'pro/api/v2/',\r\n\r\n // eventos: 'https://localhost:44332/api/v1/',\r\n eventos: urlCliente + 'eve/api/v1/',\r\n\r\n // cmsUrl: \"https://localhost:44333/api/v1/\",\r\n cmsUrl: urlCliente + 'cms/api/v1/',\r\n\r\n //rHumanos: \"https://localhost:44318/api/v1/\",\r\n rHumanos: urlCliente + 'rhu/api/v1/',\r\n\r\n //equipamentos: 'https://localhost:7066/api/v1/',\r\n // equipamentos: 'http://localhost:5000/api/v1/',\r\n equipamentos: urlCliente + 'equ/api/v1/',\r\n equipamentosHub: urlCliente + 'equ/hub/',\r\n\r\n // arquivos: 'https://localhost:7246/api/v1/'\r\n // arquivos: 'http://localhost:5000/api/v1/'\r\n arquivos: urlCliente + 'gar/api/v1/'\r\n};\r\n\r\nexport const environment = {\r\n production: false,\r\n instalacao: env.instalacao,\r\n apiAplicacao: env.aplicacao,\r\n apiClientes: env.clientes,\r\n\r\n apiArtigos: env.artigos,\r\n\r\n apiFinancas: env.financas,\r\n\r\n apiProcessos: env.processos,\r\n\r\n apiEventos: env.eventos,\r\n\r\n apiRHumanos: env.rHumanos,\r\n apiEquipamentos: env.equipamentos,\r\n equipamentosHub: env.equipamentosHub,\r\n apiArquivos: env.arquivos,\r\n cmsUrl: env.cmsUrl,\r\n\r\n enableDebug: true\r\n};\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.log(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-SG\": 28661,\n\t\"./en-SG.js\": 28661,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 10860,\n\t\"./en-ca.js\": 10860,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}