platypush/platypush/backend/http/webapp/dist/static/js/chunk-6c14c2d1.a89e7f1b.js.map

1 line
111 KiB
Plaintext

{"version":3,"sources":["webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./src/components/panels/Light/color.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/modules/es.string.replace.js","webpack:///./node_modules/core-js/modules/es.set.js","webpack:///./src/components/panels/ZigbeeMqtt/Index.vue","webpack:///./src/components/panels/ZigbeeMqtt/Device.vue","webpack:///./src/components/panels/ZigbeeMqtt/Device.vue?41c6","webpack:///./src/components/panels/ZigbeeMqtt/Group.vue","webpack:///./src/components/panels/ZigbeeMqtt/Group.vue?2d79","webpack:///./src/components/panels/ZigbeeMqtt/Index.vue?7479","webpack:///./node_modules/core-js/internals/collection-strong.js","webpack:///./node_modules/core-js/internals/collection.js","webpack:///./src/components/panels/ZigbeeMqtt/Group.vue?ad33","webpack:///./node_modules/core-js/internals/freezing.js","webpack:///./src/components/panels/ZigbeeMqtt/Index.vue?e3f7","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./src/components/panels/ZigbeeMqtt/Device.vue?ae62","webpack:///./node_modules/core-js/internals/internal-metadata.js"],"names":["_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","ColorConverter","ranges","this","hue","sat","bri","ct","keys","attr","x","xRange","yRange","h","s","l","normalize","a","Math","min","f","n","k","color","max","round","r","g","b","d","parseInt","y","brightness","z","Y","toFixed","X","Z","red","green","blue","pow","isNaN","map","c","parseFloat","rgbToHsl","rgb","xy","getRGB","getXY","xyToRgb","hslToRgb","console","debug","rgbToXY","$","$trim","trim","forcedStringTrimMethod","proto","forced","fixRegExpWellKnownSymbolLogic","anObject","toObject","toLength","toInteger","requireObjectCoercible","advanceStringIndex","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","it","undefined","String","REPLACE","nativeReplace","maybeCallNative","reason","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","O","replacer","call","regexp","indexOf","res","done","value","rx","S","functionalReplace","global","fullUnicode","unicode","lastIndex","results","result","push","matchStr","accumulatedResult","nextSourcePosition","matched","position","index","captures","j","namedCaptures","groups","replacerArgs","concat","replacement","apply","getSubstitution","slice","str","tailPos","m","symbols","match","ch","capture","charAt","collection","collectionStrong","module","exports","init","arguments","class","loading","title","ref","status","info","state","permit_join","network","channel","version","config","mqtt","server","serial","port","coordinator","type","meta","maintrel","majorrel","minorrel","revision","selected","view","$event","views","enabled","toUpperCase","replace","disabled","addGroup","icon-class","text","$refs","infoModal","show","permitJoin","factoryReset","refresh","devices","device","id","deviceId","refreshDevices","refreshGroups","group","groupId","manageGroups","checked","associatedGroups","has","friendly_name","ieee_address","$emit","editName","rename","name","network_address","definition","vendor","model","model_id","description","software_build_id","date_code","power_source","displayedValues","property","rgbColor","unit","value_on","setValue","value_min","value_max","with-label","range","readable","values","option","Number","toString","join","groupsModal","otaUpdatesAvailable","installOtaUpdates","checkOtaUpdates","remove","components","Modal","ToggleSwitch","Slider","Loading","mixins","Utils","emits","required","default","Boolean","data","computed","exposes","extractValues","extractValue","root","features","feature","ret","mergeValues","obj","access","entries","filter","v","reduce","converter","saturation","satAttr","Set","members","member","methods","request","newName","force","confirm","event","value_toggle","value_off","split","_","hsl","querySelectorAll","element","add","editGroups","action","Promise","all","update_available","notify","image","iconClass","mounted","$watch","newValue","subscribe","properties","unmounted","unsubscribe","render","__scopeId","toggleDevice","devicesByAddress","entry","prompt","ieeeAddress","method","Dropdown","DropdownItem","Device","Group","modal","visible","refreshInfo","updateProperties","permit","args","seconds","setTimeout","addToGroup","self","created","error","create","redefineAll","bind","anInstance","iterate","defineIterator","setSpecies","DESCRIPTORS","fastKey","InternalStateModule","setInternalState","set","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","that","iterable","first","last","size","AS_ENTRIES","getInternalState","define","previous","getEntry","next","removed","clear","prev","forEach","callbackfn","boundFunction","get","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","isForced","redefine","InternalMetadataModule","isObject","fails","checkCorrectnessOfIteration","setToStringTag","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","KEY","nativeMethod","REQUIRED","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","constructor","isExtensible","preventExtensions","whitespaces","non","METHOD_NAME","hiddenKeys","uid","FREEZING","METADATA","setMetadata","objectID","weakData","getWeakData","onFreeze"],"mappings":"0MAAe,SAASA,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCCFxB,SAASC,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAInC,SAASO,EAAad,EAAae,EAAYC,GAG5D,OAFID,GAAYb,EAAkBF,EAAYiB,UAAWF,GACrDC,GAAad,EAAkBF,EAAagB,GACzChB,ECbF,IAAMkB,EAAb,WACI,WAAYC,GAQR,GARgB,UAChBC,KAAKD,OAAS,CACVE,IAAK,CAAC,EAAG,KACTC,IAAK,CAAC,EAAG,KACTC,IAAK,CAAC,EAAG,KACTC,GAAI,CAAC,IAAK,MAGVL,EACA,IAAK,IAAL,MAAmBR,OAAOc,KAAKL,KAAKD,QAApC,gBAAK,IAAMO,EAAI,KACPP,EAAOO,KACPN,KAAKD,OAAOO,GAAQP,EAAOO,KAZ/C,4CAecC,EAAGC,EAAQC,GACjB,OAAOA,EAAO,IAAQF,EAAEC,EAAO,KAAOC,EAAO,GAAGA,EAAO,KAAQD,EAAO,GAAGA,EAAO,MAhBxF,+BAmBaE,EAAGC,EAAGC,GAAG,MACF,CACRZ,KAAKa,UAAUH,EAAGV,KAAKD,OAAOE,IAAK,CAAC,EAAG,MACvCD,KAAKa,UAAUF,EAAGX,KAAKD,OAAOG,IAAK,CAAC,EAAG,MACvCF,KAAKa,UAAUD,EAAGZ,KAAKD,OAAOI,IAAK,CAAC,EAAG,OAH1CO,EADa,KACVC,EADU,KACPC,EADO,KAOdA,GAAK,IACL,IAAME,EAAIH,EAAII,KAAKC,IAAIJ,EAAG,EAAIA,GAAK,IAC7BK,EAAI,SAAAC,GACN,IAAMC,GAAKD,EAAIR,EAAI,IAAM,GACnBU,EAAQR,EAAIE,EAAIC,KAAKM,IAAIN,KAAKC,IAAIG,EAAI,EAAG,EAAIA,EAAG,IAAK,GAC3D,OAAOJ,KAAKO,MAAM,IAAMF,IAG5B,MAAO,CAACH,EAAE,GAAIA,EAAE,GAAIA,EAAE,MAlC9B,+BAqCaM,EAAGC,EAAGC,GACXF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IACIf,EAAGC,EADDU,EAAMN,KAAKM,IAAIE,EAAGC,EAAGC,GAAIT,EAAMD,KAAKC,IAAIO,EAAGC,EAAGC,GAC1Cb,GAAKS,EAAML,GAAO,EAE5B,GAAGK,IAAQL,EACPN,EAAIC,EAAI,MACL,CACH,IAAMe,EAAIL,EAAML,EAGhB,OAFAL,EAAIC,EAAI,GAAMc,GAAK,EAAIL,EAAML,GAAOU,GAAKL,EAAML,GAExCK,GACH,KAAKE,EAAGb,GAAKc,EAAIC,GAAKC,GAAKF,EAAIC,EAAI,EAAI,GAAI,MAC3C,KAAKD,EAAGd,GAAKe,EAAIF,GAAKG,EAAI,EAAG,MAC7B,KAAKD,EAAGf,GAAKa,EAAIC,GAAKE,EAAI,EAAG,MAEjChB,GAAK,EAGT,MAAO,CACHiB,SAAS3B,KAAKa,UAAUH,EAAG,CAAC,EAAG,GAAIV,KAAKD,OAAOE,MAC/C0B,SAAS3B,KAAKa,UAAUF,EAAG,CAAC,EAAG,GAAIX,KAAKD,OAAOG,MAC/CyB,SAAS3B,KAAKa,UAAUD,EAAG,CAAC,EAAG,GAAIZ,KAAKD,OAAOI,SA7D3D,8BAiEYI,EAAGqB,EAAGC,GAEQ,MAAdA,IACAA,EAAa7B,KAAKD,OAAOI,IAAI,IAEjC,IAAM2B,EAAI,EAAMvB,EAAIqB,EACdG,GAAKF,GAAc7B,KAAKD,OAAOI,IAAI,GAAG,IAAI6B,QAAQ,GAClDC,EAAKF,EAAIH,EAAKrB,EACd2B,EAAKH,EAAIH,EAAKE,EAGhBK,EAAY,SAAJF,EAAmB,QAAJF,EAAmB,QAAJG,EACtCE,EAAe,SAAJH,EAAmB,SAAJF,EAAmB,QAAJG,EACzCG,EAAa,QAAJJ,EAAmB,QAAJF,EAAmB,QAAJG,EAkC3C,OA/BIC,EAAME,GAAQF,EAAMC,GAASD,EAAM,GACnCC,GAAgBD,EAChBE,GAAcF,EACdA,EAAM,GACCC,EAAQC,GAAQD,EAAQD,GAAOC,EAAQ,GAC9CD,GAAYC,EACZC,GAAcD,EACdA,EAAQ,GACDC,EAAOF,GAAOE,EAAOD,GAASC,EAAO,IAC5CF,GAAYE,EACZD,GAAgBC,EAChBA,EAAO,GAIXF,EAAOA,GAAO,SAAY,MAAQA,EAAM,MAAgBpB,KAAKuB,IAAIH,EAAM,EAAM,KAAQ,KACrFC,EAASA,GAAS,SAAY,MAAQA,EAAQ,MAAgBrB,KAAKuB,IAAIF,EAAQ,EAAM,KAAQ,KAC7FC,EAAQA,GAAQ,SAAY,MAAQA,EAAO,MAAgBtB,KAAKuB,IAAID,EAAO,EAAM,KAAQ,KAGzFF,EAAOpB,KAAKO,MAAY,IAANa,GAClBC,EAASrB,KAAKO,MAAc,IAARc,GACpBC,EAAQtB,KAAKO,MAAa,IAAPe,GAEfE,MAAMJ,KACNA,EAAM,GACNI,MAAMH,KACNA,EAAQ,GACRG,MAAMF,KACNA,EAAO,GAEJ,CAACF,EAAKC,EAAOC,GAAMG,KACtB,SAACC,GAAD,OAAO1B,KAAKC,IAAID,KAAKM,IAAI,EAAGoB,GAAI,UAjH5C,8BAoHYN,EAAKC,EAAOC,GACZF,EAAM,IAAKA,GAAO,KAClBC,EAAQ,IAAKA,GAAS,KACtBC,EAAO,IAAKA,GAAQ,KAGxBF,EAAQA,EAAM,OAAWpB,KAAKuB,KAAKH,EAAM,MAAP,MAA+B,KAAQA,EAAM,MAC/EC,EAAUA,EAAQ,OAAWrB,KAAKuB,KAAKF,EAAQ,MAAT,MAAiC,KAAQA,EAAQ,MACvFC,EAASA,EAAO,OAAWtB,KAAKuB,KAAKD,EAAO,MAAR,MAAgC,KAAQA,EAAO,MAGnF,IAAMJ,EAAY,QAANE,EAAyB,QAARC,EAA0B,QAAPC,EAC1CN,EAAY,QAANI,EAAyB,QAARC,EAA0B,QAAPC,EAC1CH,EAAY,MAANC,EAAyB,OAARC,EAA0B,QAAPC,EAG5C9B,EAAMmC,YAAYT,GAAKA,EAAIF,EAAIG,IAAIF,QAAQ,IAC3CJ,EAAMc,YAAYX,GAAKE,EAAIF,EAAIG,IAAIF,QAAQ,IAO/C,OALIO,MAAMhC,KACNA,EAAI,GACJgC,MAAMX,KACNA,EAAI,GAED,CAACrB,EAAGqB,KA5InB,+BA+IaO,EAAKC,EAAOC,GACjB,OAAOtB,KAAKC,IAAI,EAAIhB,KAAK2C,SAASR,EAAKC,EAAOC,GAAM,GAAIrC,KAAKD,OAAOI,IAAI,MAhJhF,6BAmJWiB,GACH,OAAiB,MAAbA,EAAMe,KAA8B,MAAff,EAAMgB,OAA+B,MAAdhB,EAAMiB,KAC3C,CAACjB,EAAMe,IAAKf,EAAMgB,MAAOhB,EAAMiB,MAC3B,MAAXjB,EAAMG,GAAwB,MAAXH,EAAMI,GAAwB,MAAXJ,EAAMK,EACrC,CAACL,EAAMG,EAAGH,EAAMI,EAAGJ,EAAMK,GAChCL,EAAMwB,IACCxB,EAAMwB,SADjB,IAxJR,4BA4JUxB,GACF,OAAe,MAAXA,EAAMb,GAAwB,MAAXa,EAAMQ,EAClB,CAACR,EAAMb,EAAGa,EAAMQ,GACvBR,EAAMyB,GACCzB,EAAMyB,QADjB,IA/JR,4BAmKUzB,GACF,IAAMwB,EAAM5C,KAAK8C,OAAO1B,GACxB,GAAIwB,EACA,OAAOA,EAEX,IAAMC,EAAK7C,KAAK+C,MAAM3B,GACtB,OAAIyB,GAAMzB,EAAMjB,IACLH,KAAKgD,QAAL,MAAAhD,KAAA,eAAgB6C,GAAhB,QAAoBzB,EAAMjB,OACjCiB,EAAMnB,KAAOmB,EAAMlB,KAAOkB,EAAMjB,IACzBH,KAAKiD,SAAS7B,EAAMnB,IAAKmB,EAAMlB,IAAKkB,EAAMjB,MAErD+C,QAAQC,MAAM,wCACdD,QAAQC,MAAM/B,MA/KtB,2BAkLSA,GACD,IAAMyB,EAAK7C,KAAK+C,MAAM3B,GACtB,GAAIyB,GAAMzB,EAAMjB,IACZ,MAAO,CAAC0C,EAAG,GAAIA,EAAG,GAAIzB,EAAMjB,KAEhC,IAAMyC,EAAM5C,KAAK8C,OAAO1B,GACxB,GAAIwB,EACA,OAAO5C,KAAKoD,QAAL,MAAApD,KAAA,eAAgB4C,IAE3B,GAAIxB,EAAMnB,KAAOmB,EAAMlB,KAAOkB,EAAMjB,IAAK,CACrC,IAAMyC,EAAM5C,KAAKiD,SAAS7B,EAAMnB,IAAKmB,EAAMlB,IAAKkB,EAAMjB,KACtD,OAAOH,KAAKoD,QAAL,MAAApD,KAAA,eAAgB4C,IAG3BM,QAAQC,MAAM,mCACdD,QAAQC,MAAM/B,KAjMtB,4BAoMUA,GACF,GAAIA,EAAMnB,KAAOmB,EAAMlB,KAAOkB,EAAMjB,IAChC,MAAO,CAACiB,EAAMnB,IAAKmB,EAAMlB,IAAKkB,EAAMjB,KAExC,IAAMyC,EAAM5C,KAAK8C,OAAO1B,GACxB,GAAIwB,EACA,OAAO5C,KAAK2C,SAAL,MAAA3C,KAAA,eAAiB4C,IAE5B,IAAMC,EAAK7C,KAAK+C,MAAM3B,GACtB,GAAIyB,GAAMzB,EAAMjB,IAAK,CACjB,IAAMyC,EAAM5C,KAAKgD,QAAL,MAAAhD,KAAA,eAAgB6C,GAAhB,QAAoBzB,EAAMjB,OACtC,OAAOH,KAAK2C,SAAL,MAAA3C,KAAA,eAAiB4C,IAG5BM,QAAQC,MAAM,mCACdD,QAAQC,MAAM/B,OAnNtB,M,oCCCA,IAAIiC,EAAI,EAAQ,QACZC,EAAQ,EAAQ,QAA4BC,KAC5CC,EAAyB,EAAQ,QAIrCH,EAAE,CAAEtE,OAAQ,SAAU0E,OAAO,EAAMC,OAAQF,EAAuB,SAAW,CAC3ED,KAAM,WACJ,OAAOD,EAAMtD,U,yDCRjB,IAAI2D,EAAgC,EAAQ,QACxCC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAyB,EAAQ,QACjCC,EAAqB,EAAQ,QAC7BC,EAAa,EAAQ,QAErB7C,EAAMN,KAAKM,IACXL,EAAMD,KAAKC,IACXmD,EAAQpD,KAAKoD,MACbC,EAAuB,4BACvBC,EAAgC,oBAEhCC,EAAgB,SAAUC,GAC5B,YAAcC,IAAPD,EAAmBA,EAAKE,OAAOF,IAIxCZ,EAA8B,UAAW,GAAG,SAAUe,EAASC,EAAeC,EAAiBC,GAC7F,IAAIC,EAA+CD,EAAOC,6CACtDC,EAAmBF,EAAOE,iBAC1BC,EAAoBF,EAA+C,IAAM,KAE7E,MAAO,CAGL,SAAiBG,EAAaC,GAC5B,IAAIC,EAAInB,EAAuBhE,MAC3BoF,OAA0BZ,GAAfS,OAA2BT,EAAYS,EAAYP,GAClE,YAAoBF,IAAbY,EACHA,EAASC,KAAKJ,EAAaE,EAAGD,GAC9BP,EAAcU,KAAKZ,OAAOU,GAAIF,EAAaC,IAIjD,SAAUI,EAAQJ,GAChB,IACIJ,GAAgDC,GACzB,kBAAjBG,IAA0E,IAA7CA,EAAaK,QAAQP,GAC1D,CACA,IAAIQ,EAAMZ,EAAgBD,EAAeW,EAAQtF,KAAMkF,GACvD,GAAIM,EAAIC,KAAM,OAAOD,EAAIE,MAG3B,IAAIC,EAAK/B,EAAS0B,GACdM,EAAInB,OAAOzE,MAEX6F,EAA4C,oBAAjBX,EAC1BW,IAAmBX,EAAeT,OAAOS,IAE9C,IAAIY,EAASH,EAAGG,OAChB,GAAIA,EAAQ,CACV,IAAIC,EAAcJ,EAAGK,QACrBL,EAAGM,UAAY,EAEjB,IAAIC,EAAU,GACd,MAAO,EAAM,CACX,IAAIC,EAASjC,EAAWyB,EAAIC,GAC5B,GAAe,OAAXO,EAAiB,MAGrB,GADAD,EAAQE,KAAKD,IACRL,EAAQ,MAEb,IAAIO,EAAW5B,OAAO0B,EAAO,IACZ,KAAbE,IAAiBV,EAAGM,UAAYhC,EAAmB2B,EAAG9B,EAAS6B,EAAGM,WAAYF,IAKpF,IAFA,IAAIO,EAAoB,GACpBC,EAAqB,EAChBtH,EAAI,EAAGA,EAAIiH,EAAQhH,OAAQD,IAAK,CACvCkH,EAASD,EAAQjH,GAUjB,IARA,IAAIuH,EAAU/B,OAAO0B,EAAO,IACxBM,EAAWpF,EAAIL,EAAI+C,EAAUoC,EAAOO,OAAQd,EAAE1G,QAAS,GACvDyH,EAAW,GAMNC,EAAI,EAAGA,EAAIT,EAAOjH,OAAQ0H,IAAKD,EAASP,KAAK9B,EAAc6B,EAAOS,KAC3E,IAAIC,EAAgBV,EAAOW,OAC3B,GAAIjB,EAAmB,CACrB,IAAIkB,EAAe,CAACP,GAASQ,OAAOL,EAAUF,EAAUb,QAClCpB,IAAlBqC,GAA6BE,EAAaX,KAAKS,GACnD,IAAII,EAAcxC,OAAOS,EAAagC,WAAM1C,EAAWuC,SAEvDE,EAAcE,EAAgBX,EAASZ,EAAGa,EAAUE,EAAUE,EAAe3B,GAE3EuB,GAAYF,IACdD,GAAqBV,EAAEwB,MAAMb,EAAoBE,GAAYQ,EAC7DV,EAAqBE,EAAWD,EAAQtH,QAG5C,OAAOoH,EAAoBV,EAAEwB,MAAMb,KAKvC,SAASY,EAAgBX,EAASa,EAAKZ,EAAUE,EAAUE,EAAeI,GACxE,IAAIK,EAAUb,EAAWD,EAAQtH,OAC7BqI,EAAIZ,EAASzH,OACbsI,EAAUnD,EAKd,YAJsBG,IAAlBqC,IACFA,EAAgBhD,EAASgD,GACzBW,EAAUpD,GAELO,EAAcU,KAAK4B,EAAaO,GAAS,SAAUC,EAAOC,GAC/D,IAAIC,EACJ,OAAQD,EAAGE,OAAO,IAChB,IAAK,IAAK,MAAO,IACjB,IAAK,IAAK,OAAOpB,EACjB,IAAK,IAAK,OAAOa,EAAID,MAAM,EAAGX,GAC9B,IAAK,IAAK,OAAOY,EAAID,MAAME,GAC3B,IAAK,IACHK,EAAUd,EAAca,EAAGN,MAAM,GAAI,IACrC,MACF,QACE,IAAIlG,GAAKwG,EACT,GAAU,IAANxG,EAAS,OAAOuG,EACpB,GAAIvG,EAAIqG,EAAG,CACT,IAAItG,EAAIkD,EAAMjD,EAAI,IAClB,OAAU,IAAND,EAAgBwG,EAChBxG,GAAKsG,OAA8B/C,IAApBmC,EAAS1F,EAAI,GAAmByG,EAAGE,OAAO,GAAKjB,EAAS1F,EAAI,GAAKyG,EAAGE,OAAO,GACvFH,EAETE,EAAUhB,EAASzF,EAAI,GAE3B,YAAmBsD,IAAZmD,EAAwB,GAAKA,U,kCClI1C,IAAIE,EAAa,EAAQ,QACrBC,EAAmB,EAAQ,QAI/BC,EAAOC,QAAUH,EAAW,OAAO,SAAUI,GAC3C,OAAO,WAAiB,OAAOA,EAAKjI,KAAMkI,UAAUhJ,OAASgJ,UAAU,QAAK1D,MAC3EsD,I,sGCPIK,MAAM,oB,SAIFA,MAAM,a,GACJA,MAAM,O,EACT,eAAmC,OAA9BA,MAAM,cAAa,SAAK,G,GAI1BA,MAAM,O,EACT,eAAyC,OAApCA,MAAM,cAAa,eAAW,G,SAIhCA,MAAM,O,EACT,eAA6C,OAAxCA,MAAM,cAAa,mBAAe,G,GAIpCA,MAAM,O,EACT,eAAiD,OAA5CA,MAAM,cAAa,uBAAmB,G,SAIxCA,MAAM,O,EACT,eAAyC,OAApCA,MAAM,cAAa,eAAW,G,SAIhCA,MAAM,O,EACT,eAAyC,OAApCA,MAAM,cAAa,eAAW,G,SAIhCA,MAAM,O,EACT,eAA2C,OAAtCA,MAAM,cAAa,iBAAa,G,SAIlCA,MAAM,O,EACT,eAA8C,OAAzCA,MAAM,cAAa,oBAAgB,G,GACnCA,MAAM,e,SAKRA,MAAM,O,EACT,eAA+C,OAA1CA,MAAM,cAAa,qBAAiB,G,GAM1CA,MAAM,gB,GACJA,MAAM,0C,GAWNA,MAAM,W,EAGP,eAA0B,KAAvBA,MAAM,cAAY,S,EAYrB,eAA8B,KAA3BA,MAAM,kBAAgB,S,GAK1BA,MAAM,kB,SACJA,MAAM,gB,SACJA,MAAM,Y,SACJA,MAAM,W,SACNA,MAAM,S,SASVA,MAAM,e,SACJA,MAAM,Y,SACJA,MAAM,W,SACNA,MAAM,S,oOAtGnB,eA+GM,MA/GN,EA+GM,CA9GW,EAAAC,S,iBAAf,eAA0B,Y,sBAE1B,eAiDQ,GAjDDC,MAAM,eAAeC,IAAI,a,yBAC9B,+BA+CM,CA/CuB,EAAAC,OAAOC,M,iBAApC,eA+CM,MA/CN,EA+CM,CA9CJ,eAGM,MAHN,EAGM,CAFJ,EACA,eAAiD,OAA5CL,MAAM,c,YAAc,eAAqB,EAAP,OAACM,Q,0BAG1C,eAGM,MAHN,EAGM,CAFJ,EACA,eAA4D,OAAvDN,MAAM,c,YAAc,eAAgC,EAAlB,OAACK,KAAKE,c,0BAGxB,EAAAH,OAAOC,KAAKG,S,iBAAnC,eAGM,MAHN,EAGM,CAFJ,EACA,eAAgE,OAA3DR,MAAM,c,YAAc,eAAoC,EAAtB,OAACK,KAAKG,QAAQC,U,iDAGvD,eAGM,MAHN,EAGM,CAFJ,EACA,eAAwD,OAAnDT,MAAM,c,YAAc,eAA4B,EAAd,OAACK,KAAKK,U,qCAGxB,EAAAN,OAAOC,KAAKM,c,aAAZ,EAAoBC,O,iBAA3C,eAGM,MAHN,EAGM,CAFJ,EACA,eAAmE,OAA9DZ,MAAM,c,YAAc,eAAuC,EAAzB,OAACK,KAAKM,OAAOC,KAAKC,S,4DAGpC,EAAAT,OAAOC,KAAKM,c,aAAZ,EAAoBG,S,iBAA3C,eAGM,MAHN,EAGM,CAFJ,EACA,eAAmE,OAA9Dd,MAAM,c,YAAc,eAAuC,EAAzB,OAACK,KAAKM,OAAOG,OAAOC,O,4DAGtC,EAAAX,OAAOC,KAAKW,mB,aAAZ,EAAyBC,O,iBAAhD,eAGM,MAHN,EAGM,CAFJ,EACA,eAAiE,OAA5DjB,MAAM,c,YAAc,eAAqC,EAAvB,OAACK,KAAKW,YAAYC,O,4DAGpC,EAAAb,OAAOC,KAAKW,mB,aAAZ,EAAyBE,O,iBAAhD,eAKM,MALN,EAKM,CAJJ,EACA,eAEM,MAFN,EAEM,eADD,EAAAd,OAAOC,KAAKW,YAAYE,KAAKC,UAAW,IAAC,eAAG,EAAAf,OAAOC,KAAKW,YAAYE,KAAKE,UAAW,IAAC,eAAG,EAAAhB,OAAOC,KAAKW,YAAYE,KAAKG,UAAQ,M,iCAI7G,EAAAjB,OAAOC,KAAKW,mB,aAAZ,EAAyBE,O,iBAAhD,eAGM,MAHN,EAGM,CAFJ,EACA,eAA0E,OAArElB,MAAM,c,YAAc,eAA8C,EAAhC,OAACK,KAAKW,YAAYE,KAAKI,W,wFAKpE,eA8BM,MA9BN,EA8BM,CA7BJ,eASM,MATN,EASM,CARJ,eAOQ,cANN,eAKS,UALA/D,MAAO,EAAAgE,SAASC,KAAO,SAAM,iCAAOD,SAASC,KAAOC,EAAO7K,OAAO2G,S,qBACzE,eAGS,2BAHyB,EAAAmE,OAAK,SAAvBC,EAASH,G,wBAAzB,eAGS,U,YAFD,gBAASA,EAAK,GAAGI,cAAgBJ,EAAKvC,MAAK,IAAK4C,QAAO,UACtDvK,IAAKkK,EAAOD,SAAUI,EAAUpE,MAAOiE,G,uEAMtD,eAiBM,MAjBN,EAiBM,CAhBiE,WAAb,EAAAD,SAASC,M,iBAAjE,eAGS,U,MAHDxB,MAAM,kBAAkBE,MAAM,YAC7B4B,SAAU,EAAA7B,QAAU,QAAK,8BAAE,EAAA8B,SAAA,sB,CAClC,G,uCAGF,eAMW,GAND5B,IAAI,0BAA0B6B,aAAW,YAAY9B,MAAM,oB,yBACnE,uBAAwF,CAAxF,eAAwF,GAA1E+B,KAAK,eAAgBH,SAAU,EAAA7B,QAAU,QAAK,+BAAE,EAAAiC,MAAMC,UAAUC,U,gCAEzD,EAAAhC,OAAOC,Y,aAAP,EAAaE,c,iBAClC,eAAyF,G,MAA3E0B,KAAK,eAAgBH,SAAU,EAAA7B,QAAU,QAAK,+BAAE,EAAAoC,YAAU,M,wCAFxE,eACiD,G,MADnCJ,KAAK,cAAeH,SAAU,EAAA7B,QAAU,QAAK,+BAAE,EAAAoC,YAAU,M,sBAGvE,eAA+E,GAAjEJ,KAAK,gBAAiBH,SAAU,EAAA7B,QAAU,QAAO,EAAAqC,c,6CAGjE,eAES,UAFDtC,MAAM,kBAAkBE,MAAM,kBAAmB4B,SAAU,EAAA7B,QAAU,QAAK,8BAAE,EAAAsC,QAAA,sB,CAClF,G,oBAKN,eAwBM,MAxBN,EAwBM,CAvByC,YAAb,EAAAhB,SAASC,M,iBAAzC,eAUM,MAVN,EAUM,CATyBpK,OAAOc,KAAK,EAAAsK,SAASzL,O,wCAAlD,eAGM,MAHN,EAGM,CAFuB,EAAAkJ,S,iBAA3B,eAA4D,MAA5D,EAAoC,wB,iBACpC,eAA+D,MAA/D,EAA0B,wC,mBAG5B,eAGyF,2BAH1D,EAAAuC,SAAO,SAAtBC,EAAQC,G,wBAAxB,eAGyF,GAHhDpL,IAAKoL,EACrCD,OAAQA,EAAS9D,OAAQ,EAAAA,OAAS4C,SAAU,EAAAA,SAASoB,WAAaD,EAClE,SAAM,mBAAE,EAAAnB,SAASoB,SAAW,EAAApB,SAASoB,WAAaD,EAAE,KAAUA,GAC9D,SAAQ,EAAAE,eAAiB,SAAQ,EAAAA,eAAiB,aAAa,EAAAC,e,mGAGzB,WAAb,EAAAtB,SAASC,M,iBAA7C,eAUM,MAVN,EAUM,CATyBpK,OAAOc,KAAK,EAAAyG,QAAQ5H,O,wCAAjD,eAGM,MAHN,EAGM,CAFuB,EAAAkJ,S,iBAA3B,eAA2D,MAA3D,EAAoC,uB,iBACpC,eAAkE,MAAlE,EAA0B,2C,mBAG5B,eAG+E,2BAHlD,EAAAtB,QAAM,SAApBmE,EAAOJ,G,wBAAtB,eAG+E,GAHzCpL,IAAKoL,EAAKI,MAAOA,EAAQN,QAAS,EAAAA,QAChEjB,SAAU,EAAAA,SAASwB,UAAYL,EAC/B,SAAM,mBAAE,EAAAnB,SAASwB,QAAU,EAAAxB,SAASwB,UAAYL,EAAE,KAAUA,GAC5D,SAAQ,EAAAG,cAAgB,SAAQ,EAAAA,cAAgB,OAAM,EAAAA,e,wXCrGzD7C,MAAM,U,EAOX,eAEM,OAFDA,MAAM,kBAAgB,CACzB,eAAmC,UAA3BiB,KAAK,UAAS,U,YAQvBjB,MAAM,U,GACJA,MAAM,O,EACT,eAAkC,OAA7BA,MAAM,cAAa,QAAI,G,GACvBA,MAAM,e,GAOCA,MAAM,W,GAER,eAA4B,KAAzBA,MAAM,gBAAc,S,GAGzB,eAES,UAFDiB,KAAK,SAASjB,MAAM,mB,CAC1B,eAA2B,KAAxBA,MAAM,kB,OAQTA,MAAM,W,GAER,eAA0B,KAAvBA,MAAM,cAAY,S,IAO1BA,MAAM,O,GACT,eAA0C,OAArCA,MAAM,cAAa,gBAAY,G,UAIjCA,MAAM,O,GACT,eAA6C,OAAxCA,MAAM,cAAa,mBAAe,G,IAIpCA,MAAM,O,GACT,eAAkC,OAA7BA,MAAM,cAAa,QAAI,G,UAIzBA,MAAM,O,GACT,eAAoC,OAA/BA,MAAM,cAAa,UAAM,G,IACzBA,MAAM,e,UAKRA,MAAM,O,GACT,eAAmC,OAA9BA,MAAM,cAAa,SAAK,G,IACxBA,MAAM,e,UAKRA,MAAM,O,GACT,eAAsC,OAAjCA,MAAM,cAAa,YAAQ,G,IAC3BA,MAAM,e,UAKRA,MAAM,O,GACT,eAAyC,OAApCA,MAAM,cAAa,eAAW,G,IAC9BA,MAAM,e,UAKRA,MAAM,O,GACT,eAA+C,OAA1CA,MAAM,cAAa,qBAAiB,G,IACpCA,MAAM,e,UAKRA,MAAM,O,GACT,eAAuC,OAAlCA,MAAM,cAAa,aAAS,G,IAC5BA,MAAM,e,UAKRA,MAAM,O,GACT,eAA0C,OAArCA,MAAM,cAAa,gBAAY,G,IAC/BA,MAAM,e,UAKRA,MAAM,kB,GACT,eAEM,OAFDA,MAAM,UAAQ,CACjB,eAA+B,OAA1BA,MAAM,SAAQ,Y,OAGhBA,MAAM,Q,IAEFA,MAAM,c,UAEHA,MAAM,Q,IAMTA,MAAM,e,2DAqCZA,MAAM,mB,GACT,eAEM,OAFDA,MAAM,UAAQ,CACjB,eAAgC,OAA3BA,MAAM,SAAQ,a,OAGhBA,MAAM,Q,GAEP,eAA2C,OAAtCA,MAAM,cAAa,iBAAa,G,GACrC,eAEM,OAFDA,MAAM,eAAa,CACtB,eAAiC,KAA9BA,MAAM,0B,aAKNA,MAAM,c,UACNA,MAAM,c,GACX,eAEM,OAFDA,MAAM,eAAa,CACtB,eAA4B,KAAzBA,MAAM,qB,MAKX,eAA2C,OAAtCA,MAAM,cAAa,iBAAa,G,GACrC,eAEM,OAFDA,MAAM,eAAa,CACtB,eAAyB,KAAtBA,MAAM,kB,MAKX,eAAiD,OAA5CA,MAAM,cAAa,uBAAmB,G,GAC3C,eAEM,OAFDA,MAAM,eAAa,CACtB,eAAyB,KAAtBA,MAAM,kB,0MA3MrB,eAiNM,OAjNDA,MAAK,CAAC,cAAa,UAAoB,EAAAuB,Y,CAC3B,EAAAtB,S,iBAAf,eAA0B,Y,sBAE1B,eAeQ,GAfDD,MAAM,eAAeG,IAAI,cAAcD,MAAM,iB,YAClD,iBAA0B,CAAX,EAAAD,S,iBAAf,eAA0B,Y,sBAE1B,eAWO,QAXDD,MAAM,UAAW,SAAM,8CAAU,EAAAgD,aAAA,qBAAY,e,CACjD,eAKM,MALN,EAKM,E,mBAJJ,eAGQ,2BAHuC,EAAArE,QAAM,SAApBmE,EAAOJ,GAAE,M,wBAA1C,eAGQ,SAHD1C,MAAM,YAA2C1I,IAAKoL,G,CAC3D,eAAuF,SAAhFzB,KAAK,WAAY1D,MAAOmF,EAAKO,QAAS,EAAAC,iBAAiBC,IAAI3J,SAASsJ,EAAMJ,M,4BACjF,eAAyG,QAAnG1C,MAAM,O,YAAO,gBAAmF,YAArEoD,qBAAqE,eAAtDrM,QAAS+L,EAAMM,cAAuC,kBAAZN,EAAMJ,GAAM,O,qCAI1G,G,kBAMJ,eACqF,OADhF1C,MAAK,CAAC,kCAAiC,UAAoB,EAAAuB,W,YAC3D,eAAoD,EAAtC,OAAC6B,eAAiB,EAAAX,OAAOY,cAAe,QAAK,+BAAE,EAAAC,MAAK,a,yBAE7C,EAAA/B,U,iBAA1B,eAyLM,MAzLN,EAyLM,CAxLJ,eA8BM,MA9BN,EA8BM,CA7BJ,EACA,eA2BM,MA3BN,EA2BM,CA1BJ,eAgBM,OAhBDvB,MAAK,CAAC,YAAW,SAAmB,EAAAuD,Y,CACvC,eAcO,QAdA,SAAM,8CAAU,EAAAC,OAAA,qBAAM,e,CAC3B,eAEQ,cADN,eAAwE,SAAjEvC,KAAK,OAAOwC,KAAK,OAAOtD,IAAI,OAAQ5C,MAAO,EAAAkF,OAAOW,e,oBAG3D,eAQO,OARP,EAQO,CAPL,eAES,UAFDnC,KAAK,SAASjB,MAAM,kBAAmB,QAAK,+BAAE,EAAAuD,UAAQ,K,CAC5D,KAGF,M,QAON,eAOM,OAPDvD,MAAK,CAAC,YAAW,QAAkB,EAAAuD,Y,CACtC,eAA2C,Q,YAArC,eAA6B,EAAf,OAACH,gB,wBACrB,eAIO,OAJP,GAIO,CAHL,eAES,UAFDnC,KAAK,SAASjB,MAAM,kBAAmB,QAAK,+BAAE,EAAAuD,UAAQ,K,CAC5D,Q,OAOV,eAGM,MAHN,GAGM,CAFJ,GACA,eAA4D,OAAvDvD,MAAM,c,YAAc,eAA4B,EAAd,OAACqD,e,0BAGnB,EAAAZ,OAAOiB,iB,iBAA9B,eAGM,MAHN,GAGM,CAFJ,GACA,eAA+D,OAA1D1D,MAAM,c,YAAc,eAA+B,EAAjB,OAAC0D,kB,iDAG1C,eAGM,MAHN,GAGM,CAFJ,GACA,eAAoD,OAA/C1D,MAAM,c,YAAc,eAAoB,EAAN,OAACiB,O,qCAGnB,EAAAwB,OAAOkB,kB,aAAP,EAAmBC,S,iBAA1C,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAAnB,OAAOkB,WAAWC,QAAM,M,iCAIR,EAAAnB,OAAOkB,kB,aAAP,EAAmBE,Q,iBAA1C,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAApB,OAAOkB,WAAWE,OAAK,M,sBAIP,EAAApB,OAAOqB,U,iBAA9B,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAArB,OAAOqB,UAAQ,M,iCAIC,EAAArB,OAAOkB,kB,aAAP,EAAmBI,c,iBAA1C,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAAtB,OAAOkB,WAAWI,aAAW,M,sBAIb,EAAAtB,OAAOuB,mB,iBAA9B,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAAvB,OAAOuB,mBAAiB,M,iCAIR,EAAAvB,OAAOkB,kB,aAAP,EAAmBM,Y,iBAA1C,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAAxB,OAAOkB,WAAWM,WAAS,M,sBAIX,EAAAxB,OAAOyB,c,iBAA9B,eAKM,MALN,GAKM,CAJJ,GACA,eAEM,MAFN,GAEM,eADD,EAAAzB,OAAOyB,cAAY,M,sBAIQ9M,OAAOc,KAAK,EAAAiM,iBAAiBpN,Q,iBAA/D,eAkDM,MAlDN,GAkDM,CAjDJ,GAIA,eA4CM,MA5CN,GA4CM,E,mBA3CJ,eA0CM,2BA1C6C,EAAAoN,iBAAe,SAAnC5G,EAAO6G,GAAQ,oB,wBAA9C,eA0CM,OA1CDpE,MAAM,YAA0D1I,IAAK8M,G,CACxE,eAMM,MANN,GAMM,C,8BALD7G,EAAMwG,aAAc,IACvB,GAAiC,MAAR,EAAAM,UAAmC,OAAd,UAAA9G,EAAMA,aAAN,eAAanF,IAA2B,OAAd,UAAAmF,EAAMA,aAAN,eAAa9D,IAAsE,OAAhB,YAAM,aAAN,eAAa,MAAsC,OAAvB,YAAM,aAAN,eAAa,a,iBAApL,eACoG,OADpG,GACwF,U,sBACvC8D,EAAM6G,U,iBAAvD,eAAmE,Q,MAA7DpE,MAAM,O,YAAO,eAAuB,EAAToE,W,+CACY7G,EAAM+G,M,iBAAnD,eAA2D,Q,MAArDtE,MAAM,O,YAAO,eAAmB,EAALsE,O,iDAGnC,eAgCM,MAhCN,GAgCM,CA9BsD,WAAV/G,EAAM0D,M,iBADtD,eAEiD,G,MAFlC1D,MAAqB,MAAdA,EAAMgH,SAAmBhH,EAAMA,QAAUA,EAAMgH,WAAahH,EAAMA,MACzEuE,UAAWvE,EAAMpG,SACjB,QAAK,mBAAE,EAAAqN,SAASjH,EAAOkE,K,wCAIT,YAAVlE,EAAM0D,MAAqC,MAAf1D,EAAMkH,WAAoC,MAAflH,EAAMmH,W,iBAFhF,eAEqG,G,MAF5FC,cAAY,EAAOC,MAAK,CAAGrH,EAAMkH,UAAWlH,EAAMmH,WAAanH,MAAOA,EAAMA,MAC5EuE,UAAWvE,EAAMpG,SAAW,SAAM,mBAAE,EAAAqN,SAASjH,EAAOkE,K,iDAGjC,YAAVlE,EAAM0D,MAAsC,MAAf1D,EAAMkH,WAAoC,MAAflH,EAAMmH,UAKpD,SAAVnH,EAAM0D,M,iBAAxB,eAOQ,YANN,eAKS,UALA1D,MAAOA,EAAMsH,UAAuB,MAAXtH,EAAMA,MAAgBA,EAAMA,MAAK,GAC1D,SAAM,mBAAE,EAAAiH,SAASjH,EAAOkE,K,CAChBlE,EAAMsH,S,wCAArB,eAAiC,e,mBACjC,eAC2F,2BADlEtH,EAAMuH,QAAM,SAAtBC,G,wBAAf,eAC2F,UADnDzN,IAAKyN,EAASxH,MAAOwH,E,YAAQ,eAAc,GAC1ExD,SAAUhE,EAAMsH,UAAYtH,EAAMA,QAAUwH,EAASjD,UAAWvE,EAAMpG,U,4FAIzD,MAAR,EAAAkN,UAAmC,OAAd,UAAA9G,EAAMA,aAAN,eAAanF,IAA2B,OAAd,UAAAmF,EAAMA,aAAN,eAAa9D,IAA+D,OAAhB,YAAM,aAAN,eAAa,MAAsC,OAAvB,YAAM,aAAN,eAAa,a,iBAAtK,eAIQ,YAFN,eAC0H,SADnHwH,KAAK,QAAS,SAAM,mCAAO,EAAAuD,SAASjH,EAAOkE,KAAM,UAChDlE,MAAK,IAAQ,EAAA8G,SAAShK,KAAG,SAAEvD,GAA8B,OAAtBA,EAAIkO,OAAOlO,GAAGmO,SAAQ,IAAqB,IAARnO,EAAEC,OAAM,IAAeD,EAAIA,KAAKoO,KAAI,K,mDAGpH,eAEQ,YADN,eAAwG,SAAjGjE,KAAK,OAAQa,UAAWvE,EAAMpG,SAAWoG,MAAOA,EAAMA,MAAQ,SAAM,mBAAE,EAAAiH,SAASjH,EAAOkE,K,8DArB/F,eAGQ,YAFN,eAC2C,SADpCR,KAAK,SAAU0D,cAAY,EAAOpH,MAAOA,EAAMA,MAAQuE,UAAWvE,EAAMpG,SACvE,SAAM,mBAAE,EAAAqN,SAASjH,EAAOkE,K,oFA0B1C,eAmCM,MAnCN,GAmCM,CAlCJ,GAIA,eA6BM,MA7BN,GA6BM,CA5BJ,eAKM,OALDzB,MAAM,MAAO,QAAK,+BAAE,EAAAkC,MAAMiD,YAAY/C,U,CACzC,GACA,KAKF,eAMM,OANDpC,MAAM,MAAO,QAAK,+BAAE,EAAAoF,oBAAsB,EAAAC,oBAAsB,EAAAC,qB,CACpC,EAAAF,qB,iBAC/B,eAAoD,MAApD,GAA+B,qB,iBAD/B,eAA2E,MAA3E,GAAoD,sBAEpD,KAKF,eAKM,OALDpF,MAAM,MAAO,QAAK,+BAAE,EAAAuF,QAAM,M,CAC7B,GACA,KAKF,eAKM,OALDvF,MAAM,YAAa,QAAK,+BAAE,EAAAuF,QAAM,M,CACnC,GACA,Y,0MAkBG,IACb9B,KAAM,SACN+B,WAAY,CAACC,SAAA,KAAOC,gBAAA,KAAcC,UAAA,KAAQC,UAAA,MAC1CC,OAAQ,CAACC,EAAA,MACTC,MAAO,CAAC,SAAU,SAAU,SAAU,eAEtClP,MAAO,CACL4L,OAAQ,CACNxB,KAAM7J,OACN4O,UAAU,GAGZrH,OAAQ,CACNsC,KAAM7J,OACN6O,QAAS,cAGX1E,SAAU,CACRN,KAAMiF,QACND,SAAS,IAIbE,KAvBa,WAwBX,MAAO,CACL5C,UAAU,EACVtD,SAAS,EACTG,OAAQ,GACRgF,qBAAqB,IAIzBgB,SAAU,CACRtB,OADQ,WACC,MACP,KAAI,UAACjN,KAAK4K,OAAOkB,kBAAb,aAAC,EAAwB0C,SAC3B,MAAO,GAET,IAAMC,EAAgB,SAACxB,GACrB,IADgC,EAC1ByB,EAAe,SAAfA,EAAgBhJ,EAAOiJ,GAC3B,GAAKjJ,EAAMkJ,SAAX,CAOIlJ,EAAM6G,WACRoC,EAAKjJ,EAAM6G,UAAYoC,EAAKjJ,EAAM6G,WAAa,GAC/CoC,EAAOA,EAAKjJ,EAAM6G,WAVgB,wBAad7G,EAAMkJ,UAbQ,IAapC,gCAAWC,EAAX,QACEH,EAAaG,EAASF,IAdY,oCAE9BjJ,EAAM6G,WACRoC,EAAKjJ,EAAM6G,UAAY7G,IAcvBoJ,EAAM,GAlBoB,kBAmBZ7B,GAnBY,IAmBhC,gCAAWvH,EAAX,QACEgJ,EAAahJ,EAAOoJ,IApBU,8BAsBhC,OAAOA,GAGT,OAAOL,EAAczO,KAAK4K,OAAOkB,WAAW0C,UAG9ClC,gBAjCQ,WAiCU,WACVwC,EAAM,GACNC,EAAc,SAAdA,EAAeC,EAAD,GAAuB,2BAAhBvP,EAAgB,KAAXiG,EAAW,KAezC,OAdIjG,KAAO,EAAK8I,SACd7C,EAAI,iCACCA,GADD,IAEFA,MAAO,EAAK6C,OAAO9I,MAGH,MAAhBiG,EAAMuJ,SACRvJ,EAAMsH,YAA6B,EAAftH,EAAMuJ,QAC1BvJ,EAAMpG,YAA6B,EAAfoG,EAAMuJ,eACnBvJ,EAAMuJ,QAGfD,EAAIvP,GAAOiG,EACXnG,OAAO2P,QAAQxJ,GAAOyJ,QAAO,SAACC,GAAD,OAAOA,EAAE,aAAc7P,UAAQ8P,OAAON,EAAaC,EAAIvP,IAC7EuP,GAIT,OADAzP,OAAO2P,QAAQlP,KAAKiN,QAAQoC,OAAON,EAAaD,GACzCA,GAGTtC,SAzDQ,WAyDG,MACT,GAAKxM,KAAKsM,gBAAgBlL,MAA1B,CAGA,IAAMA,EAAI,UAAIpB,KAAKsM,gBAAgBlL,aAAzB,aAAI,EAA4BsE,MAC1C,GAAKtE,EAAL,CAGA,GAAe,MAAXA,EAAMb,GAAwB,MAAXa,EAAMQ,EAAW,SAChC0N,EAAY,IAAI,QAAe,CACnCnP,IAAK,EAAC,UAAAH,KAAKsM,gBAAgBzK,kBAArB,eAAiC+K,YAAa,GAAG,UAAA5M,KAAKsM,gBAAgBzK,kBAArB,eAAiCgL,YAAa,OAGvG,OAAOyC,EAAUtM,QAAQ5B,EAAMb,EAAGa,EAAMQ,EAAG5B,KAAKsM,gBAAgBzK,WAAW6D,OAE7E,GAAiB,MAAbtE,EAAMnB,MAAoC,MAApBmB,EAAMmO,YAAmC,MAAbnO,EAAMlB,KAAc,aAClEsP,EAA8B,MAApBpO,EAAMmO,WAAqB,aAAe,MACpD,EAAY,IAAI,QAAe,CACnCtP,IAAK,EAAC,UAAAD,KAAKsM,gBAAgBlL,MAAMnB,WAA3B,eAAgC2M,YAAa,EAAG5M,KAAKsM,gBAAgBlL,MAAMnB,IAAI4M,WAAa,OAClG3M,IAAK,EAAC,UAAAF,KAAKsM,gBAAgBlL,MAAMoO,UAA3B,eAAqC5C,YAAa,EAAG5M,KAAKsM,gBAAgBlL,MAAMoO,GAAS3C,WAAa,KAC5G1M,IAAK,EAAC,UAAAH,KAAKsM,gBAAgBzK,kBAArB,eAAiC+K,YAAa,GAAG,UAAA5M,KAAKsM,gBAAgBzK,kBAArB,eAAiCgL,YAAa,OAGvG,OAAO,EAAU5J,SAAS7B,EAAMnB,IAAKmB,EAAMoO,GAAUxP,KAAKsM,gBAAgBzK,WAAW6D,OAGvF,OAAO,QAGT2F,iBAtFQ,WAsFW,WACjB,OAAO,IAAIoE,IAAIlQ,OAAO0N,OAAOjN,KAAK8G,QAC7BqI,QAAO,SAAClE,GAAD,OAAW,IAAIwE,KAClBxE,EAAMyE,SAAW,IAAIlN,KAAI,SAACmN,GAAD,OAAYA,EAAOnE,iBAAeF,IAAI,EAAKV,OAAOY,iBAC/EhJ,KAAI,SAACyI,GAAD,OAAWtJ,SAASsJ,EAAMJ,UAIvC+E,QAAS,CACDlF,QADC,WACS,+JACd,EAAKtC,SAAU,EADD,kBAGQ,EAAKyH,QAAQ,yBAC7B,CAACjF,OAAQ,EAAKA,OAAOW,eAAiB,EAAKX,OAAOY,eAJ1C,OAGZ,EAAKjD,OAHO,8BAMZ,EAAKH,SAAU,EANH,0EAUVuD,OAXC,WAWQ,mKACPC,GAAQ,EAAKvB,MAAMuB,KAAKlG,OAAS,IAAInC,OACtCqI,EAAK1M,QAAU0M,IAAS,EAAKhB,OAAOW,cAF5B,wDAKb,EAAKnD,SAAU,EALF,kBAOL,EAAKyH,QAAQ,4BAA6B,CAC9CjF,QAAQ,YAAKA,OAAOW,qBAAZ,eAA2BrM,QAAS,EAAK0L,OAAOW,cAAgB,EAAKX,OAAOY,aACpFI,KAAMA,IATG,OAYX,EAAKH,MAAM,SAAU,CAACG,KAAM,EAAKhB,OAAOW,cAAeuE,QAASlE,IAZrD,uBAcX,EAAKF,UAAW,EAChB,EAAKtD,SAAU,EAfJ,4EAmBTsF,OA9BC,SA8BMqC,GAAO,iKACbC,QAAQ,6EADK,wDAIlBD,IAAUA,EACV,EAAK3H,SAAU,EALG,kBAOV,EAAKyH,QAAQ,4BAA6B,CAC9CjF,QAAQ,YAAKA,OAAOW,qBAAZ,eAA2BrM,QAAS,EAAK0L,OAAOW,cAAgB,EAAKX,OAAOY,aACpFuE,MAAOA,IATO,OAYhB,EAAKtE,MAAM,SAAU,CAACb,OAAQ,EAAKA,OAAOW,eAAiB,EAAKX,OAAOY,eAZvD,uBAchB,EAAKpD,SAAU,EAdC,4EAkBduE,SAhDC,SAgDQjH,EAAOuK,GAAO,wLACrBJ,EAAU,CACdjF,OAAQ,EAAKA,OAAOW,eAAiB,EAAKX,OAAOY,aACjDe,SAAU7G,EAAM6G,SAChB7G,MAAO,MAJkB,KAOnBA,EAAM0D,KAPa,OAQpB,WARoB,OAkBpB,YAlBoB,OAsBpB,SAtBoB,8BASnB1D,EAAMwK,aACRL,EAAQnK,MAAQA,EAAMwK,aACbxK,EAAMgH,UAAYhH,EAAMyK,UACjCN,EAAQnK,MAAQA,EAAMA,QAAUA,EAAMgH,SAAWhH,EAAMyK,UAAYzK,EAAMgH,SAEzEmD,EAAQnK,OAASA,EAAMA,MAdF,mCAmBvBmK,EAAQnK,MAAQhD,WAAWuN,EAAMlR,OAAO2G,OAnBjB,mCAuBvB,UAAIuK,EAAMlR,OAAO2G,aAAjB,aAAI,EAAoBxG,UACtB2Q,EAAQnK,MAAQuK,EAAMlR,OAAO2G,OAxBR,oCA6BP,MAAXA,EAAMnF,GAAwB,MAAXmF,EAAM9D,GAA4B,MAAb8D,EAAMzF,MAAoC,MAApByF,EAAM6J,YAAmC,MAAb7J,EAAMxF,QACnG2P,EAAQtD,SAAW,QACb3J,EAAMqN,EAAMlR,OAAO2G,MAAM0B,MAAM,GAChCgJ,MAAM,oBACNjB,QAAO,SAACkB,EAAGpR,GAAJ,OAAUA,EAAI,KACrBuD,KAAI,SAACvD,GAAD,OAAO0C,SAAS1C,EAAG,OAEZ,MAAXyG,EAAMnF,GAAwB,MAAXmF,EAAM9D,GACtB0N,EAAY,IAAI,QAAe,CACnCnP,IAAK,EAAC,YAAKmM,gBAAgBzK,kBAArB,eAAiC+K,YAAa,GAAG,YAAKN,gBAAgBzK,kBAArB,eAAiCgL,YAAa,OAGjGhK,EAAKyM,EAAUlM,QAAV,MAAAkM,EAAS,gBAAY1M,IAChCiN,EAAQnK,MAAQ,CACdtE,MAAO,CACLb,EAAGsC,EAAG,GACNjB,EAAGiB,EAAG,OAIJ2M,EAAmD,MAAzC,EAAKlD,gBAAgBlL,MAAMmO,WAAqB,aAAe,MACzE,EAAY,IAAI,QAAe,CACnCtP,IAAK,EAAC,YAAKqM,gBAAgBlL,MAAMnB,WAA3B,eAAgC2M,YAAa,EAAG,EAAKN,gBAAgBlL,MAAMnB,IAAI4M,WAAa,OAClG3M,IAAK,EAAC,YAAKoM,gBAAgBlL,MAAMoO,UAA3B,eAAqC5C,YAAa,EAAG,EAAKN,gBAAgBlL,MAAMoO,GAAS3C,WAAa,KAC5G1M,IAAK,EAAC,YAAKmM,gBAAgBzK,kBAArB,eAAiC+K,YAAa,GAAG,YAAKN,gBAAgBzK,kBAArB,eAAiCgL,YAAa,OAGjGyD,EAAM,EAAU3N,SAAV,QAAS,gBAAaC,IAClCiN,EAAQnK,MAAQ,CACd7D,WAAYyO,EAAI,GAChBlP,MAAO,CACLnB,IAAKqQ,EAAI,KAIbT,EAAQnK,MAAMtE,MAAMoO,GAAWc,EAAI,KAhEhB,gCAsEN,MAAjBT,EAAQnK,MAtEe,0DAyE3B,EAAK0C,SAAU,EAzEY,oBA2EnB,EAAKyH,QAAQ,yBAA0BA,GA3EpB,yBA4EnB,EAAKnF,UA5Ec,yBA8EzB,EAAKtC,SAAU,EA9EU,+EAkFvB+C,aAlIC,SAkIY8E,GAAO,uKAClBnJ,EAAS,gBAAImJ,EAAMlR,OAAOwR,iBAAiB,yBAAyBlB,QAAO,SAACL,EAAKwB,GACrF,IAAMtF,EAAUvJ,SAAS6O,EAAQ9K,OAMjC,OALI8K,EAAQpF,UAAY,EAAKC,iBAAiBC,IAAIJ,GAChD8D,EAAIyB,IAAIA,IAAIvF,IACJsF,EAAQpF,SAAW,EAAKC,iBAAiBC,IAAIJ,IACrD8D,EAAItB,OAAO+C,IAAIvF,GAEV8D,IACN,CAACyB,IAAK,IAAIhB,IAAO/B,OAAQ,IAAI+B,MAE1BiB,EAXkB,yDAWL,WAAOC,GAAP,iGACXC,QAAQC,IAAI,gBAAI/J,EAAO6J,IAASnO,IAApB,yDAAwB,WAAO0I,GAAP,uGAClC,EAAK2E,QAAL,4BAAkCc,EAAlC,WAAmD,CACvD1F,MAAO,EAAKnE,OAAOoE,GAASK,cAC5BX,QAAQ,YAAKA,OAAOW,qBAAZ,eAA2BrM,QAAS,EAAK0L,OAAOW,cAAgB,EAAKX,OAAOY,eAH9C,2CAAxB,wDADD,2CAXK,sDAoBxB,EAAKpD,SAAU,EApBS,kBAsBhBwI,QAAQC,IAAItR,OAAOc,KAAKyG,GAAQtE,IAAIkO,IAtBpB,OAuBtB,EAAKjF,MAAM,cAAe3E,GAvBJ,uBAyBtB,EAAKsB,SAAU,EAzBO,4EA6BpBqF,gBA/JC,WA+JiB,qKACtB,EAAKrF,SAAU,EADO,kBAGc,EAAKyH,QAAQ,uCAAwC,CACrFjF,QAAQ,YAAKA,OAAOW,qBAAZ,eAA2BrM,QAAS,EAAK0L,OAAOW,cAAgB,EAAKX,OAAOY,eAJlE,OAGpB,EAAK+B,oBAHe,OAKhBuD,iBAEA,EAAKvD,oBACP,EAAKwD,OAAO,CACV3G,KAAM,gDACN4G,MAAO,CACLC,UAAW,oBAIf,EAAKF,OAAO,CACV3G,KAAM,2BACN4G,MAAO,CACLC,UAAW,iBAlBG,uBAsBpB,EAAK7I,SAAU,EAtBK,0EA0BlBoF,kBAzLC,WAyLmB,qKACxB,EAAKpF,SAAU,EADS,kBAGhB,EAAKyH,QAAQ,yCAA0C,CAC3DjF,QAAQ,YAAKA,OAAOW,qBAAZ,eAA2BrM,QAAS,EAAK0L,OAAOW,cAAgB,EAAKX,OAAOY,eAJhE,uBAOtB,EAAKpD,SAAU,EAPO,2EAY5B8I,QAnUa,WAmUH,WACRlR,KAAKmR,QAAO,kBAAM,EAAKzH,YAAU,SAAC0H,GAC5BA,GACF,EAAK1G,aAGT1K,KAAKmR,QAAO,kBAAM,EAAK5I,OAAOuI,oBAAkB,SAACM,GAC/C,EAAK7D,oBAAsB6D,KAG7BpR,KAAKqR,WAAU,SAACpB,GACVA,EAAMrF,SAAW,EAAKA,OAAOW,eAAiB0E,EAAMrF,SAAW,EAAKA,OAAOY,eAG/E,EAAKjD,OAAL,iCAAkB,EAAKA,QAAW0H,EAAMqB,eAJ1C,6BAKyBtR,KAAK4K,OAAOY,cACjC,yEAGN+F,UAtVa,WAuVXvR,KAAKwR,YAAL,6BAAuCxR,KAAK4K,OAAOY,iB,UC/iBvD,GAAOiG,OAAS,GAChB,GAAOC,UAAY,kBAEJ,U,qFCFNvJ,MAAM,U,IACJA,MAAM,mB,GACT,eAEM,OAFDA,MAAM,UAAQ,CACjB,eAAgC,OAA3BA,MAAM,SAAQ,a,OAGhBA,MAAM,Q,IAWRA,MAAM,mB,GACT,eAEM,OAFDA,MAAM,UAAQ,CACjB,eAAgC,OAA3BA,MAAM,SAAQ,a,OAGhBA,MAAM,Q,GAEP,eAAsC,OAAjCA,MAAM,UAAS,gBAAY,G,GAChC,eAEM,OAFDA,MAAM,4BAA0B,CACnC,eAA0B,KAAvBA,MAAM,iB,MAKX,eAAsC,OAAjCA,MAAM,UAAS,gBAAY,G,GAChC,eAEM,OAFDA,MAAM,4BAA0B,CACnC,eAA2B,KAAxBA,MAAM,kB,6GAtCrB,eA4CM,OA5CDA,MAAK,CAAC,aAAY,UAAoB,EAAAuB,Y,CAC1B,EAAAtB,S,iBAAf,eAA0B,Y,sBAC1B,eAC6D,OADxDD,MAAK,CAAC,kCAAiC,UAAoB,EAAAuB,W,YAC3D,eAA4B,EAAf,MAAC6B,eAAgB,QAAK,+BAAE,EAAAE,MAAK,a,yBAErB,EAAA/B,U,iBAA1B,eAsCM,MAtCN,GAsCM,CArCJ,eAcM,MAdN,GAcM,CAbJ,GAIA,eAQM,MARN,GAQM,CAPJ,eAMO,c,mBALL,eAIQ,2BAJkC,EAAAiB,SAAO,SAAtBC,EAAQC,GAAE,M,wBAArC,eAIQ,SAJD1C,MAAM,MAAuC1I,IAAKoL,G,CACvD,eACqD,SAD9CzB,KAAK,WAAYgC,QAAS,EAAAsE,QAAQpE,IAAIV,EAAOY,cAAgB9F,MAAOkF,EAAOY,aAC1E,SAAM,mBAAE,EAAAmG,aAAa/G,EAAOY,gB,wCACpC,eAAyG,QAAnGrD,MAAM,Q,YAAQ,gBAAkF,YAAnEoD,qBAAmE,eAApDrM,QAAS0L,EAAOW,cAAgBX,EAAOY,e,yCAMjG,eAoBM,MApBN,GAoBM,CAnBJ,GAIA,eAcM,MAdN,GAcM,CAbJ,eAKM,OALDrD,MAAM,MAAO,QAAK,8BAAE,EAAAwD,OAAA,sB,CACvB,GACA,KAKF,eAKM,OALDxD,MAAM,MAAO,QAAK,8BAAE,EAAAuF,OAAA,sB,CACvB,GACA,Y,6BAcG,IACb9B,KAAM,QACNsC,MAAO,CAAC,SAAU,SAAU,QAC5BF,OAAQ,CAACC,EAAA,MACTN,WAAY,CAACI,UAAA,MAEb/O,MAAO,CACLiM,MAAO,CACL7B,KAAM7J,OACN4O,UAAU,GAGZxD,QAAS,CACPvB,KAAM7J,OACN6O,QAAS,WAAQ,MAAO,KAG1B1E,SAAU,CACRN,KAAMiF,QACND,SAAS,IAIbE,KAvBa,WAwBX,MAAO,CACLlG,SAAS,EACT6E,OAAQ,KAIZsB,SAAU,CACRqD,iBADQ,WAEN,OAAOrS,OAAO2P,QAAQlP,KAAK2K,SAAS0E,QAAO,SAACL,EAAK6C,GAC/C,IAAMjH,EAASiH,EAAM,GAErB,OADA7C,EAAIpE,EAAOY,cAAgBZ,EACpBoE,IACN,KAGLU,QATQ,WAUN,OAAO,IAAID,KAAKzP,KAAKiL,MAAMyE,SAAW,IAAIlN,KAAI,SAACmN,GAAD,OAAYA,EAAOnE,mBAIrEoE,QAAS,CACDlC,OADC,WACQ,2JACRsC,QAAQ,oDADA,wDAIb,EAAK5H,SAAU,EAJF,kBAML,EAAKyH,QAAQ,2BAA4B,CAACjE,KAAM,EAAKX,MAAMM,gBANtD,OAOX,EAAKE,MAAM,SAAU,CAACG,KAAM,EAAKX,MAAMM,gBAP5B,uBASX,EAAKnD,SAAU,EATJ,4EAaTuD,OAdC,WAcQ,mKACTC,EAAOkG,OAAO,iBAAkB,EAAK7G,MAAMM,eADlC,UAERK,SAFQ,aAER,EAAM1M,OAFE,wDAKb0M,EAAOA,EAAKrI,OACZ,EAAK6E,SAAU,EANF,kBASL,EAAKyH,QAAQ,2BAA4B,CAC7C5E,MAAO,EAAKA,MAAMM,eAAiB,EAAKN,MAAMJ,GAC9Ce,KAAMA,IAXG,OAcX,EAAKH,MAAM,SAAU,CAACG,KAAM,EAAKX,MAAMM,cAAeuE,QAASlE,IAdpD,uBAgBX,EAAKxD,SAAU,EAhBJ,4EAoBTuJ,aAlCC,SAkCYI,GAAa,2KACxBnH,EAAS,EAAKgH,iBAAiBG,GAC/BnG,GAAO,UAAAhB,EAAOW,qBAAP,eAAsBrM,QAAS0L,EAAOW,cAAgBwG,EAC7DC,EAAS,EAAKtC,QAAQpE,IAAIyG,GAAe,SAAW,MAE1D,EAAK3J,SAAU,EALe,kBAOtB,EAAKyH,QAAL,4BAAkCmC,EAAlC,WAAmD,CACvD/G,MAAO,EAAKA,MAAMM,cAClBX,OAAQgB,IATkB,OAY5B,EAAKH,MAAM,OAAQ,CAACb,OAAQgB,EAAMoG,OAAQA,IAZd,uBAc5B,EAAK5J,SAAU,EAda,8E,UC7HpC,GAAOqJ,OAAS,GAChB,GAAOC,UAAY,kBAEJ,UJqHA,IACb9F,KAAM,aACN+B,WAAY,CAACC,SAAA,KAAOqE,WAAA,KAAUC,eAAA,KAAcnE,UAAA,KAASoE,UAAQC,UAC7DpE,OAAQ,CAACC,EAAA,MAETK,KALa,WAMX,MAAO,CACL3D,QAAS,GACT7D,OAAQ,GACRyB,OAAQ,GACRH,SAAS,EACTsB,SAAU,CACRC,KAAM,UACNmB,cAAUtG,EACV0G,aAAS1G,GAEXqF,MAAO,CACLc,SAAS,EACT7D,QAAQ,GAEVuL,MAAO,CACLpH,MAAO,CACLqH,SAAS,MAMjB1C,QAAS,CACD7E,eADC,WACgB,+JACrB,EAAK3C,SAAU,EADM,kBAIG,EAAKyH,QAAQ,uBAJhB,OAInB,EAAKlF,QAJc,OAIwC0E,QAAO,SAAC1E,EAASC,GAS1E,OARIA,EAAOW,iBAAiB,EAAKZ,UAC/BC,EAAK,gBACHqC,OAAQ,EAAKtC,QAAQC,EAAOW,eAAe0B,QAAU,IAClD,EAAKtC,QAAQC,EAAOW,iBAI3BZ,EAAQC,EAAOW,eAAiBX,EACzBD,IACN,IAdgB,uBAgBnB,EAAKvC,SAAU,EAhBI,0EAoBjB4C,cArBC,WAqBe,+JACpB,EAAK5C,SAAU,EADK,kBAGG,EAAKyH,QAAQ,sBAHhB,OAGlB,EAAK/I,OAHa,OAGuCuI,QAAO,SAACvI,EAAQmE,GAEvE,OADAnE,EAAOmE,EAAMJ,IAAMI,EACZnE,IACN,IANe,uBAQlB,EAAKsB,SAAU,EARG,0EAYhBmK,YAjCC,WAiCa,+JAClB,EAAKnK,SAAU,EADG,kBAGI,EAAKyH,QAAQ,oBAHjB,OAGhB,EAAKtH,OAHW,8BAKhB,EAAKH,SAAU,EALC,0EASpBsC,QA1CO,WA2CL1K,KAAK+K,iBACL/K,KAAKgL,gBACLhL,KAAKuS,eAGPC,iBAhDO,SAgDU5H,EAAQ5L,GACvBgB,KAAK2K,QAAQC,GAAQqC,OAASjO,GAG1BkL,SApDC,WAoDU,iKACT0B,EAAOkG,OAAO,cACdlG,GAAQA,EAAK1M,OAFJ,wDAMf,EAAKkJ,SAAU,EANA,kBAQP,EAAKyH,QAAQ,wBAAyB,CAACjE,KAAMA,IARtC,uBAUb,EAAKxD,SAAU,EAVF,qCAaT,EAAK4C,gBAbI,gEAgBXR,WApEC,SAoEUiI,GAAQ,uKACjBC,EAAO,CAACD,SAAUA,GACpBA,IACEE,EAAUb,OAAO,+DAAgE,MACrFY,EAAKC,QAAUA,EAAQzT,OAASyC,SAASgR,GAAW,MAGtD,EAAKvK,SAAU,EAPQ,kBASf,EAAKyH,QAAQ,0BAA2B6C,GATzB,OAUrBE,WAAW,EAAKL,YAAa,KAVR,uBAYrB,EAAKnK,SAAU,EAZM,4EAgBnBqC,aApFC,WAoFc,2JACduF,QAAQ,4DADM,mBAEZA,QAAQ,mFAFI,wDAMnB,EAAK5H,SAAU,EANI,kBAQX,EAAKyH,QAAQ,6BARF,uBAUjB,EAAKzH,SAAU,EAVE,4EAcfyK,WAlGC,SAkGUjI,EAAQK,GAAO,qKAC9B,EAAK7C,SAAU,EADe,SAExB,EAAKyH,QAAQ,+BAAgC,CACjDjF,OAAQA,EACRK,MAAOA,IAJqB,OAO9B,EAAK7C,SAAU,EACT0K,EAAO,EAEbF,YAAW,WACTE,EAAKpI,UACLoI,EAAK9H,kBACJ,KAb2B,+CAiBlC+H,QA/Ia,WA+IH,WACR/S,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,qCACN4I,OAAO,MAER,oBAAqB,8DAExBhT,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,+BACN6G,UAAW,mBAEZ,mBAAoB,6DAEvBjR,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,8BACN4I,OAAO,MAER,iCAAkC,0EAErChT,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,0BACN4I,OAAO,MAER,6BAA8B,uEAEjChT,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,yBACN4I,OAAO,MAER,gCAAiC,yEAEpChT,KAAKqR,WAAU,WACb,EAAKN,OAAO,CACV3G,KAAM,0CACN4I,OAAO,MAER,8BACC,2EAEJhT,KAAKqR,WAAU,SAACpB,GACd,EAAKc,OAAO,CACV3G,KAAM6F,EAAM+C,OAAS,kBACrBA,OAAO,MAER,kBAAmB,4DAEtBhT,KAAKqR,UAAUrR,KAAK0K,QAAS,0BACzB,4DACA,mEACA,qEACA,kEACA,mEACA,uEACA,mEACA,gEACA,mEAGJ1K,KAAKqR,UAAUrR,KAAKgL,cAAe,yBAC/B,gEACA,kEACA,sEAINkG,QArNa,WAsNXlR,KAAK0K,WAGP6G,UAzNa,WA0NXvR,KAAKwR,YAAY,mBACjBxR,KAAKwR,YAAY,+BACjBxR,KAAKwR,YAAY,iCACjBxR,KAAKwR,YAAY,8BACjBxR,KAAKwR,YAAY,kCACjBxR,KAAKwR,YAAY,oBACjBxR,KAAKwR,YAAY,qBACjBxR,KAAKwR,YAAY,2BACjBxR,KAAKwR,YAAY,4B,UK1VrB,GAAOC,OAAS,EAED,iB,kCCNf,IAAIjS,EAAiB,EAAQ,QAAuCyB,EAChEgS,EAAS,EAAQ,QACjBC,EAAc,EAAQ,QACtBC,EAAO,EAAQ,QACfC,EAAa,EAAQ,QACrBC,EAAU,EAAQ,QAClBC,EAAiB,EAAQ,QACzBC,EAAa,EAAQ,QACrBC,EAAc,EAAQ,QACtBC,EAAU,EAAQ,QAAkCA,QACpDC,EAAsB,EAAQ,QAE9BC,EAAmBD,EAAoBE,IACvCC,EAAyBH,EAAoBI,UAEjD/L,EAAOC,QAAU,CACf+L,eAAgB,SAAUC,EAASC,EAAkBC,EAAQC,GAC3D,IAAIC,EAAIJ,GAAQ,SAAUK,EAAMC,GAC9BlB,EAAWiB,EAAMD,EAAGH,GACpBN,EAAiBU,EAAM,CACrBjL,KAAM6K,EACNvN,MAAOuM,EAAO,MACdsB,WAAO/P,EACPgQ,UAAMhQ,EACNiQ,KAAM,IAEHjB,IAAaa,EAAKI,KAAO,QACdjQ,GAAZ8P,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMK,WAAYR,OAGlFS,EAAmBd,EAAuBI,GAE1CW,EAAS,SAAUP,EAAM5U,EAAKiG,GAChC,IAEImP,EAAUnO,EAFV+B,EAAQkM,EAAiBN,GACzBxC,EAAQiD,EAAST,EAAM5U,GAqBzB,OAlBEoS,EACFA,EAAMnM,MAAQA,GAGd+C,EAAM+L,KAAO3C,EAAQ,CACnBnL,MAAOA,EAAQ+M,EAAQhU,GAAK,GAC5BA,IAAKA,EACLiG,MAAOA,EACPmP,SAAUA,EAAWpM,EAAM+L,KAC3BO,UAAMvQ,EACNwQ,SAAS,GAENvM,EAAM8L,QAAO9L,EAAM8L,MAAQ1C,GAC5BgD,IAAUA,EAASE,KAAOlD,GAC1B2B,EAAa/K,EAAMgM,OAClBJ,EAAKI,OAEI,MAAV/N,IAAe+B,EAAM/B,MAAMA,GAASmL,IACjCwC,GAGPS,EAAW,SAAUT,EAAM5U,GAC7B,IAGIoS,EAHApJ,EAAQkM,EAAiBN,GAEzB3N,EAAQ+M,EAAQhU,GAEpB,GAAc,MAAViH,EAAe,OAAO+B,EAAM/B,MAAMA,GAEtC,IAAKmL,EAAQpJ,EAAM8L,MAAO1C,EAAOA,EAAQA,EAAMkD,KAC7C,GAAIlD,EAAMpS,KAAOA,EAAK,OAAOoS,GAiFjC,OA7EAqB,EAAYkB,EAAEvU,UAAW,CAGvBoV,MAAO,WACL,IAAIZ,EAAOrU,KACPyI,EAAQkM,EAAiBN,GACzB/F,EAAO7F,EAAM/B,MACbmL,EAAQpJ,EAAM8L,MAClB,MAAO1C,EACLA,EAAMmD,SAAU,EACZnD,EAAMgD,WAAUhD,EAAMgD,SAAWhD,EAAMgD,SAASE,UAAOvQ,UACpD8J,EAAKuD,EAAMnL,OAClBmL,EAAQA,EAAMkD,KAEhBtM,EAAM8L,MAAQ9L,EAAM+L,UAAOhQ,EACvBgP,EAAa/K,EAAMgM,KAAO,EACzBJ,EAAKI,KAAO,GAInB,OAAU,SAAUhV,GAClB,IAAI4U,EAAOrU,KACPyI,EAAQkM,EAAiBN,GACzBxC,EAAQiD,EAAST,EAAM5U,GAC3B,GAAIoS,EAAO,CACT,IAAIkD,EAAOlD,EAAMkD,KACbG,EAAOrD,EAAMgD,gBACVpM,EAAM/B,MAAMmL,EAAMnL,OACzBmL,EAAMmD,SAAU,EACZE,IAAMA,EAAKH,KAAOA,GAClBA,IAAMA,EAAKF,SAAWK,GACtBzM,EAAM8L,OAAS1C,IAAOpJ,EAAM8L,MAAQQ,GACpCtM,EAAM+L,MAAQ3C,IAAOpJ,EAAM+L,KAAOU,GAClC1B,EAAa/K,EAAMgM,OAClBJ,EAAKI,OACV,QAAS5C,GAIbsD,QAAS,SAAiBC,GACxB,IAEIvD,EAFApJ,EAAQkM,EAAiB3U,MACzBqV,EAAgBlC,EAAKiC,EAAYlN,UAAUhJ,OAAS,EAAIgJ,UAAU,QAAK1D,EAAW,GAEtF,MAAOqN,EAAQA,EAAQA,EAAMkD,KAAOtM,EAAM8L,MAAO,CAC/Cc,EAAcxD,EAAMnM,MAAOmM,EAAMpS,IAAKO,MAEtC,MAAO6R,GAASA,EAAMmD,QAASnD,EAAQA,EAAMgD,WAKjDvJ,IAAK,SAAa7L,GAChB,QAASqV,EAAS9U,KAAMP,MAI5ByT,EAAYkB,EAAEvU,UAAWqU,EAAS,CAEhCoB,IAAK,SAAa7V,GAChB,IAAIoS,EAAQiD,EAAS9U,KAAMP,GAC3B,OAAOoS,GAASA,EAAMnM,OAGxBkO,IAAK,SAAanU,EAAKiG,GACrB,OAAOkP,EAAO5U,KAAc,IAARP,EAAY,EAAIA,EAAKiG,KAEzC,CAEF+K,IAAK,SAAa/K,GAChB,OAAOkP,EAAO5U,KAAM0F,EAAkB,IAAVA,EAAc,EAAIA,EAAOA,MAGrD8N,GAAahU,EAAe4U,EAAEvU,UAAW,OAAQ,CACnDyV,IAAK,WACH,OAAOX,EAAiB3U,MAAMyU,QAG3BL,GAETmB,UAAW,SAAUnB,EAAGH,EAAkBC,GACxC,IAAIsB,EAAgBvB,EAAmB,YACnCwB,EAA6B5B,EAAuBI,GACpDyB,EAA2B7B,EAAuB2B,GAGtDlC,EAAec,EAAGH,GAAkB,SAAU0B,EAAUC,GACtDjC,EAAiB3T,KAAM,CACrBoJ,KAAMoM,EACNzW,OAAQ4W,EACRlN,MAAOgN,EAA2BE,GAClCC,KAAMA,EACNpB,UAAMhQ,OAEP,WACD,IAAIiE,EAAQiN,EAAyB1V,MACjC4V,EAAOnN,EAAMmN,KACb/D,EAAQpJ,EAAM+L,KAElB,MAAO3C,GAASA,EAAMmD,QAASnD,EAAQA,EAAMgD,SAE7C,OAAKpM,EAAM1J,SAAY0J,EAAM+L,KAAO3C,EAAQA,EAAQA,EAAMkD,KAAOtM,EAAMA,MAAM8L,OAMjE,QAARqB,EAAuB,CAAElQ,MAAOmM,EAAMpS,IAAKgG,MAAM,GACzC,UAARmQ,EAAyB,CAAElQ,MAAOmM,EAAMnM,MAAOD,MAAM,GAClD,CAAEC,MAAO,CAACmM,EAAMpS,IAAKoS,EAAMnM,OAAQD,MAAM,IAN9CgD,EAAM1J,YAASyF,EACR,CAAEkB,WAAOlB,EAAWiB,MAAM,MAMlCyO,EAAS,UAAY,UAAWA,GAAQ,GAG3CX,EAAWU,M,oCCtLf,IAAI5Q,EAAI,EAAQ,QACZyC,EAAS,EAAQ,QACjB+P,EAAW,EAAQ,QACnBC,EAAW,EAAQ,QACnBC,EAAyB,EAAQ,QACjC1C,EAAU,EAAQ,QAClBD,EAAa,EAAQ,QACrB4C,EAAW,EAAQ,QACnBC,EAAQ,EAAQ,QAChBC,EAA8B,EAAQ,QACtCC,EAAiB,EAAQ,QACzBC,EAAoB,EAAQ,QAEhCrO,EAAOC,QAAU,SAAUiM,EAAkBD,EAASqC,GACpD,IAAInC,GAA8C,IAArCD,EAAiB1O,QAAQ,OAClC+Q,GAAgD,IAAtCrC,EAAiB1O,QAAQ,QACnC4O,EAAQD,EAAS,MAAQ,MACzBqC,EAAoBzQ,EAAOmO,GAC3BuC,EAAkBD,GAAqBA,EAAkB1W,UACzDjB,EAAc2X,EACdE,EAAW,GAEXC,EAAY,SAAUC,GACxB,IAAIC,EAAeJ,EAAgBG,GACnCb,EAASU,EAAiBG,EACjB,OAAPA,EAAe,SAAajR,GAE1B,OADAkR,EAAavR,KAAKrF,KAAgB,IAAV0F,EAAc,EAAIA,GACnC1F,MACE,UAAP2W,EAAkB,SAAUlX,GAC9B,QAAO6W,IAAYN,EAASvW,KAAemX,EAAavR,KAAKrF,KAAc,IAARP,EAAY,EAAIA,IAC1E,OAAPkX,EAAe,SAAalX,GAC9B,OAAO6W,IAAYN,EAASvW,QAAO+E,EAAYoS,EAAavR,KAAKrF,KAAc,IAARP,EAAY,EAAIA,IAC9E,OAAPkX,EAAe,SAAalX,GAC9B,QAAO6W,IAAYN,EAASvW,KAAemX,EAAavR,KAAKrF,KAAc,IAARP,EAAY,EAAIA,IACjF,SAAaA,EAAKiG,GAEpB,OADAkR,EAAavR,KAAKrF,KAAc,IAARP,EAAY,EAAIA,EAAKiG,GACtC1F,QAMb,GAAI6V,EAAS5B,EAA8C,mBAArBsC,KAAqCD,GAAWE,EAAgBrB,UAAYc,GAAM,YACtH,IAAIM,GAAoBrH,UAAU6F,YAGlCnW,EAAcyX,EAAOtC,eAAeC,EAASC,EAAkBC,EAAQC,GACvE4B,EAAuBc,UAAW,OAC7B,GAAIhB,EAAS5B,GAAkB,GAAO,CAC3C,IAAItV,EAAW,IAAIC,EAEfkY,EAAiBnY,EAASwV,GAAOmC,EAAU,IAAM,EAAG,IAAM3X,EAE1DoY,EAAuBd,GAAM,WAActX,EAAS2M,IAAI,MAGxD0L,EAAmBd,GAA4B,SAAU5B,GAAY,IAAIiC,EAAkBjC,MAE3F2C,GAAcX,GAAWL,GAAM,WAEjC,IAAIiB,EAAY,IAAIX,EAChB7P,EAAQ,EACZ,MAAOA,IAASwQ,EAAU/C,GAAOzN,EAAOA,GACxC,OAAQwQ,EAAU5L,KAAK,MAGpB0L,IACHpY,EAAcoV,GAAQ,SAAUmD,EAAO7C,GACrClB,EAAW+D,EAAOvY,EAAaqV,GAC/B,IAAII,EAAO+B,EAAkB,IAAIG,EAAqBY,EAAOvY,GAE7D,YADgB4F,GAAZ8P,GAAuBjB,EAAQiB,EAAUD,EAAKF,GAAQ,CAAEE,KAAMA,EAAMK,WAAYR,IAC7EG,KAETzV,EAAYiB,UAAY2W,EACxBA,EAAgBY,YAAcxY,IAG5BmY,GAAwBE,KAC1BP,EAAU,UACVA,EAAU,OACVxC,GAAUwC,EAAU,SAGlBO,GAAcH,IAAgBJ,EAAUvC,GAGxCmC,GAAWE,EAAgBvB,cAAcuB,EAAgBvB,MAU/D,OAPAwB,EAASxC,GAAoBrV,EAC7ByE,EAAE,CAAEyC,QAAQ,EAAMpC,OAAQ9E,GAAe2X,GAAqBE,GAE9DN,EAAevX,EAAaqV,GAEvBqC,GAASD,EAAOd,UAAU3W,EAAaqV,EAAkBC,GAEvDtV,I,kCCjGT,W,4CCAA,IAAIqX,EAAQ,EAAQ,QAEpBlO,EAAOC,SAAWiO,GAAM,WACtB,OAAO1W,OAAO8X,aAAa9X,OAAO+X,kBAAkB,S,kCCHtD,W,qBCAA,IAAIrB,EAAQ,EAAQ,QAChBsB,EAAc,EAAQ,QAEtBC,EAAM,MAIVzP,EAAOC,QAAU,SAAUyP,GACzB,OAAOxB,GAAM,WACX,QAASsB,EAAYE,MAAkBD,EAAIC,MAAkBD,GAAOD,EAAYE,GAAa7L,OAAS6L,O,kCCT1G,W,4CCAA,IAAIC,EAAa,EAAQ,QACrB1B,EAAW,EAAQ,QACnB1K,EAAM,EAAQ,QACd9L,EAAiB,EAAQ,QAAuCyB,EAChE0W,EAAM,EAAQ,QACdC,EAAW,EAAQ,QAEnBC,EAAWF,EAAI,QACf9M,EAAK,EAELwM,EAAe9X,OAAO8X,cAAgB,WACxC,OAAO,GAGLS,EAAc,SAAUvT,GAC1B/E,EAAe+E,EAAIsT,EAAU,CAAEnS,MAAO,CACpCqS,SAAU,OAAQlN,EAClBmN,SAAU,OAIVvE,EAAU,SAAUlP,EAAI0O,GAE1B,IAAK+C,EAASzR,GAAK,MAAoB,iBAANA,EAAiBA,GAAmB,iBAANA,EAAiB,IAAM,KAAOA,EAC7F,IAAK+G,EAAI/G,EAAIsT,GAAW,CAEtB,IAAKR,EAAa9S,GAAK,MAAO,IAE9B,IAAK0O,EAAQ,MAAO,IAEpB6E,EAAYvT,GAEZ,OAAOA,EAAGsT,GAAUE,UAGpBE,EAAc,SAAU1T,EAAI0O,GAC9B,IAAK3H,EAAI/G,EAAIsT,GAAW,CAEtB,IAAKR,EAAa9S,GAAK,OAAO,EAE9B,IAAK0O,EAAQ,OAAO,EAEpB6E,EAAYvT,GAEZ,OAAOA,EAAGsT,GAAUG,UAIpBE,EAAW,SAAU3T,GAEvB,OADIqT,GAAYvO,EAAKwN,UAAYQ,EAAa9S,KAAQ+G,EAAI/G,EAAIsT,IAAWC,EAAYvT,GAC9EA,GAGL8E,EAAOtB,EAAOC,QAAU,CAC1B6O,UAAU,EACVpD,QAASA,EACTwE,YAAaA,EACbC,SAAUA,GAGZR,EAAWG,IAAY","file":"static/js/chunk-6c14c2d1.a89e7f1b.js","sourcesContent":["export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export class ColorConverter {\n constructor(ranges) {\n this.ranges = {\n hue: [0, 360],\n sat: [0, 100],\n bri: [0, 100],\n ct: [154, 500],\n }\n\n if (ranges)\n for (const attr of Object.keys(this.ranges))\n if (ranges[attr])\n this.ranges[attr] = ranges[attr]\n }\n\n normalize(x, xRange, yRange) {\n return yRange[0] + (((x-xRange[0]) * (yRange[1]-yRange[0])) / (xRange[1]-xRange[0]))\n }\n\n hslToRgb(h, s, l) {\n [h, s, l] = [\n this.normalize(h, this.ranges.hue, [0, 360]),\n this.normalize(s, this.ranges.sat, [0, 100]),\n this.normalize(l, this.ranges.bri, [0, 100]),\n ]\n\n l /= 100\n const a = s * Math.min(l, 1 - l) / 100\n const f = n => {\n const k = (n + h / 30) % 12\n const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1)\n return Math.round(255 * color)\n }\n\n return [f(0), f(8), f(4)]\n }\n\n rgbToHsl(r, g, b){\n r /= 255\n g /= 255\n b /= 255;\n const max = Math.max(r, g, b), min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if(max === min){\n h = s = 0; // achromatic\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch(max){\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n }\n h /= 6;\n }\n\n return [\n parseInt(this.normalize(h, [0, 1], this.ranges.hue)),\n parseInt(this.normalize(s, [0, 1], this.ranges.sat)),\n parseInt(this.normalize(l, [0, 1], this.ranges.bri)),\n ]\n }\n\n xyToRgb(x, y, brightness) {\n // Set to maximum brightness if no custom value was given (Not the slick ECMAScript 6 way for compatibility reasons)\n if (brightness == null)\n brightness = this.ranges.bri[1];\n\n const z = 1.0 - x - y;\n const Y = (brightness / (this.ranges.bri[1]-1)).toFixed(2);\n const X = (Y / y) * x;\n const Z = (Y / y) * z;\n\n //Convert to RGB using Wide RGB D65 conversion\n let red \t= X * 1.656492 - Y * 0.354851 - Z * 0.255038;\n let green = -X * 0.707196 + Y * 1.655397 + Z * 0.036152;\n let blue \t= X * 0.051713 - Y * 0.121364 + Z * 1.011530;\n\n //If red, green or blue is larger than 1.0 set it back to the maximum of 1.0\n if (red > blue && red > green && red > 1.0) {\n green = green / red;\n blue = blue / red;\n red = 1.0;\n } else if (green > blue && green > red && green > 1.0) {\n red = red / green;\n blue = blue / green;\n green = 1.0;\n } else if (blue > red && blue > green && blue > 1.0) {\n red = red / blue;\n green = green / blue;\n blue = 1.0;\n }\n\n //Reverse gamma correction\n red \t= red <= 0.0031308 ? 12.92 * red : (1.0 + 0.055) * Math.pow(red, (1.0 / 2.4)) - 0.055;\n green \t= green <= 0.0031308 ? 12.92 * green : (1.0 + 0.055) * Math.pow(green, (1.0 / 2.4)) - 0.055;\n blue \t= blue <= 0.0031308 ? 12.92 * blue : (1.0 + 0.055) * Math.pow(blue, (1.0 / 2.4)) - 0.055;\n\n //Convert normalized decimal to decimal\n red \t= Math.round(red * 255);\n green \t= Math.round(green * 255);\n blue \t= Math.round(blue * 255);\n\n if (isNaN(red))\n red = 0;\n if (isNaN(green))\n green = 0;\n if (isNaN(blue))\n blue = 0;\n\n return [red, green, blue].map(\n (c) => Math.min(Math.max(0, c), 255)) // lgtm [js/automatic-semicolon-insertion]\n }\n\n rgbToXY(red, green, blue) {\n if (red > 1) { red /= 255; }\n if (green > 1) { green /= 255; }\n if (blue > 1) { blue /= 255; }\n\n //Apply a gamma correction to the RGB values, which makes the color more vivid and more the like the color displayed on the screen of your device\n red \t= (red > 0.04045) ? Math.pow((red + 0.055) / (1.0 + 0.055), 2.4) : (red / 12.92);\n green \t= (green > 0.04045) ? Math.pow((green + 0.055) / (1.0 + 0.055), 2.4) : (green / 12.92);\n blue \t= (blue > 0.04045) ? Math.pow((blue + 0.055) / (1.0 + 0.055), 2.4) : (blue / 12.92);\n\n //RGB values to XYZ using the Wide RGB D65 conversion formula\n const X \t\t= red * 0.664511 + green * 0.154324 + blue * 0.162028;\n const Y \t\t= red * 0.283881 + green * 0.668433 + blue * 0.047685;\n const Z \t\t= red * 0.000088 + green * 0.072310 + blue * 0.986039;\n\n //Calculate the xy values from the XYZ values\n let x \t\t= parseFloat((X / (X + Y + Z)).toFixed(4));\n let y \t\t= parseFloat((Y / (X + Y + Z)).toFixed(4));\n\n if (isNaN(x))\n x = 0;\n if (isNaN(y))\n y = 0;\n\n return [x, y];\n }\n\n rgbToBri(red, green, blue) {\n return Math.min(2 * this.rgbToHsl(red, green, blue)[2], this.ranges.bri[1])\n }\n\n getRGB(color) {\n if (color.red != null && color.green != null && color.blue != null)\n return [color.red, color.green, color.blue]\n if (color.r != null && color.g != null && color.b != null)\n return [color.r, color.g, color.b]\n if (color.rgb)\n return color.rgb\n }\n\n getXY(color) {\n if (color.x != null && color.y != null)\n return [color.x, color.y]\n if (color.xy)\n return color.xy\n }\n\n toRGB(color) {\n const rgb = this.getRGB(color)\n if (rgb)\n return rgb\n\n const xy = this.getXY(color)\n if (xy && color.bri)\n return this.xyToRgb(...xy, color.bri)\n if (color.hue && color.sat && color.bri)\n return this.hslToRgb(color.hue, color.sat, color.bri)\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toXY(color) {\n const xy = this.getXY(color)\n if (xy && color.bri)\n return [xy[0], xy[1], color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToXY(...rgb)\n\n if (color.hue && color.sat && color.bri) {\n const rgb = this.hslToRgb(color.hue, color.sat, color.bri)\n return this.rgbToXY(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n\n toHSL(color) {\n if (color.hue && color.sat && color.bri)\n return [color.hue, color.sat, color.bri]\n\n const rgb = this.getRGB(color)\n if (rgb)\n return this.rgbToHsl(...rgb)\n\n const xy = this.getXY(color)\n if (xy && color.bri) {\n const rgb = this.xyToRgb(...xy, color.bri)\n return this.rgbToHsl(...rgb)\n }\n\n console.debug('Could not determine color space')\n console.debug(color)\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.github.io/ecma262/#sec-set-objects\nmodule.exports = collection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","<template>\n <div class=\"zigbee-container\">\n <Loading v-if=\"loading\" />\n\n <Modal title=\"Network Info\" ref=\"infoModal\">\n <div class=\"info-body\" v-if=\"status.info\">\n <div class=\"row\">\n <div class=\"param-name\">State</div>\n <div class=\"param-value\" v-text=\"status.state\" />\n </div>\n\n <div class=\"row\">\n <div class=\"param-name\">Permit Join</div>\n <div class=\"param-value\" v-text=\"status.info.permit_join\" />\n </div>\n\n <div class=\"row\" v-if=\"status.info.network\">\n <div class=\"param-name\">Network Channel</div>\n <div class=\"param-value\" v-text=\"status.info.network.channel\" />\n </div>\n\n <div class=\"row\">\n <div class=\"param-name\">Zigbee2MQTT Version</div>\n <div class=\"param-value\" v-text=\"status.info.version\" />\n </div>\n\n <div class=\"row\" v-if=\"status.info.config?.mqtt\">\n <div class=\"param-name\">MQTT Server</div>\n <div class=\"param-value\" v-text=\"status.info.config.mqtt.server\" />\n </div>\n\n <div class=\"row\" v-if=\"status.info.config?.serial\">\n <div class=\"param-name\">Serial Port</div>\n <div class=\"param-value\" v-text=\"status.info.config.serial.port\" />\n </div>\n\n <div class=\"row\" v-if=\"status.info.coordinator?.type\">\n <div class=\"param-name\">Firmware Type</div>\n <div class=\"param-value\" v-text=\"status.info.coordinator.type\" />\n </div>\n\n <div class=\"row\" v-if=\"status.info.coordinator?.meta\">\n <div class=\"param-name\">Firmware Version</div>\n <div class=\"param-value\">\n {{ status.info.coordinator.meta.maintrel }}.{{ status.info.coordinator.meta.majorrel }}.{{ status.info.coordinator.meta.minorrel }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"status.info.coordinator?.meta\">\n <div class=\"param-name\">Firmware Revision</div>\n <div class=\"param-value\" v-text=\"status.info.coordinator.meta.revision\" />\n </div>\n </div>\n </Modal>\n\n <div class=\"view-options\">\n <div class=\"view-selector col-s-8 col-m-9 col-l-10\">\n <label>\n <select :value=\"selected.view\" @change=\"this.selected.view = $event.target.value\">\n <option v-for=\"(enabled, view) in views\"\n v-text=\"(view[0].toUpperCase() + view.slice(1)).replace('_', ' ')\"\n :key=\"view\" :selected=\"enabled\" :value=\"view\">\n </option>\n </select>\n </label>\n </div>\n\n <div class=\"buttons\">\n <button class=\"btn btn-default\" title=\"Add Group\" v-if=\"selected.view === 'groups'\"\n :disabled=\"loading\" @click=\"addGroup\">\n <i class=\"fa fa-plus\"></i>\n </button>\n\n <Dropdown ref=\"networkCommandsDropdown\" icon-class=\"fa fa-cog\" title=\"Network commands\">\n <DropdownItem text=\"Network Info\" :disabled=\"loading\" @click=\"$refs.infoModal.show()\" />\n <DropdownItem text=\"Permit Join\" :disabled=\"loading\" @click=\"permitJoin(true)\"\n v-if=\"!status.info?.permit_join\" />\n <DropdownItem text=\"Disable Join\" :disabled=\"loading\" @click=\"permitJoin(false)\" v-else/>\n <DropdownItem text=\"Factory Reset\" :disabled=\"loading\" @click=\"factoryReset\" />\n </Dropdown>\n\n <button class=\"btn btn-default\" title=\"Refresh network\" :disabled=\"loading\" @click=\"refresh\">\n <i class=\"fa fa-sync-alt\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"view-container\">\n <div class=\"view devices\" v-if=\"selected.view === 'devices'\">\n <div class=\"no-items\" v-if=\"!Object.keys(devices).length\">\n <div class=\"loading\" v-if=\"loading\">Loading devices...</div>\n <div class=\"empty\" v-else>No devices found on the network</div>\n </div>\n\n <Device v-for=\"(device, id) in devices\" :key=\"id\"\n :device=\"device\" :groups=\"groups\" :selected=\"selected.deviceId === id\"\n @select=\"selected.deviceId = selected.deviceId === id ? null : id\"\n @rename=\"refreshDevices\" @remove=\"refreshDevices\" @groups-edit=\"refreshGroups\" />\n </div>\n\n <div class=\"view groups\" v-else-if=\"selected.view === 'groups'\">\n <div class=\"no-items\" v-if=\"!Object.keys(groups).length\">\n <div class=\"loading\" v-if=\"loading\">Loading groups...</div>\n <div class=\"empty\" v-else>No groups available on the network</div>\n </div>\n\n <Group v-for=\"(group, id) in groups\" :key=\"id\" :group=\"group\" :devices=\"devices\"\n :selected=\"selected.groupId === id\"\n @select=\"selected.groupId = selected.groupId === id ? null : id\"\n @rename=\"refreshGroups\" @remove=\"refreshGroups\" @edit=\"refreshGroups\" />\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Dropdown from \"../../elements/Dropdown\"\nimport DropdownItem from \"@/components/elements/DropdownItem\"\nimport Loading from \"@/components/Loading\"\nimport Utils from \"@/Utils\"\n\nimport Device from \"@/components/panels/ZigbeeMqtt/Device\";\nimport Group from \"@/components/panels/ZigbeeMqtt/Group\";\nimport Modal from \"@/components/Modal\";\n\nexport default {\n name: \"ZigbeeMqtt\",\n components: {Modal, Dropdown, DropdownItem, Loading, Device, Group},\n mixins: [Utils],\n\n data() {\n return {\n devices: {},\n groups: {},\n status: {},\n loading: false,\n selected: {\n view: 'devices',\n deviceId: undefined,\n groupId: undefined,\n },\n views: {\n devices: true,\n groups: true,\n },\n modal: {\n group: {\n visible: false,\n },\n },\n }\n },\n\n methods: {\n async refreshDevices() {\n this.loading = true\n\n try {\n this.devices = (await this.request('zigbee.mqtt.devices')).reduce((devices, device) => {\n if (device.friendly_name in this.devices) {\n device = {\n values: this.devices[device.friendly_name].values || {},\n ...this.devices[device.friendly_name],\n }\n }\n\n devices[device.friendly_name] = device\n return devices\n }, {})\n } finally {\n this.loading = false\n }\n },\n\n async refreshGroups() {\n this.loading = true\n try {\n this.groups = (await this.request('zigbee.mqtt.groups')).reduce((groups, group) => {\n groups[group.id] = group\n return groups\n }, {})\n } finally {\n this.loading = false\n }\n },\n\n async refreshInfo() {\n this.loading = true\n try {\n this.status = await this.request('zigbee.mqtt.info')\n } finally {\n this.loading = false\n }\n },\n\n refresh() {\n this.refreshDevices()\n this.refreshGroups()\n this.refreshInfo()\n },\n\n updateProperties(device, props) {\n this.devices[device].values = props\n },\n\n async addGroup() {\n const name = prompt('Group name')\n if (!(name && name.length)) {\n return\n }\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.group_add', {name: name})\n } finally {\n this.loading = false\n }\n\n await this.refreshGroups()\n },\n\n async permitJoin(permit) {\n const args = {permit: !!permit}\n if (permit) {\n let seconds = prompt('Join allow period in seconds (0 or empty for no time limits)', '60')\n args.seconds = seconds.length ? parseInt(seconds) : null\n }\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.permit_join', args)\n setTimeout(this.refreshInfo, 1000)\n } finally {\n this.loading = false\n }\n },\n\n async factoryReset() {\n if (!confirm('Are you SURE that you want to do a device factory reset?')) {\n if (!confirm('Are you REALLY sure? ALL network information and custom firmware will be lost!!'))\n return\n }\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.factory_reset')\n } finally {\n this.loading = false\n }\n },\n\n async addToGroup(device, group) {\n this.loading = true\n await this.request('zigbee.mqtt.group_add_device', {\n device: device,\n group: group,\n })\n\n this.loading = false\n const self = this\n\n setTimeout(() => {\n self.refresh()\n self.refreshGroups()\n }, 100)\n },\n },\n\n created() {\n this.subscribe(() => {\n this.notify({\n text: 'WARNING: The controller is offline',\n error: true,\n })\n }, 'on-zigbee-offline', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttOfflineEvent')\n\n this.subscribe(() => {\n this.notify({\n text: 'The controller is now online',\n iconClass: 'fas fa-check',\n })\n }, 'on-zigbee-online', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttOnlineEvent')\n\n this.subscribe(() => {\n this.notify({\n text: 'Failed to remove the device',\n error: true,\n })\n }, 'on-zigbee-device-remove-failed', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRemovedFailedEvent')\n\n this.subscribe(() => {\n this.notify({\n text: 'Failed to add the group',\n error: true,\n })\n }, 'on-zigbee-group-add-failed', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupAddedFailedEvent')\n\n this.subscribe(() => {\n this.notify({\n text: 'Failed to remove group',\n error: true,\n })\n }, 'on-zigbee-group-remove-failed', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemovedFailedEvent')\n\n this.subscribe(() => {\n this.notify({\n text: 'Failed to remove the devices from group',\n error: true,\n })\n }, 'on-zigbee-remove-all-failed',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemoveAllFailedEvent')\n\n this.subscribe((event) => {\n this.notify({\n text: event.error || '[Unknown error]',\n error: true,\n })\n }, 'on-zigbee-error', 'platypush.message.event.zigbee.mqtt.ZigbeeMqttErrorEvent')\n\n this.subscribe(this.refresh, 'on-zigbee-device-update',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttOnlineEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDevicePairingEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceConnectedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceBannedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRemovedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceWhitelistedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceRenamedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceBindEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDeviceUnbindEvent',\n )\n\n this.subscribe(this.refreshGroups, 'on-zigbee-group-update',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupAddedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemovedEvent',\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttGroupRemoveAllEvent',\n )\n },\n\n mounted() {\n this.refresh()\n },\n\n unmounted() {\n this.unsubscribe('on-zigbee-error')\n this.unsubscribe('on-zigbee-remove-all-failed')\n this.unsubscribe('on-zigbee-group-remove-failed')\n this.unsubscribe('on-zigbee-group-add-failed')\n this.unsubscribe('on-zigbee-device-remove-failed')\n this.unsubscribe('on-zigbee-online')\n this.unsubscribe('on-zigbee-offline')\n this.unsubscribe('on-zigbee-device-update')\n this.unsubscribe('on-zigbee-group-update')\n },\n}\n</script>\n\n<style lang=\"scss\">\n@import \"common\";\n\n.zigbee-container {\n width: 100%;\n height: 100%;\n padding: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n overflow: auto;\n\n .no-items {\n padding: 2em;\n font-size: 1.5em;\n color: $no-items-color;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .view-options {\n display: flex;\n width: 100%;\n height: $header-height;\n justify-content: space-between;\n align-items: center;\n padding: 0;\n background: $header-bg;\n border-bottom: $default-border-2;\n box-shadow: $border-shadow-bottom;\n\n .view-selector {\n display: inline-flex;\n padding-left: .5em;\n\n label {\n width: 100%;\n }\n }\n\n .buttons {\n display: inline-flex;\n margin: 0;\n\n button {\n background: none;\n border: none;\n padding: 0 .75em;\n\n &:hover {\n color: $default-hover-fg;\n }\n }\n\n .dropdown {\n .item {\n padding: .5em 2em .5em .5em;\n }\n }\n }\n }\n\n .view-container {\n width: 100%;\n height: calc(100% - #{$header-height});\n display: flex;\n justify-content: center;\n overflow: auto;\n }\n\n .view {\n height: max-content;\n background: $view-bg;\n border: $view-border;\n box-shadow: $view-box-shadow;\n }\n\n @media screen and (max-width: $tablet) {\n .view {\n width: 100%;\n }\n }\n\n @media screen and (min-width: $tablet) {\n .view {\n width: 100%;\n }\n }\n\n @media screen and (min-width: $desktop) {\n .view {\n min-width: 400pt;\n max-width: 750pt;\n border-radius: 1.5em;\n }\n\n .view-container {\n padding-top: 2em;\n }\n }\n\n .params {\n background: $params-bg;\n padding-bottom: 1em;\n\n .section {\n display: flex;\n flex-direction: column;\n padding: 0 1em;\n\n &:not(:first-child) {\n padding-top: 1em;\n }\n\n .header {\n display: flex;\n align-items: center;\n font-weight: bold;\n border-bottom: $param-section-header-border;\n }\n }\n\n }\n\n .btn-value-name-edit {\n padding: 0;\n }\n\n .modal {\n .section {\n .header {\n background: none;\n padding: .5em 0;\n }\n\n .body {\n padding: 0;\n }\n }\n\n .network-info {\n min-width: 600pt;\n }\n }\n\n .error {\n color: $error-color;\n }\n\n .device, .group {\n .actions {\n .row {\n cursor: pointer;\n }\n }\n\n form {\n margin-bottom: 0;\n }\n\n .param-value {\n input[type=text] {\n text-align: right;\n }\n }\n }\n\n .info-body {\n margin: -2em;\n padding: 0;\n\n .row {\n padding: 1em .5em;\n\n .param-name {\n font-weight: bold;\n }\n }\n }\n\n @media screen and (max-width: $tablet) {\n .info-body {\n width: 100vw;\n }\n }\n\n @media screen and (min-width: $tablet) {\n .info-body {\n width: 80vw;\n }\n }\n\n @media screen and (min-width: $desktop) {\n .info-body {\n width: 60vw;\n max-width: 30em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"item device\" :class=\"{selected: selected}\">\n <Loading v-if=\"loading\" />\n\n <Modal class=\"groups-modal\" ref=\"groupsModal\" title=\"Device groups\">\n <Loading v-if=\"loading\" />\n\n <form class=\"content\" @submit.prevent=\"manageGroups\">\n <div class=\"groups\">\n <label class=\"row group\" v-for=\"(group, id) in groups\" :key=\"id\">\n <input type=\"checkbox\" :value=\"id\" :checked=\"associatedGroups.has(parseInt(group.id))\">\n <span class=\"name\" v-text=\"group.friendly_name?.length ? group.friendly_name : `[Group #${group.id}]`\" />\n </label>\n </div>\n\n <div class=\"footer buttons\">\n <button type=\"submit\">Save</button>\n </div>\n </form>\n </Modal>\n\n <div class=\"row name header vertical-center\" :class=\"{selected: selected}\"\n v-text=\"device.friendly_name || device.ieee_address\" @click=\"$emit('select')\" />\n\n <div class=\"params\" v-if=\"selected\">\n <div class=\"row\">\n <div class=\"param-name\">Name</div>\n <div class=\"param-value\">\n <div class=\"name-edit\" :class=\"{hidden: !editName}\">\n <form @submit.prevent=\"rename\">\n <label>\n <input type=\"text\" name=\"name\" ref=\"name\" :value=\"device.friendly_name\">\n </label>\n\n <span class=\"buttons\">\n <button type=\"button\" class=\"btn btn-default\" @click=\"editName = false\">\n <i class=\"fas fa-times\"></i>\n </button>\n\n <button type=\"submit\" class=\"btn btn-default\">\n <i class=\"fa fa-check\"></i>\n </button>\n </span>\n </form>\n </div>\n\n <div class=\"name-edit\" :class=\"{hidden: editName}\">\n <span v-text=\"device.friendly_name\"></span>\n <span class=\"buttons\">\n <button type=\"button\" class=\"btn btn-default\" @click=\"editName = true\">\n <i class=\"fa fa-edit\"></i>\n </button>\n </span>\n </div>\n </div>\n </div>\n\n <div class=\"row\">\n <div class=\"param-name\">IEEE Address</div>\n <div class=\"param-value\" v-text=\"device.ieee_address\"></div>\n </div>\n\n <div class=\"row\" v-if=\"device.network_address\">\n <div class=\"param-name\">Network Address</div>\n <div class=\"param-value\" v-text=\"device.network_address\"></div>\n </div>\n\n <div class=\"row\">\n <div class=\"param-name\">Type</div>\n <div class=\"param-value\" v-text=\"device.type\"></div>\n </div>\n\n <div class=\"row\" v-if=\"device.definition?.vendor\">\n <div class=\"param-name\">Vendor</div>\n <div class=\"param-value\">\n {{ device.definition.vendor }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.definition?.model\">\n <div class=\"param-name\">Model</div>\n <div class=\"param-value\">\n {{ device.definition.model }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.model_id\">\n <div class=\"param-name\">Model ID</div>\n <div class=\"param-value\">\n {{ device.model_id }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.definition?.description\">\n <div class=\"param-name\">Description</div>\n <div class=\"param-value\">\n {{ device.definition.description }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.software_build_id\">\n <div class=\"param-name\">Software Build ID</div>\n <div class=\"param-value\">\n {{ device.software_build_id }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.definition?.date_code\">\n <div class=\"param-name\">Date Code</div>\n <div class=\"param-value\">\n {{ device.definition.date_code }}\n </div>\n </div>\n\n <div class=\"row\" v-if=\"device.power_source\">\n <div class=\"param-name\">Power Source</div>\n <div class=\"param-value\">\n {{ device.power_source }}\n </div>\n </div>\n\n <div class=\"section values\" v-if=\"Object.keys(displayedValues).length\">\n <div class=\"header\">\n <div class=\"title\">Values</div>\n </div>\n\n <div class=\"body\">\n <div class=\"row value\" v-for=\"(value, property) in displayedValues\" :key=\"property\">\n <div class=\"param-name\">\n {{ value.description }}\n <span class=\"text\" v-if=\"rgbColor != null && (value.value?.x != null && value.value?.y != null) ||\n (value.value?.hue != null && value.value?.saturation != null)\">Color</span>\n <span class=\"name\" v-text=\"value.property\" v-if=\"value.property\" />\n <span class=\"unit\" v-text=\"value.unit\" v-if=\"value.unit\" />\n </div>\n\n <div class=\"param-value\">\n <ToggleSwitch :value=\"value.value_on != null ? value.value === value.value_on : !!value.value\"\n :disabled=\"!value.writable\" v-if=\"value.type === 'binary'\"\n @input=\"setValue(value, $event)\" />\n\n <Slider :with-label=\"true\" :range=\"[value.value_min, value.value_max]\" :value=\"value.value\"\n :disabled=\"!value.writable\" @change=\"setValue(value, $event)\"\n v-else-if=\"value.type === 'numeric' && value.value_min != null && value.value_max != null\" />\n\n <label v-else-if=\"value.type === 'numeric' && (value.value_min == null || value.value_max == null)\">\n <input type=\"number\" :with-label=\"true\" :value=\"value.value\" :disabled=\"!value.writable\"\n @change=\"setValue(value, $event)\" />\n </label>\n\n <label v-else-if=\"value.type === 'enum'\">\n <select :value=\"value.readable && value.value != null ? value.value : ''\"\n @change=\"setValue(value, $event)\">\n <option v-if=\"!value.readable\" />\n <option v-for=\"option in value.values\" :key=\"option\" :value=\"option\" v-text=\"option\"\n :selected=\"value.readable && value.value === option\" :disabled=\"!value.writable\" />\n </select>\n </label>\n\n <label v-else-if=\"rgbColor != null && (value.value?.x != null && value.value?.y != null) ||\n (value.value?.hue != null && value.value?.saturation != null)\">\n <input type=\"color\" @change.stop=\"setValue(value, $event)\"\n :value=\"'#' + rgbColor.map((i) => { i = Number(i).toString(16); return i.length === 1 ? '0' + i : i }).join('')\" />\n </label>\n\n <label v-else>\n <input type=\"text\" :disabled=\"!value.writable\" :value=\"value.value\" @change=\"setValue(value, $event)\" />\n </label>\n </div>\n </div>\n </div>\n </div>\n\n <div class=\"section actions\">\n <div class=\"header\">\n <div class=\"title\">Actions</div>\n </div>\n\n <div class=\"body\">\n <div class=\"row\" @click=\"$refs.groupsModal.show()\">\n <div class=\"param-name\">Manage groups</div>\n <div class=\"param-value\">\n <i class=\"fa fa-network-wired\" />\n </div>\n </div>\n\n <div class=\"row\" @click=\"otaUpdatesAvailable ? installOtaUpdates() : checkOtaUpdates()\">\n <div class=\"param-name\" v-if=\"!otaUpdatesAvailable\">Check for updates</div>\n <div class=\"param-name\" v-else>Install updates</div>\n <div class=\"param-value\">\n <i class=\"fa fa-sync-alt\" />\n </div>\n </div>\n\n <div class=\"row\" @click=\"remove(false)\">\n <div class=\"param-name\">Remove Device</div>\n <div class=\"param-value\">\n <i class=\"fa fa-trash\" />\n </div>\n </div>\n\n <div class=\"row error\" @click=\"remove(true)\">\n <div class=\"param-name\">Force Remove Device</div>\n <div class=\"param-value\">\n <i class=\"fa fa-trash\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\";\nimport Slider from \"@/components/elements/Slider\";\nimport ToggleSwitch from \"@/components/elements/ToggleSwitch\";\nimport Utils from \"@/Utils\";\nimport {ColorConverter} from \"@/components/panels/Light/color\";\nimport Modal from \"@/components/Modal\";\n\nexport default {\n name: \"Device\",\n components: {Modal, ToggleSwitch, Slider, Loading},\n mixins: [Utils],\n emits: ['select', 'rename', 'remove', 'groups-edit'],\n\n props: {\n device: {\n type: Object,\n required: true,\n },\n\n groups: {\n type: Object,\n default: () => {},\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n editName: false,\n loading: false,\n status: {},\n otaUpdatesAvailable: false,\n }\n },\n\n computed: {\n values() {\n if (!this.device.definition?.exposes)\n return {}\n\n const extractValues = (values) => {\n const extractValue = (value, root) => {\n if (!value.features) {\n if (value.property)\n root[value.property] = value\n\n return\n }\n\n if (value.property) {\n root[value.property] = root[value.property] || {}\n root = root[value.property]\n }\n\n for (const feature of value.features)\n extractValue(feature, root)\n }\n\n const ret = {}\n for (const value of values)\n extractValue(value, ret)\n\n return ret\n }\n\n return extractValues(this.device.definition.exposes)\n },\n\n displayedValues() {\n const ret = {}\n const mergeValues = (obj, [key, value]) => {\n if (key in this.status)\n value = {\n ...value,\n value: this.status[key]\n }\n\n if (value.access != null) {\n value.readable = !!(value.access & 0x1)\n value.writable = !!(value.access & 0x2)\n delete value.access\n }\n\n obj[key] = value\n Object.entries(value).filter((v) => v[1] instanceof Object).reduce(mergeValues, obj[key])\n return obj\n }\n\n Object.entries(this.values).reduce(mergeValues, ret)\n return ret\n },\n\n rgbColor() {\n if (!this.displayedValues.color)\n return\n\n const color = this.displayedValues.color?.value\n if (!color)\n return\n\n if (color.x != null && color.y != null) {\n const converter = new ColorConverter({\n bri: [this.displayedValues.brightness?.value_min || 0, this.displayedValues.brightness?.value_max || 255],\n })\n\n return converter.xyToRgb(color.x, color.y, this.displayedValues.brightness.value)\n } else\n if (color.hue != null && (color.saturation != null || color.sat != null)) {\n const satAttr = color.saturation != null ? 'saturation' : 'sat'\n const converter = new ColorConverter({\n hue: [this.displayedValues.color.hue?.value_min || 0, this.displayedValues.color.hue.value_max || 65535],\n sat: [this.displayedValues.color[satAttr]?.value_min || 0, this.displayedValues.color[satAttr].value_max || 255],\n bri: [this.displayedValues.brightness?.value_min || 0, this.displayedValues.brightness?.value_max || 255],\n })\n\n return converter.hslToRgb(color.hue, color[satAttr], this.displayedValues.brightness.value)\n }\n\n return null\n },\n\n associatedGroups() {\n return new Set(Object.values(this.groups)\n .filter((group) => new Set(\n (group.members || []).map((member) => member.ieee_address)).has(this.device.ieee_address))\n .map((group) => parseInt(group.id)))\n },\n },\n\n methods: {\n async refresh() {\n this.loading = true\n try {\n this.status = await this.request('zigbee.mqtt.device_get',\n {device: this.device.friendly_name || this.device.ieee_address})\n } finally {\n this.loading = false\n }\n },\n\n async rename() {\n const name = (this.$refs.name.value || '').trim()\n if (!name.length || name === this.device.friendly_name)\n return\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.device_rename', {\n device: this.device.friendly_name?.length ? this.device.friendly_name : this.device.ieee_address,\n name: name,\n })\n\n this.$emit('rename', {name: this.device.friendly_name, newName: name});\n } finally {\n this.editName = false\n this.loading = false\n }\n },\n\n async remove(force) {\n if (!confirm('Are you really sure that you want to remove this device from the network?'))\n return\n\n force = !!force\n this.loading = true\n try {\n await this.request('zigbee.mqtt.device_remove', {\n device: this.device.friendly_name?.length ? this.device.friendly_name : this.device.ieee_address,\n force: force,\n })\n\n this.$emit('remove', {device: this.device.friendly_name || this.device.ieee_address});\n } finally {\n this.loading = false\n }\n },\n\n async setValue(value, event) {\n const request = {\n device: this.device.friendly_name || this.device.ieee_address,\n property: value.property,\n value: null,\n }\n\n switch (value.type) {\n case 'binary':\n if (value.value_toggle) {\n request.value = value.value_toggle\n } else if (value.value_on && value.value_off) {\n request.value = value.value === value.value_on ? value.value_off : value.value_on\n } else {\n request.value = !value.value\n }\n break\n\n case 'numeric':\n request.value = parseFloat(event.target.value)\n break\n\n case 'enum':\n if (event.target.value?.length) {\n request.value = event.target.value\n }\n break\n\n default:\n if ((value.x != null && value.y != null) || (value.hue != null && (value.saturation != null || value.sat != null))) {\n request.property = 'color'\n const rgb = event.target.value.slice(1)\n .split(/([0-9a-fA-F]{2})/)\n .filter((_, i) => i % 2)\n .map((i) => parseInt(i, 16))\n\n if ((value.x != null && value.y != null)) {\n const converter = new ColorConverter({\n bri: [this.displayedValues.brightness?.value_min || 0, this.displayedValues.brightness?.value_max || 255],\n })\n\n const xy = converter.rgbToXY(...rgb)\n request.value = {\n color: {\n x: xy[0],\n y: xy[1],\n }\n }\n } else {\n const satAttr = this.displayedValues.color.saturation != null ? 'saturation' : 'sat'\n const converter = new ColorConverter({\n hue: [this.displayedValues.color.hue?.value_min || 0, this.displayedValues.color.hue.value_max || 65535],\n sat: [this.displayedValues.color[satAttr]?.value_min || 0, this.displayedValues.color[satAttr].value_max || 255],\n bri: [this.displayedValues.brightness?.value_min || 0, this.displayedValues.brightness?.value_max || 255],\n })\n\n const hsl = converter.rgbToHsl(...rgb)\n request.value = {\n brightness: hsl[2],\n color: {\n hue: hsl[0],\n }\n }\n\n request.value.color[satAttr] = hsl[1]\n }\n }\n break\n }\n\n if (request.value == null)\n return\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.device_set', request)\n await this.refresh()\n } finally {\n this.loading = false\n }\n },\n\n async manageGroups(event) {\n const groups = [...event.target.querySelectorAll('input[type=checkbox]')].reduce((obj, element) => {\n const groupId = parseInt(element.value)\n if (element.checked && !this.associatedGroups.has(groupId))\n obj.add.add(groupId)\n else if (!element.checked && this.associatedGroups.has(groupId))\n obj.remove.add(groupId)\n\n return obj\n }, {add: new Set(), remove: new Set()})\n\n const editGroups = async (action) => {\n await Promise.all([...groups[action]].map(async (groupId) => {\n await this.request(`zigbee.mqtt.group_${action}_device`, {\n group: this.groups[groupId].friendly_name,\n device: this.device.friendly_name?.length ? this.device.friendly_name : this.device.ieee_address,\n })\n }))\n }\n\n this.loading = true\n try {\n await Promise.all(Object.keys(groups).map(editGroups))\n this.$emit('groups-edit', groups)\n } finally {\n this.loading = false\n }\n },\n\n async checkOtaUpdates() {\n this.loading = true\n try {\n this.otaUpdatesAvailable = (await this.request('zigbee.mqtt.device_check_ota_updates', {\n device: this.device.friendly_name?.length ? this.device.friendly_name : this.device.ieee_address,\n })).update_available\n\n if (this.otaUpdatesAvailable)\n this.notify({\n text: 'A firmware update is available for the device',\n image: {\n iconClass: 'fa fa-sync-alt',\n }\n })\n else\n this.notify({\n text: 'The device is up to date',\n image: {\n iconClass: 'fa fa-check',\n }\n })\n } finally {\n this.loading = false\n }\n },\n\n async installOtaUpdates() {\n this.loading = true\n try {\n await this.request('zigbee.mqtt.device_install_ota_updates', {\n device: this.device.friendly_name?.length ? this.device.friendly_name : this.device.ieee_address,\n })\n } finally {\n this.loading = false\n }\n },\n },\n\n mounted() {\n this.$watch(() => this.selected, (newValue) => {\n if (newValue)\n this.refresh()\n })\n\n this.$watch(() => this.status.update_available, (newValue) => {\n this.otaUpdatesAvailable = newValue\n })\n\n this.subscribe((event) => {\n if (event.device !== this.device.friendly_name && event.device !== this.device.ieee_address)\n return\n\n this.status = {...this.status, ...event.properties}\n }, `on-property-change-${this.device.ieee_address}`,\n 'platypush.message.event.zigbee.mqtt.ZigbeeMqttDevicePropertySetEvent')\n },\n\n unmounted() {\n this.unsubscribe(`on-property-change-${this.device.ieee_address}`)\n }\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n\n.groups-modal {\n .content {\n min-width: 20em;\n margin: -2em;\n padding: 0;\n border: none;\n box-shadow: none;\n }\n\n .group {\n width: 100%;\n display: flex;\n align-items: center;\n padding: .5em 1em !important;\n\n input[type=checkbox] {\n margin-right: 1em;\n }\n }\n\n .groups {\n width: 100%;\n height: calc(100% - 3.5em);\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n }\n\n .footer {\n width: 100%;\n height: 3.5em;\n display: flex;\n justify-content: right;\n align-items: center;\n padding: 0;\n background: $default-bg-2;\n border-top: $default-border-2;\n }\n}\n\n@media screen and (max-width: $tablet) {\n .section.actions {\n .row {\n flex-direction: row-reverse;\n justify-content: left;\n\n .param-name {\n width: auto;\n }\n\n .param-value {\n width: 1.5em;\n margin-right: .5em;\n }\n }\n }\n}\n</style>\n","import { render } from \"./Device.vue?vue&type=template&id=b05d09fc&scoped=true\"\nimport script from \"./Device.vue?vue&type=script&lang=js\"\nexport * from \"./Device.vue?vue&type=script&lang=js\"\n\nimport \"./Device.vue?vue&type=style&index=0&id=b05d09fc&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-b05d09fc\"\n\nexport default script","<template>\n <div class=\"item group\" :class=\"{selected: selected}\">\n <Loading v-if=\"loading\" />\n <div class=\"row name header vertical-center\" :class=\"{selected: selected}\"\n v-text=\"group.friendly_name\" @click=\"$emit('select')\" />\n\n <div class=\"params\" v-if=\"selected\">\n <div class=\"section devices\">\n <div class=\"header\">\n <div class=\"title\">Devices</div>\n </div>\n\n <div class=\"body\">\n <form>\n <label class=\"row\" v-for=\"(device, id) in devices\" :key=\"id\">\n <input type=\"checkbox\" :checked=\"members.has(device.ieee_address)\" :value=\"device.ieee_address\"\n @change=\"toggleDevice(device.ieee_address)\" />\n <span class=\"label\" v-text=\"device.friendly_name?.length ? device.friendly_name : device.ieee_address\" />\n </label>\n </form>\n </div>\n </div>\n\n <div class=\"section actions\">\n <div class=\"header\">\n <div class=\"title\">Actions</div>\n </div>\n\n <div class=\"body\">\n <div class=\"row\" @click=\"rename\">\n <div class=\"col-10\">Rename Group</div>\n <div class=\"buttons col-2 pull-right\">\n <i class=\"fa fa-edit\"></i>\n </div>\n </div>\n\n <div class=\"row\" @click=\"remove\">\n <div class=\"col-10\">Remove Group</div>\n <div class=\"buttons col-2 pull-right\">\n <i class=\"fa fa-trash\"></i>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Loading from \"@/components/Loading\";\nimport Utils from \"@/Utils\";\n\nexport default {\n name: \"Group\",\n emits: ['select', 'remove', 'edit'],\n mixins: [Utils],\n components: {Loading},\n\n props: {\n group: {\n type: Object,\n required: true,\n },\n\n devices: {\n type: Object,\n default: () => { return {} },\n },\n\n selected: {\n type: Boolean,\n default: false,\n },\n },\n\n data() {\n return {\n loading: false,\n values: {},\n }\n },\n\n computed: {\n devicesByAddress() {\n return Object.entries(this.devices).reduce((obj, entry) => {\n const device = entry[1]\n obj[device.ieee_address] = device\n return obj\n }, {})\n },\n\n members() {\n return new Set((this.group.members || []).map((member) => member.ieee_address))\n },\n },\n\n methods: {\n async remove() {\n if (!confirm('Are you sure that you want to remove this group?'))\n return\n\n this.loading = true\n try {\n await this.request('zigbee.mqtt.group_remove', {name: this.group.friendly_name})\n this.$emit('remove', {name: this.group.friendly_name})\n } finally {\n this.loading = false\n }\n },\n\n async rename() {\n let name = prompt('New group name', this.group.friendly_name)\n if (!name?.length)\n return\n\n name = name.trim()\n this.loading = true\n\n try {\n await this.request('zigbee.mqtt.group_rename', {\n group: this.group.friendly_name || this.group.id,\n name: name,\n })\n\n this.$emit('rename', {name: this.group.friendly_name, newName: name})\n } finally {\n this.loading = false\n }\n },\n\n async toggleDevice(ieeeAddress) {\n const device = this.devicesByAddress[ieeeAddress]\n const name = device.friendly_name?.length ? device.friendly_name : ieeeAddress\n const method = this.members.has(ieeeAddress) ? 'remove' : 'add'\n\n this.loading = true\n try {\n await this.request(`zigbee.mqtt.group_${method}_device`, {\n group: this.group.friendly_name,\n device: name,\n })\n\n this.$emit('edit', {device: name, method: method})\n } finally {\n this.loading = false\n }\n },\n },\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import \"common\";\n\n.section {\n padding-left: 1em !important;\n}\n\nform {\n margin: 0;\n padding: 0;\n border: none;\n box-shadow: none;\n\n .row {\n background: none !important;\n\n &:hover {\n background: $hover-bg !important;\n }\n\n .label {\n margin-left: .75em;\n font-weight: normal;\n }\n }\n}\n</style>\n","import { render } from \"./Group.vue?vue&type=template&id=7667f7ba&scoped=true\"\nimport script from \"./Group.vue?vue&type=script&lang=js\"\nexport * from \"./Group.vue?vue&type=script&lang=js\"\n\nimport \"./Group.vue?vue&type=style&index=0&id=7667f7ba&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-7667f7ba\"\n\nexport default script","import { render } from \"./Index.vue?vue&type=template&id=b15233ac\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\n\nimport \"./Index.vue?vue&type=style&index=0&id=b15233ac&lang=scss\"\nscript.render = render\n\nexport default script","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar redefineAll = require('../internals/redefine-all');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/define-iterator');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(C.prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return C;\n },\n setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return { value: undefined, done: true };\n }\n // return step by kind\n if (kind == 'keys') return { value: entry.key, done: false };\n if (kind == 'values') return { value: entry.value, done: false };\n return { value: [entry.key, entry.value], done: false };\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar redefine = require('../internals/redefine');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var nativeMethod = NativePrototype[KEY];\n redefine(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n nativeMethod.call(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n nativeMethod.call(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n // eslint-disable-next-line max-len\n if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n })))) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.REQUIRED = true;\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, Constructor, CONSTRUCTOR_NAME);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Group.vue?vue&type=style&index=0&id=7667f7ba&lang=scss&scoped=true\"","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Index.vue?vue&type=style&index=0&id=b15233ac&lang=scss\"","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Device.vue?vue&type=style&index=0&id=b05d09fc&lang=scss&scoped=true\"","var hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar has = require('../internals/has');\nvar defineProperty = require('../internals/object-define-property').f;\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + ++id, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!has(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar meta = module.exports = {\n REQUIRED: false,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n"],"sourceRoot":""}