diff --git a/build/dat.gui.js.map b/build/dat.gui.js.map
index 257430b..c6f4585 100644
--- a/build/dat.gui.js.map
+++ b/build/dat.gui.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 195a25c62d8afa55cef6","webpack:///../index.js","webpack:///./dat/index.js","webpack:///./dat/color/Color.js","webpack:///./dat/color/interpret.js","webpack:///./dat/color/toString.js","webpack:///./dat/utils/common.js","webpack:///./dat/color/math.js","webpack:///./dat/controllers/Controller.js","webpack:///./dat/controllers/BooleanController.js","webpack:///./dat/dom/dom.js","webpack:///./dat/controllers/OptionController.js","webpack:///./dat/controllers/StringController.js","webpack:///./dat/controllers/NumberController.js","webpack:///./dat/controllers/NumberControllerBox.js","webpack:///./dat/controllers/NumberControllerSlider.js","webpack:///./dat/utils/css.js","webpack:///./dat/controllers/NumberControllerSlider.scss?845f","webpack:///./dat/controllers/NumberControllerSlider.scss","webpack:///../~/css-loader/lib/css-base.js","webpack:///../~/style-loader/addStyles.js","webpack:///./dat/controllers/FunctionController.js","webpack:///./dat/controllers/ColorController.js","webpack:///./dat/gui/GUI.js","webpack:///./dat/gui/saveDialogue.html","webpack:///./dat/gui/style.scss?5a0d","webpack:///./dat/gui/style.scss","webpack:///./dat/controllers/ControllerFactory.js","webpack:///./dat/utils/requestAnimationFrame.js","webpack:///./dat/dom/CenteredDiv.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,OAAM,CAAC,OAAO,GAAG,mBAAO,CAAC,CAAiB,CAAC,C;;;;;;;;ACA3C,OAAM,CAAC,OAAO,GAAG;AACf,QAAK,EAAE;AACL,UAAK,EAAE,mBAAO,CAAC,CAAe,CAAC;AAC/B,SAAI,EAAE,mBAAO,CAAC,CAAc,CAAC;AAC7B,cAAS,EAAE,mBAAO,CAAC,CAAmB,CAAC;IACxC;;AAED,cAAW,EAAE;AACX,eAAU,EAAE,mBAAO,CAAC,CAA0B,CAAC;AAC/C,sBAAiB,EAAE,mBAAO,CAAC,CAAiC,CAAC;AAC7D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,wBAAmB,EAAE,mBAAO,CAAC,EAAmC,CAAC;AACjE,2BAAsB,EAAE,mBAAO,CAAC,EAAsC,CAAC;AACvE,uBAAkB,EAAE,mBAAO,CAAC,EAAkC,CAAC;AAC/D,oBAAe,EAAE,mBAAO,CAAC,EAA+B,CAAC;IAC1D;;AAED,MAAG,EAAE;AACH,QAAG,EAAE,mBAAO,CAAC,CAAW,CAAC;IAC1B;;AAED,MAAG,EAAE;AACH,QAAG,EAAE,mBAAO,CAAC,EAAW,CAAC;IAC1B;;AAED,MAAG,EAAE,mBAAO,CAAC,EAAW,CAAC;EAC1B,C;;;;;;;;;;;;;;;;;;;;;;;;;;;sCCfqB,CAAa;;;;iCAClB,CAAQ;;;;qCACC,CAAY;;;;wCACnB,CAAiB;;;;KAE9B,KAAK;AACE,YADP,KAAK,GACK;2BADV,KAAK;;AAEP,SAAI,CAAC,OAAO,GAAG,uBAAU,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;;AAEhD,SAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AAC1B,aAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;MACxD;;AAED,SAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC;;AATG,QAAK,WAWT,QAAQ,uBAAG;AACT,YAAO,sBAAc,IAAI,CAAC,CAAC;IAC5B;;AAbG,QAAK,WAeT,UAAU,yBAAG;AACX,YAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C;;UAjBG,KAAK;;;AAoBX,MAAK,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE;AACnE,OAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACjC,UAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,kBAAK,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC1F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACxC,8BAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,kBAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM;AACL,WAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC1C;EACF,CAAC;;AAEF,MAAK,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE;AACrC,OAAM,MAAM,GAAG,kBAAK,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;;AAE1D,4BAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EACzB;AACE,MAAC,EAAE,MAAM,CAAC,CAAC;AACX,MAAC,EAAE,MAAM,CAAC,CAAC;IACZ,CACF,CAAC;;AAEF,OAAI,CAAC,yBAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,UAAK,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,yBAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9C,UAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB;EACF,CAAC;;AAEF,MAAK,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;;AAE9D,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;;AAE5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAEzC,OAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE;AAC1C,MAAG,EAAE,eAAW;AACd,YAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvB;;AAED,MAAG,EAAE,aAAS,CAAC,EAAE;AACf,SAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB;EACF,CAAC,CAAC;;AAEH,OAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE;AAC5C,MAAG,EAAE,eAAW;AACd,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACjC,WAAI,CAAC,OAAO,CAAC,GAAG,GAAG,kBAAK,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAC5D;;AAED,YAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB;;AAED,MAAG,EAAE,aAAS,CAAC,EAAE;AACf,SAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,SAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IACtB;EACF,CAAC,CAAC;;AAEH,UAAS,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE;AAChE,SAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;AACvC,QAAG,EAAE,eAAW;AACd,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,gBAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC;;AAED,YAAK,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;;AAEzD,cAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;MAChC;;AAED,QAAG,EAAE,aAAS,CAAC,EAAE;AACf,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,cAAK,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACzD,aAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B;;AAED,WAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ;;AAED,UAAS,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7C,SAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;AACvC,QAAG,EAAE,eAAW;AACd,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,gBAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC;;AAED,YAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;;AAE3B,cAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;MAChC;;AAED,QAAG,EAAE,aAAS,CAAC,EAAE;AACf,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,cAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B;;AAED,WAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ;;sBAEc,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;qCCrIC,CAAY;;;;wCACd,CAAiB;;;;AAEpC,KAAM,eAAe,GAAG;;AAEtB;AACE,SAAM,EAAE,yBAAO,QAAQ;AACvB,cAAW,EAAE;AACX,mBAAc,EAAE;AACd,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAClE,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ,CACX,IAAI,GACJ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GACvC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GACvC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;UAC9C,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,iBAAY,EAAE;AACZ,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACjD,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;UAC5C,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;UACvB,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACrF,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;UACvB,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;IACF;EACF;;;AAGD;AACE,SAAM,EAAE,yBAAO,QAAQ;;AAEvB,cAAW,EAAE;;AAEX,QAAG,EAAE;AACH,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ;AACb,yBAAc,EAAE,KAAK;UACtB,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,KAAK,CAAC,GAAG,CAAC;QAClB;MACF;;IAEF;;EAEF;;;AAGD;AACE,SAAM,EAAE,yBAAO,OAAO;AACtB,cAAW,EAAE;AACX,cAAS,EAAE;AACT,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;UACf,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC;MACF;;AAED,eAAU,EAAE;AACV,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACxC,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;UACf,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C;MACF;IACF;EACF;;;AAGD;AACE,SAAM,EAAE,yBAAO,QAAQ;AACvB,cAAW,EAAE;;AAEX,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;IACF;EACF,CACF,CAAC;;AAEF,KAAI,MAAM,aAAC;AACX,KAAI,QAAQ,aAAC;;AAEb,KAAM,SAAS,GAAG,SAAZ,SAAS,GAAc;AAC3B,WAAQ,GAAG,KAAK,CAAC;;AAEjB,OAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,yBAAO,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACjF,4BAAO,IAAI,CAAC,eAAe,EAAE,UAAS,MAAM,EAAE;AAC5C,SAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC3B,gCAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAS,UAAU,EAAE,cAAc,EAAE;AACnE,eAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEnC,aAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE;AAC1C,mBAAQ,GAAG,MAAM,CAAC;AAClB,iBAAM,CAAC,cAAc,GAAG,cAAc,CAAC;AACvC,iBAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,kBAAO,yBAAO,KAAK,CAAC;UACrB;QACF,CAAC,CAAC;;AAEH,cAAO,yBAAO,KAAK,CAAC;MACrB;IACF,CAAC,CAAC;;AAEH,UAAO,QAAQ,CAAC;EACjB,CAAC;;sBAEa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;wCC9RL,CAAiB;;;;sBAErB,UAAS,KAAK,EAAE;AAC7B,OAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,yBAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAChD,SAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAC,GAAG,GAAG,GAAG,CAAC,CAAC;MACb;AACD,YAAO,GAAG,GAAG,CAAC,CAAC;IAChB;;AAED,UAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;EACpH;;;;;;;;;;;;;;;;;;;;;;;;ACZD,KAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACzC,KAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;AAQxC,KAAM,MAAM,GAAG;AACb,QAAK,EAAE,EAAE;;AAET,SAAM,EAAE,gBAAS,MAAM,EAAE;AACvB,SAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAS,GAAG,EAAE;AACpD,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/B,iBAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;UACxB;QACF;MACF,EAAE,IAAI,CAAC,CAAC;;AAET,YAAO,MAAM,CAAC;IACf;;AAED,WAAQ,EAAE,kBAAS,MAAM,EAAE;AACzB,SAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAS,GAAG,EAAE;AACpD,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACjC,iBAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;UACxB;QACF;MACF,EAAE,IAAI,CAAC,CAAC;;AAET,YAAO,MAAM,CAAC;IACf;;AAED,UAAO,EAAE,mBAAW;AAClB,SAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,YAAO,YAAW;AAChB,WAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,YAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,aAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC;AACD,cAAO,IAAI,CAAC,CAAC,CAAC,CAAC;MAChB,CAAC;IACH;;AAED,OAAI,EAAE,cAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC9B,SAAI,CAAC,GAAG,EAAE;AACR,cAAO;MACR;;AAED,SAAI,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvD,UAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;MACzB,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;;AACxC,WAAI,GAAG,aAAC;AACR,WAAI,CAAC,aAAC;AACN,YAAK,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC5C,aAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAC/D,kBAAO;UACR;QACF;MACF,MAAM;AACL,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AACjD,kBAAO;UACR;QACF;MACF;IACF;;AAED,QAAK,EAAE,eAAS,GAAG,EAAE;AACnB,eAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpB;;AAED,UAAO,EAAE,iBAAS,GAAG,EAAE;AACrB,SAAI,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACtC,YAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B;;AAED,cAAW,EAAE,qBAAS,GAAG,EAAE;AACzB,YAAO,GAAG,KAAK,SAAS,CAAC;IAC1B;;AAED,SAAM,EAAE,gBAAS,GAAG,EAAE;AACpB,YAAO,GAAG,KAAK,IAAI,CAAC;IACrB;;AAED,QAAK;;;;;;;;;;MAAE,UAAS,GAAG,EAAE;AACnB,YAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB;;AAED,UAAO,EAAE,KAAK,CAAC,OAAO,IAAI,UAAS,GAAG,EAAE;AACtC,YAAO,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC;IAClC;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IACxB;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;IACzB;;AAED,YAAS,EAAE,mBAAS,GAAG,EAAE;AACvB,YAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC;IACtC;;AAED,aAAU,EAAE,oBAAS,GAAG,EAAE;AACxB,YAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAC;IACpE;;EAEF,CAAC;;sBAEa,MAAM;;;;;;;;;;;;;;;;;;;;;;;ACtHrB,KAAI,YAAY,aAAC;;AAEjB,KAAM,SAAS,GAAG;AAChB,aAAU,EAAE,oBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,SAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;;AAElC,SAAM,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACtC,SAAM,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACxB,SAAM,CAAC,GAAG,CAAC,IAAI,GAAG,GAAI,CAAC,GAAG,CAAC,CAAE,CAAC;AAC9B,SAAM,CAAC,GAAG,CAAC,IAAI,GAAG,GAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAE,CAAC;;AAEtC,SAAM,CAAC,GAAG,CACR,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACV,CAAC,EAAE,CAAC,CAAC;;AAEN,YAAO;AACL,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACb,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACb,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;MACd,CAAC;IACH;;AAED,aAAU,EAAE,oBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,SAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,SAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,SAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;AACxB,SAAI,CAAC,aAAC;AACN,SAAI,CAAC,aAAC;;AAEN,SAAI,GAAG,KAAK,CAAC,EAAE;AACb,QAAC,GAAG,KAAK,GAAG,GAAG,CAAC;MACjB,MAAM;AACL,cAAO;AACL,UAAC,EAAE,GAAG;AACN,UAAC,EAAE,CAAC;AACJ,UAAC,EAAE,CAAC;QACL,CAAC;MACH;;AAED,SAAI,CAAC,KAAK,GAAG,EAAE;AACb,QAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACrB,MAAM,IAAI,CAAC,KAAK,GAAG,EAAE;AACpB,QAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACzB,MAAM;AACL,QAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACzB;AACD,MAAC,IAAI,CAAC,CAAC;AACP,SAAI,CAAC,GAAG,CAAC,EAAE;AACT,QAAC,IAAI,CAAC,CAAC;MACR;;AAED,YAAO;AACL,QAAC,EAAE,CAAC,GAAG,GAAG;AACV,QAAC,EAAE,CAAC;AACJ,QAAC,EAAE,GAAG,GAAG,GAAG;MACb,CAAC;IACH;;AAED,aAAU,EAAE,oBAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC5B,SAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,QAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAO,GAAG,CAAC;IACZ;;AAED,qBAAkB,EAAE,4BAAS,GAAG,EAAE,cAAc,EAAE;AAChD,YAAQ,GAAG,IAAK,cAAc,GAAG,CAAE,GAAI,IAAI,CAAC;IAC7C;;AAED,qBAAkB,EAAE,4BAAS,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE;AACvD,YAAO,KAAK,KAAK,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC,GAAI,GAAG,GAAG,EAAE,IAAI,IAAI,YAAY,CAAE,CAAC;IACvF;EACF,CAAC;;sBAEa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KCvElB,UAAU;AACH,YADP,UAAU,CACF,MAAM,EAAE,QAAQ,EAAE;2BAD1B,UAAU;;AAEZ,SAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;;;;;;AAMrC,SAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;;;;;AAMhD,SAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;;;;;AAMrB,SAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;;;;;AAOzB,SAAI,CAAC,UAAU,GAAG,SAAS,CAAC;;;;;;;AAO5B,SAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnC;;;;;;;;;;;AAnCG,aAAU,WA6Cd,QAAQ,qBAAC,GAAG,EAAE;AACZ,SAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,YAAO,IAAI,CAAC;IACb;;;;;;;;;;;;AAhDG,aAAU,WA2Dd,cAAc,2BAAC,GAAG,EAAE;AAClB,SAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;AAC5B,YAAO,IAAI,CAAC;IACb;;;;;;;;AA9DG,aAAU,WAqEd,QAAQ,qBAAC,QAAQ,EAAE;AACjB,SAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACtC,SAAI,IAAI,CAAC,UAAU,EAAE;AACnB,WAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;MACtC;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAO,IAAI,CAAC;IACb;;;;;;;;AA7EG,aAAU,WAoFd,QAAQ,uBAAG;AACT,YAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC;;;;;;;;AAtFG,aAAU,WA6Fd,aAAa,4BAAG;AACd,YAAO,IAAI,CAAC;IACb;;;;;;AA/FG,aAAU,WAoGd,UAAU,yBAAG;AACX,YAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9C;;UAtGG,UAAU;;;sBAyGD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCjHF,CAAc;;;;mCACrB,CAAY;;;;;;;;;;;;;;KAWtB,iBAAiB;aAAjB,iBAAiB;;AACV,YADP,iBAAiB,CACT,MAAM,EAAE,QAAQ,EAAE;2BAD1B,iBAAiB;;AAEnB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAM,KAAK,GAAG,IAAI,CAAC;AACnB,SAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAE9B,SAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,SAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;;AAEjD,cAAS,QAAQ,GAAG;AAClB,YAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;MAC/B;;AAED,yBAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;;AAErD,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;AAG7C,SAAI,CAAC,aAAa,EAAE,CAAC;IACtB;;AApBG,oBAAiB,WAsBrB,QAAQ,qBAAC,CAAC,EAAE;AACV,SAAM,QAAQ,GAAG,sBAAM,QAAQ,YAAC,CAAC,CAAC,CAAC;AACnC,SAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,WAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACnD;AACD,SAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,YAAO,QAAQ,CAAC;IACjB;;AA7BG,oBAAiB,WA+BrB,aAAa,4BAAG;AACd,SAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;AAC5B,WAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnD,WAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;MAChC,MAAM;AACL,WAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;MACjC;;AAED,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UAxCG,iBAAiB;;;sBA2CR,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;wCCvDb,CAAiB;;;;AAEpC,KAAM,SAAS,GAAG;AAChB,eAAY,EAAE,CAAC,QAAQ,CAAC;AACxB,gBAAa,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC;AAC1E,mBAAgB,EAAE,CAAC,SAAS,CAAC;EAC9B,CAAC;;AAEF,KAAM,aAAa,GAAG,EAAE,CAAC;AACzB,0BAAO,IAAI,CAAC,SAAS,EAAE,UAAS,CAAC,EAAE,CAAC,EAAE;AACpC,4BAAO,IAAI,CAAC,CAAC,EAAE,UAAS,CAAC,EAAE;AACzB,kBAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;;AAEH,KAAM,gBAAgB,GAAG,iBAAiB,CAAC;;AAE3C,UAAS,gBAAgB,CAAC,GAAG,EAAE;AAC7B,OAAI,GAAG,KAAK,GAAG,IAAI,yBAAO,WAAW,CAAC,GAAG,CAAC,EAAE;AAC1C,YAAO,CAAC,CAAC;IACV;;AAED,OAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;;AAE1C,OAAI,CAAC,yBAAO,MAAM,CAAC,KAAK,CAAC,EAAE;AACzB,YAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B;;;;AAID,UAAO,CAAC,CAAC;EACV;;;;;;AAMD,KAAM,GAAG,GAAG;;;;;;;AAOV,iBAAc,EAAE,wBAAS,IAAI,EAAE,UAAU,EAAE;AACzC,SAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,OAAO;;AAE3D,SAAI,CAAC,aAAa,GAAG,UAAU,GAAG,YAAW;AAC3C,cAAO,KAAK,CAAC;MACd,GAAG,YAAW,EACd,CAAC;;AAEF,SAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AACxD,SAAI,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1D,SAAI,CAAC,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;IAC/C;;;;;;;;AAQD,iBAAc,EAAE,wBAAS,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE;AACxC,SAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,SAAI,UAAU,GAAG,GAAG,CAAC;;AAErB,SAAI,yBAAO,WAAW,CAAC,UAAU,CAAC,EAAE;AAClC,iBAAU,GAAG,IAAI,CAAC;MACnB;;AAED,SAAI,yBAAO,WAAW,CAAC,QAAQ,CAAC,EAAE;AAChC,eAAQ,GAAG,IAAI,CAAC;MACjB;;AAED,SAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;;AAEjC,SAAI,UAAU,EAAE;AACd,WAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACpB,WAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;MACtB;AACD,SAAI,QAAQ,EAAE;AACZ,WAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACnB,WAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;MACvB;IACF;;;;;;;;AAQD,YAAS,EAAE,mBAAS,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE;AAC9C,SAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;AAC1B,SAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AAC3C,SAAI,CAAC,SAAS,EAAE;AACd,aAAM,IAAI,KAAK,CAAC,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC;MAChE;AACD,SAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC5C,aAAQ,SAAS;AACjB,YAAK,aAAa;AAChB;AACE,eAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAChD,eAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAChD,cAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EACnD,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,EACzD,CAAC;AACD,YAAC;AACD,kBAAO;AACP,kBAAO;AACP,gBAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACvC,iBAAM;UACP;AACH,YAAK,gBAAgB;AACnB;AACE,eAAM,IAAI,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,YAAY,CAAC;AACvD,oCAAO,QAAQ,CAAC,MAAM,EAAE;AACtB,uBAAU,EAAE,IAAI;AAChB,oBAAO,EAAE,KAAK;AACd,mBAAM,EAAE,KAAK;AACb,qBAAQ,EAAE,KAAK;AACf,oBAAO,EAAE,KAAK;AACd,oBAAO,EAAE,SAAS;AAClB,qBAAQ,EAAE,SAAS;YACpB,CAAC,CAAC;AACH,eAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EACrC,MAAM,CAAC,UAAU,EAAE,MAAM,EACzB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAC7B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnC,iBAAM;UACP;AACH;AACE;AACE,cAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAAE,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;AAC7E,iBAAM;UACP;AAAA,MACF;AACD,8BAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB;;;;;;;;;AASD,OAAI,EAAE,cAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AACzC,SAAM,IAAI,GAAG,OAAO,IAAI,KAAK,CAAC;AAC9B,SAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,WAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;MAC1C,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,WAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;MACtC;AACD,YAAO,GAAG,CAAC;IACZ;;;;;;;;;AASD,SAAM,EAAE,gBAAS,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C,SAAM,IAAI,GAAG,OAAO,IAAI,KAAK,CAAC;AAC9B,SAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,WAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;MAC7C,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,WAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;MACtC;AACD,YAAO,GAAG,CAAC;IACZ;;;;;;;AAOD,WAAQ,EAAE,kBAAS,IAAI,EAAE,SAAS,EAAE;AAClC,SAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,WAAI,CAAC,SAAS,GAAG,SAAS,CAAC;MAC5B,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACvC,WAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3C,WAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;AACrC,gBAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,aAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5E;MACF;AACD,YAAO,GAAG,CAAC;IACZ;;;;;;;AAOD,cAAW,EAAE,qBAAS,IAAI,EAAE,SAAS,EAAE;AACrC,SAAI,SAAS,EAAE;AACb,WAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,aAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM;AACL,aAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC3C,aAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzC,aAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,kBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzB,eAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;UACpC;QACF;MACF,MAAM;AACL,WAAI,CAAC,SAAS,GAAG,SAAS,CAAC;MAC5B;AACD,YAAO,GAAG,CAAC;IACZ;;AAED,WAAQ,EAAE,kBAAS,IAAI,EAAE,SAAS,EAAE;AAClC,YAAO,IAAI,MAAM,CAAC,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAC1F;;;;;;AAMD,WAAQ,EAAE,kBAAS,IAAI,EAAE;AACvB,SAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAErC,YAAO,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GACjD,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAC7C,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GACvC,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GACxC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjC;;;;;;AAMD,YAAS,EAAE,mBAAS,IAAI,EAAE;AACxB,SAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAErC,YAAO,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAChD,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAC9C,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GACtC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GACzC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC;;;;;;AAMD,YAAS,EAAE,mBAAS,EAAE,EAAE;AACtB,SAAI,IAAI,GAAG,EAAE,CAAC;AACd,SAAM,MAAM,GAAG,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;AACjC,SAAI,IAAI,CAAC,YAAY,EAAE;AACrB,UAAG;AACD,eAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAC/B,eAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;AAC7B,aAAI,GAAG,IAAI,CAAC,YAAY,CAAC;QAC1B,QAAQ,IAAI,EAAE;MAChB;AACD,YAAO,MAAM,CAAC;IACf;;;;;;;AAOD,WAAQ,EAAE,kBAAS,IAAI,EAAE;AACvB,YAAO,IAAI,KAAK,QAAQ,CAAC,aAAa,KAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAE,CAAC;IACtE;;EAEF,CAAC;;sBAEa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCtRK,CAAc;;;;mCACrB,CAAY;;;;wCACT,CAAiB;;;;;;;;;;;;;;;;;;KAe9B,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;2BADhC,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAI,OAAO,GAAG,IAAI,CAAC;;AAEnB,SAAM,KAAK,GAAG,IAAI,CAAC;;;;;;AAMnB,SAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAEjD,SAAI,yBAAO,OAAO,CAAC,OAAO,CAAC,EAAE;;AAC3B,aAAM,GAAG,GAAG,EAAE,CAAC;AACf,kCAAO,IAAI,CAAC,OAAO,EAAE,UAAS,OAAO,EAAE;AACrC,cAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;UACxB,CAAC,CAAC;AACH,gBAAO,GAAG,GAAG,CAAC;;MACf;;AAED,8BAAO,IAAI,CAAC,OAAO,EAAE,UAAS,KAAK,EAAE,GAAG,EAAE;AACxC,WAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC7C,UAAG,CAAC,SAAS,GAAG,GAAG,CAAC;AACpB,UAAG,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjC,YAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;MACjC,CAAC,CAAC;;;AAGH,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,yBAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAW;AAC3C,WAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;AAC5D,YAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;MAC9B,CAAC,CAAC;;AAEH,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C;;AAtCG,mBAAgB,WAwCpB,QAAQ,qBAAC,CAAC,EAAE;AACV,SAAM,QAAQ,GAAG,sBAAM,QAAQ,YAAC,CAAC,CAAC,CAAC;;AAEnC,SAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,WAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACnD;AACD,YAAO,QAAQ,CAAC;IACjB;;AA/CG,mBAAgB,WAiDpB,aAAa,4BAAG;AACd,SAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtC,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UApDG,gBAAgB;;;sBAuDP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCxER,CAAc;;;;mCACrB,CAAY;;;;;;;;;;;;;;;KAYtB,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE;2BAD1B,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAM,KAAK,GAAG,IAAI,CAAC;;AAEnB,SAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;AAE1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAS,CAAC,EAAE;AAC5C,WAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACpB,aAAI,CAAC,IAAI,EAAE,CAAC;QACb;MACF,CAAC,CAAC;;AAGH,cAAS,QAAQ,GAAG;AAClB,YAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;MACrC;;AAED,cAAS,MAAM,GAAG;AAChB,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C;;AAhCG,mBAAgB,WAkCpB,aAAa,4BAAG;;;AAGd,SAAI,CAAC,oBAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,WAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;MACtC;AACD,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UAzCG,gBAAgB;;;sBA4CP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCzDR,CAAc;;;;wCAClB,CAAiB;;;;AAEpC,UAAS,WAAW,CAAC,CAAC,EAAE;AACtB,OAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACxB,OAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACxB,YAAO,EAAE,CAAC,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxC;;AAED,UAAO,CAAC,CAAC;EACV;;;;;;;;;;;;;;;;;KAgBK,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;2BADlC,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAM,OAAO,GAAG,MAAM,IAAI,EAAE,CAAC;;AAE7B,SAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AACzB,SAAI,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AACzB,SAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;;AAE3B,SAAI,yBAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACnC,WAAI,IAAI,CAAC,YAAY,KAAK,CAAC,EAAE;AAC3B,aAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACxB,MAAM;;AAEL,eAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;UACvG;MACF,MAAM;AACL,WAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;MAClC;;AAED,SAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD;;AAtBG,mBAAgB,WAwBpB,QAAQ,qBAAC,CAAC,EAAE;AACV,SAAI,EAAE,GAAG,CAAC,CAAC;;AAEX,SAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AAC/C,SAAE,GAAG,IAAI,CAAC,KAAK,CAAC;MACjB,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE;AACtD,SAAE,GAAG,IAAI,CAAC,KAAK,CAAC;MACjB;;AAED,SAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACvD,SAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;MACjD;;AAED,YAAO,sBAAM,QAAQ,YAAC,EAAE,CAAC,CAAC;IAC3B;;;;;;;;;;AAtCG,mBAAgB,WA+CpB,GAAG,gBAAC,CAAC,EAAE;AACL,SAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAO,IAAI,CAAC;IACb;;;;;;;;;;AAlDG,mBAAgB,WA2DpB,GAAG,gBAAC,CAAC,EAAE;AACL,SAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAO,IAAI,CAAC;IACb;;;;;;;;;;;;;AA9DG,mBAAgB,WA0EpB,IAAI,iBAAC,CAAC,EAAE;AACN,SAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,SAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,SAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,YAAO,IAAI,CAAC;IACb;;UA/EG,gBAAgB;;;sBAkFP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CC5GF,EAAoB;;;;mCACjC,CAAY;;;;wCACT,CAAiB;;;;AAEpC,UAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;AACvC,OAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrC,UAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;EAC1C;;;;;;;;;;;;;;;;;;;KAkBK,mBAAmB;aAAnB,mBAAmB;;AACZ,YADP,mBAAmB,CACX,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;2BADlC,mBAAmB;;AAErB,kCAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;;AAEhC,SAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;;AAEnC,SAAM,KAAK,GAAG,IAAI,CAAC;;;;;;AAMnB,SAAI,KAAK,aAAC;;AAEV,SAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;;AAI1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACjD,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAS,CAAC,EAAE;;AAE5C,WAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACpB,cAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,aAAI,CAAC,IAAI,EAAE,CAAC;AACZ,cAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACrC;MACF,CAAC,CAAC;;AAEH,cAAS,QAAQ,GAAG;AAClB,WAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,WAAI,CAAC,yBAAO,KAAK,CAAC,SAAS,CAAC,EAAE;AAC5B,cAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC3B;MACF;;AAED,cAAS,MAAM,GAAG;AAChB,eAAQ,EAAE,CAAC;AACX,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;AACtB,2BAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,2BAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACvC,YAAK,GAAG,CAAC,CAAC,OAAO,CAAC;MACnB;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;AACtB,WAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,OAAO,CAAC;AAC/B,YAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;;AAE9D,YAAK,GAAG,CAAC,CAAC,OAAO,CAAC;MACnB;;AAED,cAAS,SAAS,GAAG;AACnB,2BAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7C,2BAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;MAC1C;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C;;AAlEG,sBAAmB,WAoEvB,aAAa,4BAAG;AACd,SAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACtH,YAAO,4BAAM,aAAa,WAAE,CAAC;IAC9B;;UAvEG,mBAAmB;;;sBA0EV,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CCnGL,EAAoB;;;;mCACjC,CAAY;;;;qCACZ,EAAc;;;;mEACP,EAA+C;;;;AAEtE,UAAS,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9B,UAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;EAChD;;;;;;;;;;;;;;;;;;;;;KAoBK,sBAAsB;aAAtB,sBAAsB;;AACf,YADP,sBAAsB,CACd,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;2BAD1C,sBAAsB;;AAExB,kCAAM,MAAM,EAAE,QAAQ,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;;AAE1D,SAAM,KAAK,GAAG,IAAI,CAAC;;AAEnB,SAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClD,SAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;AAGlD,yBAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;;AAEtD,yBAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC1C,yBAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;;AAE7C,cAAS,WAAW,CAAC,CAAC,EAAE;AACtB,2BAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,2BAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;;AAEvC,kBAAW,CAAC,CAAC,CAAC,CAAC;MAChB;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;AACtB,QAAC,CAAC,cAAc,EAAE,CAAC;;AAEnB,WAAM,MAAM,GAAG,oBAAI,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACjD,WAAM,KAAK,GAAG,oBAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;AAE/C,YAAK,CAAC,QAAQ,CACZ,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAC3E,CAAC;;AAEF,cAAO,KAAK,CAAC;MACd;;AAED,cAAS,SAAS,GAAG;AACnB,2BAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7C,2BAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACzC,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjD,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD;;;;;;AA/CG,yBAAsB,WAiD1B,aAAa,4BAAG;AACd,SAAM,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACvE,SAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,YAAO,4BAAM,aAAa,WAAE,CAAC;IAC9B;;UArDG,sBAAsB;;;AA2D5B,uBAAsB,CAAC,gBAAgB,GAAG,YAAW;AACnD,yBAAI,MAAM,qDAAY,CAAC;EACxB,CAAC;;sBAEa,sBAAsB;;;;;;;;;;;;;;;;;;;;;;AC1FrC,OAAM,CAAC,OAAO,GAAG;AACf,OAAI,EAAE,cAAS,GAAG,EAAE,KAAK,EAAE;AACzB,SAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAC9B,SAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,SAAI,CAAC,IAAI,GAAG,UAAU,CAAC;AACvB,SAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AACxB,SAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,QAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD;;AAED,SAAM,EAAE,gBAAS,GAAG,EAAE,KAAK,EAAE;AAC3B,SAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAC9B,SAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,aAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;AAC3B,aAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;AACzB,QAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3D;EACF,C;;;;;;AC9BD;;AAEA;AACA;AACA;AACA;AACA,iDAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,iCAAgC,UAAU,EAAE;AAC5C,E;;;;;;ACpBA;AACA;;;AAGA;AACA,kPAAiP,oLAAoL,oDAAoD,gBAAgB,uBAAuB,2BAA2B,qBAAqB,qBAAqB,EAAE,gBAAgB,yBAAyB,2BAA2B,gBAAgB,wBAAwB,yBAAyB,+BAA+B,EAAE,sBAAsB,0BAA0B,uBAAuB,2BAA2B,2BAA2B,gBAAgB,iBAAiB,uBAAuB,qBAAqB,kBAAkB,iBAAiB,EAAE;;AAE59B;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;A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","file":"dat.gui.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dat\"] = factory();\n\telse\n\t\troot[\"dat\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \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\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 195a25c62d8afa55cef6\n **/","module.exports = require('./src/dat/index');\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!../index.js\n **/","module.exports = {\n color: {\n Color: require('./color/Color'),\n math: require('./color/math'),\n interpret: require('./color/interpret')\n },\n\n controllers: {\n Controller: require('./controllers/Controller'),\n BooleanController: require('./controllers/BooleanController'),\n OptionController: require('./controllers/OptionController'),\n StringController: require('./controllers/StringController'),\n NumberController: require('./controllers/NumberController'),\n NumberControllerBox: require('./controllers/NumberControllerBox'),\n NumberControllerSlider: require('./controllers/NumberControllerSlider'),\n FunctionController: require('./controllers/FunctionController'),\n ColorController: require('./controllers/ColorController')\n },\n\n dom: {\n dom: require('./dom/dom')\n },\n\n gui: {\n GUI: require('./gui/GUI')\n },\n\n GUI: require('./gui/GUI')\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/index.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport interpret from './interpret';\nimport math from './math';\nimport colorToString from './toString';\nimport common from '../utils/common';\n\nclass Color {\n constructor() {\n this.__state = interpret.apply(this, arguments);\n\n if (this.__state === false) {\n throw new Error('Failed to interpret color arguments');\n }\n\n this.__state.a = this.__state.a || 1;\n }\n\n toString() {\n return colorToString(this);\n }\n\n toOriginal() {\n return this.__state.conversion.write(this);\n }\n}\n\nColor.recalculateRGB = function(color, component, componentHexIndex) {\n if (color.__state.space === 'HEX') {\n color.__state[component] = math.component_from_hex(color.__state.hex, componentHexIndex);\n } else if (color.__state.space === 'HSV') {\n common.extend(color.__state, math.hsv_to_rgb(color.__state.h, color.__state.s, color.__state.v));\n } else {\n throw new Error('Corrupted color state');\n }\n};\n\nColor.recalculateHSV = function(color) {\n const result = math.rgb_to_hsv(color.r, color.g, color.b);\n\n common.extend(color.__state,\n {\n s: result.s,\n v: result.v\n }\n );\n\n if (!common.isNaN(result.h)) {\n color.__state.h = result.h;\n } else if (common.isUndefined(color.__state.h)) {\n color.__state.h = 0;\n }\n};\n\nColor.COMPONENTS = ['r', 'g', 'b', 'h', 's', 'v', 'hex', 'a'];\n\ndefineRGBComponent(Color.prototype, 'r', 2);\ndefineRGBComponent(Color.prototype, 'g', 1);\ndefineRGBComponent(Color.prototype, 'b', 0);\n\ndefineHSVComponent(Color.prototype, 'h');\ndefineHSVComponent(Color.prototype, 's');\ndefineHSVComponent(Color.prototype, 'v');\n\nObject.defineProperty(Color.prototype, 'a', {\n get: function() {\n return this.__state.a;\n },\n\n set: function(v) {\n this.__state.a = v;\n }\n});\n\nObject.defineProperty(Color.prototype, 'hex', {\n get: function() {\n if (!this.__state.space !== 'HEX') {\n this.__state.hex = math.rgb_to_hex(this.r, this.g, this.b);\n }\n\n return this.__state.hex;\n },\n\n set: function(v) {\n this.__state.space = 'HEX';\n this.__state.hex = v;\n }\n});\n\nfunction defineRGBComponent(target, component, componentHexIndex) {\n Object.defineProperty(target, component, {\n get: function() {\n if (this.__state.space === 'RGB') {\n return this.__state[component];\n }\n\n Color.recalculateRGB(this, component, componentHexIndex);\n\n return this.__state[component];\n },\n\n set: function(v) {\n if (this.__state.space !== 'RGB') {\n Color.recalculateRGB(this, component, componentHexIndex);\n this.__state.space = 'RGB';\n }\n\n this.__state[component] = v;\n }\n });\n}\n\nfunction defineHSVComponent(target, component) {\n Object.defineProperty(target, component, {\n get: function() {\n if (this.__state.space === 'HSV') {\n return this.__state[component];\n }\n\n Color.recalculateHSV(this);\n\n return this.__state[component];\n },\n\n set: function(v) {\n if (this.__state.space !== 'HSV') {\n Color.recalculateHSV(this);\n this.__state.space = 'HSV';\n }\n\n this.__state[component] = v;\n }\n });\n}\n\nexport default Color;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/color/Color.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport toString from './toString';\nimport common from '../utils/common';\n\nconst INTERPRETATIONS = [\n // Strings\n {\n litmus: common.isString,\n conversions: {\n THREE_CHAR_HEX: {\n read: function(original) {\n const test = original.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'HEX',\n hex: parseInt(\n '0x' +\n test[1].toString() + test[1].toString() +\n test[2].toString() + test[2].toString() +\n test[3].toString() + test[3].toString(), 0)\n };\n },\n\n write: toString\n },\n\n SIX_CHAR_HEX: {\n read: function(original) {\n const test = original.match(/^#([A-F0-9]{6})$/i);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'HEX',\n hex: parseInt('0x' + test[1].toString(), 0)\n };\n },\n\n write: toString\n },\n\n CSS_RGB: {\n read: function(original) {\n const test = original.match(/^rgb\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)/);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: parseFloat(test[1]),\n g: parseFloat(test[2]),\n b: parseFloat(test[3])\n };\n },\n\n write: toString\n },\n\n CSS_RGBA: {\n read: function(original) {\n const test = original.match(/^rgba\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\,\\s*(.+)\\s*\\)/);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: parseFloat(test[1]),\n g: parseFloat(test[2]),\n b: parseFloat(test[3]),\n a: parseFloat(test[4])\n };\n },\n\n write: toString\n }\n }\n },\n\n // Numbers\n {\n litmus: common.isNumber,\n\n conversions: {\n\n HEX: {\n read: function(original) {\n return {\n space: 'HEX',\n hex: original,\n conversionName: 'HEX'\n };\n },\n\n write: function(color) {\n return color.hex;\n }\n }\n\n }\n\n },\n\n // Arrays\n {\n litmus: common.isArray,\n conversions: {\n RGB_ARRAY: {\n read: function(original) {\n if (original.length !== 3) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: original[0],\n g: original[1],\n b: original[2]\n };\n },\n\n write: function(color) {\n return [color.r, color.g, color.b];\n }\n },\n\n RGBA_ARRAY: {\n read: function(original) {\n if (original.length !== 4) return false;\n return {\n space: 'RGB',\n r: original[0],\n g: original[1],\n b: original[2],\n a: original[3]\n };\n },\n\n write: function(color) {\n return [color.r, color.g, color.b, color.a];\n }\n }\n }\n },\n\n // Objects\n {\n litmus: common.isObject,\n conversions: {\n\n RGBA_OBJ: {\n read: function(original) {\n if (common.isNumber(original.r) &&\n common.isNumber(original.g) &&\n common.isNumber(original.b) &&\n common.isNumber(original.a)) {\n return {\n space: 'RGB',\n r: original.r,\n g: original.g,\n b: original.b,\n a: original.a\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n r: color.r,\n g: color.g,\n b: color.b,\n a: color.a\n };\n }\n },\n\n RGB_OBJ: {\n read: function(original) {\n if (common.isNumber(original.r) &&\n common.isNumber(original.g) &&\n common.isNumber(original.b)) {\n return {\n space: 'RGB',\n r: original.r,\n g: original.g,\n b: original.b\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n r: color.r,\n g: color.g,\n b: color.b\n };\n }\n },\n\n HSVA_OBJ: {\n read: function(original) {\n if (common.isNumber(original.h) &&\n common.isNumber(original.s) &&\n common.isNumber(original.v) &&\n common.isNumber(original.a)) {\n return {\n space: 'HSV',\n h: original.h,\n s: original.s,\n v: original.v,\n a: original.a\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n h: color.h,\n s: color.s,\n v: color.v,\n a: color.a\n };\n }\n },\n\n HSV_OBJ: {\n read: function(original) {\n if (common.isNumber(original.h) &&\n common.isNumber(original.s) &&\n common.isNumber(original.v)) {\n return {\n space: 'HSV',\n h: original.h,\n s: original.s,\n v: original.v\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n h: color.h,\n s: color.s,\n v: color.v\n };\n }\n }\n }\n }\n];\n\nlet result;\nlet toReturn;\n\nconst interpret = function() {\n toReturn = false;\n\n const original = arguments.length > 1 ? common.toArray(arguments) : arguments[0];\n common.each(INTERPRETATIONS, function(family) {\n if (family.litmus(original)) {\n common.each(family.conversions, function(conversion, conversionName) {\n result = conversion.read(original);\n\n if (toReturn === false && result !== false) {\n toReturn = result;\n result.conversionName = conversionName;\n result.conversion = conversion;\n return common.BREAK;\n }\n });\n\n return common.BREAK;\n }\n });\n\n return toReturn;\n};\n\nexport default interpret;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/color/interpret.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\nexport default function(color) {\n if (color.a === 1 || common.isUndefined(color.a)) {\n let s = color.hex.toString(16);\n while (s.length < 6) {\n s = '0' + s;\n }\n return '#' + s;\n }\n\n return 'rgba(' + Math.round(color.r) + ',' + Math.round(color.g) + ',' + Math.round(color.b) + ',' + color.a + ')';\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/color/toString.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nconst ARR_EACH = Array.prototype.forEach;\nconst ARR_SLICE = Array.prototype.slice;\n\n/**\n * Band-aid methods for things that should be a lot easier in JavaScript.\n * Implementation and structure inspired by underscore.js\n * http://documentcloud.github.com/underscore/\n */\n\nconst Common = {\n BREAK: {},\n\n extend: function(target) {\n this.each(ARR_SLICE.call(arguments, 1), function(obj) {\n for (const key in obj) {\n if (!this.isUndefined(obj[key])) {\n target[key] = obj[key];\n }\n }\n }, this);\n\n return target;\n },\n\n defaults: function(target) {\n this.each(ARR_SLICE.call(arguments, 1), function(obj) {\n for (const key in obj) {\n if (this.isUndefined(target[key])) {\n target[key] = obj[key];\n }\n }\n }, this);\n\n return target;\n },\n\n compose: function() {\n const toCall = ARR_SLICE.call(arguments);\n return function() {\n let args = ARR_SLICE.call(arguments);\n for (let i = toCall.length - 1; i >= 0; i--) {\n args = [toCall[i].apply(this, args)];\n }\n return args[0];\n };\n },\n\n each: function(obj, itr, scope) {\n if (!obj) {\n return;\n }\n\n if (ARR_EACH && obj.forEach && obj.forEach === ARR_EACH) {\n obj.forEach(itr, scope);\n } else if (obj.length === obj.length + 0) { // Is number but not NaN\n let key;\n let l;\n for (key = 0, l = obj.length; key < l; key++) {\n if (key in obj && itr.call(scope, obj[key], key) === this.BREAK) {\n return;\n }\n }\n } else {\n for (const key in obj) {\n if (itr.call(scope, obj[key], key) === this.BREAK) {\n return;\n }\n }\n }\n },\n\n defer: function(fnc) {\n setTimeout(fnc, 0);\n },\n\n toArray: function(obj) {\n if (obj.toArray) return obj.toArray();\n return ARR_SLICE.call(obj);\n },\n\n isUndefined: function(obj) {\n return obj === undefined;\n },\n\n isNull: function(obj) {\n return obj === null;\n },\n\n isNaN: function(obj) {\n return isNaN(obj);\n },\n\n isArray: Array.isArray || function(obj) {\n return obj.constructor === Array;\n },\n\n isObject: function(obj) {\n return obj === Object(obj);\n },\n\n isNumber: function(obj) {\n return obj === obj + 0;\n },\n\n isString: function(obj) {\n return obj === obj + '';\n },\n\n isBoolean: function(obj) {\n return obj === false || obj === true;\n },\n\n isFunction: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Function]';\n }\n\n};\n\nexport default Common;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/utils/common.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nlet tmpComponent;\n\nconst ColorMath = {\n hsv_to_rgb: function(h, s, v) {\n const hi = Math.floor(h / 60) % 6;\n\n const f = h / 60 - Math.floor(h / 60);\n const p = v * (1.0 - s);\n const q = v * (1.0 - (f * s));\n const t = v * (1.0 - ((1.0 - f) * s));\n\n const c = [\n [v, t, p],\n [q, v, p],\n [p, v, t],\n [p, q, v],\n [t, p, v],\n [v, p, q]\n ][hi];\n\n return {\n r: c[0] * 255,\n g: c[1] * 255,\n b: c[2] * 255\n };\n },\n\n rgb_to_hsv: function(r, g, b) {\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n let h;\n let s;\n\n if (max !== 0) {\n s = delta / max;\n } else {\n return {\n h: NaN,\n s: 0,\n v: 0\n };\n }\n\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n h /= 6;\n if (h < 0) {\n h += 1;\n }\n\n return {\n h: h * 360,\n s: s,\n v: max / 255\n };\n },\n\n rgb_to_hex: function(r, g, b) {\n let hex = this.hex_with_component(0, 2, r);\n hex = this.hex_with_component(hex, 1, g);\n hex = this.hex_with_component(hex, 0, b);\n return hex;\n },\n\n component_from_hex: function(hex, componentIndex) {\n return (hex >> (componentIndex * 8)) & 0xFF;\n },\n\n hex_with_component: function(hex, componentIndex, value) {\n return value << (tmpComponent = componentIndex * 8) | (hex & ~(0xFF << tmpComponent));\n }\n};\n\nexport default ColorMath;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/color/math.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\n/**\n * @class An \"abstract\" class that represents a given property of an object.\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass Controller {\n constructor(object, property) {\n this.initialValue = object[property];\n\n /**\n * Those who extend this class will put their DOM elements in here.\n * @type {DOMElement}\n */\n this.domElement = document.createElement('div');\n\n /**\n * The object to manipulate\n * @type {Object}\n */\n this.object = object;\n\n /**\n * The name of the property to manipulate\n * @type {String}\n */\n this.property = property;\n\n /**\n * The function to be called on change.\n * @type {Function}\n * @ignore\n */\n this.__onChange = undefined;\n\n /**\n * The function to be called on finishing change.\n * @type {Function}\n * @ignore\n */\n this.__onFinishChange = undefined;\n }\n\n /**\n * Specify that a function fire every time someone changes the value with\n * this Controller.\n *\n * @param {Function} fnc This function will be called whenever the value\n * is modified via this Controller.\n * @returns {Controller} this\n */\n onChange(fnc) {\n this.__onChange = fnc;\n return this;\n }\n\n /**\n * Specify that a function fire every time someone \"finishes\" changing\n * the value wih this Controller. Useful for values that change\n * incrementally like numbers or strings.\n *\n * @param {Function} fnc This function will be called whenever\n * someone \"finishes\" changing the value via this Controller.\n * @returns {Controller} this\n */\n onFinishChange(fnc) {\n this.__onFinishChange = fnc;\n return this;\n }\n\n /**\n * Change the value of object[property]
\n *\n * @param {Object} newValue The new value of object[property]
\n */\n setValue(newValue) {\n this.object[this.property] = newValue;\n if (this.__onChange) {\n this.__onChange.call(this, newValue);\n }\n\n this.updateDisplay();\n return this;\n }\n\n /**\n * Gets the value of object[property]
\n *\n * @returns {Object} The current value of object[property]
\n */\n getValue() {\n return this.object[this.property];\n }\n\n /**\n * Refreshes the visual display of a Controller in order to keep sync\n * with the object's current value.\n * @returns {Controller} this\n */\n updateDisplay() {\n return this;\n }\n\n /**\n * @returns {Boolean} true if the value has deviated from initialValue\n */\n isModified() {\n return this.initialValue !== this.getValue();\n }\n}\n\nexport default Controller;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/Controller.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\n\n/**\n * @class Provides a checkbox input to alter the boolean property of an object.\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass BooleanController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n const _this = this;\n this.__prev = this.getValue();\n\n this.__checkbox = document.createElement('input');\n this.__checkbox.setAttribute('type', 'checkbox');\n\n function onChange() {\n _this.setValue(!_this.__prev);\n }\n\n dom.bind(this.__checkbox, 'change', onChange, false);\n\n this.domElement.appendChild(this.__checkbox);\n\n // Match original value\n this.updateDisplay();\n }\n\n setValue(v) {\n const toReturn = super.setValue(v);\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n this.__prev = this.getValue();\n return toReturn;\n }\n\n updateDisplay() {\n if (this.getValue() === true) {\n this.__checkbox.setAttribute('checked', 'checked');\n this.__checkbox.checked = true;\n } else {\n this.__checkbox.checked = false;\n }\n\n return super.updateDisplay();\n }\n}\n\nexport default BooleanController;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/BooleanController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\nconst EVENT_MAP = {\n 'HTMLEvents': ['change'],\n 'MouseEvents': ['click', 'mousemove', 'mousedown', 'mouseup', 'mouseover'],\n 'KeyboardEvents': ['keydown']\n};\n\nconst EVENT_MAP_INV = {};\ncommon.each(EVENT_MAP, function(v, k) {\n common.each(v, function(e) {\n EVENT_MAP_INV[e] = k;\n });\n});\n\nconst CSS_VALUE_PIXELS = /(\\d+(\\.\\d+)?)px/;\n\nfunction cssValueToPixels(val) {\n if (val === '0' || common.isUndefined(val)) {\n return 0;\n }\n\n const match = val.match(CSS_VALUE_PIXELS);\n\n if (!common.isNull(match)) {\n return parseFloat(match[1]);\n }\n\n // TODO ...ems? %?\n\n return 0;\n}\n\n/**\n * @namespace\n * @member dat.dom\n */\nconst dom = {\n\n /**\n *\n * @param elem\n * @param selectable\n */\n makeSelectable: function(elem, selectable) {\n if (elem === undefined || elem.style === undefined) return;\n\n elem.onselectstart = selectable ? function() {\n return false;\n } : function() {\n };\n\n elem.style.MozUserSelect = selectable ? 'auto' : 'none';\n elem.style.KhtmlUserSelect = selectable ? 'auto' : 'none';\n elem.unselectable = selectable ? 'on' : 'off';\n },\n\n /**\n *\n * @param elem\n * @param horizontal\n * @param vert\n */\n makeFullscreen: function(elem, hor, vert) {\n let vertical = vert;\n let horizontal = hor;\n\n if (common.isUndefined(horizontal)) {\n horizontal = true;\n }\n\n if (common.isUndefined(vertical)) {\n vertical = true;\n }\n\n elem.style.position = 'absolute';\n\n if (horizontal) {\n elem.style.left = 0;\n elem.style.right = 0;\n }\n if (vertical) {\n elem.style.top = 0;\n elem.style.bottom = 0;\n }\n },\n\n /**\n *\n * @param elem\n * @param eventType\n * @param params\n */\n fakeEvent: function(elem, eventType, pars, aux) {\n const params = pars || {};\n const className = EVENT_MAP_INV[eventType];\n if (!className) {\n throw new Error('Event type ' + eventType + ' not supported.');\n }\n const evt = document.createEvent(className);\n switch (className) {\n case 'MouseEvents':\n {\n const clientX = params.x || params.clientX || 0;\n const clientY = params.y || params.clientY || 0;\n evt.initMouseEvent(eventType, params.bubbles || false,\n params.cancelable || true, window, params.clickCount || 1,\n 0, // screen X\n 0, // screen Y\n clientX, // client X\n clientY, // client Y\n false, false, false, false, 0, null);\n break;\n }\n case 'KeyboardEvents':\n {\n const init = evt.initKeyboardEvent || evt.initKeyEvent; // webkit || moz\n common.defaults(params, {\n cancelable: true,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n keyCode: undefined,\n charCode: undefined\n });\n init(eventType, params.bubbles || false,\n params.cancelable, window,\n params.ctrlKey, params.altKey,\n params.shiftKey, params.metaKey,\n params.keyCode, params.charCode);\n break;\n }\n default:\n {\n evt.initEvent(eventType, params.bubbles || false, params.cancelable || true);\n break;\n }\n }\n common.defaults(evt, aux);\n elem.dispatchEvent(evt);\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n bind: function(elem, event, func, newBool) {\n const bool = newBool || false;\n if (elem.addEventListener) {\n elem.addEventListener(event, func, bool);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + event, func);\n }\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n unbind: function(elem, event, func, newBool) {\n const bool = newBool || false;\n if (elem.removeEventListener) {\n elem.removeEventListener(event, func, bool);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + event, func);\n }\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n addClass: function(elem, className) {\n if (elem.className === undefined) {\n elem.className = className;\n } else if (elem.className !== className) {\n const classes = elem.className.split(/ +/);\n if (classes.indexOf(className) === -1) {\n classes.push(className);\n elem.className = classes.join(' ').replace(/^\\s+/, '').replace(/\\s+$/, '');\n }\n }\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n removeClass: function(elem, className) {\n if (className) {\n if (elem.className === className) {\n elem.removeAttribute('class');\n } else {\n const classes = elem.className.split(/ +/);\n const index = classes.indexOf(className);\n if (index !== -1) {\n classes.splice(index, 1);\n elem.className = classes.join(' ');\n }\n }\n } else {\n elem.className = undefined;\n }\n return dom;\n },\n\n hasClass: function(elem, className) {\n return new RegExp('(?:^|\\\\s+)' + className + '(?:\\\\s+|$)').test(elem.className) || false;\n },\n\n /**\n *\n * @param elem\n */\n getWidth: function(elem) {\n const style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-left-width']) +\n cssValueToPixels(style['border-right-width']) +\n cssValueToPixels(style['padding-left']) +\n cssValueToPixels(style['padding-right']) +\n cssValueToPixels(style.width);\n },\n\n /**\n *\n * @param elem\n */\n getHeight: function(elem) {\n const style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-top-width']) +\n cssValueToPixels(style['border-bottom-width']) +\n cssValueToPixels(style['padding-top']) +\n cssValueToPixels(style['padding-bottom']) +\n cssValueToPixels(style.height);\n },\n\n /**\n *\n * @param el\n */\n getOffset: function(el) {\n let elem = el;\n const offset = {left: 0, top: 0};\n if (elem.offsetParent) {\n do {\n offset.left += elem.offsetLeft;\n offset.top += elem.offsetTop;\n elem = elem.offsetParent;\n } while (elem);\n }\n return offset;\n },\n\n // http://stackoverflow.com/posts/2684561/revisions\n /**\n *\n * @param elem\n */\n isActive: function(elem) {\n return elem === document.activeElement && ( elem.type || elem.href );\n }\n\n};\n\nexport default dom;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/dom/dom.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a select input to alter the property of an object, using a\n * list of accepted values.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object|string[]} options A map of labels to acceptable values, or\n * a list of acceptable string values.\n *\n * @member dat.controllers\n */\nclass OptionController extends Controller {\n constructor(object, property, opts) {\n super(object, property);\n\n let options = opts;\n\n const _this = this;\n\n /**\n * The drop down menu\n * @ignore\n */\n this.__select = document.createElement('select');\n\n if (common.isArray(options)) {\n const map = {};\n common.each(options, function(element) {\n map[element] = element;\n });\n options = map;\n }\n\n common.each(options, function(value, key) {\n const opt = document.createElement('option');\n opt.innerHTML = key;\n opt.setAttribute('value', value);\n _this.__select.appendChild(opt);\n });\n\n // Acknowledge original value\n this.updateDisplay();\n\n dom.bind(this.__select, 'change', function() {\n const desiredValue = this.options[this.selectedIndex].value;\n _this.setValue(desiredValue);\n });\n\n this.domElement.appendChild(this.__select);\n }\n\n setValue(v) {\n const toReturn = super.setValue(v);\n\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n return toReturn;\n }\n\n updateDisplay() {\n this.__select.value = this.getValue();\n return super.updateDisplay();\n }\n}\n\nexport default OptionController;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/OptionController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\n\n/**\n * @class Provides a text input to alter the string property of an object.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass StringController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n const _this = this;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n dom.bind(this.__input, 'keyup', onChange);\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'keydown', function(e) {\n if (e.keyCode === 13) {\n this.blur();\n }\n });\n\n\n function onChange() {\n _this.setValue(_this.__input.value);\n }\n\n function onBlur() {\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n // Stops the caret from moving on account of:\n // keyup -> setValue -> updateDisplay\n if (!dom.isActive(this.__input)) {\n this.__input.value = this.getValue();\n }\n return super.updateDisplay();\n }\n}\n\nexport default StringController;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/StringController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport common from '../utils/common';\n\nfunction numDecimals(x) {\n const _x = x.toString();\n if (_x.indexOf('.') > -1) {\n return _x.length - _x.indexOf('.') - 1;\n }\n\n return 0;\n}\n\n/**\n * @class Represents a given property of an object that is a number.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberController extends Controller {\n constructor(object, property, params) {\n super(object, property);\n\n const _params = params || {};\n\n this.__min = _params.min;\n this.__max = _params.max;\n this.__step = _params.step;\n\n if (common.isUndefined(this.__step)) {\n if (this.initialValue === 0) {\n this.__impliedStep = 1; // What are we, psychics?\n } else {\n // Hey Doug, check this out.\n this.__impliedStep = Math.pow(10, Math.floor(Math.log(Math.abs(this.initialValue)) / Math.LN10)) / 10;\n }\n } else {\n this.__impliedStep = this.__step;\n }\n\n this.__precision = numDecimals(this.__impliedStep);\n }\n\n setValue(v) {\n let _v = v;\n\n if (this.__min !== undefined && _v < this.__min) {\n _v = this.__min;\n } else if (this.__max !== undefined && _v > this.__max) {\n _v = this.__max;\n }\n\n if (this.__step !== undefined && _v % this.__step !== 0) {\n _v = Math.round(_v / this.__step) * this.__step;\n }\n\n return super.setValue(_v);\n }\n\n /**\n * Specify a minimum value for object[property]
.\n *\n * @param {Number} minValue The minimum value for\n * object[property]
\n * @returns {dat.controllers.NumberController} this\n */\n min(v) {\n this.__min = v;\n return this;\n }\n\n /**\n * Specify a maximum value for object[property]
.\n *\n * @param {Number} maxValue The maximum value for\n * object[property]
\n * @returns {dat.controllers.NumberController} this\n */\n max(v) {\n this.__max = v;\n return this;\n }\n\n /**\n * Specify a step value that dat.controllers.NumberController\n * increments by.\n *\n * @param {Number} stepValue The step value for\n * dat.controllers.NumberController\n * @default if minimum and maximum specified increment is 1% of the\n * difference otherwise stepValue is 1\n * @returns {dat.controllers.NumberController} this\n */\n step(v) {\n this.__step = v;\n this.__impliedStep = v;\n this.__precision = numDecimals(v);\n return this;\n }\n}\n\nexport default NumberController;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/NumberController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\nfunction roundToDecimal(value, decimals) {\n const tenTo = Math.pow(10, decimals);\n return Math.round(value * tenTo) / tenTo;\n}\n\n/**\n * @class Represents a given property of an object that is a number and\n * provides an input element with which to manipulate it.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerBox extends NumberController {\n constructor(object, property, params) {\n super(object, property, params);\n\n this.__truncationSuspended = false;\n\n const _this = this;\n\n /**\n * {Number} Previous mouse y position\n * @ignore\n */\n let prevY;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n // Makes it so manually specified values are not truncated.\n\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'mousedown', onMouseDown);\n dom.bind(this.__input, 'keydown', function(e) {\n // When pressing entire, you can be as precise as you want.\n if (e.keyCode === 13) {\n _this.__truncationSuspended = true;\n this.blur();\n _this.__truncationSuspended = false;\n }\n });\n\n function onChange() {\n const attempted = parseFloat(_this.__input.value);\n if (!common.isNaN(attempted)) {\n _this.setValue(attempted);\n }\n }\n\n function onBlur() {\n onChange();\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n function onMouseDown(e) {\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n prevY = e.clientY;\n }\n\n function onMouseDrag(e) {\n const diff = prevY - e.clientY;\n _this.setValue(_this.getValue() + diff * _this.__impliedStep);\n\n prevY = e.clientY;\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision);\n return super.updateDisplay();\n }\n}\n\nexport default NumberControllerBox;\n\n\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/NumberControllerBox.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport css from '../utils/css';\nimport styleSheet from '!style!css!sass!./NumberControllerSlider.scss';\n\nfunction map(v, i1, i2, o1, o2) {\n return o1 + (o2 - o1) * ((v - i1) / (i2 - i1));\n}\n\n/**\n * @class Represents a given property of an object that is a number, contains\n * a minimum and maximum, and provides a slider element with which to\n * manipulate it. It should be noted that the slider element is made up of\n * <div>
tags, not the html5\n * <slider>
element.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Number} minValue Minimum allowed value\n * @param {Number} maxValue Maximum allowed value\n * @param {Number} stepValue Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerSlider extends NumberController {\n constructor(object, property, min, max, step) {\n super(object, property, {min: min, max: max, step: step});\n\n const _this = this;\n\n this.__background = document.createElement('div');\n this.__foreground = document.createElement('div');\n\n\n dom.bind(this.__background, 'mousedown', onMouseDown);\n\n dom.addClass(this.__background, 'slider');\n dom.addClass(this.__foreground, 'slider-fg');\n\n function onMouseDown(e) {\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n\n onMouseDrag(e);\n }\n\n function onMouseDrag(e) {\n e.preventDefault();\n\n const offset = dom.getOffset(_this.__background);\n const width = dom.getWidth(_this.__background);\n\n _this.setValue(\n map(e.clientX, offset.left, offset.left + width, _this.__min, _this.__max)\n );\n\n return false;\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.__background.appendChild(this.__foreground);\n this.domElement.appendChild(this.__background);\n }\n\n updateDisplay() {\n const pct = (this.getValue() - this.__min) / (this.__max - this.__min);\n this.__foreground.style.width = pct * 100 + '%';\n return super.updateDisplay();\n }\n}\n\n/**\n * Injects default stylesheet for slider elements.\n */\nNumberControllerSlider.useDefaultStyles = function() {\n css.inject(styleSheet);\n};\n\nexport default NumberControllerSlider;\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/controllers/NumberControllerSlider.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nmodule.exports = {\n load: function(url, indoc) {\n const doc = indoc || document;\n const link = doc.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = url;\n doc.getElementsByTagName('head')[0].appendChild(link);\n },\n\n inject: function(css, indoc) {\n const doc = indoc || document;\n const injected = document.createElement('style');\n injected.type = 'text/css';\n injected.innerHTML = css;\n doc.getElementsByTagName('head')[0].appendChild(injected);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ../~/eslint-loader!./dat/utils/css.js\n **/","// style-loader: Adds some css to the DOM by adding a