{"version":3,"file":"jquery.ztree.exhide.mjs","sources":["../../../../../../packages/components/tree/js/jquery.ztree.exhide.js"],"sourcesContent":["/*\r\n * JQuery zTree exHideNodes\r\n * v3.5.48\r\n * http://treejs.cn/\r\n *\r\n * Copyright (c) 2010 Hunter.z\r\n *\r\n * Licensed same as jquery - MIT License\r\n * http://www.opensource.org/licenses/mit-license.php\r\n *\r\n * Date: 2020-11-21\r\n */\r\nimport { isClient } from '@vueuse/core'\r\n\r\nexport const ztreeExhide = ($) => {\r\n  var _setting = {\r\n    data: {\r\n      key: {\r\n        isHidden: \"isHidden\"\r\n      }\r\n    }\r\n  };\r\n  //default init node of exLib\r\n  var _initNode = function (setting, level, n, parentNode, isFirstNode, isLastNode, openFlag) {\r\n      var isHidden = data.isHidden(setting, n);\r\n      data.isHidden(setting, n, isHidden);\r\n      data.initHideForExCheck(setting, n);\r\n    },\r\n    //add dom for check\r\n    _beforeA = function (setting, node, html) {\r\n    },\r\n    //update zTreeObj, add method of exLib\r\n    _zTreeTools = function (setting, zTreeTools) {\r\n      zTreeTools.showNodes = function (nodes, options) {\r\n        view.showNodes(setting, nodes, options);\r\n      }\r\n      zTreeTools.showNode = function (node, options) {\r\n        if (!node) {\r\n          return;\r\n        }\r\n        view.showNodes(setting, [node], options);\r\n      }\r\n      zTreeTools.hideNodes = function (nodes, options) {\r\n        view.hideNodes(setting, nodes, options);\r\n      }\r\n      zTreeTools.hideNode = function (node, options) {\r\n        if (!node) {\r\n          return;\r\n        }\r\n        view.hideNodes(setting, [node], options);\r\n      }\r\n\r\n      var _checkNode = zTreeTools.checkNode;\r\n      if (_checkNode) {\r\n        zTreeTools.checkNode = function (node, checked, checkTypeFlag, callbackFlag) {\r\n          if (!!node && !!data.isHidden(setting, node)) {\r\n            return;\r\n          }\r\n          _checkNode.apply(zTreeTools, arguments);\r\n        }\r\n      }\r\n    },\r\n    //method of operate data\r\n    _data = {\r\n      initHideForExCheck: function (setting, n) {\r\n        var isHidden = data.isHidden(setting, n);\r\n        if (isHidden && setting.check && setting.check.enable) {\r\n          if (typeof n._nocheck == \"undefined\") {\r\n            n._nocheck = !!n.nocheck\r\n            n.nocheck = true;\r\n          }\r\n          n.check_Child_State = -1;\r\n          if (view.repairParentChkClassWithSelf) {\r\n            view.repairParentChkClassWithSelf(setting, n);\r\n          }\r\n        }\r\n      },\r\n      initShowForExCheck: function (setting, n) {\r\n        var isHidden = data.isHidden(setting, n);\r\n        if (!isHidden && setting.check && setting.check.enable) {\r\n          if (typeof n._nocheck != \"undefined\") {\r\n            n.nocheck = n._nocheck;\r\n            delete n._nocheck;\r\n          }\r\n          if (view.setChkClass) {\r\n            var checkObj = $$(n, consts.id.CHECK, setting);\r\n            view.setChkClass(setting, checkObj, n);\r\n          }\r\n          if (view.repairParentChkClassWithSelf) {\r\n            view.repairParentChkClassWithSelf(setting, n);\r\n          }\r\n        }\r\n      }\r\n    },\r\n    //method of operate ztree dom\r\n    _view = {\r\n      clearOldFirstNode: function (setting, node) {\r\n        var n = node.getNextNode();\r\n        while (!!n) {\r\n          if (n.isFirstNode) {\r\n            n.isFirstNode = false;\r\n            view.setNodeLineIcos(setting, n);\r\n            break;\r\n          }\r\n          if (n.isLastNode) {\r\n            break;\r\n          }\r\n          n = n.getNextNode();\r\n        }\r\n      },\r\n      clearOldLastNode: function (setting, node, openFlag) {\r\n        var n = node.getPreNode();\r\n        while (!!n) {\r\n          if (n.isLastNode) {\r\n            n.isLastNode = false;\r\n            if (openFlag) {\r\n              view.setNodeLineIcos(setting, n);\r\n            }\r\n            break;\r\n          }\r\n          if (n.isFirstNode) {\r\n            break;\r\n          }\r\n          n = n.getPreNode();\r\n        }\r\n      },\r\n      makeDOMNodeMainBefore: function (html, setting, node) {\r\n        var isHidden = data.isHidden(setting, node);\r\n        html.push(\"<li \", (isHidden ? \"style='display:none;' \" : \"\"), \"id='\", node.tId, \"' class='\", consts.className.LEVEL, node.level, \"' tabindex='0' hidefocus='true' treenode>\");\r\n      },\r\n      showNode: function (setting, node, options) {\r\n        data.isHidden(setting, node, false);\r\n        data.initShowForExCheck(setting, node);\r\n        $$(node, setting).show();\r\n      },\r\n      showNodes: function (setting, nodes, options) {\r\n        if (!nodes || nodes.length == 0) {\r\n          return;\r\n        }\r\n        var pList = {}, i, j;\r\n        for (i = 0, j = nodes.length; i < j; i++) {\r\n          var n = nodes[i];\r\n          if (!pList[n.parentTId]) {\r\n            var pn = n.getParentNode();\r\n            pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode();\r\n          }\r\n          view.showNode(setting, n, options);\r\n        }\r\n        for (var tId in pList) {\r\n          var children = data.nodeChildren(setting, pList[tId]);\r\n          view.setFirstNodeForShow(setting, children);\r\n          view.setLastNodeForShow(setting, children);\r\n        }\r\n      },\r\n      hideNode: function (setting, node, options) {\r\n        data.isHidden(setting, node, true);\r\n        node.isFirstNode = false;\r\n        node.isLastNode = false;\r\n        data.initHideForExCheck(setting, node);\r\n        view.cancelPreSelectedNode(setting, node);\r\n        $$(node, setting).hide();\r\n      },\r\n      hideNodes: function (setting, nodes, options) {\r\n        if (!nodes || nodes.length == 0) {\r\n          return;\r\n        }\r\n        var pList = {}, i, j;\r\n        for (i = 0, j = nodes.length; i < j; i++) {\r\n          var n = nodes[i];\r\n          if ((n.isFirstNode || n.isLastNode) && !pList[n.parentTId]) {\r\n            var pn = n.getParentNode();\r\n            pList[n.parentTId] = (pn === null) ? data.getRoot(setting) : n.getParentNode();\r\n          }\r\n          view.hideNode(setting, n, options);\r\n        }\r\n        for (var tId in pList) {\r\n          var children = data.nodeChildren(setting, pList[tId]);\r\n          view.setFirstNodeForHide(setting, children);\r\n          view.setLastNodeForHide(setting, children);\r\n        }\r\n      },\r\n      setFirstNode: function (setting, parentNode) {\r\n        var children = data.nodeChildren(setting, parentNode);\r\n        var isHidden = data.isHidden(setting, children[0], false);\r\n        if (children.length > 0 && !isHidden) {\r\n          children[0].isFirstNode = true;\r\n        } else if (children.length > 0) {\r\n          view.setFirstNodeForHide(setting, children);\r\n        }\r\n      },\r\n      setLastNode: function (setting, parentNode) {\r\n        var children = data.nodeChildren(setting, parentNode);\r\n        var isHidden = data.isHidden(setting, children[0]);\r\n        if (children.length > 0 && !isHidden) {\r\n          children[children.length - 1].isLastNode = true;\r\n        } else if (children.length > 0) {\r\n          view.setLastNodeForHide(setting, children);\r\n        }\r\n      },\r\n      setFirstNodeForHide: function (setting, nodes) {\r\n        var n, i, j;\r\n        for (i = 0, j = nodes.length; i < j; i++) {\r\n          n = nodes[i];\r\n          if (n.isFirstNode) {\r\n            break;\r\n          }\r\n          var isHidden = data.isHidden(setting, n);\r\n          if (!isHidden && !n.isFirstNode) {\r\n            n.isFirstNode = true;\r\n            view.setNodeLineIcos(setting, n);\r\n            break;\r\n          } else {\r\n            n = null;\r\n          }\r\n        }\r\n        return n;\r\n      },\r\n      setFirstNodeForShow: function (setting, nodes) {\r\n        var n, i, j, first, old;\r\n        for (i = 0, j = nodes.length; i < j; i++) {\r\n          n = nodes[i];\r\n          var isHidden = data.isHidden(setting, n);\r\n          if (!first && !isHidden && n.isFirstNode) {\r\n            first = n;\r\n            break;\r\n          } else if (!first && !isHidden && !n.isFirstNode) {\r\n            n.isFirstNode = true;\r\n            first = n;\r\n            view.setNodeLineIcos(setting, n);\r\n          } else if (first && n.isFirstNode) {\r\n            n.isFirstNode = false;\r\n            old = n;\r\n            view.setNodeLineIcos(setting, n);\r\n            break;\r\n          } else {\r\n            n = null;\r\n          }\r\n        }\r\n        return {\"new\": first, \"old\": old};\r\n      },\r\n      setLastNodeForHide: function (setting, nodes) {\r\n        var n, i;\r\n        for (i = nodes.length - 1; i >= 0; i--) {\r\n          n = nodes[i];\r\n          if (n.isLastNode) {\r\n            break;\r\n          }\r\n          var isHidden = data.isHidden(setting, n);\r\n          if (!isHidden && !n.isLastNode) {\r\n            n.isLastNode = true;\r\n            view.setNodeLineIcos(setting, n);\r\n            break;\r\n          } else {\r\n            n = null;\r\n          }\r\n        }\r\n        return n;\r\n      },\r\n      setLastNodeForShow: function (setting, nodes) {\r\n        var n, i, j, last, old;\r\n        for (i = nodes.length - 1; i >= 0; i--) {\r\n          n = nodes[i];\r\n          var isHidden = data.isHidden(setting, n);\r\n          if (!last && !isHidden && n.isLastNode) {\r\n            last = n;\r\n            break;\r\n          } else if (!last && !isHidden && !n.isLastNode) {\r\n            n.isLastNode = true;\r\n            last = n;\r\n            view.setNodeLineIcos(setting, n);\r\n          } else if (last && n.isLastNode) {\r\n            n.isLastNode = false;\r\n            old = n;\r\n            view.setNodeLineIcos(setting, n);\r\n            break;\r\n          } else {\r\n            n = null;\r\n          }\r\n        }\r\n        return {\"new\": last, \"old\": old};\r\n      }\r\n    },\r\n\r\n    _z = {\r\n      view: _view,\r\n      data: _data\r\n    };\r\n  if(isClient) {\r\n    $.extend(true, $.fn.zTree._z, _z);\r\n    var zt = $.fn.zTree,\r\n        tools = zt._z.tools,\r\n        consts = zt.consts,\r\n        view = zt._z.view,\r\n        data = zt._z.data,\r\n        event = zt._z.event,\r\n        $$ = tools.$;\r\n\r\n    data.isHidden = function (setting, node, newIsHidden) {\r\n      if (!node) {\r\n        return false;\r\n      }\r\n      var key = setting.data.key.isHidden;\r\n      if (typeof newIsHidden !== 'undefined') {\r\n        if (typeof newIsHidden === \"string\") {\r\n          newIsHidden = tools.eqs(newIsHidden, \"true\");\r\n        }\r\n        newIsHidden = !!newIsHidden;\r\n        node[key] = newIsHidden;\r\n      } else if (typeof node[key] == \"string\") {\r\n        node[key] = tools.eqs(node[key], \"true\");\r\n      } else {\r\n        node[key] = !!node[key];\r\n      }\r\n      return node[key];\r\n    };\r\n\r\n    data.exSetting(_setting);\r\n    data.addInitNode(_initNode);\r\n    data.addBeforeA(_beforeA);\r\n    data.addZTreeTools(_zTreeTools);\r\n\r\n//\tOverride method in core\r\n    var _dInitNode = data.initNode;\r\n    data.initNode = function (setting, level, node, parentNode, isFirstNode, isLastNode, openFlag) {\r\n      var tmpPNode = (parentNode) ? parentNode : data.getRoot(setting),\r\n          children = tmpPNode[setting.data.key.children];\r\n      data.tmpHideFirstNode = view.setFirstNodeForHide(setting, children);\r\n      data.tmpHideLastNode = view.setLastNodeForHide(setting, children);\r\n      if (openFlag) {\r\n        view.setNodeLineIcos(setting, data.tmpHideFirstNode);\r\n        view.setNodeLineIcos(setting, data.tmpHideLastNode);\r\n      }\r\n      isFirstNode = (data.tmpHideFirstNode === node);\r\n      isLastNode = (data.tmpHideLastNode === node);\r\n      if (_dInitNode) _dInitNode.apply(data, arguments);\r\n      if (openFlag && isLastNode) {\r\n        view.clearOldLastNode(setting, node, openFlag);\r\n      }\r\n    };\r\n\r\n    var _makeChkFlag = data.makeChkFlag;\r\n    if (!!_makeChkFlag) {\r\n      data.makeChkFlag = function (setting, node) {\r\n        if (!!node && !!data.isHidden(setting, node)) {\r\n          return;\r\n        }\r\n        _makeChkFlag.apply(data, arguments);\r\n      }\r\n    }\r\n\r\n    var _getTreeCheckedNodes = data.getTreeCheckedNodes;\r\n    if (!!_getTreeCheckedNodes) {\r\n      data.getTreeCheckedNodes = function (setting, nodes, checked, results) {\r\n        if (!!nodes && nodes.length > 0) {\r\n          var p = nodes[0].getParentNode();\r\n          if (!!p && !!data.isHidden(setting, p)) {\r\n            return [];\r\n          }\r\n        }\r\n        return _getTreeCheckedNodes.apply(data, arguments);\r\n      }\r\n    }\r\n\r\n    var _getTreeChangeCheckedNodes = data.getTreeChangeCheckedNodes;\r\n    if (!!_getTreeChangeCheckedNodes) {\r\n      data.getTreeChangeCheckedNodes = function (setting, nodes, results) {\r\n        if (!!nodes && nodes.length > 0) {\r\n          var p = nodes[0].getParentNode();\r\n          if (!!p && !!data.isHidden(setting, p)) {\r\n            return [];\r\n          }\r\n        }\r\n        return _getTreeChangeCheckedNodes.apply(data, arguments);\r\n      }\r\n    }\r\n\r\n    var _expandCollapseSonNode = view.expandCollapseSonNode;\r\n    if (!!_expandCollapseSonNode) {\r\n      view.expandCollapseSonNode = function (setting, node, expandFlag, animateFlag, callback) {\r\n        if (!!node && !!data.isHidden(setting, node)) {\r\n          return;\r\n        }\r\n        _expandCollapseSonNode.apply(view, arguments);\r\n      }\r\n    }\r\n\r\n    var _setSonNodeCheckBox = view.setSonNodeCheckBox;\r\n    if (!!_setSonNodeCheckBox) {\r\n      view.setSonNodeCheckBox = function (setting, node, value, srcNode) {\r\n        if (!!node && !!data.isHidden(setting, node)) {\r\n          return;\r\n        }\r\n        _setSonNodeCheckBox.apply(view, arguments);\r\n      }\r\n    }\r\n\r\n    var _repairParentChkClassWithSelf = view.repairParentChkClassWithSelf;\r\n    if (!!_repairParentChkClassWithSelf) {\r\n      view.repairParentChkClassWithSelf = function (setting, node) {\r\n        if (!!node && !!data.isHidden(setting, node)) {\r\n          return;\r\n        }\r\n        _repairParentChkClassWithSelf.apply(view, arguments);\r\n      }\r\n    }\r\n  }\r\n}\r\n"],"names":[],"mappings":";;AACY,MAAC,WAAW,GAAG,CAAC,CAAC,KAAK;AAClC,EAAE,IAAI,QAAQ,GAAG;AACjB,IAAI,IAAI,EAAE;AACV,MAAM,GAAG,EAAE;AACX,QAAQ,QAAQ,EAAE,UAAU;AAC5B,OAAO;AACP,KAAK;AACL,GAAG,CAAC;AACJ,EAAE,IAAI,SAAS,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;AAC7F,IAAI,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC7C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AACxC,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxC,GAAG,EAAE,QAAQ,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE;AAC9C,GAAG,EAAE,WAAW,GAAG,SAAS,OAAO,EAAE,UAAU,EAAE;AACjD,IAAI,UAAU,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE,OAAO,EAAE;AACpD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,QAAQ,GAAG,SAAS,IAAI,EAAE,OAAO,EAAE;AAClD,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,SAAS,GAAG,SAAS,KAAK,EAAE,OAAO,EAAE;AACpD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9C,KAAK,CAAC;AACN,IAAI,UAAU,CAAC,QAAQ,GAAG,SAAS,IAAI,EAAE,OAAO,EAAE;AAClD,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/C,KAAK,CAAC;AACN,IAAI,IAAI,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;AAC1C,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,UAAU,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE;AAClF,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,UAAU,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AAChD,OAAO,CAAC;AACR,KAAK;AACL,GAAG,EAAE,KAAK,GAAG;AACb,IAAI,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAC,EAAE;AAC7C,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,IAAI,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAC7D,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;AAC9C,UAAU,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AACnC,UAAU,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAC3B,SAAS;AACT,QAAQ,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,IAAI,CAAC,4BAA4B,EAAE;AAC/C,UAAU,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxD,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,kBAAkB,EAAE,SAAS,OAAO,EAAE,CAAC,EAAE;AAC7C,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC/C,MAAM,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE;AAC9D,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,IAAI,WAAW,EAAE;AAC9C,UAAU,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC;AACjC,UAAU,OAAO,CAAC,CAAC,QAAQ,CAAC;AAC5B,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE;AAC9B,UAAU,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzD,UAAU,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACjD,SAAS;AACT,QAAQ,IAAI,IAAI,CAAC,4BAA4B,EAAE;AAC/C,UAAU,IAAI,CAAC,4BAA4B,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACxD,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG,EAAE,KAAK,GAAG;AACb,IAAI,iBAAiB,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE;AAC/C,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AACjC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE;AAClB,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE;AAC3B,UAAU,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;AAChC,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE;AAC1B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5B,OAAO;AACP,KAAK;AACL,IAAI,gBAAgB,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AACxD,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAChC,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE;AAClB,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE;AAC1B,UAAU,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC/B,UAAU,IAAI,QAAQ,EAAE;AACxB,YAAY,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC7C,WAAW;AACX,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE;AAC3B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,qBAAqB,EAAE,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;AACzD,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClD,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,GAAG,wBAAwB,GAAG,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,2CAA2C,CAAC,CAAC;AAClL,KAAK;AACL,IAAI,QAAQ,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1C,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,SAAS,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACjD,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;AACjC,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;AACrC,UAAU,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;AACvF,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,OAAO;AACP,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,OAAO;AACP,KAAK;AACL,IAAI,QAAQ,EAAE,SAAS,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;AAC/C,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACzC,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AAC/B,MAAM,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC7C,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAChD,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAC/B,KAAK;AACL,IAAI,SAAS,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACjD,MAAM,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACvC,QAAQ,OAAO;AACf,OAAO;AACP,MAAM,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE;AACpE,UAAU,IAAI,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;AACrC,UAAU,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC;AACvF,SAAS;AACT,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3C,OAAO;AACP,MAAM,KAAK,IAAI,GAAG,IAAI,KAAK,EAAE;AAC7B,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,OAAO;AACP,KAAK;AACL,IAAI,YAAY,EAAE,SAAS,OAAO,EAAE,UAAU,EAAE;AAChD,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC5D,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAChE,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5C,QAAQ,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AACvC,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,QAAQ,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACpD,OAAO;AACP,KAAK;AACL,IAAI,WAAW,EAAE,SAAS,OAAO,EAAE,UAAU,EAAE;AAC/C,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;AAC5D,MAAM,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE;AAC5C,QAAQ,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AACxD,OAAO,MAAM,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACtC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,OAAO;AACP,KAAK;AACL,IAAI,mBAAmB,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE;AAClD,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClB,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE;AAC3B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;AACzC,UAAU,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAC/B,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAU,MAAM;AAChB,SAAS,MAAM;AACf,UAAU,CAAC,GAAG,IAAI,CAAC;AACnB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,mBAAmB,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE;AAClD,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;AAC9B,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChD,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,WAAW,EAAE;AAClD,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,UAAU,MAAM;AAChB,SAAS,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE;AAC1D,UAAU,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC;AAC/B,UAAU,KAAK,GAAG,CAAC,CAAC;AACpB,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,SAAS,MAAM,IAAI,KAAK,IAAI,CAAC,CAAC,WAAW,EAAE;AAC3C,UAAU,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC;AAChC,UAAU,GAAG,GAAG,CAAC,CAAC;AAClB,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAU,MAAM;AAChB,SAAS,MAAM;AACf,UAAU,CAAC,GAAG,IAAI,CAAC;AACnB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,kBAAkB,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE;AACjD,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;AACf,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE;AAC1B,UAAU,MAAM;AAChB,SAAS;AACT,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AACxC,UAAU,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAU,MAAM;AAChB,SAAS,MAAM;AACf,UAAU,CAAC,GAAG,IAAI,CAAC;AACnB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,CAAC,CAAC;AACf,KAAK;AACL,IAAI,kBAAkB,EAAE,SAAS,OAAO,EAAE,KAAK,EAAE;AACjD,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC;AAC7B,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC9C,QAAQ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACrB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACjD,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,UAAU,EAAE;AAChD,UAAU,IAAI,GAAG,CAAC,CAAC;AACnB,UAAU,MAAM;AAChB,SAAS,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;AACxD,UAAU,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;AAC9B,UAAU,IAAI,GAAG,CAAC,CAAC;AACnB,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,SAAS,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,EAAE;AACzC,UAAU,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;AAC/B,UAAU,GAAG,GAAG,CAAC,CAAC;AAClB,UAAU,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC3C,UAAU,MAAM;AAChB,SAAS,MAAM;AACf,UAAU,CAAC,GAAG,IAAI,CAAC;AACnB,SAAS;AACT,OAAO;AACP,MAAM,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACzC,KAAK;AACL,GAAG,EAAE,EAAE,GAAG;AACV,IAAI,IAAI,EAAE,KAAK;AACf,IAAI,IAAI,EAAE,KAAK;AACf,GAAG,CAAC;AACJ,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACtC,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AAC1I,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE;AACzD,MAAM,IAAI,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,KAAK,CAAC;AACrB,OAAO;AACP,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC1C,MAAM,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;AAC9C,QAAQ,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;AAC7C,UAAU,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACvD,SAAS;AACT,QAAQ,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC;AACpC,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;AAChC,OAAO,MAAM,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE;AAC/C,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACjD,OAAO,MAAM;AACb,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,OAAO;AACP,MAAM,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,KAAK,CAAC;AACN,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAChC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC9B,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;AACpC,IAAI,IAAI,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnC,IAAI,IAAI,CAAC,QAAQ,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE;AAClG,MAAM,IAAI,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACrH,MAAM,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1E,MAAM,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxE,MAAM,IAAI,QAAQ,EAAE;AACpB,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7D,QAAQ,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5D,OAAO;AACP,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAAC;AACnD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC;AACjD,MAAM,IAAI,UAAU;AACpB,QAAQ,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC1C,MAAM,IAAI,QAAQ,IAAI,UAAU,EAAE;AAClC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,OAAO;AACP,KAAK,CAAC;AACN,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;AACxC,IAAI,IAAI,CAAC,CAAC,YAAY,EAAE;AACxB,MAAM,IAAI,CAAC,WAAW,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE;AACjD,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,YAAY,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC5C,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,oBAAoB,GAAG,IAAI,CAAC,mBAAmB,CAAC;AACxD,IAAI,IAAI,CAAC,CAAC,oBAAoB,EAAE;AAChC,MAAM,IAAI,CAAC,mBAAmB,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;AAC5E,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3C,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;AAClD,YAAY,OAAO,EAAE,CAAC;AACtB,WAAW;AACX,SAAS;AACT,QAAQ,OAAO,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3D,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC;AACpE,IAAI,IAAI,CAAC,CAAC,0BAA0B,EAAE;AACtC,MAAM,IAAI,CAAC,yBAAyB,GAAG,SAAS,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;AACzE,QAAQ,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzC,UAAU,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AAC3C,UAAU,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE;AAClD,YAAY,OAAO,EAAE,CAAC;AACtB,WAAW;AACX,SAAS;AACT,QAAQ,OAAO,0BAA0B,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACjE,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,sBAAsB,GAAG,IAAI,CAAC,qBAAqB,CAAC;AAC5D,IAAI,IAAI,CAAC,CAAC,sBAAsB,EAAE;AAClC,MAAM,IAAI,CAAC,qBAAqB,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE;AAC9F,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,sBAAsB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC;AACtD,IAAI,IAAI,CAAC,CAAC,mBAAmB,EAAE;AAC/B,MAAM,IAAI,CAAC,kBAAkB,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AACxE,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACnD,OAAO,CAAC;AACR,KAAK;AACL,IAAI,IAAI,6BAA6B,GAAG,IAAI,CAAC,4BAA4B,CAAC;AAC1E,IAAI,IAAI,CAAC,CAAC,6BAA6B,EAAE;AACzC,MAAM,IAAI,CAAC,4BAA4B,GAAG,SAAS,OAAO,EAAE,IAAI,EAAE;AAClE,QAAQ,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACtD,UAAU,OAAO;AACjB,SAAS;AACT,QAAQ,6BAA6B,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC7D,OAAO,CAAC;AACR,KAAK;AACL,GAAG;AACH;;;;"}