{"version":3,"file":"ngx-chiptan.mjs","sources":["../../../projects/ngx-chiptan/src/lib/flicker.ts","../../../projects/ngx-chiptan/src/lib/ngx-chiptan.component.ts","../../../projects/ngx-chiptan/src/lib/ngx-chiptan.module.ts","../../../projects/ngx-chiptan/src/public-api.ts","../../../projects/ngx-chiptan/src/ngx-chiptan.ts"],"sourcesContent":["\r\n/*\r\nCopyright (c) 2010–2012\r\n    Lars-Dominik Braun <lars@6xq.net>\r\nPermission is hereby granted, free of charge, to any person obtaining a copy\r\nof this software and associated documentation files (the \"Software\"), to deal\r\nin the Software without restriction, including without limitation the rights\r\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\ncopies of the Software, and to permit persons to whom the Software is\r\nfurnished to do so, subject to the following conditions:\r\nThe above copyright notice and this permission notice shall be included in\r\nall copies or substantial portions of the Software.\r\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\r\nTHE SOFTWARE.\r\n*/\r\n\r\nexport function flickerCode(newcode) {\r\n  let code = newcode.toUpperCase().replace(/[^a-fA-F0-9]/g, '');\r\n\r\n  const toHex = (n, minlen) => {\r\n    let s = n.toString(16).toUpperCase();\r\n    while (s.length < minlen) {\r\n      s = '0' + s;\r\n    }\r\n\r\n    return s;\r\n  }\r\n\r\n  const quersumme = (n) => {\r\n    let q = 0;\r\n    while (n != 0) {\r\n      q += n % 10;\r\n      n = Math.floor(n / 10);\r\n    }\r\n\r\n    return q;\r\n  }\r\n\r\n  const getPayload = () => {\r\n    let i = 0;\r\n    let payload = '';\r\n\r\n    let len = parseInt(code.slice(0, 2), 16);\r\n    i += 2;\r\n    while (i < code.length - 2) {\r\n      i += 1;\r\n      len = parseInt(code.slice(i, i + 1), 16);\r\n      i += 1;\r\n      payload += code.slice(i, i+ len * 2);\r\n      i += len * 2;\r\n    }\r\n\r\n    return payload;\r\n  }\r\n\r\n  const checksum = () => {\r\n    const len = code.length / 2 - 1;\r\n    code = toHex(len, 2) + code.substr(2);\r\n\r\n    const luhndata = getPayload();\r\n    let luhnsum = 0;\r\n    for (let i = 0; i < luhndata.length; i += 2) {\r\n      luhnsum += (1 * parseInt(luhndata[i], 16)) + quersumme(2 * parseInt(luhndata[i + 1], 16));\r\n    }\r\n    luhnsum = (10 - (luhnsum % 10)) % 10;\r\n    code = code.substr(0, code.length - 2) + toHex(luhnsum, 1) + code.substr(code.length - 1);\r\n\r\n    let xorsum = 0;\r\n    for (let i = 0; i < code.length - 2; i++) {\r\n      xorsum ^= parseInt(code[i], 16);\r\n    }\r\n\r\n    code = code.substr(0, code.length-1) + toHex(xorsum, 1);\r\n  }\r\n\r\n  this.getCode = () => code;\r\n\r\n  checksum();\r\n}\r\n\r\nexport function flickerCanvas(width, height, bgColor, barColor) {\r\n  let code, halfbyteid, clock, bitarray, canvas, ctx;\r\n\r\n  this.reset = () => {\r\n    halfbyteid = 0;\r\n    clock = 1;\r\n  };\r\n\r\n  const setup = () => {\r\n    const bits = new Object();\r\n    bits['0'] = [0, 0, 0, 0, 0];\r\n    bits['1'] = [0, 1, 0, 0, 0];\r\n    bits['2'] = [0, 0, 1, 0, 0];\r\n    bits['3'] = [0, 1, 1, 0, 0];\r\n    bits['4'] = [0, 0, 0, 1, 0];\r\n    bits['5'] = [0, 1, 0, 1, 0];\r\n    bits['6'] = [0, 0, 1, 1, 0];\r\n    bits['7'] = [0, 1, 1, 1, 0];\r\n    bits['8'] = [0, 0, 0, 0, 1];\r\n    bits['9'] = [0, 1, 0, 0, 1];\r\n    bits['A'] = [0, 0, 1, 0, 1];\r\n    bits['B'] = [0, 1, 1, 0, 1];\r\n    bits['C'] = [0, 0, 0, 1, 1];\r\n    bits['D'] = [0, 1, 0, 1, 1];\r\n    bits['E'] = [0, 0, 1, 1, 1];\r\n    bits['F'] = [0, 1, 1, 1, 1];\r\n\r\n    code = '0FFF' + code;\r\n\r\n    bitarray = [];\r\n    for (let i = 0; i < code.length; i += 2) {\r\n      bitarray[i] = bits[code[i+1]];\r\n      bitarray[i+1] = bits[code[i]];\r\n    }\r\n  };\r\n\r\n  const createCanvas = (width, height, bgColor, barColor) => {\r\n    canvas = document.createElement('canvas');\r\n    canvas.width = width;\r\n    canvas.height = height;\r\n    if (canvas.getContext) {\r\n      ctx = canvas.getContext('2d');\r\n    }\r\n\r\n    ctx.fillStyle = bgColor;\r\n    ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n  }\r\n\r\n  this.step = () => {\r\n    const margin = 7;\r\n    const barwidth = canvas.width / 5;\r\n\r\n    bitarray[halfbyteid][0] = clock;\r\n\r\n    for (let i = 0; i < 5; i++) {\r\n      if (bitarray[halfbyteid][i] == 1) {\r\n        ctx.fillStyle = barColor;\r\n      } else {\r\n        ctx.fillStyle = bgColor;\r\n      }\r\n      ctx.fillRect(i * barwidth + margin, margin, barwidth - 2 * margin, canvas.height - 2 * margin);\r\n    }\r\n\r\n    clock--;\r\n    if (clock < 0) {\r\n      clock = 1;\r\n\r\n      halfbyteid++;\r\n      if (halfbyteid >= bitarray.length) {\r\n        halfbyteid = 0;\r\n      }\r\n\r\n    }\r\n\r\n    return 0;\r\n  }\r\n\r\n  this.getCanvas = () => canvas;\r\n\r\n  this.setCode = newcode => {\r\n    code = newcode.getCode();\r\n    setup();\r\n    this.reset();\r\n  }\r\n\r\n  createCanvas(width, height, bgColor, barColor);\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\nimport { flickerCanvas, flickerCode } from './flicker';\n\n@Component({\n  selector: 'ngx-chiptan',\n  template: `\n      <div id='flickercontainer'>\n      </div>\n  `,\n})\nexport class NgxChiptanComponent implements OnInit {\n\n  @Input()\n  code: string | undefined;\n\n  @Input()\n  width: string;\n\n  @Input()\n  height: string;\n\n  @Input()\n  bgColor: string;\n\n  @Input()\n  barColor: string;\n\n  private state: any;\n  private interval: any;\n\n  ngOnInit() {\n    if (!this.code) { return; }\n\n    this.state = {\n      canvas: new flickerCanvas(this.width, this.height, this.bgColor, this.barColor),\n      code: new flickerCode(this.code),\n    };\n\n    const { canvas, code } = this.state;\n\n    document\n      .getElementById('flickercontainer')\n      .appendChild(canvas.getCanvas());\n\n    canvas.setCode(code);\n\n    this.startFlicker();\n  }\n\n  startFlicker() {\n    this.interval = setInterval(this.step.bind(this), 50);\n  }\n\n  stopFlicker() {\n    clearInterval(this.interval);\n  }\n\n  step() {\n    this.state.canvas.step();\n  }\n}\n","import { NgModule } from '@angular/core';\r\nimport { NgxChiptanComponent } from './ngx-chiptan.component';\r\n\r\n@NgModule({\r\n  declarations: [NgxChiptanComponent],\r\n  exports: [NgxChiptanComponent]\r\n})\r\nexport class NgxChiptanModule { }\r\n","/*\r\n * Public API Surface of ngx-chiptan\r\n */\r\n\r\nexport * from './lib/ngx-chiptan.component';\r\nexport * from './lib/ngx-chiptan.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;AACA;;;;;;;;;;;;;;;;;;AAkBE;AAEI,SAAU,WAAW,CAAC,OAAO,EAAA;AACjC,IAAA,IAAI,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;AAE9D,IAAA,MAAM,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,KAAI;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;AACrC,QAAA,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,EAAE;AACxB,YAAA,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;AACb,SAAA;AAED,QAAA,OAAO,CAAC,CAAC;AACX,KAAC,CAAA;AAED,IAAA,MAAM,SAAS,GAAG,CAAC,CAAC,KAAI;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,EAAE;AACb,YAAA,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,OAAO,CAAC,CAAC;AACX,KAAC,CAAA;IAED,MAAM,UAAU,GAAG,MAAK;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,OAAO,GAAG,EAAE,CAAC;AAEjB,QAAA,IAAI,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC,IAAI,CAAC,CAAC;AACP,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,CAAC,IAAI,CAAC,CAAC;AACP,YAAA,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzC,CAAC,IAAI,CAAC,CAAC;AACP,YAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAE,GAAG,GAAG,CAAC,CAAC,CAAC;AACrC,YAAA,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;AACjB,KAAC,CAAA;IAED,MAAM,QAAQ,GAAG,MAAK;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAEtC,QAAA,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;QAC9B,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC3C,YAAA,OAAO,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3F,SAAA;AACD,QAAA,OAAO,GAAG,CAAC,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACrC,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1F,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjC,SAAA;QAED,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AAC1D,KAAC,CAAA;AAED,IAAA,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC;AAE1B,IAAA,QAAQ,EAAE,CAAC;AACb,CAAC;AAEK,SAAU,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAA;IAC5D,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC;AAEnD,IAAA,IAAI,CAAC,KAAK,GAAG,MAAK;QAChB,UAAU,GAAG,CAAC,CAAC;QACf,KAAK,GAAG,CAAC,CAAC;AACZ,KAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAK;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,MAAM,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAE5B,QAAA,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;QAErB,QAAQ,GAAG,EAAE,CAAC;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AACvC,YAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/B,SAAA;AACH,KAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,KAAI;AACxD,QAAA,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,QAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,IAAI,MAAM,CAAC,UAAU,EAAE;AACrB,YAAA,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;AACxB,QAAA,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAClD,KAAC,CAAA;AAED,IAAA,IAAI,CAAC,IAAI,GAAG,MAAK;QACf,MAAM,MAAM,GAAG,CAAC,CAAC;AACjB,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;QAElC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;AAChC,gBAAA,GAAG,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,aAAA;AAAM,iBAAA;AACL,gBAAA,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;AACzB,aAAA;YACD,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,CAAC,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;AAChG,SAAA;AAED,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,KAAK,GAAG,CAAC,EAAE;YACb,KAAK,GAAG,CAAC,CAAC;AAEV,YAAA,UAAU,EAAE,CAAC;AACb,YAAA,IAAI,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE;gBACjC,UAAU,GAAG,CAAC,CAAC;AAChB,aAAA;AAEF,SAAA;AAED,QAAA,OAAO,CAAC,CAAC;AACX,KAAC,CAAA;AAED,IAAA,IAAI,CAAC,SAAS,GAAG,MAAM,MAAM,CAAC;AAE9B,IAAA,IAAI,CAAC,OAAO,GAAG,OAAO,IAAG;AACvB,QAAA,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,KAAC,CAAA;IAED,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjD;;MCjKa,mBAAmB,CAAA;IAoB9B,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;AAAE,SAAA;QAE3B,IAAI,CAAC,KAAK,GAAG;AACX,YAAA,MAAM,EAAE,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC;AAC/E,YAAA,IAAI,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAEpC,QAAQ;aACL,cAAc,CAAC,kBAAkB,CAAC;AAClC,aAAA,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;AAEnC,QAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErB,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KACvD;IAED,WAAW,GAAA;AACT,QAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC9B;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAC1B;8GAjDU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EALpB,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,EAAA,CAAA;AACF,iBAAA,CAAA;8BAIC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,MAAM,EAAA,CAAA;sBADL,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;;;MCjBK,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHZ,mBAAmB,CAAA,EAAA,OAAA,EAAA,CACxB,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAElB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,mBAAmB,CAAC;oBACnC,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA,CAAA;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}