{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./external/imatis.html5lib/js/general.js","webpack:///./external/imatis.html5lib/js/imatisButton.js","webpack:///./external/imatis.html5lib/js/imatisCheckbox.js","webpack:///./external/imatis.html5lib/js/imatisColorpicker.js","webpack:///./external/imatis.html5lib/js/imatisDatepicker.js","webpack:///./external/imatis.html5lib/js/imatisDropdown.js","webpack:///./external/imatis.html5lib/js/imatisFileupload.js","webpack:///./external/imatis.html5lib/js/imatisRadiobutton.js","webpack:///./external/imatis.html5lib/js/imatisRegexvalidator.js","webpack:///./external/imatis.html5lib/js/imatisTimepicker.js","webpack:///./external/imatis.html5lib/js/imatisUpdowncontrol.js","webpack:///./external/imatis.html5lib/js/utils.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","html5lib","dataKeys","extend","expr","data","createPseudo","dataName","elem","match","isUndefinedOrNull","obj","moveInArray","objArray","oldIndex","newIndex","length","k","push","undefined","splice","fn","preventDefault","event","returnValue","setReadOnly","this","each","idx","dataKey","disable","attr","setEnabled","enable","removeAttr","disableChildren","children","enableChildren","isDisabled","isEnabled","onClickInside","func","delegateTarget","startClientX","startClientY","delayBetweenClicks","isSet","off","on","e","changedTouches","clientX","clientY","changedTouch","endClientX","endClientY","shouldTriggEvent","endDelegateTarget","document","elementFromPoint","Math","abs","closest","lastClickTime","Date","getTime","window","toLocalIsoString","pad","tz","getTimezoneOffset","tzs","parseInt","nD","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","index","indexOf","substring","fromUtcStringToLocalDateTime","utcDateTime","toDateOnlyString","format","replace","formatAmPm","lhours","lminutes","ampm","toTimeOnlyString","hours","toTwoDigits","minutes","seconds","result","Number","toString","jQuery","imatisButton","el","options","$btnCtrl","empty","defaults","className","text","onClick","settings","append","id","class","hasClass","addClass","type","getText","find","setText","disabled","removeClass","trigger","message","time","plugin","dKey","getValue","setValue","imatisCheckbox","$chkBox","chkBox","imgUnchecked","imgUncheckedFocused","imgUncheckedDisabled","imgChecked","imgCheckedFocused","imgCheckedDisabled","isReadOnly","isChecked","onChange","init","content","imgBox","setCheckedValue","hasFocus","activeElement","src","documentElement","change","keyCode","which","setChecked","setEnabledValue","imatisColorPicker","$currCPicker","currCPicker","colorIndex","imatisColors","color","tabindex","btnColor","css","colorDialog","maxlength","readonly","displayCurrentColor","ulColorsChilds","currentColor","currentHexColor","rgb2Hex","rgb","li","val","toUpperCase","openCloseColorPicker","container","is","target","has","h","newVal","toLowerCase","getColor","setColor","dynTab","tabHeight","scrollTop","elTop","moveToLeft","newTop","elHeight","height","tab","scrollHeight","isFunction","round","position","top","offset","ulColors","slice","colorItem","getColors","imatisDatePicker","$dpCtrl","dpCtrl","ch","calendar","isMobile","inputOnly","getValueAsDate","currVal","now","chIndex","tbxDate","calendarObj","dialogArrow","button","isOpen","close","open","keyPressed","String","fromCharCode","RegExp","test","newValue","selectionEnd","selectionStart","regExp","valLen","setSelectionRange","oldVal","isNaN","hide","show","resultAsDate","kendoCalendar","footer","imatisDropdown","element","$currDdl","currDdl","inputTimeout","lastKeyCode","items","defaultName","defaultValue","defaultTag","defaultIcon","referenceObj","selBox","sBox","collapseDropDown","focus","checkReadOnly","setSelectedItem","cListEl","callEvent","iList","liEl","selIconObj","ddIconObj","getSelectedItem","findItemByInput","keyChar","clearTimeout","setTimeout","expandCollapseDdList","notSelected","lArea","Event","next","currentItem","prev","first","createItems","firstItem","tabIndex","defaultSet","createElement","setAttribute","icon","item","tag","appendChild","createTextNode","dValue","dName","dTag","defaultSelected","defaultSelectItem","loadDefaultItems","clear","noResult","character","isChar","getItemsCount","rest","hideItem","iListChildren","showItem","removeItem","remove","removeSelectedItem","addItems","loadItems","getSelectedIndex","iSelected","getSelectedValue","getSelectedText","getSelectedTag","setSelectedText","filter","parent","setSelectedValue","setSelectedIndex","setTagVisible","liTags","selTag","clearList","imatisFileupload","fupload","$fupload","title","uploadPath","fileTypes","placeHolder","browseBtnText","uploadBtnText","displayTitle","preview","onUploaded","types","browseIcon","uploadIcon","inst","btnUpload","txtUpload","browsePanel","btnBrowse","setPreview","uploadFile","picReader","FileReader","onload","frEvent","readAsDataURL","files","fileUploadDiv","imgPreview","uploadBtn","width","getFilename","encodeURI","uploadUrl","FormData","ajax","url","contentType","processData","done","respData","status","Key","imatisRadiobutton","$rBtn","groupName","rBtn","resetGroupValues","cGroupName","oRbtn","oSettings","getGroupName","regexValidator","Validate","clientId","regexKeyPress","regexContent","ValidateKey","imatisTimePicker","btnCtrl","lang","languages","langRes","tpHeader","btnNow","btnSave","lastInput","dNow","date","f","langIdx","tbxTime","timeObj","setTime","direction","max","oText","nVal","nText","setActive","objActive","lNr","input","cNr","shiftKey","trim","sep","seps","regexp","exec","char","newValHasSep1","newValLength","hh","mm","newValHasSep2","imatisUpDown","$udCtrl","udCtrl","minValue","maxValue","stepValue","tbxValue","currValue","isNumeric","btnDown","toFixed","split","btnUp","setStepValue","disabledDown","disabledUp","down","up","utils","base64","_keyStr","encode","u","a","_utf8_encode","charCodeAt","charAt","decode","_utf8_decode","c2","c3"],"mappings":"aACE,IAAIA,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,IAUV,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,QAKfF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEZ,EAAoBkB,EAAI,SAAShB,GACX,oBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,KAQvDrB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG/B,EAAoBkC,EAAI,GAIjBlC,EAAoBA,EAAoBmC,EAAI,K,wIC5ErD,SAAWC,GACTA,EAAEC,SAAW,CACX,QAAW,UAGb,IAAIC,EAAW,CAAC,iBAAkB,iBAAkB,oBAAqB,eAAgB,eAAgB,oBAAqB,mBAAoB,oBAClJF,EAAEG,OAAOH,EAAEI,KAAK,KAAM,CAClBC,KAAML,EAAEI,KAAKE,aACTN,EAAEI,KAAKE,aAAa,SAAUC,GAC1B,OAAO,SAAUC,GACb,QAASR,EAAEK,KAAKG,EAAMD,MAI9B,SAAUC,EAAMxC,EAAGyC,GACf,QAAST,EAAEK,KAAKG,EAAMC,EAAM,OAIxCT,EAAEU,kBAAoB,SAAUC,GAC9B,OAAO,MAAOA,GAEhBX,EAAEY,YAAc,SAASC,EAAUC,EAAUC,GAC3C,GAAIA,GAAYF,EAASG,OAEvB,IADA,IAAIC,EAAIF,EAAWF,EAASG,OACb,EAAPC,KACNJ,EAASK,UAAKC,GAIlB,OADAN,EAASO,OAAOL,EAAU,EAAGF,EAASO,OAAON,EAAU,GAAG,IACnDD,GAGTb,EAAEqB,GAAGlB,OAAO,CACVmB,eAAgB,SAAUC,GACpBA,EAAMD,eACRC,EAAMD,iBAENC,EAAMC,aAAc,GAGxBC,YAAa,SAAUxC,GACrB,IAAI0B,EAAMe,KACV1B,EAAE2B,KAAKzB,EAAU,SAAU0B,EAAKC,GACzB7B,EAAEU,kBAAkBV,EAAEW,GAAKN,KAAKwB,IAAY7B,EAAEW,GAAKN,KAAKwB,GAASJ,cACpEzB,EAAEW,GAAKN,KAAKwB,GAASJ,YAAYxC,MAIvC6C,QAAS,WACP,IAAInB,EAAMe,KACV1B,EAAEW,GAAKoB,KAAK,YAAY,GAExB/B,EAAE2B,KAAKzB,EAAU,SAAU0B,EAAKC,GACzB7B,EAAEU,kBAAkBV,EAAEW,GAAKN,KAAKwB,IAAY7B,EAAEW,GAAKN,KAAKwB,GAASG,aACpEhC,EAAEW,GAAKN,KAAKwB,GAASG,YAAW,MAItCC,OAAQ,WACN,IAAItB,EAAMe,KACV1B,EAAEW,GAAKuB,WAAW,YAElBlC,EAAE2B,KAAKzB,EAAU,SAAU0B,EAAKC,GACzB7B,EAAEU,kBAAkBV,EAAEW,GAAKN,KAAKwB,IAAY7B,EAAEW,GAAKN,KAAKwB,GAASG,aACpEhC,EAAEW,GAAKN,KAAKwB,GAASG,YAAW,MAItCG,gBAAiB,WAEfnC,EADU0B,MACHI,UAEP9B,EAAE2B,KAAK3B,EAAE0B,MAAMU,WAAY,SAAUR,EAAKnD,GACxCuB,EAAEvB,GAAGqD,UACL9B,EAAEvB,GAAG0D,qBAGTE,eAAgB,WAEdrC,EADU0B,MACHO,SAEPjC,EAAE2B,KAAK3B,EAAE0B,MAAMU,WAAY,SAAUR,EAAKnD,GACxCuB,EAAEvB,GAAGwD,SACLjC,EAAEvB,GAAG4D,oBAGTC,WAAY,WAEV,OAAOtC,EADG0B,MACIK,KAAK,aAErBQ,UAAW,WAET,OAAQvC,EADE0B,MACKK,KAAK,aAEtBS,cAAe,SAAUC,EAAV,GAEZ,IAGGC,EAAgBC,EAAcC,EAF1BC,GADP,6BAFY,IAA0B,CACvCA,mBAAoB,MAEZA,mBACJC,GAAQ,EAkDZ,OA/CApB,KAAKqB,IAAI,wCAAwCC,GAAG,uCAClD,SAASC,GACHH,IAGJA,GAAQ,EACRJ,EAAiBO,EAAEP,eAGjBE,OAF8B,IAArBK,EAAEC,gBACXP,EAAeM,EAAEC,eAAe,GAAGC,QACpBF,EAAEC,eAAe,GAAGE,UAEnCT,EAAeM,EAAEE,QACFF,EAAEG,YAElBL,IAAI,oCAAoCC,GAAG,mCAC9C,SAAUC,GACR,IAIMI,EAEJC,EACAC,EAPEC,GAAmB,EACnBC,EAAoBR,EAAEP,eAMxBa,OAJ8B,IAArBN,EAAEC,gBACPG,EAAeJ,EAAEC,eAAe,GACpCO,EAAoBC,SAASC,iBAAiBN,EAAaF,QAASE,EAAaD,SACjFE,EAAaD,EAAaF,QACbE,EAAaD,UAE1BE,EAAaL,EAAEE,QACFF,EAAEG,SAEbQ,KAAKC,IAAIlB,EAAeW,GAAc,IACxCM,KAAKC,IAAIjB,EAAeW,GAAc,KACtCC,GAAmB,GAGrBV,GAAQ,GACHU,GAAoBxD,EAAEyD,GAAmBK,QAAQpB,GAAgB1B,OAAS,IAAMhB,EAAE0B,MAAMa,cAIxFvC,EAAEU,kBAAkBV,EAAEC,SAAS8D,iBAAmB,IAAIC,MAAOC,UAAYjE,EAAEC,SAAS8D,cAAgBlB,IAGzG7C,EAAEC,SAAS8D,eAAgB,IAAIC,MAAOC,UAE3BvC,KACNe,KAAOA,EADDf,KAENe,KAAKQ,MAEPvB,QAIX1B,EAAEC,SAAS8D,eAAgB,IAAIC,MAAOC,UAItCC,OAAOF,KAAKpE,UAAUuE,iBAAmB,WAG/B,SAANC,EAAgB3E,GAAK,OAAOA,EAAI,GAAK,IAAMA,EAAIA,EADjD,IAAInB,EAAIoD,KAEN2C,EAAK/F,EAAEgG,oBACPC,GAAY,EAALF,EAAS,IAAM,KAAOD,EAAII,SAASZ,KAAKC,IAAIQ,EAAK,MAEtDA,EAAK,IAAO,IACdE,GAAOH,EAAIR,KAAKC,IAAIQ,EAAK,MAEhB,IAAPA,IACFE,EAAM,KAER,IAAIE,EAAKnG,EAAEoG,cAAgB,IACvBN,EAAI9F,EAAEqG,WAAa,GAAK,IACxBP,EAAI9F,EAAEsG,WAAa,IACnBR,EAAI9F,EAAEuG,YAAc,IACpBT,EAAI9F,EAAEwG,cAAgB,IACtBV,EAAI9F,EAAEyG,cAAgBR,EAEtBS,EAAQP,EAAGQ,QAAQ,KACvB,OAAY,EAARD,EACKP,EAAGS,UAAU,EAAGF,GAEhBP,GAIXzE,EAAEmF,6BAA+B,SAAUC,GAEzC,OAAO,IAAIpB,KAAKoB,EAAc,MAGhClB,OAAOF,KAAKpE,UAAUyF,iBAAmB,SAAUC,GAEvC,SAANlB,EAAgB3E,GACd,OAAOA,EAAI,GAAK,IAAMA,EAAIA,EAFhC,IAII4E,EAJI3C,KAIG4C,oBACsBF,EAAII,SAASZ,KAAKC,IAAIQ,EAAK,MACxDA,EAAK,IAAO,GACPD,EAAIR,KAAKC,IAAIQ,EAAK,KAM3B,IAAII,GAFFa,EADGA,GACM,cAEKC,QAAQ,OAbhB7D,KAa0BgD,eAAea,QAAQ,KAAMnB,EAbvD1C,KAa6DiD,WAAa,IAAIY,QAAQ,KAAMnB,EAb5F1C,KAakGkD,YAEtGI,EAAQP,EAAGQ,QAAQ,KACvB,OAAY,EAARD,EACKP,EAAGS,UAAU,EAAGF,GAGhBP,GAIXP,OAAOF,KAAKpE,UAAU4F,WAAa,WACjC,IACIC,EADO/D,KACOmD,WACda,EAFOhE,KAESoD,aAChBa,EAAiB,IAAVF,EAAe,KAAO,KAKjC,OAHAA,GADAA,GAAkB,KACS,IAEJ,KADvBC,EAAWA,EAAW,GAAK,IAAMA,EAAWA,GACJ,IAAMC,GAIhDzB,OAAOF,KAAKpE,UAAUgG,iBAAmB,SAAUN,GACjD,IAEIO,EAFOnE,KAEMmD,WAAWiB,cACxBC,EAHOrE,KAGQoD,aAAagB,cAC5BE,EAJOtE,KAIQqD,aAAae,cAEhC,MAAe,YAAXR,EANO5D,KAOG8D,aAELF,EAAOC,QAAQ,KAAMM,GAAON,QAAQ,KAAMQ,GAASR,QAAQ,KAAMS,IAI5E9B,OAAOF,KAAKpE,UAAU0F,OAAS,SAAUA,GACvC,IACIW,EAASvE,KAAK2D,iBAAiBC,GAInC,OAHIW,IAAWX,IACbW,EAASvE,KAAKkE,iBAAiBN,IAE7BW,IAAWX,EALJ5D,KASJuE,GAKT/B,OAAOgC,OAAOtG,UAAUkG,YAAc,WAEpC,OAAiC,IADvBpE,KACCyE,WAAWnF,OAAe,IAD3BU,KACqCyE,WADrCzE,KACsDyE,YAlQpE,CAsQGC,S,kBCtQH,IAAWpG,KAuIRoG,QApICC,aAAe,SAAUC,EAAIC,GAC7B,IAAIC,EAAWxG,EAAEsG,GACjBtG,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACbC,UAAW,mBACXrE,YAAY,EACZsE,KAAO5G,EAAEU,kBAAkB8F,EAASzE,KAAK,SAAmC,GAAxByE,EAASzE,KAAK,QAClE8E,QAAS,cAGPC,EAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,GAuFtC,OAtFIO,EAASF,MACXJ,EAASO,OACP/G,EAAE,SACA,CACEgH,GAAI,OACJC,MAAO,OACPL,KAAME,EAASF,QAKlBJ,EAASU,SAASR,EAASC,YAC9BH,EAASW,SAAST,EAASC,WAGP,QAAlBG,EAASM,MACXZ,EAASW,SAAS,OAGE,SAAlBL,EAASM,MACXZ,EAASW,SAAS,QAGpBzF,KAAK2F,QAAU,WACb,OAAOb,EAASc,KAAK,SAASV,QAGhClF,KAAK6F,QAAU,SAAUtI,GACvBuH,EAASc,KAAK,SAASV,KAAK3H,IAG9ByC,KAAKa,UAAY,WACf,OAAOiE,EAASjE,aAGlBb,KAAKI,QAAU,WACb9B,EAAEsG,GAAIxE,WAGRJ,KAAKO,OAAS,WACZjC,EAAEsG,GAAIrE,UAGRP,KAAKM,WAAa,SAAU/C,GAC1B,IAAIuI,EAAW,uBACXvI,EACEuH,EAASU,SAASM,IACpBhB,EAASiB,YAAYD,GAGlBhB,EAASU,SAASM,IACrBhB,EAASW,SAASK,IAKxB9F,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAGtBqE,EAASxE,aACXZ,KAAKI,UACLJ,KAAKM,YAAW,IAgBlBwE,EAAShE,cAAc,SAASS,GAC9B,OAdeA,EAcAA,IAbXuD,EAASlE,eAAiBkE,EAASjE,cAGvCiE,EAASkB,QAAQ,CACfN,KAAM,YACNO,QAAS,yDACTC,KAAM,IAAI5D,OAEZ8C,EAASD,QAAQ5D,GACV,IAVT,IAAiBA,IAiBVvB,MAET1B,EAAEqB,GAAGgF,aAAe,SAAUE,GAC5B,IAGMsB,EAHFC,EAAO,eAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAEqG,aAAa3E,KAAM6E,GACtCvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAOmC,aAAe,SAAUW,GAC9B,IAAIc,EAAO,eAiBX,OAhBApG,KAAK2F,QAAU,WACb,OAAOrH,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMC,YAEhCrG,KAAK6F,QAAU,SAAUtI,GACvBe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAME,SAAS/I,IAElCyC,KAAKa,UAAY,WACf,OAAOvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,aAEhCb,KAAKM,WAAa,SAAU/C,IACZ,IAAVA,EACFe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM7F,SAEvBjC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMhG,WAGpBJ,O,kBClIX,IAAW1B,KA6LRoG,QA1LC6B,eAAiB,SAAU3B,EAAIC,GAC/B,IAAI2B,EAAUlI,EAAEsG,GAAK6B,EAASzG,KAC9B1B,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACb0B,aAAc,6OACdC,oBAAqB,yWACrBC,qBAAsB,iPACtBC,WAAY,yaACZC,kBAAmB,60BACnBC,mBAAoB,icACpBnG,YAAY,EACZoG,YAAY,EACZ9B,KAAO5G,EAAEU,kBAAkBwH,EAAQnG,KAAK,SAAkC,GAAvBmG,EAAQnG,KAAK,QAChE4G,WAAW,EACXC,SAAU,cAGR9B,EAAW,GACfqB,EAAOU,KAAO,WACZ/B,EAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,IAEpC4B,EAAOU,OAEP,IAAIC,EAAU,iCAAmChC,EAASsB,aAAe,wBAA0BtB,EAASF,KAAO,UACnHsB,EAAQnB,OAAO+B,GAEXhC,EAASxE,YACX4F,EAAQnG,KAAK,YAAY,GAG3B,IAAIgH,EAASb,EAAQZ,KAAK,QAE1B,SAAS0B,EAAgB/J,GACnB,MAAOA,IACTA,GAAQ,GAGV6H,EAAS6B,UAAY1J,EACrB,IAAIgK,EAAWf,EAAQnG,KAAK,QAAU/B,EAAE0D,SAASwF,eAAenH,KAAK,MAGnEoH,EADErC,EAASxE,WACLwE,EAAS6B,UAAY7B,EAAS2B,mBAAqB3B,EAASwB,qBACzDxB,EAAS6B,UACZM,EAAWnC,EAAS0B,kBAAoB1B,EAASyB,WAEjDU,EAAWnC,EAASuB,oBAAsBvB,EAASsB,aAE3DW,EAAOhH,KAAK,MAAOoH,GAqGrB,OApEAjB,EAAQlF,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAChF6D,EAASxE,YAAcwE,EAAS4B,aAGpCM,GAAiBlC,EAAS6B,WAC1BT,EAAQmB,SACRvC,EAAS8B,SAAST,EAAOQ,YAAaT,MAGxCA,EAAQlF,GAAG,WAAY,SAAUzB,GAC/B,GAAIuF,EAASxE,YAAcwE,EAAS4B,WAClC,OAAO,EAET,IAAIY,EAAW/H,EAAMgI,MAAShI,EAAMgI,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EAMjG,OALgB,KAAZA,GAA8B,KAAZA,IACpBN,GAAiBlC,EAAS6B,WAC1BT,EAAQmB,SACRvC,EAAS8B,SAAST,EAAOQ,YAAaT,KAEjC,IAGTA,EAAQlF,GAAG,QAAS,WACd8D,EAASxE,YAAcwE,EAAS4B,YA9BpCK,EAAOhH,KAAK,MAAO+E,EAAS6B,UAAY7B,EAAS0B,kBAAoB1B,EAASuB,uBAoChFH,EAAQlF,GAAG,OAAQ,WACb8D,EAASxE,YAjCbyG,EAAOhH,KAAK,MAAO+E,EAAS6B,UAAY7B,EAASyB,WAAazB,EAASsB,gBAuCzE1G,KAAKiH,UAAY,WACf,OAAO7B,EAAS6B,WAElBjH,KAAK8H,WAAa,SAAUvK,EAAOoK,GACjCL,EAAgB/J,GACXe,EAAEU,kBAAkB2I,KAAsB,IAAXA,IAClCnB,EAAQmB,SACRvC,EAAS8B,SAAST,EAAOQ,YAAaT,KAG1CxG,KAAKa,UAAY,WACf,OAAQuE,EAASxE,YAEnBZ,KAAKM,WAAa,SAAU/C,IA/E5B,SAAyBA,GACnB,MAAOA,IACT6H,EAASxE,YAAcrD,GACR,IAAVA,EACHiJ,EAAQnG,KAAK,YAAY,GAEzBmG,EAAQhG,WAAW,aAGvB,IAAIsF,EAAW,iBACXvI,EACEiJ,EAAQhB,SAASM,IACnBU,EAAQT,YAAYD,GAGjBU,EAAQhB,SAASM,IACpBU,EAAQf,SAASK,GAGrBwB,EAAgBlC,EAAS6B,WA6DzBc,CAAgBxK,IAElByC,KAAKD,YAAc,SAAUxC,GAC3B6H,EAAS4B,WAAazJ,GAExByC,KAAKgH,WAAa,WAChB,OAAO5B,EAAS4B,cAGlBM,EAAgBlC,EAAS6B,WAEzBjH,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAEnBf,MAET1B,EAAEqB,GAAG4G,eAAiB,SAAU1B,GAC9B,IAGMsB,EAHFC,EAAO,iBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAEiI,eAAevG,KAAM6E,GACxCvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAO+D,eAAiB,SAAUjB,GAChC,IAAIc,EAAO,iBAoBX,OAnBApG,KAAKiH,UAAY,WACf,OAAO3I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMa,aAEhCjH,KAAK8H,WAAa,SAAUvK,GAE1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM0B,WAAWvK,IAEpCyC,KAAKa,UAAY,WACf,OAAQvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,WAEjCb,KAAKM,WAAa,SAAU/C,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM9F,WAAW/C,IAEpCyC,KAAKD,YAAc,SAAUxC,GAC3Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMrG,YAAYxC,IAErCyC,KAAKgH,WAAa,WAChB,OAAO1I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMY,cAEzBhH,O,kBCxLX,IAAW1B,KAgURoG,QA7TCsD,kBAAoB,SAASpD,EAAIC,GACjC,IAAIoD,EAAe3J,EAAEsG,GAAKsD,EAAclI,KACxC1B,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACbpE,YAAY,EACZoG,YAAY,EACZmB,YAAa,EACbC,aAAc,CACZ,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,UAAW,UAAW,UAAW,UACvD,UAAW,UAAW,WAExBC,MAAO,UACPC,SAAWhK,EAAEU,kBAAkBiJ,EAAa5H,KAAK,aAA+C,KAAhC4H,EAAa5H,KAAK,YAClF6G,SAAU,cAEZe,EAAazH,WAAW,YAGxB,IAAI4E,EAAW,GAUf,GATA8C,EAAYf,KAAO,WACjB/B,EAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,IAEpCqD,EAAYf,QAEe,EAAvB/B,EAAS+C,YAAmB/C,EAAS+C,WAAa/C,EAASgD,aAAa9I,SAC1E8F,EAASiD,MAAQjD,EAASgD,aAAahD,EAAS+C,aAGb,EAAjCF,EAAavH,WAAWpB,OAC1B,OAAO,EAGT,IAAIiJ,EAAWjK,EAAE,oDAAsD0G,EAASsD,SAAW,QAE3FC,EAASC,IAAI,mBAAoBpD,EAASiD,OAC1C,IAAII,EAAcnK,EAAE,QAClB,CACEgH,GAAI,cACJC,MAAO,cACNF,OAAO/G,EAAE,SACV,CACEgH,GAAI,kBACJC,MAAO,kBACPL,KAAM,kBAEV5G,EAAE,OACA,CACEgH,GAAI,WACJC,MAAO,aAEXjH,EAAE,QACA,CACEgH,GAAI,mBACJC,MAAO,qBACNF,OACH/G,EAAE,QACA,CACEgH,GAAI,eACJC,MAAO,iBAEXjH,EAAE,QACA,CACEiH,MAAO,aACNF,OACH/G,EAAE,SACA,CACEgH,GAAI,cACJC,MAAO,cACPL,KAAM,QAEV5G,EAAE,UACA,CACEgH,GAAI,cACJI,KAAM,OACNH,MAAO,cACPmD,UAAW,KAGjBpK,EAAE,QACA,CACEiH,MAAO,aACNF,OACH/G,EAAE,SACA,CACEgH,GAAI,cACJC,MAAO,cACPL,KAAM,QAEV5G,EAAE,UACA,CACEgH,GAAI,YACJI,KAAM,OACNH,MAAO,YACPoD,UAAU,IAEdrK,EAAE,UACA,CACEgH,GAAI,YACJI,KAAM,OACNH,MAAO,YACPoD,UAAU,IAEdrK,EAAE,UACA,CACEgH,GAAI,YACJI,KAAM,OACNH,MAAO,YACPoD,UAAU,OAapB,SAASC,IACP,IAAIC,EAAiBJ,EAAY7C,KAAK,aAAalF,WAC/CoI,EAAeP,EAASC,IAAI,oBAC5BO,EAAkBC,EAAQF,GAC1BG,EAAMH,EAAa/J,MAAM,oCAC7BT,EAAE2B,KAAK4I,EACL,SAAU3I,EAAKgJ,GACCF,EAAQ1K,EAAE4K,GAAIV,IAAI,uBAChBO,EACdzK,EAAE4K,GAAIzD,SAAS,YAEfnH,EAAE4K,GAAInD,YAAY,cAGxB0C,EAAY7C,KAAK,iBAAiB4C,IAAI,mBAAoBD,EAASC,IAAI,qBACvEC,EAAY7C,KAAK,gBAAgBuD,IAAIJ,EAAgBK,eACrDX,EAAY7C,KAAK,cAAcuD,IAAI,MAAQF,EAAI,IAC/CR,EAAY7C,KAAK,cAAcuD,IAAI,MAAQF,EAAI,IAC/CR,EAAY7C,KAAK,cAAcuD,IAAI,MAAQF,EAAI,IAGjD,SAASI,IAEP,GAAId,EAAS/C,SAAS,YAIpB,OAHA+C,EAASxC,YAAY,YACrB0C,EAAYD,IAAI,CAAE,QAAW,cAC7BlK,EAAE0D,UAAUX,IAAI,WAAa4G,EAAa5H,KAAK,OAKjD/B,EAAE0D,UAAUV,GAAG,WAAa2G,EAAa5H,KAAK,MAC5C,SAASkB,GACP,IAAI+H,EAAYrB,EACXqB,EAAUC,GAAGhI,EAAEiI,SAEiB,IAAnCF,EAAUG,IAAIlI,EAAEiI,QAAQlK,SACxB+J,IACA/K,EAAE0D,UAAUX,IAAI,WAAa4G,EAAa5H,KAAK,UAGnCoI,EAAY7C,KAAK,gBACvBvE,IAAI,UAAUC,GAAG,SAC3B,WACE,IApDcoI,EAoDVC,EAASrL,EAAE0B,MAAMmJ,MACO,IAAxBQ,EAAOpG,QAAQ,OApDA,KADLmG,EAqD8BC,GApD1CpG,QAAQ,OACZmG,EAAIA,EAAElG,UAAU,EAAGkG,EAAEpK,SAEfwD,SAAS4G,EAAG,IACVjF,SAAS,MAAQiF,EAAEE,eAA+B,IAAbF,EAAEpK,QAA6B,IAAboK,EAAEpK,QAA6B,IAAboK,EAAEpK,QAoD/EhB,EAAE0B,MAAMmJ,IAAIjB,EAAY2B,aAHxB3B,EAAY4B,SAASH,GACrBf,OAMNA,IAEA,IACImB,EAcEC,EAIAC,EACAC,EAGEC,EACAC,EAxBJC,EAAWzF,EAAG0F,SAElBhM,EAAE2B,KAAK3B,EAAE,wBACP,SAAS4B,EAAKqK,GACkB,SAA1BjM,EAAEiM,GAAK/B,IAAI,aACbuB,EAASQ,KAGX,MAAOR,IACTA,EAASzL,EAAE,SAET,MAAOyL,GACTxB,EAAS9C,SAAS,YAClBgD,EAAYD,IAAI,CAAE,QAAW,QAAS,IAAO,gBAGpB,KADrBwB,EAAYD,EAAOS,gBAErBR,EAAYD,EAAOO,UAEjBL,EAAY3L,EAAEmM,WAAWV,EAAOE,WAAaF,EAAOE,YAAcF,EAAOE,UACzEC,EAAQhI,KAAKwI,MAAM9F,EAAG+F,WAAWC,KAAOX,EAC5CxB,EAAYD,IAAI,CAAE,QAAW,UACzB5D,EAAGiG,SAASD,IAAMtM,EAAEyL,GAAQc,SAASD,IAAMP,EAAW7F,OAAOiE,EAAY6B,UAAYN,GACnFG,GAAa,GACbC,EAAUF,EAAQzB,EAAY6B,SAAW,IAChC,IACXH,GAAa,GACbC,EAASF,EAAQzB,EAAY6B,SAAW,GAAKD,GAChC,IACXD,EAAS,IAGb3B,EAAYD,IAAI,CAAE,IAAO4B,EAAS,KAAM,cAAiBD,EAAyB,QAAZ,aAGtE1B,EAAYD,IAAI,CAAE,IAAO,OAAQ,cAAe,YAElDD,EAAS9C,SAAS,aAItB,IAAIqF,EAAWrC,EAAY7C,KAAK,aA4BhC,SAASoD,EAAQC,GAEf,OADAA,EAAMA,EAAIlK,MAAM,oCACT,KACL,IAAM+D,SAASmG,EAAI,GAAI,IAAIxE,SAAS,KAAKsG,OAAO,IAChD,IAAMjI,SAASmG,EAAI,GAAI,IAAIxE,SAAS,KAAKsG,OAAO,IAChD,IAAMjI,SAASmG,EAAI,GAAI,IAAIxE,SAAS,KAAKsG,OAAO,GA6BpD,OA5DAzM,EAAE2B,KAAKmF,EAASgD,aAAc,SAAUvK,EAAKsL,GAC3C,IAAI6B,EAAY1M,EAAE,gBAAkBT,EAAM,YAAcsL,EAAM,QAC9D6B,EAAUxC,IAAI,mBAAoBW,GAClC6B,EAAU1J,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACtFgH,EAASC,IAAI,mBAAoBwC,EAAUxC,IAAI,qBAC/Ca,IACAjE,EAAS8B,SAASgB,EAAY2B,YAC9B5B,EAAaN,WAEfmD,EAASzF,OAAO2F,KAGlB/C,EAAa5C,OAAOkD,GAGpBN,EAAa5C,OAAOoD,GAEpBF,EAASjH,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACrF,OAAIgH,EAAS3H,cAAgBwE,EAAS4B,YAGtCqC,KAFS,IAeXrJ,KAAK6J,SAAW,WACd,OAAOb,EAAQT,EAASC,IAAI,sBAG9BxI,KAAKiL,UAAY,WACf,OAAO7F,EAASgD,cAGlBpI,KAAK8J,SAAW,SAAUvM,GACxBgL,EAASC,IAAI,mBAAoBjL,IAGnCyC,KAAKD,YAAc,SAASxC,GAC1B6H,EAAS4B,WAAazJ,GAExByC,KAAKgH,WAAa,WAChB,OAAO5B,EAAS4B,cAGlBhH,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAEnBf,MAET1B,EAAEqB,GAAGqI,kBAAoB,SAAUnD,GACjC,IAGMsB,EAHFC,EAAO,oBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAE0J,kBAAkBhI,KAAM6E,GAC3CvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAOwF,kBAAoB,SAAU1C,GACnC,IAAIc,EAAO,oBAgBX,OAfApG,KAAK6J,SAAW,WACd,OAAOvL,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMyD,YAEhC7J,KAAKiL,UAAY,WACf,OAAO3M,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM6E,aAEhCjL,KAAK8J,SAAW,SAAUvM,GACxBe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM0D,SAASvM,IAElCyC,KAAKD,YAAc,SAASxC,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMrG,YAAYxC,IAErCyC,KAAKgH,WAAa,WAChB,OAAO1I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMY,cAEzBhH,O,kBC5TX,IAAW1B,KA8XRoG,QA1XCwG,iBAAmB,SAAUtG,EAAIC,GACjC,IAAIsG,EAAU7M,EAAEsG,GAAKwG,EAASpL,KAC9B1B,EAAEsG,GAAIG,QACN,IAAqBsG,EAAjBC,EAAW,KACXtG,EAAW,CACbC,UAAW,uBACXrB,OAAQ,aACR2H,UAAU,EACV3K,YAAY,EACZ4K,WAAW,EACXtE,SAAU,cAuBZ,SAASuE,EAAelO,GACtB,IAAImO,EAAUnO,EAId,OAHI,MAAOA,IACTmO,EAAUN,EAAOhG,SAAS7H,OAEmB,IAA3C6N,EAAOhG,SAASxB,OAAOL,QAAQ,QAC1B,IAAIjB,KAAKoJ,GAET,IAAIpJ,KAAKoJ,EAAQlI,UAAU,EAAG,IAAM,IAAMkI,EAAQlI,UAAU,EAAG,GAAK,IAAMkI,EAAQlI,UAAU,EAAG,IA7B1GwB,EAASzH,MAAQ,IAAI+E,KAAKA,KAAKqJ,OAAOhI,iBAAiBqB,EAASpB,QAEhEwH,EAAOhG,SAAW,GAClBgG,EAAOjE,KAAO,WACZiE,EAAOhG,SAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,GACrCuG,EAAOhG,SAASmG,WAClBH,EAAOhG,SAASxB,OAAS,cAE3BoB,EAASzH,MAAQ,IAAI+E,KAAK8I,EAAOhG,SAAS7H,OAAOoG,iBAAiByH,EAAOhG,SAASxB,QAClFwH,EAAOhG,SAAS7H,MAAQyH,EAASzH,MACjC,IAAIqO,EAAUR,EAAOhG,SAASxB,OAAOL,QAAQ,KACzCqI,EAAU,IACZA,EAAUR,EAAOhG,SAASxB,OAAOL,QAAQ,MAC3B,IACZqI,EAAUR,EAAOhG,SAASxB,OAAOL,QAAQ,MAG7C8H,EAAKD,EAAOhG,SAASxB,OAAOJ,UAAUoI,EAASA,EAAU,IAE3DR,EAAOjE,OAcP,IAAI0E,EAAUvN,EAAE,8BAAgC8M,EAAOhG,SAASmG,SAAW,OAAS,QAAU,4BAA8BH,EAAOhG,SAAS7H,MAAQ,QAChJuO,EAAcxN,EAAE,sDAChByN,EAAczN,EAAE,8CAChB0N,EAAS1N,EAAE,oDA8Rf,OA7RA0N,EAAO1K,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACnF6J,EAAOa,SAAWb,EAAOc,QAAUd,EAAOe,SAE5CN,EAAQvK,GAAG,UAAW,SAASC,GAC7B,IAAIqG,EAAWrG,EAAEsG,MAAStG,EAAEsG,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EACzF,GAAgB,IAAZA,GAA6B,IAAZA,GAA6B,IAAZA,GAA6B,KAAZA,GAA6B,IAAXA,GAAiBA,GAAW,GAAM,OAAO,EAClH,IAAIwE,EAAaC,OAAOC,aAAa1E,GAUrC,GATgB,MAAZA,EACFwE,EAAa,IACO,IAAXxE,GAAiBA,GAAW,IACrCwE,GAAcxE,EAAU,IAAInD,WACP,MAAZmD,GAA+B,MAAZA,IAC5BwE,EAAa,KAEQ,IAAIG,OAAO,eACIC,KAAKJ,GACvB,CAClB,IAAIK,EAAW,GACXzM,KAAK0M,aAAe1M,KAAK2M,gBAAmB,IAC9CF,EAAWnO,EAAE0B,MAAMmJ,OAIrB,IAAIyD,EAAS,GACTC,GAHJJ,GAAYL,GAGU9M,OAmEtB,OAlE+C,IAA3C8L,EAAOhG,SAASxB,OAAOL,QAAQ,SACnB,GAAVsJ,IACFD,EAAS,kBAEG,GAAVC,IACFD,GAAU,gBAEE,GAAVC,GAAeA,GAAU,IAC3BD,GAAU,KAAOvB,EAAK,OAASA,EAAK,uBAEvB,IAAXwB,KAC0B,EAAxBJ,EAASlJ,QAAQ8H,GACnBuB,GAAU,IAAMvB,EAAK,mBAErBuB,GAAU,4CAGC,IAAXC,KAC0B,EAAxBJ,EAASlJ,QAAQ8H,GACnBuB,GAAU,IAAMvB,EAAK,mBAAqBA,EAE1CuB,GAAU,sGAGC,IAAXC,IAAwC,EAAxBJ,EAASlJ,QAAQ8H,KACnCuB,GAAUvB,EAAK,mBAAqBA,EAAK,yBAA2BA,EAAK,MAE5D,KAAXwB,IAAyC,EAAxBJ,EAASlJ,QAAQ8H,KACpCuB,GAAUvB,EAAK,WAAaA,EAAK,iCAAmCA,EAAK,QAAUA,EAAK,4BAA8BA,EAAK,8BAAgCA,EAAK,SAGpJ,GAAVwB,GAAeA,GAAU,IAC3BD,EAAS,kCAEI,IAAXC,IACFD,GAAU,aAAevB,EAAK,MAElB,GAAVwB,IACFD,EAAS,yBAA2BvB,EAAK,iCAAmCA,EAAK,0BAA4BA,EAAK,2BAA6BA,EAAK,UAExI,GAAVwB,KAC0B,EAAxBJ,EAASlJ,QAAQ8H,GACnBuB,EAAS,UAAYvB,EAAK,4BAA8BA,EAAK,qBAAuBA,EAAK,uBAAyBA,EAAK,oBACnG,IAAXwB,IACTD,GAAU,UAGA,GAAVC,KAC0B,EAAxBJ,EAASlJ,QAAQ8H,GACnBuB,GAAUvB,EAEVuB,GAAU,cAGA,GAAVC,KAC0B,EAAxBJ,EAASlJ,QAAQ8H,GACnBuB,GAAU,iBAEVA,GAAU,gBAGA,GAAVC,IAAuC,EAAxBJ,EAASlJ,QAAQ8H,KAClCuB,GAAU,mBAGM,IAAIL,OAAO,KAAOK,EAAS,MAC7BJ,KAAKC,KAGrBnO,EAAE0B,MAAMJ,eAAe2B,IAChB,GAIT,OADAjD,EAAE0B,MAAMJ,eAAe2B,IAChB,IAGN6J,EAAOhG,SAASmG,UACnBM,EAAQvK,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACpFvB,KAAK8M,kBAAkB,EAAG9M,KAAKzC,MAAM+B,UAGzCuM,EAAQvK,GAAG,SAAU,WAEnB,IAAIqI,EAASrL,EAAE0B,MAAMmJ,MAAMtF,QAAQ,aAAc,IAC7CkJ,EAAS3B,EAAOhG,SAAS7H,MACzBgH,EAASoF,EACb,OAAQA,EAAOrK,QACb,KAAK,EAGDiF,EAD6C,IAA3C6G,EAAOhG,SAASxB,OAAOL,QAAQ,QACxBoG,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAEhFmG,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAE3F,MAEF,KAAK,EAEHe,EAASoF,EAASoD,EAAOvJ,UAAU,EAAGuJ,EAAOzN,QAC7C,MAEF,KAAK,EAGDiF,EAD6C,IAA3C6G,EAAOhG,SAASxB,OAAOL,QAAQ,QACxBoG,EAAOnG,UAAU,EAAG,GAAKuJ,EAAOvJ,UAAU,EAAGuJ,EAAOzN,QAEpDqK,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAAKuJ,EAAOvJ,UAAU,EAAGuJ,EAAOzN,QAE7F,MAEF,KAAK,EAGDiF,EAD6C,IAA3C6G,EAAOhG,SAASxB,OAAOL,QAAQ,QACxBoG,EAAOnG,UAAU,EAAG,GAAKuJ,EAAOvJ,UAAU,EAAGuJ,EAAOzN,QAEpDqK,EAAOnG,UAAU,EAAG,GAAK6H,EAAK1B,EAAOnG,UAAU,EAAG,GAAKuJ,EAAOvJ,UAAU,EAAGuJ,EAAOzN,QAE7F,MAEF,QAEE,YADAhB,EAAE0B,MAAMmJ,IAAI4D,GAIZC,MAAMvB,EAAelH,GAAQhC,WAC/BjE,EAAE0B,MAAMmJ,IAAI4D,IAId3B,EAAOhG,SAAS7H,MAAQgH,EACpB+G,GACQA,EAAS3M,KAAK,iBACpBpB,MAAMkO,KAEZnN,EAAE0B,MAAMmJ,IAAI5E,GACZ4G,EAAQxD,SACRyD,EAAOhG,SAAS8B,SAASuE,QAE3BN,EAAQ9F,OAAOwG,GACVT,EAAOhG,SAASoG,YACnBL,EAAQ9F,OAAOyG,GACfX,EAAQ9F,OAAO0G,GACfZ,EAAQ9F,OAAO2G,IAGZb,EAAQ3F,SAASR,EAASC,YAC7BkG,EAAQ1F,SAAST,EAASC,WAG5BjF,KAAKiM,OAAS,WACZ,OAAOX,GAAwC,SAA5BA,EAAS9C,IAAI,YAElCxI,KAAKmM,KAAO,WAUV,GATA7N,EAAE0D,UAAUV,GAAG,WAAa6J,EAAQ9K,KAAK,MAAO,SAASkB,GACvD,IAAI+H,EAAY6B,EACX7B,EAAUC,GAAGhI,EAAEiI,SACoB,IAAnCF,EAAUG,IAAIlI,EAAEiI,QAAQlK,SAC3BgM,EAAS2B,OACTlB,EAAYkB,OACZ3O,EAAE0D,UAAUX,IAAI,WAAa8J,EAAQ9K,KAAK,WAG1C+K,EAAOa,SAAX,CAGA,GAAiB,OAAbX,EAGF,OAFAA,EAAS4B,YACTnB,EAAYmB,OAGd,IAAIC,EAAe1B,IACdK,EAAYsB,gBAIjB9B,EAAWQ,EAAYsB,cAAc,CACnCxJ,OAAQwH,EAAOhG,SAASxB,OACxByJ,QAAQ,IAAI/K,MAAOqB,iBAAiByH,EAAOhG,SAASxB,QACpDrG,MAAO4P,EACPxF,OAAQ,WACN,IAAIpK,EAAQ,IAAI+E,KAAKtC,KAAKzC,SAASoG,iBAAiByH,EAAOhG,SAASxB,QACpEwH,EAAOhG,SAAS7H,MAAQA,EACxB4N,EAAQvF,KAAK,YAAYuD,IAAI5L,GAC7B6N,EAAOc,QACPf,EAAQxD,SACRyD,EAAOhG,SAAS8B,SAASuE,QAG7BM,EAAYmB,UAEdlN,KAAKkM,MAAQ,WACX5N,EAAE0D,UAAUX,IAAI,WAAa8J,EAAQ9K,KAAK,OAC1CiL,EAAS2B,OACTlB,EAAYkB,QAGdjN,KAAKqG,SAAW,WACd,OAAOoF,KAGTzL,KAAKsG,SAAW,SAAU/I,GACxB6N,EAAOhG,SAAS7H,MAAQ,IAAI+E,KAAK/E,GAAOoG,iBAAiByH,EAAOhG,SAASxB,QACrE0H,GACQA,EAAS3M,KAAK,iBACpBpB,MAAMkO,KAEZI,EAAQ1C,IAAIiC,EAAOhG,SAAS7H,QAG9ByC,KAAKa,UAAY,WACf,OAAOsK,EAAQtK,aAGjBb,KAAKI,QAAU,WACb9B,EAAEsG,GAAIxE,WAGRJ,KAAKO,OAAS,WACZjC,EAAEsG,GAAIrE,UAGRP,KAAKM,WAAa,SAAU/C,GAC1B,IAAIuI,EAAW,yBACXvI,EACE4N,EAAQ3F,SAASM,IACnBqF,EAAQpF,YAAYD,GAGjBqF,EAAQ3F,SAASM,IACpBqF,EAAQ1F,SAASK,IAKvB9F,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAGtBqK,EAAOhG,SAASxE,aAClBZ,KAAKI,UACLJ,KAAKM,YAAW,IAeXN,MAET1B,EAAEqB,GAAGuL,iBAAmB,SAAUrG,GAChC,IAGMsB,EAHFC,EAAO,mBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAE4M,iBAAiBlL,KAAM6E,GAC1CvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAO0I,iBAAmB,SAAU5F,GAClC,IAAIc,EAAO,mBA0BX,OAzBApG,KAAKqG,SAAW,WACd,OAAO/H,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMC,YAEhCrG,KAAKsG,SAAW,SAAU/I,GACxBe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAME,SAAS/I,IAElCyC,KAAKiM,OAAS,WACZ3N,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM6F,UAEzBjM,KAAKmM,KAAO,WACV7N,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM+F,QAEzBnM,KAAKkM,MAAQ,WACX5N,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM8F,SAEzBlM,KAAKa,UAAY,WACf,OAAOvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,aAEhCb,KAAKM,WAAa,SAAU/C,GACtBA,EACFe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM7F,SAEvBjC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMhG,WAGpBJ,O,kBCzXX,IAAU1B,KAiqBPoG,QA9pBC4I,eAAiB,SAASC,EAAS1I,GACnC,IAAI2I,EAAWlP,EAAEiP,GAAUE,EAAUzN,KACrC1B,EAAEiP,GAASxI,QACX,IAAsB2I,EAAlBC,EAAc,GAEd3I,EAAW,CACbsD,SAAWhK,EAAEU,kBAAkBwO,EAASnN,KAAK,aAA2C,KAA5BmN,EAASnN,KAAK,YAC1E4E,UAAW,MACX+B,YAAY,EACZ4G,MAAO,KACPC,YAAa,KACbC,aAAc,KACdC,WAAY,KACZC,YAAa,KACbC,aAAc,KACd/G,SAAU,cAEZsG,EAAShN,WAAW,YAEpB,IAAI0N,EAAS,iDAAmDlJ,EAASsD,SAAW,sRAUpFkF,EAASnI,OAAO6I,GAEhB,IAAI9I,EAAW,GACfqI,EAAQtG,KAAO,WACb/B,EAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,IAEpC4I,EAAQtG,OAEHqG,EAAShI,SAASR,EAASC,YAC9BuI,EAAS/H,SAAST,EAASC,WAG7B,IAAIkJ,EAAOX,EAAS5H,KAAK,cAEzB,SAASwI,EAAiBxJ,GACxBtG,EAAE0D,UAAUX,IAAI,WAAamM,EAASnN,KAAK,OACvC8N,EAAK3I,SAAS,aAChB2I,EAAKpI,YAAY,YACjBnB,EAAGgB,KAAK,aAAa4C,IAAI,CAAE,QAAW,SACtC2F,EAAKE,SACIF,EAAK3I,SAAS,mBACvB2I,EAAKpI,YAAY,iBACjBnB,EAAGgB,KAAK,aAAa4C,IAAI,CAAE,QAAW,SACtC2F,EAAKE,SAIT,SAASC,KACqB,IAAxBlJ,EAAS4B,WACNmH,EAAK3I,SAAS,aACjB2I,EAAK1I,SAAS,YAGZ0I,EAAK3I,SAAS,aAChB2I,EAAKpI,YAAY,YAOvB,SAASwI,EAAgB3J,EAAI4J,EAASC,GACpC,IAAIC,EAAQ9J,EAAGgB,KAAK,aACpBtH,EAAE2B,KAAKyO,EAAMhO,WAAY,SAASR,EAAKyO,GACrCrQ,EAAEqQ,GAAMnO,WAAW,YACnBlC,EAAEqQ,GAAM5I,YAAY,cAGtBzH,EAAEkQ,GAASnO,KAAK,YAAY,GAC5B/B,EAAEkQ,GAAS/I,SAAS,YACpB,IAAImJ,EAAatQ,EAAEkQ,GAAS5I,KAAK,SAC7BiJ,EAAYV,EAAKvI,KAAK,SAC1BiJ,EAAUrG,IAAI,UAA+B,EAApBoG,EAAWtP,OAAa,eAAiB,QAClEuP,EAAUxO,KAAK,MAA2B,EAApBuO,EAAWtP,OAAasP,EAAWvO,KAAK,OAAS,IACvE8N,EAAKvI,KAAK,SAASV,KAAK5G,EAAEkQ,GAAS5I,KAAK,SAASV,QACjDiJ,EAAKvI,KAAK,eAAeV,KAAK5G,EAAEkQ,GAAS5I,KAAK,UAAUV,QAExDiJ,EAAKvI,KAAK,WAAWV,KAAK5G,EAAEkQ,GAAS5I,KAAK,QAAQV,QAE9CuJ,IACF7J,EAAG+C,SACHvC,EAAS8B,SAASuG,EAAQqB,oBAI9B,SAASC,EAAgBL,EAAOM,GAC9BrB,GAAeqB,EAEfxM,OAAOyM,aAAavB,GACpBA,EAAelL,OAAO0M,WAAW,WAC/B5Q,EAAE2B,KAAKyO,EAAMhO,WAAY,SAASR,EAAKyO,GAErC,SAA8F,EADnFrQ,EAAEqQ,GAAM/I,KAAK,SAASV,OACxB0E,cAAcpG,UAAU,EAAGmK,EAAYrO,QAAQiE,QAAQoK,EAAY/D,kBAC1EtL,EAAEqQ,GAAMN,SACD,KAIXV,EAAc,IACb,KA6DL,SAASwB,EAAqBvK,GAC5BtG,EAAE0D,UAAUV,GAAG,WAAakM,EAASnN,KAAK,MAAO,SAASkB,GACxD,IAAI+H,EAAYkE,EACXlE,EAAUC,GAAGhI,EAAEiI,SACoB,IAAnCF,EAAUG,IAAIlI,EAAEiI,QAAQlK,SAC3B8O,EAAiBxJ,GACjBtG,EAAE0D,UAAUX,IAAI,WAAamM,EAASnN,KAAK,UAG/C,IAMMgK,EAEAN,EAkBEC,EAIAC,EACAC,EAiCFkF,EAnIiBxK,EACnB8J,EAkEAW,EAAQzK,EAAGgB,KAAK,aAChB8I,EAAQ9J,EAAGgB,KAAK,aAEhBuI,EAAK3I,SAAS,aAAe2I,EAAK3I,SAAS,iBAC7C4I,EAAiBxJ,IAEbyF,EAAWzF,EAAG0F,SAGY,OAA1BlF,EAAS6I,aACXlE,EAAS3E,EAAS6I,cAElB3P,EAAE2B,KAAK3B,EAAE,wBACP,SAAS4B,EAAKqK,GACkB,SAA1BjM,EAAEiM,GAAK/B,IAAI,aACbuB,EAASQ,UAGO,IAAXR,IACTA,EAASzL,EAAE,UAGX,MAAOyL,GACTsF,EAAM7G,IAAI,CAAE,QAAW,QAAS,IAAO,SACvC2F,EAAK1I,SAAS,mBAGW,KADrBuE,EAAYD,EAAOS,gBAErBR,EAAYD,EAAOO,UAEjBL,EAAY3L,EAAEmM,WAAWV,EAAOE,WAAaF,EAAOE,YAAcF,EAAOE,UACzEC,EAAQhI,KAAKwI,MAAM9F,EAAG+F,WAAWC,KAAOX,EAE5CoF,EAAM7G,IAAI,CAAE,QAAW,UAgBnB5D,EAAGiG,SAASD,IAAMtM,EAAEyL,GAAQc,SAASD,IAAMP,EAAW7F,OAAOkK,EAAMpE,UAAYN,GAGjFqF,EAAM5J,SAAS,iBACf4J,EAAM7G,IAAI,CAAE,IAAQ0B,EAAQwE,EAAMpE,SAAW,EAAK,OAClD6D,EAAK1I,SAAS,mBAEd4J,EAAMtJ,YAAY,iBAClBsJ,EAAM7G,IAAI,CAAE,IAAO,SACnB2F,EAAK1I,SAAS,eA5HhBiJ,GADmB9J,EAiILA,GAhIHgB,KAAK,cACdqE,UAAU,GAChByE,EAAMhO,SAAS,MAAMW,IAAI,eAAgBW,SAAS0F,gBAAkB,WAAa,SACjFgH,EAAMhO,SAAS,MAAMY,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACjGgN,EAAgB3J,EAAI5E,MAAM,GAC1BoO,EAAiBxJ,KAGnB8J,EAAMhO,SAAS,MAAMW,IAAI,WACzBqN,EAAMhO,SAAS,MAAMY,GAAG,UAAW,SAASzB,GAC1C,IAAI+H,EAAW/H,EAAMgI,MAAShI,EAAMgI,MAAQrF,OAAO8M,MAAM1H,QACzD,OAAgB,KAAZA,GAGmB,KAAZA,IAFTtJ,EAAE0B,MAAMJ,eAAeC,IAChB,KAQX6O,EAAMhO,SAAS,MAAMW,IAAI,SACzBqN,EAAMhO,SAAS,MAAMY,GAAG,QAAS,SAASzB,GACxC,IA0BMmP,EA1BFpH,EAAW/H,EAAMgI,MAAShI,EAAMgI,MAAQrF,OAAO8M,MAAM1H,QACzD,GAAgB,KAAZA,EAGF,OAFAtJ,EAAE0D,SAASwF,eAAe+H,OAAOlB,QACjC/P,EAAE0B,MAAMJ,eAAeC,IAChB,EACF,GAAgB,KAAZ+H,EAUJ,OAAgB,KAAZA,IAEY,KAAZA,IAEY,KAAZA,GACT2G,EAAgB3J,EAAI5E,MAAM,GAC1BoO,EAAiBxJ,IACI,KAAZgD,GACTwG,EAAiBxJ,GACjBtG,EAAE,cAAc+P,UACI,IAAXzG,GAAiBA,GAAW,MACjCoH,EAAU3C,OAAOC,aAAa1E,GAClCmH,EAAgBL,EAAOM,KAGlB,IAxBL,IAAIQ,EAAclR,EAAE0D,SAASwF,eAC7B,OAAqC,IAAjCgI,EAAYnP,KAAK,aAInBmP,EAAYC,OAAOpB,QAHnB/P,EAAE0B,MAAMJ,eAAeC,IAChB,IAkGPuP,GAAc,EAClB9Q,EAAE2B,KAAKyO,EAAMhO,WAAY,SAASR,EAAKyO,GACrC,OAAIrQ,EAAEqQ,GAAMnJ,SAAS,cACnBlH,EAAEqQ,GAAMe,QAAQrB,QAChBe,GAAc,KAMdA,GACFV,EAAMhO,SAAS,MAAMgP,QAAQrB,SA0DnC,SAASsB,EAAY/K,EAAIgJ,EAAOc,EAAOZ,EAAcD,EAAaE,GAChE,IAsEM6B,EAtEFC,EAAWnB,EAAMhO,WAAWpB,OAC5BwQ,GAAa,EACjBxR,EAAE2B,KAAK2N,EAAO,SAAS/P,EAAKsL,GAC1B0G,IACA,IAAI3G,EAAKlH,SAAS+N,cAAc,MAChC7G,EAAG8G,aAAa,WAAYH,EAASpL,iBAEb,IAAb0E,EAAI8D,OAAqC,IAAb9D,EAAI8D,MACzC/D,EAAG8G,aAAa,QAAS,iBAG3B,IAGIC,EAHAC,EAAOlO,SAAS+N,cAAc,OAClCG,EAAKF,aAAa,QAAS,QAGvB7G,EAAI8G,QACNA,EAAOjO,SAAS+N,cAAc,QACzBC,aAAa,MAAO,KACzBC,EAAKD,aAAa,QAAS,QAC3BC,EAAKD,aAAa,MAAO7G,EAAI8G,MACzB9G,EAAIgH,KACNF,EAAKD,aAAa,QAAS7G,EAAIgH,KAEjCD,EAAKE,YAAYH,IAGnB,IAAI1S,EAAQyE,SAAS+N,cAAc,OAGnC,GAFAxS,EAAMyS,aAAa,QAAS,cAEH,IAAd7G,EAAI5L,YAA8C,IAAd4L,EAAI5L,MAEjD,OAAO,EAETA,EAAM6S,YAAYpO,SAASqO,eAAelH,EAAI5L,MAAMkH,aAEpD,IAAI5H,EAAOmF,SAAS+N,cAAc,OAClClT,EAAKmT,aAAa,QAAS,QAC3BnT,EAAKuT,YAAYpO,SAASqO,eAAelH,EAAItM,KAAK4H,aAElD,IAaMoK,EAbFsB,EAAMnO,SAAS+N,cAAc,OA2BjC,OA1BAI,EAAIH,aAAa,QAAS,OAC1BG,EAAIC,YAAYpO,SAASqO,eAAelH,EAAIgH,IAAMhH,EAAIgH,IAAI1L,WAAa,KAEvEyL,EAAKE,YAAY7S,GACjB2S,EAAKE,YAAYvT,GACjBqT,EAAKE,YAAYD,GACjBjH,EAAGkH,YAAYF,GAtEnB,SAA2B/G,EAAKmH,EAAQC,EAAOC,GAC7C,GAAI,MAAOF,GAKT,GAJWnH,EAAI5L,MAIX4L,EAAI5L,QAAU+S,EAChB,OAAO,OAEJ,GAAI,MAAOC,GAChB,GAAIpH,EAAItM,OAAS0T,EACf,OAAO,OAEJ,GAAI,MAAOC,GAChB,GAAIrH,EAAIgH,MAAQK,EACd,OAAO,OAEJ,GAAIrH,EAAIsH,gBACb,OAAO,EAET,OAAO,EAoDaC,CAAkBvH,EAAK2E,EAAcD,EAAaE,KAElE7E,EAAG8G,aAAa,WAAY,YAC5B9G,EAAG8G,aAAa,QAAS,aACrBnB,EAAYjK,EAAGgB,KAAK,qBACd4C,IAAI,UAAYW,EAAI8G,MAA0B,EAAlB9G,EAAI8G,KAAK3Q,OAAa,eAAiB,QAC7EuP,EAAUxO,KAAK,MAAQ8I,EAAI8G,MAA0B,EAAlB9G,EAAI8G,KAAK3Q,OAAa6J,EAAI8G,KAAO,IAEpErL,EAAGgB,KAAK,oBAAoBV,KAAKiE,EAAItM,MAC1BsM,EAAI5L,MAIfqH,EAAGgB,KAAK,qBAAqBV,KAAKiE,EAAI5L,OACtCqH,EAAGgB,KAAK,mBAAmBV,KAAKiE,EAAIgH,KACpCL,GAAa,GAEfxR,EAAEoQ,GAAOrJ,OAAO6D,IACT,IAGqB,EAA1BwF,EAAMhO,WAAWpB,SAAewQ,IAC9BF,EAAYlB,EAAMhO,SAAS,MAAMgP,QACrCnB,EAAgB3J,EAAIgL,GAAW,IAGjCtR,EAAE6P,GAAM3N,WAAW,YAGrB,SAASmQ,EAAiB/L,EAAIgM,GAC5B,IAOI7L,EACAmE,EACA2H,EATAnC,EAAQ9J,EAAGgB,KAAK,aACpB8I,EAAM3J,SACQ,IAAV6L,GAAqC,OAAnBxL,EAASwI,OAK3B7I,EAAQ,UACRmE,EAAKlH,SAAS+N,cAAc,OAC5Bc,EAAW7O,SAAS+N,cAAc,QAC7BC,aAAa,QAAS,YAC/Ba,EAAST,YAAYpO,SAASqO,eAAetL,IAC7CmE,EAAGkH,YAAYS,GACfvS,EAAEoQ,GAAOrJ,OAAO6D,GAChBtE,EAAGgB,KAAK,oBAAoBV,KAAKH,GACjCoJ,EAAK9N,KAAK,YAAY,IAZpBsP,EAAY/K,EAAIQ,EAASwI,MAAOc,EAAOtJ,EAAS0I,aAAc1I,EAASyI,YAAazI,EAAS2I,YA+NjG,OApiBAO,IA8LAH,EAAK7M,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAIjF,OAHK4M,EAAK5E,GAAG,yBAAmD,IAAxBnE,EAAS4B,YAC/CmI,EAAqB3B,IAEhB,IAITW,EAAK7M,GAAG,QAAS,SAASzB,GACxB,GAAIsO,EAAK5E,GAAG,uBACV,OAAO,EAET,IAAI3B,EAAW/H,EAAMgI,MAAShI,EAAMgI,MAAQrF,OAAO8M,MAAM1H,QACrDkJ,EAAYzE,OAAOC,aAAa1E,GAChCmJ,EAAS,iBAAiBvE,KAAKsE,GACnC,IAAIC,GACU,KAAZnJ,GAA8B,IAAZA,GAA6B,KAAZA,KAC9BuG,EAAK3I,SAAS,YAOjB,OANA2J,EAAqB3B,GACrBlP,EAAE0B,MAAMJ,eAAeC,GACnBkR,GAEFhC,EADYvB,EAAS5H,KAAK,aACHkL,IAElB,EAGX,OAAO,IA2HTH,EAAiBnD,GAEjBxN,KAAKgR,cAAgB,WACnB,IACItC,EADKlB,EACM5H,KAAK,aAChBqL,EAAOvC,EAAM9I,KAAK,gBAAgBtG,OACtC,OAAOoP,EAAMhO,SAAS,MAAMpB,OAAS2R,GAEvCjR,KAAKkR,SAAW,SAAShB,GAMvB,IALA,IAEIiB,EAFK3D,EACM5H,KAAK,aACMlF,WAGjBpE,EAFI6U,EAAc7R,OAEL,EAAQ,GAALhD,EAAQA,IAAK,CACpC,IAAI4M,EAAK5K,EAAE6S,EAAc7U,IACzB,GAAI4M,EAAGtD,KAAK,SAASV,SAAWgL,EAAKrT,MAC/BqM,EAAGtD,KAAK,UAAUV,SAAWgL,EAAK3S,MAEpC,OADA2L,EAAG+D,QACI,EAIb,OAAO,GAETjN,KAAKoR,SAAW,SAAUlB,GACxB,GAAI,MAAOA,EACT,OAAO,EAOT,IALA,IAEIiB,EAFK3D,EACM5H,KAAK,aACMlF,WAGjBpE,EAFI6U,EAAc7R,OAEL,EAAQ,GAALhD,EAAQA,IAAK,CACpC,IAAI4M,EAAK5K,EAAE6S,EAAc7U,IACzB,GAAI4M,EAAGtD,KAAK,SAASV,SAAWgL,EAAKrT,MAC/BqM,EAAGtD,KAAK,UAAUV,SAAWgL,EAAK3S,MAEpC,OADA2L,EAAGgE,QACI,EAIb,OAAO,GAETlN,KAAKqR,WAAa,SAASnB,GAMzB,IALA,IAEIiB,EAFK3D,EACM5H,KAAK,aACMlF,WAGjBpE,EAFI6U,EAAc7R,OAEL,EAAQ,GAALhD,EAAQA,IAC/B,GAAIgC,EAAE6S,EAAc7U,IAAIsJ,KAAK,SAASV,SAAWgL,EAAKrT,MAChDyB,EAAE6S,EAAc7U,IAAIsJ,KAAK,UAAUV,SAAWgL,EAAK3S,MAErD,OADAe,EAAE6S,EAAc7U,IAAIgV,UACb,EAIb,OAAO,GAETtR,KAAKuR,mBAAqB,WACxB,IAAI3M,EAAK4I,EACLkB,EAAQ9J,EAAGgB,KAAK,kBAEsB,IAD1B8I,EAAMhO,SAAS,2BACVL,KAAK,cACxBqO,EAAMhO,SAAS,2BAA2B4Q,SAC1C/C,EAAgB3J,EAAI8J,EAAMhO,SAAS,MAAMV,KAAKgR,gBAAkB,IAAI,KAGxEhR,KAAKwR,SAAW,SAAS5D,EAAOE,EAAcD,EAAaE,GACzD,IAMIW,EAJA,MAAOd,IAIPc,EANKlB,EAMM5H,KAAK,aACf,MAAOkI,GACN,MAAOD,GACP,MAAOE,QAE+B,IAD1BW,EAAMhO,SAAS,2BACVL,KAAK,aACxBqO,EAAMhO,SAAS,2BAA2BF,WAAW,YAIL,EAAhDkO,EAAM9I,KAAK,4BAA4BtG,QACzCoP,EAAM9I,KAAK,kBAAkB0L,SAE/BnD,EAAK3N,WAAW,YAChBmP,EAAYnC,EAAUI,EAAOc,EAAOZ,EAAcD,EAAaE,KAGjE/N,KAAKyR,UAAY,SAAS7D,EAAOE,EAAcD,EAAaE,GAC1D,IAKIW,EALA9J,EAAK4I,EACL,MAAOI,IAIPc,EAAQ9J,EAAGgB,KAAK,cACdb,QACN4K,EAAYnC,EAAUI,EAAOc,EAAOZ,EAAcD,EAAaE,IAL7D4C,EAAiB/L,IAQrB5E,KAAK8O,gBAAkB,WAMrB,MALW,CACTjS,KAAM2Q,EAAS5H,KAAK,oBAAoBV,OACxC3H,MAAOiQ,EAAS5H,KAAK,0BAA0BV,OAC/CiL,IAAK3C,EAAS5H,KAAK,sBAAsBV,SAI7ClF,KAAK0R,iBAAmB,WACtB,IAEIC,EAFKnE,EACM5H,KAAK,aACElF,SAAS,2BAC/B,YAA0C,IAA/BiR,EAAUtR,KAAK,YACjBmE,OAAOmN,EAAUtR,KAAK,aAAe,GAEtC,GAEVL,KAAK4R,iBAAmB,WACtB,OAAOpE,EAAS5H,KAAK,0BAA0BV,QAEjDlF,KAAK6R,gBAAkB,WACrB,OAAOrE,EAAS5H,KAAK,oBAAoBV,QAE3ClF,KAAK8R,eAAiB,WAEpB,OAAOtE,EAAS5H,KAAK,sBAAsBV,QAG7ClF,KAAK+R,gBAAkB,SAAS7M,GAC9B,IAAIN,EAAK4I,EACL0C,EAAOtL,EAAGgB,KAAK,kCAAkCoM,OAAO,WAC1D,OAAO1T,EAAE0B,MAAMkF,SAAWA,IAEV,EAAdgL,EAAK5Q,QACPiP,EAAgB3J,EAAIsL,EAAK+B,OAAO,OAAOA,OAAO,OAAO,IAIzDjS,KAAKkS,iBAAmB,SAAS3U,EAAOkR,GACtC,IAAI7J,EAAK4I,EACL0C,EAAOtL,EAAGgB,KAAK,mCAAmCoM,OAAO,WAC3D,OAAO1T,EAAE0B,MAAMkF,SAAW3H,IAEV,EAAd2S,EAAK5Q,SACHhB,EAAEU,kBAAkByP,KACtBA,GAAY,GAEdF,EAAgB3J,EAAIsL,EAAK+B,OAAO,OAAOA,OAAO,MAAOxD,KAIzDzO,KAAKmS,iBAAmB,SAAS7O,EAAOmL,GACtC,IAAI7J,EAAK4I,EACL0C,EAAOtL,EAAGgB,KAAK,gBAAgBzI,IAAImG,GACnChF,EAAEU,kBAAkByP,KACtBA,GAAY,GAEdF,EAAgB3J,EAAItG,EAAE4R,GAAOzB,IAG/BzO,KAAKoS,cAAgB,SAAS7U,GAC5B,IAAIqH,EAAK4I,EACL6E,EAASzN,EAAGgB,KAAK,qBACjB0M,EAAS1N,EAAGgB,KAAK,uBACP,IAAVrI,GACG+U,EAAO9M,SAAS,eACnB8M,EAAO7M,SAAS,cAEb4M,EAAO7M,SAAS,eACnB6M,EAAO5M,SAAS,gBAGd6M,EAAO9M,SAAS,eAClB8M,EAAOvM,YAAY,cAEjBsM,EAAO7M,SAAS,eAClB6M,EAAOtM,YAAY,gBASzB/F,KAAKuS,UAAY,WACf5B,EAAiBnD,GAAU,IAE7BxN,KAAKD,YAAc,SAASxC,GAC1B6H,EAAS4B,WAAazJ,EACtB+Q,KAEFtO,KAAKgH,WAAa,WAChB,OAAO5B,EAAS4B,cAGlBhH,KAAKsB,GAAK,SAASzB,EAAOkB,GAExB,OADAzC,EAAEiP,GAASlM,IAAIxB,GACRvB,EAAEiP,GAASjM,GAAGzB,EAAOkB,IAE9Bf,KAAKqB,IAAM,SAASxB,EAAOkB,GACzB,OAAOzC,EAAEiP,GAASlM,IAAIxB,EAAOkB,IAExBf,MAET1B,EAAEqB,GAAG2N,eAAiB,SAASzI,GAC7B,IAGMsB,EAHFC,EAAO,iBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAEgP,eAAetN,KAAM6E,GACxCvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAO8K,eAAiB,SAAShI,GAC/B,IAAIc,EAAO,iBAqCX,OApCApG,KAAK0R,iBAAmB,WACtB,OAAOpT,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMsL,oBAEhC1R,KAAK8O,gBAAkB,WACrB,OAAOxQ,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM0I,mBAEhC9O,KAAK4R,iBAAmB,WACtB,OAAOtT,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMwL,oBAEhC5R,KAAK6R,gBAAkB,WACrB,OAAOvT,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMyL,mBAEhC7R,KAAK8R,eAAiB,WACpB,OAAOxT,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM0L,kBAEhC9R,KAAKgR,cAAgB,WACnB,OAAO1S,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM4K,iBAEhChR,KAAKkS,iBAAmB,SAAS3U,EAAOkR,GACtCnQ,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM8L,iBAAiB3U,EAAOkR,IAEjDzO,KAAK+R,gBAAkB,SAAS7M,GAC9B5G,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM2L,gBAAgB7M,IAEzClF,KAAKmS,iBAAmB,SAAS7O,EAAOmL,GACtCnQ,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM+L,iBAAiB7O,EAAOmL,IAEjDzO,KAAKuS,UAAY,WACfjU,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMmM,aAEzBvS,KAAKD,YAAc,SAASxC,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMrG,YAAYxC,IAErCyC,KAAKgH,WAAa,WAChB,OAAO1I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMY,cAEzBhH,O,kBC7pBX,IAAW1B,KA8MRoG,QA3MC8N,iBAAmB,SAAS5N,EAAIC,GAChC7E,KAAKyS,QAAU7N,EACf5E,KAAK0S,SAAWpU,EAAEsG,GAClB5E,KAAK6E,QAAUA,EACfvG,EAAEsG,GAAIG,SAGRzG,EAAEkU,iBAAiBtU,UAAY,CAC7B8G,SAAU,CACR2N,MAAO,yBACPjN,KAAM,aACNkN,WAAY,GACZhS,YAAY,EACZoG,YAAY,EACZ6L,UAAW,mBACXC,YAAa,mBACbC,cAAe,SACfC,cAAe,SACfC,cAAc,EACdC,QAAS,KACThM,SAAU,aACViM,WAAY,cAEdC,MAAO,CAAC,SAAU,eAAgB,kBAAmB,cACrDC,WAAY,qkBACZC,WAAY,yQACZnM,KAAM,WACJ,IAAIuL,EAAW1S,KAAK0S,SAChBa,EAAOvT,KACXuT,EAAKnO,SAAW9G,EAAEG,OAAO,GAAI8U,EAAKvO,SAAUuO,EAAK1O,UACd,IAA/B0O,EAAKnO,SAAS6N,cAChBP,EAASrN,OAAO,2BAA6BkO,EAAKnO,SAASuN,MAAQ,YAErE,IAiCMa,EAjCFC,EAAY,uCAAyCF,EAAKnO,SAAS0N,YACnE,uCACCS,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,GAAK,iBAAmB,KAC3D,KACAM,EAAc,GACdC,EAAY,0BA8DhB,OA7DIJ,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,GAGpCM,EAAcD,GADdE,GAAa,oBAA2BJ,EAAKnO,SAAS2N,cAAgB,YAItEW,GADAC,GAAcJ,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,GAAK,uBAAyB,kBAE1E,gCACCG,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,GAAK,kBAAoB,IAE5D,0CAECG,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,GAAKG,EAAKD,WAAaC,EAAKF,YAC/D,KACAE,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,KACpCM,GAAeD,EAAY,kHAAoHF,EAAKD,WAAa,OAGrKI,GAAe,oDAIXH,EAAKnO,SAASyN,UAAY,YAC9BH,EAASrN,OAAOqO,GAChBH,EAAKK,WAAWL,EAAKnO,SAAS8N,SAE1BK,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,IAChCI,EAAYlV,EAAE,gCACHiV,EAAKnO,SAAS4N,cAAgB,iBAC7CN,EAASrN,OAAOmO,GAEhBA,EAAUlS,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAClFgS,EAAKnO,SAASxE,YAAc2S,EAAKnO,SAAS4B,YAG9CuM,EAAKM,gBAGYvV,EAAE,iBACRgD,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACrFgS,EAAKnO,SAASxE,YAAc2S,EAAKnO,SAAS4B,YAG9CuM,EAAKM,eAGOnB,EAAS9M,KAAK,cACpBtE,GAAG,SAAU,SAAUzB,GAC/B6S,EAAS9M,KAAK,eAAeuD,IAAInJ,KAAKzC,OAEtC,IAAIuW,EAAY,IAAIC,WACpBD,EAAUE,OAAS,SAAUC,GACzBV,EAAKK,WAAWK,EAAQzK,OAAOjF,QAC/BgP,EAAKnO,SAAS8B,SAAS+M,EAAQzK,OAAOjF,SAG7BuP,EAAUI,cAAcrU,EAAM2J,OAAO2K,MAAM,IACpDZ,EAAKnO,SAASM,OAAS6N,EAAKH,MAAM,IACpCG,EAAKM,eAGF7T,MAET4T,WAAY,SAAUnM,GACpB,IAAIiL,EAAW1S,KAAK0S,SAChB0B,EAAgB1B,EAAS9M,KAAK,eAC9ByO,EAAa3B,EAAS9M,KAAK,eAC3B0O,EAAY5B,EAAS9M,KAAK,cACzBtH,EAAEU,kBAAkByI,IACvB4M,EAAWhU,KAAK,MAAOoH,GAGzBjF,OAAO0M,WAAW,WAChBkF,EAAc9J,OAAO+J,EAAW/J,SAAW,GAC3CgK,EAAUhK,OAAO+J,EAAW/J,UAC5BgK,EAAUC,MAAMF,EAAWE,QAAU,KACrC7B,EAASpI,OAAO+J,EAAW/J,WAC1B,MAELkK,YAAa,WACX,IAAIL,EAAQnU,KAAK0S,SAAS9M,KAAK,cAAczI,IAAI,GAAGgX,MACpD,OAAwB,IAAjBA,EAAM7U,OAAeU,KAAKoF,SAAS8N,QAAUuB,UAAUN,EAAM,GAAGtX,OAEzEgX,WAAY,WACV,IAWIN,EAGAmB,EAdA/V,EAAO,IAAIgW,SACXjC,EAAW1S,KAAK0S,SAChByB,EAAQzB,EAAS9M,KAAK,cAAczI,IAAI,GAAGgX,MAM1B,IAAjBA,EAAM7U,SAGNiU,EAAOvT,KACXrB,EAAK0G,OAAO,gBAAiB8O,EAAM,IAE/BO,EAAY,4BACiB,KAA7BnB,EAAKnO,SAASwN,aAChB8B,GAAa,IAAMnB,EAAKnO,SAASwN,YAIjBtU,EAAEsW,KAAK,CACvBlP,KAAM,OACNmP,IAAKH,EACLI,aAAa,EACbC,aAAa,EACbpW,KAAMA,IAGIqW,KAAK,SAAUC,EAAUC,GAClB,YAAXA,IACF3B,EAAKnO,SAAS+N,WAAWsB,UAAUN,EAAM,GAAGtX,OAC5B,MAAZoY,GACEA,EAASE,MACXzC,EAAS9M,KAAK,eAAeuD,IAAI,IACjCuJ,EAAS9M,KAAK,cAAcuD,IAAI,UAM5CpJ,YAAa,SAAUxC,GACrByC,KAAKoF,SAAS4B,WAAazJ,GAE7ByJ,WAAY,WACV,OAAOhH,KAAKoF,SAAS4B,eAGzB1I,EAAEkU,iBAAiBxN,SAAW1G,EAAEkU,iBAAiBtU,UAAU8G,SAE3D1G,EAAEqB,GAAG6S,iBAAmB,SAAU3N,GAChC,IAGMsB,EAHFC,EAAO,mBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAEkU,iBAAiBxS,KAAM6E,GAASsC,OACnD7I,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAOgQ,iBAAmB,SAAUlN,GAClC,IAAIc,EAAO,mBAgBX,OAfApG,KAAK6T,WAAa,WAChB,OAAOvV,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMyN,cAEhC7T,KAAKwU,YAAc,WACjB,OAAOlW,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMoO,eAEhCxU,KAAK4T,WAAa,SAAUnM,GAC1B,OAAOnJ,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMwN,WAAWnM,IAE3CzH,KAAKD,YAAc,SAAUxC,GAC3Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMrG,YAAYxC,IAErCyC,KAAKgH,WAAa,WAChB,OAAO1I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMY,cAEzBhH,O,kBC1MX,IAAW1B,KA6LRoG,QA1LC0Q,kBAAoB,SAAUxQ,EAAIC,GAClC,IAAIwQ,EAAQ/W,EAAEsG,GAAKwB,EAAO,oBAC1B9H,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACb0B,aAAc,iZACdC,oBAAqB,iYACrBC,qBAAsB,6ZACtBC,WAAY,iqBACZC,kBAAmB,qpBACnBC,mBAAoB,ieACpBnG,YAAY,EACZ0U,UAAW,UACXpQ,KAAO5G,EAAEU,kBAAkBqW,EAAMhV,KAAK,SAAgC,GAArBgV,EAAMhV,KAAK,QAC5D4G,WAAW,EACXC,SAAU,cAGRqO,EAAOvV,KACXuV,EAAKnQ,SAAW,GAChBmQ,EAAKpO,KAAO,WACVoO,EAAKnQ,SAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,IAEzC0Q,EAAKpO,OAEL,IAAIC,EAAU,iCAAmCmO,EAAKnQ,SAASsB,aAAe,wBAA0B6O,EAAKnQ,SAASF,KAAO,UAO7H,SAASsQ,EAAiBlQ,GACxB,IAAImQ,EAAaF,EAAKnQ,SAASkQ,UAC/BhX,EAAE2B,KAAK3B,EAAE,YAAc8H,EAAO,KAAM,SAASlG,EAAKwV,GAChD,IAAIC,EAAYrX,EAAEoX,GAAO/W,KAAKyH,GAAMhB,SAChC9G,EAAEoX,GAAOrV,KAAK,QAAUiF,GAAMqQ,EAAUL,YAAcG,GAAcE,EAAU1O,WAChF3I,EAAEoX,GAAO/W,KAAKyH,GAAM0B,YAAW,KAXrCuN,EAAMhQ,OAAO+B,GAETmO,EAAKnQ,SAASxE,YAChByU,EAAMhV,KAAK,YAAY,GAazB,IAAIgH,EAASgO,EAAMzP,KAAK,QAExB,SAASkC,EAAWvK,GAClB,IAAIgK,EAAW8N,EAAMhV,KAAK,QAAU/B,EAAE0D,SAASwF,eAAenH,KAAK,MAGjEoH,EADE8N,EAAKnQ,SAASxE,WACV2U,EAAKnQ,SAAS6B,UAAYsO,EAAKnQ,SAAS2B,mBAAqBwO,EAAKnQ,SAASwB,qBACxErJ,GACTgY,EAAKnQ,SAAS6B,WAAY,EACpBM,EAAWgO,EAAKnQ,SAAS0B,kBAAoByO,EAAKnQ,SAASyB,aAEjE0O,EAAKnQ,SAAS6B,WAAY,EACpBM,EAAWgO,EAAKnQ,SAASuB,oBAAsB4O,EAAKnQ,SAASsB,cAErEW,EAAOhH,KAAK,MAAOoH,GAkGrB,OAtEA4N,EAAM/T,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAC9EgU,EAAKnQ,SAASxE,aAIlB4U,EADUlX,EAAE0B,MAAMK,KAAK,OAEvByH,GAAW,GACXuN,EAAM1N,SACN4N,EAAKnQ,SAAS8B,SAASqO,EAAKtO,gBAG9BoO,EAAM/T,GAAG,WAAY,SAAUzB,GAC7B,GAAI0V,EAAKnQ,SAASxE,WAChB,OAAO,EAET,IAAIgH,EAAW/H,EAAMgI,MAAShI,EAAMgI,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EASjG,OARgB,KAAZA,GAA8B,KAAZA,IAEpB4N,EADUlX,EAAE0B,MAAMK,KAAK,OAEvByH,GAAW,GACXuN,EAAM1N,SACN4N,EAAKnQ,SAAS8B,SAASqO,EAAKtO,eAGvB,IAGToO,EAAM/T,GAAG,QAAS,WACZiU,EAAKnQ,SAASxE,YAnClByG,EAAOhH,KAAK,MAAOkV,EAAKnQ,SAAS6B,UAAYsO,EAAKnQ,SAAS0B,kBAAoByO,EAAKnQ,SAASuB,uBAyC/F0O,EAAM/T,GAAG,OAAQ,WACXiU,EAAKnQ,SAASxE,YAtClByG,EAAOhH,KAAK,MAAOkV,EAAKnQ,SAAS6B,UAAYsO,EAAKnQ,SAASyB,WAAa0O,EAAKnQ,SAASsB,gBA4CxFoB,EAAWyN,EAAKnQ,SAAS6B,WACrBsO,EAAKnQ,SAAS6B,WACduO,EAAiBH,EAAMhV,KAAK,OAGhCL,KAAKiH,UAAY,WACf,OAAOsO,EAAKnQ,SAAS6B,WAEvBjH,KAAK8H,WAAa,SAAUvK,GACtBA,GACFiY,EAAiBlX,EAAE0B,MAAMK,KAAK,OAEhCyH,EAAWvK,IAEbyC,KAAKa,UAAY,WACf,OAAQ0U,EAAKnQ,SAASxE,YAExBZ,KAAKM,WAAa,SAAU/C,IAnF5B,SAAyBA,GACnB,MAAOA,IACTgY,EAAKnQ,SAASxE,YAAcrD,GAE9B,IAAIuI,EAAW,iBACXvI,EACE8X,EAAM7P,SAASM,IACjBuP,EAAMtP,YAAYD,GAGfuP,EAAM7P,SAASM,IAClBuP,EAAM5P,SAASK,GAGnBgC,EAAWyN,EAAKnQ,SAAS6B,WAsEzBc,CAAgBxK,IAGlByC,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAGnBf,MAET1B,EAAEqB,GAAGyV,kBAAoB,SAAUvQ,GACjC,IAGMsB,EAHFC,EAAO,oBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAE8W,kBAAkBpV,KAAM6E,GAC3CvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAO4S,kBAAoB,SAAU9P,GACnC,IAAIc,EAAO,oBAgBX,OAfApG,KAAKiH,UAAY,WACf,OAAO3I,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMa,aAEhCjH,KAAK8H,WAAa,SAAUvK,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM0B,WAAWvK,IAEpCyC,KAAK4V,aAAe,WAClB,OAAOtX,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMhB,SAASkQ,WAEzCtV,KAAKa,UAAY,WACf,OAAQvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,WAEjCb,KAAKM,WAAa,SAAU/C,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM9F,WAAW/C,IAE7ByC,O,kBCzLX,IAAW1B,IA2CRoG,OAxCDlC,OAAOqT,eAAiB,GACxBA,eAAeC,SAAW,SAAUC,EAAUlW,EAAOmW,EAAeC,GAClE,IAAIrO,EAAW/H,EAAMgI,MAAShI,EAAMgI,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EACjG,GAAgB,IAAZA,GAA6B,IAAZA,GAA6B,IAAZA,GAA6B,KAAZA,EAAkB,OAAO,EAChF,IAAIwE,EAAaC,OAAOC,aAAa1E,GAGrC,GAFuB,IAAI2E,OAAOyJ,GACIxJ,KAAKJ,GACvB,CAClB,IACIK,EADQnO,EAAEyX,GACO5M,MAAQiD,EAG7B,QAFoB,IAAIG,OAAO0J,GACGzJ,KAAKC,KAKrCnO,EAAE0B,MAAMJ,eAAeC,IAChB,GAKT,OADAvB,EAAE0B,MAAMJ,eAAeC,IAChB,GAIXgW,eAAeK,YAAc,SAAUrW,EAAOmW,GAC5C,IAAIpO,EAAW/H,EAAMgI,MAAShI,EAAMgI,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EACjG,GAAgB,IAAZA,GAA6B,IAAZA,GAA6B,IAAZA,GAA6B,KAAZA,EAAkB,OAAO,EAChF,IAAIwE,EAAaC,OAAOC,aAAa1E,GAGrC,QAFuB,IAAI2E,OAAOyJ,GACIxJ,KAAKJ,KAIzC9N,EAAE0B,MAAMJ,eAAeC,IAChB,K,kBCvCb,IAAWvB,KAkmBRoG,QA/lBCyR,iBAAmB,SAAUvR,EAAIC,GACjC,IAAIC,EAAWxG,EAAEsG,GAAKwR,EAAUpW,KAChC1B,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACbC,UAAW,UACXrB,OAAQ,WACRhD,YAAY,EACZ2K,UAAU,EACV8K,KAAM,QACNC,UAAW,CAAC,QAAS,SACrB9K,WAAW,EACXtE,SAAU,cAGRqP,EAAU,CACZ,CACEF,KAAM,QACNG,SAAU,OACVC,OAAQ,MACRC,QAAS,QAEX,CACEL,KAAM,QACNG,SAAU,YACVC,OAAQ,QACRC,QAAS,UAgBb,SAAStS,EAAY+E,GACnB,OAAiC,IAA1BA,EAAI1E,WAAWnF,OAAe,IAAM6J,EAAI1E,WAAa0E,EAAI1E,WAGlE,IAIIkS,EAJAC,EAAO,IAAItU,KACX6B,EAAQC,EAAYwS,EAAKzT,YACzBkB,EAAUD,EAAYwS,EAAKxT,cAC3BkB,EAAUF,EAAYwS,EAAKvT,cAG/B+S,EAAQhR,SAAW,GACnBgR,EAAQjP,KAAO,WACbiP,EAAQhR,SAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,GAC1C,IAxBkBgS,EACd9S,EACAC,EACAC,EAqBA6S,EAAIV,EAAQhR,SAASxB,OAEvBwS,EAAQhR,SAAS7H,MADT,YAANuZ,GAxBA/S,GADc8S,EA0BoBD,GAzBpBzT,WACda,EAAW6S,EAAKzT,aAChBa,EAAiB,IAAVF,EAAe,KAAO,MAEjCA,GADAA,GAAkB,KACS,IAEJ,KADvBC,EAAWA,EAAW,GAAK,IAAMA,EAAWA,GACJ,IAAMC,GAqBnB6S,EAAEjT,QAAQ,KAAMM,GAAON,QAAQ,KAAMQ,GAASR,QAAQ,KAAMS,IAGzF8R,EAAQjP,OAER,IAAI4P,EAAU/R,EAASsR,UAAU/S,QAAQ6S,EAAQhR,SAASiR,MACtDU,EAAU,IACZA,EAAU,GAEZ,IAAIC,EAAU1Y,EAAE,8BAAgC8X,EAAQhR,SAASmG,SAAW,OAAS,QAAU,4BAA8B6K,EAAQhR,SAAS7H,MAAQ,QAClJ0Z,EAAU3Y,EAAE,kEAAoEiY,EAAQQ,GAASP,SAAW,sJAGfJ,EAAQhR,SAAS7H,MAAMiG,UAAU,EAAE,GAAK,0LAE3C4S,EAAQhR,SAAS7H,MAAMiG,UAAU,EAAG,GAAK,unBAQ/E+S,EAAQQ,GAASN,OAAS,0DAA4DF,EAAQQ,GAASL,QAAU,sBAIzK,SAASQ,EAAQjY,EAAKyG,EAAMyR,GAC1B,IAAIC,EAAe,MAAT1R,EAAe,GAAK,GAE1B2R,EADI/Y,EAAEW,GAAKgT,SAASrM,KAAK,QACfV,OAGZoS,EADmB,IAAjBD,EAAM/X,QAA0C,MAA1B+X,EAAM7T,UAAU,EAAG,GACpCgB,OAAO6S,GAEP7S,OAAO6S,EAAM7T,UAAU,EAAG,IAEnB,EAAZ2T,EACUC,GAARE,EACFA,EAAO,EAEPA,IAGEA,GAAQ,EACVA,EAAOF,EAEPE,IAGJ,IAAIC,EAAmC,IAA3BD,EAAK7S,WAAWnF,OAAe,IAAMgY,EAAOA,EACxDhZ,EAAEW,GAAKgT,SAASrM,KAAK,QAAQV,KAAKqS,GAEpC,SAASC,EAAU9R,GACjB,IAAI+R,EAAYR,EAAQrR,KAAc,MAATF,EAAe,WAAa,cACrD+R,EAAUjS,SAAS,YAGvBmR,EAAY,KACOM,EAAQrR,KAAc,MAATF,EAAe,aAAe,YACjDK,YAAY,UACzB0R,EAAUhS,SAAS,WAGrBwR,EAAQrR,KAAK,0BAA0BtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACnHiW,EAAU,KACVN,EAAQlX,KAAM,IAAK,KAErBiX,EAAQrR,KAAK,4BAA4BtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACrHiW,EAAU,KACVN,EAAQlX,KAAM,KAAM,KAEtBiX,EAAQrR,KAAK,8BAA8BtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACvHiW,EAAU,KACVN,EAAQlX,KAAM,IAAK,KAErBiX,EAAQrR,KAAK,gCAAgCtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACzHiW,EAAU,KACVN,EAAQlX,KAAM,KAAM,KAEtBiX,EAAQrR,KAAK,iBAAiBtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAC1GiW,EAAU,OAEZP,EAAQrR,KAAK,mBAAmBtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAC5GiW,EAAU,OAGZP,EAAQrR,KAAK,oBAAoBtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAC7G,IASMmW,EAEFH,EAXAE,EAAYR,EAAQrR,KAAK,0BACzBF,EAAO+R,EAAUjS,SAAS,QAAU,IAAM,IAC1CmS,EAAQF,EAAU7R,KAAK,QACvBgS,EAAMtZ,EAAE0B,MAAM4F,KAAK,QAAQV,OAI7ByR,EAFE,MAAOA,GACTY,EAAQ,IAAMK,EACFA,IAERF,EAAMlT,OAAOmS,GAEfY,EADW,KAAT7R,IAAiBgS,GAAO,GAAa,IAARA,GAAalT,OAAOoT,GAAO,IAExC,KAATlS,GAAgBgS,GAAO,EADxBf,EAAYiB,EAIZ,IAAMA,EAEJ,MAEdD,EAAMzS,KAAKqS,KAGbN,EAAQrR,KAAK,6BAA6BtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACtH,IAAIuV,EAAIV,EAAQhR,SAASxB,OACzBwS,EAAQhR,SAAS7H,MAAQuZ,EAAEjT,QAAQ,KAAMoT,EAAQrR,KAAK,6BAA6BV,QAAQrB,QAAQ,KAAMoT,EAAQrR,KAAK,+BAA+BV,QACrJ8R,EAAQ7N,IAAIiN,EAAQhR,SAAS7H,OAC7B6Y,EAAQlK,QACRpH,EAAS6C,SACTyO,EAAQhR,SAAS8B,SAASkP,EAAQhR,SAAS7H,SAE7C0Z,EAAQrR,KAAK,4BAA4BtE,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACrHqV,EAAO,IAAItU,KACX6B,EAAQC,EAAYwS,EAAKzT,YACzBkB,EAAUD,EAAYwS,EAAKxT,cAC3BkB,EAAUF,EAAYwS,EAAKvT,cAC3B,IAAIyT,EAAIV,EAAQhR,SAASxB,OACzBwS,EAAQhR,SAAS7H,MAAQuZ,EAAEjT,QAAQ,KAAMM,GAAON,QAAQ,KAAMQ,GAASR,QAAQ,KAAMS,GACrF0S,EAAQ7N,IAAIiN,EAAQhR,SAAS7H,OAC7B6Y,EAAQlK,QACRpH,EAAS6C,SACTyO,EAAQhR,SAAS8B,SAASkP,EAAQhR,SAAS7H,MAAOqZ,KAGpD,IAAI7K,EAAczN,EAAE,8CAChB0N,EAAS1N,EAAE,4CA8Xf,OA7XA0N,EAAO1K,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACnF6U,EAAQnK,SAAWmK,EAAQlK,QAAUkK,EAAQjK,SAG/C6K,EAAQ1V,GAAG,UAAW,SAAUC,GAC9B,IAAIqG,EAAWrG,EAAEsG,MAAStG,EAAEsG,WAA0BpI,IAAjB+C,OAAO3C,MAAsB2C,OAAO3C,MAAM+H,QAAU,EACzF,GAAgB,IAAZA,GAA6B,IAAZA,GAA6B,IAAZA,GAA6B,KAAZA,EAAkB,OAAO,EAChF,IAAIwE,EAAaC,OAAOC,aAAa1E,GAYrC,IAVmB,IAAfrG,EAAEsW,WACJzL,EAAaA,EAAWxC,eAEV,MAAZhC,EACFwE,EAAa7K,EAAEsW,SAAW,IAAK,IACX,IAAXjQ,GAAiBA,GAAW,MACrCwE,GAAcxE,EAAU,IAAInD,YAEP,IAAI8H,OAAO,eACIC,KAAKJ,GACvB,CAClB,IAAIK,EAAW,GACXzM,KAAK0M,aAAe1M,KAAK2M,gBAAmB,IAC9CF,EAAWnO,EAAE0B,MAAMmJ,OAErBsD,GAAYL,EACZ,IAAI0K,EAAIV,EAAQhR,SAASxB,OACrByH,EAAK+K,EAAQhR,SAASxB,OAAOJ,UAAU,EAAG,GAC1CoJ,EAAS,GACTC,EAASJ,EAASnN,OA4HtB,MA3HgC,YAA5B8W,EAAQhR,SAASxB,QACJ,IAAXiJ,IACFD,EAAS,cAEI,IAAXC,IACFD,EAAS,kBAAoBvB,EAAK,mBAErB,IAAXwB,IACFD,EAAS,uBACPvB,EACA,mBACAA,EACA,KAEW,IAAXwB,IACFD,EAAS,4BACPvB,EACA,wBAA0BA,EAAK,UAEpB,IAAXwB,IACFD,EAAS,SAAWvB,EAAK,4BAA8BA,EAAK,eAEjD,EAATwB,GAAcA,EAAS,IACzBD,EAAS,SACPvB,EACA,+BAEAA,EACA,4BAEAA,EACA,wBAOW,IAAXwB,IACFD,EAAS,SAEI,IAAXC,IACFD,EAAS,8BAEI,IAAXC,IACFD,EAAS,sDACPvB,EACA,cACAA,EACA,cACAA,EACA,KAEW,IAAXwB,IACFD,EAAS,qEACPvB,EACA,mBACAA,EACA,mBACAA,EACA,UAEW,IAAXwB,IACe,IAAbiK,EAAExX,OACJsN,EAAS,YAAcvB,EAAK,wBAA0BA,EAAK,wBAA0BA,EAAK,cAE1FuB,GAAU,oFACRvB,EACA,wBACAA,EACA,wBACAA,EACA,eAGS,IAAXwB,GAA2B,EAAXiK,EAAExX,SACpBsN,EACE,mGACAvB,EACA,eACAA,EACA,cACAA,EACA,eACAA,EACA,cACAA,EACA,eACAA,EACA,KAEW,IAAXwB,GAA2B,EAAXiK,EAAExX,SACpBsN,EAAS,YACPvB,EACA,eACAA,EACA,mBACAA,EACA,eACAA,EACA,mBACAA,EACA,eACAA,EACA,UAEW,IAAXwB,IACFD,EAAS,YACPvB,EACA,eACAA,EACA,wBACAA,EACA,eACAA,EACA,wBACAA,EACA,eACAA,EACA,kBAGc,IAAIkB,OAAO,KAAOK,EAAS,MAC7BJ,KAAKC,KAGrBnO,EAAE0B,MAAMJ,eAAe2B,IAChB,GAIT,OADAjD,EAAE0B,MAAMJ,eAAe2B,IAChB,IAGN6U,EAAQhR,SAASmG,UACpByL,EAAQ1V,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACpFvB,KAAK8M,kBAAkB,EAAG9M,KAAKzC,MAAM+B,UAGzC0X,EAAQ1V,GAAG,SAAU,WACnB,IAAIqI,EAASrL,EAAE0B,MAAMmJ,MACjB4D,EAASqJ,EAAQhR,SAAS7H,MAC9B,GAA6B,IAAzBoM,EAAOmO,OAAOxY,OAAlB,CAQA,IAHA,IACIyY,EAMAxT,EAPAuS,EAAIV,EAAQhR,SAASxB,OAChBoU,EAAO,GACZC,EAAS,SACqB,QAA1BF,EAAME,EAAOC,KAAKpB,KACxBkB,EAAKxY,KAAK,CAAE8D,MAAOyU,EAAIzU,MAAO6U,KAAMJ,EAAI,KAI1C,IAgCQ9T,EAhCJmU,EAAgD,GAAhCzO,EAAOpG,QAAQyU,EAAK,GAAGG,MACvCE,EAAe1O,EAAOrK,OAE1B,GAAU,YAANwX,EACF,GAAqB,IAAjBuB,GAAuC,IAAjBA,IAAuBD,EAE7C7T,EADa,MAAXoF,GAA6B,OAAXA,EACXoD,EAAOvJ,UAAU,EAAGuJ,EAAOzN,OAAS,GAAK,KAC9B,MAAXqK,GAA6B,OAAXA,EAClBoD,EAAOvJ,UAAU,EAAGuJ,EAAOzN,OAAS,GAAK,MAEnC,MAAXqK,IACFA,EAAS,IAEFA,EAASoD,EAAOvJ,UAAUuJ,EAAOxJ,QAAQyU,EAAK,GAAGG,MAAOrB,EAAExX,OAAS,SAEzE,GAAI+Y,EAAe,GAAKD,EAE7B7T,GADAoF,EAASA,EAAOnG,UAAU,EAAGmG,EAAOpG,QAAQyU,EAAK,GAAGG,QAClCpL,EAAOvJ,UAAUuJ,EAAOxJ,QAAQyU,EAAK,GAAGG,MAAOrB,EAAExX,OAAS,QACvE,GAAqB,IAAjB+Y,GAAsBD,EAAe,CAC9C,IAAIE,EAAK3O,EAAOnG,UAAU,EAAGmG,EAAOpG,QAAQyU,EAAK,GAAGG,OAChDI,EAAK5O,EAAOnG,UAAUmG,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,GACzD,GAAkB,IAAdG,EAAGhZ,OACLiZ,EAAKxL,EAAOvJ,UAAUuJ,EAAOzN,OAAS,EAAGyN,EAAOzN,OAAS,QACpD,GAAIiZ,EAAGjZ,OAAS,EAErB,YADAhB,EAAE0B,MAAMmJ,IAAI4D,GAGdxI,EAAS+T,EAAK,IAAMC,EAAK,IAAMxL,EAAOvJ,UAAUuJ,EAAOzN,OAAS,OAE3D,CAAmB,EAAf+Y,GAAoBD,IACzBE,EAAK3O,EAAOnG,UAAU,EAAGmG,EAAOpG,QAAQyU,EAAK,GAAGG,OAChDI,EAAK,GACLtU,EAAO,IACU,IAAjBoU,EACFE,EAAK5O,EAAOnG,UAAUmG,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,GAC3B,IAAjBE,EACTE,EAAK5O,EAAOnG,UAAUmG,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,EAAGxO,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,GAC9D,GAAhBE,IACTE,EAAK5O,EAAOnG,UAAUmG,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,EAAGxO,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,GACvFlU,EAAO0F,EAAOnG,UAAUmG,EAAOpG,QAAQyU,EAAK,GAAGG,MAAQ,IAGvD5T,EADkB,IAAhBN,EAAK3E,OACEgZ,EAAK,IAAMC,EAAK,IAAMxL,EAAOvJ,UAAUuJ,EAAOzN,OAAS,GAEvDgZ,EAAK,IAAMC,EAAK,IAAMtU,OAI9B,CACL,IAAIuU,EAA8B,EAAdR,EAAK1Y,QAA8C,GAAhCqK,EAAOpG,QAAQyU,EAAK,GAAGG,MAC9D,GAAqB,IAAjBE,GACe,IAAjBA,GACiB,IAAjBA,GAAsBD,GACL,IAAjBC,IAAuBD,GACN,IAAjBC,GAAsBG,GACL,IAAjBH,GAAsBG,EAEtB,YADAla,EAAE0B,MAAMmJ,IAAI4D,GAGO,IAAjBsL,GAAuC,IAAjBA,GACxB9T,EAASoF,EAAOnG,UAAU,EAAG,GAAKwU,EAAK,GAAGG,KAAOxO,EAAOnG,UAAU,EAAG,GAChD,IAAjB6U,IACF9T,GAAUyT,EAAK,GAAGG,KAAOxO,EAAOnG,UAAU,EAAG,KAG/Ce,EAASoF,EAASoD,EAAOvJ,UAAUmG,EAAOrK,OAAQwX,EAAExX,QAGxD8W,EAAQhR,SAAS7H,MAAQgH,EACzBjG,EAAE0B,MAAMmJ,IAAI5E,GACZO,EAAS6C,SACTyO,EAAQhR,SAAS8B,SAASkP,EAAQhR,SAAS7H,YAnFzCe,EAAE0B,MAAMmJ,IAAI4D,KAqFhBjI,EAASO,OAAO2R,GACXZ,EAAQhR,SAASoG,YACpB1G,EAASO,OAAO4R,GAChBnS,EAASO,OAAO0G,GAChBjH,EAASO,OAAO2G,IAGblH,EAASU,SAASR,EAASC,YAC9BH,EAASW,SAAST,EAASC,WAG7BjF,KAAKiM,OAAS,WACZ,QAAoC,SAA3BgL,EAAQzO,IAAI,aAEvBxI,KAAKmM,KAAO,WACV7N,EAAE0D,UAAUV,GAAG,WAAawD,EAASzE,KAAK,MAAO,SAAUkB,GACzD,IAAI+H,EAAYxE,EACXwE,EAAUC,GAAGhI,EAAEiI,SACoB,IAAnCF,EAAUG,IAAIlI,EAAEiI,QAAQlK,SAC3B2X,EAAQhK,OACRlB,EAAYkB,OACZ3O,EAAE0D,UAAUX,IAAI,WAAayD,EAASzE,KAAK,UAG3C+V,EAAQnK,WAGZgL,EAAQrR,KAAK,6BAA6BV,KAAKkR,EAAQhR,SAAS7H,MAAMiG,UAAU,EAAG,IACnFyT,EAAQrR,KAAK,+BAA+BV,KAAKkR,EAAQhR,SAAS7H,MAAMiG,UAAU,EAAG,IAGvEsB,EAAS+F,SAASD,IACftM,EAAE,QAAQgM,SACA,GACzByB,EAAYvD,IAAI,CACd,IAAO,QACP,cAAe,UAEjByO,EAAQzO,IAAI,CACV,IAAO,QACP,cAAe,aAGjBuD,EAAYvD,IAAI,CACd,IAAO,IACP,cAAe,UAEjByO,EAAQzO,IAAI,CACV,IAAO,WACP,cAAe,OAGnByO,EAAQzO,IAAI,UAAW,OAEvByO,EAAQ/J,OACRnB,EAAYmB,SAEdlN,KAAKkM,MAAQ,WACX5N,EAAE0D,UAAUX,IAAI,WAAayD,EAASzE,KAAK,OAC3CsW,EAAY,KACZM,EAAQhK,OACRlB,EAAYkB,QAGdjN,KAAKqG,SAAW,WACd,OAAO+P,EAAQhR,SAAS7H,OAG1ByC,KAAKsG,SAAW,SAAU/I,GACxB,IAAIuZ,EAAIV,EAAQhR,SAASxB,OACzBwS,EAAQhR,SAAS7H,MAAQuZ,EAAEjT,QAAQ,KAAMtG,EAAMiG,UAAU,EAAE,IAAIK,QAAQ,KAAMtG,EAAMiG,UAAU,EAAE,IAC/FwT,EAAQ7N,IAAIiN,EAAQhR,SAAS7H,QAG/ByC,KAAKa,UAAY,WACf,OAAOiE,EAASjE,aAGlBb,KAAKI,QAAU,WACb9B,EAAEsG,GAAIxE,WAGRJ,KAAKO,OAAS,WACZjC,EAAEsG,GAAIrE,UAGRP,KAAKM,WAAa,SAAU/C,GAC1B,IAAIuI,EAAW,2BACXvI,EACEuH,EAASU,SAASM,IACpBhB,EAASiB,YAAYD,GAGlBhB,EAASU,SAASM,IACrBhB,EAASW,SAASK,IAKxB9F,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAGtBqV,EAAQhR,SAASxE,aACnBZ,KAAKI,UACLJ,KAAKM,YAAW,IAGlBwE,EAASxD,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACrF,QAAIuD,EAASlE,eAAiBkE,EAASjE,eAGvCiE,EAASkB,QAAQ,CACfN,KAAM,YACNO,QAAS,yDACTC,KAAM,IAAI5D,QAEL,KAGFtC,MAET1B,EAAEqB,GAAGwW,iBAAmB,SAAUtR,GAChC,IAGMsB,EAHFC,EAAO,mBAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAE6X,iBAAiBnW,KAAM6E,GAC1CvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAO2T,iBAAmB,SAAU7Q,GAClC,IAAIc,EAAO,mBAiBX,OAhBApG,KAAKqG,SAAW,WACd,OAAO/H,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMC,YAEhCrG,KAAKsG,SAAW,SAAU/I,GACxBe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAME,SAAS/I,IAElCyC,KAAKa,UAAY,WACf,OAAOvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,aAEhCb,KAAKM,WAAa,SAAU/C,GACtBA,EACFe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM7F,SAEvBjC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMhG,WAGpBJ,O,kBC7lBX,IAAW1B,KAsMRoG,QAnMC+T,aAAe,SAAU7T,EAAIC,GAC7B,IAAI6T,EAAUpa,EAAEsG,GAAK+T,EAAS3Y,KAC9B1B,EAAEsG,GAAIG,QACN,IAAIC,EAAW,CACbC,UAAW,iBACXrE,YAAY,EACZgY,cAAUnZ,EACVoZ,cAAUpZ,EACVqZ,UAAW,EACXvb,MAAQe,EAAEU,kBAAkB0Z,EAAQrY,KAAK,UAAoC,GAAxBqY,EAAQrY,KAAK,SAClEiI,SAAWhK,EAAEU,kBAAkB0Z,EAAQrY,KAAK,aAA0C,KAA3BqY,EAAQrY,KAAK,YACxE6G,SAAU,cAGR9B,EAAW,GACfuT,EAAOxR,KAAO,WACZ/B,EAAW9G,EAAEG,OAAO,GAAIuG,EAAUH,IAEpC8T,EAAOxR,OACPuR,EAAQlY,WAAW,YAEnB,IAAI4G,EAAU,0GACkDhC,EAAS7H,MAAQ,eAAiByH,EAASsD,SAAW,kDAGtHoQ,EAAQrT,OAAO+B,GAEVsR,EAAQlT,SAASR,EAASC,YAC7ByT,EAAQjT,SAAST,EAASC,WAE5B,IAAI8T,EAAWL,EAAQ9S,KAAK,aAC5BmT,EAASzX,GAAG,WAAY,SAAUzB,GAChC,OAAOgW,eAAeK,YAAYrW,EAAO,wBAE3CkZ,EAASzX,GAAG,SAAU,SAAUzB,GAC9B,IAAImZ,EAAYD,EAAS5P,MACrByP,EAAWxT,EAASwT,SACpBC,EAAWzT,EAASyT,SACN,KAAdG,GAAoB1a,EAAE2a,UAAUD,KAC9BxU,OAAOwU,GAAaJ,EACtBG,EAAS5P,IAAIyP,GACJpU,OAAOwU,GAAaH,GAC7BE,EAAS5P,IAAI0P,IAGjBH,EAAQ/Q,SACRvC,EAAS8B,SAASyR,EAAOtS,cAG3B,IAAI6S,EAAUR,EAAQ9S,KAAK,YAC3BsT,EAAQ5X,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GACpF,GAAI2X,EAAQtY,aACV,OAAO,EAET,IAAIoY,EAAYD,EAAS5P,MACrByP,EAAWxT,EAASwT,SACxB,QAAyB,IAAdI,GAA2C,KAAdA,EACtCA,EAAa1a,EAAEU,kBAAkB4Z,IAAkB,EAAN,QACxC,GAAIta,EAAE2a,UAAUD,GAAY,CACjC,IAAK1a,EAAEU,kBAAkB4Z,IAAapU,OAAOwU,GAAaJ,EAIxD,OAHAG,EAAS5P,IAAI,IACbuP,EAAQ/Q,SACRvC,EAAS8B,SAASyR,EAAOtS,aAClB,EAGT,IAAIyS,EAAY1T,EAAS0T,UACzBE,EAAYxU,OAAOwU,GAAaF,OACR,IAAbF,GACU,IAAfI,IACFA,EAAY,IAGVA,GAAaJ,IACfI,EAAYJ,IAKXta,EAAEU,kBAAkBga,IAA4B,KAAdA,GAAoBxU,OAAOwU,IAAeF,EAAY,GAAM,IACjGE,EAAYA,EAAUG,QAAQL,EAAUrU,WAAW2U,MAAM,KAAK,GAAG9Z,SAMrE,OAHAyZ,EAAS5P,IAAI6P,GACbN,EAAQ/Q,SACRvC,EAAS8B,SAASyR,EAAOtS,aAClB,IAET,IAAIgT,EAAQX,EAAQ9S,KAAK,UAyEzB,OAxEAyT,EAAM/X,GAAG,eAAgBU,SAAS0F,gBAAkB,WAAa,QAAS,SAAUnG,GAClF,GAAI8X,EAAMzY,aACR,OAAO,EAET,IAAIgY,EAAWxT,EAASwT,SACpBI,EAAYD,EAAS5P,MACzB,QAAyB,IAAd6P,GAA2C,KAAdA,EACtCA,EAAa1a,EAAEU,kBAAkB4Z,GAAuB,EAAXA,OACxC,GAAIta,EAAE2a,UAAUD,GAAY,CACjC,IAAIH,EAAWzT,EAASyT,SACxB,GAAI,MAAOA,GAAiDrU,OAAOwU,KAAeH,EAChF,OAAO,EAETG,EAAYxU,OAAOwU,GAAa5T,EAAS0T,UAIzC,IAAIA,EAAY1T,EAAS0T,UACP,KAAdE,GAAoBxU,OAAOwU,IAAeF,EAAY,GAAM,IAC9DE,EAAYA,EAAUG,QAAQL,EAAUrU,WAAW2U,MAAM,KAAK,GAAG9Z,SAMrE,OAHAyZ,EAAS5P,IAAI6P,GACbN,EAAQ/Q,SACRvC,EAAS8B,SAASyR,EAAOtS,aAClB,IAGTrG,KAAKqG,SAAW,WACd,OAAOqS,EAAQ9S,KAAK,aAAauD,OAGnCnJ,KAAKsG,SAAW,SAAU/I,GACxBmb,EAAQ9S,KAAK,aAAauD,IAAI5L,IAGhCyC,KAAKsZ,aAAe,SAAU/b,GAC5B6H,EAAS0T,UAAYvb,GAEvByC,KAAKa,UAAY,WACf,OAAO6X,EAAQ7X,aAEjBb,KAAKM,WAAa,SAAU/C,GAC1B,IAAIgc,EAAe,wBACfC,EAAa,yBACbC,EAAOf,EAAQ9S,KAAK,YACpB8T,EAAKhB,EAAQ9S,KAAK,UAElBrI,GACEkc,EAAKjU,SAAS+T,IAChBE,EAAK1T,YAAYwT,GAEfG,EAAGlU,SAASgU,IACdE,EAAG3T,YAAYyT,KAGZC,EAAKjU,SAAS+T,IACjBE,EAAKhU,SAAS8T,GAEXG,EAAGlU,SAASgU,IACfE,EAAGjU,SAAS+T,KAKlBxZ,KAAKsB,GAAK,SAAUzB,EAAOkB,GAEzB,OADAzC,EAAEsG,GAAIvD,IAAIxB,GACHvB,EAAEsG,GAAItD,GAAGzB,EAAOkB,IAEzBf,KAAKqB,IAAM,SAAUxB,EAAOkB,GAC1B,OAAOzC,EAAEsG,GAAIvD,IAAIxB,EAAOkB,IAEnBf,MAET1B,EAAEqB,GAAG8Y,aAAe,SAAU5T,GAC5B,IAGMsB,EAHFC,EAAO,eAMX,YALkC,IAAvB9H,EAAE0B,MAAMrB,KAAKyH,KAElBD,EAAS,IAAI7H,EAAEma,aAAazY,KAAM6E,GACtCvG,EAAE0B,MAAMrB,KAAKyH,EAAMD,IAEd7H,EAAE0B,MAAMrB,KAAKyH,IAGtB5D,OAAOiW,aAAe,SAAUnT,GAC9B,IAAIc,EAAO,eAgBX,OAfApG,KAAKqG,SAAW,WACd,OAAO/H,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMC,YAEhCrG,KAAKsG,SAAW,SAAU/I,GACxBe,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAME,SAAS/I,IAElCyC,KAAKsZ,aAAe,SAAU/b,GAC5Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMkT,aAAa/b,IAEtCyC,KAAKa,UAAY,WACf,OAAQvC,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAMvF,WAEjCb,KAAKM,WAAa,SAAU/C,GAC1Be,EAAE,IAAMgH,GAAI3G,KAAKyH,GAAM9F,WAAW/C,IAE7ByC,O,kBChMTwC,OAAOmX,MAAQ,CACbC,OAAQ,CACNC,QAAS,oEACTC,OAAQ,SAAUvY,GAChB,IACIxD,EAAGX,EAAGd,EAAG+B,EAAGtB,EAAGgd,EAAGC,EADlBxc,EAAI,GAEJsZ,EAAI,EAER,IADAvV,EAAIvB,KAAKia,aAAa1Y,GACfuV,EAAIvV,EAAEjC,QAIXjB,GAHAN,EAAIwD,EAAE2Y,WAAWpD,OAGR,EACT/Z,GAAS,EAAJgB,IAAU,GAHfX,EAAImE,EAAE2Y,WAAWpD,OAGO,EACxBiD,GAAS,GAAJ3c,IAAW,GAHhBd,EAAIiF,EAAE2Y,WAAWpD,OAGQ,EACzBkD,EAAQ,GAAJ1d,EACA0Q,MAAM5P,GACR2c,EAAIC,EAAI,GACChN,MAAM1Q,KACf0d,EAAI,IAENxc,EAAIA,EACFwC,KAAK6Z,QAAQM,OAAO9b,GACpB2B,KAAK6Z,QAAQM,OAAOpd,GACpBiD,KAAK6Z,QAAQM,OAAOJ,GACpB/Z,KAAK6Z,QAAQM,OAAOH,GAExB,OAAOxc,GAET4c,OAAQ,SAAU7Y,GAChB,IACIxD,EAAGX,EAAGd,EACHS,EAAGgd,EAAGC,EAFTxc,EAAI,GAGJsZ,EAAI,EAER,IADAvV,EAAIA,EAAEsC,QAAQ,mBAAoB,IAC3BiT,EAAIvV,EAAEjC,QAKXvB,EAJIiC,KAAK6Z,QAAQtW,QAAQhC,EAAE4Y,OAAOrD,OAIzB,GAHT/Z,EAAIiD,KAAK6Z,QAAQtW,QAAQhC,EAAE4Y,OAAOrD,QAGhB,EAClB1Z,GAAS,GAAJL,IAAW,GAHhBgd,EAAI/Z,KAAK6Z,QAAQtW,QAAQhC,EAAE4Y,OAAOrD,QAGT,EACzBxa,GAAS,EAAJyd,IAAU,GAHfC,EAAIha,KAAK6Z,QAAQtW,QAAQhC,EAAE4Y,OAAOrD,OAIlCtZ,GAAQ6O,OAAOC,aAAavO,GAClB,KAANgc,IACFvc,GAAQ6O,OAAOC,aAAalP,IAEpB,KAAN4c,IACFxc,GAAQ6O,OAAOC,aAAahQ,IAIhC,OADAkB,EAAIwC,KAAKqa,aAAa7c,IAGxByc,aAAc,SAAU1Y,GACtBA,EAAIA,EAAEsC,QAAQ,MAAO,KAErB,IADA,IAAIrG,EAAI,GACCO,EAAI,EAAGA,EAAIwD,EAAEjC,OAAQvB,IAAK,CACjC,IAAIX,EAAImE,EAAE2Y,WAAWnc,GACjBX,EAAI,IACNI,GAAK6O,OAAOC,aAAalP,IACZ,IAAJA,GAAWA,EAAI,KACxBI,GAAK6O,OAAOC,aAAalP,GAAK,EAAI,MAGlCI,GAAK6O,OAAOC,aAAalP,GAAK,GAAK,KACnCI,GAAK6O,OAAOC,aAAalP,GAAK,EAAI,GAAK,MAHvCI,GAAK6O,OAAOC,aAAiB,GAAJlP,EAAS,MAOtC,OAAOI,GAET6c,aAAc,SAAU9Y,GAItB,IAHA,IAEInE,EAAGkd,EAAIC,EAFP/c,EAAI,GACJO,EAAI,EAEDA,EAAIwD,EAAEjC,SACXlC,EAAImE,EAAE2Y,WAAWnc,IACT,KACNP,GAAK6O,OAAOC,aAAalP,GACzBW,KACa,IAAJX,GAAWA,EAAI,KACxBkd,EAAK/Y,EAAE2Y,WAAWnc,EAAI,GACtBP,GAAK6O,OAAOC,cAAkB,GAAJlP,IAAW,EAAS,GAALkd,GACzCvc,GAAK,IAELuc,EAAK/Y,EAAE2Y,WAAWnc,EAAI,GACtBwc,EAAKhZ,EAAE2Y,WAAWnc,EAAI,GACtBP,GAAK6O,OAAOC,cAAkB,GAAJlP,IAAW,IAAW,GAALkd,IAAY,EAAS,GAALC,GAC3Dxc,GAAK,GAGT,OAAOP","file":"js/imatis.html5Lib.24113d778d4339936e72.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 301);\n","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2016\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n $.html5lib = {\r\n \"version\": \"2.0.17\"\r\n };\r\n \r\n var dataKeys = [\"imatisDropdown\", \"imatisCheckbox\", \"imatisRadiobutton\", \"imatisUpDown\", \"imatisButton\", \"imatisColorPicker\", \"imatisDatePicker\", \"imatisTimePicker\"];\r\n $.extend($.expr[\":\"], {\r\n data: $.expr.createPseudo ?\r\n $.expr.createPseudo(function (dataName) {\r\n return function (elem) {\r\n return !!$.data(elem, dataName);\r\n };\r\n }) :\r\n // support: jQuery <1.8\r\n function (elem, i, match) {\r\n return !!$.data(elem, match[3]);\r\n }\r\n });\r\n\r\n $.isUndefinedOrNull = function (obj) {\r\n return typeof obj === \"undefined\" || obj === null;\r\n };\r\n $.moveInArray = function(objArray, oldIndex, newIndex) {\r\n if (newIndex >= objArray.length) {\r\n var k = newIndex - objArray.length;\r\n while ((k--) + 1) {\r\n objArray.push(undefined);\r\n }\r\n }\r\n objArray.splice(newIndex, 0, objArray.splice(oldIndex, 1)[0]);\r\n return objArray;\r\n }\r\n \r\n $.fn.extend({\r\n preventDefault: function (event) {\r\n if (event.preventDefault)\r\n event.preventDefault();\r\n else {\r\n event.returnValue = false;\r\n }\r\n },\r\n setReadOnly: function (value) {\r\n var obj = this;\r\n $.each(dataKeys, function (idx, dataKey) {\r\n if (!$.isUndefinedOrNull($(obj).data(dataKey) && $(obj).data(dataKey).setReadOnly)) {\r\n $(obj).data(dataKey).setReadOnly(value);\r\n }\r\n });\r\n },\r\n disable: function () {\r\n var obj = this;\r\n $(obj).attr(\"disabled\", true);\r\n\r\n $.each(dataKeys, function (idx, dataKey) {\r\n if (!$.isUndefinedOrNull($(obj).data(dataKey) && $(obj).data(dataKey).setEnabled)) {\r\n $(obj).data(dataKey).setEnabled(false);\r\n }\r\n });\r\n },\r\n enable: function () {\r\n var obj = this;\r\n $(obj).removeAttr(\"disabled\");\r\n\r\n $.each(dataKeys, function (idx, dataKey) {\r\n if (!$.isUndefinedOrNull($(obj).data(dataKey) && $(obj).data(dataKey).setEnabled)) {\r\n $(obj).data(dataKey).setEnabled(true);\r\n }\r\n });\r\n },\r\n disableChildren: function () {\r\n var obj = this;\r\n $(obj).disable();\r\n\r\n $.each($(this).children(), function (idx, o) {\r\n $(o).disable();\r\n $(o).disableChildren();\r\n });\r\n },\r\n enableChildren: function () {\r\n var obj = this;\r\n $(obj).enable();\r\n\r\n $.each($(this).children(), function (idx, o) {\r\n $(o).enable();\r\n $(o).enableChildren();\r\n });\r\n },\r\n isDisabled: function () {\r\n var obj = this;\r\n return $(obj).attr(\"disabled\");\r\n },\r\n isEnabled: function () {\r\n var obj = this;\r\n return !$(obj).attr(\"disabled\");\r\n },\r\n onClickInside: function (func, options = {\r\n delayBetweenClicks: 500\r\n }) {\r\n const { delayBetweenClicks } = options;\r\n var isSet = false;\r\n var delegateTarget, startClientX, startClientY;\r\n \r\n this.off(\"mousedown.special touchstart.special\").on(\"mousedown.special touchstart.special\",\r\n function(e) {\r\n if (isSet) {\r\n return;\r\n }\r\n isSet = true;\r\n delegateTarget = e.delegateTarget;\r\n if (typeof e.changedTouches !== \"undefined\") {\r\n startClientX = e.changedTouches[0].clientX;\r\n startClientY = e.changedTouches[0].clientY;\r\n } else {\r\n startClientX = e.clientX;\r\n startClientY = e.clientY;\r\n }\r\n }).off(\"mouseup.special touchend.special\").on(\"mouseup.special touchend.special\",\r\n function (e) {\r\n var shouldTriggEvent = false;\r\n var endDelegateTarget = e.delegateTarget;\r\n var endClientX, endClientY;\r\n if (typeof e.changedTouches !== \"undefined\") {\r\n var changedTouch = e.changedTouches[0];\r\n endDelegateTarget = document.elementFromPoint(changedTouch.clientX, changedTouch.clientY);\r\n endClientX = changedTouch.clientX;\r\n endClientY = changedTouch.clientY;\r\n } else {\r\n endClientX = e.clientX;\r\n endClientY = e.clientY;\r\n }\r\n if (Math.abs(startClientX - endClientX) < 40 &&\r\n Math.abs(startClientY - endClientY) < 40) {\r\n shouldTriggEvent = true;\r\n }\r\n \r\n isSet = false;\r\n if (!shouldTriggEvent || $(endDelegateTarget).closest(delegateTarget).length < 1 || !$(this).isEnabled()) {\r\n return;\r\n }\r\n \r\n if (!$.isUndefinedOrNull($.html5lib.lastClickTime) && (new Date().getTime() - $.html5lib.lastClickTime < delayBetweenClicks)) {\r\n return;\r\n }\r\n $.html5lib.lastClickTime = new Date().getTime();\r\n \r\n var that = this;\r\n that.func = func;\r\n that.func(e);\r\n });\r\n return this;\r\n }\r\n });\r\n\r\n $.html5lib.lastClickTime = new Date().getTime();\r\n // <====================\r\n // Date extension\r\n// ReSharper disable once NativeTypePrototypeExtending\r\n window.Date.prototype.toLocalIsoString = function () {\r\n // ISO8601 in local time zone\r\n var d = this,\r\n pad = function (n) { return n < 10 ? \"0\" + n : n; },\r\n tz = d.getTimezoneOffset(),\r\n tzs = (tz > 0 ? \"-\" : \"+\") + pad(parseInt(Math.abs(tz / 60)));\r\n\r\n if (tz % 60 !== 0)\r\n tzs += pad(Math.abs(tz % 60));\r\n\r\n if (tz === 0) // Zulu time == UTC\r\n tzs = \"Z\";\r\n\r\n var nD = d.getFullYear() + \"-\"\r\n + pad(d.getMonth() + 1) + \"-\"\r\n + pad(d.getDate()) + \" \" //+ 'T'\r\n + pad(d.getHours()) + \":\"\r\n + pad(d.getMinutes()) + \":\"\r\n + pad(d.getSeconds()) + tzs;\r\n\r\n var index = nD.indexOf(\"+\");\r\n if (index > 0) {\r\n return nD.substring(0, index);\r\n } else {\r\n return nD;\r\n }\r\n }\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n $.fromUtcStringToLocalDateTime = function (utcDateTime) {\r\n //2018-01-22T05:15:00\r\n return new Date(utcDateTime + \"Z\");\r\n }\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n window.Date.prototype.toDateOnlyString = function (format) {\r\n var d = this,\r\n pad = function (n) {\r\n return n < 10 ? \"0\" + n : n;\r\n },\r\n tz = d.getTimezoneOffset(),\r\n tzs = (tz > 0 ? \"-\" : \"+\") + pad(parseInt(Math.abs(tz / 60)));\r\n if (tz % 60 !== 0)\r\n tzs += pad(Math.abs(tz % 60));\r\n if (tz === 0)\r\n tzs = \"Z\";\r\n if (!format) {\r\n format = \"yyyy-MM-dd\";\r\n }\r\n var nD = format.replace(\"yyyy\", d.getFullYear()).replace(\"MM\", pad(d.getMonth() + 1)).replace(\"dd\", pad(d.getDate()));\r\n //var nD = d.getFullYear() + \"-\" + pad(d.getMonth() + 1) + \"-\" + pad(d.getDate()) + tzs;\r\n var index = nD.indexOf(\"+\");\r\n if (index > 0) {\r\n return nD.substring(0, index);\r\n }\r\n else {\r\n return nD;\r\n }\r\n }\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n window.Date.prototype.formatAmPm = function () {\r\n var date = this;\r\n var lhours = date.getHours();\r\n var lminutes = date.getMinutes();\r\n var ampm = lhours >= 12 ? \"pm\" : \"am\";\r\n lhours = lhours % 12;\r\n lhours = lhours ? lhours : 12; // the hour '0' should be '12'\r\n lminutes = lminutes < 10 ? \"0\" + lminutes : lminutes;\r\n var strTime = lhours + \":\" + lminutes + \" \" + ampm;\r\n return strTime;\r\n }\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n window.Date.prototype.toTimeOnlyString = function (format) {\r\n var date = this;\r\n //var dNow = new Date(date);\r\n var hours = date.getHours().toTwoDigits();\r\n var minutes = date.getMinutes().toTwoDigits();\r\n var seconds = date.getSeconds().toTwoDigits();\r\n\r\n if (format === \"hh:mm a\") {\r\n return date.formatAmPm();\r\n } else {\r\n return format.replace(\"HH\", hours).replace(\"mm\", minutes).replace(\"ss\", seconds);\r\n }\r\n }\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n window.Date.prototype.format = function (format) {\r\n var date = this;\r\n var result = this.toDateOnlyString(format);\r\n if (result === format) {\r\n result = this.toTimeOnlyString(format);\r\n }\r\n if (result === format) {\r\n console.log(\"Format not supported: \" + format);\r\n return date;\r\n }\r\n return result;\r\n }\r\n // End Date extension\r\n\r\n // ReSharper disable once NativeTypePrototypeExtending\r\n window.Number.prototype.toTwoDigits = function () {\r\n var val = this;\r\n return val.toString().length === 1 ? \"0\" + val.toString() : val.toString();\r\n }\r\n // ========================>\r\n\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // Button control\r\n $.imatisButton = function (el, options) {\r\n var $btnCtrl = $(el), btnCtrl = this;\r\n $(el).empty();\r\n var defaults = {\r\n className: \"ih5 imatisButton\",\r\n isDisabled: false,\r\n text: !$.isUndefinedOrNull($btnCtrl.attr(\"text\")) ? $btnCtrl.attr(\"text\") : \"\",\r\n onClick: function() { }\r\n }\r\n\r\n var settings = $.extend({}, defaults, options);\r\n if (settings.text) {\r\n $btnCtrl.append(\r\n $(\"\",\r\n {\r\n id: \"text\",\r\n class: \"text\",\r\n text: settings.text\r\n })\r\n );\r\n }\r\n\r\n if (!$btnCtrl.hasClass(defaults.className)) {\r\n $btnCtrl.addClass(defaults.className);\r\n }\r\n\r\n if (settings.type === \"red\") {\r\n $btnCtrl.addClass(\"red\");\r\n }\r\n\r\n if (settings.type === \"blue\") {\r\n $btnCtrl.addClass(\"blue\");\r\n }\r\n\r\n this.getText = function () {\r\n return $btnCtrl.find(\"#text\").text();\r\n }\r\n\r\n this.setText = function (value) {\r\n $btnCtrl.find(\"#text\").text(value);\r\n }\r\n\r\n this.isEnabled = function () {\r\n return $btnCtrl.isEnabled();\r\n }\r\n\r\n this.disable = function () {\r\n $(el).disable();\r\n }\r\n\r\n this.enable = function () {\r\n $(el).enable();\r\n }\r\n\r\n this.setEnabled = function (value) {\r\n var disabled = \"imatisButtonDisabled\";\r\n if (value) {\r\n if ($btnCtrl.hasClass(disabled)) {\r\n $btnCtrl.removeClass(disabled);\r\n }\r\n } else {\r\n if (!$btnCtrl.hasClass(disabled)) {\r\n $btnCtrl.addClass(disabled);\r\n }\r\n }\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n\r\n if (settings.isDisabled) {\r\n this.disable();\r\n this.setEnabled(false);\r\n }\r\n\r\n function onClick(e) {\r\n if ($btnCtrl.isDisabled() || !$btnCtrl.isEnabled()) {\r\n return false;\r\n }\r\n $btnCtrl.trigger({\r\n type: \"clickSafe\",\r\n message: \"This click event not fires if the control is disabled.\",\r\n time: new Date()\r\n });\r\n settings.onClick(e);\r\n return true;\r\n }\r\n\r\n $btnCtrl.onClickInside(function(e) {\r\n return onClick(e);\r\n });\r\n\r\n return this;\r\n }\r\n $.fn.imatisButton = function (options) {\r\n var dKey = \"imatisButton\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisButton(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisButton = function (id) {\r\n var dKey = \"imatisButton\";\r\n this.getText = function () {\r\n return $(\"#\" + id).data(dKey).getValue();\r\n }\r\n this.setText = function (value) {\r\n $(\"#\" + id).data(dKey).setValue(value);\r\n }\r\n this.isEnabled = function () {\r\n return $(\"#\" + id).data(dKey).isEnabled();\r\n }\r\n this.setEnabled = function (value) {\r\n if (value === true) {\r\n $(\"#\" + id).data(dKey).enable();\r\n } else {\r\n $(\"#\" + id).data(dKey).disable();\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n // End button control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // CheckBox control\r\n $.imatisCheckbox = function (el, options) {\r\n var $chkBox = $(el), chkBox = this;//, dKey = 'imatisCheckbox';\r\n $(el).empty();\r\n var defaults = {\r\n imgUnchecked: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAFVBMVEX////B2O3A1+2/1+281ezu9Pr///+uA2qqAAAABHRSTlMAee78nEVVEAAAADNJREFUeAFjYGBkYsEATIxAcWZWNgzAyszIwAQSx5RhYmBhwwpYhojEqATOqMWZGHAmHwCkegx9Ue2GCAAAAABJRU5ErkJggg==\",\r\n imgUncheckedFocused: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAATlBMVEUAAABni61mjK1mi6tliqxliqtmiaxDbJNEbJNEbZREbpNDbJI2YYk2Yoo3YoopVn8sWIItWoKwwtSww9SxxNW0xdb1+Pn2+fr4+vz///9vFgTRAAAAD3RSTlMAeXp/gYOE9/f39/j+/v6/SU3aAAAATklEQVQoz+2SOQKAIBDERsQDV10QD/b/H7XHsbYxbcoE6CVpRRo6wK+5WEXZlhZyGGEPiBcTZ4QaRX/xjXgNNdK0eYKjM8wN4MJzH/G4AXGGM4bEhu9PAAAAAElFTkSuQmCC\",\r\n imgUncheckedDisabled: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAFVBMVEX///9nZ2dlZWZkZGVgYGCkpqi7vcB25XTOAAAAB3RSTlMAPXd+gICAGpwVsAAAADNJREFUeAFjYGBkYsEATIxAcWZWNgzAyszIwAQSx5RhYmBhwwpYhojEqATOqMWZGHAmHwCkegx9Ue2GCAAAAABJRU5ErkJggg==\",\r\n imgChecked: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAARVBMVEX////B2O3A1+2/1+0sqTY4rkJGs05TuVtgvmhtxHR7yYGIzo2V1Jqi2aew37O81ey95MDK6c3X79nl9Obu9Pry+vL///8j2Pn0AAAABHRSTlMAee78nEVVEAAAAJFJREFUeAF10t0OgyAMxXHAypgfQ9Hx/o+6eqRpluK54/+L8QKc8yGbBc99OKvZOXgX0I0El008Ki9b2GIfviMtXZiJqHSgEC914EXXVgMrYVFB/ow+lgZ7mm54SweUxAfITthWG+D7mU8R/VMbQK7zoh0gol1ARLuAinQB/Y8ByFQNQKTfoFd7/F/t42N4ej4/siMlUfcKaZkAAAAASUVORK5CYII=\",\r\n imgCheckedFocused: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAABF1BMVEUAAABni61mjK1mi6tliqxliqtmiaxDbJNEbJNEbZREbpNDbJI2YYk2Yoo3YoopVn8sWIIsqTYtWoIuqjgwqzoxqzsyqzwzrD02rT83rUA4rkI5rkM7r0Q8r0U9sEZAsUlBsUpDskxFs05Gs05ItFFJtVJKtVJOt1ZPt1dQuFlRuFlUuVxfvmdlwGxsw3N0xnt2x32BzIeR0paY1Z2l2qmr3a+v3rOwwtSww9SxxNWy4La0xda44ru95MC/5cLF58jG6MnI6cvN6s/N69DQ7NLR7NPU7dba8Nzd8d/g8uHg8+Lh8+Pk9OXn9ejo9unq9+vr9+zs9+3u+O/x+fL0+/X1+Pn2+fr4+vz5/fn7/fv8/vz+//7////zQAX2AAAAD3RSTlMAeXp/gYOE9/f39/j+/v6/SU3aAAAA70lEQVQoz23Sx0LCQBSF4RGxYNTkBxXFihV7V2zYOyhBEZXz/s/hAoxxkrM832LKvcZ0O2nXSrqny5jkYLEhK43DgU7jnCgmRynjfdjlt6S6Z1y7f1hvSnIj0FzjIBaOYcKPgdoUsBUD2wCUInCXAWDDhq8VAJZrbXjb2W/BHgDzL60z3nfHyZxK0msOIF9uX/c5DwxfSNoEmH7U7zsqC0D2SiWAmScFoMoikLueBSbvFQKV54AhYPRG/0DVJQDGbmWBqgUge6kIyC8wcq4QBIPyV8/++rpneoPRfob+pthnErHL0N9hTCIVXR8naX4AxyCRL/ZGyeMAAAAASUVORK5CYII=\",\r\n imgCheckedDisabled: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAARVBMVEX///9nZ2dlZWZkZGVgYGCkpqi7vcC1t7qwsrWrrbCnqKuipKaen6Kam52WmJqTlJaQkZKNjY+JioyGh4mEhIWBgoN+f4Bqd8//AAAAF3RSTlMAPXd+gICAhIiMkJSYnKCkqKywtLi8wF7Tm/IAAACRSURBVHgBddLdDoMgDMVxQGSi82MM+/6PunqkaZbiueP/i/ECnPMhmgXPfRiT2Th4F9CNBBdNnBIvWlhqH14nbV3YiSh3IBOvdOBL11YDK2FVQf6MfuYGczlu+EgH5MIHyEzYkhrg+51PFf2dGkCu86YdIKJdQES7gIp0Af2PAciRDECk36BXO/1f7eNjeHo+P0CnE7CcaUWcAAAAAElFTkSuQmCC\",\r\n isDisabled: false,\r\n isReadOnly: false,\r\n text: !$.isUndefinedOrNull($chkBox.attr(\"text\")) ? $chkBox.attr(\"text\") : \"\",\r\n isChecked: false,\r\n onChange: function () { }\r\n }\r\n\r\n var settings = {};\r\n chkBox.init = function () {\r\n settings = $.extend({}, defaults, options);\r\n }\r\n chkBox.init();\r\n\r\n var content = \" \" + settings.text + \"\";\r\n $chkBox.append(content);\r\n\r\n if (settings.isDisabled) {\r\n $chkBox.attr(\"disabled\", true);\r\n }\r\n\r\n var imgBox = $chkBox.find(\".img\");\r\n\r\n function setCheckedValue(value) {\r\n if (typeof value === \"undefined\" || value === null) {\r\n value = false;\r\n }\r\n\r\n settings.isChecked = value;\r\n var hasFocus = $chkBox.attr(\"id\") === $(document.activeElement).attr(\"id\");\r\n var src;\r\n if (settings.isDisabled) {\r\n src = settings.isChecked ? settings.imgCheckedDisabled : settings.imgUncheckedDisabled;\r\n } else if (settings.isChecked) {\r\n src = hasFocus ? settings.imgCheckedFocused : settings.imgChecked;\r\n } else {\r\n src = hasFocus ? settings.imgUncheckedFocused : settings.imgUnchecked;\r\n }\r\n imgBox.attr(\"src\", src);\r\n }\r\n\r\n function setEnabledValue(value) {\r\n if (typeof value !== \"undefined\" && value !== null) {\r\n settings.isDisabled = !value;\r\n if (!value === true) {\r\n $chkBox.attr(\"disabled\", true);\r\n } else {\r\n $chkBox.removeAttr(\"disabled\");\r\n }\r\n }\r\n var disabled = \"chkBoxDisabled\";\r\n if (value) {\r\n if ($chkBox.hasClass(disabled)) {\r\n $chkBox.removeClass(disabled);\r\n }\r\n } else {\r\n if (!$chkBox.hasClass(disabled)) {\r\n $chkBox.addClass(disabled);\r\n }\r\n }\r\n setCheckedValue(settings.isChecked);\r\n }\r\n\r\n function setFocusedImg() {\r\n imgBox.attr(\"src\", settings.isChecked ? settings.imgCheckedFocused : settings.imgUncheckedFocused);\r\n }\r\n\r\n function setNormalImg() {\r\n imgBox.attr(\"src\", settings.isChecked ? settings.imgChecked : settings.imgUnchecked);\r\n }\r\n\r\n $chkBox.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (settings.isDisabled || settings.isReadOnly) {\r\n return;\r\n }\r\n setCheckedValue(!settings.isChecked);\r\n $chkBox.change(); // Call Change event.\r\n settings.onChange(chkBox.isChecked(), $chkBox);\r\n });\r\n\r\n $chkBox.on(\"keypress\", function (event) {\r\n if (settings.isDisabled || settings.isReadOnly) {\r\n return false;\r\n }\r\n var keyCode = (event.which) ? event.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 32 || keyCode === 13) {\r\n setCheckedValue(!settings.isChecked);\r\n $chkBox.change(); // Call Change event.\r\n settings.onChange(chkBox.isChecked(), $chkBox);\r\n }\r\n return true;\r\n });\r\n\r\n $chkBox.on(\"focus\", function () {\r\n if (settings.isDisabled || settings.isReadOnly) {\r\n return;\r\n }\r\n setFocusedImg();\r\n });\r\n\r\n $chkBox.on(\"blur\", function () {\r\n if (settings.isDisabled) {\r\n return;\r\n }\r\n setNormalImg();\r\n });\r\n\r\n this.isChecked = function () {\r\n return settings.isChecked;\r\n }\r\n this.setChecked = function (value, change) {\r\n setCheckedValue(value);\r\n if (!$.isUndefinedOrNull(change) && change === true) {\r\n $chkBox.change(); // Call Change event.\r\n settings.onChange(chkBox.isChecked(), $chkBox);\r\n }\r\n }\r\n this.isEnabled = function () {\r\n return !settings.isDisabled;\r\n }\r\n this.setEnabled = function (value) {\r\n setEnabledValue(value);\r\n }\r\n this.setReadOnly = function (value) {\r\n settings.isReadOnly = value;\r\n }\r\n this.isReadOnly = function () {\r\n return settings.isReadOnly();\r\n }\r\n\r\n setCheckedValue(settings.isChecked);\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n return this;\r\n }\r\n $.fn.imatisCheckbox = function (options) {\r\n var dKey = \"imatisCheckbox\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisCheckbox(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisCheckbox = function (id) {\r\n var dKey = \"imatisCheckbox\";\r\n this.isChecked = function () {\r\n return $(\"#\" + id).data(dKey).isChecked();\r\n }\r\n this.setChecked = function (value) {\r\n console.log(value);\r\n $(\"#\" + id).data(dKey).setChecked(value);\r\n }\r\n this.isEnabled = function () {\r\n return !$(\"#\" + id).data(dKey).isEnabled;\r\n }\r\n this.setEnabled = function (value) {\r\n $(\"#\" + id).data(dKey).setEnabled(value);\r\n }\r\n this.setReadOnly = function (value) {\r\n $(\"#\" + id).data(dKey).setReadOnly(value);\r\n }\r\n this.isReadOnly = function () {\r\n return $(\"#\" + id).data(dKey).isReadOnly();\r\n }\r\n return this;\r\n };\r\n\r\n // End CheckBox control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2017\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // Color picker control\r\n $.imatisColorPicker = function(el, options) {\r\n var $currCPicker = $(el), currCPicker = this;\r\n $(el).empty();\r\n var defaults = {\r\n isDisabled: false,\r\n isReadOnly: false,\r\n colorIndex: -1,\r\n imatisColors: [\r\n \"#153a6d\", \"#465992\", \"#4f668c\", \"#81a4cb\", \"#9cb7d1\", \"#e6f4ff\",\r\n \"#29567F\", \"#0045c4\", \"#005ab4\", \"#397CC0\", \"#8bb3d9\", \"#BCD5EC\",\r\n \"#2ca1ef\", \"#54adff\", \"#006b09\", \"#33ab23\", \"#84df2d\", \"#779e62\",\r\n \"#aac682\", \"#4d9b9b\", \"#afcfcd\", \"#ff6400\", \"#c87a0c\", \"#e5a641\",\r\n \"#E8CF00\", \"#efd958\", \"#ffff00\", \"#9C2029\", \"#be2834\", \"#a94444\",\r\n \"#c99d81\", \"#f4e8a0\", \"#8e41b4\", \"#d587d4\", \"#8c5087\", \"#95305a\",\r\n \"#F8F8F8\", \"#ffffff\", \"#000000\", \"#132037\", \"#55616d\", \"#919ea0\",\r\n \"#aeaeb3\", \"#2ca1bf\", \"#FFF55A\"\r\n ],\r\n color: \"#000000\",\r\n tabindex: !$.isUndefinedOrNull($currCPicker.attr(\"tabindex\")) ? $currCPicker.attr(\"tabindex\") : \"10\",\r\n onChange: function() {}\r\n }\r\n $currCPicker.removeAttr(\"tabindex\");\r\n\r\n //currCPicker.settings = {};\r\n var settings = {};\r\n currCPicker.init = function() {\r\n settings = $.extend({}, defaults, options);\r\n }\r\n currCPicker.init();\r\n\r\n if (settings.colorIndex > -1 && settings.colorIndex < settings.imatisColors.length) {\r\n settings.color = settings.imatisColors[settings.colorIndex];\r\n }\r\n\r\n if ($currCPicker.children().length > 0) {\r\n return false;\r\n }\r\n\r\n var btnColor = $(\"
\");\r\n //var btnColor = $(\"\");\r\n btnColor.css(\"background-color\", settings.color);\r\n var colorDialog = $(\"
\",\r\n {\r\n id: \"colorDialog\",\r\n class: \"colorList\"\r\n }).append($(\"\",\r\n {\r\n id: \"lblImatisColors\",\r\n class: \"lblImatisColors\",\r\n text: \"IMATIS COLORS\"\r\n }),\r\n $(\"
    \",\r\n {\r\n id: \"ulColors\",\r\n class: \"ulColors\"\r\n }),\r\n $(\"
    \",\r\n {\r\n id: \"colorInformation\",\r\n class: \"colorInformation\"\r\n }).append(\r\n $(\"
    \",\r\n {\r\n id: \"currentColor\",\r\n class: \"currentColor\"\r\n }),\r\n $(\"
    \",\r\n {\r\n class: \"hexColor\"\r\n }).append(\r\n $(\"\",\r\n {\r\n id: \"lblHexColor\",\r\n class: \"lblHexColor\",\r\n text: \"HEX\"\r\n }),\r\n $(\"\",\r\n {\r\n id: \"tbxHexColor\",\r\n type: \"text\",\r\n class: \"tbxHexColor\",\r\n maxlength: 7\r\n })\r\n ),\r\n $(\"
    \",\r\n {\r\n class: \"rgbColor\"\r\n }).append(\r\n $(\"\",\r\n {\r\n id: \"lblRgbColor\",\r\n class: \"lblRgbColor\",\r\n text: \"RGB\"\r\n }),\r\n $(\"\",\r\n {\r\n id: \"tbxRColor\",\r\n type: \"text\",\r\n class: \"tbxRColor\",\r\n readonly: true\r\n }),\r\n $(\"\",\r\n {\r\n id: \"tbxGColor\",\r\n type: \"text\",\r\n class: \"tbxGColor\",\r\n readonly: true\r\n }),\r\n $(\"\",\r\n {\r\n id: \"tbxBColor\",\r\n type: \"text\",\r\n class: \"tbxBColor\",\r\n readonly: true\r\n })\r\n )\r\n )\r\n );\r\n function isHexColor(h) {\r\n if (h.indexOf(\"#\") === 0) {\r\n h = h.substring(1, h.length);\r\n }\r\n var a = parseInt(h, 16);\r\n return (a.toString(16) === h.toLowerCase() && (h.length === 3 || h.length === 4 || h.length === 6));\r\n }\r\n\r\n function displayCurrentColor() {\r\n var ulColorsChilds = colorDialog.find(\"#ulColors\").children();\r\n var currentColor = btnColor.css(\"background-color\");\r\n var currentHexColor = rgb2Hex(currentColor);\r\n var rgb = currentColor.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n $.each(ulColorsChilds,\r\n function (idx, li) {\r\n var liColor = rgb2Hex($(li).css(\"background-color\"));\r\n if (liColor === currentHexColor) {\r\n $(li).addClass(\"selected\");\r\n } else {\r\n $(li).removeClass(\"selected\");\r\n }\r\n });\r\n colorDialog.find(\"#currentColor\").css(\"background-color\", btnColor.css(\"background-color\"));\r\n colorDialog.find(\"#tbxHexColor\").val(currentHexColor.toUpperCase());\r\n colorDialog.find(\"#tbxRColor\").val(\"R: \" + rgb[1]);\r\n colorDialog.find(\"#tbxGColor\").val(\"G: \" + rgb[2]);\r\n colorDialog.find(\"#tbxBColor\").val(\"B: \" + rgb[3]);\r\n }\r\n\r\n function openCloseColorPicker() {\r\n // Open/close color picker selector.\r\n if (btnColor.hasClass(\"expanded\")) { // Close dropdown.\r\n btnColor.removeClass(\"expanded\");\r\n colorDialog.css({ \"display\": \"none\" });\r\n $(document).off(\"mouseup.\" + $currCPicker.attr(\"id\"));\r\n return;\r\n }\r\n\r\n // Open dropdown.\r\n $(document).on(\"mouseup.\" + $currCPicker.attr(\"id\"),\r\n function(e) {\r\n var container = $currCPicker;\r\n if (!container.is(e.target) // if the target of the click isn't the container...\r\n &&\r\n container.has(e.target).length === 0) {\r\n openCloseColorPicker();\r\n $(document).off(\"mouseup.\" + $currCPicker.attr(\"id\"));\r\n }\r\n });\r\n var tbxHexColor = colorDialog.find(\"#tbxHexColor\");\r\n tbxHexColor.off(\"change\").on(\"change\",\r\n function () {\r\n var newVal = $(this).val();\r\n if (newVal.indexOf(\"#\") === 0 && isHexColor(newVal)) {\r\n currCPicker.setColor(newVal);\r\n displayCurrentColor();\r\n } else {\r\n $(this).val(currCPicker.getColor());\r\n }\r\n });\r\n\r\n displayCurrentColor();\r\n\r\n var elHeight = el.height();\r\n var dynTab;\r\n $.each($(\".content.tabContents\"),\r\n function(idx, tab) {\r\n if ($(tab).css(\"display\") !== \"none\") {\r\n dynTab = tab;\r\n }\r\n });\r\n if (typeof dynTab === \"undefined\" || dynTab === null) {\r\n dynTab = $(\"body\");\r\n }\r\n if (typeof dynTab === \"undefined\" || dynTab === null) {\r\n btnColor.addClass(\"expanded\");\r\n colorDialog.css({ \"display\": \"block\", \"top\": \"auto\" });\r\n } else {\r\n var tabHeight = dynTab.scrollHeight;\r\n if (typeof tabHeight === \"undefined\") {\r\n tabHeight = dynTab.height();\r\n }\r\n var scrollTop = $.isFunction(dynTab.scrollTop) ? dynTab.scrollTop() : dynTab.scrollTop;\r\n var elTop = Math.round(el.position().top) + scrollTop;\r\n colorDialog.css({ \"display\": \"block\" });\r\n if (el.offset().top - $(dynTab).offset().top + elHeight + Number(colorDialog.height()) > tabHeight) {\r\n var moveToLeft = false;\r\n var newTop = (elTop - colorDialog.height() - 44);\r\n if (newTop < 0) {\r\n moveToLeft = true;\r\n newTop = elTop - colorDialog.height() - 44 + elHeight;\r\n if (newTop < 0) {\r\n newTop = 0;\r\n }\r\n }\r\n colorDialog.css({ \"top\": newTop + \"px\", \"margin-left\": (!moveToLeft ? \"initial\" : \"2.7em\") });\r\n //ulColors.css({ \"top\": (elTop - ulColors.height() - 6) + \"px\" });\r\n } else {\r\n colorDialog.css({ \"top\": \"auto\", \"margin-left\": \"initial\" });\r\n }\r\n btnColor.addClass(\"expanded\");\r\n }\r\n }\r\n\r\n var ulColors = colorDialog.find(\"#ulColors\");\r\n // Add color buttons into the color panel.\r\n $.each(settings.imatisColors, function (key, val) {\r\n var colorItem = $(\"
  • \");\r\n colorItem.css(\"background-color\", val);\r\n colorItem.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n btnColor.css(\"background-color\", colorItem.css(\"background-color\"));\r\n openCloseColorPicker();\r\n settings.onChange(currCPicker.getColor());\r\n $currCPicker.change(); // Call Change event.\r\n });\r\n ulColors.append(colorItem);\r\n });\r\n\r\n $currCPicker.append(btnColor);\r\n console.log(\"ColorDialog\");\r\n console.log(colorDialog);\r\n $currCPicker.append(colorDialog);\r\n\r\n btnColor.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (btnColor.isDisabled() || settings.isReadOnly) {\r\n return true;\r\n }\r\n openCloseColorPicker();\r\n return true;\r\n });\r\n\r\n //Function to convert rgb color to a hex format\r\n function rgb2Hex(rgb) {\r\n rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\r\n return \"#\" +\r\n (\"0\" + parseInt(rgb[1], 10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(rgb[2], 10).toString(16)).slice(-2) +\r\n (\"0\" + parseInt(rgb[3], 10).toString(16)).slice(-2);\r\n }\r\n\r\n this.getColor = function () {\r\n return rgb2Hex(btnColor.css(\"background-color\"));\r\n }\r\n\r\n this.getColors = function () {\r\n return settings.imatisColors;\r\n }\r\n\r\n this.setColor = function (value) {\r\n btnColor.css(\"background-color\", value);\r\n }\r\n\r\n this.setReadOnly = function(value) {\r\n settings.isReadOnly = value;\r\n }\r\n this.isReadOnly = function() {\r\n return settings.isReadOnly();\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n return this;\r\n }\r\n $.fn.imatisColorPicker = function (options) {\r\n var dKey = \"imatisColorPicker\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisColorPicker(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisColorPicker = function (id) {\r\n var dKey = \"imatisColorPicker\";\r\n this.getColor = function () {\r\n return $(\"#\" + id).data(dKey).getColor();\r\n }\r\n this.getColors = function () {\r\n return $(\"#\" + id).data(dKey).getColors();\r\n }\r\n this.setColor = function (value) {\r\n $(\"#\" + id).data(dKey).setColor(value);\r\n }\r\n this.setReadOnly = function(value) {\r\n $(\"#\" + id).data(dKey).setReadOnly(value);\r\n }\r\n this.isReadOnly = function () {\r\n return $(\"#\" + id).data(dKey).isReadOnly();\r\n }\r\n return this;\r\n };\r\n // End Color picker control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // Date picker control\r\n // Requires Kendo UI - Calendar.\r\n $.imatisDatePicker = function (el, options) {\r\n var $dpCtrl = $(el), dpCtrl = this;\r\n $(el).empty();\r\n var calendar = null, ch;\r\n var defaults = {\r\n className: \"ih5 imatisDatePicker\",\r\n format: \"dd.MM.yyyy\", // Supports dd.MM.yyyy and yyyy-MM-dd and yyyy/MM/dd. Add support for MM/dd/yyyy!!!\r\n isMobile: false,\r\n isDisabled: false,\r\n inputOnly: false,\r\n onChange: function () { }\r\n }\r\n defaults.value = new Date(Date.now()).toDateOnlyString(defaults.format);\r\n\r\n dpCtrl.settings = {};\r\n dpCtrl.init = function() {\r\n dpCtrl.settings = $.extend({}, defaults, options);\r\n if (dpCtrl.settings.isMobile) {\r\n dpCtrl.settings.format = \"yyyy-MM-dd\";\r\n }\r\n defaults.value = new Date(dpCtrl.settings.value).toDateOnlyString(dpCtrl.settings.format);\r\n dpCtrl.settings.value = defaults.value;\r\n var chIndex = dpCtrl.settings.format.indexOf(\".\");\r\n if (chIndex < 0) {\r\n chIndex = dpCtrl.settings.format.indexOf(\"-\");\r\n if (chIndex < 0) {\r\n chIndex = dpCtrl.settings.format.indexOf(\"/\");\r\n }\r\n }\r\n ch = dpCtrl.settings.format.substring(chIndex, chIndex + 1);\r\n }\r\n dpCtrl.init();\r\n\r\n function getValueAsDate(value) {\r\n var currVal = value;\r\n if (typeof value === \"undefined\" || value === null) {\r\n currVal = dpCtrl.settings.value;\r\n }\r\n if (dpCtrl.settings.format.indexOf(\"yyyy\") === 0) {\r\n return new Date(currVal);\r\n } else {\r\n return new Date(currVal.substring(6, 10) + \"-\" + currVal.substring(3, 5) + \"-\" + currVal.substring(0, 2));\r\n }\r\n }\r\n \r\n var tbxDate = $(\"\");\r\n var calendarObj = $(\"
    \");\r\n var dialogArrow = $(\"
    \");\r\n var button = $(\"
    \");\r\n button.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n dpCtrl.isOpen() ? dpCtrl.close() : dpCtrl.open();\r\n });\r\n tbxDate.on(\"keydown\", function(e) {\r\n var keyCode = (e.which) ? e.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 0 || keyCode === 8 || keyCode === 9 || keyCode === 13 || keyCode >= 37 && keyCode <= 40) { return true; }\r\n var keyPressed = String.fromCharCode(keyCode);\r\n if (keyCode === 190) {\r\n keyPressed = \".\";\r\n } else if (keyCode >= 96 && keyCode <= 105) {\r\n keyPressed = (keyCode - 96).toString();\r\n } else if (keyCode === 109 || keyCode === 173) {\r\n keyPressed = \"-\";\r\n }\r\n var regExpKeyPressed = new RegExp(\"^[0-9.\\\\-]$\");\r\n var resultKeyPress = regExpKeyPressed.test(keyPressed);\r\n if (resultKeyPress) {\r\n var newValue = \"\";\r\n if (this.selectionEnd - this.selectionStart === 0) {\r\n newValue = $(this).val();\r\n }\r\n newValue += keyPressed;\r\n\r\n var regExp = \"\";\r\n var valLen = newValue.length;\r\n if (dpCtrl.settings.format.indexOf(\"yyyy\") === 0) {\r\n if (valLen >= 1) {\r\n regExp = \"(1|2|19|20|21)\";\r\n }\r\n if (valLen >= 3) {\r\n regExp += \"(\\\\d|\\\\d\\\\d)\";\r\n }\r\n if (valLen >= 5 && valLen <= 6) {\r\n regExp += \"([\" + ch + \"01]|\" + ch + \"[01]|0[1-9]|1[0-2])\";\r\n }\r\n if (valLen === 7) {\r\n if (newValue.indexOf(ch) > -1) {\r\n regExp += \"(\" + ch + \"(0[1-9]|1[0-2]))\";\r\n } else {\r\n regExp += \"((0[1-9]|1[0-2])[0-2]|(0[13-9]|1[0-2])3)\";\r\n }\r\n }\r\n if (valLen === 8) {\r\n if (newValue.indexOf(ch) > -1) {\r\n regExp += \"(\" + ch + \"(0[1-9]|1[0-2]))\" + ch;\r\n } else {\r\n regExp += \"(0[13-9](0[1-9]|[12][0-9]|30)|0[13578]31|02(0[1-9]|[12][0-9])|1[0-2](0[1-9]|[12][0-9]|30)|1[02]31)\";\r\n }\r\n }\r\n if (valLen === 9 && newValue.indexOf(ch) > -1) {\r\n regExp += ch + \"((0[1-9]|1[0-2])\" + ch + \"[0-2]|(0[13-9]|1[0-2])\" + ch + \"3)\";\r\n }\r\n if (valLen === 10 && newValue.indexOf(ch) > -1) {\r\n regExp += ch + \"(0[13-9]\" + ch + \"(0[1-9]|[12][0-9]|30)|0[13578]\" + ch + \"31|02\" + ch + \"(0[1-9]|[12][0-9])|1[0-2]\" + ch + \"(0[1-9]|[12][0-9]|30)|1[02]\" + ch + \"31)\";\r\n }\r\n } else {\r\n if (valLen >= 1 && valLen <= 5) {\r\n regExp = \"([0-3]|0[1-9]|[12][0-9]|3[01])\";\r\n }\r\n if (valLen === 3) {\r\n regExp += \"([0]|[1]|[\" + ch + \"])\";\r\n }\r\n if (valLen >= 4) {\r\n regExp = \"(0[1-9](0[1-9]|1[0-2]|\" + ch + \"[01])|[12][0-9](0[1-9]|1[0-2]|\" + ch + \"[01])|30(0[13-9]|1[02]|\" + ch + \"[01])|31(0[13578]|1[02]|\" + ch + \"[01]))\";\r\n }\r\n if (valLen >= 5) {\r\n if (newValue.indexOf(ch) > -1) {\r\n regExp = \"(0[1-9]\" + ch + \"(0[1-9]|1[0-2])|[12][0-9]\" + ch + \"(0[1-9]|1[0-2])|30\" + ch + \"(0[1|3-9]|1[0-2])|31\" + ch + \"(0[13578]|1[02]))\";\r\n } else if (valLen === 5) {\r\n regExp += \"(1|2)\";\r\n }\r\n }\r\n if (valLen >= 6) {\r\n if (newValue.indexOf(ch) > -1) {\r\n regExp += ch;\r\n } else {\r\n regExp += \"(19|20|21)\";\r\n }\r\n }\r\n if (valLen >= 7) {\r\n if (newValue.indexOf(ch) > -1) {\r\n regExp += \"(1|2|19|20|21)\";\r\n } else {\r\n regExp += \"(\\\\d|\\\\d\\\\d)\";\r\n }\r\n }\r\n if (valLen >= 9 && newValue.indexOf(ch) > -1) {\r\n regExp += \"(\\\\d|\\\\d\\\\d)\";\r\n }\r\n }\r\n var regExpContent = new RegExp(\"^(\" + regExp + \")$\");\r\n if (regExpContent.test(newValue)) {\r\n return true;\r\n } else {\r\n $(this).preventDefault(e);\r\n return false;\r\n }\r\n } else {\r\n $(this).preventDefault(e);\r\n return false;\r\n }\r\n });\r\n if (!dpCtrl.settings.isMobile) {\r\n tbxDate.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n this.setSelectionRange(0, this.value.length);\r\n });\r\n }\r\n tbxDate.on(\"change\", function () {\r\n //var newVal = $(this).val();\r\n var newVal = $(this).val().replace(/[\\. ,:-]+/g, \"\"); // Temporary\r\n var oldVal = dpCtrl.settings.value;\r\n var result = newVal;\r\n switch (newVal.length) {\r\n case 8:\r\n {\r\n if (dpCtrl.settings.format.indexOf(\"yyyy\") === 0) {\r\n result = newVal.substring(0, 4) + ch + newVal.substring(4, 6) + ch + newVal.substring(6, 8);\r\n } else {\r\n result = newVal.substring(0, 2) + ch + newVal.substring(2, 4) + ch + newVal.substring(4, 8);\r\n }\r\n break;\r\n }\r\n case 2:\r\n {\r\n result = newVal + oldVal.substring(2, oldVal.length);\r\n break;\r\n }\r\n case 4:\r\n {\r\n if (dpCtrl.settings.format.indexOf(\"yyyy\") === 0) {\r\n result = newVal.substring(0, 4) + oldVal.substring(4, oldVal.length);\r\n } else {\r\n result = newVal.substring(0, 2) + ch + newVal.substring(2, 4) + oldVal.substring(5, oldVal.length);\r\n }\r\n break;\r\n }\r\n case 5:\r\n {\r\n if (dpCtrl.settings.format.indexOf(\"yyyy\") === 0) {\r\n result = newVal.substring(0, 4) + oldVal.substring(4, oldVal.length);\r\n } else {\r\n result = newVal.substring(0, 2) + ch + newVal.substring(3, 5) + oldVal.substring(5, oldVal.length);\r\n }\r\n break;\r\n }\r\n default:\r\n $(this).val(oldVal);\r\n return;\r\n }\r\n\r\n if (isNaN(getValueAsDate(result).getTime())) {\r\n $(this).val(oldVal);\r\n return;\r\n }\r\n\r\n dpCtrl.settings.value = result;\r\n if (calendar) {\r\n var cal = calendar.data(\"kendoCalendar\");\r\n cal.value(getValueAsDate());\r\n }\r\n $(this).val(result);\r\n $dpCtrl.change();\r\n dpCtrl.settings.onChange(getValueAsDate());\r\n });\r\n $dpCtrl.append(tbxDate);\r\n if (!dpCtrl.settings.inputOnly) {\r\n $dpCtrl.append(calendarObj);\r\n $dpCtrl.append(dialogArrow);\r\n $dpCtrl.append(button);\r\n }\r\n\r\n if (!$dpCtrl.hasClass(defaults.className)) {\r\n $dpCtrl.addClass(defaults.className);\r\n }\r\n\r\n this.isOpen = function() {\r\n return calendar && calendar.css(\"display\") !== \"none\";\r\n }\r\n this.open = function() {\r\n $(document).on(\"mouseup.\" + $dpCtrl.attr(\"id\"), function(e) {\r\n var container = $dpCtrl;\r\n if (!container.is(e.target) // if the target of the click isn't the container...\r\n && container.has(e.target).length === 0) {\r\n calendar.hide();\r\n dialogArrow.hide();\r\n $(document).off(\"mouseup.\" + $dpCtrl.attr(\"id\"));\r\n }\r\n });\r\n if (dpCtrl.isOpen()) {\r\n return;\r\n }\r\n if (calendar !== null) {\r\n calendar.show();\r\n dialogArrow.show();\r\n return;\r\n }\r\n var resultAsDate = getValueAsDate();\r\n if (!calendarObj.kendoCalendar) {\r\n console.log(\"Error: Kendo UI Calendar not found!\");\r\n return;\r\n }\r\n calendar = calendarObj.kendoCalendar({\r\n format: dpCtrl.settings.format,\r\n footer: new Date().toDateOnlyString(dpCtrl.settings.format),\r\n value: resultAsDate,\r\n change: function() {\r\n var value = new Date(this.value()).toDateOnlyString(dpCtrl.settings.format);\r\n dpCtrl.settings.value = value;\r\n $dpCtrl.find(\"#tbxDate\").val(value);\r\n dpCtrl.close();\r\n $dpCtrl.change();\r\n dpCtrl.settings.onChange(getValueAsDate());\r\n }\r\n });\r\n dialogArrow.show();\r\n }\r\n this.close = function() {\r\n $(document).off(\"mouseup.\" + $dpCtrl.attr(\"id\"));\r\n calendar.hide();\r\n dialogArrow.hide();\r\n }\r\n\r\n this.getValue = function () {\r\n return getValueAsDate();\r\n }\r\n\r\n this.setValue = function (value) {\r\n dpCtrl.settings.value = new Date(value).toDateOnlyString(dpCtrl.settings.format);\r\n if (calendar) {\r\n var cal = calendar.data(\"kendoCalendar\");\r\n cal.value(getValueAsDate());\r\n }\r\n tbxDate.val(dpCtrl.settings.value);\r\n }\r\n\r\n this.isEnabled = function () {\r\n return $dpCtrl.isEnabled();\r\n }\r\n\r\n this.disable = function () {\r\n $(el).disable();\r\n }\r\n\r\n this.enable = function () {\r\n $(el).enable();\r\n }\r\n\r\n this.setEnabled = function (value) {\r\n var disabled = \"imatisCalendarDisabled\";\r\n if (value) {\r\n if ($dpCtrl.hasClass(disabled)) {\r\n $dpCtrl.removeClass(disabled);\r\n }\r\n } else {\r\n if (!$dpCtrl.hasClass(disabled)) {\r\n $dpCtrl.addClass(disabled);\r\n }\r\n }\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n\r\n if (dpCtrl.settings.isDisabled) {\r\n this.disable();\r\n this.setEnabled(false);\r\n }\r\n\r\n //$dpCtrl.on(\"click\", function() {\r\n // if ($dpCtrl.isDisabled() || !$dpCtrl.isEnabled()) {\r\n // return false;\r\n // }\r\n // $dpCtrl.trigger({\r\n // type: \"clickSafe\",\r\n // message: \"This click event not fires if the control is disabled.\",\r\n // time: new Date()\r\n // });\r\n // return true;\r\n //});\r\n\r\n return this;\r\n }\r\n $.fn.imatisDatePicker = function (options) {\r\n var dKey = \"imatisDatePicker\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisDatePicker(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisDatePicker = function (id) {\r\n var dKey = \"imatisDatePicker\";\r\n this.getValue = function () {\r\n return $(\"#\" + id).data(dKey).getValue();\r\n }\r\n this.setValue = function (value) {\r\n $(\"#\" + id).data(dKey).setValue(value);\r\n }\r\n this.isOpen = function () {\r\n $(\"#\" + id).data(dKey).isOpen();\r\n }\r\n this.open = function () {\r\n $(\"#\" + id).data(dKey).open();\r\n }\r\n this.close = function () {\r\n $(\"#\" + id).data(dKey).close();\r\n }\r\n this.isEnabled = function () {\r\n return $(\"#\" + id).data(dKey).isEnabled();\r\n }\r\n this.setEnabled = function (value) {\r\n if (value) {\r\n $(\"#\" + id).data(dKey).enable();\r\n } else {\r\n $(\"#\" + id).data(dKey).disable();\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n // End Date picker control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function($) {\r\n // <====================\r\n // DropDown control\r\n $.imatisDropdown = function(element, options) {\r\n var $currDdl = $(element), currDdl = this;\r\n $(element).empty();\r\n var lastKeyCode = \"\", inputTimeout;\r\n //$.fn.imatisDropdown = function () {\r\n var defaults = {\r\n tabindex: !$.isUndefinedOrNull($currDdl.attr(\"tabindex\")) ? $currDdl.attr(\"tabindex\") : \"10\",\r\n className: \"ih5\",\r\n isReadOnly: false,\r\n items: null,\r\n defaultName: null,\r\n defaultValue: null,\r\n defaultTag: null,\r\n defaultIcon: null,\r\n referenceObj: null,\r\n onChange: function() {}\r\n }\r\n $currDdl.removeAttr(\"tabindex\");\r\n\r\n var selBox = \"\" +\r\n \" \" +\r\n \"\" +\r\n \"\" +\r\n \"
    \" +\r\n \"
    \" +\r\n \"
    \" +\r\n \"
    \" +\r\n \"
      \" +\r\n \"
      \";\r\n $currDdl.append(selBox);\r\n\r\n var settings = {};\r\n currDdl.init = function() {\r\n settings = $.extend({}, defaults, options);\r\n }\r\n currDdl.init();\r\n\r\n if (!$currDdl.hasClass(defaults.className)) {\r\n $currDdl.addClass(defaults.className);\r\n }\r\n\r\n var sBox = $currDdl.find(\".selectBox\");\r\n\r\n function collapseDropDown(el) {\r\n $(document).off(\"mouseup.\" + $currDdl.attr(\"id\"));\r\n if (sBox.hasClass(\"expanded\")) { // Close dropdown.\r\n sBox.removeClass(\"expanded\");\r\n el.find(\".listArea\").css({ \"display\": \"none\" });\r\n sBox.focus();\r\n } else if (sBox.hasClass(\"expandedAbove\")) {\r\n sBox.removeClass(\"expandedAbove\");\r\n el.find(\".listArea\").css({ \"display\": \"none\" });\r\n sBox.focus();\r\n }\r\n }\r\n\r\n function checkReadOnly() {\r\n if (settings.isReadOnly === true) {\r\n if (!sBox.hasClass(\"readonly\")) {\r\n sBox.addClass(\"readonly\");\r\n }\r\n } else {\r\n if (sBox.hasClass(\"readonly\")) {\r\n sBox.removeClass(\"readonly\");\r\n }\r\n }\r\n }\r\n\r\n checkReadOnly();\r\n\r\n function setSelectedItem(el, cListEl, callEvent) {\r\n var iList = el.find(\".itemList\");\r\n $.each(iList.children(), function(idx, liEl) {\r\n $(liEl).removeAttr(\"selected\");\r\n $(liEl).removeClass(\"selected\");\r\n });\r\n\r\n $(cListEl).attr(\"selected\", true);\r\n $(cListEl).addClass(\"selected\");\r\n var selIconObj = $(cListEl).find(\".icon\");\r\n var ddIconObj = sBox.find(\".icon\");\r\n ddIconObj.css(\"display\", selIconObj.length > 0 ? \"inline-block\" : \"none\");\r\n ddIconObj.attr(\"src\", selIconObj.length > 0 ? selIconObj.attr(\"src\") : \"\");\r\n sBox.find(\".text\").text($(cListEl).find(\".name\").text());\r\n sBox.find(\"input.value\").text($(cListEl).find(\".value\").text());\r\n //sBox.find(\"input.tag\").text($(cListEl).find(\".tag\").text());\r\n sBox.find(\"div.tag\").text($(cListEl).find(\".tag\").text());\r\n\r\n if (callEvent) {\r\n el.change(); // Call Change event.\r\n settings.onChange(currDdl.getSelectedItem());\r\n }\r\n }\r\n\r\n function findItemByInput(iList, keyChar) {\r\n lastKeyCode += keyChar;\r\n\r\n window.clearTimeout(inputTimeout);\r\n inputTimeout = window.setTimeout(function() {\r\n $.each(iList.children(), function(idx, liEl) {\r\n var name = $(liEl).find(\".name\").text();\r\n if (name.toLowerCase().substring(0, lastKeyCode.length).indexOf(lastKeyCode.toLowerCase()) > -1) {\r\n $(liEl).focus();\r\n return false;\r\n }\r\n return true;\r\n });\r\n lastKeyCode = \"\";\r\n }, 350);\r\n }\r\n\r\n function createKeyEvents(el) {\r\n var iList = el.find(\".itemList\");\r\n iList.scrollTop(0);\r\n iList.children(\"li\").off(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\");\r\n iList.children(\"li\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setSelectedItem(el, this, true);\r\n collapseDropDown(el);\r\n });\r\n\r\n iList.children(\"li\").off(\"keydown\");\r\n iList.children(\"li\").on(\"keydown\", function(event) {\r\n var keyCode = (event.which) ? event.which : window.Event.keyCode;\r\n if (keyCode === 40) { // 40=down arrow\r\n $(this).preventDefault(event);\r\n return false;\r\n } else if (keyCode === 38) { // 38=up arrow\r\n $(this).preventDefault(event);\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n iList.children(\"li\").off(\"keyup\");\r\n iList.children(\"li\").on(\"keyup\", function(event) {\r\n var keyCode = (event.which) ? event.which : window.Event.keyCode;\r\n if (keyCode === 40) { // 40=down arrow\r\n $(document.activeElement).next().focus();\r\n $(this).preventDefault(event);\r\n return false;\r\n } else if (keyCode === 38) { // 38=up arrow\r\n var currentItem = $(document.activeElement);\r\n if (currentItem.attr(\"tabindex\") === 1) {\r\n $(this).preventDefault(event);\r\n return false;\r\n } else {\r\n currentItem.prev().focus();\r\n $(this).preventDefault(event);\r\n return false;\r\n }\r\n } else if (keyCode === 39) { // 39=right arrow\r\n return false;\r\n } else if (keyCode === 37) { // 37=left arrow\r\n return false;\r\n } else if (keyCode === 13) { // Enter (select item)\r\n setSelectedItem(el, this, true);\r\n collapseDropDown(el);\r\n } else if (keyCode === 27) { // Esc\r\n collapseDropDown(el);\r\n $(\".selectBox\").focus();\r\n } else if (keyCode >= 48 || keyCode <= 90) {\r\n var keyChar = String.fromCharCode(keyCode);\r\n findItemByInput(iList, keyChar);\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n function expandCollapseDdList(el) {\r\n $(document).on(\"mouseup.\" + $currDdl.attr(\"id\"), function(e) {\r\n var container = $currDdl;\r\n if (!container.is(e.target) // if the target of the click isn't the container...\r\n && container.has(e.target).length === 0) {\r\n collapseDropDown(el);\r\n $(document).off(\"mouseup.\" + $currDdl.attr(\"id\"));\r\n }\r\n });\r\n var lArea = el.find(\".listArea\");\r\n var iList = el.find(\".itemList\");\r\n\r\n if (sBox.hasClass(\"expanded\") || sBox.hasClass(\"expandedAbove\")) { // Close dropdown.\r\n collapseDropDown(el);\r\n } else { // Open dropdown.\r\n var elHeight = el.height();\r\n //var dynTab = $(\".dynTab\")[0];\r\n var dynTab;\r\n if (settings.referenceObj !== null) {\r\n dynTab = settings.referenceObj;\r\n } else {\r\n $.each($(\".content.tabContents\"),\r\n function(idx, tab) {\r\n if ($(tab).css(\"display\") !== \"none\") {\r\n dynTab = tab;\r\n }\r\n });\r\n if (typeof dynTab === \"undefined\") {\r\n dynTab = $(\"body\");\r\n }\r\n }\r\n if (typeof dynTab === \"undefined\" || dynTab === null) {\r\n lArea.css({ \"display\": \"block\", \"top\": \"auto\" });\r\n sBox.addClass(\"expanded\");\r\n } else {\r\n var tabHeight = dynTab.scrollHeight;\r\n if (typeof tabHeight === \"undefined\") {\r\n tabHeight = dynTab.height();\r\n }\r\n var scrollTop = $.isFunction(dynTab.scrollTop) ? dynTab.scrollTop() : dynTab.scrollTop;\r\n var elTop = Math.round(el.position().top) + scrollTop;\r\n //sBox.addClass('expanded');\r\n lArea.css({ \"display\": \"block\" });\r\n\r\n //console.log($(\"body\").height());\r\n //console.log(\"scrollTop: \" + scrollTop);\r\n //console.log(\"elTop: \" + elTop);\r\n //console.log(\"el offset top: \" + el.offset().top);\r\n //console.log(\"survey offset top: \" + $(dynTab).offset().top);\r\n //console.log(\"elHeight: \" + elHeight);\r\n //console.log(\"iListHeight: \" +Number(iList.height()));\r\n //console.log(\"tabHeight: \" +tabHeight);\r\n ////api.jquery.com/offset/\r\n ////api.jquery.com/category/offset/\r\n ////var parentParentTop = Math.round(el.parent().parent().parent().position().top) + scrollTop;\r\n ////var parentParentHeight = el.parent().parent().parent().height();\r\n //var offsetParentTop = Math.round(el.offsetParent().position().top) + scrollTop;\r\n //var offsetParentHeight = el.offsetParent().height();\r\n if (el.offset().top - $(dynTab).offset().top + elHeight + Number(iList.height()) > tabHeight) {\r\n //if (offsetParentTop + offsetParentHeight + 18 > tabHeight && elTop + elHeight + Number(iList.height()) + 46 >= offsetParentHeight) {\r\n //if (elTop + elHeight + iList.height() + 46 >= tabHeight) {\r\n lArea.addClass(\"listAreaAbove\");\r\n lArea.css({ \"top\": (elTop - iList.height() - 2) + \"px\" });\r\n sBox.addClass(\"expandedAbove\");\r\n } else {\r\n lArea.removeClass(\"listAreaAbove\");\r\n lArea.css({ \"top\": \"auto\" });\r\n sBox.addClass(\"expanded\");\r\n }\r\n }\r\n\r\n createKeyEvents(el);\r\n\r\n var notSelected = true;\r\n $.each(iList.children(), function(idx, liEl) {\r\n if ($(liEl).hasClass(\"selected\")) {\r\n $(liEl).first().focus();\r\n notSelected = false;\r\n return false;\r\n }\r\n return true;\r\n });\r\n\r\n if (notSelected) {\r\n iList.children(\"li\").first().focus();\r\n }\r\n }\r\n }\r\n\r\n sBox.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (!sBox.is(\"[disabled=disabled]\") && !settings.isReadOnly === true) {\r\n expandCollapseDdList($currDdl);\r\n }\r\n return true;\r\n //e.stopPropagation();\r\n });\r\n\r\n sBox.on(\"keyup\", function(event) {\r\n if (sBox.is(\"[disabled=disabled]\")) {\r\n return true;\r\n }\r\n var keyCode = (event.which) ? event.which : window.Event.keyCode;\r\n var character = String.fromCharCode(keyCode);\r\n var isChar = /[a-zA-Z0-9-_ ]/.test(character);\r\n if (isChar ||\r\n keyCode === 13 || keyCode === 0 || keyCode === 40) {\r\n if (!sBox.hasClass(\"expanded\")) {\r\n expandCollapseDdList($currDdl);\r\n $(this).preventDefault(event);\r\n if (isChar) {\r\n var iList = $currDdl.find(\".itemList\");\r\n findItemByInput(iList, character);\r\n }\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n\r\n function defaultSelectItem(val, dValue, dName, dTag) {\r\n if (typeof dValue !== \"undefined\" && dValue !== null) {\r\n if (typeof val.value === \"undefined\") {\r\n console.log(\"defaultSelectItem\");\r\n console.log(val);\r\n }\r\n if (val.value === dValue) {\r\n return true;\r\n }\r\n } else if (typeof dName !== \"undefined\" && dName !== null) {\r\n if (val.name === dName) {\r\n return true;\r\n }\r\n } else if (typeof dTag !== \"undefined\" && dTag !== null) {\r\n if (val.tag === dTag) {\r\n return true;\r\n }\r\n } else if (val.defaultSelected) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n function createItems(el, items, iList, defaultValue, defaultName, defaultTag) {\r\n var tabIndex = iList.children().length;\r\n var defaultSet = false;\r\n $.each(items, function(key, val) {\r\n tabIndex++;\r\n var li = document.createElement(\"li\");\r\n li.setAttribute(\"tabindex\", tabIndex.toString());\r\n\r\n if (typeof val.hide !== \"undefined\" && val.hide === true) {\r\n li.setAttribute(\"style\", \"display: none\");\r\n }\r\n\r\n var item = document.createElement(\"div\");\r\n item.setAttribute(\"class\", \"item\");\r\n\r\n var icon;\r\n if (val.icon) {\r\n icon = document.createElement(\"img\");\r\n icon.setAttribute(\"alt\", \" \");\r\n icon.setAttribute(\"class\", \"icon\");\r\n icon.setAttribute(\"src\", val.icon);\r\n if (val.tag) {\r\n icon.setAttribute(\"title\", val.tag);\r\n }\r\n item.appendChild(icon);\r\n }\r\n\r\n var value = document.createElement(\"div\");\r\n value.setAttribute(\"class\", \"value\");\r\n\r\n if (typeof val.value === \"undefined\" && typeof val.value !== \"undefined\") {\r\n console.log(\"ERROR: Wrong specified item. Use value not Value and name not Name\");\r\n return false;\r\n }\r\n value.appendChild(document.createTextNode(val.value.toString()));\r\n\r\n var name = document.createElement(\"div\");\r\n name.setAttribute(\"class\", \"name\");\r\n name.appendChild(document.createTextNode(val.name.toString()));\r\n\r\n var tag = document.createElement(\"div\");\r\n tag.setAttribute(\"class\", \"tag\");\r\n tag.appendChild(document.createTextNode(val.tag ? val.tag.toString() : \"\"));\r\n\r\n item.appendChild(value);\r\n item.appendChild(name);\r\n item.appendChild(tag);\r\n li.appendChild(item);\r\n\r\n var setSelected = defaultSelectItem(val, defaultValue, defaultName, defaultTag);\r\n if (setSelected) {\r\n li.setAttribute(\"selected\", \"selected\");\r\n li.setAttribute(\"class\", \"selected\");\r\n var ddIconObj = el.find(\".selectBox .icon\");\r\n ddIconObj.css(\"display\", (val.icon && val.icon.length > 0 ? \"inline-block\" : \"none\"));\r\n ddIconObj.attr(\"src\", (val.icon && val.icon.length > 0 ? val.icon : \"\"));\r\n\r\n el.find(\".selectBox .text\").text(val.name);\r\n if (typeof val.value === \"undefined\") {\r\n console.log(\"set selected\");\r\n console.log(val);\r\n }\r\n el.find(\".selectBox .value\").text(val.value);\r\n el.find(\".selectBox .tag\").text(val.tag);\r\n defaultSet = true;\r\n }\r\n $(iList).append(li);\r\n return true;\r\n });\r\n\r\n if (iList.children().length > 0 && !defaultSet) {\r\n var firstItem = iList.children(\"li\").first();\r\n setSelectedItem(el, firstItem, false);\r\n }\r\n\r\n $(sBox).removeAttr(\"disabled\");\r\n }\r\n\r\n function loadDefaultItems(el, clear) {\r\n var iList = el.find(\".itemList\");\r\n iList.empty();\r\n if (clear !== true && settings.items !== null) {\r\n createItems(el, settings.items, iList, settings.defaultValue, settings.defaultName, settings.defaultTag);\r\n return;\r\n }\r\n\r\n var empty = \"[empty]\";\r\n var li = document.createElement(\"li\");\r\n var noResult = document.createElement(\"div\");\r\n noResult.setAttribute(\"class\", \"noResult\");\r\n noResult.appendChild(document.createTextNode(empty));\r\n li.appendChild(noResult);\r\n $(iList).append(li);\r\n el.find(\".selectBox .text\").text(empty);\r\n sBox.attr(\"disabled\", true);\r\n }\r\n\r\n loadDefaultItems($currDdl);\r\n\r\n this.getItemsCount = function() {\r\n var el = $currDdl; //$(this);\r\n var iList = el.find(\".itemList\");\r\n var rest = iList.find(\"div.noResult\").length;\r\n return iList.children(\"li\").length - rest;\r\n }\r\n this.hideItem = function(item) {\r\n var el = $currDdl; //$(this);\r\n var iList = el.find(\".itemList\");\r\n var iListChildren = iList.children();\r\n var length = iListChildren.length;\r\n\r\n for (var i = length - 1; i >= 0; i--) {\r\n var li = $(iListChildren[i]);\r\n if (li.find(\".name\").text() === item.name) {\r\n if (li.find(\".value\").text() === item.value) {\r\n li.hide();\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n this.showItem = function (item) {\r\n if (typeof item === \"undefined\" || item === null) {\r\n return false;\r\n }\r\n var el = $currDdl; //$(this);\r\n var iList = el.find(\".itemList\");\r\n var iListChildren = iList.children();\r\n var length = iListChildren.length;\r\n\r\n for (var i = length - 1; i >= 0; i--) {\r\n var li = $(iListChildren[i]);\r\n if (li.find(\".name\").text() === item.name) {\r\n if (li.find(\".value\").text() === item.value) {\r\n li.show();\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n this.removeItem = function(item) {\r\n var el = $currDdl; //$(this);\r\n var iList = el.find(\".itemList\");\r\n var iListChildren = iList.children();\r\n var length = iListChildren.length;\r\n\r\n for (var i = length - 1; i >= 0; i--) {\r\n if ($(iListChildren[i]).find(\".name\").text() === item.name) {\r\n if ($(iListChildren[i]).find(\".value\").text() === item.value) {\r\n $(iListChildren[i]).remove();\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n }\r\n this.removeSelectedItem = function() {\r\n var el = $currDdl; //$(this);\r\n var iList = el.find(\".itemList\");\r\n var iSelected = iList.children(\"li[selected='selected']\");\r\n if (typeof iSelected.attr(\"tabindex\") !== \"undefined\") {\r\n iList.children(\"li[selected='selected']\").remove();\r\n setSelectedItem(el, iList.children(\"li\")[this.getItemsCount() - 1], false);\r\n }\r\n }\r\n this.addItems = function(items, defaultValue, defaultName, defaultTag) {\r\n var el = $currDdl; //$(this);\r\n\r\n if (typeof items === \"undefined\" || items === null) {\r\n return;\r\n }\r\n\r\n var iList = el.find(\".itemList\");\r\n if ((typeof defaultValue !== \"undefined\" && defaultValue !== null)\r\n || (typeof defaultName !== \"undefined\" && defaultName !== null)\r\n || (typeof defaultTag !== \"undefined\" && defaultTag !== null)) {\r\n var iSelected = iList.children(\"li[selected='selected']\");\r\n if (typeof iSelected.attr(\"tabindex\") !== \"undefined\") {\r\n iList.children(\"li[selected='selected']\").removeAttr(\"selected\");\r\n }\r\n }\r\n\r\n if (iList.find(\"li:first-child .noResult\").length > 0) {\r\n iList.find(\"li:first-child\").remove();\r\n }\r\n sBox.removeAttr(\"disabled\");\r\n createItems($currDdl, items, iList, defaultValue, defaultName, defaultTag);\r\n }\r\n\r\n this.loadItems = function(items, defaultValue, defaultName, defaultTag) {\r\n var el = $currDdl;\r\n if (typeof items === \"undefined\" || items === null) {\r\n loadDefaultItems(el);\r\n return;\r\n }\r\n var iList = el.find(\".itemList\");\r\n iList.empty();\r\n createItems($currDdl, items, iList, defaultValue, defaultName, defaultTag);\r\n }\r\n\r\n this.getSelectedItem = function() {\r\n var item = {\r\n name: $currDdl.find(\".selectBox .text\").text(),\r\n value: $currDdl.find(\".selectBox input.value\").text(),\r\n tag: $currDdl.find(\".selectBox div.tag\").text()\r\n };\r\n return item;\r\n }\r\n this.getSelectedIndex = function () {\r\n var el = $currDdl;\r\n var iList = el.find(\".itemList\");\r\n var iSelected = iList.children(\"li[selected='selected']\");\r\n if (typeof iSelected.attr(\"tabindex\") !== \"undefined\") {\r\n return Number(iSelected.attr(\"tabindex\")) - 1;\r\n }\r\n return -1;\r\n }\r\n this.getSelectedValue = function() {\r\n return $currDdl.find(\".selectBox input.value\").text();\r\n }\r\n this.getSelectedText = function() {\r\n return $currDdl.find(\".selectBox .text\").text();\r\n }\r\n this.getSelectedTag = function() {\r\n //return $currDdl.find(\"input.tag\").text();\r\n return $currDdl.find(\".selectBox div.tag\").text();\r\n }\r\n\r\n this.setSelectedText = function(text) {\r\n var el = $currDdl;\r\n var item = el.find(\".itemList li div.item div.name\").filter(function() {\r\n return $(this).text() === text;\r\n });\r\n if (item.length > 0) {\r\n setSelectedItem(el, item.parent(\"div\").parent(\"li\"), false);\r\n }\r\n }\r\n\r\n this.setSelectedValue = function(value, callEvent) {\r\n var el = $currDdl;\r\n var item = el.find(\".itemList li div.item div.value\").filter(function() {\r\n return $(this).text() === value;\r\n });\r\n if (item.length > 0) {\r\n if ($.isUndefinedOrNull(callEvent)) {\r\n callEvent = false;\r\n }\r\n setSelectedItem(el, item.parent(\"div\").parent(\"li\"), callEvent);\r\n }\r\n }\r\n\r\n this.setSelectedIndex = function(index, callEvent) {\r\n var el = $currDdl;\r\n var item = el.find(\".itemList li\").get(index);\r\n if ($.isUndefinedOrNull(callEvent)) {\r\n callEvent = false;\r\n }\r\n setSelectedItem(el, $(item), callEvent);\r\n }\r\n\r\n this.setTagVisible = function(value) {\r\n var el = $currDdl;\r\n var liTags = el.find(\".itemList li .tag\");\r\n var selTag = el.find(\".selectBox div.tag\");\r\n if (value === true) {\r\n if (!selTag.hasClass(\"tagVisible\")) {\r\n selTag.addClass(\"tagVisible\");\r\n }\r\n if (!liTags.hasClass(\"tagVisible\")) {\r\n liTags.addClass(\"tagVisible\");\r\n }\r\n } else {\r\n if (selTag.hasClass(\"tagVisible\")) {\r\n selTag.removeClass(\"tagVisible\");\r\n }\r\n if (liTags.hasClass(\"tagVisible\")) {\r\n liTags.removeClass(\"tagVisible\");\r\n }\r\n }\r\n //$.each(el.find(\".itemList li\"), function(idx, obj) {\r\n\r\n //});\r\n //window.alert(\"Set tag visible is not implemented yet!!!\");\r\n }\r\n\r\n this.clearList = function() {\r\n loadDefaultItems($currDdl, true);\r\n }\r\n this.setReadOnly = function(value) {\r\n settings.isReadOnly = value;\r\n checkReadOnly();\r\n }\r\n this.isReadOnly = function() {\r\n return settings.isReadOnly();\r\n }\r\n\r\n this.on = function(event, func) {\r\n $(element).off(event);\r\n return $(element).on(event, func);\r\n }\r\n this.off = function(event, func) {\r\n return $(element).off(event, func);\r\n }\r\n return this;\r\n }\r\n $.fn.imatisDropdown = function(options) {\r\n var dKey = \"imatisDropdown\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisDropdown(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisDropdown = function(id) {\r\n var dKey = \"imatisDropdown\";\r\n this.getSelectedIndex = function () {\r\n return $(\"#\" + id).data(dKey).getSelectedIndex();\r\n }\r\n this.getSelectedItem = function() {\r\n return $(\"#\" + id).data(dKey).getSelectedItem();\r\n }\r\n this.getSelectedValue = function() {\r\n return $(\"#\" + id).data(dKey).getSelectedValue();\r\n }\r\n this.getSelectedText = function() {\r\n return $(\"#\" + id).data(dKey).getSelectedText();\r\n }\r\n this.getSelectedTag = function() {\r\n return $(\"#\" + id).data(dKey).getSelectedTag();\r\n }\r\n this.getItemsCount = function() {\r\n return $(\"#\" + id).data(dKey).getItemsCount();\r\n }\r\n this.setSelectedValue = function(value, callEvent) {\r\n $(\"#\" + id).data(dKey).setSelectedValue(value, callEvent);\r\n }\r\n this.setSelectedText = function(text) {\r\n $(\"#\" + id).data(dKey).setSelectedText(text);\r\n }\r\n this.setSelectedIndex = function(index, callEvent) {\r\n $(\"#\" + id).data(dKey).setSelectedIndex(index, callEvent);\r\n }\r\n this.clearList = function() {\r\n $(\"#\" + id).data(dKey).clearList();\r\n }\r\n this.setReadOnly = function(value) {\r\n $(\"#\" + id).data(dKey).setReadOnly(value);\r\n }\r\n this.isReadOnly = function() {\r\n return $(\"#\" + id).data(dKey).isReadOnly();\r\n }\r\n return this;\r\n };\r\n // End DropDown\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2016\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <===================\r\n // File upload control\r\n $.imatisFileupload = function(el, options) {\r\n this.fupload = el;\r\n this.$fupload = $(el);\r\n this.options = options;\r\n $(el).empty();\r\n }\r\n\r\n $.imatisFileupload.prototype = {\r\n defaults: {\r\n title: \"Select file to upload:\",\r\n type: \"browseOnly\",\r\n uploadPath: \"\",\r\n isDisabled: false,\r\n isReadOnly: false,\r\n fileTypes: \"accept='image/*'\", // accept=\"image/jpeg, image/png\"\r\n placeHolder: \"[File to upload]\",\r\n browseBtnText: \"Browse\",\r\n uploadBtnText: \"Upload\",\r\n displayTitle: true,\r\n preview: null,\r\n onChange: function () { },\r\n onUploaded: function () { }\r\n },\r\n types: [\"normal\", \"imagePreview\", \"browseAndUpload\", \"browseOnly\"],\r\n browseIcon: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAAh1BMVEUAAAAvT38qVX8nU38oVn8nVX0pVX4pVn4oVX4pVX4oVn4pVX4oVn4pV38pVn82YYdBrUlEa49NslRRdpdZt2BfgJ9lvGtsi6dwwXZ5la98x4KHoLeU0Zmg1qShtces26+vwM+44Lu8ytfE5cbJ1d/P69HX3+fb8N3k6u/n9ejy9Pfz+vT////N46IUAAAADnRSTlMAEDBAcICPn6+/z9/v8Gl0Xo4AAAC5SURBVHjaldHLFoIgEIDhIbuRNU1ZSVSadlGz93++nIxqpE3fZg78B1gAoAZ60hVAQ03wB059jJJcmL/SGI93afE6pTF3W3VW84iQTb9KvaFl1czYK3siMs0so045EUvbRflVqiU9FV6x1Fp1S0rOXha+y7mIcqAPI8rFGLPiV4yxmSgsc4/8UQprbeqX29kpZeFPcXJREvyIRbnt1k5cvkty910xhCFG56tnixoU/jQLANQonHp0Dx7vKEGQdnMixgAAAABJRU5ErkJggg==\",\r\n uploadIcon: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAD1BMVEX///8zqyMixyIouyIzqyOPllEXAAAABHRSTlMAcMDwkSUrmAAAAE9JREFUeAHVyUEKgDAQxVA7/fc/s11IoNAMujTLvOtTY7SajFZxUVwUF8VFcVFcFEfdd8VFcVHcFKcd2H9nr1bNr+TMycOzDk3YesPe4r4bwOAF918db4QAAAAASUVORK5CYII=\",\r\n init: function () {\r\n var $fupload = this.$fupload;\r\n var inst = this;\r\n inst.settings = $.extend({}, inst.defaults, inst.options);\r\n if (inst.settings.displayTitle === true) {\r\n $fupload.append(\"\");\r\n }\r\n var txtUpload = \"\";\r\n var browsePanel = \"\";\r\n var btnBrowse = \"
      \" + \"\" + inst.settings.browseBtnText + \"\";\r\n btnBrowse += \"uploadBtn'>\" + \"\" + inst.settings.browseBtnText + \"\";\r\n browsePanel = txtUpload + btnBrowse;\r\n } else {\r\n btnBrowse += (inst.settings.type === inst.types[1] ? \"uploadBtnIcoAndTxt'>\" : \"uploadBtnIco'>\");\r\n browsePanel = btnBrowse\r\n + \"upload ico\";\r\n if (inst.settings.type === inst.types[1]) {\r\n browsePanel += txtUpload + \"\";\r\n }\r\n }\r\n browsePanel += \"\" + \"
      \";\r\n $fupload.append(browsePanel);\r\n inst.setPreview(inst.settings.preview);\r\n \r\n if (inst.settings.type === inst.types[0]) {\r\n var btnUpload = $(\"
      \"\r\n + \"\" + inst.settings.uploadBtnText + \"
      \");\r\n $fupload.append(btnUpload);\r\n\r\n btnUpload.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (inst.settings.isDisabled || inst.settings.isReadOnly) {\r\n return;\r\n }\r\n inst.uploadFile();\r\n });\r\n } else {\r\n var uploadButton = $(\"#imgUploadBtn\");\r\n uploadButton.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (inst.settings.isDisabled || inst.settings.isReadOnly) {\r\n return;\r\n }\r\n inst.uploadFile();\r\n });\r\n }\r\n var uploadBtn = $fupload.find(\"#uploadBtn\");\r\n uploadBtn.on(\"change\", function (event) {\r\n $fupload.find(\"#uploadFile\").val(this.value);\r\n\r\n var picReader = new FileReader();\r\n picReader.onload = function (frEvent) {\r\n inst.setPreview(frEvent.target.result);\r\n inst.settings.onChange(frEvent.target.result);\r\n }\r\n \r\n var result = picReader.readAsDataURL(event.target.files[0]);\r\n if (inst.settings.type === inst.types[2]) {\r\n inst.uploadFile();\r\n }\r\n });\r\n return this;\r\n },\r\n setPreview: function (src) {\r\n var $fupload = this.$fupload;\r\n var fileUploadDiv = $fupload.find(\".fileUpload\");\r\n var imgPreview = $fupload.find(\"#imgPreview\");\r\n var uploadBtn = $fupload.find(\"#uploadBtn\");\r\n if (!$.isUndefinedOrNull(src)) {\r\n imgPreview.attr(\"src\", src); \r\n }\r\n //imgPreview.attr(\"src\", src);\r\n window.setTimeout(function () {\r\n fileUploadDiv.height(imgPreview.height() + 3);\r\n uploadBtn.height(imgPreview.height());\r\n uploadBtn.width(imgPreview.width() + 158);\r\n $fupload.height(imgPreview.height());\r\n }, 200);\r\n },\r\n getFilename: function () {\r\n var files = this.$fupload.find(\"#uploadBtn\").get(0).files;\r\n return files.length === 0 ? this.settings.preview : encodeURI(files[0].name);\r\n },\r\n uploadFile: function () {\r\n var data = new FormData();\r\n var $fupload = this.$fupload;\r\n var files = $fupload.find(\"#uploadBtn\").get(0).files;\r\n // Add the uploaded file content to the form data collection\r\n //if (files.length > 0) {\r\n // data.append(\"UploadedImage\", files[0]);\r\n //}\r\n console.log(files);\r\n if (files.length === 0) {\r\n return;\r\n }\r\n var inst = this;\r\n data.append(\"UploadedImage\", files[0]);\r\n\r\n var uploadUrl = \"api/fileupload/uploadfile\";\r\n if (inst.settings.uploadPath !== \"\") {\r\n uploadUrl += \"/\" + inst.settings.uploadPath;\r\n }\r\n\r\n // Make Ajax request\r\n var ajaxRequest = $.ajax({\r\n type: \"POST\",\r\n url: uploadUrl,\r\n contentType: false,\r\n processData: false,\r\n data: data\r\n });\r\n\r\n ajaxRequest.done(function (respData, status) {\r\n if (status === \"success\") {\r\n inst.settings.onUploaded(encodeURI(files[0].name));\r\n if (respData != null) {\r\n if (respData.Key) {\r\n $fupload.find(\"#uploadFile\").val(\"\");\r\n $fupload.find(\"#uploadBtn\").val(\"\");\r\n }\r\n }\r\n }\r\n });\r\n },\r\n setReadOnly: function (value) {\r\n this.settings.isReadOnly = value;\r\n },\r\n isReadOnly: function () {\r\n return this.settings.isReadOnly();\r\n }\r\n };\r\n $.imatisFileupload.defaults = $.imatisFileupload.prototype.defaults;\r\n\r\n $.fn.imatisFileupload = function (options) {\r\n var dKey = \"imatisFileupload\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisFileupload(this, options).init();\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisFileupload = function (id) {\r\n var dKey = \"imatisFileupload\";\r\n this.uploadFile = function () {\r\n return $(\"#\" + id).data(dKey).uploadFile();\r\n }\r\n this.getFilename = function () {\r\n return $(\"#\" + id).data(dKey).getFilename();\r\n }\r\n this.setPreview = function (src) {\r\n return $(\"#\" + id).data(dKey).setPreview(src);\r\n }\r\n this.setReadOnly = function (value) {\r\n $(\"#\" + id).data(dKey).setReadOnly(value);\r\n }\r\n this.isReadOnly = function () {\r\n return $(\"#\" + id).data(dKey).isReadOnly();\r\n }\r\n return this;\r\n };\r\n // End File upload control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // RadioButton control\r\n $.imatisRadiobutton = function (el, options) {\r\n var $rBtn = $(el), dKey = \"imatisRadiobutton\";\r\n $(el).empty();\r\n var defaults = {\r\n imgUnchecked: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAOVBMVEX///+81ey81ezC2e7D2u7D2e7B2O3D2u6+1u2/1+2/1+281ezV5fPd6vXq8vny9/v3+v37/P7///8ettQDAAAAC3RSTlMAIDBqkLLQ2Pj7/JsUV8oAAACFSURBVHjadZJZDsAgCETBWpeiVrn/YZs2Gk3qvM8ZFxigDlsfRIK3TCvGxVSqai0pOjP1Q3LTTstyDP28bl24r7OfH/p0vjtGhj4deUtwWX9kR8Sx/Y0WmWzSDcmSLzujeAp1Z9RAolsEGvAp+DksFzaIIyEGIYLYwaDwaAe8LgN3EazPAzV0HSxt4ggvAAAAAElFTkSuQmCC\",\r\n imgUncheckedFocused: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAM1BMVEX///+iw+KhwuGhwuKfweGbvt+Wu92Xu96Ls9mOtdqnxuO0zufM3u/f6vXp8fj09/z///8uJ1SSAAAACHRSTlMAPFeiyOLz9SiRH/QAAACCSURBVHjadZJbDsQgDAOdlkICFHL/0660AoFUPJ8enkkwkJBM1VIQ7FzRcm3urWaL18pvLd0Hveg988de33jtGetnvsx/z6UzX0YFQCz+oURArH9FN0HIfiAHpHoSNcHaSTSD+hGlgh5FL6fPpR/kJYGQIpKyk0bx1k5kHwYZIRmfH2Y4GezCZOp8AAAAAElFTkSuQmCC\",\r\n imgUncheckedDisabled: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAOVBMVEX///9gYGBgYGBpaWlqamtpaWpnZ2hqamtjY2NkZGRkZGVgYGCCg4SNjpCeoKKqq66wsbS1t7q7vcCBdXdVAAAAE3RSTlMAEBg1SFlobHx+foCAgICAgICATyAY9AAAAIVJREFUeNp1klkOwCAIRMFal6JWuf9hmzYaTeq8zxkXGKAOWx9EgrdMK8bFVKpqLSk6M/VDctNOy3IM/bxuXbivs58f+nS+O0aGPh15S3BZf2RHxLH9jRaZbNINyZIvO6N4CnVn1ECiWwQa8Cn4OSwXNogjIQYhgtjBoPBoB7wuA3cRrM8DNXQdLG3iCC8AAAAASUVORK5CYII=\",\r\n imgChecked: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAilBMVEX///+81ey81ezC2e7D2u7D2e7B2O3D2u6+1u2/1+2/1+0sqTYtqDctqTcuqDcvpzgvpzkwpjkwpzkxpTsypTs0pDw0pD01oz01oz42oj42oz43oj85oUE6oEE6oEI7n0I7oEJcs2Nds2OW1Jqu4LG81ezV5fPV8Nfd6vXq8vny9/v3+v37/P7///+1iuUYAAAAC3RSTlMAIDBqkLLQ2Pj7/JsUV8oAAAEASURBVHgBdVLbooIgEAQzL2mBRkdQs9IQLfn/3zsrkvrCPOksszs7gCywH0ZSRqGP0R5eEPfjV+vv2MeBt/EHOUzaYhrk4ccfTx+9w+d0tOcXXnUAtVSMxpMzr9pacF7VLzVX5GwhGODz/SwZJYReefOG3yEAnzHMVc+/LE0AKb01oJlijPweTrRldk4MzrRsgeh9FI4gqJk5bzSsBskYogj26gRNVuSig00jJDUUONkKpOiAku6CaVXtW1WmlR1+XYdf2H0Zbuy+OLV200xYu8uCzY0azSUrHnZBG0lTspyQnInHLxKE1xCLorq3W4jO2N0X5b5amLN/DNiSjufzD019NEwjI14pAAAAAElFTkSuQmCC\",\r\n imgCheckedFocused: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAhFBMVEX///+iw+KhwuGhwuKfweGbvt+Wu92Xu94sqTYtqDctqTcuqDcvpzgvpzkwpjkwpzkxpTsypTs0pDw0pD01oz01oz42oj42oz43oj85oUE6oEE6oEI7n0I7oEJcs2Nds2OLs9mOtdqW1JqnxuOu4LG0zufM3u/V8Nff6vXp8fj09/z///8qPmGYAAAACHRSTlMAPFeiyOLz9SiRH/QAAAD+SURBVHjadVLZgoIwDCyIXLZgXVpAVBqQQ/r//7ehrcgL8wSZTDJJQxy8IAKlIAo8socfQj9+tP6MPYT+L35Sw6IdlkGdiMMZZr3DDGeXb+NTh5gsYzS+mtdwW0shqvo1rYxaLYQDfr6fJWeUsqto3vg7hOgTFsx//mVJjEjYrUHNAh4JesxoyyyNDVJWthjoAxKNKKi5yTcaXqNkjAjgXJ1k8YZcdjgpEKWREPRH0AIJrQ4JW6ral6pMKdf8ujW/8Ltpbu2+BEudqUxau27A5sYSk58VDzegW0lT8pzSnMvHdyXE25ZYFNW93ZZ4vPbjhzp+WuyzPwZ7J4fn8w9XzzKg39zYDQAAAABJRU5ErkJggg==\",\r\n imgCheckedDisabled: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAASFBMVEX///9gYGBgYGBpaWlqamtpaWpnZ2hqamtjY2NkZGRkZGVgYGCCg4SNjpCeoKKqq66wsbS1t7q7vcCrrbCen6KWmJqGh4l+f4DTbhkKAAAAGHRSTlMAEBg1SFlobHx+foCAgICAgICAjJigtMBvwAtuAAAAo0lEQVR42nWS2xKFIAhFocxLqKWm/f+fHiqnsZnDetK9QQWEDipjiaxRCCOTdj7uOe/ROz3By0wh5U4KNENnWbc8sK1Lj3/0UpnyOHfORJde2nnTyuUQsqEDL4/z5eBt0ADoEsefA5yTHILyHNFGo7HgFZj4Jgwp0YDluurXqFypBcr/jEyiIR4lXi4+VyxQbgmg0ESx7fKg5NEyOH4G7KLwfX5wgCDINgDxBgAAAABJRU5ErkJggg==\",\r\n isDisabled: false,\r\n groupName: \"default\",\r\n text: !$.isUndefinedOrNull($rBtn.attr(\"text\")) ? $rBtn.attr(\"text\") : \"\",\r\n isChecked: false,\r\n onChange: function () { }\r\n }\r\n\r\n var rBtn = this;\r\n rBtn.settings = {};\r\n rBtn.init = function () {\r\n rBtn.settings = $.extend({}, defaults, options);\r\n }\r\n rBtn.init();\r\n\r\n var content = \" \" + rBtn.settings.text + \"\";\r\n $rBtn.append(content);\r\n\r\n if (rBtn.settings.isDisabled) {\r\n $rBtn.attr(\"disabled\", true);\r\n }\r\n\r\n function resetGroupValues(id) {\r\n var cGroupName = rBtn.settings.groupName;\r\n $.each($(\"div:data(\" + dKey + \")\"), function(idx, oRbtn) {\r\n var oSettings = $(oRbtn).data(dKey).settings;\r\n if ($(oRbtn).attr(\"id\") !== id && oSettings.groupName === cGroupName && oSettings.isChecked) {\r\n $(oRbtn).data(dKey).setChecked(false);\r\n }\r\n });\r\n }\r\n\r\n var imgBox = $rBtn.find(\".img\");\r\n\r\n function setChecked(value) {\r\n var hasFocus = $rBtn.attr(\"id\") === $(document.activeElement).attr(\"id\");\r\n var src;\r\n if (rBtn.settings.isDisabled) {\r\n src = rBtn.settings.isChecked ? rBtn.settings.imgCheckedDisabled : rBtn.settings.imgUncheckedDisabled;\r\n } else if (value) {\r\n rBtn.settings.isChecked = true;\r\n src = hasFocus ? rBtn.settings.imgCheckedFocused : rBtn.settings.imgChecked;\r\n } else {\r\n rBtn.settings.isChecked = false;\r\n src = hasFocus ? rBtn.settings.imgUncheckedFocused : rBtn.settings.imgUnchecked;\r\n }\r\n imgBox.attr(\"src\", src);\r\n }\r\n\r\n function setEnabledValue(value) {\r\n if (typeof value !== \"undefined\" && value !== null) {\r\n rBtn.settings.isDisabled = !value;\r\n }\r\n var disabled = \"chkBoxDisabled\";\r\n if (value) {\r\n if ($rBtn.hasClass(disabled)) {\r\n $rBtn.removeClass(disabled);\r\n }\r\n } else {\r\n if (!$rBtn.hasClass(disabled)) {\r\n $rBtn.addClass(disabled);\r\n }\r\n }\r\n setChecked(rBtn.settings.isChecked);\r\n }\r\n\r\n function setFocusedImg() {\r\n imgBox.attr(\"src\", rBtn.settings.isChecked ? rBtn.settings.imgCheckedFocused : rBtn.settings.imgUncheckedFocused);\r\n }\r\n\r\n function setNormalImg() {\r\n imgBox.attr(\"src\", rBtn.settings.isChecked ? rBtn.settings.imgChecked : rBtn.settings.imgUnchecked);\r\n }\r\n\r\n $rBtn.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (rBtn.settings.isDisabled) {\r\n return;\r\n }\r\n var cId = $(this).attr(\"id\");\r\n resetGroupValues(cId);\r\n setChecked(true);\r\n $rBtn.change(); // Call Change event.\r\n rBtn.settings.onChange(rBtn.isChecked());\r\n });\r\n\r\n $rBtn.on(\"keypress\", function (event) {\r\n if (rBtn.settings.isDisabled) {\r\n return false;\r\n }\r\n var keyCode = (event.which) ? event.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 32 || keyCode === 13) {\r\n var cId = $(this).attr(\"id\");\r\n resetGroupValues(cId);\r\n setChecked(true);\r\n $rBtn.change(); // Call Change event.\r\n rBtn.settings.onChange(rBtn.isChecked());\r\n }\r\n\r\n return true;\r\n });\r\n\r\n $rBtn.on(\"focus\", function () {\r\n if (rBtn.settings.isDisabled) {\r\n return;\r\n }\r\n setFocusedImg();\r\n });\r\n\r\n $rBtn.on(\"blur\", function () {\r\n if (rBtn.settings.isDisabled) {\r\n return;\r\n }\r\n setNormalImg();\r\n });\r\n\r\n setChecked(rBtn.settings.isChecked);\r\n if (rBtn.settings.isChecked) {\r\n resetGroupValues($rBtn.attr(\"id\"));\r\n }\r\n\r\n this.isChecked = function () {\r\n return rBtn.settings.isChecked;\r\n }\r\n this.setChecked = function (value) {\r\n if (value) {\r\n resetGroupValues($(this).attr(\"id\"));\r\n }\r\n setChecked(value);\r\n }\r\n this.isEnabled = function () {\r\n return !rBtn.settings.isDisabled;\r\n }\r\n this.setEnabled = function (value) {\r\n setEnabledValue(value);\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n\r\n return this;\r\n }\r\n $.fn.imatisRadiobutton = function (options) {\r\n var dKey = \"imatisRadiobutton\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisRadiobutton(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisRadiobutton = function (id) {\r\n var dKey = \"imatisRadiobutton\";\r\n this.isChecked = function () {\r\n return $(\"#\" + id).data(dKey).isChecked();\r\n }\r\n this.setChecked = function (value) {\r\n $(\"#\" + id).data(dKey).setChecked(value);\r\n }\r\n this.getGroupName = function () {\r\n return $(\"#\" + id).data(dKey).settings.groupName;\r\n }\r\n this.isEnabled = function () {\r\n return !$(\"#\" + id).data(dKey).isEnabled;\r\n }\r\n this.setEnabled = function (value) {\r\n $(\"#\" + id).data(dKey).setEnabled(value);\r\n }\r\n return this;\r\n };\r\n // End RadioButton control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <========================\r\n // Regex validator\r\n window.regexValidator = {};\r\n regexValidator.Validate = function (clientId, event, regexKeyPress, regexContent) {\r\n var keyCode = (event.which) ? event.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 0 || keyCode === 8 || keyCode === 9 || keyCode === 13) { return true; }\r\n var keyPressed = String.fromCharCode(keyCode);\r\n var regExpKeyPressed = new RegExp(regexKeyPress);\r\n var resultKeyPress = regExpKeyPressed.test(keyPressed);\r\n if (resultKeyPress) {\r\n var field = $(clientId);\r\n var newValue = field.val() + keyPressed;\r\n var regExpContent = new RegExp(regexContent);\r\n var resultContent = regExpContent.test(newValue);\r\n if (resultContent) {\r\n return true;\r\n } else {\r\n //preventDefault(event);\r\n $(this).preventDefault(event);\r\n return false;\r\n }\r\n } else {\r\n //preventDefault(event);\r\n $(this).preventDefault(event);\r\n return false;\r\n }\r\n };\r\n\r\n regexValidator.ValidateKey = function (event, regexKeyPress) {\r\n var keyCode = (event.which) ? event.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 0 || keyCode === 8 || keyCode === 9 || keyCode === 13) { return true; }\r\n var keyPressed = String.fromCharCode(keyCode);\r\n var regExpKeyPressed = new RegExp(regexKeyPress);\r\n var resultKeyPress = regExpKeyPressed.test(keyPressed);\r\n if (resultKeyPress) {\r\n return true;\r\n } else {\r\n $(this).preventDefault(event);\r\n return false;\r\n }\r\n };\r\n // End Regex validator\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2016\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // Time picker control\r\n $.imatisTimePicker = function (el, options) {\r\n var $btnCtrl = $(el), btnCtrl = this;\r\n $(el).empty();\r\n var defaults = {\r\n className: \"ih5 itp\",\r\n format: \"HH:mm:ss\",\r\n isDisabled: false,\r\n isMobile: false,\r\n lang: \"en-US\",\r\n languages: [\"en-US\", \"nb-NO\"],\r\n inputOnly: false,\r\n onChange: function () { }\r\n }\r\n\r\n var langRes = [\r\n {\r\n lang: \"en-US\",\r\n tpHeader: \"Time\",\r\n btnNow: \"Now\",\r\n btnSave: \"Save\"\r\n },\r\n {\r\n lang: \"nb-NO\",\r\n tpHeader: \"Tidspunkt\",\r\n btnNow: \"Nåtid\",\r\n btnSave: \"Lagre\"\r\n }\r\n ];\r\n\r\n\r\n function formatAmPm(date) {\r\n var lhours = date.getHours();\r\n var lminutes = date.getMinutes();\r\n var ampm = lhours >= 12 ? \"pm\" : \"am\";\r\n lhours = lhours % 12;\r\n lhours = lhours ? lhours : 12; // the hour '0' should be '12'\r\n lminutes = lminutes < 10 ? \"0\" + lminutes : lminutes;\r\n var strTime = lhours + \":\" + lminutes + \" \" + ampm;\r\n return strTime;\r\n }\r\n\r\n function toTwoDigits(val) {\r\n return val.toString().length === 1 ? \"0\" + val.toString() : val.toString();\r\n }\r\n\r\n var dNow = new Date();\r\n var hours = toTwoDigits(dNow.getHours());\r\n var minutes = toTwoDigits(dNow.getMinutes());\r\n var seconds = toTwoDigits(dNow.getSeconds());\r\n var lastInput;\r\n \r\n btnCtrl.settings = {};\r\n btnCtrl.init = function () {\r\n btnCtrl.settings = $.extend({}, defaults, options);\r\n var f = btnCtrl.settings.format;\r\n if (f === \"hh:mm a\") {\r\n btnCtrl.settings.value = formatAmPm(dNow);\r\n } else {\r\n btnCtrl.settings.value = f.replace(\"HH\", hours).replace(\"mm\", minutes).replace(\"ss\", seconds);\r\n }\r\n }\r\n btnCtrl.init();\r\n\r\n var langIdx = defaults.languages.indexOf(btnCtrl.settings.lang);\r\n if (langIdx < 0) {\r\n langIdx = 0;\r\n }\r\n var tbxTime = $(\"\");\r\n var timeObj = $(\"
      \" + langRes[langIdx].tpHeader + \"
      \" +\r\n \"
      \" +\r\n \"
      \" +\r\n \"
      \" + btnCtrl.settings.value.substring(0,2) + \"
      \" +\r\n \":\" +\r\n \"
      \" + btnCtrl.settings.value.substring(3, 5) + \"
      \" +\r\n \"
      \" +\r\n \"
      1
      2
      3
      \" +\r\n \"
      4
      5
      6
      \" +\r\n \"
      7
      8
      9
      \" +\r\n \"
      0
      \" +\r\n \"
      \" +\r\n \"\" +\r\n \"
      \");\r\n\r\n function setTime(obj, type, direction) {\r\n var max = type === \"h\" ? 23 : 59;\r\n var h = $(obj).parent().find(\"span\");\r\n var oText = h.text();\r\n var nVal;\r\n if (oText.length === 1 || oText.substring(0, 1) !== \"0\") {\r\n nVal = Number(oText);\r\n } else {\r\n nVal = Number(oText.substring(1, 2));\r\n }\r\n if (direction > 0) {\r\n if (nVal >= max) {\r\n nVal = 0;\r\n } else {\r\n nVal++;\r\n }\r\n } else {\r\n if (nVal <= 0) {\r\n nVal = max;\r\n } else {\r\n nVal--;\r\n }\r\n }\r\n var nText = nVal.toString().length === 1 ? \"0\" + nVal : nVal;\r\n $(obj).parent().find(\"span\").text(nText);\r\n }\r\n function setActive(type) {\r\n var objActive = timeObj.find(type === \"h\" ? \"div.hour\" : \"div.minute\");\r\n if (objActive.hasClass(\"active\")) {\r\n return;\r\n }\r\n lastInput = null;\r\n var objNotActive = timeObj.find(type === \"h\" ? \"div.minute\" : \"div.hour\");\r\n objNotActive.removeClass(\"active\");\r\n objActive.addClass(\"active\");\r\n }\r\n\r\n timeObj.find(\"div.hour div#btnHourUp\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"h\");\r\n setTime(this, \"h\", 1);\r\n });\r\n timeObj.find(\"div.hour div#btnHourDown\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"h\");\r\n setTime(this, \"h\", -1);\r\n });\r\n timeObj.find(\"div.minute div#btnMinuteUp\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"m\");\r\n setTime(this, \"m\", 1);\r\n });\r\n timeObj.find(\"div.minute div#btnMinuteDown\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"m\");\r\n setTime(this, \"m\", -1);\r\n });\r\n timeObj.find(\"div.hour span\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"h\");\r\n });\r\n timeObj.find(\"div.minute span\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n setActive(\"m\");\r\n });\r\n\r\n timeObj.find(\"div.row div.cell\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n var objActive = timeObj.find(\".timeSelect div.active\");\r\n var type = objActive.hasClass(\"hour\") ? \"h\" : \"m\";\r\n var input = objActive.find(\"span\");\r\n var cNr = $(this).find(\"span\").text();\r\n var nText;\r\n if (typeof lastInput === \"undefined\" || lastInput === null) {\r\n nText = \"0\" + cNr;\r\n lastInput = cNr;\r\n } else {\r\n var lNr = Number(lastInput);\r\n if (type === \"h\" && (lNr <= 1 || lNr === 2 && Number(cNr) < 4)) {\r\n nText = lastInput + cNr;\r\n } else if (type === \"m\" && lNr <= 5) {\r\n nText = lastInput + cNr;\r\n } else {\r\n nText = \"0\" + cNr;\r\n }\r\n lastInput = null;\r\n }\r\n input.text(nText);\r\n });\r\n\r\n timeObj.find(\"div.tp-footer div#btnSave\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n var f = btnCtrl.settings.format;\r\n btnCtrl.settings.value = f.replace(\"HH\", timeObj.find(\".timeSelect div.hour span\").text()).replace(\"mm\", timeObj.find(\".timeSelect div.minute span\").text());\r\n tbxTime.val(btnCtrl.settings.value);\r\n btnCtrl.close();\r\n $btnCtrl.change();\r\n btnCtrl.settings.onChange(btnCtrl.settings.value);\r\n });\r\n timeObj.find(\"div.tp-footer div#btnNow\").on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n dNow = new Date();\r\n hours = toTwoDigits(dNow.getHours());\r\n minutes = toTwoDigits(dNow.getMinutes());\r\n seconds = toTwoDigits(dNow.getSeconds());\r\n var f = btnCtrl.settings.format;\r\n btnCtrl.settings.value = f.replace(\"HH\", hours).replace(\"mm\", minutes).replace(\"ss\", seconds);\r\n tbxTime.val(btnCtrl.settings.value);\r\n btnCtrl.close();\r\n $btnCtrl.change();\r\n btnCtrl.settings.onChange(btnCtrl.settings.value, dNow);\r\n });\r\n\r\n var dialogArrow = $(\"
      \");\r\n var button = $(\"
      \");\r\n button.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n btnCtrl.isOpen() ? btnCtrl.close() : btnCtrl.open();\r\n });\r\n\r\n tbxTime.on(\"keydown\", function (e) {\r\n var keyCode = (e.which) ? e.which : (window.event !== undefined ? window.event.keyCode : 0);\r\n if (keyCode === 0 || keyCode === 8 || keyCode === 9 || keyCode === 13) { return true; }\r\n var keyPressed = String.fromCharCode(keyCode);\r\n\r\n if (e.shiftKey === false) {\r\n keyPressed = keyPressed.toLowerCase();\r\n }\r\n if (keyCode === 190) {\r\n keyPressed = e.shiftKey ? \":\": \".\";\r\n } else if (keyCode >= 96 && keyCode <= 105) {\r\n keyPressed = (keyCode - 96).toString();\r\n }\r\n var regExpKeyPressed = new RegExp(\"^[0-9:amp]$\");\r\n var resultKeyPress = regExpKeyPressed.test(keyPressed);\r\n if (resultKeyPress) {\r\n var newValue = \"\";\r\n if (this.selectionEnd - this.selectionStart === 0) {\r\n newValue = $(this).val();\r\n }\r\n newValue += keyPressed;\r\n var f = btnCtrl.settings.format;\r\n var ch = btnCtrl.settings.format.substring(2, 3);\r\n var regExp = \"\";\r\n var valLen = newValue.length;\r\n if (btnCtrl.settings.format === \"hh:mm a\") {\r\n if (valLen === 1) {\r\n regExp = \"[1-9]|[ap]\";\r\n }\r\n if (valLen === 2) {\r\n regExp = \"[1][0-2]|[1-9][\" + ch + \"]|[a][m]|[p][m]\";\r\n }\r\n if (valLen === 3) {\r\n regExp = \"[1][0-2][0-5]|[1-9][\" +\r\n ch +\r\n \"][0-5]|[1][0-2][\" +\r\n ch +\r\n \"]\";\r\n }\r\n if (valLen === 4) {\r\n regExp = \"[1][0-2][0-5][0-9]|[1-9][\" +\r\n ch +\r\n \"][0-5][0-9]|[1][0-2][\" + ch + \"][0-5]\";\r\n }\r\n if (valLen === 5) {\r\n regExp = \"[1-9][\" + ch + \"][0-5][0-9][ap]|[1][0-2][\" + ch + \"][0-5][0-9]\";\r\n }\r\n if (valLen > 5 && valLen < 8) {\r\n regExp = \"[1-9][\" +\r\n ch +\r\n \"][0-5][0-9][ap][m]|\" +\r\n \"[1][0-2][\" +\r\n ch +\r\n \"][0-5][0-9][ap]|\" +\r\n \"[1][0-2][\" +\r\n ch +\r\n \"][0-5][0-9][ap][m]\";\r\n //ch +\r\n //\"][0-5]|[1-9][\" +\r\n //ch +\r\n //\"][0-5][0-9]|[1][0-2][\" + ch + \"][0-5]\";\r\n }\r\n } else {\r\n if (valLen === 1) {\r\n regExp = \"[0-2]\";\r\n }\r\n if (valLen === 2) {\r\n regExp = \"[0][0-9]|[1][0-9]|[2][0-3]\";\r\n }\r\n if (valLen === 3) {\r\n regExp = \"[0][0-9][0-5]|[1][0-9][0-5]|[2][0-3][0-5]|[0][0-9][\" +\r\n ch +\r\n \"]|[1][0-9][\" +\r\n ch +\r\n \"]|[2][0-3][\" +\r\n ch +\r\n \"]\";\r\n }\r\n if (valLen === 4) {\r\n regExp = \"[0][0-9][0-5][0-9]|[1][0-9][0-5][0-9]|[2][0-3][0-5][0-9]|[0][0-9][\" +\r\n ch +\r\n \"][0-5]|[1][0-9][\" +\r\n ch +\r\n \"][0-5]|[2][0-3][\" +\r\n ch +\r\n \"][0-5]\";\r\n }\r\n if (valLen === 5) {\r\n if (f.length === 5) {\r\n regExp = \"[0][0-9][\" + ch + \"][0-5][0-9]|[1][0-9][\" + ch + \"][0-5][0-9]|[2][0-3][\" + ch + \"][0-5][0-9]\";\r\n } else {\r\n regExp += \"[0][0-9][0-5][0-9][0-5]|[1][0-9][0-5][0-9][0-5]|[2][0-3][0-5][0-9][0-5]|[0][0-9][\" +\r\n ch +\r\n \"][0-5][0-9]|[1][0-9][\" +\r\n ch +\r\n \"][0-5][0-9]|[2][0-3][\" +\r\n ch +\r\n \"][0-5][0-9]\";\r\n }\r\n }\r\n if (valLen === 6 && f.length > 7) {\r\n regExp =\r\n \"[0][0-9][0-5][0-9][0-5][0-9]|[1][0-9][0-5][0-9][0-5][0-9]|[2][0-3][0-5][0-9][0-5][0-9]|[0][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"]|[1][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"]|[2][0-3][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"]\";\r\n }\r\n if (valLen === 7 && f.length > 7) {\r\n regExp = \"[0][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5]|[1][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5]|[2][0-3][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5]\";\r\n }\r\n if (valLen === 8) {\r\n regExp = \"[0][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5][0-9]|[1][0-9][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5][0-9]|[2][0-3][\" +\r\n ch +\r\n \"][0-5][0-9][\" +\r\n ch +\r\n \"][0-5][0-9]\";\r\n }\r\n }\r\n var regExpContent = new RegExp(\"^(\" + regExp + \")$\");\r\n if (regExpContent.test(newValue)) {\r\n return true;\r\n } else {\r\n $(this).preventDefault(e);\r\n return false;\r\n }\r\n } else {\r\n $(this).preventDefault(e);\r\n return false;\r\n }\r\n });\r\n if (!btnCtrl.settings.isMobile) {\r\n tbxTime.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n this.setSelectionRange(0, this.value.length);\r\n });\r\n }\r\n tbxTime.on(\"change\", function () {\r\n var newVal = $(this).val();\r\n var oldVal = btnCtrl.settings.value;\r\n if (newVal.trim().length === 0) {\r\n $(this).val(oldVal);\r\n return;\r\n }\r\n\r\n var f = btnCtrl.settings.format;\r\n var sep, seps = [];\r\n var regexp = /[:|.]/g;\r\n while ((sep = regexp.exec(f)) !== null) {\r\n seps.push({ index: sep.index, char: sep[0] });\r\n }\r\n\r\n var result;\r\n var newValHasSep1 = newVal.indexOf(seps[0].char) >= 0;\r\n var newValLength = newVal.length;\r\n\r\n if (f === \"hh:mm a\") {\r\n if (newValLength === 1 || newValLength === 2 && !newValHasSep1) {\r\n if (newVal === \"a\" || newVal === \"am\") {\r\n result = oldVal.substring(0, oldVal.length - 2) + \"am\";\r\n } else if (newVal === \"p\" || newVal === \"pm\") {\r\n result = oldVal.substring(0, oldVal.length - 2) + \"pm\";\r\n } else {\r\n if (newVal === \"0\") {\r\n newVal = 12;\r\n }\r\n result = newVal + oldVal.substring(oldVal.indexOf(seps[0].char), f.length + 1);\r\n }\r\n } else if (newValLength < 3 && newValHasSep1) {\r\n newVal = newVal.substring(0, newVal.indexOf(seps[0].char));\r\n result = newVal + oldVal.substring(oldVal.indexOf(seps[0].char), f.length + 1);\r\n } else if (newValLength === 3 && newValHasSep1) {\r\n var hh = newVal.substring(0, newVal.indexOf(seps[0].char));\r\n var mm = newVal.substring(newVal.indexOf(seps[0].char) + 1);\r\n if (hh.length === 2) {\r\n mm = oldVal.substring(oldVal.length - 5, oldVal.length - 3);\r\n } else if (mm.length < 2) {\r\n $(this).val(oldVal);\r\n return;\r\n }\r\n result = hh + \":\" + mm + \" \" + oldVal.substring(oldVal.length - 2);\r\n //} else if (newValLength === 4 && newValHasSep1) {\r\n } else if (newValLength > 3 && newValHasSep1) {\r\n var hh = newVal.substring(0, newVal.indexOf(seps[0].char));\r\n var mm = \"\";\r\n var ampm = \" \";\r\n if (newValLength === 4) {\r\n mm = newVal.substring(newVal.indexOf(seps[0].char) + 1);\r\n } else if (newValLength === 5) {\r\n mm = newVal.substring(newVal.indexOf(seps[0].char) + 1, newVal.indexOf(seps[0].char) + 3);\r\n } else if (newValLength >= 6) {\r\n mm = newVal.substring(newVal.indexOf(seps[0].char) + 1, newVal.indexOf(seps[0].char) + 3);\r\n ampm = newVal.substring(newVal.indexOf(seps[0].char) + 3);\r\n }\r\n if (ampm.length === 1) {\r\n result = hh + \":\" + mm + \" \" + oldVal.substring(oldVal.length - 2);\r\n } else {\r\n result = hh + \":\" + mm + \" \" + ampm;\r\n }\r\n }\r\n\r\n } else {\r\n var newValHasSep2 = seps.length > 1 && newVal.indexOf(seps[1].char) >= 0;\r\n if (newValLength === 1 ||\r\n newValLength === 3 ||\r\n newValLength === 4 && newValHasSep1 ||\r\n newValLength === 5 && !newValHasSep1 ||\r\n newValLength === 6 && newValHasSep2 ||\r\n newValLength === 7 && newValHasSep2) {\r\n $(this).val(oldVal);\r\n return;\r\n }\r\n if (newValLength === 4 || newValLength === 6) {\r\n result = newVal.substring(0, 2) + seps[0].char + newVal.substring(2, 4);\r\n if (newValLength === 6) {\r\n result += seps[1].char + newVal.substring(4, 6);\r\n }\r\n } else {\r\n result = newVal + oldVal.substring(newVal.length, f.length);\r\n }\r\n }\r\n btnCtrl.settings.value = result;\r\n $(this).val(result);\r\n $btnCtrl.change();\r\n btnCtrl.settings.onChange(btnCtrl.settings.value);\r\n });\r\n $btnCtrl.append(tbxTime);\r\n if (!btnCtrl.settings.inputOnly) {\r\n $btnCtrl.append(timeObj);\r\n $btnCtrl.append(dialogArrow);\r\n $btnCtrl.append(button);\r\n }\r\n\r\n if (!$btnCtrl.hasClass(defaults.className)) {\r\n $btnCtrl.addClass(defaults.className);\r\n }\r\n\r\n this.isOpen = function () {\r\n return !(timeObj.css(\"display\") === \"none\");\r\n }\r\n this.open = function () {\r\n $(document).on(\"mouseup.\" + $btnCtrl.attr(\"id\"), function (e) {\r\n var container = $btnCtrl;\r\n if (!container.is(e.target) // if the target of the click isn't the container...\r\n && container.has(e.target).length === 0) {\r\n timeObj.hide();\r\n dialogArrow.hide();\r\n $(document).off(\"mouseup.\" + $btnCtrl.attr(\"id\"));\r\n }\r\n });\r\n if (btnCtrl.isOpen()) {\r\n return;\r\n }\r\n timeObj.find(\".timeSelect div.hour span\").text(btnCtrl.settings.value.substring(0, 2));\r\n timeObj.find(\".timeSelect div.minute span\").text(btnCtrl.settings.value.substring(3, 5));\r\n\r\n // calculate position of the control before showing.\r\n var ctrlTop = $btnCtrl.offset().top;\r\n var bodyHeight = $(\"body\").height();\r\n if (ctrlTop < bodyHeight / 2) {\r\n dialogArrow.css({\r\n \"top\": \"3.4em\",\r\n \"margin-left\": \"5.8em\"\r\n });\r\n timeObj.css({\r\n \"top\": \"4.4em\",\r\n \"margin-left\": \"-2.5em\"\r\n });\r\n } else {\r\n dialogArrow.css({\r\n \"top\": \"0\",\r\n \"margin-left\": \"6.8em\"\r\n });\r\n timeObj.css({\r\n \"top\": \"-25.11em\",\r\n \"margin-left\": \"0\"\r\n });\r\n }\r\n timeObj.css(\"z-index\", \"999\");\r\n\r\n timeObj.show();\r\n dialogArrow.show();\r\n }\r\n this.close = function () {\r\n $(document).off(\"mouseup.\" + $btnCtrl.attr(\"id\"));\r\n lastInput = null;\r\n timeObj.hide();\r\n dialogArrow.hide();\r\n }\r\n\r\n this.getValue = function () {\r\n return btnCtrl.settings.value;\r\n }\r\n\r\n this.setValue = function (value) {\r\n var f = btnCtrl.settings.format;\r\n btnCtrl.settings.value = f.replace(\"HH\", value.substring(0,2)).replace(\"mm\", value.substring(3,5));\r\n tbxTime.val(btnCtrl.settings.value);\r\n }\r\n\r\n this.isEnabled = function () {\r\n return $btnCtrl.isEnabled();\r\n }\r\n\r\n this.disable = function () {\r\n $(el).disable();\r\n }\r\n\r\n this.enable = function () {\r\n $(el).enable();\r\n }\r\n\r\n this.setEnabled = function (value) {\r\n var disabled = \"imatisTimePickerDisabled\";\r\n if (value) {\r\n if ($btnCtrl.hasClass(disabled)) {\r\n $btnCtrl.removeClass(disabled);\r\n }\r\n } else {\r\n if (!$btnCtrl.hasClass(disabled)) {\r\n $btnCtrl.addClass(disabled);\r\n }\r\n }\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n\r\n if (btnCtrl.settings.isDisabled) {\r\n this.disable();\r\n this.setEnabled(false);\r\n }\r\n\r\n $btnCtrl.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if ($btnCtrl.isDisabled() || !$btnCtrl.isEnabled()) {\r\n return false;\r\n }\r\n $btnCtrl.trigger({\r\n type: \"clickSafe\",\r\n message: \"This click event not fires if the control is disabled.\",\r\n time: new Date()\r\n });\r\n return true;\r\n });\r\n\r\n return this;\r\n }\r\n $.fn.imatisTimePicker = function (options) {\r\n var dKey = \"imatisTimePicker\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisTimePicker(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisTimePicker = function (id) {\r\n var dKey = \"imatisTimePicker\";\r\n this.getValue = function () {\r\n return $(\"#\" + id).data(dKey).getValue();\r\n }\r\n this.setValue = function (value) {\r\n $(\"#\" + id).data(dKey).setValue(value);\r\n }\r\n this.isEnabled = function () {\r\n return $(\"#\" + id).data(dKey).isEnabled();\r\n }\r\n this.setEnabled = function (value) {\r\n if (value) {\r\n $(\"#\" + id).data(dKey).enable();\r\n } else {\r\n $(\"#\" + id).data(dKey).disable();\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n // End Time picker control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2015\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function ($) {\r\n // <====================\r\n // UpDown control\r\n $.imatisUpDown = function (el, options) {\r\n var $udCtrl = $(el), udCtrl = this;\r\n $(el).empty();\r\n var defaults = {\r\n className: \"ih5 upDownCtrl\",\r\n isDisabled: false,\r\n minValue: undefined,\r\n maxValue: undefined,\r\n stepValue: 1,\r\n value: !$.isUndefinedOrNull($udCtrl.attr(\"value\")) ? $udCtrl.attr(\"value\") : \"\",\r\n tabindex: !$.isUndefinedOrNull($udCtrl.attr(\"tabindex\")) ? $udCtrl.attr(\"tabindex\") : \"10\",\r\n onChange: function () { }\r\n }\r\n\r\n var settings = {};\r\n udCtrl.init = function () {\r\n settings = $.extend({}, defaults, options);\r\n }\r\n udCtrl.init();\r\n $udCtrl.removeAttr(\"tabindex\");\r\n\r\n var content = \"
      \" +\r\n \"\" +\r\n \"
      \";\r\n\r\n $udCtrl.append(content);\r\n\r\n if (!$udCtrl.hasClass(defaults.className)) {\r\n $udCtrl.addClass(defaults.className);\r\n }\r\n var tbxValue = $udCtrl.find(\"#tbxValue\");\r\n tbxValue.on(\"keypress\", function (event) {\r\n return regexValidator.ValidateKey(event, \"^-?[0-9\\-]\\d*(\\.\\d+)?$\");\r\n });\r\n tbxValue.on(\"change\", function (event) {\r\n var currValue = tbxValue.val();\r\n var minValue = settings.minValue;\r\n var maxValue = settings.maxValue;\r\n if (currValue !== \"\" && $.isNumeric(currValue)) {\r\n if (Number(currValue) < minValue) {\r\n tbxValue.val(minValue);\r\n } else if (Number(currValue) > maxValue) {\r\n tbxValue.val(maxValue);\r\n }\r\n }\r\n $udCtrl.change(); // Call Change event.\r\n settings.onChange(udCtrl.getValue());\r\n });\r\n\r\n var btnDown = $udCtrl.find(\"#btnDown\");\r\n btnDown.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (btnDown.isDisabled()) {\r\n return false;\r\n }\r\n var currValue = tbxValue.val();\r\n var minValue = settings.minValue;\r\n if (typeof currValue === \"undefined\" || currValue === \"\") {\r\n currValue = !$.isUndefinedOrNull(minValue) ? \"\" : -1;\r\n } else if ($.isNumeric(currValue)) {\r\n if (!$.isUndefinedOrNull(minValue) && Number(currValue) < minValue) {\r\n tbxValue.val(\"\");\r\n $udCtrl.change(); // Call Change event.\r\n settings.onChange(udCtrl.getValue());\r\n return true;\r\n }\r\n\r\n var stepValue = settings.stepValue;\r\n currValue = Number(currValue) - stepValue;\r\n if (typeof minValue === \"undefined\") {\r\n if (currValue === -1) {\r\n currValue = \"\";\r\n }\r\n } else {\r\n if (currValue <= minValue) {\r\n currValue = minValue;\r\n } //else if (currValue < minValue) {\r\n // currValue = \"\";\r\n //}\r\n }\r\n if (!$.isUndefinedOrNull(currValue) && currValue !== \"\" && Number(currValue) && (stepValue % 1 !== 0)) {\r\n currValue = currValue.toFixed(stepValue.toString().split(\".\")[1].length);\r\n }\r\n }\r\n tbxValue.val(currValue);\r\n $udCtrl.change(); // Call Change event.\r\n settings.onChange(udCtrl.getValue());\r\n return true;\r\n });\r\n var btnUp = $udCtrl.find(\"#btnUp\");\r\n btnUp.on(\"ontouchend\" in document.documentElement ? \"touchend\" : \"click\", function (e) {\r\n if (btnUp.isDisabled()) {\r\n return false;\r\n }\r\n var minValue = settings.minValue;\r\n var currValue = tbxValue.val();\r\n if (typeof currValue === \"undefined\" || currValue === \"\") {\r\n currValue = !$.isUndefinedOrNull(minValue) ? minValue : 0;\r\n } else if ($.isNumeric(currValue)) {\r\n var maxValue = settings.maxValue;\r\n if (typeof maxValue !== \"undefined\" && maxValue !== null && Number(currValue) === maxValue) {\r\n return true;\r\n }\r\n currValue = Number(currValue) + settings.stepValue;\r\n //if (currValue === 0) { // Must accept 0. How to also accept empty value????\r\n // currValue = \"\";\r\n //}\r\n var stepValue = settings.stepValue;\r\n if (currValue !== \"\" && Number(currValue) && (stepValue % 1 !== 0)) {\r\n currValue = currValue.toFixed(stepValue.toString().split(\".\")[1].length);\r\n }\r\n }\r\n tbxValue.val(currValue);\r\n $udCtrl.change(); // Call Change event.\r\n settings.onChange(udCtrl.getValue());\r\n return true;\r\n });\r\n\r\n this.getValue = function () {\r\n return $udCtrl.find(\"#tbxValue\").val();\r\n }\r\n\r\n this.setValue = function (value) {\r\n $udCtrl.find(\"#tbxValue\").val(value);\r\n }\r\n\r\n this.setStepValue = function (value) {\r\n settings.stepValue = value;\r\n }\r\n this.isEnabled = function () {\r\n return $udCtrl.isEnabled();\r\n }\r\n this.setEnabled = function (value) {\r\n var disabledDown = \"upDownLeftBtnDisabled\";\r\n var disabledUp = \"upDownRightBtnDisabled\";\r\n var down = $udCtrl.find(\"#btnDown\");\r\n var up = $udCtrl.find(\"#btnUp\");\r\n\r\n if (value) {\r\n if (down.hasClass(disabledDown)) {\r\n down.removeClass(disabledDown);\r\n }\r\n if (up.hasClass(disabledUp)) {\r\n up.removeClass(disabledUp);\r\n }\r\n } else {\r\n if (!down.hasClass(disabledDown)) {\r\n down.addClass(disabledDown);\r\n }\r\n if (!up.hasClass(disabledUp)) {\r\n up.addClass(disabledUp);\r\n }\r\n }\r\n }\r\n\r\n this.on = function (event, func) {\r\n $(el).off(event);\r\n return $(el).on(event, func);\r\n }\r\n this.off = function (event, func) {\r\n return $(el).off(event, func);\r\n }\r\n return this;\r\n }\r\n $.fn.imatisUpDown = function (options) {\r\n var dKey = \"imatisUpDown\";\r\n if (typeof $(this).data(dKey) === \"undefined\") {\r\n // ReSharper disable once InconsistentNaming\r\n var plugin = new $.imatisUpDown(this, options);\r\n $(this).data(dKey, plugin);\r\n }\r\n return $(this).data(dKey);\r\n };\r\n\r\n window.imatisUpDown = function (id) {\r\n var dKey = \"imatisUpDown\";\r\n this.getValue = function () {\r\n return $(\"#\" + id).data(dKey).getValue();\r\n }\r\n this.setValue = function (value) {\r\n $(\"#\" + id).data(dKey).setValue(value);\r\n }\r\n this.setStepValue = function (value) {\r\n $(\"#\" + id).data(dKey).setStepValue(value);\r\n }\r\n this.isEnabled = function () {\r\n return !$(\"#\" + id).data(dKey).isEnabled;\r\n }\r\n this.setEnabled = function (value) {\r\n $(\"#\" + id).data(dKey).setEnabled(value);\r\n }\r\n return this;\r\n };\r\n\r\n // End UpDown control\r\n // ========================>\r\n})(jQuery);","/*\r\n* IMATIS Html5 library - A HTML5 based controls.\r\n* Copyright © IMATIS Corporation 2017\r\n* \r\n* This source is subject to the IMATIS License Agreement.\r\n*/\r\n(function () {\r\n window.utils = {\r\n base64: {\r\n _keyStr: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\",\r\n encode: function (e) {\r\n var t = \"\";\r\n var n, r, i, s, o, u, a;\r\n var f = 0;\r\n e = this._utf8_encode(e);\r\n while (f < e.length) {\r\n n = e.charCodeAt(f++);\r\n r = e.charCodeAt(f++);\r\n i = e.charCodeAt(f++);\r\n s = n >> 2;\r\n o = (n & 3) << 4 | r >> 4;\r\n u = (r & 15) << 2 | i >> 6;\r\n a = i & 63;\r\n if (isNaN(r)) {\r\n u = a = 64;\r\n } else if (isNaN(i)) {\r\n a = 64;\r\n }\r\n t = t +\r\n this._keyStr.charAt(s) +\r\n this._keyStr.charAt(o) +\r\n this._keyStr.charAt(u) +\r\n this._keyStr.charAt(a);\r\n }\r\n return t;\r\n },\r\n decode: function (e) {\r\n var t = \"\";\r\n var n, r, i;\r\n var s, o, u, a;\r\n var f = 0;\r\n e = e.replace(/[^A-Za-z0-9+/=]/g, \"\");\r\n while (f < e.length) {\r\n s = this._keyStr.indexOf(e.charAt(f++));\r\n o = this._keyStr.indexOf(e.charAt(f++));\r\n u = this._keyStr.indexOf(e.charAt(f++));\r\n a = this._keyStr.indexOf(e.charAt(f++));\r\n n = s << 2 | o >> 4;\r\n r = (o & 15) << 4 | u >> 2;\r\n i = (u & 3) << 6 | a;\r\n t = t + String.fromCharCode(n);\r\n if (u !== 64) {\r\n t = t + String.fromCharCode(r);\r\n }\r\n if (a !== 64) {\r\n t = t + String.fromCharCode(i);\r\n }\r\n }\r\n t = this._utf8_decode(t);\r\n return t;\r\n },\r\n _utf8_encode: function (e) {\r\n e = e.replace(/rn/g, \"n\");\r\n var t = \"\";\r\n for (var n = 0; n < e.length; n++) {\r\n var r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n } else if (r > 127 && r < 2048) {\r\n t += String.fromCharCode(r >> 6 | 192);\r\n t += String.fromCharCode(r & 63 | 128);\r\n } else {\r\n t += String.fromCharCode(r >> 12 | 224);\r\n t += String.fromCharCode(r >> 6 & 63 | 128);\r\n t += String.fromCharCode(r & 63 | 128);\r\n }\r\n }\r\n return t;\r\n },\r\n _utf8_decode: function (e) {\r\n var t = \"\";\r\n var n = 0;\r\n var r, c2, c3;\r\n while (n < e.length) {\r\n r = e.charCodeAt(n);\r\n if (r < 128) {\r\n t += String.fromCharCode(r);\r\n n++;\r\n } else if (r > 191 && r < 224) {\r\n c2 = e.charCodeAt(n + 1);\r\n t += String.fromCharCode((r & 31) << 6 | c2 & 63);\r\n n += 2;\r\n } else {\r\n c2 = e.charCodeAt(n + 1);\r\n c3 = e.charCodeAt(n + 2);\r\n t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63);\r\n n += 3;\r\n }\r\n }\r\n return t;\r\n }\r\n }\r\n };\r\n\r\n})();"],"sourceRoot":""}