"Fossies" - the Fresh Open Source Software Archive

Member "ampache-5.0.0/public/lib/modules/aurora.js/aurora.js.map" (31 Aug 2021, 219283 Bytes) of package /linux/www/ampache-5.0.0.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 {
    2   "version": 3,
    3   "file": "generated.js",
    4   "sources": [
    5     "/Users/devongovett/projects/codecs/aurora.js/node_modules/browserify/node_modules/browser-pack/_prelude.js",
    6     "/Users/devongovett/projects/codecs/aurora.js/browser.coffee",
    7     "/Users/devongovett/projects/codecs/aurora.js/src/asset.coffee",
    8     "/Users/devongovett/projects/codecs/aurora.js/src/aurora.coffee",
    9     "/Users/devongovett/projects/codecs/aurora.js/src/aurora_base.coffee",
   10     "/Users/devongovett/projects/codecs/aurora.js/src/core/base.coffee",
   11     "/Users/devongovett/projects/codecs/aurora.js/src/core/bitstream.coffee",
   12     "/Users/devongovett/projects/codecs/aurora.js/src/core/buffer.coffee",
   13     "/Users/devongovett/projects/codecs/aurora.js/src/core/bufferlist.coffee",
   14     "/Users/devongovett/projects/codecs/aurora.js/src/core/events.coffee",
   15     "/Users/devongovett/projects/codecs/aurora.js/src/core/stream.coffee",
   16     "/Users/devongovett/projects/codecs/aurora.js/src/core/underflow.coffee",
   17     "/Users/devongovett/projects/codecs/aurora.js/src/decoder.coffee",
   18     "/Users/devongovett/projects/codecs/aurora.js/src/decoders/lpcm.coffee",
   19     "/Users/devongovett/projects/codecs/aurora.js/src/decoders/xlaw.coffee",
   20     "/Users/devongovett/projects/codecs/aurora.js/src/demuxer.coffee",
   21     "/Users/devongovett/projects/codecs/aurora.js/src/demuxers/aiff.coffee",
   22     "/Users/devongovett/projects/codecs/aurora.js/src/demuxers/au.coffee",
   23     "/Users/devongovett/projects/codecs/aurora.js/src/demuxers/caf.coffee",
   24     "/Users/devongovett/projects/codecs/aurora.js/src/demuxers/m4a.coffee",
   25     "/Users/devongovett/projects/codecs/aurora.js/src/demuxers/wave.coffee",
   26     "/Users/devongovett/projects/codecs/aurora.js/src/device.coffee",
   27     "/Users/devongovett/projects/codecs/aurora.js/src/devices/mozilla.coffee",
   28     "/Users/devongovett/projects/codecs/aurora.js/src/devices/resampler.js",
   29     "/Users/devongovett/projects/codecs/aurora.js/src/devices/webaudio.coffee",
   30     "/Users/devongovett/projects/codecs/aurora.js/src/filter.coffee",
   31     "/Users/devongovett/projects/codecs/aurora.js/src/filters/balance.coffee",
   32     "/Users/devongovett/projects/codecs/aurora.js/src/filters/volume.coffee",
   33     "/Users/devongovett/projects/codecs/aurora.js/src/player.coffee",
   34     "/Users/devongovett/projects/codecs/aurora.js/src/queue.coffee",
   35     "/Users/devongovett/projects/codecs/aurora.js/src/sources/browser/file.coffee",
   36     "/Users/devongovett/projects/codecs/aurora.js/src/sources/browser/http.coffee",
   37     "/Users/devongovett/projects/codecs/aurora.js/src/sources/buffer.coffee"
   38   ],
   39   "names": [],
   40   "mappings": "AAAA;ACAA,IAAA,cAAA;;AAAA;AAAA,KAAA,WAAA;kBAAA;AACE,EAAA,OAAQ,CAAA,GAAA,CAAR,GAAe,GAAf,CADF;AAAA,CAAA;;AAAA,OAGA,CAAQ,wBAAR,CAHA,CAAA;;AAAA,OAIA,CAAQ,uBAAR,CAJA,CAAA;;;;ACQA,IAAA,2EAAA;EAAA;;iSAAA;;AAAA,YAAA,GAAe,OAAA,CAAQ,eAAR,CAAf,CAAA;;AAAA,UACA,GAAe,OAAA,CAAQ,qBAAR,CADf,CAAA;;AAAA,UAEA,GAAe,OAAA,CAAQ,qBAAR,CAFf,CAAA;;AAAA,YAGA,GAAe,OAAA,CAAQ,kBAAR,CAHf,CAAA;;AAAA,OAIA,GAAe,OAAA,CAAQ,WAAR,CAJf,CAAA;;AAAA,OAKA,GAAe,OAAA,CAAQ,WAAR,CALf,CAAA;;AAAA;AAQI,0BAAA,CAAA;;AAAa,EAAA,eAAE,MAAF,GAAA;AACT,IADU,IAAC,CAAA,SAAA,MACX,CAAA;AAAA,6CAAA,CAAA;AAAA,qDAAA,CAAA;AAAA,yCAAA,CAAA;AAAA,IAAA,IAAC,CAAA,QAAD,GAAY,CAAZ,CAAA;AAAA,IACA,IAAC,CAAA,QAAD,GAAY,IADZ,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAU,IAFV,CAAA;AAAA,IAGA,IAAC,CAAA,QAAD,GAAY,IAHZ,CAAA;AAAA,IAIA,IAAC,CAAA,MAAD,GAAU,KAJV,CAAA;AAAA,IAKA,IAAC,CAAA,OAAD,GAAW,IALX,CAAA;AAAA,IAMA,IAAC,CAAA,OAAD,GAAW,IANX,CAAA;AAAA,IAQA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,MAAb,EAAqB,IAAC,CAAA,KAAtB,CARA,CAAA;AAAA,IASA,IAAC,CAAA,MAAM,CAAC,EAAR,CAAW,OAAX,EAAoB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,GAAD,GAAA;AAChB,QAAA,KAAC,CAAA,IAAD,CAAM,OAAN,EAAe,GAAf,CAAA,CAAA;eACA,KAAC,CAAA,IAAD,CAAA,EAFgB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAApB,CATA,CAAA;AAAA,IAaA,IAAC,CAAA,MAAM,CAAC,EAAR,CAAW,UAAX,EAAuB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAE,QAAF,GAAA;AACnB,QADoB,KAAC,CAAA,WAAA,QACrB,CAAA;eAAA,KAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,KAAC,CAAA,QAAjB,EADmB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAvB,CAbA,CADS;EAAA,CAAb;;AAAA,EAiBA,KAAC,CAAA,OAAD,GAAU,SAAC,GAAD,GAAA;AACN,WAAW,IAAA,KAAA,CAAU,IAAA,UAAA,CAAW,GAAX,CAAV,CAAX,CADM;EAAA,CAjBV,CAAA;;AAAA,EAoBA,KAAC,CAAA,QAAD,GAAW,SAAC,IAAD,GAAA;AACP,WAAW,IAAA,KAAA,CAAU,IAAA,UAAA,CAAW,IAAX,CAAV,CAAX,CADO;EAAA,CApBX,CAAA;;AAAA,EAuBA,KAAC,CAAA,UAAD,GAAa,SAAC,MAAD,GAAA;AACT,WAAW,IAAA,KAAA,CAAU,IAAA,YAAA,CAAa,MAAb,CAAV,CAAX,CADS;EAAA,CAvBb,CAAA;;AAAA,kBA0BA,KAAA,GAAO,SAAC,MAAD,GAAA;AACH,IAAA,IAAU,IAAC,CAAA,MAAX;AAAA,YAAA,CAAA;KAAA;AAEA,IAAA,IAA0B,cAA1B;AAAA,MAAA,IAAC,CAAA,YAAD,GAAgB,MAAhB,CAAA;KAFA;;MAGA,IAAC,CAAA,eAAgB;KAHjB;AAAA,IAKA,IAAC,CAAA,MAAD,GAAU,IALV,CAAA;AAAA,IAMA,IAAC,CAAA,MAAM,CAAC,KAAR,CAAA,CANA,CAAA;AAQA,IAAA,IAAG,IAAC,CAAA,OAAD,IAAa,IAAC,CAAA,YAAjB;aACI,IAAC,CAAA,OAAD,CAAA,EADJ;KATG;EAAA,CA1BP,CAAA;;AAAA,kBAsCA,IAAA,GAAM,SAAA,GAAA;AACF,IAAA,IAAA,CAAA,IAAe,CAAA,MAAf;AAAA,YAAA,CAAA;KAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAU,KAFV,CAAA;WAGA,IAAC,CAAA,MAAM,CAAC,KAAR,CAAA,EAJE;EAAA,CAtCN,CAAA;;AAAA,kBA4CA,GAAA,GAAK,SAAC,KAAD,EAAQ,QAAR,GAAA;AACD,IAAA,IAAc,KAAA,KAAU,QAAV,IAAA,KAAA,KAAoB,UAApB,IAAA,KAAA,KAAgC,UAA9C;AAAA,YAAA,CAAA;KAAA;AAEA,IAAA,IAAG,mBAAH;aACI,QAAA,CAAS,IAAK,CAAA,KAAA,CAAd,EADJ;KAAA,MAAA;AAGI,MAAA,IAAC,CAAA,IAAD,CAAM,KAAN,EAAa,CAAA,SAAA,KAAA,GAAA;eAAA,SAAC,KAAD,GAAA;AACT,UAAA,KAAC,CAAA,IAAD,CAAA,CAAA,CAAA;iBACA,QAAA,CAAS,KAAT,EAFS;QAAA,EAAA;MAAA,CAAA,CAAA,CAAA,IAAA,CAAb,CAAA,CAAA;aAIA,IAAC,CAAA,KAAD,CAAA,EAPJ;KAHC;EAAA,CA5CL,CAAA;;AAAA,kBAwDA,YAAA,GAAc,SAAA,GAAA;WACV,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,EADU;EAAA,CAxDd,CAAA;;AAAA,kBA2DA,cAAA,GAAgB,SAAC,QAAD,GAAA;AACZ,QAAA,2BAAA;AAAA,IAAA,MAAA,GAAS,CAAT,CAAA;AAAA,IACA,MAAA,GAAS,EADT,CAAA;AAAA,IAEA,IAAC,CAAA,EAAD,CAAI,MAAJ,EAAY,WAAA,GAAc,SAAC,KAAD,GAAA;AACtB,MAAA,MAAA,IAAU,KAAK,CAAC,MAAhB,CAAA;aACA,MAAM,CAAC,IAAP,CAAY,KAAZ,EAFsB;IAAA,CAA1B,CAFA,CAAA;AAAA,IAMA,IAAC,CAAA,IAAD,CAAM,KAAN,EAAa,SAAA,GAAA;AACT,UAAA,4BAAA;AAAA,MAAA,GAAA,GAAU,IAAA,YAAA,CAAa,MAAb,CAAV,CAAA;AAAA,MACA,MAAA,GAAS,CADT,CAAA;AAGA,WAAA,6CAAA;2BAAA;AACI,QAAA,GAAG,CAAC,GAAJ,CAAQ,KAAR,EAAe,MAAf,CAAA,CAAA;AAAA,QACA,MAAA,IAAU,KAAK,CAAC,MADhB,CADJ;AAAA,OAHA;AAAA,MAOA,IAAC,CAAA,GAAD,CAAK,MAAL,EAAa,WAAb,CAPA,CAAA;aAQA,QAAA,CAAS,GAAT,EATS;IAAA,CAAb,CANA,CAAA;WAiBA,IAAC,CAAA,KAAD,CAAA,EAlBY;EAAA,CA3DhB,CAAA;;AAAA,kBA+EA,KAAA,GAAO,SAAC,KAAD,GAAA;AACH,QAAA,OAAA;AAAA,IAAA,IAAA,CAAA,IAAe,CAAA,MAAf;AAAA,YAAA,CAAA;KAAA;AAAA,IAEA,OAAA,GAAU,OAAO,CAAC,IAAR,CAAa,KAAb,CAFV,CAAA;AAGA,IAAA,IAAG,CAAA,OAAH;AACI,aAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,6CAAf,CAAP,CADJ;KAHA;AAAA,IAMA,IAAC,CAAA,OAAD,GAAe,IAAA,OAAA,CAAQ,IAAC,CAAA,MAAT,EAAiB,KAAjB,CANf,CAAA;AAAA,IAOA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,QAAZ,EAAsB,IAAC,CAAA,WAAvB,CAPA,CAAA;AAAA,IASA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,UAAZ,EAAwB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAE,QAAF,GAAA;AACpB,QADqB,KAAC,CAAA,WAAA,QACtB,CAAA;eAAA,KAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,KAAC,CAAA,QAAnB,EADoB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAxB,CATA,CAAA;AAAA,IAYA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,UAAZ,EAAwB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAE,QAAF,GAAA;AACpB,QADqB,KAAC,CAAA,WAAA,QACtB,CAAA;eAAA,KAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,KAAC,CAAA,QAAnB,EADoB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAxB,CAZA,CAAA;WAeA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,OAAZ,EAAqB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,GAAD,GAAA;AACjB,QAAA,KAAC,CAAA,IAAD,CAAM,OAAN,EAAe,GAAf,CAAA,CAAA;eACA,KAAC,CAAA,IAAD,CAAA,EAFiB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAArB,EAhBG;EAAA,CA/EP,CAAA;;AAAA,kBAmGA,WAAA,GAAa,SAAE,MAAF,GAAA;AACT,QAAA,YAAA;AAAA,IADU,IAAC,CAAA,SAAA,MACX,CAAA;AAAA,IAAA,IAAA,CAAA,IAAe,CAAA,MAAf;AAAA,YAAA,CAAA;KAAA;AAAA,IAEA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,MAAjB,CAFA,CAAA;AAAA,IAIA,OAAA,GAAU,OAAO,CAAC,IAAR,CAAa,IAAC,CAAA,MAAM,CAAC,QAArB,CAJV,CAAA;AAKA,IAAA,IAAG,CAAA,OAAH;AACI,aAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAgB,gBAAA,GAAe,IAAC,CAAA,MAAM,CAAC,QAAvB,GAAiC,iBAAjD,CAAP,CADJ;KALA;AAAA,IAQA,IAAC,CAAA,OAAD,GAAe,IAAA,OAAA,CAAQ,IAAC,CAAA,OAAT,EAAkB,IAAC,CAAA,MAAnB,CARf,CAAA;AAUA,IAAA,IAAG,IAAC,CAAA,MAAM,CAAC,aAAX;AACI,MAAA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,MAAZ,EAAoB,CAAA,SAAA,KAAA,GAAA;eAAA,SAAC,MAAD,GAAA;iBAChB,KAAC,CAAA,IAAD,CAAM,MAAN,EAAc,MAAd,EADgB;QAAA,EAAA;MAAA,CAAA,CAAA,CAAA,IAAA,CAApB,CAAA,CADJ;KAAA,MAAA;AAII,MAAA,GAAA,GAAM,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAArC,CAAN,CAAA;AAAA,MACA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,MAAZ,EAAoB,CAAA,SAAA,KAAA,GAAA;eAAA,SAAC,MAAD,GAAA;AAChB,cAAA,wBAAA;AAAA,UAAA,GAAA,GAAU,IAAA,YAAA,CAAa,MAAM,CAAC,MAApB,CAAV,CAAA;AACA,eAAA,qDAAA;+BAAA;AACI,YAAA,GAAI,CAAA,CAAA,CAAJ,GAAS,MAAA,GAAS,GAAlB,CADJ;AAAA,WADA;iBAIA,KAAC,CAAA,IAAD,CAAM,MAAN,EAAc,GAAd,EALgB;QAAA,EAAA;MAAA,CAAA,CAAA,CAAA,IAAA,CAApB,CADA,CAJJ;KAVA;AAAA,IAsBA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,OAAZ,EAAqB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,GAAD,GAAA;AACjB,QAAA,KAAC,CAAA,IAAD,CAAM,OAAN,EAAe,GAAf,CAAA,CAAA;eACA,KAAC,CAAA,IAAD,CAAA,EAFiB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAArB,CAtBA,CAAA;AAAA,IA0BA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,KAAZ,EAAmB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAA,GAAA;eACf,KAAC,CAAA,IAAD,CAAM,KAAN,EADe;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAnB,CA1BA,CAAA;AAAA,IA6BA,IAAC,CAAA,IAAD,CAAM,aAAN,CA7BA,CAAA;AA8BA,IAAA,IAAc,IAAC,CAAA,YAAf;aAAA,IAAC,CAAA,OAAD,CAAA,EAAA;KA/BS;EAAA,CAnGb,CAAA;;AAAA,kBAoIA,OAAA,GAAS,SAAA,GAAA;AACI,WAAM,IAAC,CAAA,OAAO,CAAC,MAAT,CAAA,CAAA,IAAsB,IAAC,CAAA,MAA7B,GAAA;AAAT,eAAS;IAAA,CAAT;AACA,IAAA,IAAkC,IAAC,CAAA,MAAnC;aAAA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,MAAd,EAAsB,IAAC,CAAA,OAAvB,EAAA;KAFK;EAAA,CApIT,CAAA;;eAAA;;GADgB,aAPpB,CAAA;;AAAA,MAgJM,CAAC,OAAP,GAAiB,KAhJjB,CAAA;;;;ACRA,IAAA,cAAA;;AAAA;AAAA,KAAA,WAAA;kBAAA;AACI,EAAA,OAAQ,CAAA,GAAA,CAAR,GAAe,GAAf,CADJ;AAAA,CAAA;;AAAA,OAGA,CAAQ,gBAAR,CAHA,CAAA;;AAAA,OAIA,CAAQ,gBAAR,CAJA,CAAA;;AAAA,OAKA,CAAQ,iBAAR,CALA,CAAA;;AAAA,OAMA,CAAQ,iBAAR,CANA,CAAA;;AAAA,OAOA,CAAQ,eAAR,CAPA,CAAA;;AAAA,OASA,CAAQ,iBAAR,CATA,CAAA;;AAAA,OAUA,CAAQ,iBAAR,CAVA,CAAA;;;;ACAA,OAAO,CAAC,IAAR,GAAe,OAAA,CAAQ,aAAR,CAAf,CAAA;;AAAA,OACO,CAAC,MAAR,GAAiB,OAAA,CAAQ,eAAR,CADjB,CAAA;;AAAA,OAEO,CAAC,UAAR,GAAqB,OAAA,CAAQ,mBAAR,CAFrB,CAAA;;AAAA,OAGO,CAAC,MAAR,GAAiB,OAAA,CAAQ,eAAR,CAHjB,CAAA;;AAAA,OAIO,CAAC,SAAR,GAAoB,OAAA,CAAQ,kBAAR,CAJpB,CAAA;;AAAA,OAKO,CAAC,YAAR,GAAuB,OAAA,CAAQ,eAAR,CALvB,CAAA;;AAAA,OAMO,CAAC,cAAR,GAAyB,OAAA,CAAQ,kBAAR,CANzB,CAAA;;AAAA,OASO,CAAC,UAAR,GAAqB,OAAA,CAAQ,qBAAR,CATrB,CAAA;;AAAA,OAUO,CAAC,UAAR,GAAqB,OAAA,CAAQ,qBAAR,CAVrB,CAAA;;AAAA,OAWO,CAAC,YAAR,GAAuB,OAAA,CAAQ,kBAAR,CAXvB,CAAA;;AAAA,OAaO,CAAC,OAAR,GAAkB,OAAA,CAAQ,WAAR,CAblB,CAAA;;AAAA,OAcO,CAAC,OAAR,GAAkB,OAAA,CAAQ,WAAR,CAdlB,CAAA;;AAAA,OAeO,CAAC,WAAR,GAAsB,OAAA,CAAQ,UAAR,CAftB,CAAA;;AAAA,OAgBO,CAAC,KAAR,GAAgB,OAAA,CAAQ,SAAR,CAhBhB,CAAA;;AAAA,OAiBO,CAAC,MAAR,GAAiB,OAAA,CAAQ,UAAR,CAjBjB,CAAA;;AAAA,OAmBO,CAAC,MAAR,GAAiB,OAAA,CAAQ,UAAR,CAnBjB,CAAA;;AAAA,OAoBO,CAAC,YAAR,GAAuB,OAAA,CAAQ,kBAAR,CApBvB,CAAA;;AAAA,OAqBO,CAAC,aAAR,GAAwB,OAAA,CAAQ,mBAAR,CArBxB,CAAA;;;;ACMA,IAAA,IAAA;EAAA;;uJAAA;;AAAA;AACI,MAAA,MAAA;;oBAAA;;AAAA,EAAA,MAAA,GAAS,YAAT,CAAA;;AAAA,EAEA,IAAC,CAAA,MAAD,GAAS,SAAC,IAAD,GAAA;AACL,QAAA,kCAAA;AAAA,IAAM;AAAN,8BAAA,CAAA;;;;OAAA;;mBAAA;;OAAoB,KAApB,CAAA;AAEA,IAAA,IAAG,MAAA,CAAA,IAAA,KAAe,UAAlB;AACI,MAAA,IAAA,GAAO,MAAM,CAAC,IAAP,CAAY,KAAK,CAAC,SAAlB,CAAP,CAAA;AAAA,MACA,IAAI,CAAC,IAAL,CAAU,KAAV,EAAiB,KAAjB,CADA,CAAA;AAAA,MAGA,IAAA,GAAO,EAHP,CAAA;AAIA;AAAA,WAAA,WAAA;uBAAA;YAAoC,eAAW,IAAX,EAAA,GAAA;AAChC,UAAA,IAAK,CAAA,GAAA,CAAL,GAAY,EAAZ;SADJ;AAAA,OALJ;KAFA;AAAA,IAUA,MAAA,GAAS,KAAK,CAAC,SAVf,CAAA;AAYA,SAAA,WAAA;qBAAA;AAEI,MAAA,IAAG,MAAA,CAAA,EAAA,KAAa,UAAb,IAA4B,MAAM,CAAC,IAAP,CAAY,EAAZ,CAA/B;AACI,QAAG,CAAA,SAAC,GAAD,EAAM,EAAN,GAAA;iBACC,KAAK,CAAA,SAAG,CAAA,GAAA,CAAR,GAAe,SAAA,GAAA;AACX,gBAAA,QAAA;AAAA,YAAA,GAAA,GAAM,IAAI,CAAC,MAAX,CAAA;AAAA,YACA,IAAI,CAAC,MAAL,GAAc,MAAO,CAAA,GAAA,CADrB,CAAA;AAAA,YAGA,GAAA,GAAM,EAAE,CAAC,KAAH,CAAS,IAAT,EAAe,SAAf,CAHN,CAAA;AAAA,YAIA,IAAI,CAAC,MAAL,GAAc,GAJd,CAAA;AAMA,mBAAO,GAAP,CAPW;UAAA,EADhB;QAAA,CAAA,CAAH,CAAI,GAAJ,EAAS,EAAT,CAAA,CADJ;OAAA,MAAA;AAYI,QAAA,KAAK,CAAA,SAAG,CAAA,GAAA,CAAR,GAAe,EAAf,CAZJ;OAFJ;AAAA,KAZA;AA4BA,WAAO,KAAP,CA7BK;EAAA,CAFT,CAAA;;cAAA;;IADJ,CAAA;;AAAA,MAkCM,CAAC,OAAP,GAAiB,IAlCjB,CAAA;;;;ACNA,IAAA,SAAA;;AAAA;AACiB,EAAA,mBAAE,MAAF,GAAA;AACT,IADU,IAAC,CAAA,SAAA,MACX,CAAA;AAAA,IAAA,IAAC,CAAA,WAAD,GAAe,CAAf,CADS;EAAA,CAAb;;AAAA,sBAGA,IAAA,GAAM,SAAA,GAAA;AACF,QAAA,MAAA;AAAA,IAAA,MAAA,GAAa,IAAA,SAAA,CAAU,IAAC,CAAA,MAAM,CAAC,IAAR,CAAA,CAAV,CAAb,CAAA;AAAA,IACA,MAAM,CAAC,WAAP,GAAqB,IAAC,CAAA,WADtB,CAAA;AAEA,WAAO,MAAP,CAHE;EAAA,CAHN,CAAA;;AAAA,sBAQA,MAAA,GAAQ,SAAA,GAAA;AACJ,WAAO,CAAA,GAAI,IAAC,CAAA,MAAM,CAAC,MAAZ,GAAqB,IAAC,CAAA,WAA7B,CADI;EAAA,CARR,CAAA;;AAAA,sBAWA,SAAA,GAAW,SAAC,IAAD,GAAA;AACP,WAAO,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAC,IAAA,GAAO,CAAP,GAAW,IAAC,CAAA,WAAb,CAAA,GAA4B,CAA9C,CAAP,CADO;EAAA,CAXX,CAAA;;AAAA,sBAcA,OAAA,GAAS,SAAC,IAAD,GAAA;AACL,QAAA,GAAA;AAAA,IAAA,GAAA,GAAM,IAAC,CAAA,WAAD,GAAe,IAArB,CAAA;AAAA,IACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,GAAA,IAAO,CAAvB,CADA,CAAA;WAEA,IAAC,CAAA,WAAD,GAAe,GAAA,GAAM,EAHhB;EAAA,CAdT,CAAA;;AAAA,sBAmBA,MAAA,GAAQ,SAAC,IAAD,GAAA;AACJ,QAAA,GAAA;AAAA,IAAA,GAAA,GAAM,IAAC,CAAA,WAAD,GAAe,IAArB,CAAA;AAAA,IACA,IAAC,CAAA,MAAM,CAAC,MAAR,CAAe,IAAI,CAAC,GAAL,CAAS,GAAA,IAAO,CAAhB,CAAf,CADA,CAAA;WAEA,IAAC,CAAA,WAAD,GAAe,GAAA,GAAM,EAHjB;EAAA,CAnBR,CAAA;;AAAA,sBAwBA,IAAA,GAAM,SAAC,MAAD,GAAA;AACF,QAAA,SAAA;AAAA,IAAA,SAAA,GAAY,IAAC,CAAA,MAAD,CAAA,CAAZ,CAAA;AAEA,IAAA,IAAG,MAAA,GAAS,SAAZ;aACI,IAAC,CAAA,OAAD,CAAS,MAAA,GAAS,SAAlB,EADJ;KAAA,MAGK,IAAG,MAAA,GAAS,SAAZ;aACD,IAAC,CAAA,MAAD,CAAQ,SAAA,GAAY,MAApB,EADC;KANH;EAAA,CAxBN,CAAA;;AAAA,sBAiCA,KAAA,GAAO,SAAA,GAAA;AACH,IAAA,IAAO,IAAC,CAAA,WAAD,KAAgB,CAAvB;AACI,MAAA,IAAC,CAAA,WAAD,GAAe,CAAf,CAAA;aACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,EAFJ;KADG;EAAA,CAjCP,CAAA;;AAAA,sBAsCA,IAAA,GAAM,SAAC,IAAD,EAAO,MAAP,GAAA;AACF,QAAA,4BAAA;AAAA,IAAA,IAAY,IAAA,KAAQ,CAApB;AAAA,aAAO,CAAP,CAAA;KAAA;AAAA,IAEA,KAAA,GAAQ,IAAA,GAAO,IAAC,CAAA,WAFhB,CAAA;AAGA,IAAA,IAAG,KAAA,IAAS,CAAZ;AACI,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAA,CAAA,IAAuB,IAAC,CAAA,WAAzB,CAAA,GAAwC,IAAzC,CAAA,KAAmD,CAAC,CAAA,GAAI,IAAL,CAAvD,CADJ;KAAA,MAGK,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,GAAyC,MAA1C,CAAA,KAAsD,CAAC,EAAA,GAAK,IAAN,CAA1D,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,GAAyC,QAA1C,CAAA,KAAwD,CAAC,EAAA,GAAK,IAAN,CAA5D,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,KAA2C,CAAC,EAAA,GAAK,IAAN,CAA/C,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,GAAuB,YAA5B,CAAA;AAAA,MACA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,EAAxB,KAA+B,CADpC,CAAA;AAAA,MAEA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,EAF7B,CAAA;AAAA,MAGA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,CAH7B,CAAA;AAAA,MAIA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAJL,CAAA;AAAA,MAMA,CAAA,GAAI,EAAA,GAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB,EANxB,CAAA;AAAA,MAOA,CAAA,IAAK,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAlB,CAPL,CAAA;AAAA,MAQA,CAAA,GAAI,IAAI,CAAC,KAAL,CAAW,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAN,GAAoB,IAAhC,CAAf,CARJ,CADC;KAAA,MAAA;AAYD,YAAU,IAAA,KAAA,CAAM,gBAAN,CAAV,CAZC;KAfL;AA6BA,IAAA,IAAG,MAAH;AAGI,MAAA,IAAG,KAAA,GAAQ,EAAX;AACI,QAAA,IAAG,CAAA,KAAM,CAAC,IAAA,GAAO,CAAR,CAAT;AACI,UAAA,CAAA,GAAI,CAAC,CAAC,CAAA,IAAK,IAAL,KAAc,CAAf,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SADJ;OAAA,MAAA;AAII,QAAA,IAAG,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAA,GAAO,CAAnB,CAAJ,GAA4B,CAA/B;AACI,UAAA,CAAA,GAAI,CAAC,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SAJJ;OAHJ;KA7BA;AAAA,IAuCA,IAAC,CAAA,OAAD,CAAS,IAAT,CAvCA,CAAA;AAwCA,WAAO,CAAP,CAzCE;EAAA,CAtCN,CAAA;;AAAA,sBAiFA,IAAA,GAAM,SAAC,IAAD,EAAO,MAAP,GAAA;AACF,QAAA,4BAAA;AAAA,IAAA,IAAY,IAAA,KAAQ,CAApB;AAAA,aAAO,CAAP,CAAA;KAAA;AAAA,IAEA,KAAA,GAAQ,IAAA,GAAO,IAAC,CAAA,WAFhB,CAAA;AAGA,IAAA,IAAG,KAAA,IAAS,CAAZ;AACI,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAA,CAAA,IAAuB,IAAC,CAAA,WAAzB,CAAA,GAAwC,IAAzC,CAAA,KAAmD,CAAC,CAAA,GAAI,IAAL,CAAvD,CADJ;KAAA,MAGK,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,GAAyC,MAA1C,CAAA,KAAsD,CAAC,EAAA,GAAK,IAAN,CAA1D,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,GAAyC,QAA1C,CAAA,KAAwD,CAAC,EAAA,GAAK,IAAN,CAA5D,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,CAAA,GAAI,CAAC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,IAAwB,IAAC,CAAA,WAA1B,CAAA,KAA2C,CAAC,EAAA,GAAK,IAAN,CAA/C,CADC;KAAA,MAGA,IAAG,KAAA,IAAS,EAAZ;AACD,MAAA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,GAAuB,YAA5B,CAAA;AAAA,MACA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,EAAxB,KAA+B,CADpC,CAAA;AAAA,MAEA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,EAF7B,CAAA;AAAA,MAGA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAwB,CAH7B,CAAA;AAAA,MAIA,EAAA,GAAK,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAJL,CAAA;AAAA,MAMA,CAAA,GAAI,EAAA,GAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB,EANxB,CAAA;AAAA,MAOA,CAAA,IAAK,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAlB,CAPL,CAAA;AAAA,MAQA,CAAA,GAAI,IAAI,CAAC,KAAL,CAAW,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAN,GAAoB,IAAhC,CAAf,CARJ,CADC;KAAA,MAAA;AAYD,YAAU,IAAA,KAAA,CAAM,gBAAN,CAAV,CAZC;KAfL;AA6BA,IAAA,IAAG,MAAH;AAGI,MAAA,IAAG,KAAA,GAAQ,EAAX;AACI,QAAA,IAAG,CAAA,KAAM,CAAC,IAAA,GAAO,CAAR,CAAT;AACI,UAAA,CAAA,GAAI,CAAC,CAAC,CAAA,IAAK,IAAL,KAAc,CAAf,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SADJ;OAAA,MAAA;AAII,QAAA,IAAG,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAA,GAAO,CAAnB,CAAJ,GAA4B,CAA/B;AACI,UAAA,CAAA,GAAI,CAAC,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SAJJ;OAHJ;KA7BA;AAuCA,WAAO,CAAP,CAxCE;EAAA,CAjFN,CAAA;;AAAA,sBA2HA,OAAA,GAAS,SAAC,IAAD,EAAO,MAAP,GAAA;AACL,QAAA,QAAA;AAAA,IAAA,IAAY,IAAA,KAAQ,CAApB;AAAA,aAAO,CAAP,CAAA;KAAA;AACA,IAAA,IAAG,IAAA,GAAO,EAAV;AACI,YAAU,IAAA,KAAA,CAAM,gBAAN,CAAV,CADJ;KADA;AAAA,IAIA,KAAA,GAAQ,IAAA,GAAO,IAAC,CAAA,WAJhB,CAAA;AAAA,IAKA,CAAA,GAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,KAA2B,IAAC,CAAA,WALjC,CAAA;AAMA,IAAA,IAAsD,KAAA,GAAQ,CAA9D;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,CAAA,GAAK,IAAC,CAAA,WAAP,CAA/B,CAAA;KANA;AAOA,IAAA,IAAsD,KAAA,GAAQ,EAA9D;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,EAAA,GAAK,IAAC,CAAA,WAAP,CAA/B,CAAA;KAPA;AAQA,IAAA,IAA4D,KAAA,GAAQ,EAApE;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,EAAA,GAAK,IAAC,CAAA,WAAP,CAA1B,KAAkD,CAAvD,CAAA;KARA;AASA,IAAA,IAAgE,KAAA,GAAQ,EAAxE;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,GAAyB,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAlB,CAA9B,CAAA;KATA;AAWA,IAAA,IAAG,KAAA,IAAS,EAAZ;AACI,MAAA,CAAA,IAAK,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAL,CADJ;KAAA,MAAA;AAGI,MAAA,CAAA,IAAK,CAAC,CAAA,IAAK,IAAN,CAAA,GAAc,CAAnB,CAHJ;KAXA;AAgBA,IAAA,IAAG,MAAH;AAGI,MAAA,IAAG,KAAA,GAAQ,EAAX;AACI,QAAA,IAAG,CAAA,KAAM,CAAC,IAAA,GAAO,CAAR,CAAT;AACI,UAAA,CAAA,GAAI,CAAC,CAAC,CAAA,IAAK,IAAL,KAAc,CAAf,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SADJ;OAAA,MAAA;AAII,QAAA,IAAG,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAA,GAAO,CAAnB,CAAJ,GAA4B,CAA/B;AACI,UAAA,CAAA,GAAI,CAAC,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SAJJ;OAHJ;KAhBA;AAAA,IA0BA,IAAC,CAAA,OAAD,CAAS,IAAT,CA1BA,CAAA;AA2BA,WAAO,CAAP,CA5BK;EAAA,CA3HT,CAAA;;AAAA,sBAyJA,OAAA,GAAS,SAAC,IAAD,EAAO,MAAP,GAAA;AACL,QAAA,QAAA;AAAA,IAAA,IAAY,IAAA,KAAQ,CAApB;AAAA,aAAO,CAAP,CAAA;KAAA;AACA,IAAA,IAAG,IAAA,GAAO,EAAV;AACI,YAAU,IAAA,KAAA,CAAM,gBAAN,CAAV,CADJ;KADA;AAAA,IAIA,KAAA,GAAQ,IAAA,GAAO,IAAC,CAAA,WAJhB,CAAA;AAAA,IAKA,CAAA,GAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,KAA2B,IAAC,CAAA,WALjC,CAAA;AAMA,IAAA,IAAsD,KAAA,GAAQ,CAA9D;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,CAAA,GAAK,IAAC,CAAA,WAAP,CAA/B,CAAA;KANA;AAOA,IAAA,IAAsD,KAAA,GAAQ,EAA9D;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,EAAA,GAAK,IAAC,CAAA,WAAP,CAA/B,CAAA;KAPA;AAQA,IAAA,IAA4D,KAAA,GAAQ,EAApE;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,IAA0B,CAAC,EAAA,GAAK,IAAC,CAAA,WAAP,CAA1B,KAAkD,CAAvD,CAAA;KARA;AASA,IAAA,IAAgE,KAAA,GAAQ,EAAxE;AAAA,MAAA,CAAA,IAAK,CAAC,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAD,CAAA,GAAyB,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,EAAA,GAAK,IAAC,CAAA,WAAlB,CAA9B,CAAA;KATA;AAWA,IAAA,IAAG,KAAA,IAAS,EAAZ;AACI,MAAA,CAAA,IAAK,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAL,CADJ;KAAA,MAAA;AAGI,MAAA,CAAA,IAAK,CAAC,CAAA,IAAK,IAAN,CAAA,GAAc,CAAnB,CAHJ;KAXA;AAgBA,IAAA,IAAG,MAAH;AAGI,MAAA,IAAG,KAAA,GAAQ,EAAX;AACI,QAAA,IAAG,CAAA,KAAM,CAAC,IAAA,GAAO,CAAR,CAAT;AACI,UAAA,CAAA,GAAI,CAAC,CAAC,CAAA,IAAK,IAAL,KAAc,CAAf,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SADJ;OAAA,MAAA;AAII,QAAA,IAAG,CAAA,GAAI,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAA,GAAO,CAAnB,CAAJ,GAA4B,CAA/B;AACI,UAAA,CAAA,GAAI,CAAC,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,IAAZ,CAAA,GAAoB,CAArB,CAAA,GAA0B,CAAA,CAA9B,CADJ;SAJJ;OAHJ;KAhBA;AA0BA,WAAO,CAAP,CA3BK;EAAA,CAzJT,CAAA;;mBAAA;;IADJ,CAAA;;AAAA,MAuLM,CAAC,OAAP,GAAiB,SAvLjB,CAAA;;;;ACAA,IAAA,QAAA;;AAAA;AACI,MAAA,gBAAA;;AAAa,EAAA,kBAAC,KAAD,GAAA;AACT,QAAA,IAAA;AAAA,IAAA,IAAG,KAAA,YAAiB,UAApB;AACI,MAAA,IAAC,CAAA,IAAD,GAAQ,KAAR,CADJ;KAAA,MAGK,IAAG,KAAA,YAAiB,WAAjB,IACN,KAAK,CAAC,OAAN,CAAc,KAAd,CADM,IAEN,MAAA,CAAA,KAAA,KAAgB,QAFV,0CAGO,CAAE,QAAf,CAAwB,KAAxB,WAHG;AAID,MAAA,IAAC,CAAA,IAAD,GAAY,IAAA,UAAA,CAAW,KAAX,CAAZ,CAJC;KAAA,MAMA,IAAG,KAAK,CAAC,MAAN,YAAwB,WAA3B;AACD,MAAA,IAAC,CAAA,IAAD,GAAY,IAAA,UAAA,CAAW,KAAK,CAAC,MAAjB,EAAyB,KAAK,CAAC,UAA/B,EAA2C,KAAK,CAAC,MAAN,GAAe,KAAK,CAAC,iBAAhE,CAAZ,CADC;KAAA,MAGA,IAAG,KAAA,YAAiB,QAApB;AACD,MAAA,IAAC,CAAA,IAAD,GAAQ,KAAK,CAAC,IAAd,CADC;KAAA,MAAA;AAID,YAAU,IAAA,KAAA,CAAM,wCAAN,CAAV,CAJC;KAZL;AAAA,IAkBA,IAAC,CAAA,MAAD,GAAU,IAAC,CAAA,IAAI,CAAC,MAlBhB,CAAA;AAAA,IAqBA,IAAC,CAAA,IAAD,GAAQ,IArBR,CAAA;AAAA,IAsBA,IAAC,CAAA,IAAD,GAAQ,IAtBR,CADS;EAAA,CAAb;;AAAA,EAyBA,QAAC,CAAA,QAAD,GAAW,SAAC,IAAD,GAAA;AACP,WAAW,IAAA,QAAA,CAAS,IAAT,CAAX,CADO;EAAA,CAzBX,CAAA;;AAAA,qBA4BA,IAAA,GAAM,SAAA,GAAA;AACF,WAAW,IAAA,QAAA,CAAa,IAAA,UAAA,CAAW,IAAC,CAAA,IAAZ,CAAb,CAAX,CADE;EAAA,CA5BN,CAAA;;AAAA,qBA+BA,KAAA,GAAO,SAAC,QAAD,EAAW,MAAX,GAAA;;MAAW,SAAS,IAAC,CAAA;KACxB;AAAA,IAAA,IAAG,QAAA,KAAY,CAAZ,IAAkB,MAAA,IAAU,IAAC,CAAA,MAAhC;AACI,aAAW,IAAA,QAAA,CAAS,IAAC,CAAA,IAAV,CAAX,CADJ;KAAA,MAAA;AAGI,aAAW,IAAA,QAAA,CAAS,IAAC,CAAA,IAAI,CAAC,QAAN,CAAe,QAAf,EAAyB,QAAA,GAAW,MAApC,CAAT,CAAX,CAHJ;KADG;EAAA,CA/BP,CAAA;;AAAA,EAsCA,WAAA,GAAc,MAAM,CAAC,WAAP,IAAsB,MAAM,CAAC,cAA7B,IAA+C,MAAM,CAAC,iBAtCpE,CAAA;;AAAA,EAuCA,GAAA,GAAM,MAAM,CAAC,GAAP,IAAc,MAAM,CAAC,SAArB,IAAkC,MAAM,CAAC,MAvC/C,CAAA;;AAAA,EAyCA,QAAC,CAAA,QAAD,GAAW,SAAC,IAAD,EAAO,IAAP,GAAA;AAEP,QAAA,EAAA;;MAFc,OAAO;KAErB;AAAA;AACI,aAAW,IAAA,IAAA,CAAK,CAAC,IAAD,CAAL,EAAa;AAAA,QAAA,IAAA,EAAM,IAAN;OAAb,CAAX,CADJ;KAAA,kBAAA;AAIA,IAAA,IAAG,mBAAH;AACI,MAAA,EAAA,GAAK,GAAA,CAAA,WAAL,CAAA;AAAA,MACA,EAAE,CAAC,MAAH,CAAU,IAAV,CADA,CAAA;AAEA,aAAO,EAAE,CAAC,OAAH,CAAW,IAAX,CAAP,CAHJ;KAJA;AAUA,WAAO,IAAP,CAZO;EAAA,CAzCX,CAAA;;AAAA,EAuDA,QAAC,CAAA,WAAD,GAAc,SAAC,IAAD,EAAO,IAAP,GAAA;AACV,yBAAO,GAAG,CAAE,eAAL,CAAqB,IAAC,CAAA,QAAD,CAAU,IAAV,EAAgB,IAAhB,CAArB,UAAP,CADU;EAAA,CAvDd,CAAA;;AAAA,EA0DA,QAAC,CAAA,aAAD,GAAgB,SAAC,GAAD,GAAA;yBACZ,GAAG,CAAE,eAAL,CAAqB,GAArB,WADY;EAAA,CA1DhB,CAAA;;AAAA,qBA6DA,MAAA,GAAQ,SAAA,GAAA;AACJ,WAAO,QAAQ,CAAC,QAAT,CAAkB,IAAC,CAAA,IAAI,CAAC,MAAxB,CAAP,CADI;EAAA,CA7DR,CAAA;;AAAA,qBAgEA,SAAA,GAAW,SAAA,GAAA;AACP,WAAO,QAAQ,CAAC,WAAT,CAAqB,IAAC,CAAA,IAAI,CAAC,MAA3B,CAAP,CADO;EAAA,CAhEX,CAAA;;kBAAA;;IADJ,CAAA;;AAAA,MAoEM,CAAC,OAAP,GAAiB,QApEjB,CAAA;;;;;;ACAA,IAAA,UAAA;;AAAA;AACiB,EAAA,oBAAA,GAAA;AACT,IAAA,IAAC,CAAA,KAAD,GAAS,IAAT,CAAA;AAAA,IACA,IAAC,CAAA,IAAD,GAAQ,IADR,CAAA;AAAA,IAEA,IAAC,CAAA,UAAD,GAAc,CAFd,CAAA;AAAA,IAGA,IAAC,CAAA,cAAD,GAAkB,CAHlB,CAAA;AAAA,IAIA,IAAC,CAAA,gBAAD,GAAoB,CAJpB,CADS;EAAA,CAAb;;AAAA,uBAOA,IAAA,GAAM,SAAA,GAAA;AACF,QAAA,MAAA;AAAA,IAAA,MAAA,GAAS,GAAA,CAAA,UAAT,CAAA;AAAA,IAEA,MAAM,CAAC,KAAP,GAAe,IAAC,CAAA,KAFhB,CAAA;AAAA,IAGA,MAAM,CAAC,IAAP,GAAc,IAAC,CAAA,IAHf,CAAA;AAAA,IAIA,MAAM,CAAC,UAAP,GAAoB,IAAC,CAAA,UAJrB,CAAA;AAAA,IAKA,MAAM,CAAC,cAAP,GAAwB,IAAC,CAAA,cALzB,CAAA;AAAA,IAMA,MAAM,CAAC,gBAAP,GAA0B,IAAC,CAAA,gBAN3B,CAAA;AAQA,WAAO,MAAP,CATE;EAAA,CAPN,CAAA;;AAAA,uBAkBA,MAAA,GAAQ,SAAC,MAAD,GAAA;AACJ,QAAA,IAAA;AAAA,IAAA,MAAM,CAAC,IAAP,GAAc,IAAC,CAAA,IAAf,CAAA;;UACK,CAAE,IAAP,GAAc;KADd;AAAA,IAEA,IAAC,CAAA,IAAD,GAAQ,MAFR,CAAA;;MAGA,IAAC,CAAA,QAAS;KAHV;AAAA,IAKA,IAAC,CAAA,cAAD,IAAmB,MAAM,CAAC,MAL1B,CAAA;AAAA,IAMA,IAAC,CAAA,gBAAD,EANA,CAAA;WAOA,IAAC,CAAA,UAAD,GARI;EAAA,CAlBR,CAAA;;AAAA,uBA4BA,OAAA,GAAS,SAAA,GAAA;AACL,IAAA,IAAG,IAAC,CAAA,KAAJ;AACI,MAAA,IAAC,CAAA,cAAD,IAAmB,IAAC,CAAA,KAAK,CAAC,MAA1B,CAAA;AAAA,MACA,IAAC,CAAA,gBAAD,EADA,CAAA;AAAA,MAEA,IAAC,CAAA,KAAD,GAAS,IAAC,CAAA,KAAK,CAAC,IAFhB,CAAA;AAGA,aAAO,kBAAP,CAJJ;KAAA;AAMA,WAAO,KAAP,CAPK;EAAA,CA5BT,CAAA;;AAAA,uBAqCA,MAAA,GAAQ,SAAA,GAAA;AACJ,QAAA,IAAA;AAAA,IAAA,IAAG,IAAC,CAAA,KAAD,IAAW,CAAA,IAAK,CAAA,KAAK,CAAC,IAAzB;AACI,aAAO,KAAP,CADJ;KAAA;AAAA,IAGA,IAAC,CAAA,KAAD,sCAAe,CAAE,cAAR,IAAgB,IAAC,CAAA,IAH1B,CAAA;AAIA,IAAA,IAAG,IAAC,CAAA,KAAJ;AACI,MAAA,IAAC,CAAA,cAAD,IAAmB,IAAC,CAAA,KAAK,CAAC,MAA1B,CAAA;AAAA,MACA,IAAC,CAAA,gBAAD,EADA,CADJ;KAJA;AAQA,WAAO,kBAAP,CATI;EAAA,CArCR,CAAA;;AAAA,uBAgDA,KAAA,GAAO,SAAA,GAAA;AACH,QAAA,QAAA;AAAS;WAAM,IAAC,CAAA,MAAD,CAAA,CAAN,GAAA;AAAT,eAAS;IAAA,CAAA;oBADN;EAAA,CAhDP,CAAA;;oBAAA;;IADJ,CAAA;;AAAA,MAoDM,CAAC,OAAP,GAAiB,UApDjB,CAAA;;;;ACAA,IAAA,kBAAA;EAAA;;oBAAA;;AAAA,IAAA,GAAO,OAAA,CAAQ,QAAR,CAAP,CAAA;;AAAA;AAGI,iCAAA,CAAA;;;;GAAA;;AAAA,yBAAA,EAAA,GAAI,SAAC,KAAD,EAAQ,EAAR,GAAA;AACA,QAAA,KAAA;;MAAA,IAAC,CAAA,SAAU;KAAX;;WACQ,CAAA,KAAA,IAAU;KADlB;WAEA,IAAC,CAAA,MAAO,CAAA,KAAA,CAAM,CAAC,IAAf,CAAoB,EAApB,EAHA;EAAA,CAAJ,CAAA;;AAAA,yBAKA,GAAA,GAAK,SAAC,KAAD,EAAQ,EAAR,GAAA;AACD,QAAA,WAAA;AAAA,IAAA,IAAA,CAAA,oCAAuB,CAAA,KAAA,WAAvB;AAAA,YAAA,CAAA;KAAA;AAAA,IACA,KAAA,GAAQ,IAAC,CAAA,MAAO,CAAA,KAAA,CAAM,CAAC,OAAf,CAAuB,EAAvB,CADR,CAAA;AAEA,IAAA,IAAmC,CAAA,KAAnC;aAAA,IAAC,CAAA,MAAO,CAAA,KAAA,CAAM,CAAC,MAAf,CAAsB,KAAtB,EAA6B,CAA7B,EAAA;KAHC;EAAA,CALL,CAAA;;AAAA,yBAUA,IAAA,GAAM,SAAC,KAAD,EAAQ,EAAR,GAAA;AACF,QAAA,EAAA;WAAA,IAAC,CAAA,EAAD,CAAI,KAAJ,EAAW,EAAA,GAAK,SAAA,GAAA;AACZ,MAAA,IAAC,CAAA,GAAD,CAAK,KAAL,EAAY,EAAZ,CAAA,CAAA;aACA,EAAE,CAAC,KAAH,CAAS,IAAT,EAAe,SAAf,EAFY;IAAA,CAAhB,EADE;EAAA,CAVN,CAAA;;AAAA,yBAeA,IAAA,GAAM,SAAA,GAAA;AACF,QAAA,sCAAA;AAAA,IADG,sBAAO,8DACV,CAAA;AAAA,IAAA,IAAA,CAAA,oCAAuB,CAAA,KAAA,WAAvB;AAAA,YAAA,CAAA;KAAA;AAIA;AAAA,SAAA,4CAAA;qBAAA;AACI,MAAA,EAAE,CAAC,KAAH,CAAS,IAAT,EAAe,IAAf,CAAA,CADJ;AAAA,KALE;EAAA,CAfN,CAAA;;sBAAA;;GADuB,KAF3B,CAAA;;AAAA,MA4BM,CAAC,OAAP,GAAiB,YA5BjB,CAAA;;;;ACAA,IAAA,4CAAA;;AAAA,UAAA,GAAa,OAAA,CAAQ,cAAR,CAAb,CAAA;;AAAA,QACA,GAAW,OAAA,CAAQ,UAAR,CADX,CAAA;;AAAA,cAEA,GAAiB,OAAA,CAAQ,aAAR,CAFjB,CAAA;;AAAA;AAKI,MAAA,sHAAA;;AAAA,EAAA,GAAA,GAAU,IAAA,WAAA,CAAY,EAAZ,CAAV,CAAA;;AAAA,EACA,KAAA,GAAY,IAAA,UAAA,CAAW,GAAX,CADZ,CAAA;;AAAA,EAEA,IAAA,GAAW,IAAA,SAAA,CAAU,GAAV,CAFX,CAAA;;AAAA,EAGA,MAAA,GAAa,IAAA,WAAA,CAAY,GAAZ,CAHb,CAAA;;AAAA,EAIA,KAAA,GAAY,IAAA,UAAA,CAAW,GAAX,CAJZ,CAAA;;AAAA,EAKA,MAAA,GAAa,IAAA,WAAA,CAAY,GAAZ,CALb,CAAA;;AAAA,EAMA,KAAA,GAAY,IAAA,UAAA,CAAW,GAAX,CANZ,CAAA;;AAAA,EAOA,OAAA,GAAc,IAAA,YAAA,CAAa,GAAb,CAPd,CAAA;;AAQA,EAAA,IAAmC,4DAAnC;AAAA,IAAA,OAAA,GAAc,IAAA,YAAA,CAAa,GAAb,CAAd,CAAA;GARA;;AAAA,EAYA,YAAA,GAAe,GAAA,CAAA,WAAI,CAAY,GAAA,CAAA,UAAI,CAAW,CAAC,IAAD,EAAO,IAAP,CAAX,CAAwB,CAAC,MAAzC,CAAiD,CAAA,CAAA,CAArD,KAA2D,MAZ1E,CAAA;;AAca,EAAA,gBAAE,IAAF,GAAA;AACT,IADU,IAAC,CAAA,OAAA,IACX,CAAA;AAAA,IAAA,IAAC,CAAA,WAAD,GAAe,CAAf,CAAA;AAAA,IACA,IAAC,CAAA,MAAD,GAAU,CADV,CADS;EAAA,CAdb;;AAAA,EAkBA,MAAC,CAAA,UAAD,GAAa,SAAC,MAAD,GAAA;AACT,QAAA,IAAA;AAAA,IAAA,IAAA,GAAO,GAAA,CAAA,UAAP,CAAA;AAAA,IACA,IAAI,CAAC,MAAL,CAAY,MAAZ,CADA,CAAA;AAEA,WAAW,IAAA,MAAA,CAAO,IAAP,CAAX,CAHS;EAAA,CAlBb,CAAA;;AAAA,mBAuBA,IAAA,GAAM,SAAA,GAAA;AACF,QAAA,MAAA;AAAA,IAAA,MAAA,GAAa,IAAA,MAAA,CAAO,IAAC,CAAA,IAAI,CAAC,IAAN,CAAA,CAAP,CAAb,CAAA;AAAA,IACA,MAAM,CAAC,WAAP,GAAqB,IAAC,CAAA,WADtB,CAAA;AAAA,IAEA,MAAM,CAAC,MAAP,GAAgB,IAAC,CAAA,MAFjB,CAAA;AAGA,WAAO,MAAP,CAJE;EAAA,CAvBN,CAAA;;AAAA,mBA6BA,SAAA,GAAW,SAAC,KAAD,GAAA;AACP,WAAO,KAAA,IAAS,IAAC,CAAA,IAAI,CAAC,cAAN,GAAuB,IAAC,CAAA,WAAxC,CADO;EAAA,CA7BX,CAAA;;AAAA,mBAgCA,cAAA,GAAgB,SAAA,GAAA;AACZ,WAAO,IAAC,CAAA,IAAI,CAAC,cAAN,GAAuB,IAAC,CAAA,WAA/B,CADY;EAAA,CAhChB,CAAA;;AAAA,mBAmCA,OAAA,GAAS,SAAC,KAAD,GAAA;AACL,IAAA,IAAG,CAAA,IAAK,CAAA,SAAD,CAAW,KAAX,CAAP;AACI,YAAU,IAAA,cAAA,CAAA,CAAV,CADJ;KAAA;AAAA,IAGA,IAAC,CAAA,WAAD,IAAgB,KAHhB,CAAA;AAAA,IAIA,IAAC,CAAA,MAAD,IAAW,KAJX,CAAA;AAMA,WAAM,IAAC,CAAA,IAAI,CAAC,KAAN,IAAgB,IAAC,CAAA,WAAD,IAAgB,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAAlD,GAAA;AACI,MAAA,IAAC,CAAA,WAAD,IAAgB,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAA5B,CAAA;AAAA,MACA,IAAC,CAAA,IAAI,CAAC,OAAN,CAAA,CADA,CADJ;IAAA,CANA;AAUA,WAAO,IAAP,CAXK;EAAA,CAnCT,CAAA;;AAAA,mBAgDA,MAAA,GAAQ,SAAC,KAAD,GAAA;AACJ,IAAA,IAAG,KAAA,GAAQ,IAAC,CAAA,MAAZ;AACI,YAAU,IAAA,cAAA,CAAA,CAAV,CADJ;KAAA;AAIA,IAAA,IAAG,CAAA,IAAK,CAAA,IAAI,CAAC,KAAb;AACI,MAAA,IAAC,CAAA,IAAI,CAAC,MAAN,CAAA,CAAA,CAAA;AAAA,MACA,IAAC,CAAA,WAAD,GAAe,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAD3B,CADJ;KAJA;AAAA,IAQA,IAAC,CAAA,WAAD,IAAgB,KARhB,CAAA;AAAA,IASA,IAAC,CAAA,MAAD,IAAW,KATX,CAAA;AAWA,WAAM,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,IAAZ,IAAqB,IAAC,CAAA,WAAD,GAAe,CAA1C,GAAA;AACI,MAAA,IAAC,CAAA,IAAI,CAAC,MAAN,CAAA,CAAA,CAAA;AAAA,MACA,IAAC,CAAA,WAAD,IAAgB,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAD5B,CADJ;IAAA,CAXA;AAeA,WAAO,IAAP,CAhBI;EAAA,CAhDR,CAAA;;AAAA,mBAkEA,IAAA,GAAM,SAAC,QAAD,GAAA;AACF,IAAA,IAAG,QAAA,GAAW,IAAC,CAAA,MAAf;aACI,IAAC,CAAA,OAAD,CAAS,QAAA,GAAW,IAAC,CAAA,MAArB,EADJ;KAAA,MAGK,IAAG,QAAA,GAAW,IAAC,CAAA,MAAf;aACD,IAAC,CAAA,MAAD,CAAQ,IAAC,CAAA,MAAD,GAAU,QAAlB,EADC;KAJH;EAAA,CAlEN,CAAA;;AAAA,mBAyEA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,CAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,SAAD,CAAW,CAAX,CAAP;AACI,YAAU,IAAA,cAAA,CAAA,CAAV,CADJ;KAAA;AAAA,IAGA,CAAA,GAAI,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,IAAK,CAAA,IAAC,CAAA,WAAD,CAHrB,CAAA;AAAA,IAIA,IAAC,CAAA,WAAD,IAAgB,CAJhB,CAAA;AAAA,IAKA,IAAC,CAAA,MAAD,IAAW,CALX,CAAA;AAOA,IAAA,IAAG,IAAC,CAAA,WAAD,KAAgB,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAA/B;AACI,MAAA,IAAC,CAAA,WAAD,GAAe,CAAf,CAAA;AAAA,MACA,IAAC,CAAA,IAAI,CAAC,OAAN,CAAA,CADA,CADJ;KAPA;AAWA,WAAO,CAAP,CAZO;EAAA,CAzEX,CAAA;;AAAA,mBAuFA,SAAA,GAAW,SAAC,MAAD,GAAA;AACP,QAAA,MAAA;;MADQ,SAAS;KACjB;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAP;AACI,YAAU,IAAA,cAAA,CAAA,CAAV,CADJ;KAAA;AAAA,IAGA,MAAA,GAAS,IAAC,CAAA,WAAD,GAAe,MAHxB,CAAA;AAAA,IAIA,MAAA,GAAS,IAAC,CAAA,IAAI,CAAC,KAJf,CAAA;AAMA,WAAM,MAAN,GAAA;AACI,MAAA,IAAG,MAAM,CAAC,MAAP,GAAgB,MAAnB;AACI,eAAO,MAAM,CAAC,IAAK,CAAA,MAAA,CAAnB,CADJ;OAAA;AAAA,MAGA,MAAA,IAAU,MAAM,CAAC,MAHjB,CAAA;AAAA,MAIA,MAAA,GAAS,MAAM,CAAC,IAJhB,CADJ;IAAA,CANA;AAaA,WAAO,CAAP,CAdO;EAAA,CAvFX,CAAA;;AAAA,mBAuGA,IAAA,GAAM,SAAC,KAAD,EAAQ,YAAR,GAAA;AACF,QAAA,eAAA;;MADU,eAAe;KACzB;AAAA,IAAA,IAAG,YAAA,KAAgB,YAAnB;AACI,WAAS,mCAAT,GAAA;AACI,QAAA,KAAM,CAAA,CAAA,CAAN,GAAW,IAAC,CAAA,SAAD,CAAA,CAAX,CADJ;AAAA,OADJ;KAAA,MAAA;AAII,WAAS,gDAAT,GAAA;AACI,QAAA,KAAM,CAAA,CAAA,CAAN,GAAW,IAAC,CAAA,SAAD,CAAA,CAAX,CADJ;AAAA,OAJJ;KADE;EAAA,CAvGN,CAAA;;AAAA,mBAiHA,IAAA,GAAM,SAAC,KAAD,EAAQ,MAAR,EAAgB,YAAhB,GAAA;AACF,QAAA,SAAA;;MADkB,eAAe;KACjC;AAAA,IAAA,IAAG,YAAA,KAAgB,YAAnB;AACI,WAAS,mCAAT,GAAA;AACI,QAAA,KAAM,CAAA,CAAA,CAAN,GAAW,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAX,CADJ;AAAA,OADJ;KAAA,MAAA;AAII,WAAS,mCAAT,GAAA;AACI,QAAA,KAAM,CAAA,KAAA,GAAQ,CAAR,GAAY,CAAZ,CAAN,GAAuB,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAvB,CADJ;AAAA,OAJJ;KADE;EAAA,CAjHN,CAAA;;AAAA,mBA2HA,QAAA,GAAU,SAAA,GAAA;AACN,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,CAAA,CAAA;AACA,WAAO,IAAK,CAAA,CAAA,CAAZ,CAFM;EAAA,CA3HV,CAAA;;AAAA,mBA+HA,QAAA,GAAU,SAAC,MAAD,GAAA;;MAAC,SAAS;KAChB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,CAAA,CAAA;AACA,WAAO,IAAK,CAAA,CAAA,CAAZ,CAFM;EAAA,CA/HV,CAAA;;AAAA,mBAmIA,UAAA,GAAY,SAAC,YAAD,GAAA;AACR,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AACA,WAAO,MAAO,CAAA,CAAA,CAAd,CAFQ;EAAA,CAnIZ,CAAA;;AAAA,mBAuIA,UAAA,GAAY,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KAClB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AACA,WAAO,MAAO,CAAA,CAAA,CAAd,CAFQ;EAAA,CAvIZ,CAAA;;AAAA,mBA2IA,SAAA,GAAW,SAAC,YAAD,GAAA;AACP,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AACA,WAAO,KAAM,CAAA,CAAA,CAAb,CAFO;EAAA,CA3IX,CAAA;;AAAA,mBA+IA,SAAA,GAAW,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACjB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AACA,WAAO,KAAM,CAAA,CAAA,CAAb,CAFO;EAAA,CA/IX,CAAA;;AAAA,mBAmJA,UAAA,GAAY,SAAC,YAAD,GAAA;AACR,IAAA,IAAG,YAAH;AACI,aAAO,IAAC,CAAA,UAAD,CAAY,IAAZ,CAAA,GAAoB,CAAC,IAAC,CAAA,SAAD,CAAA,CAAA,IAAgB,EAAjB,CAA3B,CADJ;KAAA,MAAA;AAGI,aAAO,CAAC,IAAC,CAAA,UAAD,CAAA,CAAA,IAAiB,CAAlB,CAAA,GAAuB,IAAC,CAAA,SAAD,CAAA,CAA9B,CAHJ;KADQ;EAAA,CAnJZ,CAAA;;AAAA,mBAyJA,UAAA,GAAY,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KAClB;AAAA,IAAA,IAAG,YAAH;AACI,aAAO,IAAC,CAAA,UAAD,CAAY,MAAZ,EAAoB,IAApB,CAAA,GAA4B,CAAC,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAA,IAA0B,EAA3B,CAAnC,CADJ;KAAA,MAAA;AAGI,aAAO,CAAC,IAAC,CAAA,UAAD,CAAY,MAAZ,CAAA,IAAuB,CAAxB,CAAA,GAA6B,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAApC,CAHJ;KADQ;EAAA,CAzJZ,CAAA;;AAAA,mBA+JA,SAAA,GAAW,SAAC,YAAD,GAAA;AACP,IAAA,IAAG,YAAH;AACI,aAAO,IAAC,CAAA,UAAD,CAAY,IAAZ,CAAA,GAAoB,CAAC,IAAC,CAAA,QAAD,CAAA,CAAA,IAAe,EAAhB,CAA3B,CADJ;KAAA,MAAA;AAGI,aAAO,CAAC,IAAC,CAAA,SAAD,CAAA,CAAA,IAAgB,CAAjB,CAAA,GAAsB,IAAC,CAAA,SAAD,CAAA,CAA7B,CAHJ;KADO;EAAA,CA/JX,CAAA;;AAAA,mBAqKA,SAAA,GAAW,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACjB;AAAA,IAAA,IAAG,YAAH;AACI,aAAO,IAAC,CAAA,UAAD,CAAY,MAAZ,EAAoB,IAApB,CAAA,GAA4B,CAAC,IAAC,CAAA,QAAD,CAAU,MAAA,GAAS,CAAnB,CAAA,IAAyB,EAA1B,CAAnC,CADJ;KAAA,MAAA;AAGI,aAAO,CAAC,IAAC,CAAA,SAAD,CAAW,MAAX,CAAA,IAAsB,CAAvB,CAAA,GAA4B,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAnC,CAHJ;KADO;EAAA,CArKX,CAAA;;AAAA,mBA2KA,UAAA,GAAY,SAAC,YAAD,GAAA;AACR,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AACA,WAAO,MAAO,CAAA,CAAA,CAAd,CAFQ;EAAA,CA3KZ,CAAA;;AAAA,mBA+KA,UAAA,GAAY,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KAClB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AACA,WAAO,MAAO,CAAA,CAAA,CAAd,CAFQ;EAAA,CA/KZ,CAAA;;AAAA,mBAmLA,SAAA,GAAW,SAAC,YAAD,GAAA;AACP,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AACA,WAAO,KAAM,CAAA,CAAA,CAAb,CAFO;EAAA,CAnLX,CAAA;;AAAA,mBAuLA,SAAA,GAAW,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACjB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AACA,WAAO,KAAM,CAAA,CAAA,CAAb,CAFO;EAAA,CAvLX,CAAA;;AAAA,mBA2LA,WAAA,GAAa,SAAC,YAAD,GAAA;AACT,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AACA,WAAO,OAAQ,CAAA,CAAA,CAAf,CAFS;EAAA,CA3Lb,CAAA;;AAAA,mBA+LA,WAAA,GAAa,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACnB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AACA,WAAO,OAAQ,CAAA,CAAA,CAAf,CAFS;EAAA,CA/Lb,CAAA;;AAAA,mBAmMA,WAAA,GAAa,SAAC,YAAD,GAAA;AACT,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,YAAT,CAAA,CAAA;AAGA,IAAA,IAAG,OAAH;AACI,aAAO,OAAQ,CAAA,CAAA,CAAf,CADJ;KAAA,MAAA;AAGI,aAAO,eAAA,CAAA,CAAP,CAHJ;KAJS;EAAA,CAnMb,CAAA;;AAAA,EA4MA,eAAA,GAAkB,SAAA,GAAA;AACd,QAAA,+BAAA;AAAA,IAAC,eAAD,EAAM,gBAAN,CAAA;AACA,IAAA,IAAc,CAAA,IAAA,IAAY,IAAA,KAAQ,UAAlC;AAAA,aAAO,GAAP,CAAA;KADA;AAAA,IAGA,IAAA,GAAO,CAAA,GAAI,CAAC,IAAA,KAAS,EAAV,CAAA,GAAgB,CAH3B,CAAA;AAAA,IAIA,GAAA,GAAM,CAAC,IAAA,KAAS,EAAV,CAAA,GAAgB,KAJtB,CAAA;AAAA,IAKA,IAAA,GAAO,IAAA,GAAO,OALd,CAAA;AAQA,IAAA,IAAG,GAAA,KAAO,KAAV;AACI,MAAA,IAAc,IAAd;AAAA,eAAO,GAAP,CAAA;OAAA;AACA,aAAO,IAAA,GAAO,QAAd,CAFJ;KARA;AAAA,IAYA,GAAA,IAAO,IAZP,CAAA;AAAA,IAaA,GAAA,GAAM,CAAC,IAAA,GAAO,QAAR,CAAA,GAAoB,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,GAAA,GAAM,EAAlB,CAb1B,CAAA;AAAA,IAcA,GAAA,IAAO,GAAA,GAAM,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,GAAA,GAAM,EAAlB,CAdb,CAAA;AAgBA,WAAO,IAAA,GAAO,GAAd,CAjBc;EAAA,CA5MlB,CAAA;;AAAA,mBA+NA,WAAA,GAAa,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACnB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,CAAN,EAAS,MAAT,EAAiB,YAAjB,CAAA,CAAA;AAGA,IAAA,IAAG,OAAH;AACI,aAAO,OAAQ,CAAA,CAAA,CAAf,CADJ;KAAA,MAAA;AAGI,aAAO,eAAA,CAAA,CAAP,CAHJ;KAJS;EAAA,CA/Nb,CAAA;;AAAA,mBAyOA,WAAA,GAAa,SAAC,YAAD,GAAA;AACT,IAAA,IAAC,CAAA,IAAD,CAAM,EAAN,EAAU,YAAV,CAAA,CAAA;AACA,WAAO,OAAA,CAAA,CAAP,CAFS;EAAA,CAzOb,CAAA;;AAAA,EA6OA,OAAA,GAAU,SAAA,GAAA;AACN,QAAA,iCAAA;AAAA,IAAC,gBAAD,EAAO,eAAP,CAAA;AAAA,IACA,EAAA,GAAK,KAAM,CAAA,CAAA,CADX,CAAA;AAAA,IAEA,EAAA,GAAK,KAAM,CAAA,CAAA,CAFX,CAAA;AAAA,IAIA,IAAA,GAAO,CAAA,GAAI,CAAC,EAAA,KAAO,CAAR,CAAA,GAAa,CAJxB,CAAA;AAAA,IAKA,GAAA,GAAM,CAAC,CAAC,EAAA,GAAK,IAAN,CAAA,IAAe,CAAhB,CAAA,GAAqB,EAL3B,CAAA;AAOA,IAAA,IAAG,GAAA,KAAO,CAAP,IAAa,GAAA,KAAO,CAApB,IAA0B,IAAA,KAAQ,CAArC;AACI,aAAO,CAAP,CADJ;KAPA;AAUA,IAAA,IAAG,GAAA,KAAO,MAAV;AACI,MAAA,IAAG,GAAA,KAAO,CAAP,IAAa,IAAA,KAAQ,CAAxB;AACI,eAAO,IAAA,GAAO,QAAd,CADJ;OAAA;AAGA,aAAO,GAAP,CAJJ;KAVA;AAAA,IAgBA,GAAA,IAAO,KAhBP,CAAA;AAAA,IAiBA,GAAA,GAAM,GAAA,GAAM,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,GAAA,GAAM,EAAlB,CAjBZ,CAAA;AAAA,IAkBA,GAAA,IAAO,IAAA,GAAO,IAAI,CAAC,GAAL,CAAS,CAAT,EAAY,GAAA,GAAM,EAAlB,CAlBd,CAAA;AAoBA,WAAO,IAAA,GAAO,GAAd,CArBM;EAAA,CA7OV,CAAA;;AAAA,mBAoQA,WAAA,GAAa,SAAC,MAAD,EAAa,YAAb,GAAA;;MAAC,SAAS;KACnB;AAAA,IAAA,IAAC,CAAA,IAAD,CAAM,EAAN,EAAU,MAAV,EAAkB,YAAlB,CAAA,CAAA;AACA,WAAO,OAAA,CAAA,CAAP,CAFS;EAAA,CApQb,CAAA;;AAAA,mBAwQA,UAAA,GAAY,SAAC,MAAD,GAAA;AACR,QAAA,iBAAA;AAAA,IAAA,MAAA,GAAS,QAAQ,CAAC,QAAT,CAAkB,MAAlB,CAAT,CAAA;AAAA,IACA,EAAA,GAAK,MAAM,CAAC,IADZ,CAAA;AAGA,SAAS,oCAAT,GAAA;AACI,MAAA,EAAG,CAAA,CAAA,CAAH,GAAQ,IAAC,CAAA,SAAD,CAAA,CAAR,CADJ;AAAA,KAHA;AAMA,WAAO,MAAP,CAPQ;EAAA,CAxQZ,CAAA;;AAAA,mBAiRA,UAAA,GAAY,SAAC,MAAD,EAAa,MAAb,GAAA;AACR,QAAA,iBAAA;;MADS,SAAS;KAClB;AAAA,IAAA,MAAA,GAAS,QAAQ,CAAC,QAAT,CAAkB,MAAlB,CAAT,CAAA;AAAA,IACA,EAAA,GAAK,MAAM,CAAC,IADZ,CAAA;AAGA,SAAS,oCAAT,GAAA;AACI,MAAA,EAAG,CAAA,CAAA,CAAH,GAAQ,IAAC,CAAA,SAAD,CAAW,MAAA,GAAS,CAApB,CAAR,CADJ;AAAA,KAHA;AAMA,WAAO,MAAP,CAPQ;EAAA,CAjRZ,CAAA;;AAAA,mBA0RA,gBAAA,GAAkB,SAAC,MAAD,GAAA;AACd,QAAA,MAAA;AAAA,IAAA,MAAA,GAAS,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,KAAZ,CAAkB,IAAC,CAAA,WAAnB,EAAgC,MAAhC,CAAT,CAAA;AAAA,IACA,IAAC,CAAA,OAAD,CAAS,MAAM,CAAC,MAAhB,CADA,CAAA;AAEA,WAAO,MAAP,CAHc;EAAA,CA1RlB,CAAA;;AAAA,mBA+RA,gBAAA,GAAkB,SAAC,MAAD,EAAS,MAAT,GAAA;AACd,QAAA,MAAA;AAAA,IAAA,MAAA,GAAS,IAAC,CAAA,IAAI,CAAC,KAAK,CAAC,KAAZ,CAAkB,IAAC,CAAA,WAAD,GAAe,MAAjC,EAAyC,MAAzC,CAAT,CAAA;AACA,WAAO,MAAP,CAFc;EAAA,CA/RlB,CAAA;;AAAA,mBAmSA,UAAA,GAAY,SAAC,MAAD,EAAS,QAAT,GAAA;;MAAS,WAAW;KAC5B;AAAA,WAAO,YAAY,CAAC,IAAb,CAAkB,IAAlB,EAAwB,CAAxB,EAA2B,MAA3B,EAAmC,QAAnC,EAA6C,IAA7C,CAAP,CADQ;EAAA,CAnSZ,CAAA;;AAAA,mBAsSA,UAAA,GAAY,SAAC,MAAD,EAAa,MAAb,EAAqB,QAArB,GAAA;;MAAC,SAAS;KAClB;;MAD6B,WAAW;KACxC;AAAA,WAAO,YAAY,CAAC,IAAb,CAAkB,IAAlB,EAAwB,MAAxB,EAAgC,MAAhC,EAAwC,QAAxC,EAAkD,KAAlD,CAAP,CADQ;EAAA,CAtSZ,CAAA;;AAAA,EAySA,YAAA,GAAe,SAAC,MAAD,EAAS,MAAT,EAAiB,QAAjB,EAA2B,OAA3B,GAAA;AACX,QAAA,sEAAA;AAAA,IAAA,QAAA,GAAW,QAAQ,CAAC,WAAT,CAAA,CAAX,CAAA;AAAA,IACA,OAAA,GAAa,MAAA,KAAU,IAAb,GAAuB,CAAvB,GAA8B,CAAA,CADxC,CAAA;AAGA,IAAA,IAAyB,cAAzB;AAAA,MAAA,MAAA,GAAS,QAAT,CAAA;KAHA;AAAA,IAIA,GAAA,GAAM,MAAA,GAAS,MAJf,CAAA;AAAA,IAKA,MAAA,GAAS,EALT,CAAA;AAOA,YAAO,QAAP;AAAA,WACS,OADT;AAAA,WACkB,QADlB;AAEQ,eAAM,MAAA,GAAS,GAAT,IAAiB,CAAC,CAAA,GAAI,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAL,CAAA,KAAgC,OAAvD,GAAA;AACI,UAAA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,CAApB,CAAV,CADJ;QAAA,CAFR;AACkB;AADlB,WAKS,MALT;AAAA,WAKiB,OALjB;AAMQ,eAAM,MAAA,GAAS,GAAT,IAAiB,CAAC,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAN,CAAA,KAAiC,OAAxD,GAAA;AACI,UAAA,IAAG,CAAC,EAAA,GAAK,IAAN,CAAA,KAAe,CAAlB;AACI,YAAA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,EAApB,CAAV,CADJ;WAAA,MAIK,IAAG,CAAC,EAAA,GAAK,IAAN,CAAA,KAAe,IAAlB;AACD,YAAA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAA5B,CAAA;AAAA,YACA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,CAAC,CAAC,EAAA,GAAK,IAAN,CAAA,IAAe,CAAhB,CAAA,GAAqB,EAAzC,CADV,CADC;WAAA,MAKA,IAAG,CAAC,EAAA,GAAK,IAAN,CAAA,KAAe,IAAlB;AACD,YAAA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAA5B,CAAA;AAAA,YACA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAD5B,CAAA;AAAA,YAEA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,CAAC,CAAC,EAAA,GAAK,IAAN,CAAA,IAAe,EAAhB,CAAA,GAAsB,CAAC,EAAA,IAAM,CAAP,CAAtB,GAAkC,EAAtD,CAFV,CADC;WAAA,MAMA,IAAG,CAAC,EAAA,GAAK,IAAN,CAAA,KAAe,IAAlB;AACD,YAAA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAA5B,CAAA;AAAA,YACA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAD5B,CAAA;AAAA,YAEA,EAAA,GAAK,IAAC,CAAA,SAAD,CAAW,MAAA,EAAX,CAAA,GAAuB,IAF5B,CAAA;AAAA,YAKA,EAAA,GAAK,CAAC,CAAC,CAAC,EAAA,GAAK,IAAN,CAAA,IAAe,EAAhB,CAAA,GAAsB,CAAC,EAAA,IAAM,EAAP,CAAtB,GAAmC,CAAC,EAAA,IAAM,CAAP,CAAnC,GAA+C,EAAhD,CAAA,GAAsD,OAL3D,CAAA;AAAA,YAMA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,MAAA,GAAS,CAAC,EAAA,IAAM,EAAP,CAA7B,EAAyC,MAAA,GAAS,CAAC,EAAA,GAAK,KAAN,CAAlD,CANV,CADC;WAhBT;QAAA,CANR;AAKiB;AALjB,WA+BS,UA/BT;AAAA,WA+BqB,SA/BrB;AAAA,WA+BgC,SA/BhC;AAAA,WA+B2C,UA/B3C;AAAA,WA+BuD,UA/BvD;AAAA,WA+BmE,WA/BnE;AAiCQ,gBAAO,QAAP;AAAA,eACS,SADT;AAAA,eACoB,UADpB;AAEQ,YAAA,YAAA,GAAe,KAAf,CAFR;AACoB;AADpB,eAIS,SAJT;AAAA,eAIoB,UAJpB;AAKQ,YAAA,YAAA,GAAe,IAAf,CALR;AAIoB;AAJpB,eAOS,UAPT;AAAA,eAOqB,WAPrB;AAQQ,YAAA,IAAG,MAAA,GAAS,CAAT,IAAc,CAAC,GAAA,GAAM,IAAC,CAAA,UAAD,CAAY,MAAZ,CAAP,CAAA,KAA+B,OAAhD;AACI,cAAA,IAAwB,OAAxB;AAAA,gBAAA,IAAC,CAAA,OAAD,CAAS,MAAA,IAAU,CAAnB,CAAA,CAAA;eAAA;AACA,qBAAO,MAAP,CAFJ;aAAA;AAAA,YAIA,YAAA,GAAgB,GAAA,KAAO,MAJvB,CAAA;AAAA,YAKA,MAAA,IAAU,CALV,CARR;AAAA,SAAA;AAeA,eAAM,MAAA,GAAS,GAAT,IAAiB,CAAC,EAAA,GAAK,IAAC,CAAA,UAAD,CAAY,MAAZ,EAAoB,YAApB,CAAN,CAAA,KAA8C,OAArE,GAAA;AACI,UAAA,MAAA,IAAU,CAAV,CAAA;AAEA,UAAA,IAAG,EAAA,GAAK,MAAL,IAAe,EAAA,GAAK,MAAvB;AACI,YAAA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,EAApB,CAAV,CADJ;WAAA,MAAA;AAII,YAAA,IAAG,EAAA,GAAK,MAAR;AACI,oBAAU,IAAA,KAAA,CAAM,yBAAN,CAAV,CADJ;aAAA;AAAA,YAGA,EAAA,GAAK,IAAC,CAAA,UAAD,CAAY,MAAZ,EAAoB,YAApB,CAHL,CAAA;AAIA,YAAA,IAAG,EAAA,GAAK,MAAL,IAAe,EAAA,GAAK,MAAvB;AACI,oBAAU,IAAA,KAAA,CAAM,yBAAN,CAAV,CADJ;aAJA;AAAA,YAOA,MAAA,IAAU,MAAM,CAAC,YAAP,CAAoB,EAApB,EAAwB,EAAxB,CAPV,CAAA;AAAA,YAQA,MAAA,IAAU,CARV,CAJJ;WAHJ;QAAA,CAfA;AAgCA,QAAA,IAAG,EAAA,KAAM,OAAT;AACI,UAAA,MAAA,IAAU,CAAV,CADJ;SAjER;AA+BmE;AA/BnE;AAqEQ,cAAU,IAAA,KAAA,CAAO,oBAAA,GAAmB,QAA1B,CAAV,CArER;AAAA,KAPA;AA8EA,IAAA,IAAmB,OAAnB;AAAA,MAAA,IAAC,CAAA,OAAD,CAAS,MAAT,CAAA,CAAA;KA9EA;AA+EA,WAAO,MAAP,CAhFW;EAAA,CAzSf,CAAA;;gBAAA;;IALJ,CAAA;;AAAA,MAgYM,CAAC,OAAP,GAAiB,MAhYjB,CAAA;;;;ACCA,IAAA,cAAA;EAAA;iSAAA;;AAAA;AACI,mCAAA,CAAA;;AAAa,EAAA,wBAAA,GAAA;AACT,IAAA,iDAAA,SAAA,CAAA,CAAA;AAAA,IACA,IAAC,CAAA,IAAD,GAAQ,gBADR,CAAA;AAAA,IAEA,IAAC,CAAA,KAAD,GAAS,GAAA,CAAA,KAAI,CAAA,CAAO,CAAC,KAFrB,CADS;EAAA,CAAb;;wBAAA;;GADyB,MAA7B,CAAA;;AAAA,MAMM,CAAC,OAAP,GAAiB,cANjB,CAAA;;;;ACDA,IAAA,oEAAA;EAAA;iSAAA;;AAAA,YAAA,GAAe,OAAA,CAAQ,eAAR,CAAf,CAAA;;AAAA,UACA,GAAa,OAAA,CAAQ,mBAAR,CADb,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,eAAR,CAFT,CAAA;;AAAA,SAGA,GAAY,OAAA,CAAQ,kBAAR,CAHZ,CAAA;;AAAA,cAIA,GAAiB,OAAA,CAAQ,kBAAR,CAJjB,CAAA;;AAAA;AAOI,MAAA,MAAA;;AAAA,4BAAA,CAAA;;AAAa,EAAA,iBAAE,OAAF,EAAY,MAAZ,GAAA;AACT,QAAA,IAAA;AAAA,IADU,IAAC,CAAA,UAAA,OACX,CAAA;AAAA,IADoB,IAAC,CAAA,SAAA,MACrB,CAAA;AAAA,IAAA,IAAA,GAAO,GAAA,CAAA,UAAP,CAAA;AAAA,IACA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAP,CADd,CAAA;AAAA,IAEA,IAAC,CAAA,SAAD,GAAiB,IAAA,SAAA,CAAU,IAAC,CAAA,MAAX,CAFjB,CAAA;AAAA,IAIA,IAAC,CAAA,mBAAD,GAAuB,KAJvB,CAAA;AAAA,IAKA,IAAC,CAAA,OAAD,GAAW,KALX,CAAA;AAAA,IAOA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,QAAZ,EAAsB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,MAAD,GAAA;AAClB,YAAA,KAAA;AAAA;iBACI,KAAC,CAAA,SAAD,CAAW,MAAX,EADJ;SAAA,cAAA;AAGI,UADE,cACF,CAAA;iBAAA,KAAC,CAAA,IAAD,CAAM,OAAN,EAAe,KAAf,EAHJ;SADkB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAtB,CAPA,CAAA;AAAA,IAaA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,MAAZ,EAAoB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,KAAD,GAAA;AAChB,QAAA,IAAI,CAAC,MAAL,CAAY,KAAZ,CAAA,CAAA;AACA,QAAA,IAAa,KAAC,CAAA,OAAd;iBAAA,KAAC,CAAA,MAAD,CAAA,EAAA;SAFgB;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAApB,CAbA,CAAA;AAAA,IAiBA,IAAC,CAAA,OAAO,CAAC,EAAT,CAAY,KAAZ,EAAmB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAA,GAAA;AACf,QAAA,KAAC,CAAA,mBAAD,GAAuB,IAAvB,CAAA;AACA,QAAA,IAAa,KAAC,CAAA,OAAd;iBAAA,KAAC,CAAA,MAAD,CAAA,EAAA;SAFe;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAnB,CAjBA,CAAA;AAAA,IAqBA,IAAC,CAAA,IAAD,CAAA,CArBA,CADS;EAAA,CAAb;;AAAA,oBAwBA,IAAA,GAAM,SAAA,GAAA,CAxBN,CAAA;;AAAA,oBA2BA,SAAA,GAAW,SAAC,MAAD,GAAA,CA3BX,CAAA;;AAAA,oBA8BA,SAAA,GAAW,SAAA,GAAA,CA9BX,CAAA;;AAAA,oBAiCA,MAAA,GAAQ,SAAA,GAAA;AACJ,QAAA,qBAAA;AAAA,IAAA,IAAC,CAAA,OAAD,GAAW,KAAX,CAAA;AAAA,IACA,MAAA,GAAS,IAAC,CAAA,SAAS,CAAC,MAAX,CAAA,CADT,CAAA;AAGA;AACI,MAAA,MAAA,GAAS,IAAC,CAAA,SAAD,CAAA,CAAT,CADJ;KAAA,cAAA;AAGI,MADE,cACF,CAAA;AAAA,MAAA,IAAG,CAAA,CAAA,KAAA,YAAqB,cAArB,CAAH;AACI,QAAA,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,KAAf,CAAA,CAAA;AACA,eAAO,KAAP,CAFJ;OAHJ;KAHA;AAWA,IAAA,IAAG,MAAH;AACI,MAAA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,MAAd,CAAA,CAAA;AACA,aAAO,IAAP,CAFJ;KAAA,MAKK,IAAG,CAAA,IAAK,CAAA,mBAAR;AACD,MAAA,IAAC,CAAA,SAAS,CAAC,IAAX,CAAgB,MAAhB,CAAA,CAAA;AAAA,MACA,IAAC,CAAA,OAAD,GAAW,IADX,CADC;KAAA,MAAA;AAMD,MAAA,IAAC,CAAA,IAAD,CAAM,KAAN,CAAA,CANC;KAhBL;AAwBA,WAAO,KAAP,CAzBI;EAAA,CAjCR,CAAA;;AAAA,oBA4DA,IAAA,GAAM,SAAC,SAAD,GAAA;AAEF,QAAA,SAAA;AAAA,IAAA,SAAA,GAAY,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,SAAd,CAAZ,CAAA;AAAA,IACA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,SAAS,CAAC,MAAvB,CADA,CAAA;AAEA,WAAO,SAAS,CAAC,SAAjB,CAJE;EAAA,CA5DN,CAAA;;AAAA,EAkEA,MAAA,GAAS,EAlET,CAAA;;AAAA,EAmEA,OAAC,CAAA,QAAD,GAAW,SAAC,EAAD,EAAK,OAAL,GAAA;WACP,MAAO,CAAA,EAAA,CAAP,GAAa,QADN;EAAA,CAnEX,CAAA;;AAAA,EAsEA,OAAC,CAAA,IAAD,GAAO,SAAC,EAAD,GAAA;AACH,WAAO,MAAO,CAAA,EAAA,CAAP,IAAc,IAArB,CADG;EAAA,CAtEP,CAAA;;iBAAA;;GADkB,aANtB,CAAA;;AAAA,MAgFM,CAAC,OAAP,GAAiB,OAhFjB,CAAA;;;;ACAA,IAAA,oBAAA;EAAA;;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,gCAAA,CAAA;;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,MAAjB,EAAyB,WAAzB,CAAA,CAAA;;AAAA,wBAEA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,2EAAA;AAAA,IAAA,MAAA,GAAS,IAAC,CAAA,MAAV,CAAA;AAAA,IACA,YAAA,GAAe,IAAC,CAAA,MAAM,CAAC,YADvB,CAAA;AAAA,IAEA,SAAA,GAAY,IAAI,CAAC,GAAL,CAAS,IAAT,EAAe,MAAM,CAAC,cAAP,CAAA,CAAf,CAFZ,CAAA;AAAA,IAGA,OAAA,GAAU,SAAA,GAAY,CAAC,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAA1B,CAAZ,GAA2C,CAHrD,CAAA;AAKA,IAAA,IAAG,SAAA,GAAY,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAxC;AACI,aAAO,IAAP,CADJ;KALA;AAQA,IAAA,IAAG,IAAC,CAAA,MAAM,CAAC,aAAX;AACI,cAAO,IAAC,CAAA,MAAM,CAAC,cAAf;AAAA,aACS,EADT;AAEQ,UAAA,MAAA,GAAa,IAAA,YAAA,CAAa,OAAb,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,WAAP,CAAmB,YAAnB,CAAZ,CADJ;AAAA,WAHR;AACS;AADT,aAMS,EANT;AAOQ,UAAA,MAAA,GAAa,IAAA,YAAA,CAAa,OAAb,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,WAAP,CAAmB,YAAnB,CAAZ,CADJ;AAAA,WARR;AAMS;AANT;AAYQ,gBAAU,IAAA,KAAA,CAAM,wBAAN,CAAV,CAZR;AAAA,OADJ;KAAA,MAAA;AAgBI,cAAO,IAAC,CAAA,MAAM,CAAC,cAAf;AAAA,aACS,CADT;AAEQ,UAAA,MAAA,GAAa,IAAA,SAAA,CAAU,OAAV,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,QAAP,CAAA,CAAZ,CADJ;AAAA,WAHR;AACS;AADT,aAMS,EANT;AAOQ,UAAA,MAAA,GAAa,IAAA,UAAA,CAAW,OAAX,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,SAAP,CAAiB,YAAjB,CAAZ,CADJ;AAAA,WARR;AAMS;AANT,aAWS,EAXT;AAYQ,UAAA,MAAA,GAAa,IAAA,UAAA,CAAW,OAAX,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,SAAP,CAAiB,YAAjB,CAAZ,CADJ;AAAA,WAbR;AAWS;AAXT,aAgBS,EAhBT;AAiBQ,UAAA,MAAA,GAAa,IAAA,UAAA,CAAW,OAAX,CAAb,CAAA;AACA,eAAS,qCAAT,GAAA;AACI,YAAA,MAAO,CAAA,CAAA,CAAP,GAAY,MAAM,CAAC,SAAP,CAAiB,YAAjB,CAAZ,CADJ;AAAA,WAlBR;AAgBS;AAhBT;AAsBQ,gBAAU,IAAA,KAAA,CAAM,wBAAN,CAAV,CAtBR;AAAA,OAhBJ;KARA;AAgDA,WAAO,MAAP,CAjDO;EAAA,CAFX,CAAA;;qBAAA;;GADsB,QAF1B,CAAA;;;;ACAA,IAAA,oBAAA;EAAA;;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,MAAA,+CAAA;;AAAA,gCAAA,CAAA;;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,MAAjB,EAAyB,WAAzB,CAAA,CAAA;;AAAA,EACA,OAAO,CAAC,QAAR,CAAiB,MAAjB,EAAyB,WAAzB,CADA,CAAA;;AAAA,EAGA,QAAA,GAAa,IAHb,CAAA;;AAAA,EAIA,UAAA,GAAa,GAJb,CAAA;;AAAA,EAKA,SAAA,GAAa,CALb,CAAA;;AAAA,EAMA,QAAA,GAAa,IANb,CAAA;;AAAA,EAOA,IAAA,GAAa,IAPb,CAAA;;AAAA,wBASA,IAAA,GAAM,SAAA,GAAA;AACF,QAAA,6BAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,EAAzB,CAAA;AAAA,IACA,IAAC,CAAA,KAAD,GAAS,KAAA,GAAY,IAAA,UAAA,CAAW,GAAX,CADrB,CAAA;AAGA,IAAA,IAAG,IAAC,CAAA,MAAM,CAAC,QAAR,KAAoB,MAAvB;AACI,WAAS,8BAAT,GAAA;AAEI,QAAA,GAAA,GAAM,CAAA,CAAN,CAAA;AAAA,QAIA,CAAA,GAAI,CAAC,CAAC,GAAA,GAAM,UAAP,CAAA,IAAsB,CAAvB,CAAA,GAA4B,IAJhC,CAAA;AAAA,QAKA,CAAA,KAAM,CAAC,GAAA,GAAM,QAAP,CAAA,KAAqB,SAL3B,CAAA;AAAA,QAOA,KAAM,CAAA,CAAA,CAAN,GAAc,GAAA,GAAM,QAAT,GAAuB,IAAA,GAAO,CAA9B,GAAqC,CAAA,GAAI,IAPpD,CAFJ;AAAA,OADJ;KAAA,MAAA;AAaI,WAAS,8BAAT,GAAA;AACI,QAAA,GAAA,GAAM,CAAA,GAAI,IAAV,CAAA;AAAA,QACA,CAAA,GAAI,GAAA,GAAM,UADV,CAAA;AAAA,QAEA,GAAA,GAAM,CAAC,GAAA,GAAM,QAAP,CAAA,KAAqB,SAF3B,CAAA;AAIA,QAAA,IAAG,GAAH;AACI,UAAA,CAAA,GAAI,CAAC,CAAA,GAAI,CAAJ,GAAQ,CAAR,GAAY,EAAb,CAAA,IAAoB,CAAC,GAAA,GAAM,CAAP,CAAxB,CADJ;SAAA,MAAA;AAGI,UAAA,CAAA,GAAI,CAAC,CAAA,GAAI,CAAJ,GAAQ,CAAT,CAAA,IAAe,CAAnB,CAHJ;SAJA;AAAA,QASA,KAAM,CAAA,CAAA,CAAN,GAAc,GAAA,GAAM,QAAT,GAAuB,CAAvB,GAA8B,CAAA,CATzC,CADJ;AAAA,OAbJ;KAJE;EAAA,CATN,CAAA;;AAAA,wBAwCA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,qCAAA;AAAA,IAAC,cAAA,MAAD,EAAS,aAAA,KAAT,CAAA;AAAA,IAEA,OAAA,GAAU,IAAI,CAAC,GAAL,CAAS,IAAT,EAAe,IAAC,CAAA,MAAM,CAAC,cAAR,CAAA,CAAf,CAFV,CAAA;AAGA,IAAA,IAAU,OAAA,KAAW,CAArB;AAAA,YAAA,CAAA;KAHA;AAAA,IAKA,MAAA,GAAa,IAAA,UAAA,CAAW,OAAX,CALb,CAAA;AAMA,SAAS,qCAAT,GAAA;AACI,MAAA,MAAO,CAAA,CAAA,CAAP,GAAY,KAAM,CAAA,MAAM,CAAC,SAAP,CAAA,CAAA,CAAlB,CADJ;AAAA,KANA;AASA,WAAO,MAAP,CAVO;EAAA,CAxCX,CAAA;;qBAAA;;GADsB,QAF1B,CAAA;;;;ACAA,IAAA,yCAAA;EAAA;iSAAA;;AAAA,YAAA,GAAe,OAAA,CAAQ,eAAR,CAAf,CAAA;;AAAA,UACA,GAAa,OAAA,CAAQ,mBAAR,CADb,CAAA;;AAAA,MAEA,GAAS,OAAA,CAAQ,eAAR,CAFT,CAAA;;AAAA;AAKI,MAAA,OAAA;;AAAA,4BAAA,CAAA;;AAAA,EAAA,OAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,WAAO,KAAP,CADI;EAAA,CAAR,CAAA;;AAGa,EAAA,iBAAC,MAAD,EAAS,KAAT,GAAA;AACT,QAAA,cAAA;AAAA,IAAA,IAAA,GAAO,GAAA,CAAA,UAAP,CAAA;AAAA,IACA,IAAI,CAAC,MAAL,CAAY,KAAZ,CADA,CAAA;AAAA,IAEA,IAAC,CAAA,MAAD,GAAc,IAAA,MAAA,CAAO,IAAP,CAFd,CAAA;AAAA,IAIA,QAAA,GAAW,KAJX,CAAA;AAAA,IAKA,MAAM,CAAC,EAAP,CAAU,MAAV,EAAkB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,KAAD,GAAA;AACd,QAAA,QAAA,GAAW,IAAX,CAAA;AAAA,QACA,IAAI,CAAC,MAAL,CAAY,KAAZ,CADA,CAAA;eAEA,KAAC,CAAA,SAAD,CAAW,KAAX,EAHc;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAlB,CALA,CAAA;AAAA,IAUA,MAAM,CAAC,EAAP,CAAU,OAAV,EAAmB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,GAAD,GAAA;eACf,KAAC,CAAA,IAAD,CAAM,OAAN,EAAe,GAAf,EADe;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAnB,CAVA,CAAA;AAAA,IAaA,MAAM,CAAC,EAAP,CAAU,KAAV,EAAiB,CAAA,SAAA,KAAA,GAAA;aAAA,SAAA,GAAA;AAEb,QAAA,IAAA,CAAA,QAAA;AAAA,UAAA,KAAC,CAAA,SAAD,CAAW,KAAX,CAAA,CAAA;SAAA;eACA,KAAC,CAAA,IAAD,CAAM,KAAN,EAHa;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAAjB,CAbA,CAAA;AAAA,IAkBA,IAAC,CAAA,UAAD,GAAc,EAlBd,CAAA;AAAA,IAmBA,IAAC,CAAA,IAAD,CAAA,CAnBA,CADS;EAAA,CAHb;;AAAA,oBAyBA,IAAA,GAAM,SAAA,GAAA,CAzBN,CAAA;;AAAA,oBA4BA,SAAA,GAAW,SAAC,KAAD,GAAA,CA5BX,CAAA;;AAAA,oBA+BA,YAAA,GAAc,SAAC,MAAD,EAAS,SAAT,GAAA;AACV,QAAA,KAAA;AAAA,IAAA,KAAA,GAAQ,IAAC,CAAA,eAAD,CAAiB,SAAjB,CAAR,CAAA;WACA,IAAC,CAAA,UAAU,CAAC,MAAZ,CAAmB,KAAnB,EAA0B,CAA1B,EACI;AAAA,MAAA,MAAA,EAAQ,MAAR;AAAA,MACA,SAAA,EAAW,SADX;KADJ,EAFU;EAAA,CA/Bd,CAAA;;AAAA,oBAqCA,eAAA,GAAiB,SAAC,SAAD,EAAY,QAAZ,GAAA;AACb,QAAA,oBAAA;AAAA,IAAA,GAAA,GAAM,CAAN,CAAA;AAAA,IACA,IAAA,GAAO,IAAC,CAAA,UAAU,CAAC,MADnB,CAAA;AAIA,IAAA,IAAG,IAAA,GAAO,CAAP,IAAa,IAAC,CAAA,UAAW,CAAA,IAAA,GAAO,CAAP,CAAS,CAAC,SAAtB,GAAkC,SAAlD;AACI,aAAO,IAAP,CADJ;KAJA;AAOA,WAAM,GAAA,GAAM,IAAZ,GAAA;AACI,MAAA,GAAA,GAAM,CAAC,GAAA,GAAM,IAAP,CAAA,IAAgB,CAAtB,CAAA;AAAA,MACA,IAAA,GAAO,IAAC,CAAA,UAAW,CAAA,GAAA,CAAI,CAAC,SADxB,CAAA;AAGA,MAAA,IAAG,IAAA,GAAO,SAAV;AACI,QAAA,GAAA,GAAM,GAAA,GAAM,CAAZ,CADJ;OAAA,MAGK,IAAG,IAAA,IAAQ,SAAX;AACD,QAAA,IAAA,GAAO,GAAP,CADC;OAPT;IAAA,CAPA;AAiBA,IAAA,IAAG,IAAA,GAAO,IAAC,CAAA,UAAU,CAAC,MAAtB;AACI,MAAA,IAAA,GAAO,IAAC,CAAA,UAAU,CAAC,MAAnB,CADJ;KAjBA;AAoBA,WAAO,IAAP,CArBa;EAAA,CArCjB,CAAA;;AAAA,oBA4DA,IAAA,GAAM,SAAC,SAAD,GAAA;AACF,QAAA,gBAAA;AAAA,IAAA,IAAG,IAAC,CAAA,MAAD,IAAY,IAAC,CAAA,MAAM,CAAC,eAAR,GAA0B,CAAtC,IAA4C,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAxE;AACI,MAAA,SAAA,GACI;AAAA,QAAA,SAAA,EAAW,SAAX;AAAA,QACA,MAAA,EAAQ,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,SAAzB,GAAqC,IAAC,CAAA,MAAM,CAAC,eADrD;OADJ,CAAA;AAIA,aAAO,SAAP,CALJ;KAAA,MAAA;AAOI,MAAA,KAAA,GAAQ,IAAC,CAAA,eAAD,CAAiB,SAAjB,CAAR,CAAA;AACA,aAAO,IAAC,CAAA,UAAW,CAAA,KAAA,CAAnB,CARJ;KADE;EAAA,CA5DN,CAAA;;AAAA,EAuEA,OAAA,GAAU,EAvEV,CAAA;;AAAA,EAwEA,OAAC,CAAA,QAAD,GAAW,SAAC,OAAD,GAAA;WACP,OAAO,CAAC,IAAR,CAAa,OAAb,EADO;EAAA,CAxEX,CAAA;;AAAA,EA2EA,OAAC,CAAA,IAAD,GAAO,SAAC,MAAD,GAAA;AACH,QAAA,mCAAA;AAAA,IAAA,MAAA,GAAS,MAAM,CAAC,UAAP,CAAkB,MAAlB,CAAT,CAAA;AACA,SAAA,8CAAA;2BAAA;AACI,MAAA,MAAA,GAAS,MAAM,CAAC,MAAhB,CAAA;AACA;AACK,QAAA,IAAiB,MAAM,CAAC,KAAP,CAAa,MAAb,CAAjB;AAAA,iBAAO,MAAP,CAAA;SADL;OAAA,cAAA;AAEM,QAAA,UAAA,CAFN;OADA;AAAA,MAMA,MAAM,CAAC,IAAP,CAAY,MAAZ,CANA,CADJ;AAAA,KADA;AAUA,WAAO,IAAP,CAXG;EAAA,CA3EP,CAAA;;iBAAA;;GADkB,aAJtB,CAAA;;AAAA,MA6FM,CAAC,OAAP,GAAiB,OA7FjB,CAAA;;;;ACAA,IAAA,oBAAA;EAAA;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,gCAAA,CAAA;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,WAAjB,CAAA,CAAA;;AAAA,EAEA,WAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,QAAA,IAAA;AAAA,WAAO,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MAA3B,IACA,SAAA,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,EAAA,KAA4B,MAA5B,IAAA,IAAA,KAAoC,MAApC,CADP,CADI;EAAA,CAFR,CAAA;;AAAA,wBAMA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,4BAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,SAAL,IAAmB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,EAAlB,CAAtB;AACI,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,eAAf,CAAP,CADJ;OAAA;AAAA,MAGA,IAAC,CAAA,QAAD,GAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHZ,CAAA;AAAA,MAIA,IAAC,CAAA,QAAD,GAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAJZ,CAAA;AAAA,MAKA,IAAC,CAAA,SAAD,GAAa,IALb,CAAA;AAOA,MAAA,YAAG,IAAC,CAAA,SAAD,KAAkB,MAAlB,IAAA,IAAA,KAA0B,MAA7B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,eAAf,CAAP,CADJ;OARJ;KAAA;AAWA,WAAM,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAN,GAAA;AACI,MAAA,IAAG,CAAA,IAAK,CAAA,WAAL,IAAqB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAxB;AACI,QAAA,IAAC,CAAA,IAAD,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAR,CAAA;AAAA,QACA,IAAC,CAAA,GAAD,GAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CADP,CADJ;OAAA;AAIA,cAAO,IAAC,CAAA,IAAR;AAAA,aACS,MADT;AAEQ,UAAA,IAAA,CAAA,IAAe,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,GAAnB,CAAd;AAAA,kBAAA,CAAA;WAAA;AAAA,UAEA,IAAC,CAAA,MAAD,GACI;AAAA,YAAA,QAAA,EAAU,MAAV;AAAA,YACA,gBAAA,EAAkB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CADlB;AAAA,YAEA,WAAA,EAAa,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFb;AAAA,YAGA,cAAA,EAAgB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHhB;AAAA,YAIA,UAAA,EAAY,IAAC,CAAA,MAAM,CAAC,WAAR,CAAA,CAJZ;AAAA,YAKA,eAAA,EAAiB,CALjB;AAAA,YAMA,YAAA,EAAc,KANd;AAAA,YAOA,aAAA,EAAe,KAPf;WAHJ,CAAA;AAAA,UAYA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAC,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAA1B,CAAA,GAA+B,IAAC,CAAA,MAAM,CAAC,gBAZhE,CAAA;AAcA,UAAA,IAAG,IAAC,CAAA,QAAD,KAAa,MAAhB;AACI,YAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAT,CAAA;AAAA,YAEA,IAAC,CAAA,MAAM,CAAC,YAAR,GAAuB,MAAA,KAAU,MAAV,IAAqB,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAFrE,CAAA;AAAA,YAGA,IAAC,CAAA,MAAM,CAAC,aAAR,GAAwB,MAAA,KAAW,MAAX,IAAA,MAAA,KAAmB,MAH3C,CAAA;AAKA,YAAA,IAAmB,MAAA,KAAW,MAAX,IAAA,MAAA,KAAmB,MAAnB,IAAA,MAAA,KAA2B,MAA3B,IAAA,MAAA,KAAmC,MAAnC,IAAA,MAAA,KAA2C,MAA9D;AAAA,cAAA,MAAA,GAAS,MAAT,CAAA;aALA;AAAA,YAMA,IAAC,CAAA,MAAM,CAAC,QAAR,GAAmB,MANnB,CAAA;AAAA,YAOA,IAAC,CAAA,GAAD,IAAQ,CAPR,CADJ;WAdA;AAAA,UAwBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,EAAvB,CAxBA,CAAA;AAAA,UAyBA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,MAAjB,CAzBA,CAAA;AAAA,UA0BA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,MAAM,CAAC,WAAR,GAAsB,IAAC,CAAA,MAAM,CAAC,UAA9B,GAA2C,IAA3C,GAAkD,CAApE,CA1BA,CAFR;AACS;AADT,aA8BS,MA9BT;AA+BQ,UAAA,IAAA,CAAA,CAAO,IAAC,CAAA,cAAD,IAAoB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAA3B,CAAA;AACI,YAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAT,CAAA;AAAA,YACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CADA,CAAA;AAAA,YAEA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,MAAhB,CAFA,CAAA;AAAA,YAGA,IAAC,CAAA,cAAD,GAAkB,IAHlB,CADJ;WAAA;AAAA,UAMA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,gBAAR,CAAyB,IAAC,CAAA,GAA1B,CANT,CAAA;AAAA,UAOA,IAAC,CAAA,GAAD,IAAQ,MAAM,CAAC,MAPf,CAAA;AAAA,UAQA,IAAC,CAAA,WAAD,GAAe,IAAC,CAAA,GAAD,GAAO,CARtB,CAAA;AAAA,UASA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,MAAd,CATA,CA/BR;AA8BS;AA9BT;AA2CQ,UAAA,IAAA,CAAA,IAAe,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,GAAnB,CAAd;AAAA,kBAAA,CAAA;WAAA;AAAA,UACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAjB,CADA,CA3CR;AAAA,OAJA;AAkDA,MAAA,IAA4B,IAAC,CAAA,IAAD,KAAS,MAArC;AAAA,QAAA,IAAC,CAAA,WAAD,GAAe,KAAf,CAAA;OAnDJ;IAAA,CAZO;EAAA,CANX,CAAA;;qBAAA;;GADsB,QAF1B,CAAA;;;;ACAA,IAAA,kBAAA;EAAA;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,MAAA,YAAA;;AAAA,8BAAA,CAAA;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,SAAjB,CAAA,CAAA;;AAAA,EAEA,SAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,WAAO,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MAAlC,CADI;EAAA,CAFR,CAAA;;AAAA,EAKA,GAAA,GAAM,CAAC,CAAD,EAAI,CAAJ,EAAO,EAAP,EAAW,EAAX,EAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,CALN,CAAA;;AAAA,EAMA,GAAI,CAAA,EAAA,CAAJ,GAAU,CANV,CAAA;;AAAA,EAQA,OAAA,GACI;AAAA,IAAA,CAAA,EAAG,MAAH;AAAA,IACA,EAAA,EAAI,MADJ;GATJ,CAAA;;AAAA,sBAYA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,+BAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,UAAL,IAAoB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,EAAlB,CAAvB;AACI,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,kBAAf,CAAP,CADJ;OAAA;AAAA,MAGA,IAAA,GAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHP,CAAA;AAAA,MAIA,QAAA,GAAW,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAJX,CAAA;AAAA,MAKA,QAAA,GAAW,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CALX,CAAA;AAAA,MAOA,IAAC,CAAA,MAAD,GACI;AAAA,QAAA,QAAA,EAAU,OAAQ,CAAA,QAAA,CAAR,IAAqB,MAA/B;AAAA,QACA,YAAA,EAAc,KADd;AAAA,QAEA,aAAA,EAAe,QAAA,KAAa,CAAb,IAAA,QAAA,KAAgB,CAF/B;AAAA,QAGA,cAAA,EAAgB,GAAI,CAAA,QAAA,GAAW,CAAX,CAHpB;AAAA,QAIA,UAAA,EAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAJZ;AAAA,QAKA,gBAAA,EAAkB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CALlB;AAAA,QAMA,eAAA,EAAiB,CANjB;OARJ,CAAA;AAgBA,MAAA,IAAO,kCAAP;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,kCAAf,CAAP,CADJ;OAhBA;AAAA,MAmBA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAC,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAA1B,CAAA,GAA+B,IAAC,CAAA,MAAM,CAAC,gBAnBhE,CAAA;AAqBA,MAAA,IAAG,QAAA,KAAc,UAAjB;AACI,QAAA,KAAA,GAAQ,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAjC,CAAA;AAAA,QACA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,QAAA,GAAW,KAAX,GAAmB,IAAC,CAAA,MAAM,CAAC,gBAA3B,GAA8C,IAAC,CAAA,MAAM,CAAC,UAAtD,GAAmE,IAAnE,GAA0E,CAA5F,CADA,CADJ;OArBA;AAAA,MAyBA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,MAAjB,CAzBA,CAAA;AAAA,MA0BA,IAAC,CAAA,UAAD,GAAc,IA1Bd,CADJ;KAAA;AA6BA,IAAA,IAAG,IAAC,CAAA,UAAJ;AACI,aAAM,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAN,GAAA;AACI,QAAA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,IAAC,CAAA,MAAM,CAAC,gBAAR,CAAyB,IAAC,CAAA,MAAM,CAAC,cAAR,CAAA,CAAzB,CAAd,CAAA,CADJ;MAAA,CADJ;KA9BO;EAAA,CAZX,CAAA;;mBAAA;;GADoB,QAFxB,CAAA;;;;ACAA,IAAA,+BAAA;EAAA;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA,UACA,GAAa,OAAA,CAAQ,OAAR,CADb,CAAA;;AAAA;AAII,+BAAA,CAAA;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,UAAjB,CAAA,CAAA;;AAAA,EAEA,UAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,WAAO,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MAAlC,CADI;EAAA,CAFR,CAAA;;AAAA,uBAKA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,uGAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,MAAL,IAAgB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,EAAlB,CAAnB;AACI,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,yCAAf,CAAP,CADJ;OAAA;AAAA,MAIA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAJA,CAAA;AAMA,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,+CAAf,CAAP,CADJ;OANA;AASA,MAAA,IAAA,CAAA,CAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,KAAwB,CAAxB,IAA8B,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,KAAwB,EAA7D,CAAA;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,mCAAf,CAAP,CADJ;OATA;AAAA,MAYA,IAAC,CAAA,MAAD,GAAU,EAZV,CAAA;AAAA,MAaA,IAAC,CAAA,MAAM,CAAC,UAAR,GAAqB,IAAC,CAAA,MAAM,CAAC,WAAR,CAAA,CAbrB,CAAA;AAAA,MAcA,IAAC,CAAA,MAAM,CAAC,QAAR,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAdnB,CAAA;AAAA,MAgBA,KAAA,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAhBR,CAAA;AAiBA,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,QAAR,KAAoB,MAAvB;AACI,QAAA,IAAC,CAAA,MAAM,CAAC,aAAR,GAAwB,OAAA,CAAQ,KAAA,GAAQ,CAAhB,CAAxB,CAAA;AAAA,QACA,IAAC,CAAA,MAAM,CAAC,YAAR,GAAuB,OAAA,CAAQ,KAAA,GAAQ,CAAhB,CADvB,CADJ;OAjBA;AAAA,MAqBA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CArBzB,CAAA;AAAA,MAsBA,IAAC,CAAA,MAAM,CAAC,eAAR,GAA0B,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAtB1B,CAAA;AAAA,MAuBA,IAAC,CAAA,MAAM,CAAC,gBAAR,GAA2B,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAvB3B,CAAA;AAAA,MAwBA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAxBzB,CAAA;AAAA,MA0BA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,MAAjB,CA1BA,CADJ;KAAA;AA6BA,WAAM,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAN,GAAA;AACI,MAAA,IAAA,CAAA,IAAQ,CAAA,WAAR;AACI,QAAA,IAAC,CAAA,WAAD,GACI;AAAA,UAAA,IAAA,EAAM,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAN;AAAA,UACA,QAAA,EAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,KAA0B,CADpC;AAAA,UAEA,IAAA,EAAM,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFN;SADJ,CAAA;AAKA,QAAA,IAAG,IAAC,CAAA,WAAW,CAAC,QAAhB;AACI,iBAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,mDAAf,CAAP,CADJ;SANJ;OAAA;AASA,cAAO,IAAC,CAAA,WAAW,CAAC,IAApB;AAAA,aACS,MADT;AAEQ,UAAA,IAAG,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,WAAW,CAAC,IAA/B,CAAH;AACI,YAAA,IAAG,IAAC,CAAA,MAAM,CAAC,QAAR,KAAoB,MAAvB;AACI,cAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,MAAR,GAAiB,IAAC,CAAA,WAAW,CAAC,IAAvC,CAAA;AACA,cAAA,IAAG,MAAA,GAAS,UAAU,CAAC,QAAX,CAAoB,IAAC,CAAA,MAArB,CAAZ;AACI,gBAAA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,MAAhB,CAAA,CADJ;eADA;AAAA,cAIA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,MAAb,CAJA,CADJ;aAAA,MAAA;AAQI,cAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAC,CAAA,WAAW,CAAC,IAAhC,CAAT,CAAA;AAAA,cACA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,MAAhB,CADA,CARJ;aAAA;AAAA,YAWA,IAAC,CAAA,WAAD,GAAe,IAXf,CADJ;WAFR;AACS;AADT,aAgBS,MAhBT;AAiBQ,UAAA,IAAG,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,WAAW,CAAC,IAA/B,CAAH;AACI,YAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,KAA0B,CAA7B;AACI,qBAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,+CAAf,CAAP,CADJ;aAAA;AAAA,YAGA,IAAC,CAAA,UAAD,GAAc,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHd,CAAA;AAKA,YAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,KAA0B,CAA7B;AACI,qBAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,+CAAf,CAAP,CADJ;aALA;AAAA,YAQA,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CARb,CAAA;AAAA,YASA,IAAC,CAAA,aAAD,GAAiB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CATjB,CAAA;AAAA,YAUA,IAAC,CAAA,eAAD,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAVnB,CAAA;AAAA,YAYA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,MAAM,CAAC,UAArB,GAAkC,IAAlC,GAAyC,CAA3D,CAZA,CAAA;AAAA,YAaA,IAAC,CAAA,YAAD,GAAgB,IAbhB,CAAA;AAAA,YAeA,UAAA,GAAa,CAfb,CAAA;AAAA,YAgBA,YAAA,GAAe,CAhBf,CAAA;AAiBA,iBAAS,0DAAT,GAAA;AACI,cAAA,IAAC,CAAA,YAAD,CAAc,UAAd,EAA0B,YAA1B,CAAA,CAAA;AAAA,cACA,UAAA,IAAc,IAAC,CAAA,MAAM,CAAC,cAAR,IAA0B,UAAU,CAAC,YAAX,CAAwB,IAAC,CAAA,MAAzB,CADxC,CAAA;AAAA,cAEA,YAAA,IAAgB,IAAC,CAAA,MAAM,CAAC,eAAR,IAA2B,UAAU,CAAC,YAAX,CAAwB,IAAC,CAAA,MAAzB,CAF3C,CADJ;AAAA,aAjBA;AAAA,YAsBA,IAAC,CAAA,WAAD,GAAe,IAtBf,CADJ;WAjBR;AAgBS;AAhBT,aA0CS,MA1CT;AA2CQ,UAAA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAV,CAAA;AAAA,UACA,QAAA,GAAW,EADX,CAAA;AAGA,eAAS,sFAAT,GAAA;AAEI,YAAA,GAAA,GAAM,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAAN,CAAA;AAAA,YACA,KAAA,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CADR,CAAA;AAAA,YAEA,QAAS,CAAA,GAAA,CAAT,GAAgB,KAFhB,CAFJ;AAAA,WAHA;AAAA,UASA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,QAAlB,CATA,CAAA;AAAA,UAUA,IAAC,CAAA,WAAD,GAAe,IAVf,CA3CR;AA0CS;AA1CT,aAuDS,MAvDT;AAwDQ,UAAA,IAAA,CAAA,IAAQ,CAAA,kBAAR;AAEI,YAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,YACA,IAAC,CAAA,WAAW,CAAC,IAAb,IAAqB,CADrB,CAAA;AAIA,YAAA,IAAG,IAAC,CAAA,MAAM,CAAC,cAAR,KAA4B,CAA5B,IAAkC,CAAA,IAAK,CAAA,YAA1C;AACI,cAAA,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,WAAW,CAAC,IAAb,GAAoB,IAAC,CAAA,MAAM,CAAC,cAAzC,CAAA;AAAA,cACA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,MAAM,CAAC,UAArB,GAAkC,IAAlC,GAAyC,CAA3D,CADA,CADJ;aAJA;AAAA,YAQA,IAAC,CAAA,kBAAD,GAAsB,IARtB,CAFJ;WAAA;AAAA,UAYA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,gBAAR,CAAyB,IAAC,CAAA,WAAW,CAAC,IAAtC,CAZT,CAAA;AAAA,UAaA,IAAC,CAAA,WAAW,CAAC,IAAb,IAAqB,MAAM,CAAC,MAb5B,CAAA;AAAA,UAcA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,MAAd,CAdA,CAAA;AAgBA,UAAA,IAAG,IAAC,CAAA,WAAW,CAAC,IAAb,IAAqB,CAAxB;AACI,YAAA,IAAC,CAAA,WAAD,GAAe,IAAf,CADJ;WAxER;AAuDS;AAvDT;AA4EQ,UAAA,IAAG,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,WAAW,CAAC,IAA/B,CAAH;AACI,YAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,WAAW,CAAC,IAA7B,CAAA,CAAA;AAAA,YACA,IAAC,CAAA,WAAD,GAAe,IADf,CADJ;WA5ER;AAAA,OAVJ;IAAA,CA9BO;EAAA,CALX,CAAA;;oBAAA;;GADqB,QAHzB,CAAA;;;;ACAA,IAAA,mBAAA;EAAA;;uJAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,MAAA,8FAAA;;AAAA,+BAAA,CAAA;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,UAAjB,CAAA,CAAA;;AAAA,EAIA,KAAA,GAAQ,CAAC,MAAD,EAAS,MAAT,EAAiB,MAAjB,EAAyB,MAAzB,EAAiC,MAAjC,EAAyC,MAAzC,EAAiD,MAAjD,CAJR,CAAA;;AAAA,EAMA,UAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,QAAA,IAAA;AAAA,WAAO,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MAA3B,IACA,QAAA,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,EAAA,eAA2B,KAA3B,EAAA,IAAA,MAAA,CADP,CADI;EAAA,CANR,CAAA;;AAAA,uBAUA,IAAA,GAAM,SAAA,GAAA;AAEF,IAAA,IAAC,CAAA,KAAD,GAAS,EAAT,CAAA;AAAA,IACA,IAAC,CAAA,OAAD,GAAW,EADX,CAAA;AAAA,IAIA,IAAC,CAAA,KAAD,GAAS,IAJT,CAAA;WAKA,IAAC,CAAA,MAAD,GAAU,GAPR;EAAA,CAVN,CAAA;;AAAA,EAoBA,KAAA,GAAQ,EApBR,CAAA;;AAAA,EAuBA,UAAA,GAAa,EAvBb,CAAA;;AAAA,EA0BA,IAAA,GAAO,SAAC,IAAD,EAAO,EAAP,GAAA;AACH,QAAA,4BAAA;AAAA,IAAA,CAAA,GAAI,EAAJ,CAAA;AACA;AAAA,SAAA,2CAAA;2BAAA;AACI,MAAA,CAAC,CAAC,IAAF,CAAO,SAAP,CAAA,CAAA;AAAA,MACA,UAAW,CAAA,CAAC,CAAC,IAAF,CAAO,GAAP,CAAA,CAAX,GAA0B,IAD1B,CADJ;AAAA,KADA;;MAKA,KAAM,CAAA,IAAA,IAAS;KALf;WAMA,KAAM,CAAA,IAAA,CAAK,CAAC,EAAZ,GAAiB,GAPd;EAAA,CA1BP,CAAA;;AAAA,EAoCA,KAAA,GAAQ,SAAC,IAAD,EAAO,EAAP,GAAA;;MACJ,KAAM,CAAA,IAAA,IAAS;KAAf;WACA,KAAM,CAAA,IAAA,CAAK,CAAC,KAAZ,GAAoB,GAFhB;EAAA,CApCR,CAAA;;AAAA,uBAwCA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,mBAAA;AAAA,IAAA,IAAC,CAAA,OAAA,CAAD,GAAS,KAAT,CAAA;AAEA,WAAM,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAA,IAAyB,CAAA,IAAK,CAAA,OAAA,CAApC,GAAA;AAEI,MAAA,IAAG,CAAA,IAAK,CAAA,WAAR;AACI,QAAA,IAAA,CAAA,IAAe,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAd;AAAA,gBAAA,CAAA;SAAA;AAAA,QAEA,IAAC,CAAA,GAAD,GAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,GAAuB,CAF9B,CAAA;AAAA,QAGA,IAAC,CAAA,IAAD,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAHR,CAAA;AAKA,QAAA,IAAY,IAAC,CAAA,GAAD,KAAQ,CAApB;AAAA,mBAAA;SALA;AAAA,QAOA,IAAC,CAAA,KAAK,CAAC,IAAP,CAAY,IAAC,CAAA,IAAb,CAPA,CAAA;AAAA,QAQA,IAAC,CAAA,OAAO,CAAC,IAAT,CAAc,IAAC,CAAA,MAAM,CAAC,MAAR,GAAiB,IAAC,CAAA,GAAhC,CARA,CAAA;AAAA,QASA,IAAC,CAAA,WAAD,GAAe,IATf,CADJ;OAAA;AAAA,MAaA,IAAA,GAAO,IAAC,CAAA,KAAK,CAAC,IAAP,CAAY,GAAZ,CAbP,CAAA;AAAA,MAcA,OAAA,GAAU,KAAM,CAAA,IAAA,CAdhB,CAAA;AAgBA,MAAA,sBAAG,OAAO,CAAE,WAAZ;AAEI,QAAA,IAAA,CAAA,CAAc,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,GAAnB,CAAA,IAA2B,IAAA,KAAQ,MAAjD,CAAA;AAAA,gBAAA,CAAA;SAAA;AAAA,QAGA,OAAO,CAAC,EAAE,CAAC,IAAX,CAAgB,IAAhB,CAHA,CAAA;AAMA,QAAA,IAAG,IAAA,IAAQ,UAAX;AACI,UAAA,IAAC,CAAA,WAAD,GAAe,KAAf,CADJ;SARJ;OAAA,MAYK,IAAG,IAAA,IAAQ,UAAX;AACD,QAAA,IAAC,CAAA,WAAD,GAAe,KAAf,CADC;OAAA,MAAA;AAMD,QAAA,IAAA,CAAA,IAAe,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,GAAnB,CAAd;AAAA,gBAAA,CAAA;SAAA;AAAA,QACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAjB,CADA,CANC;OA5BL;AAsCA,aAAM,IAAC,CAAA,MAAM,CAAC,MAAR,IAAkB,IAAC,CAAA,OAAQ,CAAA,IAAC,CAAA,OAAO,CAAC,MAAT,GAAkB,CAAlB,CAAjC,GAAA;AAEI,QAAA,OAAA,GAAU,KAAM,CAAA,IAAC,CAAA,KAAK,CAAC,IAAP,CAAY,GAAZ,CAAA,CAAhB,CAAA;AACA,QAAA,sBAAG,OAAO,CAAE,cAAZ;AACI,UAAA,OAAO,CAAC,KAAK,CAAC,IAAd,CAAmB,IAAnB,CAAA,CADJ;SADA;AAAA,QAIA,IAAA,GAAO,IAAC,CAAA,KAAK,CAAC,GAAP,CAAA,CAJP,CAAA;AAAA,QAKA,IAAC,CAAA,OAAO,CAAC,GAAT,CAAA,CALA,CAAA;AAAA,QAMA,IAAC,CAAA,WAAD,GAAe,KANf,CAFJ;MAAA,CAxCJ;IAAA,CAHO;EAAA,CAxCX,CAAA;;AAAA,EA6FA,IAAA,CAAK,MAAL,EAAa,SAAA,GAAA;AACT,QAAA,IAAA;AAAA,IAAA,WAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,EAAA,eAA6B,KAA7B,EAAA,IAAA,KAAH;AACI,aAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,uBAAf,CAAP,CADJ;KAAA;WAGA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,CAAvB,EAJS;EAAA,CAAb,CA7FA,CAAA;;AAAA,EAmGA,IAAA,CAAK,WAAL,EAAkB,SAAA,GAAA;AACd,IAAA,IAAC,CAAA,KAAD,GAAS,EAAT,CAAA;WACA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,IAAC,CAAA,KAAd,EAFc;EAAA,CAAlB,CAnGA,CAAA;;AAAA,EAuGA,IAAA,CAAK,gBAAL,EAAuB,SAAA,GAAA;AACnB,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAFA,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,EAAP,GAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHZ,CAAA;WAKA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,EAAvB,EANmB;EAAA,CAAvB,CAvGA,CAAA;;AAAA,EA+GA,IAAA,CAAK,qBAAL,EAA4B,SAAA,GAAA;AACxB,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAFA,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,IAAP,GAAc,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAHd,CAAA;AAAA,IAKA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,EAAhB,CALA,CAAA;WAMA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,EAAvB,EAPwB;EAAA,CAA5B,CA/GA,CAAA;;AAAA,EAwHA,IAAA,CAAK,qBAAL,EAA4B,SAAA,GAAA;AACxB,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CADA,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,SAAP,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHnB,CAAA;AAAA,IAIA,IAAC,CAAA,KAAK,CAAC,QAAP,GAAkB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAJlB,CAAA;WAMA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,EAPwB;EAAA,CAA5B,CAxHA,CAAA;;AAAA,EAmIA,gBAAA,GACI;AAAA,IAAA,IAAA,EAAM,CAAN;AAAA,IACA,IAAA,EAAM,CADN;AAAA,IAEA,IAAA,EAAM,EAFN;AAAA,IAGA,IAAA,EAAM,EAHN;AAAA,IAIA,IAAA,EAAM,EAJN;AAAA,IAKA,IAAA,EAAM,EALN;GApIJ,CAAA;;AAAA,EA2IA,IAAA,CAAK,+BAAL,EAAsC,SAAA,GAAA;AAClC,QAAA,wCAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,UAAA,GAAa,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFb,CAAA;AAKA,IAAA,IAAG,IAAC,CAAA,KAAK,CAAC,IAAP,KAAiB,MAApB;AACI,aAAO,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,CAAvB,CAAP,CADJ;KALA;AAQA,IAAA,IAAG,UAAA,KAAgB,CAAnB;AACI,aAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,sDAAf,CAAP,CADJ;KARA;AAAA,IAWA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAXA,CAAA;AAAA,IAaA,MAAA,GAAS,IAAC,CAAA,KAAK,CAAC,MAAP,GAAgB,EAbzB,CAAA;AAAA,IAcA,MAAM,CAAC,QAAP,GAAkB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAdlB,CAAA;AAAA,IAgBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAhBA,CAAA;AAAA,IAiBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAjBA,CAAA;AAAA,IAmBA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAnBV,CAAA;AAAA,IAoBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CApBA,CAAA;AAAA,IAsBA,MAAM,CAAC,gBAAP,GAA0B,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAtB1B,CAAA;AAAA,IAuBA,MAAM,CAAC,cAAP,GAAwB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAvBxB,CAAA;AAAA,IAyBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAzBA,CAAA;AAAA,IA2BA,MAAM,CAAC,UAAP,GAAoB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CA3BpB,CAAA;AAAA,IA4BA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CA5BA,CAAA;AA8BA,IAAA,IAAG,OAAA,KAAW,CAAd;AACI,MAAA,MAAM,CAAC,eAAP,GAAyB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAzB,CAAA;AAAA,MACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CADA,CAAA;AAAA,MAEA,MAAM,CAAC,aAAP,GAAuB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFvB,CAAA;AAAA,MAGA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAHA,CADJ;KAAA,MAMK,IAAG,OAAA,KAAa,CAAhB;AACD,MAAA,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,8BAAf,CAAA,CADC;KApCL;AAuCA,IAAA,IAAG,yCAAH;AACI,MAAA,MAAM,CAAC,cAAP,GAAwB,gBAAiB,CAAA,MAAM,CAAC,QAAP,CAAzC,CADJ;KAvCA;AAAA,IA0CA,MAAM,CAAC,aAAP,WAAuB,MAAM,CAAC,SAAP,KAAoB,MAApB,IAAA,IAAA,KAA4B,MA1CnD,CAAA;AAAA,IA2CA,MAAM,CAAC,YAAP,GAAsB,MAAM,CAAC,QAAP,KAAmB,MAAnB,IAA8B,MAAM,CAAC,cAAP,GAAwB,CA3C5E,CAAA;AA6CA,IAAA,aAAG,MAAM,CAAC,SAAP,KAAoB,MAApB,IAAA,KAAA,KAA4B,MAA5B,IAAA,KAAA,KAAoC,MAApC,IAAA,KAAA,KAA4C,MAA5C,IAAA,KAAA,KAAoD,MAApD,IAAA,KAAA,KAA4D,MAA5D,IAAA,KAAA,KAAoE,MAApE,IAAA,KAAA,KAA4E,MAA/E;aACI,MAAM,CAAC,QAAP,GAAkB,OADtB;KA9CkC;EAAA,CAAtC,CA3IA,CAAA;;AAAA,EA4LA,IAAA,CAAK,oCAAL,EAA2C,SAAA,GAAA;AACvC,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;WACA,IAAC,CAAA,KAAK,CAAC,MAAP,GAAgB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAC,CAAA,GAAD,GAAO,CAA1B,EAFuB;EAAA,CAA3C,CA5LA,CAAA;;AAAA,EAgMA,IAAA,CAAK,oCAAL,EAA2C,SAAA,GAAA;AACvC,QAAA,MAAA;AAAA,IAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,MAAR,GAAiB,IAAC,CAAA,GAA3B,CAAA;AAAA,IACA,IAAC,CAAA,KAAK,CAAC,MAAP,GAAgB,UAAU,CAAC,QAAX,CAAoB,IAAC,CAAA,MAArB,CADhB,CAAA;WAEA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,MAAb,EAHuC;EAAA,CAA3C,CAhMA,CAAA;;AAAA,EAqMA,IAAA,CAAK,yCAAL,EAAgD,SAAA,GAAA;WAC5C,IAAC,CAAA,KAAK,CAAC,MAAM,CAAC,YAAd,GAA6B,CAAA,CAAC,IAAE,CAAA,MAAM,CAAC,UAAR,CAAA,EADa;EAAA,CAAhD,CArMA,CAAA;;AAAA,EAyMA,UAAC,CAAA,YAAD,GAAe,SAAC,MAAD,GAAA;AACX,QAAA,aAAA;AAAA,IAAA,GAAA,GAAM,CAAN,CAAA;AAAA,IACA,KAAA,GAAQ,CADR,CAAA;AAGA,WAAM,KAAA,EAAN,GAAA;AACI,MAAA,CAAA,GAAI,MAAM,CAAC,SAAP,CAAA,CAAJ,CAAA;AAAA,MACA,GAAA,GAAM,CAAC,GAAA,IAAO,CAAR,CAAA,GAAa,CAAC,CAAA,GAAI,IAAL,CADnB,CAAA;AAEA,MAAA,IAAA,CAAA,CAAa,CAAA,GAAI,IAAjB,CAAA;AAAA,cAAA;OAHJ;IAAA,CAHA;AAQA,WAAO,GAAP,CATW;EAAA,CAzMf,CAAA;;AAAA,EAoNA,UAAC,CAAA,QAAD,GAAW,SAAC,MAAD,GAAA;AACP,QAAA,yBAAA;AAAA,IAAA,MAAM,CAAC,OAAP,CAAe,CAAf,CAAA,CAAA;AAAA,IAEA,GAAA,GAAM,MAAM,CAAC,SAAP,CAAA,CAFN,CAAA;AAAA,IAGA,GAAA,GAAM,UAAU,CAAC,YAAX,CAAwB,MAAxB,CAHN,CAAA;AAKA,IAAA,IAAG,GAAA,KAAO,IAAV;AACI,MAAA,MAAM,CAAC,OAAP,CAAe,CAAf,CAAA,CAAA;AAAA,MACA,KAAA,GAAQ,MAAM,CAAC,SAAP,CAAA,CADR,CAAA;AAGA,MAAA,IAAG,KAAA,GAAQ,IAAX;AACI,QAAA,MAAM,CAAC,OAAP,CAAe,CAAf,CAAA,CADJ;OAHA;AAMA,MAAA,IAAG,KAAA,GAAQ,IAAX;AACI,QAAA,MAAM,CAAC,OAAP,CAAe,MAAM,CAAC,SAAP,CAAA,CAAf,CAAA,CADJ;OANA;AASA,MAAA,IAAG,KAAA,GAAQ,IAAX;AACI,QAAA,MAAM,CAAC,OAAP,CAAe,CAAf,CAAA,CADJ;OAVJ;KAAA,MAAA;AAcI,MAAA,MAAM,CAAC,OAAP,CAAe,CAAf,CAAA,CAdJ;KALA;AAAA,IAqBA,GAAA,GAAM,MAAM,CAAC,SAAP,CAAA,CArBN,CAAA;AAAA,IAsBA,GAAA,GAAM,UAAU,CAAC,YAAX,CAAwB,MAAxB,CAtBN,CAAA;AAwBA,IAAA,IAAG,GAAA,KAAO,IAAV;AACI,MAAA,QAAA,GAAW,MAAM,CAAC,SAAP,CAAA,CAAX,CAAA;AAAA,MACA,MAAM,CAAC,OAAP,CAAe,CAAf,CADA,CAAA;AAAA,MAEA,MAAM,CAAC,OAAP,CAAe,CAAf,CAFA,CAAA;AAAA,MAGA,MAAM,CAAC,OAAP,CAAe,CAAf,CAHA,CAAA;AAAA,MAIA,MAAM,CAAC,OAAP,CAAe,CAAf,CAJA,CAAA;AAAA,MAMA,GAAA,GAAM,MAAM,CAAC,SAAP,CAAA,CANN,CAAA;AAAA,MAOA,GAAA,GAAM,UAAU,CAAC,YAAX,CAAwB,MAAxB,CAPN,CAAA;AASA,MAAA,IAAG,GAAA,KAAO,IAAV;AACI,eAAO,MAAM,CAAC,UAAP,CAAkB,GAAlB,CAAP,CADJ;OAVJ;KAxBA;AAqCA,WAAO,IAAP,CAtCO;EAAA,CApNX,CAAA;;AAAA,EA6PA,IAAA,CAAK,+BAAL,EAAsC,SAAA,GAAA;AAClC,QAAA,cAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFV,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,IAAP,GAAc,EAHd,CAAA;AAIA,SAAS,qCAAT,GAAA;AACI,MAAA,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,CAAA,CAAZ,GACI;AAAA,QAAA,KAAA,EAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAP;AAAA,QACA,QAAA,EAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CADV;OADJ,CADJ;AAAA,KAJA;WASA,IAAC,CAAA,eAAD,CAAA,EAVkC;EAAA,CAAtC,CA7PA,CAAA;;AAAA,EA0QA,IAAA,CAAK,+BAAL,EAAsC,SAAA,GAAA;AAClC,QAAA,cAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFV,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,IAAP,GAAc,EAHd,CAAA;AAIA,SAAS,qCAAT,GAAA;AACI,MAAA,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,CAAA,CAAZ,GACI;AAAA,QAAA,KAAA,EAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAP;AAAA,QACA,KAAA,EAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CADP;AAAA,QAEA,EAAA,EAAI,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFJ;OADJ,CADJ;AAAA,KAJA;WAUA,IAAC,CAAA,eAAD,CAAA,EAXkC;EAAA,CAAtC,CA1QA,CAAA;;AAAA,EAwRA,IAAA,CAAK,+BAAL,EAAsC,SAAA,GAAA;AAClC,QAAA,cAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,IAAC,CAAA,KAAK,CAAC,UAAP,GAAoB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFpB,CAAA;AAAA,IAGA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAHV,CAAA;AAKA,IAAA,IAAG,IAAC,CAAA,KAAK,CAAC,UAAP,KAAqB,CAArB,IAA2B,OAAA,GAAU,CAAxC;AACI,MAAA,IAAC,CAAA,KAAK,CAAC,WAAP,GAAqB,EAArB,CAAA;AACA,WAAS,qCAAT,GAAA;AACI,QAAA,IAAC,CAAA,KAAK,CAAC,WAAY,CAAA,CAAA,CAAnB,GAAwB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAxB,CADJ;AAAA,OAFJ;KALA;WAUA,IAAC,CAAA,eAAD,CAAA,EAXkC;EAAA,CAAtC,CAxRA,CAAA;;AAAA,EAsSA,IAAA,CAAK,+BAAL,EAAsC,SAAA,GAAA;AAClC,QAAA,cAAA;AAAA,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IAEA,OAAA,GAAU,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAFV,CAAA;AAAA,IAGA,IAAC,CAAA,KAAK,CAAC,YAAP,GAAsB,EAHtB,CAAA;AAIA,SAAS,qCAAT,GAAA;AACI,MAAA,IAAC,CAAA,KAAK,CAAC,YAAa,CAAA,CAAA,CAApB,GAAyB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAzB,CADJ;AAAA,KAJA;WAOA,IAAC,CAAA,eAAD,CAAA,EARkC;EAAA,CAAtC,CAtSA,CAAA;;AAAA,EAiTA,IAAA,CAAK,qBAAL,EAA4B,SAAA,GAAA;AACxB,QAAA,cAAA;AAAA,IAAA,OAAA,GAAU,IAAC,CAAA,GAAD,IAAQ,CAAlB,CAAA;AAAA,IACA,IAAC,CAAA,KAAK,CAAC,aAAP,GAAuB,EADvB,CAAA;AAEA,SAAS,qCAAT,GAAA;AACI,MAAA,IAAC,CAAA,KAAK,CAAC,aAAc,CAAA,CAAA,CAArB,GAA0B,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAA1B,CADJ;AAAA,KAHwB;EAAA,CAA5B,CAjTA,CAAA;;AAAA,uBA0TA,eAAA,GAAiB,SAAA,GAAA;AACb,QAAA,2HAAA;AAAA,IAAA,IAAA,CAAA,CAAc,iCAAA,IAAyB,yBAAzB,IAA0C,+BAA1C,IAAiE,yBAA/E,CAAA;AAAA,YAAA,CAAA;KAAA;AAAA,IAEA,SAAA,GAAY,CAFZ,CAAA;AAAA,IAGA,SAAA,GAAY,CAHZ,CAAA;AAAA,IAIA,SAAA,GAAY,CAJZ,CAAA;AAAA,IAKA,UAAA,GAAa,CALb,CAAA;AAAA,IAMA,WAAA,GAAc,CANd,CAAA;AAAA,IAQA,MAAA,GAAS,CART,CAAA;AAAA,IASA,SAAA,GAAY,CATZ,CAAA;AAAA,IAUA,IAAC,CAAA,KAAK,CAAC,UAAP,GAAoB,EAVpB,CAAA;AAYA;AAAA;SAAA,mDAAA;yBAAA;AACI,WAAS,6EAAT,GAAA;AAGI,QAAA,IAAC,CAAA,KAAK,CAAC,UAAU,CAAC,IAAlB,CACI;AAAA,UAAA,MAAA,EAAQ,MAAR;AAAA,UACA,QAAA,EAAU,QADV;AAAA,UAEA,SAAA,EAAW,SAFX;SADJ,CAAA,CAAA;AAAA,QAKA,IAAA,GAAO,IAAC,CAAA,KAAK,CAAC,UAAP,IAAqB,IAAC,CAAA,KAAK,CAAC,WAAY,CAAA,WAAA,EAAA,CAL/C,CAAA;AAAA,QAMA,MAAA,IAAU,IANV,CAAA;AAAA,QAOA,QAAA,IAAY,IAPZ,CAAA;AAAA,QAQA,SAAA,IAAa,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,SAAA,CAAU,CAAC,QARpC,CAAA;AAUA,QAAA,IAAG,SAAA,GAAY,CAAZ,GAAgB,IAAC,CAAA,KAAK,CAAC,IAAI,CAAC,MAA5B,IAAuC,EAAA,UAAA,KAAgB,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,SAAA,CAAU,CAAC,KAAjF;AACI,UAAA,UAAA,GAAa,CAAb,CAAA;AAAA,UACA,SAAA,EADA,CADJ;SAbJ;AAAA,OAAA;AAiBA,MAAA,IAAG,SAAA,GAAY,CAAZ,GAAgB,IAAC,CAAA,KAAK,CAAC,IAAI,CAAC,MAA5B,IAAuC,CAAA,GAAI,CAAJ,KAAS,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,SAAA,GAAY,CAAZ,CAAc,CAAC,KAA9E;sBACI,SAAA,IADJ;OAAA,MAAA;8BAAA;OAlBJ;AAAA;oBAba;EAAA,CA1TjB,CAAA;;AAAA,EA4VA,KAAA,CAAM,MAAN,EAAc,SAAA,GAAA;AAEV,QAAA,qBAAA;AAAA,IAAA,IAAG,uBAAH;AACI,MAAA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,IAAC,CAAA,UAAD,GAAc,CAA3B,CAAA,CADJ;KAAA;AAIA;AAAA,SAAA,2CAAA;uBAAA;YAA0B,KAAK,CAAC,IAAN,KAAc;;OACpC;AAAA,MAAA,IAAC,CAAA,KAAD,GAAS,KAAT,CAAA;AACA,YAFJ;AAAA,KAJA;AAQA,IAAA,IAAG,IAAC,CAAA,KAAK,CAAC,IAAP,KAAiB,MAApB;AACI,MAAA,IAAC,CAAA,KAAD,GAAS,IAAT,CAAA;AACA,aAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,8BAAf,CAAP,CAFJ;KARA;AAAA,IAaA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,KAAK,CAAC,MAAvB,CAbA,CAAA;AAAA,IAcA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,KAAK,CAAC,QAAP,GAAkB,IAAC,CAAA,KAAK,CAAC,SAAzB,GAAqC,IAArC,GAA4C,CAA9D,CAdA,CAAA;AAeA,IAAA,IAAG,IAAC,CAAA,KAAK,CAAC,MAAV;AACI,MAAA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,KAAK,CAAC,MAAvB,CAAA,CADJ;KAfA;WAmBA,IAAC,CAAA,UAAD,GAAc,IAAC,CAAA,KAAK,CAAC,WArBX;EAAA,CAAd,CA5VA,CAAA;;AAAA,EAmXA,IAAA,CAAK,MAAL,EAAa,SAAA,GAAA;AACT,QAAA,8DAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,WAAR;;QACI,IAAC,CAAA,aAAc,IAAC,CAAA,MAAM,CAAC;OAAvB;AAKA,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,MAAR,KAAkB,CAArB;AACI,QAAA,KAAA,GAAQ,IAAI,CAAC,GAAL,CAAS,IAAC,CAAA,MAAM,CAAC,cAAR,CAAA,CAAT,EAAmC,IAAC,CAAA,GAApC,CAAR,CAAA;AAAA,QACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,KAAhB,CADA,CAAA;AAAA,QAEA,IAAC,CAAA,GAAD,IAAQ,KAFR,CAAA;AAGA,cAAA,CAJJ;OALA;AAAA,MAWA,IAAC,CAAA,UAAD,GAAc,CAXd,CAAA;AAAA,MAYA,IAAC,CAAA,SAAD,GAAa,CAZb,CAAA;AAAA,MAaA,IAAC,CAAA,WAAD,GAAe,CAbf,CAAA;AAAA,MAcA,IAAC,CAAA,UAAD,GAAc,CAdd,CAAA;AAAA,MAeA,IAAC,CAAA,WAAD,GAAe,CAff,CAAA;AAAA,MAiBA,IAAC,CAAA,WAAD,GAAe,IAjBf,CADJ;KAAA;AAqBA,IAAA,IAAA,CAAA,IAAQ,CAAA,YAAR;AACI,MAAA,IAAC,CAAA,YAAD,GAAgB,IAAC,CAAA,aAAD,CAAA,CAAhB,CAAA;AACA,MAAA,IAAU,IAAC,CAAA,OAAA,CAAD,GAAS,CAAA,IAAK,CAAA,YAAxB;AAAA,cAAA,CAAA;OADA;AAAA,MAEA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,IAAC,CAAA,UAAd,CAFA,CADJ;KArBA;AAAA,IA2BA,MAAA,GAAS,IAAC,CAAA,KAAK,CAAC,YAAa,CAAA,IAAC,CAAA,UAAD,CAApB,GAAmC,IAAC,CAAA,UA3B7C,CAAA;AAAA,IA4BA,MAAA,GAAS,CA5BT,CAAA;AA+BA,IAAA,IAAA,CAAA,IAAQ,CAAA,MAAM,CAAC,SAAR,CAAkB,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,MAAnC,CAAP;AACI,MAAA,IAAC,CAAA,OAAA,CAAD,GAAS,IAAT,CAAA;AACA,YAAA,CAFJ;KA/BA;AAAA,IAoCA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,MAAb,CApCA,CAAA;AAuCA,WAAM,IAAC,CAAA,UAAD,GAAc,IAAC,CAAA,KAAK,CAAC,YAAY,CAAC,MAAxC,GAAA;AAEI,MAAA,UAAA,GAAa,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,IAAC,CAAA,SAAD,CAAW,CAAC,KAAxB,GAAgC,IAAC,CAAA,WAA9C,CAAA;AAAA,MACA,SAAA,GAAY,CADZ,CAAA;AAEA,WAAc,kDAAd,GAAA;AACI,QAAA,IAAA,GAAO,IAAC,CAAA,KAAK,CAAC,UAAP,IAAqB,IAAC,CAAA,KAAK,CAAC,WAAY,CAAA,IAAC,CAAA,WAAD,CAA/C,CAAA;AAGA,QAAA,IAAA,CAAA,IAAc,CAAA,MAAM,CAAC,SAAR,CAAkB,MAAA,GAAS,IAA3B,CAAb;AAAA,gBAAA;SAHA;AAAA,QAKA,MAAA,IAAU,IALV,CAAA;AAAA,QAMA,SAAA,IAAa,IANb,CAAA;AAAA,QAOA,IAAC,CAAA,WAAD,EAPA,CADJ;AAAA,OAFA;AAaA,MAAA,IAAG,MAAA,GAAS,UAAZ;AACI,QAAA,IAAC,CAAA,UAAD,IAAe,SAAf,CAAA;AAAA,QACA,IAAC,CAAA,WAAD,IAAgB,MADhB,CAAA;AAEA,cAHJ;OAAA,MAAA;AAMI,QAAA,IAAC,CAAA,UAAD,EAAA,CAAA;AAAA,QACA,IAAC,CAAA,UAAD,GAAc,CADd,CAAA;AAAA,QAEA,IAAC,CAAA,WAAD,GAAe,CAFf,CAAA;AAMA,QAAA,IAAG,IAAC,CAAA,SAAD,GAAa,CAAb,GAAiB,IAAC,CAAA,KAAK,CAAC,IAAI,CAAC,MAA7B,IAAwC,IAAC,CAAA,UAAD,GAAc,CAAd,KAAmB,IAAC,CAAA,KAAK,CAAC,IAAK,CAAA,IAAC,CAAA,SAAD,GAAa,CAAb,CAAe,CAAC,KAA1F;AACI,UAAA,IAAC,CAAA,SAAD,EAAA,CADJ;SANA;AAUA,QAAA,IAAG,MAAA,GAAS,MAAT,KAAqB,IAAC,CAAA,KAAK,CAAC,YAAa,CAAA,IAAC,CAAA,UAAD,CAA5C;AACI,gBADJ;SAhBJ;OAfJ;IAAA,CAvCA;AA0EA,IAAA,IAAG,MAAA,GAAS,CAAZ;AACI,MAAA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,MAAnB,CAAd,CAAA,CAAA;aACA,IAAC,CAAA,OAAA,CAAD,GAAS,IAAC,CAAA,UAAD,KAAe,IAAC,CAAA,KAAK,CAAC,YAAY,CAAC,OAFhD;KAAA,MAAA;aAII,IAAC,CAAA,OAAA,CAAD,GAAS,KAJb;KA3ES;EAAA,CAAb,CAnXA,CAAA;;AAAA,uBAocA,aAAA,GAAe,SAAA,GAAA;AACX,QAAA,qFAAA;AAAA,IAAA,IAAA,CAAA,kDAAuC,CAAE,gBAAtB,GAA+B,CAAlD,CAAA;AAAA,aAAO,IAAP,CAAA;KAAA;AAAA,IAGA,EAAA,GAAK,IAAC,CAAA,KAAK,CAAC,aAAc,CAAA,CAAA,CAH1B,CAAA;AAIA;AAAA,SAAA,4CAAA;wBAAA;AACI,MAAA,IAAS,KAAK,CAAC,EAAN,KAAY,EAArB;AAAA,cAAA;OADJ;AAAA,KAJA;AAOA,IAAA,IAAG,KAAK,CAAC,EAAN,KAAc,EAAjB;AACI,MAAA,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,+BAAf,CAAA,CADJ;KAPA;;MAUA,IAAC,CAAA,WAAY;KAVb;AAaA,WAAM,IAAC,CAAA,QAAQ,CAAC,MAAV,GAAmB,KAAK,CAAC,UAAU,CAAC,MAA1C,GAAA;AACI,MAAA,KAAA,GAAQ,KAAK,CAAC,UAAW,CAAA,IAAC,CAAA,QAAQ,CAAC,MAAV,CAAzB,CAAA;AAGA,MAAA,IAAA,CAAA,IAAqB,CAAA,MAAM,CAAC,SAAR,CAAkB,KAAK,CAAC,QAAN,GAAiB,IAAC,CAAA,MAAM,CAAC,MAAzB,GAAkC,EAApD,CAApB;AAAA,eAAO,KAAP,CAAA;OAHA;AAAA,MAMA,IAAC,CAAA,MAAM,CAAC,IAAR,CAAa,KAAK,CAAC,QAAnB,CANA,CAAA;AAAA,MASA,GAAA,GAAM,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CATN,CAAA;AAAA,MAUA,KAAA,GAAQ,IAVR,CAAA;AAYA,MAAA,IAAA,CAAA,IAAqB,CAAA,MAAM,CAAC,SAAR,CAAkB,GAAlB,CAApB;AAAA,eAAO,KAAP,CAAA;OAZA;AAeA,MAAA,IAAG,GAAA,GAAM,CAAT;AACI,QAAA,GAAA,GAAM,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAN,CAAA;AACA,QAAA,IAAG,GAAA,KAAQ,MAAR,IAAA,GAAA,KAAgB,MAAnB;AACI,UAAA,KAAA,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,GAAnB,EAAwB,WAAxB,CAAR,CADJ;SAFJ;OAfA;;QAqBA,QAAS,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,GAAnB,EAAwB,MAAxB;OArBT;AAAA,MAwBA,aAAA,uHAAoE,KAAK,CAAC,QAxB1E,CAAA;AAAA,MAyBA,IAAC,CAAA,QAAQ,CAAC,IAAV,CACI;AAAA,QAAA,KAAA,EAAO,KAAP;AAAA,QACA,SAAA,EAAW,KAAK,CAAC,SAAN,GAAkB,KAAK,CAAC,SAAxB,GAAoC,IAApC,GAA2C,CADtD;AAAA,QAEA,QAAA,EAAU,CAAC,aAAA,GAAgB,KAAK,CAAC,SAAvB,CAAA,GAAoC,KAAK,CAAC,SAA1C,GAAsD,IAAtD,GAA6D,CAFvE;OADJ,CAzBA,CADJ;IAAA,CAbA;AAAA,IA6CA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,QAAnB,CA7CA,CAAA;AA8CA,WAAO,IAAP,CA/CW;EAAA,CApcf,CAAA;;AAAA,EAsfA,IAAA,CAAK,gBAAL,EAAuB,SAAA,GAAA;AACnB,IAAA,IAAC,CAAA,QAAD,GAAY,EAAZ,CAAA;WACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,EAFmB;EAAA,CAAvB,CAtfA,CAAA;;AAAA,EA2fA,KAAA,CAAM,gBAAN,EAAwB,SAAA,GAAA;WACpB,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,QAAnB,EADoB;EAAA,CAAxB,CA3fA,CAAA;;AAAA,EA+fA,IAAA,GAAO,SAAC,KAAD,EAAQ,IAAR,EAAc,EAAd,GAAA;WACH,IAAA,CAAM,sBAAA,GAAqB,KAArB,GAA4B,OAAlC,EAA0C,SAAA,GAAA;AACtC,MAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,MACA,IAAC,CAAA,GAAD,IAAQ,CADR,CAAA;aAEA,EAAE,CAAC,IAAH,CAAQ,IAAR,EAAc,IAAd,EAHsC;IAAA,CAA1C,EADG;EAAA,CA/fP,CAAA;;AAAA,EAsgBA,MAAA,GAAS,SAAC,KAAD,GAAA;WACL,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAC,CAAA,GAApB,EAAyB,MAAzB,EADd;EAAA,CAtgBT,CAAA;;AAAA,EA0gBA,IAAA,CAAK,MAAL,EAAa,OAAb,EAAsB,MAAtB,CA1gBA,CAAA;;AAAA,EA2gBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CA3gBA,CAAA;;AAAA,EA4gBA,IAAA,CAAK,MAAL,EAAa,QAAb,EAAuB,MAAvB,CA5gBA,CAAA;;AAAA,EA6gBA,IAAA,CAAK,MAAL,EAAa,QAAb,EAAuB,MAAvB,CA7gBA,CAAA;;AAAA,EA8gBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,MAA5B,CA9gBA,CAAA;;AAAA,EA+gBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CA/gBA,CAAA;;AAAA,EAghBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CAhhBA,CAAA;;AAAA,EAihBA,IAAA,CAAK,MAAL,EAAa,WAAb,EAA0B,MAA1B,CAjhBA,CAAA;;AAAA,EAkhBA,IAAA,CAAK,MAAL,EAAa,WAAb,EAA0B,MAA1B,CAlhBA,CAAA;;AAAA,EAmhBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CAnhBA,CAAA;;AAAA,EAohBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,MAA5B,CAphBA,CAAA;;AAAA,EAqhBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,MAA5B,CArhBA,CAAA;;AAAA,EAshBA,IAAA,CAAK,MAAL,EAAa,OAAb,EAAsB,MAAtB,CAthBA,CAAA;;AAAA,EAuhBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CAvhBA,CAAA;;AAAA,EAwhBA,IAAA,CAAK,MAAL,EAAa,MAAb,EAAqB,MAArB,CAxhBA,CAAA;;AAAA,EAyhBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CAzhBA,CAAA;;AAAA,EA0hBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,MAA5B,CA1hBA,CAAA;;AAAA,EA2hBA,IAAA,CAAK,MAAL,EAAa,iBAAb,EAAgC,MAAhC,CA3hBA,CAAA;;AAAA,EA4hBA,IAAA,CAAK,MAAL,EAAa,QAAb,EAAuB,MAAvB,CA5hBA,CAAA;;AAAA,EA6hBA,IAAA,CAAK,MAAL,EAAa,OAAb,EAAsB,MAAtB,CA7hBA,CAAA;;AAAA,EA8hBA,IAAA,CAAK,MAAL,EAAa,oBAAb,EAAmC,MAAnC,CA9hBA,CAAA;;AAAA,EA+hBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CA/hBA,CAAA;;AAAA,EAgiBA,IAAA,CAAK,MAAL,EAAa,YAAb,EAA2B,MAA3B,CAhiBA,CAAA;;AAAA,EAiiBA,IAAA,CAAK,MAAL,EAAa,cAAb,EAA6B,MAA7B,CAjiBA,CAAA;;AAAA,EAkiBA,IAAA,CAAK,MAAL,EAAa,YAAb,EAA2B,MAA3B,CAliBA,CAAA;;AAAA,EAmiBA,IAAA,CAAK,MAAL,EAAa,YAAb,EAA2B,MAA3B,CAniBA,CAAA;;AAAA,EAoiBA,IAAA,CAAK,MAAL,EAAa,SAAb,EAAwB,MAAxB,CApiBA,CAAA;;AAAA,EAqiBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,MAAzB,CAriBA,CAAA;;AAAA,EAuiBA,IAAA,CAAK,MAAL,EAAa,UAAb,EAAyB,SAAC,KAAD,GAAA;WACrB,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAC,CAAA,GAApB,EADE;EAAA,CAAzB,CAviBA,CAAA;;AAAA,EA2iBA,MAAA,GAAS,CACL,OADK,EACI,cADJ,EACoB,SADpB,EAC+B,OAD/B,EACwC,OADxC,EACiD,MADjD,EACyD,QADzD,EAEL,SAFK,EAEM,MAFN,EAEc,OAFd,EAEuB,SAFvB,EAEkC,QAFlC,EAE4C,OAF5C,EAEqD,KAFrD,EAE4D,KAF5D,EAGL,KAHK,EAGE,QAHF,EAGY,MAHZ,EAGoB,QAHpB,EAG8B,YAH9B,EAG4C,aAH5C,EAG2D,KAH3D,EAIL,aAJK,EAIU,QAJV,EAIoB,YAJpB,EAIkC,aAJlC,EAIiD,SAJjD,EAKL,UALK,EAKO,OALP,EAKgB,WALhB,EAK6B,QAL7B,EAKuC,QALvC,EAKiD,WALjD,EAML,cANK,EAMW,MANX,EAMmB,OANnB,EAM4B,MAN5B,EAMoC,YANpC,EAMkD,QANlD,EAM4D,OAN5D,EAOL,YAPK,EAOS,MAPT,EAOiB,MAPjB,EAOyB,MAPzB,EAOiC,OAPjC,EAO0C,YAP1C,EAOwD,kBAPxD,EAQL,mBARK,EAQgB,QARhB,EAQ0B,QAR1B,EAQqC,UARrC,EAQiD,mBARjD,EASL,YATK,EASS,UATT,EASqB,WATrB,EASkC,OATlC,EAS2C,eAT3C,EAS4D,QAT5D,EAUL,MAVK,EAUG,SAVH,EAUc,QAVd,EAUwB,eAVxB,EAUyC,UAVzC,EAUqD,QAVrD,EAWL,iBAXK,EAWc,SAXd,EAWyB,UAXzB,EAWqC,aAXrC,EAWoD,MAXpD,EAW4D,WAX5D,EAYL,SAZK,EAYM,OAZN,EAYe,QAZf,EAYyB,WAZzB,EAYsC,WAZtC,EAYmD,OAZnD,EAY4D,OAZ5D,EAaL,SAbK,EAaM,aAbN,EAaqB,WAbrB,EAakC,MAblC,EAa0C,WAb1C,EAauD,eAbvD,EAcL,OAdK,EAcI,aAdJ,EAcmB,OAdnB,EAc4B,OAd5B,EAcqC,SAdrC,EAcgD,QAdhD,EAc0D,WAd1D,EAeL,YAfK,EAeS,aAfT,EAewB,kBAfxB,EAe4C,kBAf5C,EAegE,gBAfhE,EAgBL,WAhBK,EAgBQ,UAhBR,EAgBoB,QAhBpB,EAgB8B,gBAhB9B,EAgBgD,UAhBhD,EAgB4D,QAhB5D,EAgBsE,QAhBtE,EAiBL,SAjBK,EAiBM,OAjBN,EAiBe,eAjBf,EAiBgC,QAjBhC,EAiB0C,UAjB1C,EAiBsD,YAjBtD,EAiBoE,QAjBpE,EAkBL,aAlBK,EAkBU,QAlBV,EAkBoB,UAlBpB,EAkBgC,MAlBhC,EAkBwC,OAlBxC,EAkBiD,OAlBjD,EAkB0D,UAlB1D,EAkBsE,QAlBtE,EAmBL,cAnBK,EAmBW,eAnBX,EAmB4B,WAnB5B,EAmByC,MAnBzC,EAmBiD,WAnBjD,EAmB8D,WAnB9D,EAoBL,WApBK,EAoBQ,YApBR,EAoBsB,YApBtB,CA3iBT,CAAA;;AAAA,EAkkBA,IAAA,CAAK,MAAL,EAAa,OAAb,EAAsB,SAAC,KAAD,GAAA;WAClB,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,MAAO,CAAA,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,GAAuB,CAAvB,EADR;EAAA,CAAtB,CAlkBA,CAAA;;AAAA,EAqkBA,IAAA,CAAK,MAAL,EAAa,OAAb,EAAsB,SAAC,KAAD,GAAA;WAClB,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,EADD;EAAA,CAAtB,CArkBA,CAAA;;AAAA,EAwkBA,IAAA,CAAK,MAAL,EAAa,QAAb,EAAuB,SAAC,KAAD,GAAA;AACnB,QAAA,MAAA;AAAA,IAAA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,SAAR,CAAA,CAAT,CAAA;WACA,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAsB,MAAA,KAAU,CAAb,GAAoB,OAApB,GAAoC,MAAA,KAAY,CAAf,GAAsB,UAAtB,GAAsC,OAFvE;EAAA,CAAvB,CAxkBA,CAAA;;AAAA,EA4kBA,SAAA,GAAY,SAAC,KAAD,GAAA;AACR,IAAA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAAA,CAAA;AAAA,IACA,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CAAA,GAAuB,MAAvB,GAAgC,IAAC,CAAA,MAAM,CAAC,UAAR,CAAA,CADnD,CAAA;WAEA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,CAAvB,EAHQ;EAAA,CA5kBZ,CAAA;;AAAA,EAilBA,IAAA,CAAK,MAAL,EAAa,YAAb,EAA2B,SAA3B,CAjlBA,CAAA;;AAAA,EAklBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,SAA5B,CAllBA,CAAA;;AAAA,EAolBA,IAAA,GAAO,SAAC,KAAD,GAAA;WACH,IAAC,CAAA,QAAS,CAAA,KAAA,CAAV,GAAmB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAA,CAAA,KAAuB,EADvC;EAAA,CAplBP,CAAA;;AAAA,EAulBA,IAAA,CAAK,MAAL,EAAa,aAAb,EAA4B,IAA5B,CAvlBA,CAAA;;AAAA,EAwlBA,IAAA,CAAK,MAAL,EAAa,SAAb,EAAwB,IAAxB,CAxlBA,CAAA;;AAAA,EAylBA,IAAA,CAAK,MAAL,EAAa,SAAb,EAAwB,IAAxB,CAzlBA,CAAA;;oBAAA;;GADqB,QAFzB,CAAA;;AAAA,MA8lBM,CAAC,OAAP,GAAiB,UA9lBjB,CAAA;;;;ACAA,IAAA,oBAAA;EAAA;iSAAA;;AAAA,OAAA,GAAU,OAAA,CAAQ,YAAR,CAAV,CAAA;;AAAA;AAGI,MAAA,OAAA;;AAAA,gCAAA,CAAA;;;;GAAA;;AAAA,EAAA,OAAO,CAAC,QAAR,CAAiB,WAAjB,CAAA,CAAA;;AAAA,EAEA,WAAC,CAAA,KAAD,GAAQ,SAAC,MAAD,GAAA;AACJ,WAAO,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MAA3B,IACA,MAAM,CAAC,UAAP,CAAkB,CAAlB,EAAqB,CAArB,CAAA,KAA2B,MADlC,CADI;EAAA,CAFR,CAAA;;AAAA,EAMA,OAAA,GACI;AAAA,IAAA,MAAA,EAAQ,MAAR;AAAA,IACA,MAAA,EAAQ,MADR;AAAA,IAEA,MAAA,EAAQ,MAFR;AAAA,IAGA,MAAA,EAAQ,MAHR;GAPJ,CAAA;;AAAA,wBAYA,SAAA,GAAW,SAAA,GAAA;AACP,QAAA,uBAAA;AAAA,IAAA,IAAG,CAAA,IAAK,CAAA,SAAL,IAAmB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,EAAlB,CAAtB;AACI,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,mBAAf,CAAP,CADJ;OAAA;AAAA,MAGA,IAAC,CAAA,QAAD,GAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAHZ,CAAA;AAAA,MAIA,IAAC,CAAA,SAAD,GAAa,IAJb,CAAA;AAMA,MAAA,IAAG,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAA,KAA2B,MAA9B;AACI,eAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,mBAAf,CAAP,CADJ;OAPJ;KAAA;AAUA,WAAM,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAN,GAAA;AACI,MAAA,IAAG,CAAA,IAAK,CAAA,WAAL,IAAqB,IAAC,CAAA,MAAM,CAAC,SAAR,CAAkB,CAAlB,CAAxB;AACI,QAAA,IAAC,CAAA,IAAD,GAAQ,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,CAAnB,CAAR,CAAA;AAAA,QACA,IAAC,CAAA,GAAD,GAAO,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CADP,CADJ;OAAA;AAIA,cAAO,IAAC,CAAA,IAAR;AAAA,aACS,MADT;AAEQ,UAAA,QAAA,GAAW,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAAX,CAAA;AACA,UAAA,IAAG,CAAA,CAAA,QAAA,IAAgB,OAAhB,CAAH;AACI,mBAAO,IAAC,CAAA,IAAD,CAAM,OAAN,EAAe,iCAAf,CAAP,CADJ;WADA;AAAA,UAIA,IAAC,CAAA,MAAD,GACI;AAAA,YAAA,QAAA,EAAU,OAAQ,CAAA,QAAA,CAAlB;AAAA,YACA,aAAA,EAAe,QAAA,KAAY,MAD3B;AAAA,YAEA,YAAA,EAAc,OAAQ,CAAA,QAAA,CAAR,KAAqB,MAFnC;AAAA,YAGA,gBAAA,EAAkB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAHlB;AAAA,YAIA,UAAA,EAAY,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAJZ;AAAA,YAKA,eAAA,EAAiB,CALjB;WALJ,CAAA;AAAA,UAYA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAZA,CAAA;AAAA,UAaA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,CAAhB,CAbA,CAAA;AAAA,UAeA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,IAAC,CAAA,MAAM,CAAC,UAAR,CAAmB,IAAnB,CAfzB,CAAA;AAAA,UAgBA,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAC,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAA1B,CAAA,GAA+B,IAAC,CAAA,MAAM,CAAC,gBAhBhE,CAAA;AAAA,UAkBA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,IAAC,CAAA,MAAjB,CAlBA,CAAA;AAAA,UAqBA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAD,GAAO,EAAvB,CArBA,CAFR;AACS;AADT,aAyBS,MAzBT;AA0BQ,UAAA,IAAG,CAAA,IAAK,CAAA,YAAR;AACI,YAAA,KAAA,GAAQ,IAAC,CAAA,MAAM,CAAC,cAAR,GAAyB,CAAjC,CAAA;AAAA,YACA,IAAC,CAAA,IAAD,CAAM,UAAN,EAAkB,IAAC,CAAA,GAAD,GAAO,KAAP,GAAe,IAAC,CAAA,MAAM,CAAC,gBAAvB,GAA0C,IAAC,CAAA,MAAM,CAAC,UAAlD,GAA+D,IAA/D,GAAsE,CAAxF,CADA,CAAA;AAAA,YAEA,IAAC,CAAA,YAAD,GAAgB,IAFhB,CADJ;WAAA;AAAA,UAKA,MAAA,GAAS,IAAC,CAAA,MAAM,CAAC,gBAAR,CAAyB,IAAC,CAAA,GAA1B,CALT,CAAA;AAAA,UAMA,IAAC,CAAA,GAAD,IAAQ,MAAM,CAAC,MANf,CAAA;AAAA,UAOA,IAAC,CAAA,WAAD,GAAe,IAAC,CAAA,GAAD,GAAO,CAPtB,CAAA;AAAA,UAQA,IAAC,CAAA,IAAD,CAAM,MAAN,EAAc,MAAd,CARA,CA1BR;AAyBS;AAzBT;AAqCQ,UAAA,IAAA,CAAA,IAAe,CAAA,MAAM,CAAC,SAAR,CAAkB,IAAC,CAAA,GAAnB,CAAd;AAAA,kBAAA,CAAA;WAAA;AAAA,UACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAgB,IAAC,CAAA,GAAjB,CADA,CArCR;AAAA,OAJA;AA4CA,MAAA,IAA4B,IAAC,CAAA,IAAD,KAAS,MAArC;AAAA,QAAA,IAAC,CAAA,WAAD,GAAe,KAAf,CAAA;OA7CJ;IAAA,CAXO;EAAA,CAZX,CAAA;;qBAAA;;GADsB,QAF1B,CAAA;;;;ACMA,IAAA,yBAAA;EAAA;;iSAAA;;AAAA,YAAA,GAAe,OAAA,CAAQ,eAAR,CAAf,CAAA;;AAAA;AAGI,MAAA,OAAA;;AAAA,gCAAA,CAAA;;AAAa,EAAA,qBAAE,UAAF,EAAe,QAAf,GAAA;AACT,IADU,IAAC,CAAA,aAAA,UACX,CAAA;AAAA,IADuB,IAAC,CAAA,WAAA,QACxB,CAAA;AAAA,mDAAA,CAAA;AAAA,IAAA,IAAC,CAAA,OAAD,GAAW,KAAX,CAAA;AAAA,IACA,IAAC,CAAA,WAAD,GAAe,CADf,CAAA;AAAA,IAEA,IAAC,CAAA,SAAD,GAAa,CAFb,CADS;EAAA,CAAb;;AAAA,wBAKA,KAAA,GAAO,SAAA,GAAA;AACH,IAAA,IAAU,IAAC,CAAA,OAAX;AAAA,YAAA,CAAA;KAAA;AAAA,IACA,IAAC,CAAA,OAAD,GAAW,IADX,CAAA;;MAGA,IAAC,CAAA,SAAU,WAAW,CAAC,MAAZ,CAAmB,IAAC,CAAA,UAApB,EAAgC,IAAC,CAAA,QAAjC;KAHX;AAIA,IAAA,IAAA,CAAA,IAAQ,CAAA,MAAR;AACI,YAAU,IAAA,KAAA,CAAM,kCAAN,CAAV,CADJ;KAJA;AAAA,IAOA,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,MAAM,CAAC,aAAR,CAAA,CAPb,CAAA;AAAA,IASA,IAAC,CAAA,MAAD,GAAU,WAAA,CAAY,IAAC,CAAA,UAAb,EAAyB,GAAzB,CATV,CAAA;WAUA,IAAC,CAAA,MAAM,CAAC,EAAR,CAAW,QAAX,EAAqB,IAAC,CAAA,MAAD,GAAU,CAAA,SAAA,KAAA,GAAA;aAAA,SAAC,MAAD,GAAA;eAC3B,KAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,MAAhB,EAD2B;MAAA,EAAA;IAAA,CAAA,CAAA,CAAA,IAAA,CAA/B,EAXG;EAAA,CALP,CAAA;;AAAA,wBAmBA,IAAA,GAAM,SAAA,GAAA;AACF,IAAA,IAAA,CAAA,IAAe,CAAA,OAAf;AAAA,YAAA,CAAA;KAAA;AAAA,IACA,IAAC,CAAA,OAAD,GAAW,KADX,CAAA;AAAA,IAGA,IAAC,CAAA,MAAM,CAAC,GAAR,CAAY,QAAZ,EAAsB,IAAC,CAAA,MAAvB,CAHA,CAAA;WAIA,aAAA,CAAc,IAAC,CAAA,MAAf,EALE;EAAA,CAnBN,CAAA;;AAAA,wBA0BA,OAAA,GAAS,SAAA,GAAA;AACL,IAAA,IAAC,CAAA,IAAD,CAAA,CAAA,CAAA;WACA,IAAC,CAAA,MAAM,CAAC,OAAR,CAAA,EAFK;EAAA,CA1BT,CAAA;;AAAA,wBA8BA,IAAA,GAAM,SAAE,WAAF,GAAA;AACF,IADG,IAAC,CAAA,cAAA,WACJ,CAAA;AAAA,IAAA,IAAwC,IAAC,CAAA,OAAzC;AAAA,MAAA,IAAC,CAAA,SAAD,GAAa,IAAC,CAAA,MAAM,CAAC,aAAR,CAAA,CAAb,CAAA;KAAA;WACA,IAAC,CAAA,IAAD,CAAM,YAAN,EAAoB,IAAC,CAAA,WAArB,EAFE;EAAA,CA9BN,CAAA;;AAAA,wBAkCA,UAAA,GAAY,SAAA,GAAA;AACR,QAAA,IAAA;AAAA,IAAA,IAAA,GAAO,IAAC,CAAA,MAAM,CAAC,aAAR,CAAA,CAAP,CAAA;AAAA,IACA,IAAC,CAAA,WAAD,IAAgB,CAAC,IAAA,GAAO,IAAC,CAAA,SAAT,CAAA,GAAsB,IAAC,CAAA,MAAM,CAAC,UAA9B,GAA2C,IAA3C,GAAkD,CADlE,CAAA;AAAA,IAEA,IAAC,CAAA,SAAD,GAAa,IAFb,CAAA;WAGA,IAAC,CAAA,IAAD,CAAM,YAAN,EAAoB,IAAC,CAAA,WAArB,EAJQ;EAAA,CAlCZ,CAAA;;AAAA,EAwCA,OAAA,GAAU,EAxCV,CAAA;;AAAA,EAyCA,WAAC,CAAA,QAAD,GAAW,SAAC,MAAD,GAAA;WACP,OAAO,CAAC,IAAR,CAAa,MAAb,EADO;EAAA,CAzCX,CAAA;;AAAA,EA4CA,WAAC,CAAA,MAAD,GAAS,SAAC,UAAD,EAAa,QAAb,GAAA;AACL,QAAA,gBAAA;AAAA,SAAA,8CAAA;2BAAA;UAA2B,MAAM,CAAC;AAC9B,eAAW,IAAA,MAAA,CAAO,UAAP,EAAmB,QAAnB,CAAX;OADJ;AAAA,KAAA;AAGA,WAAO,IAAP,CAJK;EAAA,CA5CT,CAAA;;qBAAA;;GADsB,aAF1B,CAAA;;AAAA,MAqDM,CAAC,OAAP,GAAiB,WArDjB,CAAA;;;;ACNA,IAAA,uDAAA;EAAA;;iSAAA;;AAAA,YAAA,GAAe,OAAA,CAAQ,gBAAR,CAAf,CAAA;;AAAA,WACA,GAAc,OAAA,CAAQ,WAAR,CADd,CAAA;;AAAA,QAEA,GAAW,OAAA,CAAQ,gBAAR,CAFX,CAAA;;AAAA;AAKI,MAAA,yBAAA;;AAAA,uCAAA,CAAA;;AAAA,EAAA,WAAW,CAAC,QAAZ,CAAqB,kBAArB,CAAA,CAAA;;AAAA,EAGA,kBAAC,CAAA,SAAD,GAAY,gDAAA,IAAW,eAAA,IAAmB,GAAA,CAAA,KAH1C,CAAA;;AAKa,EAAA,4BAAE,UAAF,EAAe,QAAf,GAAA;AACT,IADU,IAAC,CAAA,aAAA,UACX,CAAA;AAAA,IADuB,IAAC,CAAA,WAAA,QACxB,CAAA;AAAA,2CAAA,CAAA;AAAA,IAAA,IAAC,CAAA,KAAD,GAAS,GAAA,CAAA,KAAT,CAAA;AAAA,IACA,IAAC,CAAA,KAAK,CAAC,QAAP,CAAgB,IAAC,CAAA,QAAjB,EAA2B,IAAC,CAAA,UAA5B,CADA,CAAA;AAAA,IAGA,IAAC,CAAA,aAAD,GAAiB,CAHjB,CAAA;AAAA,IAIA,IAAC,CAAA,aAAD,GAAiB,IAAC,CAAA,UAAD,GAAc,CAJ/B,CAAA;AAAA,IAKA,IAAC,CAAA,IAAD,GAAQ,IALR,CAAA;AAAA,IAOA,IAAC,CAAA,KAAD,GAAS,WAAA,CAAY,IAAC,CAAA,MAAb,EAAqB,GAArB,CAPT,CADS;EAAA,CALb;;AAAA,+BAeA,MAAA,GAAQ,SAAA,GAAA;AACJ,QAAA,2CAAA;AAAA,IAAA,IAAG,IAAC,CAAA,IAAJ;AACI,MAAA,OAAA,GAAU,IAAC,CAAA,KAAK,CAAC,aAAP,CAAqB,IAAC,CAAA,IAAtB,CAAV,CAAA;AAAA,MACA,IAAC,CAAA,aAAD,IAAkB,OADlB,CAAA;AAGA,MAAA,IAAG,IAAC,CAAA,aAAD,GAAiB,IAAC,CAAA,IAAI,CAAC,MAA1B;AACI,QAAA,IAAC,CAAA,IAAD,GAAQ,IAAC,CAAA,IAAI,CAAC,QAAN,CAAe,OAAf,CAAR,CADJ;OAAA,MAAA;AAGI,QAAA,IAAC,CAAA,IAAD,GAAQ,IAAR,CAHJ;OAJJ;KAAA;AAAA,IASA,eAAA,GAAkB,IAAC,CAAA,KAAK,CAAC,sBAAP,CAAA,CATlB,CAAA;AAAA,IAUA,SAAA,GAAY,eAAA,GAAkB,IAAC,CAAA,aAAnB,GAAmC,IAAC,CAAA,aAVhD,CAAA;AAWA,IAAA,IAAG,SAAA,GAAY,CAAf;AACI,MAAA,MAAA,GAAa,IAAA,YAAA,CAAa,SAAb,CAAb,CAAA;AAAA,MACA,IAAC,CAAA,IAAD,CAAM,QAAN,EAAgB,MAAhB,CADA,CAAA;AAAA,MAGA,OAAA,GAAU,IAAC,CAAA,KAAK,CAAC,aAAP,CAAqB,MAArB,CAHV,CAAA;AAIA,MAAA,IAAG,OAAA,GAAU,MAAM,CAAC,MAApB;AACI,QAAA,IAAC,CAAA,IAAD,GAAQ,MAAM,CAAC,QAAP,CAAgB,OAAhB,CAAR,CADJ;OAJA;AAAA,MAOA,IAAC,CAAA,aAAD,IAAkB,OAPlB,CADJ;KAZI;EAAA,CAfR,CAAA;;AAAA,+BAuCA,OAAA,GAAS,SAAA,GAAA;WACL,YAAA,CAAa,IAAC,CAAA,KAAd,EADK;EAAA,CAvCT,CAAA;;AAAA,+BA0CA,aAAA,GAAe,SAAA,GAAA;AACX,WAAO,IAAC,CAAA,KAAK,CAAC,sBAAP,CAAA,CAAA,GAAkC,IAAC,CAAA,QAA1C,CADW;EAAA,CA1Cf,CAAA;;AAAA,EA+CA,WAAA,GAAc,SAAC,EAAD,EAAK,QAAL,GAAA;AACV,QAAA,WAAA;AAAA,IAAA,GAAA,GAAM,QAAQ,CAAC,WAAT,CAAsB,mDAAA,GAAkD,QAAlD,GAA4D,IAAlF,CAAN,CAAA;AACA,IAAA,IAAuC,WAAvC;AAAA,aAAO,WAAA,CAAY,EAAZ,EAAgB,QAAhB,CAAP,CAAA;KADA;AAAA,IAGA,MAAA,GAAa,IAAA,MAAA,CAAO,GAAP,CAHb,CAAA;AAAA,IAIA,MAAM,CAAC,SAAP,GAAmB,EAJnB,CAAA;AAAA,IAKA,MAAM,CAAC,GAAP,GAAa,GALb,CAAA;AAOA,WAAO,MAAP,CARU;EAAA,CA/Cd,CAAA;;AAAA,EAyDA,YAAA,GAAe,SAAC,KAAD,GAAA;AACX,IAAA,IAAG,KAAK,CAAC,SAAT;AACI,MAAA,KAAK,CAAC,SAAN,CAAA,CAAA,CAAA;aACA,GAAG,CAAC,eAAJ,CAAoB,KAAK,CAAC,GAA1B,EAFJ;KAAA,MAAA;aAII,aAAA,CAAc,KAAd,EAJJ;KADW;EAAA,CAzDf,CAAA;;4BAAA;;GAD6B,aAJjC,CAAA;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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",
   41   "sourcesContent": [
   42     "(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})",
   43     "for key, val of require './src/aurora'\n  exports[key] = val\n  \nrequire './src/devices/webaudio'\nrequire './src/devices/mozilla'\n",
   44     "#\n# The Asset class is responsible for managing all aspects of the \n# decoding pipeline from source to decoder.  You can use the Asset\n# class to inspect information about an audio file, such as its \n# format, metadata, and duration, as well as actually decode the\n# file to linear PCM raw audio data.\n#\n\nEventEmitter = require './core/events'\nHTTPSource   = require './sources/node/http'\nFileSource   = require './sources/node/file'\nBufferSource = require './sources/buffer'\nDemuxer      = require './demuxer'\nDecoder      = require './decoder'\n\nclass Asset extends EventEmitter\n    constructor: (@source) ->\n        @buffered = 0\n        @duration = null\n        @format = null\n        @metadata = null\n        @active = false\n        @demuxer = null\n        @decoder = null\n                \n        @source.once 'data', @probe\n        @source.on 'error', (err) =>\n            @emit 'error', err\n            @stop()\n            \n        @source.on 'progress', (@buffered) =>\n            @emit 'buffer', @buffered\n            \n    @fromURL: (url) ->\n        return new Asset new HTTPSource(url)\n\n    @fromFile: (file) ->\n        return new Asset new FileSource(file)\n        \n    @fromBuffer: (buffer) ->\n        return new Asset new BufferSource(buffer)\n        \n    start: (decode) ->\n        return if @active\n        \n        @shouldDecode = decode if decode?\n        @shouldDecode ?= true\n        \n        @active = true\n        @source.start()\n        \n        if @decoder and @shouldDecode\n            @_decode()\n        \n    stop: ->\n        return unless @active\n        \n        @active = false\n        @source.pause()\n        \n    get: (event, callback) ->\n        return unless event in ['format', 'duration', 'metadata']\n        \n        if this[event]?\n            callback(this[event])\n        else\n            @once event, (value) =>\n                @stop()\n                callback(value)\n            \n            @start()\n            \n    decodePacket: ->\n        @decoder.decode()\n        \n    decodeToBuffer: (callback) ->\n        length = 0\n        chunks = []\n        @on 'data', dataHandler = (chunk) ->\n            length += chunk.length\n            chunks.push chunk\n            \n        @once 'end', ->\n            buf = new Float32Array(length)\n            offset = 0\n            \n            for chunk in chunks\n                buf.set(chunk, offset)\n                offset += chunk.length\n                \n            @off 'data', dataHandler\n            callback(buf)\n            \n        @start()\n    \n    probe: (chunk) =>\n        return unless @active\n        \n        demuxer = Demuxer.find(chunk)\n        if not demuxer\n            return @emit 'error', 'A demuxer for this container was not found.'\n            \n        @demuxer = new demuxer(@source, chunk)\n        @demuxer.on 'format', @findDecoder\n        \n        @demuxer.on 'duration', (@duration) =>\n            @emit 'duration', @duration\n            \n        @demuxer.on 'metadata', (@metadata) =>\n            @emit 'metadata', @metadata\n            \n        @demuxer.on 'error', (err) =>\n            @emit 'error', err\n            @stop()\n\n    findDecoder: (@format) =>\n        return unless @active\n        \n        @emit 'format', @format\n        \n        decoder = Decoder.find(@format.formatID)\n        if not decoder\n            return @emit 'error', \"A decoder for #{@format.formatID} was not found.\"\n\n        @decoder = new decoder(@demuxer, @format)\n        \n        if @format.floatingPoint\n            @decoder.on 'data', (buffer) =>\n                @emit 'data', buffer\n        else\n            div = Math.pow(2, @format.bitsPerChannel - 1)\n            @decoder.on 'data', (buffer) =>\n                buf = new Float32Array(buffer.length)\n                for sample, i in buffer\n                    buf[i] = sample / div\n                    \n                @emit 'data', buf\n            \n        @decoder.on 'error', (err) =>\n            @emit 'error', err\n            @stop()\n            \n        @decoder.on 'end', =>\n            @emit 'end'\n            \n        @emit 'decodeStart'\n        @_decode() if @shouldDecode\n        \n    _decode: =>\n        continue while @decoder.decode() and @active\n        @decoder.once 'data', @_decode if @active\n        \nmodule.exports = Asset\n",
   45     "for key, val of require './aurora_base'\n    exports[key] = val\n\nrequire './demuxers/caf'\nrequire './demuxers/m4a'\nrequire './demuxers/aiff'\nrequire './demuxers/wave'\nrequire './demuxers/au'\n\nrequire './decoders/lpcm'\nrequire './decoders/xlaw'",
   46     "exports.Base = require './core/base'\nexports.Buffer = require './core/buffer'\nexports.BufferList = require './core/bufferlist'\nexports.Stream = require './core/stream'\nexports.Bitstream = require './core/bitstream'\nexports.EventEmitter = require './core/events'\nexports.UnderflowError = require './core/underflow'\n\n# browserify will replace these with the browser versions\nexports.HTTPSource = require './sources/node/http'\nexports.FileSource = require './sources/node/file'\nexports.BufferSource = require './sources/buffer'\n\nexports.Demuxer = require './demuxer'\nexports.Decoder = require './decoder'\nexports.AudioDevice = require './device'\nexports.Asset = require './asset'\nexports.Player = require './player'\n\nexports.Filter = require './filter'\nexports.VolumeFilter = require './filters/volume'\nexports.BalanceFilter = require './filters/balance'\n",
   47     "#\n# The Base class defines an extend method so that\n# CoffeeScript classes can be extended easily by \n# plain JavaScript. Based on http://ejohn.org/blog/simple-javascript-inheritance/.\n#\n\nclass Base\n    fnTest = /\\b_super\\b/\n    \n    @extend: (prop) ->\n        class Class extends this\n            \n        if typeof prop is 'function'\n            keys = Object.keys Class.prototype\n            prop.call(Class, Class)\n            \n            prop = {}\n            for key, fn of Class.prototype when key not in keys\n                prop[key] = fn\n        \n        _super = Class.__super__\n        \n        for key, fn of prop\n            # test whether the method actually uses _super() and wrap it if so\n            if typeof fn is 'function' and fnTest.test(fn)\n                do (key, fn) ->\n                    Class::[key] = ->\n                        tmp = this._super\n                        this._super = _super[key]\n                        \n                        ret = fn.apply(this, arguments)\n                        this._super = tmp\n                        \n                        return ret\n                        \n            else\n                Class::[key] = fn\n                \n        return Class\n        \nmodule.exports = Base\n",
   48     "class Bitstream\n    constructor: (@stream) ->\n        @bitPosition = 0\n\n    copy: ->\n        result = new Bitstream @stream.copy()\n        result.bitPosition = @bitPosition\n        return result\n\n    offset: -> # Should be a property\n        return 8 * @stream.offset + @bitPosition\n\n    available: (bits) ->\n        return @stream.available((bits + 8 - @bitPosition) / 8)\n\n    advance: (bits) ->\n        pos = @bitPosition + bits\n        @stream.advance(pos >> 3)\n        @bitPosition = pos & 7\n        \n    rewind: (bits) ->\n        pos = @bitPosition - bits\n        @stream.rewind(Math.abs(pos >> 3))\n        @bitPosition = pos & 7\n        \n    seek: (offset) ->\n        curOffset = @offset()\n        \n        if offset > curOffset\n            @advance offset - curOffset \n            \n        else if offset < curOffset \n            @rewind curOffset - offset\n\n    align: ->\n        unless @bitPosition is 0\n            @bitPosition = 0\n            @stream.advance(1)\n        \n    read: (bits, signed) ->\n        return 0 if bits is 0\n        \n        mBits = bits + @bitPosition\n        if mBits <= 8\n            a = ((@stream.peekUInt8() << @bitPosition) & 0xff) >>> (8 - bits)\n\n        else if mBits <= 16\n            a = ((@stream.peekUInt16() << @bitPosition) & 0xffff) >>> (16 - bits)\n\n        else if mBits <= 24\n            a = ((@stream.peekUInt24() << @bitPosition) & 0xffffff) >>> (24 - bits)\n\n        else if mBits <= 32\n            a = (@stream.peekUInt32() << @bitPosition) >>> (32 - bits)\n\n        else if mBits <= 40\n            a0 = @stream.peekUInt8(0) * 0x0100000000 # same as a << 32\n            a1 = @stream.peekUInt8(1) << 24 >>> 0\n            a2 = @stream.peekUInt8(2) << 16\n            a3 = @stream.peekUInt8(3) << 8\n            a4 = @stream.peekUInt8(4)\n\n            a = a0 + a1 + a2 + a3 + a4\n            a %= Math.pow(2, 40 - @bitPosition)                        # (a << bitPosition) & 0xffffffffff\n            a = Math.floor(a / Math.pow(2, 40 - @bitPosition - bits))  # a >>> (40 - bits)\n\n        else\n            throw new Error \"Too many bits!\"\n            \n        if signed\n            # if the sign bit is turned on, flip the bits and \n            # add one to convert to a negative value\n            if mBits < 32\n                if a >>> (bits - 1)\n                    a = ((1 << bits >>> 0) - a) * -1\n            else\n                if a / Math.pow(2, bits - 1) | 0\n                    a = (Math.pow(2, bits) - a) * -1\n\n        @advance bits\n        return a\n        \n    peek: (bits, signed) ->\n        return 0 if bits is 0\n        \n        mBits = bits + @bitPosition\n        if mBits <= 8\n            a = ((@stream.peekUInt8() << @bitPosition) & 0xff) >>> (8 - bits)\n\n        else if mBits <= 16\n            a = ((@stream.peekUInt16() << @bitPosition) & 0xffff) >>> (16 - bits)\n\n        else if mBits <= 24\n            a = ((@stream.peekUInt24() << @bitPosition) & 0xffffff) >>> (24 - bits)\n\n        else if mBits <= 32\n            a = (@stream.peekUInt32() << @bitPosition) >>> (32 - bits)\n\n        else if mBits <= 40\n            a0 = @stream.peekUInt8(0) * 0x0100000000 # same as a << 32\n            a1 = @stream.peekUInt8(1) << 24 >>> 0\n            a2 = @stream.peekUInt8(2) << 16\n            a3 = @stream.peekUInt8(3) << 8\n            a4 = @stream.peekUInt8(4)\n\n            a = a0 + a1 + a2 + a3 + a4\n            a %= Math.pow(2, 40 - @bitPosition)                        # (a << bitPosition) & 0xffffffffff\n            a = Math.floor(a / Math.pow(2, 40 - @bitPosition - bits))  # a >>> (40 - bits)\n\n        else\n            throw new Error \"Too many bits!\"\n            \n        if signed\n            # if the sign bit is turned on, flip the bits and \n            # add one to convert to a negative value\n            if mBits < 32\n                if a >>> (bits - 1)\n                    a = ((1 << bits >>> 0) - a) * -1\n            else\n                if a / Math.pow(2, bits - 1) | 0\n                    a = (Math.pow(2, bits) - a) * -1\n\n        return a\n\n    readLSB: (bits, signed) ->\n        return 0 if bits is 0\n        if bits > 40\n            throw new Error \"Too many bits!\"\n\n        mBits = bits + @bitPosition\n        a  = (@stream.peekUInt8(0)) >>> @bitPosition\n        a |= (@stream.peekUInt8(1)) << (8  - @bitPosition) if mBits > 8\n        a |= (@stream.peekUInt8(2)) << (16 - @bitPosition) if mBits > 16\n        a += (@stream.peekUInt8(3)) << (24 - @bitPosition) >>> 0 if mBits > 24            \n        a += (@stream.peekUInt8(4)) * Math.pow(2, 32 - @bitPosition) if mBits > 32\n\n        if mBits >= 32\n            a %= Math.pow(2, bits)\n        else\n            a &= (1 << bits) - 1\n            \n        if signed\n            # if the sign bit is turned on, flip the bits and \n            # add one to convert to a negative value\n            if mBits < 32\n                if a >>> (bits - 1)\n                    a = ((1 << bits >>> 0) - a) * -1\n            else\n                if a / Math.pow(2, bits - 1) | 0\n                    a = (Math.pow(2, bits) - a) * -1\n\n        @advance bits\n        return a\n        \n    peekLSB: (bits, signed) ->\n        return 0 if bits is 0\n        if bits > 40\n            throw new Error \"Too many bits!\"\n\n        mBits = bits + @bitPosition\n        a  = (@stream.peekUInt8(0)) >>> @bitPosition\n        a |= (@stream.peekUInt8(1)) << (8  - @bitPosition) if mBits > 8\n        a |= (@stream.peekUInt8(2)) << (16 - @bitPosition) if mBits > 16\n        a += (@stream.peekUInt8(3)) << (24 - @bitPosition) >>> 0 if mBits > 24            \n        a += (@stream.peekUInt8(4)) * Math.pow(2, 32 - @bitPosition) if mBits > 32\n        \n        if mBits >= 32\n            a %= Math.pow(2, bits)\n        else\n            a &= (1 << bits) - 1\n            \n        if signed\n            # if the sign bit is turned on, flip the bits and \n            # add one to convert to a negative value\n            if mBits < 32\n                if a >>> (bits - 1)\n                    a = ((1 << bits >>> 0) - a) * -1\n            else\n                if a / Math.pow(2, bits - 1) | 0\n                    a = (Math.pow(2, bits) - a) * -1\n\n        return a\n        \nmodule.exports = Bitstream\n",
   49     "class AVBuffer\n    constructor: (input) ->\n        if input instanceof Uint8Array                  # Uint8Array\n            @data = input\n            \n        else if input instanceof ArrayBuffer or         # ArrayBuffer\n          Array.isArray(input) or                       # normal JS Array\n          typeof input is 'number' or                   # number (i.e. length)\n          global.Buffer?.isBuffer(input)                # Node Buffer\n            @data = new Uint8Array(input)\n            \n        else if input.buffer instanceof ArrayBuffer     # typed arrays other than Uint8Array\n            @data = new Uint8Array(input.buffer, input.byteOffset, input.length * input.BYTES_PER_ELEMENT)\n            \n        else if input instanceof AVBuffer               # AVBuffer, make a shallow copy\n            @data = input.data\n                        \n        else\n            throw new Error \"Constructing buffer with unknown type.\"\n        \n        @length = @data.length\n        \n        # used when the buffer is part of a bufferlist\n        @next = null\n        @prev = null\n    \n    @allocate: (size) ->\n        return new AVBuffer(size)\n    \n    copy: ->\n        return new AVBuffer(new Uint8Array(@data))\n    \n    slice: (position, length = @length) ->\n        if position is 0 and length >= @length\n            return new AVBuffer(@data)\n        else\n            return new AVBuffer(@data.subarray(position, position + length))\n    \n    # prefix-free\n    BlobBuilder = global.BlobBuilder or global.MozBlobBuilder or global.WebKitBlobBuilder\n    URL = global.URL or global.webkitURL or global.mozURL\n    \n    @makeBlob: (data, type = 'application/octet-stream') ->\n        # try the Blob constructor\n        try \n            return new Blob [data], type: type\n        \n        # use the old BlobBuilder\n        if BlobBuilder?\n            bb = new BlobBuilder\n            bb.append data\n            return bb.getBlob(type)\n            \n        # oops, no blobs supported :(\n        return null\n        \n    @makeBlobURL: (data, type) ->\n        return URL?.createObjectURL @makeBlob(data, type)\n        \n    @revokeBlobURL: (url) ->\n        URL?.revokeObjectURL url\n    \n    toBlob: ->\n        return AVBuffer.makeBlob @data.buffer\n        \n    toBlobURL: ->\n        return AVBuffer.makeBlobURL @data.buffer\n        \nmodule.exports = AVBuffer\n",
   50     "class BufferList\n    constructor: ->\n        @first = null\n        @last = null\n        @numBuffers = 0\n        @availableBytes = 0\n        @availableBuffers = 0        \n    \n    copy: ->\n        result = new BufferList\n\n        result.first = @first\n        result.last = @last\n        result.numBuffers = @numBuffers\n        result.availableBytes = @availableBytes\n        result.availableBuffers = @availableBuffers\n        \n        return result\n        \n    append: (buffer) ->\n        buffer.prev = @last\n        @last?.next = buffer\n        @last = buffer\n        @first ?= buffer\n        \n        @availableBytes += buffer.length\n        @availableBuffers++\n        @numBuffers++\n        \n    advance: ->\n        if @first\n            @availableBytes -= @first.length\n            @availableBuffers--\n            @first = @first.next\n            return @first?\n            \n        return false\n        \n    rewind: ->\n        if @first and not @first.prev\n            return false\n        \n        @first = @first?.prev or @last\n        if @first\n            @availableBytes += @first.length\n            @availableBuffers++\n            \n        return @first?\n        \n    reset: ->\n        continue while @rewind()\n        \nmodule.exports = BufferList\n",
   51     "Base = require './base'\n\nclass EventEmitter extends Base\n    on: (event, fn) ->\n        @events ?= {}\n        @events[event] ?= []\n        @events[event].push(fn)\n        \n    off: (event, fn) ->\n        return unless @events?[event]\n        index = @events[event].indexOf(fn)\n        @events[event].splice(index, 1) if ~index\n        \n    once: (event, fn) ->\n        @on event, cb = ->\n            @off event, cb\n            fn.apply(this, arguments)\n        \n    emit: (event, args...) ->\n        return unless @events?[event]\n        \n        # shallow clone with .slice() so that removing a handler\n        # while event is firing (as in once) doesn't cause errors\n        for fn in @events[event].slice()\n            fn.apply(this, args)\n            \n        return\n        \nmodule.exports = EventEmitter\n",
   52     "BufferList = require './bufferlist'\nAVBuffer = require './buffer'\nUnderflowError = require './underflow'\n\nclass Stream\n    buf = new ArrayBuffer(16)\n    uint8 = new Uint8Array(buf)\n    int8 = new Int8Array(buf)\n    uint16 = new Uint16Array(buf)\n    int16 = new Int16Array(buf)\n    uint32 = new Uint32Array(buf)\n    int32 = new Int32Array(buf)\n    float32 = new Float32Array(buf)\n    float64 = new Float64Array(buf) if Float64Array?\n    \n    # detect the native endianness of the machine\n    # 0x3412 is little endian, 0x1234 is big endian\n    nativeEndian = new Uint16Array(new Uint8Array([0x12, 0x34]).buffer)[0] is 0x3412\n        \n    constructor: (@list) ->\n        @localOffset = 0\n        @offset = 0\n        \n    @fromBuffer: (buffer) ->\n        list = new BufferList\n        list.append(buffer)\n        return new Stream(list)\n    \n    copy: ->\n        result = new Stream(@list.copy())\n        result.localOffset = @localOffset\n        result.offset = @offset\n        return result\n    \n    available: (bytes) ->\n        return bytes <= @list.availableBytes - @localOffset\n        \n    remainingBytes: ->\n        return @list.availableBytes - @localOffset\n    \n    advance: (bytes) ->\n        if not @available bytes\n            throw new UnderflowError()\n        \n        @localOffset += bytes\n        @offset += bytes\n        \n        while @list.first and @localOffset >= @list.first.length\n            @localOffset -= @list.first.length\n            @list.advance()\n        \n        return this\n        \n    rewind: (bytes) ->\n        if bytes > @offset\n            throw new UnderflowError()\n        \n        # if we're at the end of the bufferlist, seek from the end\n        if not @list.first\n            @list.rewind()\n            @localOffset = @list.first.length\n            \n        @localOffset -= bytes\n        @offset -= bytes\n        \n        while @list.first.prev and @localOffset < 0\n            @list.rewind()\n            @localOffset += @list.first.length\n            \n        return this\n        \n    seek: (position) ->\n        if position > @offset\n            @advance position - @offset\n            \n        else if position < @offset\n            @rewind @offset - position\n        \n    readUInt8: ->\n        if not @available(1)\n            throw new UnderflowError()\n        \n        a = @list.first.data[@localOffset]\n        @localOffset += 1\n        @offset += 1\n\n        if @localOffset == @list.first.length\n            @localOffset = 0\n            @list.advance()\n\n        return a\n\n    peekUInt8: (offset = 0) ->\n        if not @available(offset + 1)\n            throw new UnderflowError()\n        \n        offset = @localOffset + offset\n        buffer = @list.first\n\n        while buffer\n            if buffer.length > offset\n                return buffer.data[offset]\n\n            offset -= buffer.length\n            buffer = buffer.next\n\n        return 0\n        \n    read: (bytes, littleEndian = false) ->\n        if littleEndian is nativeEndian\n            for i in [0...bytes] by 1\n                uint8[i] = @readUInt8()\n        else\n            for i in [bytes - 1..0] by -1\n                uint8[i] = @readUInt8()\n        \n        return\n        \n    peek: (bytes, offset, littleEndian = false) ->\n        if littleEndian is nativeEndian\n            for i in [0...bytes] by 1\n                uint8[i] = @peekUInt8(offset + i)\n        else\n            for i in [0...bytes] by 1\n                uint8[bytes - i - 1] = @peekUInt8(offset + i)\n                \n        return\n        \n    readInt8: ->\n        @read(1)\n        return int8[0]\n\n    peekInt8: (offset = 0) ->\n        @peek(1, offset)\n        return int8[0]\n        \n    readUInt16: (littleEndian) ->\n        @read(2, littleEndian)\n        return uint16[0]\n\n    peekUInt16: (offset = 0, littleEndian) ->\n        @peek(2, offset, littleEndian)\n        return uint16[0]\n\n    readInt16: (littleEndian) ->\n        @read(2, littleEndian)\n        return int16[0]\n\n    peekInt16: (offset = 0, littleEndian) ->\n        @peek(2, offset, littleEndian)\n        return int16[0]\n        \n    readUInt24: (littleEndian) ->\n        if littleEndian\n            return @readUInt16(true) + (@readUInt8() << 16)\n        else\n            return (@readUInt16() << 8) + @readUInt8()\n\n    peekUInt24: (offset = 0, littleEndian) ->\n        if littleEndian\n            return @peekUInt16(offset, true) + (@peekUInt8(offset + 2) << 16)\n        else\n            return (@peekUInt16(offset) << 8) + @peekUInt8(offset + 2)\n\n    readInt24: (littleEndian) ->\n        if littleEndian\n            return @readUInt16(true) + (@readInt8() << 16)\n        else\n            return (@readInt16() << 8) + @readUInt8()\n\n    peekInt24: (offset = 0, littleEndian) ->\n        if littleEndian\n            return @peekUInt16(offset, true) + (@peekInt8(offset + 2) << 16)\n        else\n            return (@peekInt16(offset) << 8) + @peekUInt8(offset + 2)\n    \n    readUInt32: (littleEndian) ->\n        @read(4, littleEndian)\n        return uint32[0]\n    \n    peekUInt32: (offset = 0, littleEndian) ->\n        @peek(4, offset, littleEndian)\n        return uint32[0]\n    \n    readInt32: (littleEndian) ->\n        @read(4, littleEndian)\n        return int32[0]\n    \n    peekInt32: (offset = 0, littleEndian) ->\n        @peek(4, offset, littleEndian)\n        return int32[0]\n        \n    readFloat32: (littleEndian) ->\n        @read(4, littleEndian)\n        return float32[0]\n        \n    peekFloat32: (offset = 0, littleEndian) ->\n        @peek(4, offset, littleEndian)\n        return float32[0]\n    \n    readFloat64: (littleEndian) ->\n        @read(8, littleEndian)\n        \n        # use Float64Array if available\n        if float64\n            return float64[0]\n        else\n            return float64Fallback()\n            \n    float64Fallback = ->\n        [low, high] = uint32\n        return 0.0 if not high or high is 0x80000000\n\n        sign = 1 - (high >>> 31) * 2 # +1 or -1\n        exp = (high >>> 20) & 0x7ff\n        frac = high & 0xfffff\n\n        # NaN or Infinity\n        if exp is 0x7ff\n            return NaN if frac\n            return sign * Infinity\n\n        exp -= 1023\n        out = (frac | 0x100000) * Math.pow(2, exp - 20)\n        out += low * Math.pow(2, exp - 52)\n\n        return sign * out\n            \n    peekFloat64: (offset = 0, littleEndian) ->\n        @peek(8, offset, littleEndian)\n        \n        # use Float64Array if available\n        if float64\n            return float64[0]\n        else\n            return float64Fallback()\n        \n    # IEEE 80 bit extended float\n    readFloat80: (littleEndian) ->\n        @read(10, littleEndian)\n        return float80()\n        \n    float80 = ->\n        [high, low] = uint32\n        a0 = uint8[9]\n        a1 = uint8[8]\n        \n        sign = 1 - (a0 >>> 7) * 2 # -1 or +1\n        exp = ((a0 & 0x7F) << 8) | a1\n        \n        if exp is 0 and low is 0 and high is 0\n            return 0\n            \n        if exp is 0x7fff\n            if low is 0 and high is 0\n                return sign * Infinity\n                \n            return NaN\n        \n        exp -= 16383\n        out = low * Math.pow(2, exp - 31)\n        out += high * Math.pow(2, exp - 63)\n        \n        return sign * out\n        \n    peekFloat80: (offset = 0, littleEndian) ->\n        @peek(10, offset, littleEndian)\n        return float80()\n        \n    readBuffer: (length) ->\n        result = AVBuffer.allocate(length)\n        to = result.data\n\n        for i in [0...length] by 1\n            to[i] = @readUInt8()\n\n        return result\n\n    peekBuffer: (offset = 0, length) ->\n        result = AVBuffer.allocate(length)\n        to = result.data\n\n        for i in [0...length] by 1\n            to[i] = @peekUInt8(offset + i)\n\n        return result\n\n    readSingleBuffer: (length) ->\n        result = @list.first.slice(@localOffset, length)\n        @advance(result.length)\n        return result\n\n    peekSingleBuffer: (offset, length) ->\n        result = @list.first.slice(@localOffset + offset, length)\n        return result\n    \n    readString: (length, encoding = 'ascii') ->\n        return decodeString.call this, 0, length, encoding, true\n\n    peekString: (offset = 0, length, encoding = 'ascii') ->\n        return decodeString.call this, offset, length, encoding, false\n\n    decodeString = (offset, length, encoding, advance) ->\n        encoding = encoding.toLowerCase()\n        nullEnd = if length is null then 0 else -1\n\n        length = Infinity if not length?\n        end = offset + length\n        result = ''\n\n        switch encoding\n            when 'ascii', 'latin1'\n                while offset < end and (c = @peekUInt8(offset++)) isnt nullEnd\n                    result += String.fromCharCode(c)\n\n            when 'utf8', 'utf-8'\n                while offset < end and (b1 = @peekUInt8(offset++)) isnt nullEnd\n                    if (b1 & 0x80) is 0\n                        result += String.fromCharCode b1\n\n                    # one continuation (128 to 2047)\n                    else if (b1 & 0xe0) is 0xc0\n                        b2 = @peekUInt8(offset++) & 0x3f\n                        result += String.fromCharCode ((b1 & 0x1f) << 6) | b2\n\n                    # two continuation (2048 to 55295 and 57344 to 65535)\n                    else if (b1 & 0xf0) is 0xe0\n                        b2 = @peekUInt8(offset++) & 0x3f\n                        b3 = @peekUInt8(offset++) & 0x3f\n                        result += String.fromCharCode ((b1 & 0x0f) << 12) | (b2 << 6) | b3\n\n                    # three continuation (65536 to 1114111)\n                    else if (b1 & 0xf8) is 0xf0\n                        b2 = @peekUInt8(offset++) & 0x3f\n                        b3 = @peekUInt8(offset++) & 0x3f\n                        b4 = @peekUInt8(offset++) & 0x3f\n\n                        # split into a surrogate pair\n                        pt = (((b1 & 0x0f) << 18) | (b2 << 12) | (b3 << 6) | b4) - 0x10000\n                        result += String.fromCharCode 0xd800 + (pt >> 10), 0xdc00 + (pt & 0x3ff)\n\n            when 'utf16-be', 'utf16be', 'utf16le', 'utf16-le', 'utf16bom', 'utf16-bom'\n                # find endianness\n                switch encoding\n                    when 'utf16be', 'utf16-be'\n                        littleEndian = false\n\n                    when 'utf16le', 'utf16-le'\n                        littleEndian = true\n\n                    when 'utf16bom', 'utf16-bom'\n                        if length < 2 or (bom = @peekUInt16(offset)) is nullEnd\n                            @advance offset += 2 if advance\n                            return result\n\n                        littleEndian = (bom is 0xfffe)\n                        offset += 2\n\n                while offset < end and (w1 = @peekUInt16(offset, littleEndian)) isnt nullEnd\n                    offset += 2\n\n                    if w1 < 0xd800 or w1 > 0xdfff\n                        result += String.fromCharCode(w1)\n\n                    else\n                        if w1 > 0xdbff\n                            throw new Error \"Invalid utf16 sequence.\"\n\n                        w2 = @peekUInt16(offset, littleEndian)\n                        if w2 < 0xdc00 or w2 > 0xdfff\n                            throw new Error \"Invalid utf16 sequence.\"\n\n                        result += String.fromCharCode(w1, w2)\n                        offset += 2\n\n                if w1 is nullEnd\n                    offset += 2\n\n            else\n                throw new Error \"Unknown encoding: #{encoding}\"\n\n        @advance offset if advance\n        return result\n        \nmodule.exports = Stream\n",
   53     "# define an error class to be thrown if an underflow occurs\nclass UnderflowError extends Error\n    constructor: ->\n        super\n        @name = 'UnderflowError'\n        @stack = new Error().stack\n\nmodule.exports = UnderflowError\n",
   54     "EventEmitter = require './core/events'\nBufferList = require './core/bufferlist'\nStream = require './core/stream'\nBitstream = require './core/bitstream'\nUnderflowError = require './core/underflow'\n\nclass Decoder extends EventEmitter\n    constructor: (@demuxer, @format) ->\n        list = new BufferList\n        @stream = new Stream(list)\n        @bitstream = new Bitstream(@stream)\n        \n        @receivedFinalBuffer = false\n        @waiting = false\n        \n        @demuxer.on 'cookie', (cookie) =>\n            try\n                @setCookie cookie\n            catch error\n                @emit 'error', error\n            \n        @demuxer.on 'data', (chunk) =>\n            list.append chunk\n            @decode() if @waiting\n            \n        @demuxer.on 'end', =>\n            @receivedFinalBuffer = true\n            @decode() if @waiting\n            \n        @init()\n            \n    init: ->\n        return\n            \n    setCookie: (cookie) ->\n        return\n    \n    readChunk: ->\n        return\n        \n    decode: ->\n        @waiting = false\n        offset = @bitstream.offset()\n        \n        try\n            packet = @readChunk()\n        catch error\n            if error not instanceof UnderflowError\n                @emit 'error', error\n                return false\n            \n        # if a packet was successfully read, emit it\n        if packet\n            @emit 'data', packet\n            return true\n            \n        # if we haven't reached the end, jump back and try again when we have more data\n        else if not @receivedFinalBuffer\n            @bitstream.seek offset\n            @waiting = true\n            \n        # otherwise we've reached the end\n        else\n            @emit 'end'\n            \n        return false\n        \n    seek: (timestamp) ->\n        # use the demuxer to get a seek point\n        seekPoint = @demuxer.seek(timestamp)\n        @stream.seek(seekPoint.offset)\n        return seekPoint.timestamp\n    \n    codecs = {}\n    @register: (id, decoder) ->\n        codecs[id] = decoder\n        \n    @find: (id) ->\n        return codecs[id] or null\n        \nmodule.exports = Decoder\n",
   55     "Decoder = require '../decoder'\n\nclass LPCMDecoder extends Decoder\n    Decoder.register('lpcm', LPCMDecoder)\n    \n    readChunk: =>\n        stream = @stream\n        littleEndian = @format.littleEndian\n        chunkSize = Math.min(4096, stream.remainingBytes())\n        samples = chunkSize / (@format.bitsPerChannel / 8) | 0\n        \n        if chunkSize < @format.bitsPerChannel / 8\n            return null\n        \n        if @format.floatingPoint\n            switch @format.bitsPerChannel\n                when 32\n                    output = new Float32Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readFloat32(littleEndian)\n                        \n                when 64\n                    output = new Float64Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readFloat64(littleEndian)\n                        \n                else\n                    throw new Error 'Unsupported bit depth.'\n            \n        else\n            switch @format.bitsPerChannel\n                when 8\n                    output = new Int8Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readInt8()\n                \n                when 16\n                    output = new Int16Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readInt16(littleEndian)\n                    \n                when 24\n                    output = new Int32Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readInt24(littleEndian)\n                \n                when 32\n                    output = new Int32Array(samples)\n                    for i in [0...samples] by 1\n                        output[i] = stream.readInt32(littleEndian)\n                    \n                else\n                    throw new Error 'Unsupported bit depth.'\n        \n        return output",
   56     "Decoder = require '../decoder'\n\nclass XLAWDecoder extends Decoder\n    Decoder.register('ulaw', XLAWDecoder)\n    Decoder.register('alaw', XLAWDecoder)\n    \n    SIGN_BIT   = 0x80\n    QUANT_MASK = 0xf\n    SEG_SHIFT  = 4\n    SEG_MASK   = 0x70\n    BIAS       = 0x84\n    \n    init: ->\n        @format.bitsPerChannel = 16\n        @table = table = new Int16Array(256)\n        \n        if @format.formatID is 'ulaw'\n            for i in [0...256]\n                # Complement to obtain normal u-law value.\n                val = ~i\n            \n                # Extract and bias the quantization bits. Then\n                # shift up by the segment number and subtract out the bias.\n                t = ((val & QUANT_MASK) << 3) + BIAS\n                t <<= (val & SEG_MASK) >>> SEG_SHIFT\n            \n                table[i] = if val & SIGN_BIT then BIAS - t else t - BIAS\n                                \n        else\n            for i in [0...256]\n                val = i ^ 0x55\n                t = val & QUANT_MASK\n                seg = (val & SEG_MASK) >>> SEG_SHIFT\n                \n                if seg\n                    t = (t + t + 1 + 32) << (seg + 2)\n                else\n                    t = (t + t + 1) << 3\n                    \n                table[i] = if val & SIGN_BIT then t else -t\n                \n        return\n            \n    readChunk: =>\n        {stream, table} = this\n        \n        samples = Math.min(4096, @stream.remainingBytes())\n        return if samples is 0\n        \n        output = new Int16Array(samples)\n        for i in [0...samples] by 1\n            output[i] = table[stream.readUInt8()]\n            \n        return output",
   57     "EventEmitter = require './core/events'\nBufferList = require './core/bufferlist'\nStream = require './core/stream'\n\nclass Demuxer extends EventEmitter\n    @probe: (buffer) ->\n        return false\n    \n    constructor: (source, chunk) ->\n        list = new BufferList\n        list.append chunk\n        @stream = new Stream(list)\n        \n        received = false\n        source.on 'data', (chunk) =>\n            received = true\n            list.append chunk\n            @readChunk chunk\n            \n        source.on 'error', (err) =>\n            @emit 'error', err\n            \n        source.on 'end', =>\n            # if there was only one chunk received, read it\n            @readChunk chunk unless received\n            @emit 'end'\n        \n        @seekPoints = []\n        @init()\n            \n    init: ->\n        return\n            \n    readChunk: (chunk) ->\n        return\n        \n    addSeekPoint: (offset, timestamp) ->\n        index = @searchTimestamp timestamp\n        @seekPoints.splice index, 0, \n            offset: offset\n            timestamp: timestamp\n        \n    searchTimestamp: (timestamp, backward) ->\n        low = 0\n        high = @seekPoints.length\n        \n        # optimize appending entries\n        if high > 0 and @seekPoints[high - 1].timestamp < timestamp\n            return high\n        \n        while low < high\n            mid = (low + high) >> 1\n            time = @seekPoints[mid].timestamp\n            \n            if time < timestamp\n                low = mid + 1\n                \n            else if time >= timestamp\n                high = mid\n                \n        if high > @seekPoints.length\n            high = @seekPoints.length\n            \n        return high\n        \n    seek: (timestamp) ->\n        if @format and @format.framesPerPacket > 0 and @format.bytesPerPacket > 0\n            seekPoint =\n                timestamp: timestamp\n                offset: @format.bytesPerPacket * timestamp / @format.framesPerPacket\n                \n            return seekPoint\n        else\n            index = @searchTimestamp timestamp\n            return @seekPoints[index]\n        \n    formats = []\n    @register: (demuxer) ->\n        formats.push demuxer\n            \n    @find: (buffer) ->\n        stream = Stream.fromBuffer(buffer)        \n        for format in formats\n            offset = stream.offset\n            try\n                 return format if format.probe(stream)\n            catch e\n                # an underflow or other error occurred\n                \n            stream.seek(offset)\n            \n        return null\n        \nmodule.exports = Demuxer\n",
   58     "Demuxer = require '../demuxer'\n\nclass AIFFDemuxer extends Demuxer\n    Demuxer.register(AIFFDemuxer)\n    \n    @probe: (buffer) ->\n        return buffer.peekString(0, 4) is 'FORM' && \n               buffer.peekString(8, 4) in ['AIFF', 'AIFC']\n        \n    readChunk: ->\n        if not @readStart and @stream.available(12)\n            if @stream.readString(4) isnt 'FORM'\n                return @emit 'error', 'Invalid AIFF.'\n                \n            @fileSize = @stream.readUInt32()\n            @fileType = @stream.readString(4)\n            @readStart = true\n            \n            if @fileType not in ['AIFF', 'AIFC']\n                return @emit 'error', 'Invalid AIFF.'\n        \n        while @stream.available(1)\n            if not @readHeaders and @stream.available(8)\n                @type = @stream.readString(4)\n                @len = @stream.readUInt32()\n                \n            switch @type\n                when 'COMM'\n                    return unless @stream.available(@len)\n                    \n                    @format =\n                        formatID: 'lpcm'\n                        channelsPerFrame: @stream.readUInt16()\n                        sampleCount: @stream.readUInt32()\n                        bitsPerChannel: @stream.readUInt16()\n                        sampleRate: @stream.readFloat80()\n                        framesPerPacket: 1\n                        littleEndian: false\n                        floatingPoint: false\n                        \n                    @format.bytesPerPacket = (@format.bitsPerChannel / 8) * @format.channelsPerFrame\n                    \n                    if @fileType is 'AIFC'\n                        format = @stream.readString(4)\n                        \n                        @format.littleEndian = format is 'sowt' and @format.bitsPerChannel > 8\n                        @format.floatingPoint = format in ['fl32', 'fl64']\n                        \n                        format = 'lpcm' if format in ['twos', 'sowt', 'fl32', 'fl64', 'NONE']\n                        @format.formatID = format\n                        @len -= 4\n                        \n                    @stream.advance(@len - 18)\n                    @emit 'format', @format\n                    @emit 'duration', @format.sampleCount / @format.sampleRate * 1000 | 0\n                    \n                when 'SSND'\n                    unless @readSSNDHeader and @stream.available(4)\n                        offset = @stream.readUInt32()\n                        @stream.advance(4) # skip block size\n                        @stream.advance(offset) # skip to data\n                        @readSSNDHeader = true\n                        \n                    buffer = @stream.readSingleBuffer(@len)\n                    @len -= buffer.length\n                    @readHeaders = @len > 0\n                    @emit 'data', buffer\n                    \n                else\n                    return unless @stream.available(@len)\n                    @stream.advance(@len)\n                        \n            @readHeaders = false unless @type is 'SSND'\n            \n        return",
   59     "Demuxer = require '../demuxer'\n\nclass AUDemuxer extends Demuxer\n    Demuxer.register(AUDemuxer)\n    \n    @probe: (buffer) ->\n        return buffer.peekString(0, 4) is '.snd'\n        \n    bps = [8, 8, 16, 24, 32, 32, 64]\n    bps[26] = 8\n    \n    formats = \n        1: 'ulaw'\n        27: 'alaw'\n        \n    readChunk: ->\n        if not @readHeader and @stream.available(24)\n            if @stream.readString(4) isnt '.snd'\n                return @emit 'error', 'Invalid AU file.'\n                \n            size = @stream.readUInt32()\n            dataSize = @stream.readUInt32()\n            encoding = @stream.readUInt32()\n            \n            @format = \n                formatID: formats[encoding] or 'lpcm'\n                littleEndian: false\n                floatingPoint: encoding in [6, 7]\n                bitsPerChannel: bps[encoding - 1]\n                sampleRate: @stream.readUInt32()\n                channelsPerFrame: @stream.readUInt32()\n                framesPerPacket: 1\n            \n            if not @format.bitsPerChannel?\n                return @emit 'error', 'Unsupported encoding in AU file.'\n            \n            @format.bytesPerPacket = (@format.bitsPerChannel / 8) * @format.channelsPerFrame\n            \n            if dataSize isnt 0xffffffff\n                bytes = @format.bitsPerChannel / 8\n                @emit 'duration', dataSize / bytes / @format.channelsPerFrame / @format.sampleRate * 1000 | 0\n            \n            @emit 'format', @format\n            @readHeader = true\n            \n        if @readHeader\n            while @stream.available(1)\n                @emit 'data', @stream.readSingleBuffer(@stream.remainingBytes())\n                \n        return",
   60     "Demuxer = require '../demuxer'\nM4ADemuxer = require './m4a'\n\nclass CAFDemuxer extends Demuxer\n    Demuxer.register(CAFDemuxer)\n    \n    @probe: (buffer) ->\n        return buffer.peekString(0, 4) is 'caff'\n        \n    readChunk: ->\n        if not @format and @stream.available(64) # Number out of my behind\n            if @stream.readString(4) isnt 'caff'\n                return @emit 'error', \"Invalid CAF, does not begin with 'caff'\"\n                \n            # skip version and flags\n            @stream.advance(4)\n            \n            if @stream.readString(4) isnt 'desc'\n                return @emit 'error', \"Invalid CAF, 'caff' is not followed by 'desc'\"\n                \n            unless @stream.readUInt32() is 0 and @stream.readUInt32() is 32\n                return @emit 'error', \"Invalid 'desc' size, should be 32\"\n                \n            @format = {}\n            @format.sampleRate = @stream.readFloat64()\n            @format.formatID = @stream.readString(4)\n            \n            flags = @stream.readUInt32()\n            if @format.formatID is 'lpcm'\n                @format.floatingPoint = Boolean(flags & 1)\n                @format.littleEndian = Boolean(flags & 2)\n             \n            @format.bytesPerPacket = @stream.readUInt32()\n            @format.framesPerPacket = @stream.readUInt32()\n            @format.channelsPerFrame = @stream.readUInt32()\n            @format.bitsPerChannel = @stream.readUInt32()\n                \n            @emit 'format', @format\n            \n        while @stream.available(1)\n            unless @headerCache\n                @headerCache =\n                    type: @stream.readString(4)\n                    oversize: @stream.readUInt32() isnt 0\n                    size: @stream.readUInt32()\n                \n                if @headerCache.oversize\n                    return @emit 'error', \"Holy Shit, an oversized file, not supported in JS\"\n            \n            switch @headerCache.type\n                when 'kuki'\n                    if @stream.available(@headerCache.size)\n                        if @format.formatID is 'aac ' # variations needed?\n                            offset = @stream.offset + @headerCache.size\n                            if cookie = M4ADemuxer.readEsds(@stream)\n                                @emit 'cookie', cookie\n                                \n                            @stream.seek offset # skip extra garbage\n                    \n                        else\n                            buffer = @stream.readBuffer(@headerCache.size)\n                            @emit 'cookie', buffer\n                        \n                        @headerCache = null\n                        \n                when 'pakt'\n                    if @stream.available(@headerCache.size)\n                        if @stream.readUInt32() isnt 0\n                            return @emit 'error', 'Sizes greater than 32 bits are not supported.'\n                            \n                        @numPackets = @stream.readUInt32()\n                        \n                        if @stream.readUInt32() isnt 0\n                            return @emit 'error', 'Sizes greater than 32 bits are not supported.'\n                            \n                        @numFrames = @stream.readUInt32()\n                        @primingFrames = @stream.readUInt32()\n                        @remainderFrames = @stream.readUInt32()\n                        \n                        @emit 'duration', @numFrames / @format.sampleRate * 1000 | 0\n                        @sentDuration = true\n                        \n                        byteOffset = 0\n                        sampleOffset = 0\n                        for i in [0...@numPackets] by 1\n                            @addSeekPoint byteOffset, sampleOffset\n                            byteOffset += @format.bytesPerPacket or M4ADemuxer.readDescrLen(@stream)\n                            sampleOffset += @format.framesPerPacket or M4ADemuxer.readDescrLen(@stream)\n                        \n                        @headerCache = null\n                        \n                when 'info'\n                    entries = @stream.readUInt32()\n                    metadata = {}\n                    \n                    for i in [0...entries]\n                        # null terminated strings\n                        key = @stream.readString(null)\n                        value = @stream.readString(null)                        \n                        metadata[key] = value\n                    \n                    @emit 'metadata', metadata\n                    @headerCache = null\n                    \n                when 'data'\n                    unless @sentFirstDataChunk\n                        # skip edit count\n                        @stream.advance(4)\n                        @headerCache.size -= 4\n\n                        # calculate the duration based on bytes per packet if no packet table\n                        if @format.bytesPerPacket isnt 0 and not @sentDuration\n                            @numFrames = @headerCache.size / @format.bytesPerPacket\n                            @emit 'duration', @numFrames / @format.sampleRate * 1000 | 0\n                            \n                        @sentFirstDataChunk = true\n                \n                    buffer = @stream.readSingleBuffer(@headerCache.size)\n                    @headerCache.size -= buffer.length\n                    @emit 'data', buffer\n                    \n                    if @headerCache.size <= 0\n                        @headerCache = null\n                    \n                else\n                    if @stream.available(@headerCache.size)\n                        @stream.advance(@headerCache.size)\n                        @headerCache = null\n                        \n        return",
   61     "Demuxer = require '../demuxer'\n\nclass M4ADemuxer extends Demuxer\n    Demuxer.register(M4ADemuxer)\n    \n    # common file type identifiers\n    # see http://mp4ra.org/filetype.html for a complete list\n    TYPES = ['M4A ', 'M4P ', 'M4B ', 'M4V ', 'isom', 'mp42', 'qt  ']\n    \n    @probe: (buffer) ->\n        return buffer.peekString(4, 4) is 'ftyp' and\n               buffer.peekString(8, 4) in TYPES\n        \n    init: ->\n        # current atom heirarchy stacks\n        @atoms = []\n        @offsets = []\n        \n        # m4a files can have multiple tracks\n        @track = null\n        @tracks = []\n        \n    # lookup table for atom handlers\n    atoms = {}\n    \n    # lookup table of container atom names\n    containers = {}\n    \n    # declare a function to be used for parsing a given atom name\n    atom = (name, fn) ->        \n        c = []\n        for container in name.split('.').slice(0, -1)\n            c.push container\n            containers[c.join('.')] = true\n            \n        atoms[name] ?= {}\n        atoms[name].fn = fn\n        \n    # declare a function to be called after parsing of an atom and all sub-atoms has completed\n    after = (name, fn) ->\n        atoms[name] ?= {}\n        atoms[name].after = fn\n        \n    readChunk: ->\n        @break = false\n        \n        while @stream.available(1) and not @break\n            # if we're ready to read a new atom, add it to the stack\n            if not @readHeaders\n                return unless @stream.available(8)\n                \n                @len = @stream.readUInt32() - 8\n                @type = @stream.readString(4)\n                \n                continue if @len is 0\n                \n                @atoms.push @type\n                @offsets.push @stream.offset + @len\n                @readHeaders = true\n                \n            # find a handler for the current atom heirarchy\n            path = @atoms.join '.'                \n            handler = atoms[path]\n            \n            if handler?.fn\n                # wait until we have enough data, unless this is the mdat atom\n                return unless @stream.available(@len) or path is 'mdat'\n\n                # call the parser for the atom type\n                handler.fn.call(this)\n                \n                # check if this atom can contain sub-atoms\n                if path of containers\n                    @readHeaders = false\n                    \n            # handle container atoms\n            else if path of containers\n                @readHeaders = false\n                \n            # unknown atom\n            else\n                # wait until we have enough data\n                return unless @stream.available(@len)\n                @stream.advance(@len)\n                \n            # pop completed items from the stack\n            while @stream.offset >= @offsets[@offsets.length - 1]\n                # call after handler\n                handler = atoms[@atoms.join '.']\n                if handler?.after\n                    handler.after.call(this)\n                \n                type = @atoms.pop()\n                @offsets.pop()\n                @readHeaders = false\n                \n    atom 'ftyp', ->\n        if @stream.readString(4) not in TYPES\n            return @emit 'error', 'Not a valid M4A file.'\n        \n        @stream.advance(@len - 4)\n    \n    atom 'moov.trak', ->\n        @track = {}\n        @tracks.push @track\n        \n    atom 'moov.trak.tkhd', ->\n        @stream.advance(4) # version and flags\n        \n        @stream.advance(8) # creation and modification time\n        @track.id = @stream.readUInt32()\n        \n        @stream.advance(@len - 16)\n        \n    atom 'moov.trak.mdia.hdlr', ->\n        @stream.advance(4) # version and flags\n        \n        @stream.advance(4) # component type\n        @track.type = @stream.readString(4)\n        \n        @stream.advance(12) # component manufacturer, flags, and mask\n        @stream.advance(@len - 24) # component name\n    \n    atom 'moov.trak.mdia.mdhd', ->\n        @stream.advance(4) # version and flags\n        @stream.advance(8) # creation and modification dates\n        \n        @track.timeScale = @stream.readUInt32()\n        @track.duration = @stream.readUInt32()\n        \n        @stream.advance(4) # language and quality\n        \n    # corrections to bits per channel, base on formatID\n    # (ffmpeg appears to always encode the bitsPerChannel as 16)\n    BITS_PER_CHANNEL = \n        ulaw: 8\n        alaw: 8\n        in24: 24\n        in32: 32\n        fl32: 32\n        fl64: 64\n        \n    atom 'moov.trak.mdia.minf.stbl.stsd', ->\n        @stream.advance(4) # version and flags\n        \n        numEntries = @stream.readUInt32()\n        \n        # just ignore the rest of the atom if this isn't an audio track\n        if @track.type isnt 'soun'\n            return @stream.advance(@len - 8)\n        \n        if numEntries isnt 1\n            return @emit 'error', \"Only expecting one entry in sample description atom!\"\n            \n        @stream.advance(4) # size\n        \n        format = @track.format = {}\n        format.formatID = @stream.readString(4)\n        \n        @stream.advance(6) # reserved\n        @stream.advance(2) # data reference index\n        \n        version = @stream.readUInt16()\n        @stream.advance(6) # skip revision level and vendor\n        \n        format.channelsPerFrame = @stream.readUInt16()\n        format.bitsPerChannel = @stream.readUInt16()\n        \n        @stream.advance(4) # skip compression id and packet size\n        \n        format.sampleRate = @stream.readUInt16()\n        @stream.advance(2)\n        \n        if version is 1\n            format.framesPerPacket = @stream.readUInt32()\n            @stream.advance(4) # bytes per packet\n            format.bytesPerFrame = @stream.readUInt32()\n            @stream.advance(4) # bytes per sample\n            \n        else if version isnt 0\n            @emit 'error', 'Unknown version in stsd atom'\n            \n        if BITS_PER_CHANNEL[format.formatID]?\n            format.bitsPerChannel = BITS_PER_CHANNEL[format.formatID]\n            \n        format.floatingPoint = format.formatID in ['fl32', 'fl64']\n        format.littleEndian = format.formatID is 'sowt' and format.bitsPerChannel > 8\n        \n        if format.formatID in ['twos', 'sowt', 'in24', 'in32', 'fl32', 'fl64', 'raw ', 'NONE']\n            format.formatID = 'lpcm'\n        \n    atom 'moov.trak.mdia.minf.stbl.stsd.alac', ->\n        @stream.advance(4)\n        @track.cookie = @stream.readBuffer(@len - 4)\n        \n    atom 'moov.trak.mdia.minf.stbl.stsd.esds', ->\n        offset = @stream.offset + @len\n        @track.cookie = M4ADemuxer.readEsds @stream\n        @stream.seek offset # skip garbage at the end \n        \n    atom 'moov.trak.mdia.minf.stbl.stsd.wave.enda', ->\n        @track.format.littleEndian = !!@stream.readUInt16()\n        \n    # reads a variable length integer\n    @readDescrLen: (stream) ->\n        len = 0\n        count = 4\n\n        while count--\n            c = stream.readUInt8()\n            len = (len << 7) | (c & 0x7f)\n            break unless c & 0x80\n\n        return len\n        \n    @readEsds: (stream) ->\n        stream.advance(4) # version and flags\n        \n        tag = stream.readUInt8()\n        len = M4ADemuxer.readDescrLen(stream)\n\n        if tag is 0x03 # MP4ESDescrTag\n            stream.advance(2) # id\n            flags = stream.readUInt8()\n\n            if flags & 0x80 # streamDependenceFlag\n                stream.advance(2)\n\n            if flags & 0x40 # URL_Flag\n                stream.advance stream.readUInt8()\n\n            if flags & 0x20 # OCRstreamFlag\n                stream.advance(2)\n\n        else\n            stream.advance(2) # id\n\n        tag = stream.readUInt8()\n        len = M4ADemuxer.readDescrLen(stream)\n            \n        if tag is 0x04 # MP4DecConfigDescrTag\n            codec_id = stream.readUInt8() # might want this... (isom.c:35)\n            stream.advance(1) # stream type\n            stream.advance(3) # buffer size\n            stream.advance(4) # max bitrate\n            stream.advance(4) # avg bitrate\n\n            tag = stream.readUInt8()\n            len = M4ADemuxer.readDescrLen(stream)\n            \n            if tag is 0x05 # MP4DecSpecificDescrTag\n                return stream.readBuffer(len)\n        \n        return null\n        \n    # time to sample\n    atom 'moov.trak.mdia.minf.stbl.stts', ->\n        @stream.advance(4) # version and flags\n        \n        entries = @stream.readUInt32()\n        @track.stts = []\n        for i in [0...entries] by 1\n            @track.stts[i] =\n                count: @stream.readUInt32()\n                duration: @stream.readUInt32()\n                \n        @setupSeekPoints()\n    \n    # sample to chunk\n    atom 'moov.trak.mdia.minf.stbl.stsc', ->\n        @stream.advance(4) # version and flags\n        \n        entries = @stream.readUInt32()\n        @track.stsc = []\n        for i in [0...entries] by 1\n            @track.stsc[i] = \n                first: @stream.readUInt32()\n                count: @stream.readUInt32()\n                id: @stream.readUInt32()\n                \n        @setupSeekPoints()\n        \n    # sample size\n    atom 'moov.trak.mdia.minf.stbl.stsz', ->\n        @stream.advance(4) # version and flags\n        \n        @track.sampleSize = @stream.readUInt32()\n        entries = @stream.readUInt32()\n        \n        if @track.sampleSize is 0 and entries > 0\n            @track.sampleSizes = []\n            for i in [0...entries] by 1\n                @track.sampleSizes[i] = @stream.readUInt32()\n                \n        @setupSeekPoints()\n    \n    # chunk offsets\n    atom 'moov.trak.mdia.minf.stbl.stco', -> # TODO: co64\n        @stream.advance(4) # version and flags\n        \n        entries = @stream.readUInt32()\n        @track.chunkOffsets = []\n        for i in [0...entries] by 1\n            @track.chunkOffsets[i] = @stream.readUInt32()\n            \n        @setupSeekPoints()\n        \n    # chapter track reference\n    atom 'moov.trak.tref.chap', ->\n        entries = @len >> 2\n        @track.chapterTracks = []\n        for i in [0...entries] by 1\n            @track.chapterTracks[i] = @stream.readUInt32()\n            \n        return\n        \n    # once we have all the information we need, generate the seek table for this track\n    setupSeekPoints: ->\n        return unless @track.chunkOffsets? and @track.stsc? and @track.sampleSize? and @track.stts?\n        \n        stscIndex = 0\n        sttsIndex = 0\n        sttsIndex = 0\n        sttsSample = 0\n        sampleIndex = 0\n        \n        offset = 0\n        timestamp = 0\n        @track.seekPoints = []\n        \n        for position, i in @track.chunkOffsets\n            for j in [0...@track.stsc[stscIndex].count] by 1\n                # push the timestamp and both the physical position in the file\n                # and the offset without gaps from the start of the data\n                @track.seekPoints.push\n                    offset: offset\n                    position: position\n                    timestamp: timestamp\n                \n                size = @track.sampleSize or @track.sampleSizes[sampleIndex++]\n                offset += size\n                position += size\n                timestamp += @track.stts[sttsIndex].duration\n                \n                if sttsIndex + 1 < @track.stts.length and ++sttsSample is @track.stts[sttsIndex].count\n                    sttsSample = 0\n                    sttsIndex++\n                    \n            if stscIndex + 1 < @track.stsc.length and i + 1 is @track.stsc[stscIndex + 1].first\n                stscIndex++\n        \n    after 'moov', ->        \n        # if the mdat block was at the beginning rather than the end, jump back to it\n        if @mdatOffset?\n            @stream.seek @mdatOffset - 8\n            \n        # choose a track\n        for track in @tracks when track.type is 'soun'\n            @track = track\n            break\n            \n        if @track.type isnt 'soun'\n            @track = null\n            return @emit 'error', 'No audio tracks in m4a file.'\n            \n        # emit info\n        @emit 'format', @track.format\n        @emit 'duration', @track.duration / @track.timeScale * 1000 | 0\n        if @track.cookie\n            @emit 'cookie', @track.cookie\n        \n        # use the seek points from the selected track\n        @seekPoints = @track.seekPoints\n        \n    atom 'mdat', ->\n        if not @startedData\n            @mdatOffset ?= @stream.offset\n            \n            # if we haven't read the headers yet, the mdat atom was at the beginning\n            # rather than the end. Skip over it for now to read the headers first, and\n            # come back later.\n            if @tracks.length is 0\n                bytes = Math.min(@stream.remainingBytes(), @len)\n                @stream.advance bytes\n                @len -= bytes\n                return\n            \n            @chunkIndex = 0\n            @stscIndex = 0\n            @sampleIndex = 0\n            @tailOffset = 0\n            @tailSamples = 0\n            \n            @startedData = true\n            \n        # read the chapter information if any\n        unless @readChapters\n            @readChapters = @parseChapters()\n            return if @break = not @readChapters\n            @stream.seek @mdatOffset\n            \n        # get the starting offset\n        offset = @track.chunkOffsets[@chunkIndex] + @tailOffset\n        length = 0\n        \n        # make sure we have enough data to get to the offset\n        unless @stream.available(offset - @stream.offset)\n            @break = true\n            return\n        \n        # seek to the offset\n        @stream.seek(offset)\n        \n        # calculate the maximum length we can read at once\n        while @chunkIndex < @track.chunkOffsets.length\n            # calculate the size in bytes of the chunk using the sample size table\n            numSamples = @track.stsc[@stscIndex].count - @tailSamples\n            chunkSize = 0\n            for sample in [0...numSamples] by 1\n                size = @track.sampleSize or @track.sampleSizes[@sampleIndex]\n                \n                # if we don't have enough data to add this sample, jump out\n                break unless @stream.available(length + size)\n                \n                length += size\n                chunkSize += size\n                @sampleIndex++\n            \n            # if we didn't make it through the whole chunk, add what we did use to the tail\n            if sample < numSamples\n                @tailOffset += chunkSize\n                @tailSamples += sample\n                break\n            else\n                # otherwise, we can move to the next chunk\n                @chunkIndex++\n                @tailOffset = 0\n                @tailSamples = 0\n                \n                # if we've made it to the end of a list of subsequent chunks with the same number of samples,\n                # go to the next sample to chunk entry\n                if @stscIndex + 1 < @track.stsc.length and @chunkIndex + 1 is @track.stsc[@stscIndex + 1].first\n                    @stscIndex++\n                \n                # if the next chunk isn't right after this one, jump out\n                if offset + length isnt @track.chunkOffsets[@chunkIndex]\n                    break\n        \n        # emit some data if we have any, otherwise wait for more\n        if length > 0\n            @emit 'data', @stream.readBuffer(length)\n            @break = @chunkIndex is @track.chunkOffsets.length\n        else\n            @break = true\n            \n    parseChapters: ->\n        return true unless @track.chapterTracks?.length > 0\n\n        # find the chapter track\n        id = @track.chapterTracks[0]\n        for track in @tracks\n            break if track.id is id\n\n        if track.id isnt id\n            @emit 'error', 'Chapter track does not exist.'\n\n        @chapters ?= []\n        \n        # use the seek table offsets to find chapter titles\n        while @chapters.length < track.seekPoints.length\n            point = track.seekPoints[@chapters.length]\n            \n            # make sure we have enough data\n            return false unless @stream.available(point.position - @stream.offset + 32)\n\n            # jump to the title offset\n            @stream.seek point.position\n\n            # read the length of the title string\n            len = @stream.readUInt16()\n            title = null\n            \n            return false unless @stream.available(len)\n            \n            # if there is a BOM marker, read a utf16 string\n            if len > 2\n                bom = @stream.peekUInt16()\n                if bom in [0xfeff, 0xfffe]\n                    title = @stream.readString(len, 'utf16-bom')\n\n            # otherwise, use utf8\n            title ?= @stream.readString(len, 'utf8')\n            \n            # add the chapter title, timestamp, and duration\n            nextTimestamp = track.seekPoints[@chapters.length + 1]?.timestamp ? track.duration\n            @chapters.push\n                title: title\n                timestamp: point.timestamp / track.timeScale * 1000 | 0\n                duration: (nextTimestamp - point.timestamp) / track.timeScale * 1000 | 0\n                \n        # we're done, so emit the chapter data\n        @emit 'chapters', @chapters\n        return true\n        \n    # metadata chunk\n    atom 'moov.udta.meta', ->\n        @metadata = {}        \n        @stream.advance(4) # version and flags\n        \n    # emit when we're done\n    after 'moov.udta.meta', ->\n        @emit 'metadata', @metadata\n\n    # convienience function to generate metadata atom handler\n    meta = (field, name, fn) ->\n        atom \"moov.udta.meta.ilst.#{field}.data\", ->\n            @stream.advance(8)\n            @len -= 8\n            fn.call this, name\n\n    # string field reader\n    string = (field) ->\n        @metadata[field] = @stream.readString(@len, 'utf8')\n\n    # from http://atomicparsley.sourceforge.net/mpeg-4files.html\n    meta '©alb', 'album', string\n    meta '©arg', 'arranger', string\n    meta '©art', 'artist', string\n    meta '©ART', 'artist', string\n    meta 'aART', 'albumArtist', string\n    meta 'catg', 'category', string\n    meta '©com', 'composer', string\n    meta '©cpy', 'copyright', string\n    meta 'cprt', 'copyright', string\n    meta '©cmt', 'comments', string\n    meta '©day', 'releaseDate', string\n    meta 'desc', 'description', string\n    meta '©gen', 'genre', string # custom genres\n    meta '©grp', 'grouping', string\n    meta '©isr', 'ISRC', string\n    meta 'keyw', 'keywords', string\n    meta '©lab', 'recordLabel', string\n    meta 'ldes', 'longDescription', string\n    meta '©lyr', 'lyrics', string\n    meta '©nam', 'title', string\n    meta '©phg', 'recordingCopyright', string\n    meta '©prd', 'producer', string\n    meta '©prf', 'performers', string\n    meta 'purd', 'purchaseDate', string\n    meta 'purl', 'podcastURL', string\n    meta '©swf', 'songwriter', string\n    meta '©too', 'encoder', string\n    meta '©wrt', 'composer', string\n\n    meta 'covr', 'coverArt', (field) ->\n        @metadata[field] = @stream.readBuffer(@len)\n\n    # standard genres\n    genres = [\n        \"Blues\", \"Classic Rock\", \"Country\", \"Dance\", \"Disco\", \"Funk\", \"Grunge\", \n        \"Hip-Hop\", \"Jazz\", \"Metal\", \"New Age\", \"Oldies\", \"Other\", \"Pop\", \"R&B\",\n        \"Rap\", \"Reggae\", \"Rock\", \"Techno\", \"Industrial\", \"Alternative\", \"Ska\", \n        \"Death Metal\", \"Pranks\", \"Soundtrack\", \"Euro-Techno\", \"Ambient\", \n        \"Trip-Hop\", \"Vocal\", \"Jazz+Funk\", \"Fusion\", \"Trance\", \"Classical\", \n        \"Instrumental\", \"Acid\", \"House\", \"Game\", \"Sound Clip\", \"Gospel\", \"Noise\",\n        \"AlternRock\", \"Bass\", \"Soul\", \"Punk\", \"Space\", \"Meditative\", \"Instrumental Pop\", \n        \"Instrumental Rock\", \"Ethnic\", \"Gothic\",  \"Darkwave\", \"Techno-Industrial\", \n        \"Electronic\", \"Pop-Folk\", \"Eurodance\", \"Dream\", \"Southern Rock\", \"Comedy\", \n        \"Cult\", \"Gangsta\", \"Top 40\", \"Christian Rap\", \"Pop/Funk\", \"Jungle\", \n        \"Native American\", \"Cabaret\", \"New Wave\", \"Psychadelic\", \"Rave\", \"Showtunes\",\n        \"Trailer\", \"Lo-Fi\", \"Tribal\", \"Acid Punk\", \"Acid Jazz\", \"Polka\", \"Retro\", \n        \"Musical\", \"Rock & Roll\", \"Hard Rock\", \"Folk\", \"Folk/Rock\", \"National Folk\", \n        \"Swing\", \"Fast Fusion\", \"Bebob\", \"Latin\", \"Revival\", \"Celtic\", \"Bluegrass\",\n        \"Avantgarde\", \"Gothic Rock\", \"Progressive Rock\", \"Psychedelic Rock\", \"Symphonic Rock\",\n        \"Slow Rock\", \"Big Band\", \"Chorus\", \"Easy Listening\", \"Acoustic\", \"Humour\", \"Speech\", \n        \"Chanson\", \"Opera\", \"Chamber Music\", \"Sonata\", \"Symphony\", \"Booty Bass\", \"Primus\", \n        \"Porn Groove\", \"Satire\", \"Slow Jam\", \"Club\", \"Tango\", \"Samba\", \"Folklore\", \"Ballad\", \n        \"Power Ballad\", \"Rhythmic Soul\", \"Freestyle\", \"Duet\", \"Punk Rock\", \"Drum Solo\", \n        \"A Capella\", \"Euro-House\", \"Dance Hall\"\n    ]\n\n    meta 'gnre', 'genre', (field) ->\n        @metadata[field] = genres[@stream.readUInt16() - 1]\n\n    meta 'tmpo', 'tempo', (field) ->\n        @metadata[field] = @stream.readUInt16()\n\n    meta 'rtng', 'rating', (field) ->\n        rating = @stream.readUInt8()\n        @metadata[field] = if rating is 2 then 'Clean' else if rating isnt 0 then 'Explicit' else 'None'\n\n    diskTrack = (field) ->\n        @stream.advance(2)\n        @metadata[field] = @stream.readUInt16() + ' of ' + @stream.readUInt16()\n        @stream.advance(@len - 6)\n\n    meta 'disk', 'diskNumber', diskTrack\n    meta 'trkn', 'trackNumber', diskTrack\n\n    bool = (field) ->\n        @metadata[field] = @stream.readUInt8() is 1\n\n    meta 'cpil', 'compilation', bool\n    meta 'pcst', 'podcast', bool\n    meta 'pgap', 'gapless', bool\n    \nmodule.exports = M4ADemuxer\n",
   62     "Demuxer = require '../demuxer'\n\nclass WAVEDemuxer extends Demuxer\n    Demuxer.register(WAVEDemuxer)\n    \n    @probe: (buffer) ->\n        return buffer.peekString(0, 4) is 'RIFF' && \n               buffer.peekString(8, 4) is 'WAVE'\n               \n    formats = \n        0x0001: 'lpcm'\n        0x0003: 'lpcm'\n        0x0006: 'alaw'\n        0x0007: 'ulaw'\n               \n    readChunk: ->\n        if not @readStart and @stream.available(12)\n            if @stream.readString(4) isnt 'RIFF'\n                return @emit 'error', 'Invalid WAV file.'\n                \n            @fileSize = @stream.readUInt32(true)\n            @readStart = true\n            \n            if @stream.readString(4) isnt 'WAVE'\n                return @emit 'error', 'Invalid WAV file.'\n                \n        while @stream.available(1)\n            if not @readHeaders and @stream.available(8)\n                @type = @stream.readString(4)\n                @len = @stream.readUInt32(true) # little endian\n                \n            switch @type\n                when 'fmt '\n                    encoding = @stream.readUInt16(true)\n                    if encoding not of formats\n                        return @emit 'error', 'Unsupported format in WAV file.'\n                        \n                    @format = \n                        formatID: formats[encoding]\n                        floatingPoint: encoding is 0x0003\n                        littleEndian: formats[encoding] is 'lpcm'\n                        channelsPerFrame: @stream.readUInt16(true)\n                        sampleRate: @stream.readUInt32(true)\n                        framesPerPacket: 1\n                        \n                    @stream.advance(4) # bytes/sec.\n                    @stream.advance(2) # block align\n                    \n                    @format.bitsPerChannel = @stream.readUInt16(true)\n                    @format.bytesPerPacket = (@format.bitsPerChannel / 8) * @format.channelsPerFrame\n                    \n                    @emit 'format', @format\n\n                    # Advance to the next chunk\n                    @stream.advance(@len - 16)\n                    \n                when 'data'\n                    if not @sentDuration\n                        bytes = @format.bitsPerChannel / 8\n                        @emit 'duration', @len / bytes / @format.channelsPerFrame / @format.sampleRate * 1000 | 0\n                        @sentDuration = true\n                \n                    buffer = @stream.readSingleBuffer(@len)\n                    @len -= buffer.length\n                    @readHeaders = @len > 0\n                    @emit 'data', buffer\n                    \n                else\n                    return unless @stream.available(@len)\n                    @stream.advance(@len)\n                        \n            @readHeaders = false unless @type is 'data'\n            \n        return",
   63     "#\n# The AudioDevice class is responsible for interfacing with various audio\n# APIs in browsers, and for keeping track of the current playback time\n# based on the device hardware time and the play/pause/seek state\n#\n\nEventEmitter = require './core/events'\n\nclass AudioDevice extends EventEmitter\n    constructor: (@sampleRate, @channels) ->\n        @playing = false\n        @currentTime = 0\n        @_lastTime = 0\n        \n    start: ->\n        return if @playing\n        @playing = true\n        \n        @device ?= AudioDevice.create(@sampleRate, @channels)\n        unless @device\n            throw new Error \"No supported audio device found.\"\n            \n        @_lastTime = @device.getDeviceTime()\n            \n        @_timer = setInterval @updateTime, 200\n        @device.on 'refill', @refill = (buffer) =>\n            @emit 'refill', buffer\n        \n    stop: ->\n        return unless @playing\n        @playing = false\n        \n        @device.off 'refill', @refill\n        clearInterval @_timer\n        \n    destroy: ->\n        @stop()\n        @device.destroy()\n        \n    seek: (@currentTime) ->\n        @_lastTime = @device.getDeviceTime() if @playing\n        @emit 'timeUpdate', @currentTime\n        \n    updateTime: =>\n        time = @device.getDeviceTime()\n        @currentTime += (time - @_lastTime) / @device.sampleRate * 1000 | 0\n        @_lastTime = time\n        @emit 'timeUpdate', @currentTime\n        \n    devices = []\n    @register: (device) ->\n        devices.push(device)\n\n    @create: (sampleRate, channels) ->\n        for device in devices when device.supported\n            return new device(sampleRate, channels)\n\n        return null\n        \nmodule.exports = AudioDevice\n",
   64     "EventEmitter = require '../core/events'\nAudioDevice = require '../device'\nAVBuffer = require '../core/buffer'\n\nclass MozillaAudioDevice extends EventEmitter\n    AudioDevice.register(MozillaAudioDevice)\n    \n    # determine whether this device is supported by the browser\n    @supported: Audio? and 'mozWriteAudio' of new Audio\n    \n    constructor: (@sampleRate, @channels) ->        \n        @audio = new Audio\n        @audio.mozSetup(@channels, @sampleRate)\n        \n        @writePosition = 0\n        @prebufferSize = @sampleRate / 2\n        @tail = null\n        \n        @timer = createTimer @refill, 100\n        \n    refill: =>\n        if @tail\n            written = @audio.mozWriteAudio(@tail)\n            @writePosition += written\n            \n            if @writePosition < @tail.length\n                @tail = @tail.subarray(written)\n            else    \n                @tail = null\n            \n        currentPosition = @audio.mozCurrentSampleOffset()\n        available = currentPosition + @prebufferSize - @writePosition\n        if available > 0\n            buffer = new Float32Array(available)\n            @emit 'refill', buffer\n            \n            written = @audio.mozWriteAudio(buffer)\n            if written < buffer.length\n                @tail = buffer.subarray(written)\n                \n            @writePosition += written\n            \n        return\n        \n    destroy: ->\n        destroyTimer @timer\n        \n    getDeviceTime: ->\n        return @audio.mozCurrentSampleOffset() / @channels\n    \n    # Use an inline worker to get setInterval\n    # without being clamped in background tabs\n    createTimer = (fn, interval) ->\n        url = AVBuffer.makeBlobURL(\"setInterval(function() { postMessage('ping'); }, #{interval});\")\n        return setInterval fn, interval unless url?\n                \n        worker = new Worker(url)\n        worker.onmessage = fn\n        worker.url = url\n        \n        return worker\n        \n    destroyTimer = (timer) ->\n        if timer.terminate\n            timer.terminate()\n            URL.revokeObjectURL(timer.url)\n        else\n            clearInterval timer",
   65     "/*\n * This resampler is from XAudioJS: https://github.com/grantgalitz/XAudioJS\n * Planned to be replaced with src.js, eventually: https://github.com/jussi-kalliokoski/src.js\n */\n\n//JavaScript Audio Resampler (c) 2011 - Grant Galitz\nfunction Resampler(fromSampleRate, toSampleRate, channels, outputBufferSize, noReturn) {\n\tthis.fromSampleRate = fromSampleRate;\n\tthis.toSampleRate = toSampleRate;\n\tthis.channels = channels | 0;\n\tthis.outputBufferSize = outputBufferSize;\n\tthis.noReturn = !!noReturn;\n\tthis.initialize();\n}\n\nResampler.prototype.initialize = function () {\n\t//Perform some checks:\n\tif (this.fromSampleRate > 0 && this.toSampleRate > 0 && this.channels > 0) {\n\t\tif (this.fromSampleRate == this.toSampleRate) {\n\t\t\t//Setup a resampler bypass:\n\t\t\tthis.resampler = this.bypassResampler;\t\t//Resampler just returns what was passed through.\n\t\t\tthis.ratioWeight = 1;\n\t\t}\n\t\telse {\n\t\t\tif (this.fromSampleRate < this.toSampleRate) {\n\t\t\t\t/*\n\t\t\t\t\tUse generic linear interpolation if upsampling,\n\t\t\t\t\tas linear interpolation produces a gradient that we want\n\t\t\t\t\tand works fine with two input sample points per output in this case.\n\t\t\t\t*/\n\t\t\t\tthis.compileLinearInterpolationFunction();\n\t\t\t\tthis.lastWeight = 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t/*\n\t\t\t\t\tCustom resampler I wrote that doesn't skip samples\n\t\t\t\t\tlike standard linear interpolation in high downsampling.\n\t\t\t\t\tThis is more accurate than linear interpolation on downsampling.\n\t\t\t\t*/\n\t\t\t\tthis.compileMultiTapFunction();\n\t\t\t\tthis.tailExists = false;\n\t\t\t\tthis.lastWeight = 0;\n\t\t\t}\n\t\t\tthis.ratioWeight = this.fromSampleRate / this.toSampleRate;\n\t\t\tthis.initializeBuffers();\n\t\t}\n\t}\n\telse {\n\t\tthrow(new Error(\"Invalid settings specified for the resampler.\"));\n\t}\n};\n\nResampler.prototype.compileLinearInterpolationFunction = function () {\n\tvar toCompile = \"var bufferLength = buffer.length;\\\n\tvar outLength = this.outputBufferSize;\\\n\tif ((bufferLength % \" + this.channels + \") == 0) {\\\n\t\tif (bufferLength > 0) {\\\n\t\t\tvar ratioWeight = this.ratioWeight;\\\n\t\t\tvar weight = this.lastWeight;\\\n\t\t\tvar firstWeight = 0;\\\n\t\t\tvar secondWeight = 0;\\\n\t\t\tvar sourceOffset = 0;\\\n\t\t\tvar outputOffset = 0;\\\n\t\t\tvar outputBuffer = this.outputBuffer;\\\n\t\t\tfor (; weight < 1; weight += ratioWeight) {\\\n\t\t\t\tsecondWeight = weight % 1;\\\n\t\t\t\tfirstWeight = 1 - secondWeight;\";\n\tfor (var channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"outputBuffer[outputOffset++] = (this.lastOutput[\" + channel + \"] * firstWeight) + (buffer[\" + channel + \"] * secondWeight);\";\n\t}\n\ttoCompile += \"}\\\n\t\t\tweight -= 1;\\\n\t\t\tfor (bufferLength -= \" + this.channels + \", sourceOffset = Math.floor(weight) * \" + this.channels + \"; outputOffset < outLength && sourceOffset < bufferLength;) {\\\n\t\t\t\tsecondWeight = weight % 1;\\\n\t\t\t\tfirstWeight = 1 - secondWeight;\";\n\tfor (var channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"outputBuffer[outputOffset++] = (buffer[sourceOffset\" + ((channel > 0) ? (\" + \" + channel) : \"\") + \"] * firstWeight) + (buffer[sourceOffset + \" + (this.channels + channel) + \"] * secondWeight);\";\n\t}\n\ttoCompile += \"weight += ratioWeight;\\\n\t\t\t\tsourceOffset = Math.floor(weight) * \" + this.channels + \";\\\n\t\t\t}\";\n\tfor (var channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"this.lastOutput[\" + channel + \"] = buffer[sourceOffset++];\";\n\t}\n\ttoCompile += \"this.lastWeight = weight % 1;\\\n\t\t\treturn this.bufferSlice(outputOffset);\\\n\t\t}\\\n\t\telse {\\\n\t\t\treturn (this.noReturn) ? 0 : [];\\\n\t\t}\\\n\t}\\\n\telse {\\\n\t\tthrow(new Error(\\\"Buffer was of incorrect sample length.\\\"));\\\n\t}\";\n\tthis.resampler = Function(\"buffer\", toCompile);\n};\n\nResampler.prototype.compileMultiTapFunction = function () {\n\tvar toCompile = \"var bufferLength = buffer.length;\\\n\tvar outLength = this.outputBufferSize;\\\n\tif ((bufferLength % \" + this.channels + \") == 0) {\\\n\t\tif (bufferLength > 0) {\\\n\t\t\tvar ratioWeight = this.ratioWeight;\\\n\t\t\tvar weight = 0;\";\n\tfor (var channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"var output\" + channel + \" = 0;\"\n\t}\n\ttoCompile += \"var actualPosition = 0;\\\n\t\t\tvar amountToNext = 0;\\\n\t\t\tvar alreadyProcessedTail = !this.tailExists;\\\n\t\t\tthis.tailExists = false;\\\n\t\t\tvar outputBuffer = this.outputBuffer;\\\n\t\t\tvar outputOffset = 0;\\\n\t\t\tvar currentPosition = 0;\\\n\t\t\tdo {\\\n\t\t\t\tif (alreadyProcessedTail) {\\\n\t\t\t\t\tweight = ratioWeight;\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"output\" + channel + \" = 0;\"\n\t}\n\ttoCompile += \"}\\\n\t\t\t\telse {\\\n\t\t\t\t\tweight = this.lastWeight;\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"output\" + channel + \" = this.lastOutput[\" + channel + \"];\"\n\t}\n\ttoCompile += \"alreadyProcessedTail = true;\\\n\t\t\t\t}\\\n\t\t\t\twhile (weight > 0 && actualPosition < bufferLength) {\\\n\t\t\t\t\tamountToNext = 1 + actualPosition - currentPosition;\\\n\t\t\t\t\tif (weight >= amountToNext) {\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"output\" + channel + \" += buffer[actualPosition++] * amountToNext;\"\n\t}\n\ttoCompile += \"currentPosition = actualPosition;\\\n\t\t\t\t\t\tweight -= amountToNext;\\\n\t\t\t\t\t}\\\n\t\t\t\t\telse {\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"output\" + channel + \" += buffer[actualPosition\" + ((channel > 0) ? (\" + \" + channel) : \"\") + \"] * weight;\"\n\t}\n\ttoCompile += \"currentPosition += weight;\\\n\t\t\t\t\t\tweight = 0;\\\n\t\t\t\t\t\tbreak;\\\n\t\t\t\t\t}\\\n\t\t\t\t}\\\n\t\t\t\tif (weight == 0) {\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"outputBuffer[outputOffset++] = output\" + channel + \" / ratioWeight;\"\n\t}\n\ttoCompile += \"}\\\n\t\t\t\telse {\\\n\t\t\t\t\tthis.lastWeight = weight;\";\n\tfor (channel = 0; channel < this.channels; ++channel) {\n\t\ttoCompile += \"this.lastOutput[\" + channel + \"] = output\" + channel + \";\"\n\t}\n\ttoCompile += \"this.tailExists = true;\\\n\t\t\t\t\tbreak;\\\n\t\t\t\t}\\\n\t\t\t} while (actualPosition < bufferLength && outputOffset < outLength);\\\n\t\t\treturn this.bufferSlice(outputOffset);\\\n\t\t}\\\n\t\telse {\\\n\t\t\treturn (this.noReturn) ? 0 : [];\\\n\t\t}\\\n\t}\\\n\telse {\\\n\t\tthrow(new Error(\\\"Buffer was of incorrect sample length.\\\"));\\\n\t}\";\n\tthis.resampler = Function(\"buffer\", toCompile);\n};\n\nResampler.prototype.bypassResampler = function (buffer) {\n\tif (this.noReturn) {\n\t\t//Set the buffer passed as our own, as we don't need to resample it:\n\t\tthis.outputBuffer = buffer;\n\t\treturn buffer.length;\n\t}\n\telse {\n\t\t//Just return the buffer passsed:\n\t\treturn buffer;\n\t}\n};\n\nResampler.prototype.bufferSlice = function (sliceAmount) {\n\tif (this.noReturn) {\n\t\t//If we're going to access the properties directly from this object:\n\t\treturn sliceAmount;\n\t}\n\telse {\n\t\t//Typed array and normal array buffer section referencing:\n\t\ttry {\n\t\t\treturn this.outputBuffer.subarray(0, sliceAmount);\n\t\t}\n\t\tcatch (error) {\n\t\t\ttry {\n\t\t\t\t//Regular array pass:\n\t\t\t\tthis.outputBuffer.length = sliceAmount;\n\t\t\t\treturn this.outputBuffer;\n\t\t\t}\n\t\t\tcatch (error) {\n\t\t\t\t//Nightly Firefox 4 used to have the subarray function named as slice:\n\t\t\t\treturn this.outputBuffer.slice(0, sliceAmount);\n\t\t\t}\n\t\t}\n\t}\n};\n\nResampler.prototype.initializeBuffers = function () {\n\t//Initialize the internal buffer:\n\ttry {\n\t\tthis.outputBuffer = new Float32Array(this.outputBufferSize);\n\t\tthis.lastOutput = new Float32Array(this.channels);\n\t}\n\tcatch (error) {\n\t\tthis.outputBuffer = [];\n\t\tthis.lastOutput = [];\n\t}\n};\n\nmodule.exports = Resampler;\n",
   66     "EventEmitter = require '../core/events'\nAudioDevice = require '../device'\nResampler = require './resampler'\n\nclass WebAudioDevice extends EventEmitter\n    AudioDevice.register(WebAudioDevice)\n    \n    # determine whether this device is supported by the browser\n    AudioContext = global.AudioContext or global.webkitAudioContext\n    @supported = AudioContext and \n      (typeof AudioContext::[createProcessor = 'createScriptProcessor'] is 'function' or\n      typeof AudioContext::[createProcessor = 'createJavaScriptNode']  is 'function')\n    \n    # Chrome limits the number of AudioContexts that one can create,\n    # so use a lazily created shared context for all playback\n    sharedContext = null\n    \n    constructor: (@sampleRate, @channels) ->\n        @context = sharedContext ?= new AudioContext\n        @deviceSampleRate = @context.sampleRate\n        \n        # calculate the buffer size to read\n        @bufferSize = Math.ceil(4096 / (@deviceSampleRate / @sampleRate) * @channels)\n        @bufferSize += @bufferSize % @channels\n        \n        # if the sample rate doesn't match the hardware sample rate, create a resampler\n        if @deviceSampleRate isnt @sampleRate\n            @resampler = new Resampler(@sampleRate, @deviceSampleRate, @channels, 4096 * @channels)\n\n        @node = @context[createProcessor](4096, @channels, @channels)\n        @node.onaudioprocess = @refill\n        @node.connect(@context.destination)\n        \n    refill: (event) =>\n        outputBuffer = event.outputBuffer\n        channelCount = outputBuffer.numberOfChannels\n        channels = new Array(channelCount)\n        \n        # get output channels\n        for i in [0...channelCount] by 1\n            channels[i] = outputBuffer.getChannelData(i)\n        \n        # get audio data    \n        data = new Float32Array(@bufferSize)\n        @emit 'refill', data\n        \n        # resample if necessary    \n        if @resampler\n            data = @resampler.resampler(data)\n        \n        # write data to output\n        for i in [0...outputBuffer.length] by 1\n            for n in [0...channelCount] by 1\n                channels[n][i] = data[i * channelCount + n]\n                \n        return\n        \n    destroy: ->\n        @node.disconnect(0)\n        \n    getDeviceTime: ->\n        return @context.currentTime * @sampleRate",
   67     "class Filter\n    constructor: (context, key) ->\n        # default constructor takes a single value\n        # override to take more parameters\n        if context and key\n            Object.defineProperty this, 'value', \n                get: -> context[key]\n        \n    process: (buffer) ->\n        # override this method\n        return\n        \nmodule.exports = Filter\n",
   68     "Filter = require '../filter'\n\nclass BalanceFilter extends Filter\n    process: (buffer) ->\n        return if @value is 0\n        pan = Math.max(-50, Math.min(50, @value))\n        \n        for i in [0...buffer.length] by 2\n            buffer[i] *= Math.min(1, (50 - pan) / 50)\n            buffer[i + 1] *= Math.min(1, (50 + pan) / 50)\n            \n        return\n        \nmodule.exports = BalanceFilter\n",
   69     "Filter = require '../filter'\n\nclass VolumeFilter extends Filter\n    process: (buffer) ->\n        return if @value >= 100\n        vol = Math.max(0, Math.min(100, @value)) / 100\n        \n        for i in [0...buffer.length] by 1\n            buffer[i] *= vol\n            \n        return\n        \nmodule.exports = VolumeFilter\n",
   70     "#\n# The Player class plays back audio data from various sources\n# as decoded by the Asset class.  In addition, it handles\n# common audio filters like panning and volume adjustment,\n# and interfacing with AudioDevices to keep track of the \n# playback time.\n#\n\nEventEmitter = require './core/events'\nAsset = require './asset'\nVolumeFilter = require './filters/volume'\nBalanceFilter = require './filters/balance'\nQueue = require './queue'\nAudioDevice = require './device'\n\nclass Player extends EventEmitter\n    constructor: (@asset) ->\n        @playing = false\n        @buffered = 0\n        @currentTime = 0\n        @duration = 0\n        @volume = 100\n        @pan = 0 # -50 for left, 50 for right, 0 for center\n        @metadata = {}\n        \n        @filters = [\n            new VolumeFilter(this, 'volume')\n            new BalanceFilter(this, 'pan')\n        ]\n        \n        @asset.on 'buffer', (@buffered) =>\n            @emit 'buffer', @buffered\n        \n        @asset.on 'decodeStart', =>\n            @queue = new Queue(@asset)\n            @queue.once 'ready', @startPlaying\n            \n        @asset.on 'format', (@format) =>\n            @emit 'format', @format\n            \n        @asset.on 'metadata', (@metadata) =>\n            @emit 'metadata', @metadata\n            \n        @asset.on 'duration', (@duration) =>\n            @emit 'duration', @duration\n            \n        @asset.on 'error', (error) =>\n            @emit 'error', error\n                \n    @fromURL: (url) ->\n        return new Player Asset.fromURL(url)\n        \n    @fromFile: (file) ->\n        return new Player Asset.fromFile(file)\n        \n    @fromBuffer: (buffer) ->\n        return new Player Asset.fromBuffer(buffer)\n        \n    preload: ->\n        return unless @asset\n        \n        @startedPreloading = true\n        @asset.start(false)\n        \n    play: ->\n        return if @playing\n        \n        unless @startedPreloading\n            @preload()\n        \n        @playing = true\n        @device?.start()\n        \n    pause: ->\n        return unless @playing\n        \n        @playing = false\n        @device?.stop()\n        \n    togglePlayback: ->\n        if @playing\n            @pause()\n        else\n            @play()\n        \n    stop: ->\n        @pause()\n        @asset.stop()\n        @device?.destroy()\n        \n    seek: (timestamp) ->\n        @device?.stop()\n        @queue.once 'ready', =>\n            @device?.seek @currentTime\n            @device?.start() if @playing\n            \n        # convert timestamp to sample number\n        timestamp = (timestamp / 1000) * @format.sampleRate\n            \n        # the actual timestamp we seeked to may differ \n        # from the requested timestamp due to optimizations\n        timestamp = @asset.decoder.seek(timestamp)\n        \n        # convert back from samples to milliseconds\n        @currentTime = timestamp / @format.sampleRate * 1000 | 0\n        \n        @queue.reset()\n        return @currentTime\n        \n    startPlaying: =>\n        frame = @queue.read()\n        frameOffset = 0\n        \n        @device = new AudioDevice(@format.sampleRate, @format.channelsPerFrame)\n        @device.on 'timeUpdate', (@currentTime) =>\n            @emit 'progress', @currentTime\n        \n        @refill = (buffer) =>\n            return unless @playing\n            \n            # try reading another frame if one isn't already available\n            # happens when we play to the end and then seek back\n            if not frame\n                frame = @queue.read()\n                frameOffset = 0\n\n            bufferOffset = 0\n            while frame and bufferOffset < buffer.length\n                max = Math.min(frame.length - frameOffset, buffer.length - bufferOffset)\n                for i in [0...max] by 1\n                    buffer[bufferOffset++] = frame[frameOffset++]\n                \n                if frameOffset is frame.length\n                    frame = @queue.read()\n                    frameOffset = 0\n            \n            # run any applied filters\n            for filter in @filters\n                filter.process(buffer)\n                \n            # if we've run out of data, pause the player\n            unless frame\n                # if this was the end of the track, make\n                # sure the currentTime reflects that\n                if @queue.ended\n                    @currentTime = @duration\n                    @emit 'progress', @currentTime\n                    @emit 'end'\n                    @stop()\n                else\n                    # if we ran out of data in the middle of \n                    # the track, stop the timer but don't change\n                    # the playback state\n                    @device.stop()\n                    \n            return\n        \n        @device.on 'refill', @refill\n        @device.start() if @playing\n        @emit 'ready'\n        \nmodule.exports = Player\n",
   71     "EventEmitter = require './core/events'\n\nclass Queue extends EventEmitter\n    constructor: (@asset) ->\n        @readyMark = 64\n        @finished = false\n        @buffering = true\n        @ended = false\n        \n        @buffers = []\n        @asset.on 'data', @write\n        @asset.on 'end', =>\n            @ended = true\n            \n        @asset.decodePacket()\n        \n    write: (buffer) =>\n        @buffers.push buffer if buffer\n        \n        if @buffering\n            if @buffers.length >= @readyMark or @ended\n                @buffering = false\n                @emit 'ready'\n            else    \n                @asset.decodePacket()\n            \n    read: ->\n        return null if @buffers.length is 0\n        \n        @asset.decodePacket()\n        return @buffers.shift()\n        \n    reset: ->\n        @buffers.length = 0\n        @buffering = true\n        @asset.decodePacket()\n        \nmodule.exports = Queue\n",
   72     "EventEmitter = require '../../core/events'\nAVBuffer = require '../../core/buffer'\n\nclass FileSource extends EventEmitter\n    constructor: (@file) ->\n        if not FileReader?\n            return @emit 'error', 'This browser does not have FileReader support.'\n        \n        @offset = 0\n        @length = @file.size\n        @chunkSize = 1 << 20\n        @file[@slice = 'slice'] or @file[@slice = 'webkitSlice'] or @file[@slice = 'mozSlice']\n            \n    start: ->\n        if @reader\n            return @loop() unless @active\n        \n        @reader = new FileReader\n        @active = true\n        \n        @reader.onload = (e) =>\n            buf = new AVBuffer(new Uint8Array(e.target.result))\n            @offset += buf.length\n        \n            @emit 'data', buf   \n            @active = false     \n            @loop() if @offset < @length\n        \n        @reader.onloadend = =>\n            if @offset is @length\n                @emit 'end'\n                @reader = null\n        \n        @reader.onerror = (e) =>\n            @emit 'error', e\n        \n        @reader.onprogress = (e) =>\n            @emit 'progress', (@offset + e.loaded) / @length * 100\n        \n        @loop()\n        \n    loop: ->\n        @active = true\n        endPos = Math.min(@offset + @chunkSize, @length)\n        \n        blob = @file[@slice](@offset, endPos)\n        @reader.readAsArrayBuffer(blob)\n        \n    pause: ->\n        @active = false\n        try\n          @reader?.abort()\n        \n    reset: ->\n        @pause()\n        @offset = 0\n\nmodule.exports = FileSource\n",
   73     "EventEmitter = require '../../core/events'\nAVBuffer = require '../../core/buffer'\n\nclass HTTPSource extends EventEmitter\n    constructor: (@url) ->\n        @chunkSize = 1 << 20\n        @inflight = false\n        @reset()\n        \n    start: ->\n        if @length\n            return @loop() unless @inflight\n        \n        @inflight = true\n        @xhr = new XMLHttpRequest()\n        \n        @xhr.onload = (event) =>\n            @length = parseInt @xhr.getResponseHeader(\"Content-Length\")                \n            @inflight = false\n            @loop()\n        \n        @xhr.onerror = (err) =>\n            @pause()\n            @emit 'error', err\n            \n        @xhr.onabort = (event) =>\n            @inflight = false\n        \n        @xhr.open(\"HEAD\", @url, true)\n        @xhr.send(null)\n        \n    loop: ->\n        if @inflight or not @length\n            return @emit 'error', 'Something is wrong in HTTPSource.loop'\n            \n        @inflight = true\n        @xhr = new XMLHttpRequest()\n        \n        @xhr.onload = (event) =>\n            if @xhr.response\n                buf = new Uint8Array(@xhr.response)\n            else\n                txt = @xhr.responseText\n                buf = new Uint8Array(txt.length)\n                for i in [0...txt.length]\n                    buf[i] = txt.charCodeAt(i) & 0xff\n\n            buffer = new AVBuffer(buf)\n            @offset += buffer.length\n            \n            @emit 'data', buffer\n            @emit 'end' if @offset >= @length\n\n            @inflight = false\n            @loop() unless @offset >= @length\n            \n        @xhr.onprogress = (event) =>\n            @emit 'progress', (@offset + event.loaded) / @length * 100\n\n        @xhr.onerror = (err) =>\n            @emit 'error', err\n            @pause()\n\n        @xhr.onabort = (event) =>\n            @inflight = false\n\n        @xhr.open(\"GET\", @url, true)\n        @xhr.responseType = \"arraybuffer\"\n\n        endPos = Math.min(@offset + @chunkSize, @length)\n        @xhr.setRequestHeader(\"Range\", \"bytes=#{@offset}-#{endPos}\")\n        @xhr.overrideMimeType('text/plain; charset=x-user-defined')\n        @xhr.send(null)\n        \n    pause: ->\n        @inflight = false\n        @xhr?.abort()\n        \n    reset: ->\n        @pause()\n        @offset = 0\n        \nmodule.exports = HTTPSource\n",
   74     "EventEmitter = require '../core/events'\nBufferList = require '../core/bufferlist'\nAVBuffer = require '../core/buffer'\n\nclass BufferSource extends EventEmitter    \n    constructor: (input) ->\n        # Now make an AV.BufferList\n        if input instanceof BufferList\n            @list = input\n            \n        else\n            @list = new BufferList\n            @list.append new AVBuffer(input)\n            \n        @paused = true\n        \n    setImmediate = global.setImmediate or (fn) ->\n        global.setTimeout fn, 0\n        \n    clearImmediate = global.clearImmediate or (timer) ->\n        global.clearTimeout timer\n        \n    start: ->\n        @paused = false\n        @_timer = setImmediate @loop\n        \n    loop: =>\n        @emit 'progress', (@list.numBuffers - @list.availableBuffers + 1) / @list.numBuffers * 100 | 0\n        @emit 'data', @list.first\n        if @list.advance()\n            setImmediate @loop\n        else\n            @emit 'end'\n        \n    pause: ->\n        clearImmediate @_timer\n        @paused = true\n        \n    reset: ->\n        @pause()\n        @list.rewind()\n        \nmodule.exports = BufferSource\n"
   75   ],
   76   "sourceRoot": ""
   77 }