From 2acfffa1898ada28391a56a56be97b12b60cf1e8 Mon Sep 17 00:00:00 2001 From: Steve Hansen Date: Wed, 15 Jul 2026 20:01:30 -0400 Subject: [PATCH] 3.0.3 Co-Authored-By: Codex AI-Model: codex --- README.md | 2 +- dist/api.min.js.LICENSE.txt | 4 ++-- dist/api.min.js.map | 2 +- lib/api.js | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 26a67f2..8e826fa 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ $ npm install --save mg-api-js To use the wrapper in a browser, download `dist/api.min.js` from a release or load an exact version from jsDelivr: ```html - + ``` Pin both the package version and file path in production. An unversioned CDN URL can change when a new release is published, so upgrades should be reviewed and deployed deliberately. For other URL formats, see the [jsDelivr documentation](https://www.jsdelivr.com/features). diff --git a/dist/api.min.js.LICENSE.txt b/dist/api.min.js.LICENSE.txt index d772b87..7b7ea77 100644 --- a/dist/api.min.js.LICENSE.txt +++ b/dist/api.min.js.LICENSE.txt @@ -1,5 +1,5 @@ -/*! mg-api-js - v3.0.2 - * Release on: 2026-04-13 +/*! mg-api-js - v3.0.3 + * Release on: 2026-07-15 * Copyright (c) 2020 Geotab Inc * Licensed MIT */ diff --git a/dist/api.min.js.map b/dist/api.min.js.map index d36aae8..767a722 100644 --- a/dist/api.min.js.map +++ b/dist/api.min.js.map @@ -1 +1 @@ -{"version":3,"file":"api.min.js","mappings":";CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,GAAIH,GACe,iBAAZC,QACdA,QAAmB,UAAID,IAEvBD,EAAgB,UAAIC,GACrB,CATD,CASGK,OAAuB,oBAATC,KAAuBA,KAAOC,MAAO,I,kDCRtDC,EAAA,kBAAAC,CAAA,MAAAC,EAAAD,EAAA,GAAAE,EAAAN,OAAAO,UAAAC,EAAAF,EAAAG,eAAAC,EAAAV,OAAAW,gBAAA,SAAAN,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAAM,KAAA,EAAAC,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAtB,EAAAO,EAAAD,EAAAE,GAAA,OAAAN,OAAAW,eAAAN,EAAAD,EAAA,CAAAQ,MAAAN,EAAAe,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAlB,EAAAD,EAAA,KAAAN,EAAA,aAAAO,GAAAP,EAAA,SAAAO,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,CAAA,WAAAkB,EAAAnB,EAAAD,EAAAE,EAAAE,GAAA,IAAAK,EAAAT,GAAAA,EAAAG,qBAAAkB,EAAArB,EAAAqB,EAAAV,EAAAf,OAAA0B,OAAAb,EAAAN,WAAAU,EAAA,IAAAU,EAAAnB,GAAA,WAAAE,EAAAK,EAAA,WAAAH,MAAAgB,EAAAvB,EAAAC,EAAAW,KAAAF,CAAA,UAAAc,EAAAxB,EAAAD,EAAAE,GAAA,WAAAwB,KAAA,SAAAC,IAAA1B,EAAA2B,KAAA5B,EAAAE,GAAA,OAAAD,GAAA,OAAAyB,KAAA,QAAAC,IAAA1B,EAAA,EAAAD,EAAAoB,KAAAA,EAAA,IAAAS,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,YAAAZ,IAAA,UAAAa,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAA1C,EAAA0C,EAAAzB,EAAA,6BAAA0B,EAAAzC,OAAA0C,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAArC,GAAAE,EAAAwB,KAAAW,EAAA5B,KAAAyB,EAAAG,GAAA,IAAAE,EAAAN,EAAAhC,UAAAkB,EAAAlB,UAAAP,OAAA0B,OAAAc,GAAA,SAAAM,EAAAzC,GAAA,0BAAA0C,QAAA,SAAA3C,GAAAN,EAAAO,EAAAD,EAAA,SAAAC,GAAA,YAAA2C,QAAA5C,EAAAC,EAAA,cAAA4C,EAAA5C,EAAAD,GAAA,SAAA8C,EAAA5C,EAAAI,EAAAG,EAAAE,GAAA,IAAAE,EAAAY,EAAAxB,EAAAC,GAAAD,EAAAK,GAAA,aAAAO,EAAAa,KAAA,KAAAX,EAAAF,EAAAc,IAAAE,EAAAd,EAAAP,MAAA,OAAAqB,GAAA,UAAAkB,EAAAlB,IAAAzB,EAAAwB,KAAAC,EAAA,WAAA7B,EAAAgD,QAAAnB,EAAAoB,SAAAC,KAAA,SAAAjD,GAAA6C,EAAA,OAAA7C,EAAAQ,EAAAE,EAAA,WAAAV,GAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAX,EAAAgD,QAAAnB,GAAAqB,KAAA,SAAAjD,GAAAc,EAAAP,MAAAP,EAAAQ,EAAAM,EAAA,WAAAd,GAAA,OAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAA,EAAAE,EAAAc,IAAA,KAAAzB,EAAAI,EAAA,gBAAAE,MAAA,SAAAP,EAAAG,GAAA,SAAA+C,IAAA,WAAAnD,EAAA,SAAAA,EAAAE,GAAA4C,EAAA7C,EAAAG,EAAAJ,EAAAE,EAAA,UAAAA,EAAAA,EAAAA,EAAAgD,KAAAC,EAAAA,GAAAA,GAAA,aAAA3B,EAAAxB,EAAAE,EAAAE,GAAA,IAAAE,EAAAuB,EAAA,gBAAApB,EAAAE,GAAA,GAAAL,IAAAyB,EAAA,MAAAqB,MAAA,mCAAA9C,IAAA0B,EAAA,cAAAvB,EAAA,MAAAE,EAAA,OAAAH,MAAAP,EAAAoD,MAAA,OAAAjD,EAAAkD,OAAA7C,EAAAL,EAAAuB,IAAAhB,IAAA,KAAAE,EAAAT,EAAAmD,SAAA,GAAA1C,EAAA,KAAAE,EAAAyC,EAAA3C,EAAAT,GAAA,GAAAW,EAAA,IAAAA,IAAAkB,EAAA,gBAAAlB,CAAA,cAAAX,EAAAkD,OAAAlD,EAAAqD,KAAArD,EAAAsD,MAAAtD,EAAAuB,SAAA,aAAAvB,EAAAkD,OAAA,IAAAhD,IAAAuB,EAAA,MAAAvB,EAAA0B,EAAA5B,EAAAuB,IAAAvB,EAAAuD,kBAAAvD,EAAAuB,IAAA,gBAAAvB,EAAAkD,QAAAlD,EAAAwD,OAAA,SAAAxD,EAAAuB,KAAArB,EAAAyB,EAAA,IAAAK,EAAAX,EAAAzB,EAAAE,EAAAE,GAAA,cAAAgC,EAAAV,KAAA,IAAApB,EAAAF,EAAAiD,KAAArB,EAAAF,EAAAM,EAAAT,MAAAM,EAAA,gBAAAzB,MAAA4B,EAAAT,IAAA0B,KAAAjD,EAAAiD,KAAA,WAAAjB,EAAAV,OAAApB,EAAA0B,EAAA5B,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAAS,EAAAT,IAAA,YAAA6B,EAAAxD,EAAAE,GAAA,IAAAE,EAAAF,EAAAoD,OAAAhD,EAAAN,EAAAY,SAAAR,GAAA,GAAAE,IAAAL,EAAA,OAAAC,EAAAqD,SAAA,eAAAnD,GAAAJ,EAAAY,SAAAiD,SAAA3D,EAAAoD,OAAA,SAAApD,EAAAyB,IAAA1B,EAAAuD,EAAAxD,EAAAE,GAAA,UAAAA,EAAAoD,SAAA,WAAAlD,IAAAF,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA1D,EAAA,aAAA6B,EAAA,IAAAxB,EAAAgB,EAAAnB,EAAAN,EAAAY,SAAAV,EAAAyB,KAAA,aAAAlB,EAAAiB,KAAA,OAAAxB,EAAAoD,OAAA,QAAApD,EAAAyB,IAAAlB,EAAAkB,IAAAzB,EAAAqD,SAAA,KAAAtB,EAAA,IAAAtB,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAA0C,MAAAnD,EAAAF,EAAA+D,YAAApD,EAAAH,MAAAN,EAAA8D,KAAAhE,EAAAiE,QAAA,WAAA/D,EAAAoD,SAAApD,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,GAAAC,EAAAqD,SAAA,KAAAtB,GAAAtB,GAAAT,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA5D,EAAAqD,SAAA,KAAAtB,EAAA,UAAAiC,EAAAjE,GAAA,IAAAD,EAAA,CAAAmE,OAAAlE,EAAA,SAAAA,IAAAD,EAAAoE,SAAAnE,EAAA,SAAAA,IAAAD,EAAAqE,WAAApE,EAAA,GAAAD,EAAAsE,SAAArE,EAAA,SAAAsE,WAAAC,KAAAxE,EAAA,UAAAyE,EAAAxE,GAAA,IAAAD,EAAAC,EAAAyE,YAAA,GAAA1E,EAAA0B,KAAA,gBAAA1B,EAAA2B,IAAA1B,EAAAyE,WAAA1E,CAAA,UAAAuB,EAAAtB,GAAA,KAAAsE,WAAA,EAAAJ,OAAA,SAAAlE,EAAA0C,QAAAuB,EAAA,WAAAS,OAAA,YAAAnC,EAAAxC,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAE,EAAAF,EAAAW,GAAA,GAAAT,EAAA,OAAAA,EAAA0B,KAAA5B,GAAA,sBAAAA,EAAAgE,KAAA,OAAAhE,EAAA,IAAA4E,MAAA5E,EAAA6E,QAAA,KAAAvE,GAAA,EAAAG,EAAA,SAAAuD,IAAA,OAAA1D,EAAAN,EAAA6E,QAAA,GAAAzE,EAAAwB,KAAA5B,EAAAM,GAAA,OAAA0D,EAAAxD,MAAAR,EAAAM,GAAA0D,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,SAAAvD,EAAAuD,KAAAvD,CAAA,YAAAqD,UAAAf,EAAA/C,GAAA,2BAAAkC,EAAA/B,UAAAgC,EAAA7B,EAAAmC,EAAA,eAAAjC,MAAA2B,EAAAjB,cAAA,IAAAZ,EAAA6B,EAAA,eAAA3B,MAAA0B,EAAAhB,cAAA,IAAAgB,EAAA4C,YAAApF,EAAAyC,EAAApB,EAAA,qBAAAf,EAAA+E,oBAAA,SAAA9E,GAAA,IAAAD,EAAA,mBAAAC,GAAAA,EAAA+E,YAAA,QAAAhF,IAAAA,IAAAkC,GAAA,uBAAAlC,EAAA8E,aAAA9E,EAAAiF,MAAA,EAAAjF,EAAAkF,KAAA,SAAAjF,GAAA,OAAAL,OAAAuF,eAAAvF,OAAAuF,eAAAlF,EAAAkC,IAAAlC,EAAAmF,UAAAjD,EAAAzC,EAAAO,EAAAc,EAAA,sBAAAd,EAAAE,UAAAP,OAAA0B,OAAAmB,GAAAxC,CAAA,EAAAD,EAAAqF,MAAA,SAAApF,GAAA,OAAAgD,QAAAhD,EAAA,EAAAyC,EAAAG,EAAA1C,WAAAT,EAAAmD,EAAA1C,UAAAU,EAAA,yBAAAb,EAAA6C,cAAAA,EAAA7C,EAAAsF,MAAA,SAAArF,EAAAC,EAAAE,EAAAE,EAAAG,QAAA,IAAAA,IAAAA,EAAA8E,SAAA,IAAA5E,EAAA,IAAAkC,EAAAzB,EAAAnB,EAAAC,EAAAE,EAAAE,GAAAG,GAAA,OAAAT,EAAA+E,oBAAA7E,GAAAS,EAAAA,EAAAqD,OAAAd,KAAA,SAAAjD,GAAA,OAAAA,EAAAoD,KAAApD,EAAAO,MAAAG,EAAAqD,MAAA,IAAAtB,EAAAD,GAAA/C,EAAA+C,EAAA1B,EAAA,aAAArB,EAAA+C,EAAA9B,EAAA,yBAAAjB,EAAA+C,EAAA,mDAAAzC,EAAAwF,KAAA,SAAAvF,GAAA,IAAAD,EAAAJ,OAAAK,GAAAC,EAAA,WAAAE,KAAAJ,EAAAE,EAAAsE,KAAApE,GAAA,OAAAF,EAAAuF,UAAA,SAAAzB,IAAA,KAAA9D,EAAA2E,QAAA,KAAA5E,EAAAC,EAAAwF,MAAA,GAAAzF,KAAAD,EAAA,OAAAgE,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,QAAAA,EAAAX,MAAA,EAAAW,CAAA,GAAAhE,EAAAwC,OAAAA,EAAAjB,EAAApB,UAAA,CAAA6E,YAAAzD,EAAAoD,MAAA,SAAA3E,GAAA,QAAA2F,KAAA,OAAA3B,KAAA,OAAAP,KAAA,KAAAC,MAAAzD,EAAA,KAAAoD,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAA3B,IAAA1B,EAAA,KAAAsE,WAAA5B,QAAA8B,IAAAzE,EAAA,QAAAE,KAAA,WAAAA,EAAA0F,OAAA,IAAAxF,EAAAwB,KAAA,KAAA1B,KAAA0E,OAAA1E,EAAA2F,MAAA,WAAA3F,GAAAD,EAAA,EAAA6F,KAAA,gBAAAzC,MAAA,MAAApD,EAAA,KAAAsE,WAAA,GAAAG,WAAA,aAAAzE,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,YAAAoE,IAAA,EAAApC,kBAAA,SAAA3D,GAAA,QAAAqD,KAAA,MAAArD,EAAA,IAAAE,EAAA,cAAA8F,EAAA5F,EAAAE,GAAA,OAAAK,EAAAe,KAAA,QAAAf,EAAAgB,IAAA3B,EAAAE,EAAA8D,KAAA5D,EAAAE,IAAAJ,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,KAAAK,CAAA,SAAAA,EAAA,KAAAiE,WAAAM,OAAA,EAAAvE,GAAA,IAAAA,EAAA,KAAAG,EAAA,KAAA8D,WAAAjE,GAAAK,EAAAF,EAAAiE,WAAA,YAAAjE,EAAA0D,OAAA,OAAA6B,EAAA,UAAAvF,EAAA0D,QAAA,KAAAwB,KAAA,KAAA9E,EAAAT,EAAAwB,KAAAnB,EAAA,YAAAM,EAAAX,EAAAwB,KAAAnB,EAAA,iBAAAI,GAAAE,EAAA,SAAA4E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,WAAAuB,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,SAAAxD,GAAA,QAAA8E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,YAAArD,EAAA,MAAAqC,MAAA,kDAAAuC,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,KAAAT,OAAA,SAAA3D,EAAAD,GAAA,QAAAE,EAAA,KAAAqE,WAAAM,OAAA,EAAA3E,GAAA,IAAAA,EAAA,KAAAI,EAAA,KAAAiE,WAAArE,GAAA,GAAAI,EAAA6D,QAAA,KAAAwB,MAAAvF,EAAAwB,KAAAtB,EAAA,oBAAAqF,KAAArF,EAAA+D,WAAA,KAAA5D,EAAAH,EAAA,OAAAG,IAAA,UAAAR,GAAA,aAAAA,IAAAQ,EAAA0D,QAAAnE,GAAAA,GAAAS,EAAA4D,aAAA5D,EAAA,UAAAE,EAAAF,EAAAA,EAAAiE,WAAA,UAAA/D,EAAAe,KAAAzB,EAAAU,EAAAgB,IAAA3B,EAAAS,GAAA,KAAA6C,OAAA,YAAAU,KAAAvD,EAAA4D,WAAApC,GAAA,KAAAgE,SAAAtF,EAAA,EAAAsF,SAAA,SAAAhG,EAAAD,GAAA,aAAAC,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,gBAAA1B,EAAAyB,MAAA,aAAAzB,EAAAyB,KAAA,KAAAsC,KAAA/D,EAAA0B,IAAA,WAAA1B,EAAAyB,MAAA,KAAAqE,KAAA,KAAApE,IAAA1B,EAAA0B,IAAA,KAAA2B,OAAA,cAAAU,KAAA,kBAAA/D,EAAAyB,MAAA1B,IAAA,KAAAgE,KAAAhE,GAAAiC,CAAA,EAAAiE,OAAA,SAAAjG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAmE,aAAApE,EAAA,YAAAgG,SAAA/F,EAAAwE,WAAAxE,EAAAoE,UAAAG,EAAAvE,GAAA+B,CAAA,GAAAkE,MAAA,SAAAlG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAiE,SAAAlE,EAAA,KAAAG,EAAAF,EAAAwE,WAAA,aAAAtE,EAAAsB,KAAA,KAAApB,EAAAF,EAAAuB,IAAA8C,EAAAvE,EAAA,QAAAI,CAAA,QAAA8C,MAAA,0BAAAgD,cAAA,SAAApG,EAAAE,EAAAE,GAAA,YAAAmD,SAAA,CAAA3C,SAAA4B,EAAAxC,GAAA+D,WAAA7D,EAAA+D,QAAA7D,GAAA,cAAAkD,SAAA,KAAA3B,IAAA1B,GAAAgC,CAAA,GAAAjC,CAAA,UAAAqG,EAAAjG,EAAAH,EAAAD,EAAAE,EAAAI,EAAAK,EAAAE,GAAA,QAAAJ,EAAAL,EAAAO,GAAAE,GAAAE,EAAAN,EAAAD,KAAA,OAAAJ,GAAA,YAAAJ,EAAAI,EAAA,CAAAK,EAAA4C,KAAApD,EAAAc,GAAAwE,QAAAvC,QAAAjC,GAAAmC,KAAAhD,EAAAI,EAAA,UAAAgG,EAAAlG,GAAA,sBAAAH,EAAA,KAAAD,EAAAuG,UAAA,WAAAhB,QAAA,SAAArF,EAAAI,GAAA,IAAAK,EAAAP,EAAAoG,MAAAvG,EAAAD,GAAA,SAAAyG,EAAArG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,OAAAtG,EAAA,UAAAsG,EAAAtG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,QAAAtG,EAAA,CAAAqG,OAAA,eAAA1D,EAAAzC,GAAA,OAAAyC,EAAA,mBAAArC,QAAA,iBAAAA,OAAAE,SAAA,SAAAN,GAAA,cAAAA,CAAA,WAAAA,GAAA,OAAAA,GAAA,mBAAAI,QAAAJ,EAAA0E,cAAAtE,QAAAJ,IAAAI,OAAAP,UAAA,gBAAAG,CAAA,EAAAyC,EAAAzC,EAAA,UAAAqG,EAAA3G,EAAAE,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA2E,OAAA5E,IAAA,KAAAK,EAAAJ,EAAAD,GAAAK,EAAAW,WAAAX,EAAAW,aAAA,EAAAX,EAAAY,cAAA,YAAAZ,IAAAA,EAAAa,UAAA,GAAAvB,OAAAW,eAAAP,EAAA4G,EAAAtG,EAAAuG,KAAAvG,EAAA,WAAAsG,EAAA3G,GAAA,IAAAQ,EAAA,SAAAR,GAAA,aAAA8C,EAAA9C,KAAAA,EAAA,OAAAA,EAAA,IAAAD,EAAAC,EAAAS,OAAAoG,aAAA,YAAA9G,EAAA,KAAAS,EAAAT,EAAA4B,KAAA3B,EAAAC,UAAA,aAAA6C,EAAAtC,GAAA,OAAAA,EAAA,UAAAqD,UAAA,uDAAAiD,OAAA9G,EAAA,CAAA+G,CAAA/G,GAAA,gBAAA8C,EAAAtC,GAAAA,EAAAA,EAAA,GADA,IAAMwG,EAA8BC,EAAAA,KAAAA,EAC9BC,EAAWD,EAAAA,IAAAA,EAMXE,EAAS,WA0BX,OAhCJpH,EAQI,SAAAoH,EAAYC,EAAgBC,GACxB,GATR,SAAA3G,EAAAP,GAAA,KAAAO,aAAAP,GAAA,UAAA0D,UAAA,qCAQyCyD,CAAA,KAAAH,GACH,WAA1BrE,EAAOsE,GACP,MAAM,IAAIjE,MAAM,uGASpB,GAPAtD,KAAKwH,QAAU,CACXE,kBAA8C,IAAzBF,EAAQE,cAAuCF,EAAQE,aAC5EC,gBAA0C,IAAvBH,EAAQG,YAAoCH,EAAQG,WACvEC,aAAoC,IAApBJ,EAAQI,QAA0B,IAAMJ,EAAQI,QAChEC,wBAA0D,IAA/BL,EAAQK,oBAA6CL,EAAQK,oBAE5F7H,KAAK8H,gBAAkB9H,KAAK+H,YAAYP,EAAQK,oBAC5CN,EAAeS,YAAYC,UAAW,CAEtC,QAAmC,IAAxBV,EAAeW,KACtB,MAAM,IAAI5E,MAAM,gGAEhBtD,KAAKwH,QAAQG,YACb3H,KAAK8H,gBAAgBK,IAAIZ,EAAeS,YAAaT,EAAeW,KAE5E,CACAlI,KAAKoI,KAAOb,EAAeS,YAC3BhI,KAAKqI,OAASd,EAAeW,IACjC,EA9BJ9H,EAgCI,EAAA2G,IAAA,YAAAuB,IAIA,WACI,OAAOtI,KAAKoI,KAAKH,SACrB,GAAC,CAAAlB,IAAA,WAAAuB,IAED,WACI,OAAOtI,KAAKoI,KAAKG,QACrB,GAAC,CAAAxB,IAAA,WAAAuB,IAED,WACI,OAAOtI,KAAKoI,KAAKI,QACrB,GAAC,CAAAzB,IAAA,WAAAuB,IAED,WACI,OAAOtI,KAAKoI,KAAKK,QACrB,GAAC,CAAA1B,IAAA,aAAAuB,IAED,WACI,OAAOtI,KAAKwH,QAAQG,UACxB,GAAC,CAAAZ,IAAA,eAAAuB,IAED,WACI,OAAOtI,KAAKwH,QAAQE,YACxB,GAEA,CAAAX,IAAA,cAAArG,MAMA,SAAYgI,GACR,OAAOA,GAAY,IAAIvB,CAC3B,GAEA,CAAAJ,IAAA,sBAAArG,MAIA,WACI,IAAIiI,EAAQ3I,KAAK8H,gBAAgBQ,MACjC,OAAIK,GACIA,EAAMN,SACNrI,KAAKqI,OAASM,EAAMN,QAEjBM,EAAMX,aAEVW,CACX,GAEA,CAAA5B,IAAA,sBAAArG,MAIA,SAAoBsH,EAAaK,GAC7BrI,KAAK8H,gBAAgBK,IAAIH,EAAaK,EAC1C,GAAC,CAAAtB,IAAA,wBAAArG,MAED,WACIV,KAAK8H,gBAAgBc,OACzB,GAEA,CAAA7B,IAAA,oBAAArG,OAAAmI,EAAArC,EAAAvG,IAAAmF,KAMA,SAAA0D,EAAwBC,EAAcpB,GAAU,IAAAqB,EAAA,YAAA/I,IAAAqB,KAAA,SAAA2H,GAAA,cAAAA,EAAApD,KAAAoD,EAAA/E,MAAA,cAAA+E,EAAAnF,OAAA,SACrCiF,IAAe3F,KAAK,SAAA8F,GAEvB,IAAIC,EAAOD,EAASC,KAAOD,EAASC,KAAKC,OAASF,EASlD,MARkB,eAAdC,EAAKjB,OACLc,EAAKX,OAASc,EAAKjB,MAGnBP,GACAqB,EAAKK,oBAAoBF,EAAKnB,YAAagB,EAAKX,QAEpDW,EAAKZ,KAAKH,UAAYkB,EAAKnB,YAAYC,UAChCkB,EAAKnB,WAChB,IAAE,wBAAAiB,EAAAjD,OAAA,EAAA8C,EAAA,IACL,SAdsBQ,EAAAC,GAAA,OAAAV,EAAAnC,MAAC,KAADD,UAAA,IAgBvB,CAAAM,IAAA,oBAAArG,MAKA,SAAkBoB,GACd,OAAOA,EACFsB,KAAK,SAAA8F,GAEF,OAAIA,EAASC,KAAKC,OACPF,EAASC,KAAKC,OAElBF,CACX,EACR,GAEA,CAAAnC,IAAA,cAAArG,MAKA,SAAYoB,EAAM0H,GACd,SAASC,EAAcC,EAASC,GAC5B,IAAIC,EAAQ,IAAItG,MAAMoG,GACtB,IAAIF,EAGA,MAAMI,EAFNJ,EAAcI,EAAMC,WAAYF,GAAgBC,EAIxD,CAEA,OAAO9H,EACFsB,KAAK,SAAA8F,GAQF,OAPIA,EAASY,QAA8B,MAApBZ,EAASY,QAC5BL,EAAc,YAADM,OAAab,EAASY,OAAM,OAAAC,OAAMb,EAASc,YAAc,MAGtEd,EAASe,YAAsC,MAAxBf,EAASe,YAChCR,EAAc,YAADM,OAAab,EAASe,WAAU,OAAAF,OAAMb,EAASgB,eAAiB,MAE1EhB,CACX,GACC9F,KAAK,SAAA8F,GAIF,OAHIA,EAASC,MAAQD,EAASC,KAAKS,OAC/BH,EAAc,GAADM,OAAIb,EAASC,KAAKS,MAAMT,KAAKvH,KAAI,MAAAmI,OAAKb,EAASC,KAAKS,MAAMF,SAAWR,EAASC,KAAKS,OAE7FV,CACX,EACR,GAEA,CAAAnC,IAAA,eAAArG,OAAAyJ,EAAA3D,EAAAvG,IAAAmF,KAYA,SAAAgF,EAAmB5G,EAAQ6G,EAAQC,EAAiBd,EAAeT,EAAcpB,GAAU,IAAA7F,EAAAyI,EAAA,YAAAtK,IAAAqB,KAAA,SAAAkJ,GAAA,cAAAA,EAAA3E,KAAA2E,EAAAtG,MAAA,OAgCtF,OA/BGpC,EAAO,IAAIuF,EAAS7D,EAAQxD,KAAKqI,OAAQgC,EAAQC,GAAiBG,KAAKzK,KAAKwH,QAAQI,SAGpF9F,EADW,iBAAX0B,EACO1B,EAAKsB,KAAI,eAAAsH,EAAAlE,EAAAvG,IAAAmF,KAAC,SAAAuF,EAAMzB,GAAQ,IAAAC,EAAA,OAAAlJ,IAAAqB,KAAA,SAAAsJ,GAAA,cAAAA,EAAA/E,KAAA+E,EAAA1G,MAAA,OAE3B,KADIiF,EAAOD,EAASC,MAEXS,MAAO,CAAFgB,EAAA1G,KAAA,WACmB,yBAAzBiF,EAAKS,MAAMT,KAAKvH,KAA+B,CAAAgJ,EAAA1G,KAAA,QAG/C,OADAqG,EAAKM,wBACLD,EAAA1G,KAAA,EACMqG,EAAKO,kBAAkB/B,EAAcpB,GACtCvE,KAAK,SAAA2H,GACFV,EAAOrC,YAAc+C,CACzB,GAAE,cAAAH,EAAA9G,OAAA,SACC,IAAIuD,EAAS7D,EAAQ+G,EAAKlC,OAAQgC,EAAQC,GAAiBG,KAAKF,EAAK/C,QAAQI,UAAQ,cAAAgD,EAAA9G,OAAA,SAG7FoF,GAAQ,wBAAA0B,EAAA5E,OAAA,EAAA2E,EAAA,IAClB,gBAAAK,GAAA,OAAAN,EAAAhE,MAAA,KAAAD,UAAA,EAhBe,IAkBT3E,EAAKsB,KAAK,SAAA8F,GACb,GAAIA,EAASC,KAAKC,OAAQ,CACtB,IAAIf,EAAuC,eAA9Ba,EAASC,KAAKC,OAAOlB,KAAwBqC,EAAKlC,OAASa,EAASC,KAAKC,OAAOlB,KAC7FqC,EAAKlC,OAASA,EACVkC,EAAK5C,YACL4C,EAAKlB,oBAAoBH,EAASC,KAAKC,OAAOpB,YAAaK,EAEnE,CACA,OAAOa,CACX,GACHsB,EAAA1G,OAAA,SACMhC,GAAI,wBAAA0I,EAAAxE,OAAA,EAAAoE,EAAA,SACd,SAlCiBa,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,GAAA,OAAAnB,EAAAzD,MAAC,KAADD,UAAA,KArLtBrG,GAAAyG,EAAA3G,EAAAG,UAAAD,GAAAN,OAAAW,eAAAP,EAAA,aAAAmB,UAAA,IAAAnB,EAAA,IAAAA,EAAAE,EAyKI+J,EAxEAtB,CAoFkB,CA/KP,GAoNfnJ,EAAQ,EAAU4H,C,6QC1NlBrH,EAAA,kBAAAC,CAAA,MAAAC,EAAAD,EAAA,GAAAE,EAAAN,OAAAO,UAAAC,EAAAF,EAAAG,eAAAC,EAAAV,OAAAW,gBAAA,SAAAN,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAAM,KAAA,EAAAC,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAtB,EAAAO,EAAAD,EAAAE,GAAA,OAAAN,OAAAW,eAAAN,EAAAD,EAAA,CAAAQ,MAAAN,EAAAe,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAlB,EAAAD,EAAA,KAAAN,EAAA,aAAAO,GAAAP,EAAA,SAAAO,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,CAAA,WAAAkB,EAAAnB,EAAAD,EAAAE,EAAAE,GAAA,IAAAK,EAAAT,GAAAA,EAAAG,qBAAAkB,EAAArB,EAAAqB,EAAAV,EAAAf,OAAA0B,OAAAb,EAAAN,WAAAU,EAAA,IAAAU,EAAAnB,GAAA,WAAAE,EAAAK,EAAA,WAAAH,MAAAgB,EAAAvB,EAAAC,EAAAW,KAAAF,CAAA,UAAAc,EAAAxB,EAAAD,EAAAE,GAAA,WAAAwB,KAAA,SAAAC,IAAA1B,EAAA2B,KAAA5B,EAAAE,GAAA,OAAAD,GAAA,OAAAyB,KAAA,QAAAC,IAAA1B,EAAA,EAAAD,EAAAoB,KAAAA,EAAA,IAAAS,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,YAAAZ,IAAA,UAAAa,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAA1C,EAAA0C,EAAAzB,EAAA,6BAAA0B,EAAAzC,OAAA0C,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAArC,GAAAE,EAAAwB,KAAAW,EAAA5B,KAAAyB,EAAAG,GAAA,IAAAE,EAAAN,EAAAhC,UAAAkB,EAAAlB,UAAAP,OAAA0B,OAAAc,GAAA,SAAAM,EAAAzC,GAAA,0BAAA0C,QAAA,SAAA3C,GAAAN,EAAAO,EAAAD,EAAA,SAAAC,GAAA,YAAA2C,QAAA5C,EAAAC,EAAA,cAAA4C,EAAA5C,EAAAD,GAAA,SAAA8C,EAAA5C,EAAAI,EAAAG,EAAAE,GAAA,IAAAE,EAAAY,EAAAxB,EAAAC,GAAAD,EAAAK,GAAA,aAAAO,EAAAa,KAAA,KAAAX,EAAAF,EAAAc,IAAAE,EAAAd,EAAAP,MAAA,OAAAqB,GAAA,UAAAkB,EAAAlB,IAAAzB,EAAAwB,KAAAC,EAAA,WAAA7B,EAAAgD,QAAAnB,EAAAoB,SAAAC,KAAA,SAAAjD,GAAA6C,EAAA,OAAA7C,EAAAQ,EAAAE,EAAA,WAAAV,GAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAX,EAAAgD,QAAAnB,GAAAqB,KAAA,SAAAjD,GAAAc,EAAAP,MAAAP,EAAAQ,EAAAM,EAAA,WAAAd,GAAA,OAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAA,EAAAE,EAAAc,IAAA,KAAAzB,EAAAI,EAAA,gBAAAE,MAAA,SAAAP,EAAAG,GAAA,SAAA+C,IAAA,WAAAnD,EAAA,SAAAA,EAAAE,GAAA4C,EAAA7C,EAAAG,EAAAJ,EAAAE,EAAA,UAAAA,EAAAA,EAAAA,EAAAgD,KAAAC,EAAAA,GAAAA,GAAA,aAAA3B,EAAAxB,EAAAE,EAAAE,GAAA,IAAAE,EAAAuB,EAAA,gBAAApB,EAAAE,GAAA,GAAAL,IAAAyB,EAAA,MAAAqB,MAAA,mCAAA9C,IAAA0B,EAAA,cAAAvB,EAAA,MAAAE,EAAA,OAAAH,MAAAP,EAAAoD,MAAA,OAAAjD,EAAAkD,OAAA7C,EAAAL,EAAAuB,IAAAhB,IAAA,KAAAE,EAAAT,EAAAmD,SAAA,GAAA1C,EAAA,KAAAE,EAAAyC,EAAA3C,EAAAT,GAAA,GAAAW,EAAA,IAAAA,IAAAkB,EAAA,gBAAAlB,CAAA,cAAAX,EAAAkD,OAAAlD,EAAAqD,KAAArD,EAAAsD,MAAAtD,EAAAuB,SAAA,aAAAvB,EAAAkD,OAAA,IAAAhD,IAAAuB,EAAA,MAAAvB,EAAA0B,EAAA5B,EAAAuB,IAAAvB,EAAAuD,kBAAAvD,EAAAuB,IAAA,gBAAAvB,EAAAkD,QAAAlD,EAAAwD,OAAA,SAAAxD,EAAAuB,KAAArB,EAAAyB,EAAA,IAAAK,EAAAX,EAAAzB,EAAAE,EAAAE,GAAA,cAAAgC,EAAAV,KAAA,IAAApB,EAAAF,EAAAiD,KAAArB,EAAAF,EAAAM,EAAAT,MAAAM,EAAA,gBAAAzB,MAAA4B,EAAAT,IAAA0B,KAAAjD,EAAAiD,KAAA,WAAAjB,EAAAV,OAAApB,EAAA0B,EAAA5B,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAAS,EAAAT,IAAA,YAAA6B,EAAAxD,EAAAE,GAAA,IAAAE,EAAAF,EAAAoD,OAAAhD,EAAAN,EAAAY,SAAAR,GAAA,GAAAE,IAAAL,EAAA,OAAAC,EAAAqD,SAAA,eAAAnD,GAAAJ,EAAAY,SAAAiD,SAAA3D,EAAAoD,OAAA,SAAApD,EAAAyB,IAAA1B,EAAAuD,EAAAxD,EAAAE,GAAA,UAAAA,EAAAoD,SAAA,WAAAlD,IAAAF,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA1D,EAAA,aAAA6B,EAAA,IAAAxB,EAAAgB,EAAAnB,EAAAN,EAAAY,SAAAV,EAAAyB,KAAA,aAAAlB,EAAAiB,KAAA,OAAAxB,EAAAoD,OAAA,QAAApD,EAAAyB,IAAAlB,EAAAkB,IAAAzB,EAAAqD,SAAA,KAAAtB,EAAA,IAAAtB,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAA0C,MAAAnD,EAAAF,EAAA+D,YAAApD,EAAAH,MAAAN,EAAA8D,KAAAhE,EAAAiE,QAAA,WAAA/D,EAAAoD,SAAApD,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,GAAAC,EAAAqD,SAAA,KAAAtB,GAAAtB,GAAAT,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA5D,EAAAqD,SAAA,KAAAtB,EAAA,UAAAiC,EAAAjE,GAAA,IAAAD,EAAA,CAAAmE,OAAAlE,EAAA,SAAAA,IAAAD,EAAAoE,SAAAnE,EAAA,SAAAA,IAAAD,EAAAqE,WAAApE,EAAA,GAAAD,EAAAsE,SAAArE,EAAA,SAAAsE,WAAAC,KAAAxE,EAAA,UAAAyE,EAAAxE,GAAA,IAAAD,EAAAC,EAAAyE,YAAA,GAAA1E,EAAA0B,KAAA,gBAAA1B,EAAA2B,IAAA1B,EAAAyE,WAAA1E,CAAA,UAAAuB,EAAAtB,GAAA,KAAAsE,WAAA,EAAAJ,OAAA,SAAAlE,EAAA0C,QAAAuB,EAAA,WAAAS,OAAA,YAAAnC,EAAAxC,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAE,EAAAF,EAAAW,GAAA,GAAAT,EAAA,OAAAA,EAAA0B,KAAA5B,GAAA,sBAAAA,EAAAgE,KAAA,OAAAhE,EAAA,IAAA4E,MAAA5E,EAAA6E,QAAA,KAAAvE,GAAA,EAAAG,EAAA,SAAAuD,IAAA,OAAA1D,EAAAN,EAAA6E,QAAA,GAAAzE,EAAAwB,KAAA5B,EAAAM,GAAA,OAAA0D,EAAAxD,MAAAR,EAAAM,GAAA0D,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,SAAAvD,EAAAuD,KAAAvD,CAAA,YAAAqD,UAAAf,EAAA/C,GAAA,2BAAAkC,EAAA/B,UAAAgC,EAAA7B,EAAAmC,EAAA,eAAAjC,MAAA2B,EAAAjB,cAAA,IAAAZ,EAAA6B,EAAA,eAAA3B,MAAA0B,EAAAhB,cAAA,IAAAgB,EAAA4C,YAAApF,EAAAyC,EAAApB,EAAA,qBAAAf,EAAA+E,oBAAA,SAAA9E,GAAA,IAAAD,EAAA,mBAAAC,GAAAA,EAAA+E,YAAA,QAAAhF,IAAAA,IAAAkC,GAAA,uBAAAlC,EAAA8E,aAAA9E,EAAAiF,MAAA,EAAAjF,EAAAkF,KAAA,SAAAjF,GAAA,OAAAL,OAAAuF,eAAAvF,OAAAuF,eAAAlF,EAAAkC,IAAAlC,EAAAmF,UAAAjD,EAAAzC,EAAAO,EAAAc,EAAA,sBAAAd,EAAAE,UAAAP,OAAA0B,OAAAmB,GAAAxC,CAAA,EAAAD,EAAAqF,MAAA,SAAApF,GAAA,OAAAgD,QAAAhD,EAAA,EAAAyC,EAAAG,EAAA1C,WAAAT,EAAAmD,EAAA1C,UAAAU,EAAA,yBAAAb,EAAA6C,cAAAA,EAAA7C,EAAAsF,MAAA,SAAArF,EAAAC,EAAAE,EAAAE,EAAAG,QAAA,IAAAA,IAAAA,EAAA8E,SAAA,IAAA5E,EAAA,IAAAkC,EAAAzB,EAAAnB,EAAAC,EAAAE,EAAAE,GAAAG,GAAA,OAAAT,EAAA+E,oBAAA7E,GAAAS,EAAAA,EAAAqD,OAAAd,KAAA,SAAAjD,GAAA,OAAAA,EAAAoD,KAAApD,EAAAO,MAAAG,EAAAqD,MAAA,IAAAtB,EAAAD,GAAA/C,EAAA+C,EAAA1B,EAAA,aAAArB,EAAA+C,EAAA9B,EAAA,yBAAAjB,EAAA+C,EAAA,mDAAAzC,EAAAwF,KAAA,SAAAvF,GAAA,IAAAD,EAAAJ,OAAAK,GAAAC,EAAA,WAAAE,KAAAJ,EAAAE,EAAAsE,KAAApE,GAAA,OAAAF,EAAAuF,UAAA,SAAAzB,IAAA,KAAA9D,EAAA2E,QAAA,KAAA5E,EAAAC,EAAAwF,MAAA,GAAAzF,KAAAD,EAAA,OAAAgE,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,QAAAA,EAAAX,MAAA,EAAAW,CAAA,GAAAhE,EAAAwC,OAAAA,EAAAjB,EAAApB,UAAA,CAAA6E,YAAAzD,EAAAoD,MAAA,SAAA3E,GAAA,QAAA2F,KAAA,OAAA3B,KAAA,OAAAP,KAAA,KAAAC,MAAAzD,EAAA,KAAAoD,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAA3B,IAAA1B,EAAA,KAAAsE,WAAA5B,QAAA8B,IAAAzE,EAAA,QAAAE,KAAA,WAAAA,EAAA0F,OAAA,IAAAxF,EAAAwB,KAAA,KAAA1B,KAAA0E,OAAA1E,EAAA2F,MAAA,WAAA3F,GAAAD,EAAA,EAAA6F,KAAA,gBAAAzC,MAAA,MAAApD,EAAA,KAAAsE,WAAA,GAAAG,WAAA,aAAAzE,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,YAAAoE,IAAA,EAAApC,kBAAA,SAAA3D,GAAA,QAAAqD,KAAA,MAAArD,EAAA,IAAAE,EAAA,cAAA8F,EAAA5F,EAAAE,GAAA,OAAAK,EAAAe,KAAA,QAAAf,EAAAgB,IAAA3B,EAAAE,EAAA8D,KAAA5D,EAAAE,IAAAJ,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,KAAAK,CAAA,SAAAA,EAAA,KAAAiE,WAAAM,OAAA,EAAAvE,GAAA,IAAAA,EAAA,KAAAG,EAAA,KAAA8D,WAAAjE,GAAAK,EAAAF,EAAAiE,WAAA,YAAAjE,EAAA0D,OAAA,OAAA6B,EAAA,UAAAvF,EAAA0D,QAAA,KAAAwB,KAAA,KAAA9E,EAAAT,EAAAwB,KAAAnB,EAAA,YAAAM,EAAAX,EAAAwB,KAAAnB,EAAA,iBAAAI,GAAAE,EAAA,SAAA4E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,WAAAuB,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,SAAAxD,GAAA,QAAA8E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,YAAArD,EAAA,MAAAqC,MAAA,kDAAAuC,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,KAAAT,OAAA,SAAA3D,EAAAD,GAAA,QAAAE,EAAA,KAAAqE,WAAAM,OAAA,EAAA3E,GAAA,IAAAA,EAAA,KAAAI,EAAA,KAAAiE,WAAArE,GAAA,GAAAI,EAAA6D,QAAA,KAAAwB,MAAAvF,EAAAwB,KAAAtB,EAAA,oBAAAqF,KAAArF,EAAA+D,WAAA,KAAA5D,EAAAH,EAAA,OAAAG,IAAA,UAAAR,GAAA,aAAAA,IAAAQ,EAAA0D,QAAAnE,GAAAA,GAAAS,EAAA4D,aAAA5D,EAAA,UAAAE,EAAAF,EAAAA,EAAAiE,WAAA,UAAA/D,EAAAe,KAAAzB,EAAAU,EAAAgB,IAAA3B,EAAAS,GAAA,KAAA6C,OAAA,YAAAU,KAAAvD,EAAA4D,WAAApC,GAAA,KAAAgE,SAAAtF,EAAA,EAAAsF,SAAA,SAAAhG,EAAAD,GAAA,aAAAC,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,gBAAA1B,EAAAyB,MAAA,aAAAzB,EAAAyB,KAAA,KAAAsC,KAAA/D,EAAA0B,IAAA,WAAA1B,EAAAyB,MAAA,KAAAqE,KAAA,KAAApE,IAAA1B,EAAA0B,IAAA,KAAA2B,OAAA,cAAAU,KAAA,kBAAA/D,EAAAyB,MAAA1B,IAAA,KAAAgE,KAAAhE,GAAAiC,CAAA,EAAAiE,OAAA,SAAAjG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAmE,aAAApE,EAAA,YAAAgG,SAAA/F,EAAAwE,WAAAxE,EAAAoE,UAAAG,EAAAvE,GAAA+B,CAAA,GAAAkE,MAAA,SAAAlG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAiE,SAAAlE,EAAA,KAAAG,EAAAF,EAAAwE,WAAA,aAAAtE,EAAAsB,KAAA,KAAApB,EAAAF,EAAAuB,IAAA8C,EAAAvE,EAAA,QAAAI,CAAA,QAAA8C,MAAA,0BAAAgD,cAAA,SAAApG,EAAAE,EAAAE,GAAA,YAAAmD,SAAA,CAAA3C,SAAA4B,EAAAxC,GAAA+D,WAAA7D,EAAA+D,QAAA7D,GAAA,cAAAkD,SAAA,KAAA3B,IAAA1B,GAAAgC,CAAA,GAAAjC,CAAA,UAAAqG,EAAAjG,EAAAH,EAAAD,EAAAE,EAAAI,EAAAK,EAAAE,GAAA,QAAAJ,EAAAL,EAAAO,GAAAE,GAAAE,EAAAN,EAAAD,KAAA,OAAAJ,GAAA,YAAAJ,EAAAI,EAAA,CAAAK,EAAA4C,KAAApD,EAAAc,GAAAwE,QAAAvC,QAAAjC,GAAAmC,KAAAhD,EAAAI,EAAA,UAAAgG,EAAAlG,GAAA,sBAAAH,EAAA,KAAAD,EAAAuG,UAAA,WAAAhB,QAAA,SAAArF,EAAAI,GAAA,IAAAK,EAAAP,EAAAoG,MAAAvG,EAAAD,GAAA,SAAAyG,EAAArG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,OAAAtG,EAAA,UAAAsG,EAAAtG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,QAAAtG,EAAA,CAAAqG,OAAA,eAAAE,EAAA3G,EAAAE,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA2E,OAAA5E,IAAA,KAAAK,EAAAJ,EAAAD,GAAAK,EAAAW,WAAAX,EAAAW,aAAA,EAAAX,EAAAY,cAAA,YAAAZ,IAAAA,EAAAa,UAAA,GAAAvB,OAAAW,eAAAP,EAAA4G,EAAAtG,EAAAuG,KAAAvG,EAAA,WAAAsG,EAAA3G,GAAA,IAAAQ,EAAA,SAAAR,GAAA,aAAA8C,EAAA9C,KAAAA,EAAA,OAAAA,EAAA,IAAAD,EAAAC,EAAAS,OAAAoG,aAAA,YAAA9G,EAAA,KAAAS,EAAAT,EAAA4B,KAAA3B,EAAAC,UAAA,aAAA6C,EAAAtC,GAAA,OAAAA,EAAA,UAAAqD,UAAA,uDAAAiD,OAAA9G,EAAA,CAAA+G,CAAA/G,GAAA,gBAAA8C,EAAAtC,GAAAA,EAAAA,EAAA,GADA,IAAM2G,EAAYF,EAAAA,KAAAA,EAOZmE,EAAS,WAmBX,OAzBJrL,EAmBI,SAAAqL,EAAYhE,GAAiC,IAAjBiE,EAAU/E,UAAA1B,OAAA,QAAA0G,IAAAhF,UAAA,GAAAA,UAAA,GAAG,CAAC,GAnB9C,SAAA5F,EAAAP,GAAA,KAAAO,aAAAP,GAAA,UAAA0D,UAAA,qCAmB+CyD,CAAA,KAAA8D,GACvCvL,KAAK0L,QAAU,IAAIpE,EAAUC,EAAgBiE,GAE7CxL,KAAK+I,aAAe/I,KAAK+I,aAAa4C,KAAK3L,KAC/C,EAvBJI,EAyBI,EAAA2G,IAAA,eAAArG,OAAAkL,EAAApF,EAAAvG,IAAAmF,KAOA,SAAA0D,EAAmBwB,EAAiBd,GAAa,IAAAhC,EAAA4B,EAAA,OAAAnJ,IAAAqB,KAAA,SAAA2H,GAAA,cAAAA,EAAApD,KAAAoD,EAAA/E,MAAA,WACzCoG,GAAoBd,EAAa,CAAAP,EAAA/E,KAAA,cAC3B,IAAIZ,MAAM,wDAAuD,OAQQ,GAL/EkE,EAAU,CACVe,SAAUvI,KAAK0L,QAAQnD,SACvBC,SAAUxI,KAAK0L,QAAQlD,SACvBC,SAAUzI,KAAK0L,QAAQjD,UAEvBW,EAASpJ,KAAK6L,SAAS,eAAgBrE,EAAS8C,EAAiBd,GAEhEc,GAAoBd,EAAa,CAAAP,EAAA/E,KAAA,eAAA+E,EAAAnF,OAAA,SAC3BsF,GAAM,wBAAAH,EAAAjD,OAAA,EAAA8C,EAAA,SAGpB,SAhBiBQ,EAAAC,GAAA,OAAAqC,EAAAlF,MAAC,KAADD,UAAA,IAkBlB,CAAAM,IAAA,OAAArG,OAAAoL,EAAAtF,EAAAvG,IAAAmF,KASA,SAAAuF,EAAWnH,EAAQ6G,EAAQC,EAAiBd,GAAa,IAAAJ,EAAA,OAAAnJ,IAAAqB,KAAA,SAAAsJ,GAAA,cAAAA,EAAA/E,KAAA+E,EAAA1G,MAAA,WACjDoG,GAAoBd,EAAa,CAAAoB,EAAA1G,KAAA,cAC3B,IAAIZ,MAAM,wDAAuD,OAGD,GAAtE8F,EAASpJ,KAAK6L,SAASrI,EAAQ6G,EAAQC,EAAiBd,GAEvDc,GAAoBd,EAAa,CAAAoB,EAAA1G,KAAA,eAAA0G,EAAA9G,OAAA,SAC3BsF,GAAM,wBAAAwB,EAAA5E,OAAA,EAAA2E,EAAA,SAEpB,SAVSM,EAAAC,EAAAC,EAAAC,GAAA,OAAAU,EAAApF,MAAC,KAADD,UAAA,IAYV,CAAAM,IAAA,WAAArG,OAAAqL,EAAAvF,EAAAvG,IAAAmF,KASA,SAAAgF,EAAe5G,EAAQ6G,EAAQC,EAAiBd,GAAa,IAAAwC,EAAAlK,EAAA,OAAA7B,IAAAqB,KAAA,SAAAkJ,GAAA,cAAAA,EAAA3E,KAAA2E,EAAAtG,MAAA,WAErDlE,KAAK0L,QAAQzD,UAAW,CAAFuC,EAAAtG,KAAA,QACtBmG,EAAOrC,YAAc,CACjBO,SAAUvI,KAAK0L,QAAQnD,SACvBN,UAAWjI,KAAK0L,QAAQzD,UACxBO,SAAUxI,KAAK0L,QAAQlD,UAC1BgC,EAAAtG,KAAA,oBACMlE,KAAK0L,QAAQ/D,YAAyB,iBAAXnE,GAA8BxD,KAAK0L,QAAQzD,UAAS,CAAAuC,EAAAtG,KAAA,gBAAAsG,EAAAtG,KAAA,EAExDlE,KAAK0L,QAAQO,sBAAqB,OAA3C,KAAjBD,EAAiBxB,EAAA7G,MACE,CAAF6G,EAAAtG,KAAA,SACjBmG,EAAOrC,YAAcgE,EAAkBxB,EAAAtG,KAAA,wBAAAsG,EAAAtG,KAAA,GAGjClE,KAAK0L,QAAQZ,kBAAkB9K,KAAK+I,aAAc/I,KAAK0L,QAAQ/D,YAChEvE,KAAK,SAAA2H,GACFV,EAAOrC,YAAc+C,CACzB,GAAE,QAAAP,EAAAtG,KAAA,oBAGQ,iBAAXV,GAA8BxD,KAAK0L,QAAQ/D,YAAe3H,KAAK0L,QAAQzD,UAAS,CAAAuC,EAAAtG,KAAA,gBAAAsG,EAAAtG,KAAA,GAEjFlE,KAAK0L,QAAQZ,kBAAkB9K,KAAK+I,aAAc/I,KAAK0L,QAAQ/D,YAChEvE,KAAK,SAAA2H,GACFV,EAAOrC,YAAc+C,CACzB,GAAE,QASV,OANIjJ,EAAO9B,KAAK0L,QAAQQ,aAAa1I,EAAQ6G,EAAQC,EAAiBd,EAAexJ,KAAK+I,aAAc/I,KAAK0L,QAAQ/D,YAEhH3H,KAAK0L,QAAQhE,eACd5F,EAAO9B,KAAK0L,QAAQS,YAAYrK,EAAM0H,GACtC1H,EAAO9B,KAAK0L,QAAQU,kBAAkBtK,IAE1C0I,EAAA1G,OAAA,SACOhC,GAAI,yBAAA0I,EAAAxE,OAAA,EAAAoE,EAAA,SACd,SArCaiB,EAAAC,EAAAN,EAAAqB,GAAA,OAAAN,EAAArF,MAAC,KAADD,UAAA,IAuCd,CAAAM,IAAA,YAAArG,OAAA4L,EAAA9F,EAAAvG,IAAAmF,KAQA,SAAAmH,EAAgBC,EAAOlC,EAAiBd,GAAa,IAAAiD,EAAArD,EAAA,OAAAnJ,IAAAqB,KAAA,SAAAoL,GAAA,cAAAA,EAAA7G,KAAA6G,EAAAxI,MAAA,WAC7CoG,GAAoBd,EAAa,CAAAkD,EAAAxI,KAAA,cAC3B,IAAIZ,MAAM,wDAAuD,OAazC,GAX9BmJ,EAAiBD,EAAMG,IAAI,SAAA7K,GAC3B,IAAIuI,EAASvI,EAAK,GAClB,MAAO,CACH0B,OAAQ1B,EAAK,GACbuI,OAAQA,EAEhB,GAGIjB,EAASpJ,KAAK6L,SAAS,mBAAoB,CAC3CW,MAAOC,GACRnC,EAAiBd,GAEfc,GAAoBd,EAAa,CAAAkD,EAAAxI,KAAA,eAAAwI,EAAA5I,OAAA,SAC3BsF,GAAM,wBAAAsD,EAAA1G,OAAA,EAAAuG,EAAA,SAEpB,SApBcK,EAAAC,EAAAC,GAAA,OAAAR,EAAA5F,MAAC,KAADD,UAAA,IAsBf,CAAAM,IAAA,aAAArG,OAAAqM,EAAAvG,EAAAvG,IAAAmF,KAMA,SAAA4H,EAAiB1C,EAAiB2C,GAAU,IAAA7E,EAAAc,EAAAF,EAAA,YAAA/I,IAAAqB,KAAA,SAAA4L,GAAA,cAAAA,EAAArH,KAAAqH,EAAAhJ,MAAA,cAAAgJ,EAAAhJ,KAAA,EACvBlE,KAAK0L,QAAQO,sBAAqB,OAA3C,GAAJ7D,EAAI8E,EAAAvJ,KAEHsJ,IAAcjN,KAAK0L,QAAQ/D,WAAU,CAAAuF,EAAAhJ,KAAA,aAElCkE,EAAM,CAAF8E,EAAAhJ,KAAA,SAC6J,GAAjKgF,EAAWlJ,KAAK0L,QAAQhE,aAAe,CAAEyB,KAAM,CAAEC,OAAQ,CAAEpB,YAAaI,EAAMF,KAAMlI,KAAK0L,QAAQrD,UAAe,CAAEL,YAAaI,EAAMF,KAAMlI,KAAK0L,QAAQrD,SACpJiC,EAAiB,CAAF4C,EAAAhJ,KAAA,SAOd,OAL8B,IAA3BoG,EAAgBvF,OAChBuF,EAAgBpB,GACkB,IAA3BoB,EAAgBvF,QAEvBuF,EAAgBlC,EAAKJ,YAAahI,KAAK0L,QAAQrD,QAClD6E,EAAApJ,OAAA,yBAAAoJ,EAAApJ,OAAA,SAGMoF,GAAQ,QAAAgE,EAAAhJ,KAAA,wBAAAgJ,EAAApJ,OAAA,SAGZ9D,KAAK+I,aAAauB,IAAgB,QAAA4C,EAAAhJ,KAAA,iBAIlB,GAA3BkE,EAAOpI,KAAK+I,gBACRuB,EAAiB,CAAF4C,EAAAhJ,KAAA,gBAAAgJ,EAAAhJ,KAAA,GACFkE,EAAKhF,KAAK,SAAA8F,GAAQ,OAAIF,EAAK0C,QAAQhE,aAAewB,EAASC,KAAKC,OAAOpB,YAAckB,CAAQ,GAAC,QAA3Gd,EAAI8E,EAAAvJ,KACJuF,EAAWlJ,KAAK0L,QAAQhE,aAAe,CAAEyB,KAAM,CAAEC,OAAQ,CAAEpB,YAAaI,EAAMF,KAAMlI,KAAK0L,QAAQrD,UAAe,CAAEL,YAAaI,EAAKJ,YAAaE,KAAMlI,KAAK0L,QAAQrD,QACrI,IAA3BiC,EAAgBvF,OAChBuF,EAAgBpB,GACkB,IAA3BoB,EAAgBvF,QAEvBuF,EAAgBlC,EAAKJ,YAAahI,KAAK0L,QAAQrD,QAClD6E,EAAAhJ,KAAA,wBAAAgJ,EAAApJ,OAAA,SAEMsE,GAAI,yBAAA8E,EAAAlH,OAAA,EAAAgH,EAAA,SAGtB,SAtCeG,EAAAC,GAAA,OAAAL,EAAArG,MAAC,KAADD,UAAA,IAwChB,CAAAM,IAAA,SAAArG,OAAA2M,EAAA7G,EAAAvG,IAAAmF,KAIA,SAAAkI,IAAA,OAAArN,IAAAqB,KAAA,SAAAiM,GAAA,cAAAA,EAAA1H,KAAA0H,EAAArJ,MAAA,OACyC,OAArClE,KAAK0L,QAAQb,wBAAwB0C,EAAAzJ,OAAA,SAC9B9D,KAAK+I,gBAAc,wBAAAwE,EAAAvH,OAAA,EAAAsH,EAAA,SAC7B,WAHW,OAAAD,EAAA3G,MAAC,KAADD,UAAA,KAvMhBrG,GAAAyG,EAAA3G,EAAAG,UAAAD,GAAAN,OAAAW,eAAAP,EAAA,aAAAmB,UAAA,IAAAnB,EAAA,IAAAA,EAAAE,EAmMIiN,EA9CAN,EA9BAT,EAhDAP,EArBAD,EAzBAF,CA8KY,CAjMD,GAuMflM,EAAQ,EAAU6L,C,4QC7MlBtL,EAAA,kBAAAC,CAAA,MAAAC,EAAAD,EAAA,GAAAE,EAAAN,OAAAO,UAAAC,EAAAF,EAAAG,eAAAC,EAAAV,OAAAW,gBAAA,SAAAN,EAAAD,EAAAE,GAAAD,EAAAD,GAAAE,EAAAM,KAAA,EAAAC,EAAA,mBAAAC,OAAAA,OAAA,GAAAC,EAAAF,EAAAG,UAAA,aAAAC,EAAAJ,EAAAK,eAAA,kBAAAC,EAAAN,EAAAO,aAAA,yBAAAtB,EAAAO,EAAAD,EAAAE,GAAA,OAAAN,OAAAW,eAAAN,EAAAD,EAAA,CAAAQ,MAAAN,EAAAe,YAAA,EAAAC,cAAA,EAAAC,UAAA,IAAAlB,EAAAD,EAAA,KAAAN,EAAA,aAAAO,GAAAP,EAAA,SAAAO,EAAAD,EAAAE,GAAA,OAAAD,EAAAD,GAAAE,CAAA,WAAAkB,EAAAnB,EAAAD,EAAAE,EAAAE,GAAA,IAAAK,EAAAT,GAAAA,EAAAG,qBAAAkB,EAAArB,EAAAqB,EAAAV,EAAAf,OAAA0B,OAAAb,EAAAN,WAAAU,EAAA,IAAAU,EAAAnB,GAAA,WAAAE,EAAAK,EAAA,WAAAH,MAAAgB,EAAAvB,EAAAC,EAAAW,KAAAF,CAAA,UAAAc,EAAAxB,EAAAD,EAAAE,GAAA,WAAAwB,KAAA,SAAAC,IAAA1B,EAAA2B,KAAA5B,EAAAE,GAAA,OAAAD,GAAA,OAAAyB,KAAA,QAAAC,IAAA1B,EAAA,EAAAD,EAAAoB,KAAAA,EAAA,IAAAS,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,YAAAC,EAAA,YAAAC,EAAA,YAAAZ,IAAA,UAAAa,IAAA,UAAAC,IAAA,KAAAC,EAAA,GAAA1C,EAAA0C,EAAAzB,EAAA,6BAAA0B,EAAAzC,OAAA0C,eAAAC,EAAAF,GAAAA,EAAAA,EAAAG,EAAA,MAAAD,GAAAA,IAAArC,GAAAE,EAAAwB,KAAAW,EAAA5B,KAAAyB,EAAAG,GAAA,IAAAE,EAAAN,EAAAhC,UAAAkB,EAAAlB,UAAAP,OAAA0B,OAAAc,GAAA,SAAAM,EAAAzC,GAAA,0BAAA0C,QAAA,SAAA3C,GAAAN,EAAAO,EAAAD,EAAA,SAAAC,GAAA,YAAA2C,QAAA5C,EAAAC,EAAA,cAAA4C,EAAA5C,EAAAD,GAAA,SAAA8C,EAAA5C,EAAAI,EAAAG,EAAAE,GAAA,IAAAE,EAAAY,EAAAxB,EAAAC,GAAAD,EAAAK,GAAA,aAAAO,EAAAa,KAAA,KAAAX,EAAAF,EAAAc,IAAAE,EAAAd,EAAAP,MAAA,OAAAqB,GAAA,UAAAkB,EAAAlB,IAAAzB,EAAAwB,KAAAC,EAAA,WAAA7B,EAAAgD,QAAAnB,EAAAoB,SAAAC,KAAA,SAAAjD,GAAA6C,EAAA,OAAA7C,EAAAQ,EAAAE,EAAA,WAAAV,GAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAX,EAAAgD,QAAAnB,GAAAqB,KAAA,SAAAjD,GAAAc,EAAAP,MAAAP,EAAAQ,EAAAM,EAAA,WAAAd,GAAA,OAAA6C,EAAA,QAAA7C,EAAAQ,EAAAE,EAAA,GAAAA,EAAAE,EAAAc,IAAA,KAAAzB,EAAAI,EAAA,gBAAAE,MAAA,SAAAP,EAAAG,GAAA,SAAA+C,IAAA,WAAAnD,EAAA,SAAAA,EAAAE,GAAA4C,EAAA7C,EAAAG,EAAAJ,EAAAE,EAAA,UAAAA,EAAAA,EAAAA,EAAAgD,KAAAC,EAAAA,GAAAA,GAAA,aAAA3B,EAAAxB,EAAAE,EAAAE,GAAA,IAAAE,EAAAuB,EAAA,gBAAApB,EAAAE,GAAA,GAAAL,IAAAyB,EAAA,MAAAqB,MAAA,mCAAA9C,IAAA0B,EAAA,cAAAvB,EAAA,MAAAE,EAAA,OAAAH,MAAAP,EAAAoD,MAAA,OAAAjD,EAAAkD,OAAA7C,EAAAL,EAAAuB,IAAAhB,IAAA,KAAAE,EAAAT,EAAAmD,SAAA,GAAA1C,EAAA,KAAAE,EAAAyC,EAAA3C,EAAAT,GAAA,GAAAW,EAAA,IAAAA,IAAAkB,EAAA,gBAAAlB,CAAA,cAAAX,EAAAkD,OAAAlD,EAAAqD,KAAArD,EAAAsD,MAAAtD,EAAAuB,SAAA,aAAAvB,EAAAkD,OAAA,IAAAhD,IAAAuB,EAAA,MAAAvB,EAAA0B,EAAA5B,EAAAuB,IAAAvB,EAAAuD,kBAAAvD,EAAAuB,IAAA,gBAAAvB,EAAAkD,QAAAlD,EAAAwD,OAAA,SAAAxD,EAAAuB,KAAArB,EAAAyB,EAAA,IAAAK,EAAAX,EAAAzB,EAAAE,EAAAE,GAAA,cAAAgC,EAAAV,KAAA,IAAApB,EAAAF,EAAAiD,KAAArB,EAAAF,EAAAM,EAAAT,MAAAM,EAAA,gBAAAzB,MAAA4B,EAAAT,IAAA0B,KAAAjD,EAAAiD,KAAA,WAAAjB,EAAAV,OAAApB,EAAA0B,EAAA5B,EAAAkD,OAAA,QAAAlD,EAAAuB,IAAAS,EAAAT,IAAA,YAAA6B,EAAAxD,EAAAE,GAAA,IAAAE,EAAAF,EAAAoD,OAAAhD,EAAAN,EAAAY,SAAAR,GAAA,GAAAE,IAAAL,EAAA,OAAAC,EAAAqD,SAAA,eAAAnD,GAAAJ,EAAAY,SAAAiD,SAAA3D,EAAAoD,OAAA,SAAApD,EAAAyB,IAAA1B,EAAAuD,EAAAxD,EAAAE,GAAA,UAAAA,EAAAoD,SAAA,WAAAlD,IAAAF,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA1D,EAAA,aAAA6B,EAAA,IAAAxB,EAAAgB,EAAAnB,EAAAN,EAAAY,SAAAV,EAAAyB,KAAA,aAAAlB,EAAAiB,KAAA,OAAAxB,EAAAoD,OAAA,QAAApD,EAAAyB,IAAAlB,EAAAkB,IAAAzB,EAAAqD,SAAA,KAAAtB,EAAA,IAAAtB,EAAAF,EAAAkB,IAAA,OAAAhB,EAAAA,EAAA0C,MAAAnD,EAAAF,EAAA+D,YAAApD,EAAAH,MAAAN,EAAA8D,KAAAhE,EAAAiE,QAAA,WAAA/D,EAAAoD,SAAApD,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,GAAAC,EAAAqD,SAAA,KAAAtB,GAAAtB,GAAAT,EAAAoD,OAAA,QAAApD,EAAAyB,IAAA,IAAAmC,UAAA,oCAAA5D,EAAAqD,SAAA,KAAAtB,EAAA,UAAAiC,EAAAjE,GAAA,IAAAD,EAAA,CAAAmE,OAAAlE,EAAA,SAAAA,IAAAD,EAAAoE,SAAAnE,EAAA,SAAAA,IAAAD,EAAAqE,WAAApE,EAAA,GAAAD,EAAAsE,SAAArE,EAAA,SAAAsE,WAAAC,KAAAxE,EAAA,UAAAyE,EAAAxE,GAAA,IAAAD,EAAAC,EAAAyE,YAAA,GAAA1E,EAAA0B,KAAA,gBAAA1B,EAAA2B,IAAA1B,EAAAyE,WAAA1E,CAAA,UAAAuB,EAAAtB,GAAA,KAAAsE,WAAA,EAAAJ,OAAA,SAAAlE,EAAA0C,QAAAuB,EAAA,WAAAS,OAAA,YAAAnC,EAAAxC,GAAA,GAAAA,GAAA,KAAAA,EAAA,KAAAE,EAAAF,EAAAW,GAAA,GAAAT,EAAA,OAAAA,EAAA0B,KAAA5B,GAAA,sBAAAA,EAAAgE,KAAA,OAAAhE,EAAA,IAAA4E,MAAA5E,EAAA6E,QAAA,KAAAvE,GAAA,EAAAG,EAAA,SAAAuD,IAAA,OAAA1D,EAAAN,EAAA6E,QAAA,GAAAzE,EAAAwB,KAAA5B,EAAAM,GAAA,OAAA0D,EAAAxD,MAAAR,EAAAM,GAAA0D,EAAAX,MAAA,EAAAW,EAAA,OAAAA,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,SAAAvD,EAAAuD,KAAAvD,CAAA,YAAAqD,UAAAf,EAAA/C,GAAA,2BAAAkC,EAAA/B,UAAAgC,EAAA7B,EAAAmC,EAAA,eAAAjC,MAAA2B,EAAAjB,cAAA,IAAAZ,EAAA6B,EAAA,eAAA3B,MAAA0B,EAAAhB,cAAA,IAAAgB,EAAA4C,YAAApF,EAAAyC,EAAApB,EAAA,qBAAAf,EAAA+E,oBAAA,SAAA9E,GAAA,IAAAD,EAAA,mBAAAC,GAAAA,EAAA+E,YAAA,QAAAhF,IAAAA,IAAAkC,GAAA,uBAAAlC,EAAA8E,aAAA9E,EAAAiF,MAAA,EAAAjF,EAAAkF,KAAA,SAAAjF,GAAA,OAAAL,OAAAuF,eAAAvF,OAAAuF,eAAAlF,EAAAkC,IAAAlC,EAAAmF,UAAAjD,EAAAzC,EAAAO,EAAAc,EAAA,sBAAAd,EAAAE,UAAAP,OAAA0B,OAAAmB,GAAAxC,CAAA,EAAAD,EAAAqF,MAAA,SAAApF,GAAA,OAAAgD,QAAAhD,EAAA,EAAAyC,EAAAG,EAAA1C,WAAAT,EAAAmD,EAAA1C,UAAAU,EAAA,yBAAAb,EAAA6C,cAAAA,EAAA7C,EAAAsF,MAAA,SAAArF,EAAAC,EAAAE,EAAAE,EAAAG,QAAA,IAAAA,IAAAA,EAAA8E,SAAA,IAAA5E,EAAA,IAAAkC,EAAAzB,EAAAnB,EAAAC,EAAAE,EAAAE,GAAAG,GAAA,OAAAT,EAAA+E,oBAAA7E,GAAAS,EAAAA,EAAAqD,OAAAd,KAAA,SAAAjD,GAAA,OAAAA,EAAAoD,KAAApD,EAAAO,MAAAG,EAAAqD,MAAA,IAAAtB,EAAAD,GAAA/C,EAAA+C,EAAA1B,EAAA,aAAArB,EAAA+C,EAAA9B,EAAA,yBAAAjB,EAAA+C,EAAA,mDAAAzC,EAAAwF,KAAA,SAAAvF,GAAA,IAAAD,EAAAJ,OAAAK,GAAAC,EAAA,WAAAE,KAAAJ,EAAAE,EAAAsE,KAAApE,GAAA,OAAAF,EAAAuF,UAAA,SAAAzB,IAAA,KAAA9D,EAAA2E,QAAA,KAAA5E,EAAAC,EAAAwF,MAAA,GAAAzF,KAAAD,EAAA,OAAAgE,EAAAxD,MAAAP,EAAA+D,EAAAX,MAAA,EAAAW,CAAA,QAAAA,EAAAX,MAAA,EAAAW,CAAA,GAAAhE,EAAAwC,OAAAA,EAAAjB,EAAApB,UAAA,CAAA6E,YAAAzD,EAAAoD,MAAA,SAAA3E,GAAA,QAAA2F,KAAA,OAAA3B,KAAA,OAAAP,KAAA,KAAAC,MAAAzD,EAAA,KAAAoD,MAAA,OAAAE,SAAA,UAAAD,OAAA,YAAA3B,IAAA1B,EAAA,KAAAsE,WAAA5B,QAAA8B,IAAAzE,EAAA,QAAAE,KAAA,WAAAA,EAAA0F,OAAA,IAAAxF,EAAAwB,KAAA,KAAA1B,KAAA0E,OAAA1E,EAAA2F,MAAA,WAAA3F,GAAAD,EAAA,EAAA6F,KAAA,gBAAAzC,MAAA,MAAApD,EAAA,KAAAsE,WAAA,GAAAG,WAAA,aAAAzE,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,YAAAoE,IAAA,EAAApC,kBAAA,SAAA3D,GAAA,QAAAqD,KAAA,MAAArD,EAAA,IAAAE,EAAA,cAAA8F,EAAA5F,EAAAE,GAAA,OAAAK,EAAAe,KAAA,QAAAf,EAAAgB,IAAA3B,EAAAE,EAAA8D,KAAA5D,EAAAE,IAAAJ,EAAAoD,OAAA,OAAApD,EAAAyB,IAAA1B,KAAAK,CAAA,SAAAA,EAAA,KAAAiE,WAAAM,OAAA,EAAAvE,GAAA,IAAAA,EAAA,KAAAG,EAAA,KAAA8D,WAAAjE,GAAAK,EAAAF,EAAAiE,WAAA,YAAAjE,EAAA0D,OAAA,OAAA6B,EAAA,UAAAvF,EAAA0D,QAAA,KAAAwB,KAAA,KAAA9E,EAAAT,EAAAwB,KAAAnB,EAAA,YAAAM,EAAAX,EAAAwB,KAAAnB,EAAA,iBAAAI,GAAAE,EAAA,SAAA4E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,WAAAuB,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,SAAAxD,GAAA,QAAA8E,KAAAlF,EAAA2D,SAAA,OAAA4B,EAAAvF,EAAA2D,UAAA,YAAArD,EAAA,MAAAqC,MAAA,kDAAAuC,KAAAlF,EAAA4D,WAAA,OAAA2B,EAAAvF,EAAA4D,WAAA,KAAAT,OAAA,SAAA3D,EAAAD,GAAA,QAAAE,EAAA,KAAAqE,WAAAM,OAAA,EAAA3E,GAAA,IAAAA,EAAA,KAAAI,EAAA,KAAAiE,WAAArE,GAAA,GAAAI,EAAA6D,QAAA,KAAAwB,MAAAvF,EAAAwB,KAAAtB,EAAA,oBAAAqF,KAAArF,EAAA+D,WAAA,KAAA5D,EAAAH,EAAA,OAAAG,IAAA,UAAAR,GAAA,aAAAA,IAAAQ,EAAA0D,QAAAnE,GAAAA,GAAAS,EAAA4D,aAAA5D,EAAA,UAAAE,EAAAF,EAAAA,EAAAiE,WAAA,UAAA/D,EAAAe,KAAAzB,EAAAU,EAAAgB,IAAA3B,EAAAS,GAAA,KAAA6C,OAAA,YAAAU,KAAAvD,EAAA4D,WAAApC,GAAA,KAAAgE,SAAAtF,EAAA,EAAAsF,SAAA,SAAAhG,EAAAD,GAAA,aAAAC,EAAAyB,KAAA,MAAAzB,EAAA0B,IAAA,gBAAA1B,EAAAyB,MAAA,aAAAzB,EAAAyB,KAAA,KAAAsC,KAAA/D,EAAA0B,IAAA,WAAA1B,EAAAyB,MAAA,KAAAqE,KAAA,KAAApE,IAAA1B,EAAA0B,IAAA,KAAA2B,OAAA,cAAAU,KAAA,kBAAA/D,EAAAyB,MAAA1B,IAAA,KAAAgE,KAAAhE,GAAAiC,CAAA,EAAAiE,OAAA,SAAAjG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAmE,aAAApE,EAAA,YAAAgG,SAAA/F,EAAAwE,WAAAxE,EAAAoE,UAAAG,EAAAvE,GAAA+B,CAAA,GAAAkE,MAAA,SAAAlG,GAAA,QAAAD,EAAA,KAAAuE,WAAAM,OAAA,EAAA7E,GAAA,IAAAA,EAAA,KAAAE,EAAA,KAAAqE,WAAAvE,GAAA,GAAAE,EAAAiE,SAAAlE,EAAA,KAAAG,EAAAF,EAAAwE,WAAA,aAAAtE,EAAAsB,KAAA,KAAApB,EAAAF,EAAAuB,IAAA8C,EAAAvE,EAAA,QAAAI,CAAA,QAAA8C,MAAA,0BAAAgD,cAAA,SAAApG,EAAAE,EAAAE,GAAA,YAAAmD,SAAA,CAAA3C,SAAA4B,EAAAxC,GAAA+D,WAAA7D,EAAA+D,QAAA7D,GAAA,cAAAkD,SAAA,KAAA3B,IAAA1B,GAAAgC,CAAA,GAAAjC,CAAA,UAAAqG,EAAAjG,EAAAH,EAAAD,EAAAE,EAAAI,EAAAK,EAAAE,GAAA,QAAAJ,EAAAL,EAAAO,GAAAE,GAAAE,EAAAN,EAAAD,KAAA,OAAAJ,GAAA,YAAAJ,EAAAI,EAAA,CAAAK,EAAA4C,KAAApD,EAAAc,GAAAwE,QAAAvC,QAAAjC,GAAAmC,KAAAhD,EAAAI,EAAA,UAAAgG,EAAAlG,GAAA,sBAAAH,EAAA,KAAAD,EAAAuG,UAAA,WAAAhB,QAAA,SAAArF,EAAAI,GAAA,IAAAK,EAAAP,EAAAoG,MAAAvG,EAAAD,GAAA,SAAAyG,EAAArG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,OAAAtG,EAAA,UAAAsG,EAAAtG,GAAAiG,EAAA1F,EAAAT,EAAAI,EAAAmG,EAAAC,EAAA,QAAAtG,EAAA,CAAAqG,OAAA,eAAAE,EAAA3G,EAAAE,GAAA,QAAAD,EAAA,EAAAA,EAAAC,EAAA2E,OAAA5E,IAAA,KAAAK,EAAAJ,EAAAD,GAAAK,EAAAW,WAAAX,EAAAW,aAAA,EAAAX,EAAAY,cAAA,YAAAZ,IAAAA,EAAAa,UAAA,GAAAvB,OAAAW,eAAAP,EAAA4G,EAAAtG,EAAAuG,KAAAvG,EAAA,WAAAsG,EAAA3G,GAAA,IAAAQ,EAAA,SAAAR,GAAA,aAAA8C,EAAA9C,KAAAA,EAAA,OAAAA,EAAA,IAAAD,EAAAC,EAAAS,OAAAoG,aAAA,YAAA9G,EAAA,KAAAS,EAAAT,EAAA4B,KAAA3B,EAAAC,UAAA,aAAA6C,EAAAtC,GAAA,OAAAA,EAAA,UAAAqD,UAAA,uDAAAiD,OAAA9G,EAAA,CAAA+G,CAAA/G,GAAA,gBAAA8C,EAAAtC,GAAAA,EAAAA,EAAA,GADA,IAAM6M,EAAyB,oBAAXC,OAAyBrG,EAAQ,KAAU,KACzDsG,EAA0B,oBAAXD,OAAyBrG,EAAQ,KAAW,KAE3DC,EAAQ,WAcT,OAhBLnH,EAII,SAAAmH,EAAY7D,EAAQ6E,EAAQgC,EAAQC,IAJxC,SAAAzJ,EAAAP,GAAA,KAAAO,aAAAP,GAAA,UAAA0D,UAAA,qCAIyDyD,CAAA,KAAAJ,GACjDrH,KAAK2N,OAAS,CACVC,QAAS,CACL,eAAgB,qBAGxB5N,KAAKsK,gBAAkBA,EACvBtK,KAAKqI,OAASA,EACdrI,KAAK6N,KAAO,CACRrK,OAAQA,GAAU,GAClB6G,OAAQA,EAEhB,EAhBJjK,EAgBK,EAAA2G,IAAA,aAAArG,MAED,WAGI,MAAO,YAFMV,KAAKqI,QAAU,iBACJyF,QAAQ,WAAY,IAAIA,QAAQ,MAAO,IAC9B,SACrC,GAAC,CAAA/G,IAAA,SAAArG,MAED,SAAOyI,GAKH,OAJiB4E,KAAKC,UAAU,CAC5BxK,OAAQ2F,EAAK3F,QAAU,GACvB6G,OAAQlB,EAAKkB,QAGrB,GAEA,CAAAtD,IAAA,OAAArG,OAAAuN,EAAAzH,EAAAvG,IAAAmF,KAOA,SAAAuF,EAAW/C,GAAO,IAAAsG,EAAAL,EAAAD,EAAAO,EAAAC,EAAAC,EAAAC,EAAA9G,EAAAwB,EAAA,YAAA/I,IAAAqB,KAAA,SAAAsJ,GAAA,cAAAA,EAAA/E,KAAA+E,EAAA1G,MAAA,OAGqB,GAF7BgK,EAAMlO,KAAKuO,aACXV,EAAO7N,KAAKwO,OAAOxO,KAAK6N,MACxBD,EAAU5N,KAAK2N,OAAOC,QAEN,oBAAXH,SAA0BA,OAAOgB,MAAK,CAAA7D,EAAA1G,KAAA,QAW3C,OARIkK,EAAeK,MAAMP,EAAK,CAC5B1K,OAAQ,OACRoK,QAASA,EACTC,KAAMA,IAGJQ,EAAiB,IAAI5I,QAAQ,SAACiJ,EAAGC,GACnCR,EAAeS,WAAW,kBAAMD,EAAO,IAAIrL,MAAM,qBAAqB,EAAY,IAAVsE,EAC5E,GAAEgD,EAAA9G,OAAA,SAEK2B,QAAQoJ,KAAK,CAACT,EAAcC,IAC9BjL,KAAI,eAAAsH,EAAAlE,EAAAvG,IAAAmF,KAAC,SAAA0D,EAAMI,GAAQ,IAAAC,EAAA,OAAAlJ,IAAAqB,KAAA,SAAA2H,GAAA,cAAAA,EAAApD,KAAAoD,EAAA/E,MAAA,OACW,OAA3B4K,aAAaX,GAAclF,EAAA/E,KAAA,EACRgF,EAAS6F,OAAM,OAIjC,OAJK5F,EAAIF,EAAAtF,KACVuF,EAASC,KAAOA,EACZH,EAAKsB,kBAAoBnB,EAAKS,OAC9BZ,EAAKsB,gBAAgBnB,EAAKC,QAC7BH,EAAAnF,OAAA,SACMoF,GAAQ,wBAAAD,EAAAjD,OAAA,EAAA8C,EAAA,IAClB,gBAAAS,GAAA,OAAAmB,EAAAhE,MAAA,KAAAD,UAAA,EARI,IASJJ,MAAM,SAAAuD,GACH,OAAOnE,QAAQkJ,OAAO/E,EAC1B,IAAE,OAWL,OAPK0E,EAAS,IAAIU,IAAId,GACjB1G,EAAU,CACZyH,SAAUX,EAAOW,SACjB/G,KAAMoG,EAAOY,SACb1L,OAAQ,OACRoK,QAASA,EACThG,QAAmB,IAAVA,GACZgD,EAAA9G,OAAA,SAEM,IAAI2B,QAAQ,SAACvC,EAASyL,GACzB,IAAMQ,GAA2B,WAApBb,EAAOc,SAAwB1B,EAAQF,GAAM6B,QAAQ7H,EAAS,SAAA8H,GACvE,IAAInG,EAAO,GACXmG,EAAIC,GAAG,OAAQ,SAAAC,GAAK,OAAIrG,GAAQqG,CAAK,GACrCF,EAAIC,GAAG,MAAO,WACV,IACI,IAAME,EAAa1B,KAAK2B,MAAMvG,GAC9BmG,EAAInG,KAAOsG,EACPzG,EAAKsB,kBAAoBmF,EAAW7F,OACpCZ,EAAKsB,gBAAgBmF,EAAWrG,QAEpClG,EAAQoM,EACZ,CAAE,MAAO1F,GACL+E,EAAO/E,EACX,CACJ,EACJ,GAEAuF,EAAII,GAAG,QAASZ,GAChBQ,EAAII,GAAG,UAAW,WACdJ,EAAIQ,UACJhB,EAAO,IAAIrL,MAAM,qBACrB,GAEA6L,EAAIS,MAAM/B,GACVsB,EAAIU,KACR,IAAE,yBAAAjF,EAAA5E,OAAA,EAAA2E,EAAA,SAET,SAvESrB,GAAA,OAAA2E,EAAAvH,MAAC,KAADD,UAAA,KAvCdrG,GAAAyG,EAAA3G,EAAAG,UAAAD,GAAAN,OAAAW,eAAAP,EAAA,aAAAmB,UAAA,IAAAnB,EAAA,IAAAA,EAAAE,EAgCI6N,CAOU,CArCA,GA+GdvO,EAAQ,EAAU2H,C,+qBClHlB,IAAMyI,EAAmB1I,EAAAA,KAAAA,EAMnBD,EAA2B,WAW5B,O,EAVD,SAAAA,K,4FAAaM,CAAA,KAAAN,GACTnH,KAAK+P,gBAAkB,wBACvB/P,KAAKgQ,WAAa,mBAEU,oBAAjBC,cAAiD,OAAjBA,cAAyD,mBAAzBA,aAAaC,QAEpFlQ,KAAKiQ,aAAe,IAAIH,EAExB9P,KAAKiQ,aAAeA,YAE5B,E,EAAC,EAAAlJ,IAAA,MAAArG,MAED,WACI,IAAIsL,EAAsBhM,KAAKiQ,aAAaC,QAAQlQ,KAAK+P,iBACrDI,EAAsBnQ,KAAKiQ,aAAaC,QAAQlQ,KAAKgQ,aAAe,gBACpEI,GAAsB,EAE1B,GAAIpE,GAAqBmE,EACrB,IACIC,EAAkB,CACdpI,YAAa+F,KAAK2B,MAAM1D,GACxB3D,OAAQ8H,EAEhB,CAAE,MAAOjQ,GAGL,OAFAmQ,QAAQC,IAAI,QAASpQ,IAEd,CACX,CAEJ,OAAOkQ,CACX,GAAC,CAAArJ,IAAA,MAAArG,MAED,SAAIsH,EAAaK,GACVL,GACChI,KAAKiQ,aAAaM,QAAQvQ,KAAK+P,gBAAiBhC,KAAKC,UAAUhG,IAEhEK,GACCrI,KAAKiQ,aAAaM,QAAQvQ,KAAKgQ,WAAY3H,EAEnD,GAAC,CAAAtB,IAAA,QAAArG,MAED,WACIV,KAAKiQ,aAAaO,WAAWxQ,KAAK+P,iBAClC/P,KAAKiQ,aAAaO,WAAWxQ,KAAKgQ,WACtC,I,gFAAC,CA7C4B,GAgDjCtQ,EAAQ,EAAUyH,C,6qBCtDlB,IAuBM2I,EAAgB,WAGjB,O,EAFD,SAAAA,K,4FAAarI,CAAA,KAAAqI,GACT9P,KAAKyQ,OAAS,CAAC,CACnB,G,EAAC,EAAA1J,IAAA,UAAArG,MAED,SAAQqG,GACJ,OAAO/G,KAAKyQ,OAAO1J,EACvB,GAAC,CAAAA,IAAA,UAAArG,MAED,SAAQqG,EAAKrG,GACTV,KAAKyQ,OAAO1J,GAAOrG,CACvB,GAAC,CAAAqG,IAAA,aAAArG,MAED,SAAWqG,UACA/G,KAAKyQ,OAAO1J,EACvB,GAAC,CAAAA,IAAA,QAAArG,MAED,WACIV,KAAKyQ,OAAS,CAAC,CACnB,M,6EAAC,CAnBiB,GAsBtB/Q,EAAQ,EAAUoQ,C,mBCxCPtQ,E,sOAAAA,EAcTQ,UATG,KAFU,EAAF,WACP,OAAQR,EAAgB,WAYP,YAAL,oBAANiO,OAAM,YAAAxK,EAANwK,UACRrG,EAAAA,KAAAA,UAGyBA,EAAQ,KACjBA,EAAAA,KAAAA,EAhBf,UAFM,OAEN,Y,SCRL,IAAIyC,EAAW/J,OAAOO,UAAUwJ,SAE5B6G,EACgB,oBAAXC,QACiB,mBAAjBA,OAAOC,OACgB,mBAAvBD,OAAOE,aACS,mBAAhBF,OAAOG,KA+DhBnR,EAAOD,QAlBP,SAAqBgB,EAAOqQ,EAAkBhM,GAC5C,GAAqB,iBAAVrE,EACT,MAAM,IAAIsD,UAAU,yCAGtB,OA/CsBgN,EA+CJtQ,EA9C2B,gBAAtCmJ,EAAS/H,KAAKkP,GAAOjL,MAAM,GAAI,GAGxC,SAA0BkL,EAAKC,EAAYnM,GACzCmM,KAAgB,EAEhB,IAAIC,EAAYF,EAAIG,WAAaF,EAEjC,GAAIC,EAAY,EACd,MAAM,IAAIE,WAAW,6BAGvB,QAAe5F,IAAX1G,EACFA,EAASoM,OAIT,IAFApM,KAAY,GAECoM,EACX,MAAM,IAAIE,WAAW,6BAIzB,OAAOX,EACHC,OAAOG,KAAKG,EAAIlL,MAAMmL,EAAYA,EAAanM,IAC/C,IAAI4L,OAAO,IAAIW,WAAWL,EAAIlL,MAAMmL,EAAYA,EAAanM,IACnE,CAsBWwM,CAAgB7Q,EAAOqQ,EAAkBhM,GAG7B,iBAAVrE,EAvBb,SAAqB8Q,EAAQC,GAK3B,GAJwB,iBAAbA,GAAsC,KAAbA,IAClCA,EAAW,SAGRd,OAAOe,WAAWD,GACrB,MAAM,IAAIzN,UAAU,8CAGtB,OAAO0M,EACHC,OAAOG,KAAKU,EAAQC,GACpB,IAAId,OAAOa,EAAQC,EACzB,CAYWE,CAAWjR,EAAOqQ,GAGpBL,EACHC,OAAOG,KAAKpQ,GACZ,IAAIiQ,OAAOjQ,GAzDjB,IAAwBsQ,CA0DxB,C,SC9DA,IAAIY,EAAW,SAAUlS,GACvB,aAEA,IAGI+L,EAHAoG,EAAK/R,OAAOO,UACZyR,EAASD,EAAGtR,eACZE,EAAiBX,OAAOW,gBAAkB,SAAUwQ,EAAKlK,EAAKgL,GAAQd,EAAIlK,GAAOgL,EAAKrR,KAAO,EAE7FsR,EAA4B,mBAAXpR,OAAwBA,OAAS,CAAC,EACnDqR,EAAiBD,EAAQlR,UAAY,aACrCoR,EAAsBF,EAAQhR,eAAiB,kBAC/CmR,EAAoBH,EAAQ9Q,aAAe,gBAE/C,SAAStB,EAAOqR,EAAKlK,EAAKrG,GAOxB,OANAZ,OAAOW,eAAewQ,EAAKlK,EAAK,CAC9BrG,MAAOA,EACPS,YAAY,EACZC,cAAc,EACdC,UAAU,IAEL4P,EAAIlK,EACb,CACA,IAEEnH,EAAO,CAAC,EAAG,GACb,CAAE,MAAOwS,GACPxS,EAAS,SAASqR,EAAKlK,EAAKrG,GAC1B,OAAOuQ,EAAIlK,GAAOrG,CACpB,CACF,CAEA,SAASY,EAAK+Q,EAASC,EAASvS,EAAMwS,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQjS,qBAAqBkB,EAAY+Q,EAAU/Q,EAC/EkR,EAAY3S,OAAO0B,OAAOgR,EAAenS,WACzCqS,EAAU,IAAIjR,EAAQ8Q,GAAe,IAMzC,OAFA9R,EAAegS,EAAW,UAAW,CAAE/R,MAAOgB,EAAiB2Q,EAAStS,EAAM2S,KAEvED,CACT,CAaA,SAAS9Q,EAASgR,EAAI1B,EAAKpP,GACzB,IACE,MAAO,CAAED,KAAM,SAAUC,IAAK8Q,EAAG7Q,KAAKmP,EAAKpP,GAC7C,CAAE,MAAOuQ,GACP,MAAO,CAAExQ,KAAM,QAASC,IAAKuQ,EAC/B,CACF,CAlBA1S,EAAQ4B,KAAOA,EAoBf,IAAIsR,EAAyB,iBACzBC,EAAyB,iBACzBC,EAAoB,YACpBC,EAAoB,YAIpBC,EAAmB,CAAC,EAMxB,SAASzR,IAAa,CACtB,SAASa,IAAqB,CAC9B,SAASC,IAA8B,CAIvC,IAAI4Q,EAAoB,CAAC,EACzBrT,EAAOqT,EAAmBhB,EAAgB,WACxC,OAAOjS,IACT,GAEA,IAAIkT,EAAWpT,OAAO0C,eAClB2Q,EAA0BD,GAAYA,EAASA,EAASxQ,EAAO,MAC/DyQ,GACAA,IAA4BtB,GAC5BC,EAAOhQ,KAAKqR,EAAyBlB,KAGvCgB,EAAoBE,GAGtB,IAAIC,EAAK/Q,EAA2BhC,UAClCkB,EAAUlB,UAAYP,OAAO0B,OAAOyR,GAgBtC,SAASrQ,EAAsBvC,GAC7B,CAAC,OAAQ,QAAS,UAAUwC,QAAQ,SAASW,GAC3C5D,EAAOS,EAAWmD,EAAQ,SAAS3B,GACjC,OAAO7B,KAAK8C,QAAQU,EAAQ3B,EAC9B,EACF,EACF,CA+BA,SAASkB,EAAc0P,EAAWY,GAChC,SAASrQ,EAAOQ,EAAQ3B,EAAKqB,EAASyL,GACpC,IAAI2E,EAAS3R,EAAS8Q,EAAUjP,GAASiP,EAAW5Q,GACpD,GAAoB,UAAhByR,EAAO1R,KAEJ,CACL,IAAIwH,EAASkK,EAAOzR,IAChBnB,EAAQ0I,EAAO1I,MACnB,OAAIA,GACiB,iBAAVA,GACPoR,EAAOhQ,KAAKpB,EAAO,WACd2S,EAAYnQ,QAAQxC,EAAMyC,SAASC,KAAK,SAAS1C,GACtDsC,EAAO,OAAQtC,EAAOwC,EAASyL,EACjC,EAAG,SAASyD,GACVpP,EAAO,QAASoP,EAAKlP,EAASyL,EAChC,GAGK0E,EAAYnQ,QAAQxC,GAAO0C,KAAK,SAASmQ,GAI9CnK,EAAO1I,MAAQ6S,EACfrQ,EAAQkG,EACV,EAAG,SAASQ,GAGV,OAAO5G,EAAO,QAAS4G,EAAO1G,EAASyL,EACzC,EACF,CAzBEA,EAAO2E,EAAOzR,IA0BlB,CAEA,IAAI2R,EAgCJ/S,EAAeT,KAAM,UAAW,CAAEU,MA9BlC,SAAiB8C,EAAQ3B,GACvB,SAASwB,IACP,OAAO,IAAIgQ,EAAY,SAASnQ,EAASyL,GACvC3L,EAAOQ,EAAQ3B,EAAKqB,EAASyL,EAC/B,EACF,CAEA,OAAO6E,EAaLA,EAAkBA,EAAgBpQ,KAChCC,EAGAA,GACEA,GACR,GAKF,CA0BA,SAAS3B,EAAiB2Q,EAAStS,EAAM2S,GACvC,IAAIe,EAAQb,EAEZ,OAAO,SAAgBpP,EAAQ3B,GAC7B,GAAI4R,IAAUX,EACZ,MAAM,IAAIxP,MAAM,gCAGlB,GAAImQ,IAAUV,EAAmB,CAC/B,GAAe,UAAXvP,EACF,MAAM3B,EAKR,OAAO6R,GACT,CAKA,IAHAhB,EAAQlP,OAASA,EACjBkP,EAAQ7Q,IAAMA,IAED,CACX,IAAI4B,EAAWiP,EAAQjP,SACvB,GAAIA,EAAU,CACZ,IAAIkQ,EAAiBjQ,EAAoBD,EAAUiP,GACnD,GAAIiB,EAAgB,CAClB,GAAIA,IAAmBX,EAAkB,SACzC,OAAOW,CACT,CACF,CAEA,GAAuB,SAAnBjB,EAAQlP,OAGVkP,EAAQ/O,KAAO+O,EAAQ9O,MAAQ8O,EAAQ7Q,SAElC,GAAuB,UAAnB6Q,EAAQlP,OAAoB,CACrC,GAAIiQ,IAAUb,EAEZ,MADAa,EAAQV,EACFL,EAAQ7Q,IAGhB6Q,EAAQ7O,kBAAkB6O,EAAQ7Q,IAEpC,KAA8B,WAAnB6Q,EAAQlP,QACjBkP,EAAQ5O,OAAO,SAAU4O,EAAQ7Q,KAGnC4R,EAAQX,EAER,IAAIQ,EAAS3R,EAAS0Q,EAAStS,EAAM2S,GACrC,GAAoB,WAAhBY,EAAO1R,KAAmB,CAO5B,GAJA6R,EAAQf,EAAQnP,KACZwP,EACAF,EAEAS,EAAOzR,MAAQmR,EACjB,SAGF,MAAO,CACLtS,MAAO4S,EAAOzR,IACd0B,KAAMmP,EAAQnP,KAGlB,CAA2B,UAAhB+P,EAAO1R,OAChB6R,EAAQV,EAGRL,EAAQlP,OAAS,QACjBkP,EAAQ7Q,IAAMyR,EAAOzR,IAEzB,CACF,CACF,CAMA,SAAS6B,EAAoBD,EAAUiP,GACrC,IAAIkB,EAAalB,EAAQlP,OACrBA,EAASC,EAAS3C,SAAS8S,GAC/B,GAAIpQ,IAAWiI,EAOb,OAHAiH,EAAQjP,SAAW,KAGA,UAAfmQ,GAA0BnQ,EAAS3C,SAAiB,SAGtD4R,EAAQlP,OAAS,SACjBkP,EAAQ7Q,IAAM4J,EACd/H,EAAoBD,EAAUiP,GAEP,UAAnBA,EAAQlP,SAMK,WAAfoQ,IACFlB,EAAQlP,OAAS,QACjBkP,EAAQ7Q,IAAM,IAAImC,UAChB,oCAAsC4P,EAAa,aAN5CZ,EAYb,IAAIM,EAAS3R,EAAS6B,EAAQC,EAAS3C,SAAU4R,EAAQ7Q,KAEzD,GAAoB,UAAhByR,EAAO1R,KAIT,OAHA8Q,EAAQlP,OAAS,QACjBkP,EAAQ7Q,IAAMyR,EAAOzR,IACrB6Q,EAAQjP,SAAW,KACZuP,EAGT,IAAIa,EAAOP,EAAOzR,IAElB,OAAMgS,EAOFA,EAAKtQ,MAGPmP,EAAQjP,EAASQ,YAAc4P,EAAKnT,MAGpCgS,EAAQxO,KAAOT,EAASU,QAQD,WAAnBuO,EAAQlP,SACVkP,EAAQlP,OAAS,OACjBkP,EAAQ7Q,IAAM4J,GAUlBiH,EAAQjP,SAAW,KACZuP,GANEa,GA3BPnB,EAAQlP,OAAS,QACjBkP,EAAQ7Q,IAAM,IAAImC,UAAU,oCAC5B0O,EAAQjP,SAAW,KACZuP,EA+BX,CAqBA,SAAS5O,EAAa0P,GACpB,IAAIC,EAAQ,CAAE1P,OAAQyP,EAAK,IAEvB,KAAKA,IACPC,EAAMzP,SAAWwP,EAAK,IAGpB,KAAKA,IACPC,EAAMxP,WAAauP,EAAK,GACxBC,EAAMvP,SAAWsP,EAAK,IAGxB9T,KAAKyE,WAAWC,KAAKqP,EACvB,CAEA,SAASpP,EAAcoP,GACrB,IAAIT,EAASS,EAAMnP,YAAc,CAAC,EAClC0O,EAAO1R,KAAO,gBACP0R,EAAOzR,IACdkS,EAAMnP,WAAa0O,CACrB,CAEA,SAAS7R,EAAQ8Q,GAIfvS,KAAKyE,WAAa,CAAC,CAAEJ,OAAQ,SAC7BkO,EAAY1P,QAAQuB,EAAcpE,MAClCA,KAAK6E,OAAM,EACb,CA8BA,SAASnC,EAAOsR,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAS/B,GAC9B,GAAIgC,EACF,OAAOA,EAAenS,KAAKkS,GAG7B,GAA6B,mBAAlBA,EAAS9P,KAClB,OAAO8P,EAGT,IAAKlP,MAAMkP,EAASjP,QAAS,CAC3B,IAAIpE,GAAK,EAAGuD,EAAO,SAASA,IAC1B,OAASvD,EAAIqT,EAASjP,QACpB,GAAI+M,EAAOhQ,KAAKkS,EAAUrT,GAGxB,OAFAuD,EAAKxD,MAAQsT,EAASrT,GACtBuD,EAAKX,MAAO,EACLW,EAOX,OAHAA,EAAKxD,MAAQ+K,EACbvH,EAAKX,MAAO,EAELW,CACT,EAEA,OAAOA,EAAKA,KAAOA,CACrB,CACF,CAGA,MAAO,CAAEA,KAAMwP,EACjB,CAGA,SAASA,IACP,MAAO,CAAEhT,MAAO+K,EAAWlI,MAAM,EACnC,CA8MA,OAnnBAnB,EAAkB/B,UAAYgC,EAC9B5B,EAAe2S,EAAI,cAAe,CAAE1S,MAAO2B,EAA4BjB,cAAc,IACrFX,EACE4B,EACA,cACA,CAAE3B,MAAO0B,EAAmBhB,cAAc,IAE5CgB,EAAkB4C,YAAcpF,EAC9ByC,EACA8P,EACA,qBAaFzS,EAAQuF,oBAAsB,SAASiP,GACrC,IAAIC,EAAyB,mBAAXD,GAAyBA,EAAOhP,YAClD,QAAOiP,IACHA,IAAS/R,GAG2B,uBAAnC+R,EAAKnP,aAAemP,EAAKhP,MAEhC,EAEAzF,EAAQ0F,KAAO,SAAS8O,GAQtB,OAPIpU,OAAOuF,eACTvF,OAAOuF,eAAe6O,EAAQ7R,IAE9B6R,EAAO5O,UAAYjD,EACnBzC,EAAOsU,EAAQ/B,EAAmB,sBAEpC+B,EAAO7T,UAAYP,OAAO0B,OAAO4R,GAC1Bc,CACT,EAMAxU,EAAQ6F,MAAQ,SAAS1D,GACvB,MAAO,CAAEsB,QAAStB,EACpB,EAqEAe,EAAsBG,EAAc1C,WACpCT,EAAOmD,EAAc1C,UAAW6R,EAAqB,WACnD,OAAOlS,IACT,GACAN,EAAQqD,cAAgBA,EAKxBrD,EAAQ8F,MAAQ,SAAS6M,EAASC,EAASvS,EAAMwS,EAAac,QACnC,IAArBA,IAAwBA,EAAc5N,SAE1C,IAAI2O,EAAO,IAAIrR,EACbzB,EAAK+Q,EAASC,EAASvS,EAAMwS,GAC7Bc,GAGF,OAAO3T,EAAQuF,oBAAoBqN,GAC/B8B,EACAA,EAAKlQ,OAAOd,KAAK,SAASgG,GACxB,OAAOA,EAAO7F,KAAO6F,EAAO1I,MAAQ0T,EAAKlQ,MAC3C,EACN,EAsKAtB,EAAsBwQ,GAEtBxT,EAAOwT,EAAIjB,EAAmB,aAO9BvS,EAAOwT,EAAInB,EAAgB,WACzB,OAAOjS,IACT,GAEAJ,EAAOwT,EAAI,WAAY,WACrB,MAAO,oBACT,GAiCA1T,EAAQgG,KAAO,SAAS2O,GACtB,IAAIC,EAASxU,OAAOuU,GAChB3O,EAAO,GACX,IAAK,IAAIqB,KAAOuN,EACd5O,EAAKhB,KAAKqC,GAMZ,OAJArB,EAAKC,UAIE,SAASzB,IACd,KAAOwB,EAAKX,QAAQ,CAClB,IAAIgC,EAAMrB,EAAKE,MACf,GAAImB,KAAOuN,EAGT,OAFApQ,EAAKxD,MAAQqG,EACb7C,EAAKX,MAAO,EACLW,CAEX,CAMA,OADAA,EAAKX,MAAO,EACLW,CACT,CACF,EAoCAxE,EAAQgD,OAASA,EAMjBjB,EAAQpB,UAAY,CAClB6E,YAAazD,EAEboD,MAAO,SAAS0P,GAcd,GAbAvU,KAAK6F,KAAO,EACZ7F,KAAKkE,KAAO,EAGZlE,KAAK2D,KAAO3D,KAAK4D,MAAQ6H,EACzBzL,KAAKuD,MAAO,EACZvD,KAAKyD,SAAW,KAEhBzD,KAAKwD,OAAS,OACdxD,KAAK6B,IAAM4J,EAEXzL,KAAKyE,WAAW5B,QAAQ8B,IAEnB4P,EACH,IAAK,IAAIpP,KAAQnF,KAEQ,MAAnBmF,EAAKW,OAAO,IACZgM,EAAOhQ,KAAK9B,KAAMmF,KACjBL,OAAOK,EAAKY,MAAM,MACrB/F,KAAKmF,GAAQsG,EAIrB,EAEAzF,KAAM,WACJhG,KAAKuD,MAAO,EAEZ,IACIiR,EADYxU,KAAKyE,WAAW,GACLG,WAC3B,GAAwB,UAApB4P,EAAW5S,KACb,MAAM4S,EAAW3S,IAGnB,OAAO7B,KAAKiG,IACd,EAEApC,kBAAmB,SAAS4Q,GAC1B,GAAIzU,KAAKuD,KACP,MAAMkR,EAGR,IAAI/B,EAAU1S,KACd,SAASkG,EAAOwO,EAAKC,GAYnB,OAXArB,EAAO1R,KAAO,QACd0R,EAAOzR,IAAM4S,EACb/B,EAAQxO,KAAOwQ,EAEXC,IAGFjC,EAAQlP,OAAS,OACjBkP,EAAQ7Q,IAAM4J,KAGNkJ,CACZ,CAEA,IAAK,IAAIhU,EAAIX,KAAKyE,WAAWM,OAAS,EAAGpE,GAAK,IAAKA,EAAG,CACpD,IAAIoT,EAAQ/T,KAAKyE,WAAW9D,GACxB2S,EAASS,EAAMnP,WAEnB,GAAqB,SAAjBmP,EAAM1P,OAIR,OAAO6B,EAAO,OAGhB,GAAI6N,EAAM1P,QAAUrE,KAAK6F,KAAM,CAC7B,IAAI+O,EAAW9C,EAAOhQ,KAAKiS,EAAO,YAC9Bc,EAAa/C,EAAOhQ,KAAKiS,EAAO,cAEpC,GAAIa,GAAYC,EAAY,CAC1B,GAAI7U,KAAK6F,KAAOkO,EAAMzP,SACpB,OAAO4B,EAAO6N,EAAMzP,UAAU,GACzB,GAAItE,KAAK6F,KAAOkO,EAAMxP,WAC3B,OAAO2B,EAAO6N,EAAMxP,WAGxB,MAAO,GAAIqQ,GACT,GAAI5U,KAAK6F,KAAOkO,EAAMzP,SACpB,OAAO4B,EAAO6N,EAAMzP,UAAU,OAG3B,KAAIuQ,EAMT,MAAM,IAAIvR,MAAM,0CALhB,GAAItD,KAAK6F,KAAOkO,EAAMxP,WACpB,OAAO2B,EAAO6N,EAAMxP,WAKxB,CACF,CACF,CACF,EAEAT,OAAQ,SAASlC,EAAMC,GACrB,IAAK,IAAIlB,EAAIX,KAAKyE,WAAWM,OAAS,EAAGpE,GAAK,IAAKA,EAAG,CACpD,IAAIoT,EAAQ/T,KAAKyE,WAAW9D,GAC5B,GAAIoT,EAAM1P,QAAUrE,KAAK6F,MACrBiM,EAAOhQ,KAAKiS,EAAO,eACnB/T,KAAK6F,KAAOkO,EAAMxP,WAAY,CAChC,IAAIuQ,EAAef,EACnB,KACF,CACF,CAEIe,IACU,UAATlT,GACS,aAATA,IACDkT,EAAazQ,QAAUxC,GACvBA,GAAOiT,EAAavQ,aAGtBuQ,EAAe,MAGjB,IAAIxB,EAASwB,EAAeA,EAAalQ,WAAa,CAAC,EAIvD,OAHA0O,EAAO1R,KAAOA,EACd0R,EAAOzR,IAAMA,EAETiT,GACF9U,KAAKwD,OAAS,OACdxD,KAAKkE,KAAO4Q,EAAavQ,WAClByO,GAGFhT,KAAKmG,SAASmN,EACvB,EAEAnN,SAAU,SAASmN,EAAQ9O,GACzB,GAAoB,UAAhB8O,EAAO1R,KACT,MAAM0R,EAAOzR,IAcf,MAXoB,UAAhByR,EAAO1R,MACS,aAAhB0R,EAAO1R,KACT5B,KAAKkE,KAAOoP,EAAOzR,IACM,WAAhByR,EAAO1R,MAChB5B,KAAKiG,KAAOjG,KAAK6B,IAAMyR,EAAOzR,IAC9B7B,KAAKwD,OAAS,SACdxD,KAAKkE,KAAO,OACa,WAAhBoP,EAAO1R,MAAqB4C,IACrCxE,KAAKkE,KAAOM,GAGPwO,CACT,EAEA5M,OAAQ,SAAS7B,GACf,IAAK,IAAI5D,EAAIX,KAAKyE,WAAWM,OAAS,EAAGpE,GAAK,IAAKA,EAAG,CACpD,IAAIoT,EAAQ/T,KAAKyE,WAAW9D,GAC5B,GAAIoT,EAAMxP,aAAeA,EAGvB,OAFAvE,KAAKmG,SAAS4N,EAAMnP,WAAYmP,EAAMvP,UACtCG,EAAcoP,GACPf,CAEX,CACF,EAEA,MAAS,SAAS3O,GAChB,IAAK,IAAI1D,EAAIX,KAAKyE,WAAWM,OAAS,EAAGpE,GAAK,IAAKA,EAAG,CACpD,IAAIoT,EAAQ/T,KAAKyE,WAAW9D,GAC5B,GAAIoT,EAAM1P,SAAWA,EAAQ,CAC3B,IAAIiP,EAASS,EAAMnP,WACnB,GAAoB,UAAhB0O,EAAO1R,KAAkB,CAC3B,IAAImT,EAASzB,EAAOzR,IACpB8C,EAAcoP,EAChB,CACA,OAAOgB,CACT,CACF,CAIA,MAAM,IAAIzR,MAAM,wBAClB,EAEAgD,cAAe,SAAS0N,EAAU/P,EAAYE,GAa5C,OAZAnE,KAAKyD,SAAW,CACd3C,SAAU4B,EAAOsR,GACjB/P,WAAYA,EACZE,QAASA,GAGS,SAAhBnE,KAAKwD,SAGPxD,KAAK6B,IAAM4J,GAGNuH,CACT,GAOKtT,CAET,CAvtBc,CA4tBiBC,EAAOD,SAGtC,IACEsV,mBAAqBpD,CACvB,CAAE,MAAOqD,GAWmB,iBAAfC,WACTA,WAAWF,mBAAqBpD,EAEhCuD,SAAS,IAAK,yBAAdA,CAAwCvD,EAE5C,C,wBCxvBA,IAGIwD,EAHAC,EAAoB,yBACpBnN,EAAO,EAAQ,KAGnB,KACEkN,EAAK,EAAQ,MACLE,YAAeF,EAAGG,eAExBH,EAAK,KAET,CAAE,MAAOhD,GAET,CAEA,IAAIoD,EAAa,EAAQ,KAQzB,SAASC,EAAeC,EAAKrG,GAC3B,OAAOqG,EAAItO,QAAQiI,EACrB,CAGA,IAAIsG,GAA0B,EAC1BC,GAAwB,EAGxBC,GAA8B,EAG9BC,EAAc,OAGdC,EAAoB,CAAC,EAGrBC,EAAiB,CAAC,EAGlBC,EAAc,sCAGdC,EAAuB,GACvBC,EAAsB,GAE1B,SAASC,IACP,MAAoB,YAAhBN,GAEgB,SAAhBA,GAEuB,oBAAXrI,QAAsD,mBAAnB4I,kBAAoC5I,OAAOrG,SAAWqG,OAAO9N,QAAU8N,OAAO6I,SAAmC,aAAxB7I,OAAO6I,QAAQ1U,KAC7J,CA0BA,SAAS2U,EAAYC,GACnB,OAAO,SAAS3U,GACd,IAAK,IAAIlB,EAAI,EAAGA,EAAI6V,EAAKzR,OAAQpE,IAAK,CACpC,IAAI8V,EAAMD,EAAK7V,GAAGkB,GAClB,GAAI4U,EACF,OAAOA,CAEX,CACA,OAAO,IACT,CACF,CAEA,IAAIC,EAAeH,EAAYL,GAwC/B,SAASS,EAAmBC,EAAM1I,GAChC,IAAK0I,EAAM,OAAO1I,EAClB,IAAI2I,EAAM3O,EAAK4O,QAAQF,GACnBG,EAAQ,kBAAkBC,KAAKH,GAC/BzH,EAAW2H,EAAQA,EAAM,GAAK,GAC9BE,EAAYJ,EAAI9Q,MAAMqJ,EAASrK,QACnC,OAAIqK,GAAY,UAAU8H,KAAKD,IAE7B7H,GAAY,KACMlH,EAAKhF,QAAQ2T,EAAI9Q,MAAMqJ,EAASrK,QAASmJ,GAAKJ,QAAQ,MAAO,KAE1EsB,EAAWlH,EAAKhF,QAAQ2T,EAAI9Q,MAAMqJ,EAASrK,QAASmJ,EAC7D,CAlDAgI,EAAqBxR,KAAK,SAASwD,GAWjC,GATAA,EAAOA,EAAKiP,OACR,SAASD,KAAKhP,KAEhBA,EAAOA,EAAK4F,QAAQ,oBAAqB,SAASsB,EAAUgI,GAC1D,OAAOA,EACL,GACA,GACJ,IAEElP,KAAQ6N,EACV,OAAOA,EAAkB7N,GAG3B,IAAImP,EAAW,GACf,IACE,GAAKjC,EAQMA,EAAGE,WAAWpN,KAEvBmP,EAAWjC,EAAGG,aAAarN,EAAM,aAV1B,CAEP,IAAIoP,EAAM,IAAIjB,eACdiB,EAAIC,KAAK,MAAOrP,GAAmB,GACnCoP,EAAI7M,KAAK,MACc,IAAnB6M,EAAIE,YAAmC,MAAfF,EAAIxN,SAC9BuN,EAAWC,EAAIG,aAEnB,CAIF,CAAE,MAAOC,GAET,CAEA,OAAO3B,EAAkB7N,GAAQmP,CACnC,GAsDA,IAAIM,EAAoBpB,EAAYJ,GA4BpC,SAASyB,EAAkBC,GACzB,IAAIC,EAAY9B,EAAe6B,EAASE,QACxC,IAAKD,EAAW,CAEd,IAAIE,EAAYL,EAAkBE,EAASE,QACvCC,GACFF,EAAY9B,EAAe6B,EAASE,QAAU,CAC5C7J,IAAK8J,EAAU9J,IACfvB,IAAK,IAAI0I,EAAkB2C,EAAUrL,OAKzBA,IAAIsL,gBAChBH,EAAUnL,IAAIuL,QAAQrV,QAAQ,SAASkV,EAAQpX,GAC7C,IAAI0W,EAAWS,EAAUnL,IAAIsL,eAAetX,GAC5C,GAAI0W,EAAU,CACZ,IAAInJ,EAAMyI,EAAmBmB,EAAU5J,IAAK6J,GAC5ChC,EAAkB7H,GAAOmJ,CAC3B,CACF,GAGFS,EAAY9B,EAAe6B,EAASE,QAAU,CAC5C7J,IAAK,KACLvB,IAAK,KAGX,CAGA,GAAImL,GAAaA,EAAUnL,KAAoD,mBAAtCmL,EAAUnL,IAAIwL,oBAAoC,CACzF,IAAIC,EAAmBN,EAAUnL,IAAIwL,oBAAoBN,GAOzD,GAAgC,OAA5BO,EAAiBL,OAGnB,OAFAK,EAAiBL,OAASpB,EACxBmB,EAAU5J,IAAKkK,EAAiBL,QAC3BK,CAEX,CAEA,OAAOP,CACT,CAIA,SAASQ,EAAcC,GAErB,IAAIvB,EAAQ,yCAAyCC,KAAKsB,GAC1D,GAAIvB,EAAO,CACT,IAAIc,EAAWD,EAAkB,CAC/BG,OAAQhB,EAAM,GACdwB,MAAOxB,EAAM,GACbyB,OAAQzB,EAAM,GAAK,IAErB,MAAO,WAAaA,EAAM,GAAK,KAAOc,EAASE,OAAS,IACtDF,EAASU,KAAO,KAAOV,EAASW,OAAS,GAAK,GAClD,CAIA,OADAzB,EAAQ,6BAA6BC,KAAKsB,IAEjC,WAAavB,EAAM,GAAK,KAAOsB,EAActB,EAAM,IAAM,IAI3DuB,CACT,CAQA,SAASG,IACP,IAAIC,EACAC,EAAe,GACnB,GAAI3Y,KAAK4Y,WACPD,EAAe,aACV,GACLD,EAAW1Y,KAAK6Y,6BACC7Y,KAAK8Y,WACpBH,EAAe3Y,KAAK+Y,gBACpBJ,GAAgB,MAIhBA,GADED,GAMc,cAElB,IAAIM,EAAahZ,KAAKiZ,gBACtB,GAAkB,MAAdD,EAAoB,CACtBL,GAAgB,IAAMK,EACtB,IAAIE,EAAelZ,KAAKmZ,kBACpBD,IACFP,GAAgB,IAAMO,EAE1B,CACF,CAEA,IAAIX,EAAO,GACPa,EAAepZ,KAAKqZ,kBACpBC,GAAY,EACZC,EAAgBvZ,KAAKuZ,gBAEzB,GADqBvZ,KAAKwZ,cAAgBD,EAmB/BA,EACThB,GAAQ,QAAUa,GAAgB,eACzBA,EACTb,GAAQa,GAERb,GAAQI,EACRW,GAAY,OAxBI,CAChB,IAAIG,EAAWzZ,KAAK0Z,cAEH,oBAAbD,IACFA,EAAW,QAEb,IAAI7F,EAAa5T,KAAK2Z,gBAClBP,GACEK,GAA8C,GAAlCL,EAAaQ,QAAQH,KACnClB,GAAQkB,EAAW,KAErBlB,GAAQa,EACJxF,GAAcwF,EAAaQ,QAAQ,IAAMhG,IAAewF,EAAarU,OAAS6O,EAAW7O,OAAS,IACpGwT,GAAQ,QAAU3E,EAAa,MAGjC2E,GAAQkB,EAAW,KAAO7F,GAAc,cAE5C,CAWA,OAHI0F,IACFf,GAAQ,KAAOI,EAAe,KAEzBJ,CACT,CAEA,SAASsB,EAAcC,GACrB,IAAIxF,EAAS,CAAC,EAKd,OAJAxU,OAAOia,oBAAoBja,OAAO0C,eAAesX,IAAQjX,QAAQ,SAASsC,GACxEmP,EAAOnP,GAAQ,cAAc+R,KAAK/R,GAAQ,WAAa,OAAO2U,EAAM3U,GAAMrD,KAAKgY,EAAQ,EAAIA,EAAM3U,EACnG,GACAmP,EAAOzK,SAAW4O,EACXnE,CACT,CAEA,SAAS0F,EAAaF,EAAOrG,GAK3B,QAHchI,IAAVgI,IACFA,EAAQ,CAAEwG,aAAc,KAAMC,YAAa,OAE1CJ,EAAMlB,WAEP,OADAnF,EAAMyG,YAAc,KACbJ,EAMT,IAAI/B,EAAS+B,EAAMK,eAAiBL,EAAMjB,2BAC1C,GAAId,EAAQ,CACV,IAAIQ,EAAOuB,EAAMb,gBACbT,EAASsB,EAAMX,kBAAoB,EAQnCiB,EADW,8EACalD,KAzUN,iBAAZZ,SAAsC,OAAZA,QAC7BA,QAAQ+D,QAER,IAsUoD,EAAI,GAClD,IAAT9B,GAAcC,EAAS4B,IAAiBhE,MAAkB0D,EAAMhB,WAClEN,GAAU4B,GAGZ,IAAIvC,EAAWD,EAAkB,CAC/BG,OAAQA,EACRQ,KAAMA,EACNC,OAAQA,IAEV/E,EAAMyG,YAAcrC,EAEpB,IAAIyC,GADJR,EAAQD,EAAcC,IACWT,gBAWjC,OAVAS,EAAMT,gBAAkB,WACtB,OAA0B,MAAtB5F,EAAMwG,aACDK,IAEF7G,EAAMwG,aAAa9U,MAAQmV,GACpC,EACAR,EAAMK,YAAc,WAAa,OAAOtC,EAASE,MAAQ,EACzD+B,EAAMb,cAAgB,WAAa,OAAOpB,EAASU,IAAM,EACzDuB,EAAMX,gBAAkB,WAAa,OAAOtB,EAASW,OAAS,CAAG,EACjEsB,EAAMjB,yBAA2B,WAAa,OAAOhB,EAASE,MAAQ,EAC/D+B,CACT,CAGA,IAAIxB,EAASwB,EAAMhB,UAAYgB,EAAMf,gBACrC,OAAIT,GACFA,EAASD,EAAcC,IACvBwB,EAAQD,EAAcC,IAChBf,cAAgB,WAAa,OAAOT,CAAQ,EAC3CwB,GAIFA,CACT,CAIA,SAASS,EAAkB3Q,EAAO4Q,GAC5B3E,IACFE,EAAoB,CAAC,EACrBC,EAAiB,CAAC,GASpB,IANA,IAEIyE,GAFO7Q,EAAMzE,MAAQ,SAEA,MADXyE,EAAMF,SAAW,IAG3B+J,EAAQ,CAAEwG,aAAc,KAAMC,YAAa,MAC3CQ,EAAiB,GACZ/Z,EAAI6Z,EAAMzV,OAAS,EAAGpE,GAAK,EAAGA,IACrC+Z,EAAehW,KAAK,YAAcsV,EAAaQ,EAAM7Z,GAAI8S,IACzDA,EAAMwG,aAAexG,EAAMyG,YAG7B,OADAzG,EAAMyG,YAAczG,EAAMwG,aAAe,KAClCQ,EAAcC,EAAe/U,UAAUgV,KAAK,GACrD,CAGA,SAASC,EAAehR,GACtB,IAAImN,EAAQ,sCAAsCC,KAAKpN,EAAM4Q,OAC7D,GAAIzD,EAAO,CACT,IAAIgB,EAAShB,EAAM,GACfwB,GAAQxB,EAAM,GACdyB,GAAUzB,EAAM,GAGhBM,EAAWtB,EAAkBgC,GAGjC,IAAKV,GAAYjC,GAAMA,EAAGE,WAAWyC,GACnC,IACEV,EAAWjC,EAAGG,aAAawC,EAAQ,OACrC,CAAE,MAAOL,GACPL,EAAW,EACb,CAIF,GAAIA,EAAU,CACZ,IAAIwD,EAAOxD,EAASyD,MAAM,kBAAkBvC,EAAO,GACnD,GAAIsC,EACF,OAAO9C,EAAS,IAAMQ,EAAO,KAAOsC,EAAO,KACzC,IAAIE,MAAMvC,GAAQmC,KAAK,KAAO,GAEpC,CACF,CACA,OAAO,IACT,CA1SAxE,EAAoBzR,KAAK,SAASqT,GAChC,IAIIiD,EAJAC,EAtCN,SAA8BlD,GAC5B,IAAImD,EAEJ,GAAI9E,IACD,IACE,IAAIkB,EAAM,IAAIjB,eACdiB,EAAIC,KAAK,MAAOQ,GAAQ,GACxBT,EAAI7M,KAAK,MACTyQ,EAA8B,IAAnB5D,EAAIE,WAAmBF,EAAIG,aAAe,KAGrD,IAAI0D,EAAkB7D,EAAI8D,kBAAkB,cACtB9D,EAAI8D,kBAAkB,eAC5C,GAAID,EACF,OAAOA,CAEX,CAAE,MAAOjb,GACT,CAIHgb,EAAWxE,EAAaqB,GAKxB,IAJA,IAGIsD,EAAWtE,EAHXuE,EAAK,wHAIFvE,EAAQuE,EAAGtE,KAAKkE,IAAWG,EAAYtE,EAC9C,OAAKsE,EACEA,EAAU,GADM,IAEzB,CASyBE,CAAqBxD,GAC5C,IAAKkD,EAAkB,OAAO,KAI9B,GAAIhF,EAAYiB,KAAK+D,GAAmB,CAEtC,IAAIO,EAAUP,EAAiBlV,MAAMkV,EAAiBrB,QAAQ,KAAO,GACrEoB,EAAgBxF,EAAWgG,EAAS,UAAU3R,WAC9CoR,EAAmBlD,CACrB,MAEEkD,EAAmBtE,EAAmBoB,EAAQkD,GAC9CD,EAAgBtE,EAAauE,GAG/B,OAAKD,EAIE,CACL9M,IAAK+M,EACLtO,IAAKqO,GALE,IAOX,GAsTA,IAAIS,EAA+BvF,EAAqBnQ,MAAM,GAC1D2V,EAA8BvF,EAAoBpQ,MAAM,GAE5DrG,EAAQsa,aAAeA,EACvBta,EAAQkb,eAAiBA,EACzBlb,EAAQkY,kBAAoBA,EAC5BlY,EAAQiY,kBAAoBA,EAE5BjY,EAAQic,QAAU,SAASnU,GAGzB,IAFAA,EAAUA,GAAW,CAAC,GAEVsO,cACVA,EAActO,EAAQsO,aACoC,IAAtD,CAAC,OAAQ,UAAW,QAAQ8D,QAAQ9D,IACtC,MAAM,IAAIxS,MAAM,eAAiBwS,EAAc,6DAyBnD,GAnBItO,EAAQkP,eACNlP,EAAQoU,uBACV1F,EAAqBnR,OAAS,GAGhCmR,EAAqB2F,QAAQrU,EAAQkP,eAKnClP,EAAQmQ,oBACNnQ,EAAQsU,4BACV3F,EAAoBpR,OAAS,GAG/BoR,EAAoB0F,QAAQrU,EAAQmQ,oBAIlCnQ,EAAQuU,cAAgB3F,IAAe,CAEzC,IAAI4F,EAASvG,EAAe9V,EAAQ,UAChCsc,EAAWD,EAAO3b,UAAU6b,SAE3BD,EAASE,qBACZH,EAAO3b,UAAU6b,SAAW,SAASE,EAASC,GAG5C,OAFAtG,EAAkBsG,GAAYD,EAC9BpG,EAAeqG,QAAY5Q,EACpBwQ,EAASna,KAAK9B,KAAMoc,EAASC,EACtC,EAEAL,EAAO3b,UAAU6b,SAASC,oBAAqB,EAEnD,CAcA,GAXKtG,IACHA,EAA8B,gCAAiCrO,GAC7DA,EAAQqO,6BAIPF,IACHA,GAA0B,EAC1BrS,MAAMiX,kBAAoBA,IAGvB3E,EAAuB,CAC1B,IAAI0G,IAAiB,6BAA8B9U,IACjDA,EAAQ+U,yBAKV,KAGsC,IADf9G,EAAe9V,EAAQ,kBACzB6c,eACjBF,GAAiB,EAErB,CAAE,MAAMpc,GAAI,CASRoc,GAtiBsB,iBAAZhG,SAAsC,OAAZA,SAA4C,mBAAfA,QAAQ/G,KAuiB3EqG,GAAwB,EA1GxB6G,EAAWnG,QAAQoG,KAEvBpG,QAAQoG,KAAO,SAAU9a,GACvB,GAAa,sBAATA,EAA8B,CAChC,IAAI+a,EAAYlW,UAAU,IAAMA,UAAU,GAAG+T,MACzCoC,EAAgB5c,KAAK6c,UAAUjb,GAAMmD,OAAS,EAElD,GAAI4X,IAAaC,EACf,OA1BF7E,EAAS6C,EADahR,EA2BKnD,UAAU,KAvBrCqW,EAnaN,WACE,GAAwB,iBAAZxG,SAAsC,OAAZA,QACpC,OAAOA,QAAQwG,MAEnB,CA+ZeC,KACCD,EAAOE,SAAWF,EAAOE,QAAQC,aAC7CH,EAAOE,QAAQC,aAAY,GAGzBlF,IACF1H,QAAQzG,QACRyG,QAAQzG,MAAMmO,IAGhB1H,QAAQzG,MAAMA,EAAM4Q,YAtaI,iBAAZlE,SAAsC,OAAZA,SAA8C,mBAAjBA,QAAQ4G,MAClE5G,QAAQ4G,KAsaC,GAchB,CA7BJ,IAA4BtT,EACtBmO,EAGA+E,EA2BF,OAAOL,EAAS/V,MAAM1G,KAAMyG,UAC9B,EAgGA,CA9GF,IACMgW,CA8GN,EAEA/c,EAAQyd,sBAAwB,WAC9BjH,EAAqBnR,OAAS,EAC9BoR,EAAoBpR,OAAS,EAE7BmR,EAAuBuF,EAA6B1V,MAAM,GAC1DoQ,EAAsBuF,EAA4B3V,MAAM,GAExD4R,EAAoBpB,EAAYJ,GAChCO,EAAeH,EAAYL,EAC7B,C,aCzmBA,IAAIkH,EAAO,EAAQ,KACfC,EAAMvd,OAAOO,UAAUE,eACvB+c,EAA8B,oBAARC,IAQ1B,SAASC,IACPxd,KAAKyd,OAAS,GACdzd,KAAK0d,KAAOJ,EAAe,IAAIC,IAAQzd,OAAO0B,OAAO,KACvD,CAKAgc,EAASG,UAAY,SAA4BC,EAAQC,GAEvD,IADA,IAAI1V,EAAM,IAAIqV,EACL7c,EAAI,EAAGmd,EAAMF,EAAO7Y,OAAQpE,EAAImd,EAAKnd,IAC5CwH,EAAI4V,IAAIH,EAAOjd,GAAIkd,GAErB,OAAO1V,CACT,EAQAqV,EAASnd,UAAU2d,KAAO,WACxB,OAAOV,EAAetd,KAAK0d,KAAKM,KAAOle,OAAOia,oBAAoB/Z,KAAK0d,MAAM3Y,MAC/E,EAOAyY,EAASnd,UAAU0d,IAAM,SAAsBE,EAAMJ,GACnD,IAAIK,EAAOZ,EAAeW,EAAOb,EAAKe,YAAYF,GAC9CG,EAAcd,EAAetd,KAAKqd,IAAIY,GAAQZ,EAAIvb,KAAK9B,KAAK0d,KAAMQ,GAClEG,EAAMre,KAAKyd,OAAO1Y,OACjBqZ,IAAeP,GAClB7d,KAAKyd,OAAO/Y,KAAKuZ,GAEdG,IACCd,EACFtd,KAAK0d,KAAKvV,IAAI8V,EAAMI,GAEpBre,KAAK0d,KAAKQ,GAAQG,EAGxB,EAOAb,EAASnd,UAAUgd,IAAM,SAAsBY,GAC7C,GAAIX,EACF,OAAOtd,KAAK0d,KAAKL,IAAIY,GAErB,IAAIC,EAAOd,EAAKe,YAAYF,GAC5B,OAAOZ,EAAIvb,KAAK9B,KAAK0d,KAAMQ,EAE/B,EAOAV,EAASnd,UAAUuZ,QAAU,SAA0BqE,GACrD,GAAIX,EAAc,CAChB,IAAIe,EAAMre,KAAK0d,KAAKpV,IAAI2V,GACxB,GAAII,GAAO,EACP,OAAOA,CAEb,KAAO,CACL,IAAIH,EAAOd,EAAKe,YAAYF,GAC5B,GAAIZ,EAAIvb,KAAK9B,KAAK0d,KAAMQ,GACtB,OAAOle,KAAK0d,KAAKQ,EAErB,CAEA,MAAM,IAAI5a,MAAM,IAAM2a,EAAO,uBAC/B,EAOAT,EAASnd,UAAUie,GAAK,SAAqBC,GAC3C,GAAIA,GAAQ,GAAKA,EAAOve,KAAKyd,OAAO1Y,OAClC,OAAO/E,KAAKyd,OAAOc,GAErB,MAAM,IAAIjb,MAAM,yBAA2Bib,EAC7C,EAOAf,EAASnd,UAAUme,QAAU,WAC3B,OAAOxe,KAAKyd,OAAO1X,OACrB,EAEArG,EAAQ,EAAW8d,C,YCnFnB,IAAIiB,EAAS,EAAQ,KAsDrB/e,EAAQ8O,OAAS,SAA0BkQ,GACzC,IACIC,EADAC,EAAU,GAGVC,EA3BN,SAAqBH,GACnB,OAAOA,EAAS,EACO,IAAhBA,GAAW,GACE,GAAfA,GAAU,EACjB,CAuBYI,CAAYJ,GAEtB,GACEC,EAzCgBI,GAyCRF,GACRA,KAhDiB,GAiDP,IAGRF,GAjDS,IAmDXC,GAAWH,EAAOjQ,OAAOmQ,SAClBE,EAAM,GAEf,OAAOD,CACT,EAMAlf,EAAQsf,OAAS,SAA0Bf,EAAMgB,EAAQC,GACvD,IAGIC,EAAcR,EAvCGD,EAEjBU,EAkCAC,EAASpB,EAAKlZ,OACdqE,EAAS,EACTkW,EAAQ,EAGZ,EAAG,CACD,GAAIL,GAAUI,EACZ,MAAM,IAAI/b,MAAM,8CAIlB,IAAe,KADfqb,EAAQF,EAAOO,OAAOf,EAAKsB,WAAWN,OAEpC,MAAM,IAAI3b,MAAM,yBAA2B2a,EAAKnY,OAAOmZ,EAAS,IAGlEE,KA7EW,GA6EOR,GAElBvV,IADAuV,GA3EgBI,KA4EYO,EAC5BA,GAnFiB,CAoFnB,OAASH,GAETD,EAAUxe,OAvDN0e,GAFiBV,EAyDWtV,IAvDR,EADU,GAAhBsV,EAIdU,GADCA,GAsDLF,EAAUM,KAAOP,CACnB,C,WCpIA,IAAIQ,EAAe,mEAAmE3E,MAAM,IAK5Fpb,EAAQ8O,OAAS,SAAUkR,GACzB,GAAI,GAAKA,GAAUA,EAASD,EAAa1a,OACvC,OAAO0a,EAAaC,GAEtB,MAAM,IAAI1b,UAAU,6BAA+B0b,EACrD,EAMAhgB,EAAQsf,OAAS,SAAUW,GAiBzB,OAhBW,IAgBCA,GAAYA,GAfb,GAgBDA,EAjBC,GAGG,IAkBCA,GAAYA,GAjBb,IAkBJA,EAnBI,GASK,GANR,IAoBCA,GAAYA,GAnBb,GAoBDA,EArBC,GAOQ,GAJR,IAsBPA,EACK,GAtBG,IA0BRA,EACK,IAID,CACV,C,WC3CA,SAASC,EAAgBC,EAAMC,EAAOC,EAASC,EAAWC,EAAUC,GAUlE,IAAIC,EAAMC,KAAKC,OAAOP,EAAQD,GAAQ,GAAKA,EACvCS,EAAML,EAASF,EAASC,EAAUG,IAAM,GAC5C,OAAY,IAARG,EAEKH,EAEAG,EAAM,EAETR,EAAQK,EAAM,EAETP,EAAgBO,EAAKL,EAAOC,EAASC,EAAWC,EAAUC,GAK/DA,GAASxgB,EAAQ6gB,kBACZT,EAAQE,EAAUjb,OAAS+a,GAAS,EAEpCK,EAKLA,EAAMN,EAAO,EAERD,EAAgBC,EAAMM,EAAKJ,EAASC,EAAWC,EAAUC,GAI9DA,GAASxgB,EAAQ6gB,kBACZJ,EAEAN,EAAO,GAAK,EAAIA,CAG7B,CA7DAngB,EAAQ8gB,qBAAuB,EAC/B9gB,EAAQ6gB,kBAAoB,EAgF5B7gB,EAAQ+gB,OAAS,SAAgBV,EAASC,EAAWC,EAAUC,GAC7D,GAAyB,IAArBF,EAAUjb,OACZ,OAAQ,EAGV,IAAI2b,EAAQd,GAAiB,EAAGI,EAAUjb,OAAQgb,EAASC,EAC/BC,EAAUC,GAASxgB,EAAQ8gB,sBACvD,GAAIE,EAAQ,EACV,OAAQ,EAMV,KAAOA,EAAQ,GAAK,GAC6C,IAA3DT,EAASD,EAAUU,GAAQV,EAAUU,EAAQ,IAAI,MAGnDA,EAGJ,OAAOA,CACT,C,aCvGA,IAAItD,EAAO,EAAQ,KAqBnB,SAASuD,IACP3gB,KAAKyd,OAAS,GACdzd,KAAK4gB,SAAU,EAEf5gB,KAAK6gB,MAAQ,CAACC,eAAgB,EAAGC,gBAAiB,EACpD,CAQAJ,EAAYtgB,UAAU2gB,gBACpB,SAA6BC,EAAWC,GACtClhB,KAAKyd,OAAO5a,QAAQoe,EAAWC,EACjC,EAOFP,EAAYtgB,UAAU0d,IAAM,SAAyBoD,GAtCrD,IAAgCC,EAAUC,EAEpCC,EACAC,EACAC,EACAC,EALoCJ,EAuCDF,EArCnCG,GAF0BF,EAuCHphB,KAAK6gB,OArCXC,cACjBS,EAAQF,EAASP,cACjBU,EAAUJ,EAASL,gBACnBU,EAAUJ,EAASN,gBAChBQ,EAAQD,GAASC,GAASD,GAASG,GAAWD,GAC9CpE,EAAKsE,oCAAoCN,EAAUC,IAAa,GAiCrErhB,KAAK6gB,MAAQM,EACbnhB,KAAKyd,OAAO/Y,KAAKyc,KAEjBnhB,KAAK4gB,SAAU,EACf5gB,KAAKyd,OAAO/Y,KAAKyc,GAErB,EAWAR,EAAYtgB,UAAUme,QAAU,WAK9B,OAJKxe,KAAK4gB,UACR5gB,KAAKyd,OAAOkE,KAAKvE,EAAKsE,qCACtB1hB,KAAK4gB,SAAU,GAEV5gB,KAAKyd,MACd,EAEA/d,EAAQ,EAAcihB,C,WCnDtB,SAASiB,EAAKC,EAAKC,EAAG3f,GACpB,IAAI4f,EAAOF,EAAIC,GACfD,EAAIC,GAAKD,EAAI1f,GACb0f,EAAI1f,GAAK4f,CACX,CA0BA,SAASC,EAAYH,EAAKI,EAAY3f,EAAGlC,GAKvC,GAAIkC,EAAIlC,EAAG,CAYT,IACIO,EAAI2B,EAAI,EAEZsf,EAAKC,GApCiBK,EAiCY5f,EAjCP6f,EAiCU/hB,EAhChCggB,KAAKgC,MAAMF,EAAO9B,KAAKiC,UAAYF,EAAOD,KAmCzB9hB,GAStB,IARA,IAAIkiB,EAAQT,EAAIzhB,GAQPmiB,EAAIjgB,EAAGigB,EAAIniB,EAAGmiB,IACjBN,EAAWJ,EAAIU,GAAID,IAAU,GAE/BV,EAAKC,EADLlhB,GAAK,EACQ4hB,GAIjBX,EAAKC,EAAKlhB,EAAI,EAAG4hB,GACjB,IAAIC,EAAI7hB,EAAI,EAIZqhB,EAAYH,EAAKI,EAAY3f,EAAGkgB,EAAI,GACpCR,EAAYH,EAAKI,EAAYO,EAAI,EAAGpiB,EACtC,CA3DF,IAA0B8hB,EAAKC,CA4D/B,CAUAziB,EAAQ,EAAY,SAAUmiB,EAAKI,GACjCD,EAAYH,EAAKI,EAAY,EAAGJ,EAAI9c,OAAS,EAC/C,C,iBC1GIqY,EAAO,EAAQ,KACfqF,EAAe,EAAQ,KACvBjF,EAAW,SACXkF,EAAY,EAAQ,IACpBC,EAAY,SAEhB,SAAStN,EAAkBuN,EAAYC,GACrC,IAAI/K,EAAY8K,EAKhB,MAJ0B,iBAAfA,IACT9K,EAAYsF,EAAK0F,oBAAoBF,IAGV,MAAtB9K,EAAUiL,SACb,IAAIC,EAAyBlL,EAAW+K,GACxC,IAAII,EAAuBnL,EAAW+K,EAC5C,CAyQA,SAASI,EAAuBL,EAAYC,GAC1C,IAAI/K,EAAY8K,EACU,iBAAfA,IACT9K,EAAYsF,EAAK0F,oBAAoBF,IAGvC,IAAIvI,EAAU+C,EAAK8F,OAAOpL,EAAW,WACjCI,EAAUkF,EAAK8F,OAAOpL,EAAW,WAGjCqL,EAAQ/F,EAAK8F,OAAOpL,EAAW,QAAS,IACxCsL,EAAahG,EAAK8F,OAAOpL,EAAW,aAAc,MAClDG,EAAiBmF,EAAK8F,OAAOpL,EAAW,iBAAkB,MAC1DuL,EAAWjG,EAAK8F,OAAOpL,EAAW,YAClClB,EAAOwG,EAAK8F,OAAOpL,EAAW,OAAQ,MAI1C,GAAIuC,GAAWra,KAAKsjB,SAClB,MAAM,IAAIhgB,MAAM,wBAA0B+W,GAGxC+I,IACFA,EAAahG,EAAKmG,UAAUH,IAG9BlL,EAAUA,EACPvL,IAAI1F,QAIJ0F,IAAIyQ,EAAKmG,WAKT5W,IAAI,SAAUoL,GACb,OAAOqL,GAAchG,EAAKoG,WAAWJ,IAAehG,EAAKoG,WAAWzL,GAChEqF,EAAKqG,SAASL,EAAYrL,GAC1BA,CACN,GAMF/X,KAAK0jB,OAASlG,EAASG,UAAUwF,EAAMxW,IAAI1F,SAAS,GACpDjH,KAAK2jB,SAAWnG,EAASG,UAAUzF,GAAS,GAE5ClY,KAAK4jB,iBAAmB5jB,KAAK2jB,SAASnF,UAAU7R,IAAI,SAAUzK,GAC5D,OAAOkb,EAAKyG,iBAAiBT,EAAYlhB,EAAG2gB,EAC9C,GAEA7iB,KAAKojB,WAAaA,EAClBpjB,KAAKiY,eAAiBA,EACtBjY,KAAK8jB,UAAYT,EACjBrjB,KAAK+jB,cAAgBlB,EACrB7iB,KAAK4W,KAAOA,CACd,CA2GA,SAASoN,IACPhkB,KAAK8gB,cAAgB,EACrB9gB,KAAK+gB,gBAAkB,EACvB/gB,KAAK+X,OAAS,KACd/X,KAAKikB,aAAe,KACpBjkB,KAAKkkB,eAAiB,KACtBlkB,KAAKmF,KAAO,IACd,CAiaA,SAAS6d,EAAyBJ,EAAYC,GAC5C,IAAI/K,EAAY8K,EACU,iBAAfA,IACT9K,EAAYsF,EAAK0F,oBAAoBF,IAGvC,IAAIvI,EAAU+C,EAAK8F,OAAOpL,EAAW,WACjCiL,EAAW3F,EAAK8F,OAAOpL,EAAW,YAEtC,GAAIuC,GAAWra,KAAKsjB,SAClB,MAAM,IAAIhgB,MAAM,wBAA0B+W,GAG5Cra,KAAK2jB,SAAW,IAAInG,EACpBxd,KAAK0jB,OAAS,IAAIlG,EAElB,IAAI2G,EAAa,CACf5L,MAAO,EACPC,OAAQ,GAEVxY,KAAKokB,UAAYrB,EAASpW,IAAI,SAAUzK,GACtC,GAAIA,EAAEgM,IAGJ,MAAM,IAAI5K,MAAM,sDAElB,IAAI+gB,EAASjH,EAAK8F,OAAOhhB,EAAG,UACxBoiB,EAAalH,EAAK8F,OAAOmB,EAAQ,QACjCE,EAAenH,EAAK8F,OAAOmB,EAAQ,UAEvC,GAAIC,EAAaH,EAAW5L,MACvB+L,IAAeH,EAAW5L,MAAQgM,EAAeJ,EAAW3L,OAC/D,MAAM,IAAIlV,MAAM,wDAIlB,OAFA6gB,EAAaE,EAEN,CACLG,gBAAiB,CAGf1D,cAAewD,EAAa,EAC5BvD,gBAAiBwD,EAAe,GAElCE,SAAU,IAAIpP,EAAkB+H,EAAK8F,OAAOhhB,EAAG,OAAQ2gB,GAE3D,EACF,CAl4BAxN,EAAkBqP,cAAgB,SAAS9B,EAAYC,GACrD,OAAOI,EAAuByB,cAAc9B,EAAYC,EAC1D,EAKAxN,EAAkBhV,UAAUijB,SAAW,EAgCvCjO,EAAkBhV,UAAUskB,oBAAsB,KAClD7kB,OAAOW,eAAe4U,EAAkBhV,UAAW,qBAAsB,CACvEe,cAAc,EACdD,YAAY,EACZmH,IAAK,WAKH,OAJKtI,KAAK2kB,qBACR3kB,KAAK4kB,eAAe5kB,KAAK8jB,UAAW9jB,KAAKojB,YAGpCpjB,KAAK2kB,mBACd,IAGFtP,EAAkBhV,UAAUwkB,mBAAqB,KACjD/kB,OAAOW,eAAe4U,EAAkBhV,UAAW,oBAAqB,CACtEe,cAAc,EACdD,YAAY,EACZmH,IAAK,WAKH,OAJKtI,KAAK6kB,oBACR7kB,KAAK4kB,eAAe5kB,KAAK8jB,UAAW9jB,KAAKojB,YAGpCpjB,KAAK6kB,kBACd,IAGFxP,EAAkBhV,UAAUykB,wBAC1B,SAAkD7G,EAAMyC,GACtD,IAAI3f,EAAIkd,EAAKnY,OAAO4a,GACpB,MAAa,MAAN3f,GAAmB,MAANA,CACtB,EAOFsU,EAAkBhV,UAAUukB,eAC1B,SAAyC3G,EAAM8G,GAC7C,MAAM,IAAIzhB,MAAM,2CAClB,EAEF+R,EAAkB2P,gBAAkB,EACpC3P,EAAkB4P,eAAiB,EAEnC5P,EAAkBmL,qBAAuB,EACzCnL,EAAkBkL,kBAAoB,EAkBtClL,EAAkBhV,UAAU6kB,YAC1B,SAAuCjE,EAAWkE,EAAUC,GAC1D,IAGI/B,EAHA3Q,EAAUyS,GAAY,KAI1B,OAHYC,GAAU/P,EAAkB2P,iBAIxC,KAAK3P,EAAkB2P,gBACrB3B,EAAWrjB,KAAKqlB,mBAChB,MACF,KAAKhQ,EAAkB4P,eACrB5B,EAAWrjB,KAAKslB,kBAChB,MACF,QACE,MAAM,IAAIhiB,MAAM,+BAGlB,IAAI8f,EAAapjB,KAAKojB,WACtBC,EAAS1W,IAAI,SAAU4Y,GACrB,IAAIxN,EAA4B,OAAnBwN,EAAQxN,OAAkB,KAAO/X,KAAK2jB,SAASrF,GAAGiH,EAAQxN,QAEvE,MAAO,CACLA,OAFFA,EAASqF,EAAKyG,iBAAiBT,EAAYrL,EAAQ/X,KAAK+jB,eAGtDjD,cAAeyE,EAAQzE,cACvBC,gBAAiBwE,EAAQxE,gBACzBkD,aAAcsB,EAAQtB,aACtBC,eAAgBqB,EAAQrB,eACxB/e,KAAuB,OAAjBogB,EAAQpgB,KAAgB,KAAOnF,KAAK0jB,OAAOpF,GAAGiH,EAAQpgB,MAEhE,EAAGnF,MAAM6C,QAAQoe,EAAWvO,EAC9B,EAwBF2C,EAAkBhV,UAAUmlB,yBAC1B,SAAoDC,GAClD,IAAIlN,EAAO6E,EAAK8F,OAAOuC,EAAO,QAM1BC,EAAS,CACX3N,OAAQqF,EAAK8F,OAAOuC,EAAO,UAC3BxB,aAAc1L,EACd2L,eAAgB9G,EAAK8F,OAAOuC,EAAO,SAAU,IAI/C,GADAC,EAAO3N,OAAS/X,KAAK2lB,iBAAiBD,EAAO3N,QACzC2N,EAAO3N,OAAS,EAClB,MAAO,GAGT,IAAIsL,EAAW,GAEX3C,EAAQ1gB,KAAK4lB,aAAaF,EACA1lB,KAAKslB,kBACL,eACA,iBACAlI,EAAKyI,2BACLpD,EAAalC,mBAC3C,GAAIG,GAAS,EAAG,CACd,IAAI6E,EAAUvlB,KAAKslB,kBAAkB5E,GAErC,QAAqBjV,IAAjBga,EAAMjN,OAOR,IANA,IAAIyL,EAAesB,EAAQtB,aAMpBsB,GAAWA,EAAQtB,eAAiBA,GACzCZ,EAAS3e,KAAK,CACZ6T,KAAM6E,EAAK8F,OAAOqC,EAAS,gBAAiB,MAC5C/M,OAAQ4E,EAAK8F,OAAOqC,EAAS,kBAAmB,MAChDO,WAAY1I,EAAK8F,OAAOqC,EAAS,sBAAuB,QAG1DA,EAAUvlB,KAAKslB,oBAAoB5E,QASrC,IANA,IAAIwD,EAAiBqB,EAAQrB,eAMtBqB,GACAA,EAAQtB,eAAiB1L,GACzBgN,EAAQrB,gBAAkBA,GAC/Bb,EAAS3e,KAAK,CACZ6T,KAAM6E,EAAK8F,OAAOqC,EAAS,gBAAiB,MAC5C/M,OAAQ4E,EAAK8F,OAAOqC,EAAS,kBAAmB,MAChDO,WAAY1I,EAAK8F,OAAOqC,EAAS,sBAAuB,QAG1DA,EAAUvlB,KAAKslB,oBAAoB5E,EAGzC,CAEA,OAAO2C,CACT,EAEF3jB,EAAQ2V,kBAAoBA,EAgG5B4N,EAAuB5iB,UAAYP,OAAO0B,OAAO6T,EAAkBhV,WACnE4iB,EAAuB5iB,UAAUokB,SAAWpP,EAM5C4N,EAAuB5iB,UAAUslB,iBAAmB,SAASI,GAC3D,IAWIplB,EAXAqlB,EAAiBD,EAKrB,GAJuB,MAAnB/lB,KAAKojB,aACP4C,EAAiB5I,EAAKqG,SAASzjB,KAAKojB,WAAY4C,IAG9ChmB,KAAK2jB,SAAStG,IAAI2I,GACpB,OAAOhmB,KAAK2jB,SAAS/J,QAAQoM,GAM/B,IAAKrlB,EAAI,EAAGA,EAAIX,KAAK4jB,iBAAiB7e,SAAUpE,EAC9C,GAAIX,KAAK4jB,iBAAiBjjB,IAAMolB,EAC9B,OAAOplB,EAIX,OAAQ,CACV,EAWAsiB,EAAuByB,cACrB,SAAyC9B,EAAYC,GACnD,IAAIoD,EAAMnmB,OAAO0B,OAAOyhB,EAAuB5iB,WAE3C8iB,EAAQ8C,EAAIvC,OAASlG,EAASG,UAAUiF,EAAWc,OAAOlF,WAAW,GACrEtG,EAAU+N,EAAItC,SAAWnG,EAASG,UAAUiF,EAAWe,SAASnF,WAAW,GAC/EyH,EAAI7C,WAAaR,EAAWsD,YAC5BD,EAAIhO,eAAiB2K,EAAWuD,wBAAwBF,EAAItC,SAASnF,UACbyH,EAAI7C,YAC5D6C,EAAIrP,KAAOgM,EAAWwD,MACtBH,EAAIlC,cAAgBlB,EACpBoD,EAAIrC,iBAAmBqC,EAAItC,SAASnF,UAAU7R,IAAI,SAAUzK,GAC1D,OAAOkb,EAAKyG,iBAAiBoC,EAAI7C,WAAYlhB,EAAG2gB,EAClD,GAWA,IAJA,IAAIwD,EAAoBzD,EAAWkB,UAAUtF,UAAUzY,QACnDugB,EAAwBL,EAAItB,oBAAsB,GAClD4B,EAAuBN,EAAIpB,mBAAqB,GAE3ClkB,EAAI,EAAGoE,EAASshB,EAAkBthB,OAAQpE,EAAIoE,EAAQpE,IAAK,CAClE,IAAI6lB,EAAaH,EAAkB1lB,GAC/B8lB,EAAc,IAAIzC,EACtByC,EAAY3F,cAAgB0F,EAAW1F,cACvC2F,EAAY1F,gBAAkByF,EAAWzF,gBAErCyF,EAAWzO,SACb0O,EAAY1O,OAASG,EAAQ0B,QAAQ4M,EAAWzO,QAChD0O,EAAYxC,aAAeuC,EAAWvC,aACtCwC,EAAYvC,eAAiBsC,EAAWtC,eAEpCsC,EAAWrhB,OACbshB,EAAYthB,KAAOge,EAAMvJ,QAAQ4M,EAAWrhB,OAG9CohB,EAAqB7hB,KAAK+hB,IAG5BH,EAAsB5hB,KAAK+hB,EAC7B,CAIA,OAFA9D,EAAUsD,EAAIpB,mBAAoBzH,EAAKyI,4BAEhCI,CACT,EAKFhD,EAAuB5iB,UAAUijB,SAAW,EAK5CxjB,OAAOW,eAAewiB,EAAuB5iB,UAAW,UAAW,CACjEiI,IAAK,WACH,OAAOtI,KAAK4jB,iBAAiB7d,OAC/B,IAoBFkd,EAAuB5iB,UAAUukB,eAC/B,SAAyC3G,EAAM8G,GAe7C,IAdA,IAYIQ,EAASmB,EAAKC,EAAS9W,EAAKnP,EAZ5BogB,EAAgB,EAChB8F,EAA0B,EAC1BC,EAAuB,EACvBC,EAAyB,EACzBC,EAAiB,EACjBC,EAAe,EACfjiB,EAASkZ,EAAKlZ,OACd2b,EAAQ,EACRuG,EAAiB,CAAC,EAClBlF,EAAO,CAAC,EACRmF,EAAmB,GACnBb,EAAoB,GAGjB3F,EAAQ3b,GACb,GAA2B,MAAvBkZ,EAAKnY,OAAO4a,GACdI,IACAJ,IACAkG,EAA0B,OAEvB,GAA2B,MAAvB3I,EAAKnY,OAAO4a,GACnBA,QAEG,CASH,KARA6E,EAAU,IAAIvB,GACNlD,cAAgBA,EAOnBjR,EAAM6Q,EAAO7Q,EAAM9K,IAClB/E,KAAK8kB,wBAAwB7G,EAAMpO,GADTA,KAQhC,GADA8W,EAAUM,EAFVP,EAAMzI,EAAKlY,MAAM2a,EAAO7Q,IAItB6Q,GAASgG,EAAI3hB,WACR,CAEL,IADA4hB,EAAU,GACHjG,EAAQ7Q,GACb6S,EAAU1D,OAAOf,EAAMyC,EAAOqB,GAC9BrhB,EAAQqhB,EAAKrhB,MACbggB,EAAQqB,EAAKvC,KACbmH,EAAQjiB,KAAKhE,GAGf,GAAuB,IAAnBimB,EAAQ5hB,OACV,MAAM,IAAIzB,MAAM,0CAGlB,GAAuB,IAAnBqjB,EAAQ5hB,OACV,MAAM,IAAIzB,MAAM,0CAGlB2jB,EAAeP,GAAOC,CACxB,CAGApB,EAAQxE,gBAAkB6F,EAA0BD,EAAQ,GAC5DC,EAA0BrB,EAAQxE,gBAE9B4F,EAAQ5hB,OAAS,IAEnBwgB,EAAQxN,OAASgP,EAAiBJ,EAAQ,GAC1CI,GAAkBJ,EAAQ,GAG1BpB,EAAQtB,aAAe4C,EAAuBF,EAAQ,GACtDE,EAAuBtB,EAAQtB,aAE/BsB,EAAQtB,cAAgB,EAGxBsB,EAAQrB,eAAiB4C,EAAyBH,EAAQ,GAC1DG,EAAyBvB,EAAQrB,eAE7ByC,EAAQ5hB,OAAS,IAEnBwgB,EAAQpgB,KAAO6hB,EAAeL,EAAQ,GACtCK,GAAgBL,EAAQ,KAI5BN,EAAkB3hB,KAAK6gB,GACa,iBAAzBA,EAAQtB,cACjBiD,EAAiBxiB,KAAK6gB,EAE1B,CAGF5C,EAAU0D,EAAmBjJ,EAAK+J,qCAClCnnB,KAAK2kB,oBAAsB0B,EAE3B1D,EAAUuE,EAAkB9J,EAAKyI,4BACjC7lB,KAAK6kB,mBAAqBqC,CAC5B,EAMFjE,EAAuB5iB,UAAUulB,aAC/B,SAAuC7F,EAASqH,EAAWC,EACpBC,EAAaC,EAAarH,GAM/D,GAAIH,EAAQsH,IAAc,EACxB,MAAM,IAAIrjB,UAAU,gDACE+b,EAAQsH,IAEhC,GAAItH,EAAQuH,GAAe,EACzB,MAAM,IAAItjB,UAAU,kDACE+b,EAAQuH,IAGhC,OAAO7E,EAAahC,OAAOV,EAASqH,EAAWG,EAAarH,EAC9D,EAMF+C,EAAuB5iB,UAAUmnB,mBAC/B,WACE,IAAK,IAAI9G,EAAQ,EAAGA,EAAQ1gB,KAAKqlB,mBAAmBtgB,SAAU2b,EAAO,CACnE,IAAI6E,EAAUvlB,KAAKqlB,mBAAmB3E,GAMtC,GAAIA,EAAQ,EAAI1gB,KAAKqlB,mBAAmBtgB,OAAQ,CAC9C,IAAI0iB,EAAcznB,KAAKqlB,mBAAmB3E,EAAQ,GAElD,GAAI6E,EAAQzE,gBAAkB2G,EAAY3G,cAAe,CACvDyE,EAAQmC,oBAAsBD,EAAY1G,gBAAkB,EAC5D,QACF,CACF,CAGAwE,EAAQmC,oBAAsBC,GAChC,CACF,EA0BF1E,EAAuB5iB,UAAU8X,oBAC/B,SAA+CsN,GAC7C,IAAIC,EAAS,CACX5E,cAAe1D,EAAK8F,OAAOuC,EAAO,QAClC1E,gBAAiB3D,EAAK8F,OAAOuC,EAAO,WAGlC/E,EAAQ1gB,KAAK4lB,aACfF,EACA1lB,KAAKqlB,mBACL,gBACA,kBACAjI,EAAK+J,oCACL/J,EAAK8F,OAAOuC,EAAO,OAAQpQ,EAAkBmL,uBAG/C,GAAIE,GAAS,EAAG,CACd,IAAI6E,EAAUvlB,KAAKqlB,mBAAmB3E,GAEtC,GAAI6E,EAAQzE,gBAAkB4E,EAAO5E,cAAe,CAClD,IAAI/I,EAASqF,EAAK8F,OAAOqC,EAAS,SAAU,MAC7B,OAAXxN,IACFA,EAAS/X,KAAK2jB,SAASrF,GAAGvG,GAC1BA,EAASqF,EAAKyG,iBAAiB7jB,KAAKojB,WAAYrL,EAAQ/X,KAAK+jB,gBAE/D,IAAI5e,EAAOiY,EAAK8F,OAAOqC,EAAS,OAAQ,MAIxC,OAHa,OAATpgB,IACFA,EAAOnF,KAAK0jB,OAAOpF,GAAGnZ,IAEjB,CACL4S,OAAQA,EACRQ,KAAM6E,EAAK8F,OAAOqC,EAAS,eAAgB,MAC3C/M,OAAQ4E,EAAK8F,OAAOqC,EAAS,iBAAkB,MAC/CpgB,KAAMA,EAEV,CACF,CAEA,MAAO,CACL4S,OAAQ,KACRQ,KAAM,KACNC,OAAQ,KACRrT,KAAM,KAEV,EAMF8d,EAAuB5iB,UAAUunB,wBAC/B,WACE,QAAK5nB,KAAKiY,gBAGHjY,KAAKiY,eAAelT,QAAU/E,KAAK2jB,SAAS3F,SAChDhe,KAAKiY,eAAe4P,KAAK,SAAUC,GAAM,OAAa,MAANA,CAAY,EACjE,EAOF7E,EAAuB5iB,UAAU0nB,iBAC/B,SAA4ChC,EAASiC,GACnD,IAAKhoB,KAAKiY,eACR,OAAO,KAGT,IAAIyI,EAAQ1gB,KAAK2lB,iBAAiBI,GAClC,GAAIrF,GAAS,EACX,OAAO1gB,KAAKiY,eAAeyI,GAG7B,IAKIxS,EALA8X,EAAiBD,EAMrB,GALuB,MAAnB/lB,KAAKojB,aACP4C,EAAiB5I,EAAKqG,SAASzjB,KAAKojB,WAAY4C,IAI3B,MAAnBhmB,KAAKojB,aACDlV,EAAMkP,EAAK6K,SAASjoB,KAAKojB,aAAc,CAK7C,IAAI8E,EAAiBlC,EAAelY,QAAQ,aAAc,IAC1D,GAAkB,QAAdI,EAAIia,QACDnoB,KAAK2jB,SAAStG,IAAI6K,GACvB,OAAOloB,KAAKiY,eAAejY,KAAK2jB,SAAS/J,QAAQsO,IAGnD,KAAMha,EAAIhG,MAAoB,KAAZgG,EAAIhG,OACflI,KAAK2jB,SAAStG,IAAI,IAAM2I,GAC7B,OAAOhmB,KAAKiY,eAAejY,KAAK2jB,SAAS/J,QAAQ,IAAMoM,GAE3D,CAMA,GAAIgC,EACF,OAAO,KAGP,MAAM,IAAI1kB,MAAM,IAAM0iB,EAAiB,6BAE3C,EAyBF/C,EAAuB5iB,UAAU+nB,qBAC/B,SAAgD3C,GAC9C,IAAI1N,EAASqF,EAAK8F,OAAOuC,EAAO,UAEhC,IADA1N,EAAS/X,KAAK2lB,iBAAiB5N,IAClB,EACX,MAAO,CACLQ,KAAM,KACNC,OAAQ,KACRsN,WAAY,MAIhB,IAAIJ,EAAS,CACX3N,OAAQA,EACRkM,aAAc7G,EAAK8F,OAAOuC,EAAO,QACjCvB,eAAgB9G,EAAK8F,OAAOuC,EAAO,WAGjC/E,EAAQ1gB,KAAK4lB,aACfF,EACA1lB,KAAKslB,kBACL,eACA,iBACAlI,EAAKyI,2BACLzI,EAAK8F,OAAOuC,EAAO,OAAQpQ,EAAkBmL,uBAG/C,GAAIE,GAAS,EAAG,CACd,IAAI6E,EAAUvlB,KAAKslB,kBAAkB5E,GAErC,GAAI6E,EAAQxN,SAAW2N,EAAO3N,OAC5B,MAAO,CACLQ,KAAM6E,EAAK8F,OAAOqC,EAAS,gBAAiB,MAC5C/M,OAAQ4E,EAAK8F,OAAOqC,EAAS,kBAAmB,MAChDO,WAAY1I,EAAK8F,OAAOqC,EAAS,sBAAuB,MAG9D,CAEA,MAAO,CACLhN,KAAM,KACNC,OAAQ,KACRsN,WAAY,KAEhB,EAqGF9C,EAAyB3iB,UAAYP,OAAO0B,OAAO6T,EAAkBhV,WACrE2iB,EAAyB3iB,UAAU6E,YAAcmQ,EAKjD2N,EAAyB3iB,UAAUijB,SAAW,EAK9CxjB,OAAOW,eAAeuiB,EAAyB3iB,UAAW,UAAW,CACnEiI,IAAK,WAEH,IADA,IAAI4P,EAAU,GACLvX,EAAI,EAAGA,EAAIX,KAAKokB,UAAUrf,OAAQpE,IACzC,IAAK,IAAI4hB,EAAI,EAAGA,EAAIviB,KAAKokB,UAAUzjB,GAAG8jB,SAASvM,QAAQnT,OAAQwd,IAC7DrK,EAAQxT,KAAK1E,KAAKokB,UAAUzjB,GAAG8jB,SAASvM,QAAQqK,IAGpD,OAAOrK,CACT,IAsBF8K,EAAyB3iB,UAAU8X,oBACjC,SAAsDsN,GACpD,IAAIC,EAAS,CACX5E,cAAe1D,EAAK8F,OAAOuC,EAAO,QAClC1E,gBAAiB3D,EAAK8F,OAAOuC,EAAO,WAKlC4C,EAAe5F,EAAahC,OAAOiF,EAAQ1lB,KAAKokB,UAClD,SAASsB,EAAQ4C,GAEf,OADU5C,EAAO5E,cAAgBwH,EAAQ9D,gBAAgB1D,eAKjD4E,EAAO3E,gBACPuH,EAAQ9D,gBAAgBzD,eAClC,GACEuH,EAAUtoB,KAAKokB,UAAUiE,GAE7B,OAAKC,EASEA,EAAQ7D,SAAStM,oBAAoB,CAC1CI,KAAMmN,EAAO5E,eACVwH,EAAQ9D,gBAAgB1D,cAAgB,GAC3CtI,OAAQkN,EAAO3E,iBACZuH,EAAQ9D,gBAAgB1D,gBAAkB4E,EAAO5E,cAC/CwH,EAAQ9D,gBAAgBzD,gBAAkB,EAC1C,GACLwH,KAAM9C,EAAM8C,OAfL,CACLxQ,OAAQ,KACRQ,KAAM,KACNC,OAAQ,KACRrT,KAAM,KAaZ,EAMF6d,EAAyB3iB,UAAUunB,wBACjC,WACE,OAAO5nB,KAAKokB,UAAUoE,MAAM,SAAUtmB,GACpC,OAAOA,EAAEuiB,SAASmD,yBACpB,EACF,EAOF5E,EAAyB3iB,UAAU0nB,iBACjC,SAAmDhC,EAASiC,GAC1D,IAAK,IAAIrnB,EAAI,EAAGA,EAAIX,KAAKokB,UAAUrf,OAAQpE,IAAK,CAC9C,IAEIyb,EAFUpc,KAAKokB,UAAUzjB,GAEP8jB,SAASsD,iBAAiBhC,GAAS,GACzD,GAAI3J,EACF,OAAOA,CAEX,CACA,GAAI4L,EACF,OAAO,KAGP,MAAM,IAAI1kB,MAAM,IAAMyiB,EAAU,6BAEpC,EAoBF/C,EAAyB3iB,UAAU+nB,qBACjC,SAAuD3C,GACrD,IAAK,IAAI9kB,EAAI,EAAGA,EAAIX,KAAKokB,UAAUrf,OAAQpE,IAAK,CAC9C,IAAI2nB,EAAUtoB,KAAKokB,UAAUzjB,GAI7B,IAAyE,IAArE2nB,EAAQ7D,SAASkB,iBAAiBvI,EAAK8F,OAAOuC,EAAO,WAAzD,CAGA,IAAIgD,EAAoBH,EAAQ7D,SAAS2D,qBAAqB3C,GAC9D,GAAIgD,EASF,MARU,CACRlQ,KAAMkQ,EAAkBlQ,MACrB+P,EAAQ9D,gBAAgB1D,cAAgB,GAC3CtI,OAAQiQ,EAAkBjQ,QACvB8P,EAAQ9D,gBAAgB1D,gBAAkB2H,EAAkBlQ,KAC1D+P,EAAQ9D,gBAAgBzD,gBAAkB,EAC1C,GATT,CAaF,CAEA,MAAO,CACLxI,KAAM,KACNC,OAAQ,KAEZ,EAOFwK,EAAyB3iB,UAAUukB,eACjC,SAAgD3G,EAAM8G,GACpD/kB,KAAK2kB,oBAAsB,GAC3B3kB,KAAK6kB,mBAAqB,GAC1B,IAAK,IAAIlkB,EAAI,EAAGA,EAAIX,KAAKokB,UAAUrf,OAAQpE,IAGzC,IAFA,IAAI2nB,EAAUtoB,KAAKokB,UAAUzjB,GACzB+nB,EAAkBJ,EAAQ7D,SAASY,mBAC9B9C,EAAI,EAAGA,EAAImG,EAAgB3jB,OAAQwd,IAAK,CAC/C,IAAIgD,EAAUmD,EAAgBnG,GAE1BxK,EAASuQ,EAAQ7D,SAASd,SAASrF,GAAGiH,EAAQxN,QAClDA,EAASqF,EAAKyG,iBAAiByE,EAAQ7D,SAASrB,WAAYrL,EAAQ/X,KAAK+jB,eACzE/jB,KAAK2jB,SAAS5F,IAAIhG,GAClBA,EAAS/X,KAAK2jB,SAAS/J,QAAQ7B,GAE/B,IAAI5S,EAAO,KACPogB,EAAQpgB,OACVA,EAAOmjB,EAAQ7D,SAASf,OAAOpF,GAAGiH,EAAQpgB,MAC1CnF,KAAK0jB,OAAO3F,IAAI5Y,GAChBA,EAAOnF,KAAK0jB,OAAO9J,QAAQzU,IAO7B,IAAIwjB,EAAkB,CACpB5Q,OAAQA,EACR+I,cAAeyE,EAAQzE,eACpBwH,EAAQ9D,gBAAgB1D,cAAgB,GAC3CC,gBAAiBwE,EAAQxE,iBACtBuH,EAAQ9D,gBAAgB1D,gBAAkByE,EAAQzE,cACjDwH,EAAQ9D,gBAAgBzD,gBAAkB,EAC1C,GACJkD,aAAcsB,EAAQtB,aACtBC,eAAgBqB,EAAQrB,eACxB/e,KAAMA,GAGRnF,KAAK2kB,oBAAoBjgB,KAAKikB,GACc,iBAAjCA,EAAgB1E,cACzBjkB,KAAK6kB,mBAAmBngB,KAAKikB,EAEjC,CAGFhG,EAAU3iB,KAAK2kB,oBAAqBvH,EAAK+J,qCACzCxE,EAAU3iB,KAAK6kB,mBAAoBzH,EAAKyI,2BAC1C,C,YC/mCF,IAAInD,EAAY,EAAQ,IACpBtF,EAAO,EAAQ,KACfI,EAAW,SACXmD,EAAc,SAUlB,SAASiI,EAAmBnD,GACrBA,IACHA,EAAQ,CAAC,GAEXzlB,KAAKomB,MAAQhJ,EAAK8F,OAAOuC,EAAO,OAAQ,MACxCzlB,KAAKkmB,YAAc9I,EAAK8F,OAAOuC,EAAO,aAAc,MACpDzlB,KAAK6oB,gBAAkBzL,EAAK8F,OAAOuC,EAAO,kBAAkB,GAC5DzlB,KAAK2jB,SAAW,IAAInG,EACpBxd,KAAK0jB,OAAS,IAAIlG,EAClBxd,KAAK8jB,UAAY,IAAInD,EACrB3gB,KAAK8oB,iBAAmB,IAC1B,CAEAF,EAAmBvoB,UAAUijB,SAAW,EAOxCsF,EAAmBlE,cACjB,SAA0CqE,GACxC,IAAI3F,EAAa2F,EAAmB3F,WAChC3Q,EAAY,IAAImW,EAAmB,CACrChS,KAAMmS,EAAmBnS,KACzBwM,WAAYA,IA2Cd,OAzCA2F,EAAmB7D,YAAY,SAAUK,GACvC,IAAIyD,EAAa,CACfC,UAAW,CACT1Q,KAAMgN,EAAQzE,cACdtI,OAAQ+M,EAAQxE,kBAIE,MAAlBwE,EAAQxN,SACViR,EAAWjR,OAASwN,EAAQxN,OACV,MAAdqL,IACF4F,EAAWjR,OAASqF,EAAKqG,SAASL,EAAY4F,EAAWjR,SAG3DiR,EAAWE,SAAW,CACpB3Q,KAAMgN,EAAQtB,aACdzL,OAAQ+M,EAAQrB,gBAGE,MAAhBqB,EAAQpgB,OACV6jB,EAAW7jB,KAAOogB,EAAQpgB,OAI9BsN,EAAU0W,WAAWH,EACvB,GACAD,EAAmB7Q,QAAQrV,QAAQ,SAAUumB,GAC3C,IAAIC,EAAiBD,EACF,OAAfhG,IACFiG,EAAiBjM,EAAKqG,SAASL,EAAYgG,IAGxC3W,EAAUkR,SAAStG,IAAIgM,IAC1B5W,EAAUkR,SAAS5F,IAAIsL,GAGzB,IAAIjN,EAAU2M,EAAmBhB,iBAAiBqB,GACnC,MAAXhN,GACF3J,EAAU6W,iBAAiBF,EAAYhN,EAE3C,GACO3J,CACT,EAYFmW,EAAmBvoB,UAAU8oB,WAC3B,SAAuC1D,GACrC,IAAIwD,EAAY7L,EAAK8F,OAAOuC,EAAO,aAC/ByD,EAAW9L,EAAK8F,OAAOuC,EAAO,WAAY,MAC1C1N,EAASqF,EAAK8F,OAAOuC,EAAO,SAAU,MACtCtgB,EAAOiY,EAAK8F,OAAOuC,EAAO,OAAQ,MAEjCzlB,KAAK6oB,iBACR7oB,KAAKupB,iBAAiBN,EAAWC,EAAUnR,EAAQ5S,GAGvC,MAAV4S,IACFA,EAAS9Q,OAAO8Q,GACX/X,KAAK2jB,SAAStG,IAAItF,IACrB/X,KAAK2jB,SAAS5F,IAAIhG,IAIV,MAAR5S,IACFA,EAAO8B,OAAO9B,GACTnF,KAAK0jB,OAAOrG,IAAIlY,IACnBnF,KAAK0jB,OAAO3F,IAAI5Y,IAIpBnF,KAAK8jB,UAAU/F,IAAI,CACjB+C,cAAemI,EAAU1Q,KACzBwI,gBAAiBkI,EAAUzQ,OAC3ByL,aAA0B,MAAZiF,GAAoBA,EAAS3Q,KAC3C2L,eAA4B,MAAZgF,GAAoBA,EAAS1Q,OAC7CT,OAAQA,EACR5S,KAAMA,GAEV,EAKFyjB,EAAmBvoB,UAAUipB,iBAC3B,SAA6CE,EAAaC,GACxD,IAAI1R,EAASyR,EACW,MAApBxpB,KAAKkmB,cACPnO,EAASqF,EAAKqG,SAASzjB,KAAKkmB,YAAanO,IAGrB,MAAlB0R,GAGGzpB,KAAK8oB,mBACR9oB,KAAK8oB,iBAAmBhpB,OAAO0B,OAAO,OAExCxB,KAAK8oB,iBAAiB1L,EAAKe,YAAYpG,IAAW0R,GACzCzpB,KAAK8oB,0BAGP9oB,KAAK8oB,iBAAiB1L,EAAKe,YAAYpG,IACI,IAA9CjY,OAAO4F,KAAK1F,KAAK8oB,kBAAkB/jB,SACrC/E,KAAK8oB,iBAAmB,MAG9B,EAkBFF,EAAmBvoB,UAAUqpB,eAC3B,SAA2CX,EAAoBS,EAAaG,GAC1E,IAAIP,EAAaI,EAEjB,GAAmB,MAAfA,EAAqB,CACvB,GAA+B,MAA3BT,EAAmBnS,KACrB,MAAM,IAAItT,MACR,iJAIJ8lB,EAAaL,EAAmBnS,IAClC,CACA,IAAIwM,EAAapjB,KAAKkmB,YAEJ,MAAd9C,IACFgG,EAAahM,EAAKqG,SAASL,EAAYgG,IAIzC,IAAIQ,EAAa,IAAIpM,EACjBqM,EAAW,IAAIrM,EAGnBxd,KAAK8jB,UAAU9C,gBAAgB,SAAUuE,GACvC,GAAIA,EAAQxN,SAAWqR,GAAsC,MAAxB7D,EAAQtB,aAAsB,CAEjE,IAAIiF,EAAWH,EAAmB5Q,oBAAoB,CACpDI,KAAMgN,EAAQtB,aACdzL,OAAQ+M,EAAQrB,iBAEK,MAAnBgF,EAASnR,SAEXwN,EAAQxN,OAASmR,EAASnR,OACJ,MAAlB4R,IACFpE,EAAQxN,OAASqF,EAAKzC,KAAKgP,EAAgBpE,EAAQxN,SAEnC,MAAdqL,IACFmC,EAAQxN,OAASqF,EAAKqG,SAASL,EAAYmC,EAAQxN,SAErDwN,EAAQtB,aAAeiF,EAAS3Q,KAChCgN,EAAQrB,eAAiBgF,EAAS1Q,OACb,MAAjB0Q,EAAS/jB,OACXogB,EAAQpgB,KAAO+jB,EAAS/jB,MAG9B,CAEA,IAAI4S,EAASwN,EAAQxN,OACP,MAAVA,GAAmB6R,EAAWvM,IAAItF,IACpC6R,EAAW7L,IAAIhG,GAGjB,IAAI5S,EAAOogB,EAAQpgB,KACP,MAARA,GAAiB0kB,EAASxM,IAAIlY,IAChC0kB,EAAS9L,IAAI5Y,EAGjB,EAAGnF,MACHA,KAAK2jB,SAAWiG,EAChB5pB,KAAK0jB,OAASmG,EAGdd,EAAmB7Q,QAAQrV,QAAQ,SAAUumB,GAC3C,IAAIhN,EAAU2M,EAAmBhB,iBAAiBqB,GACnC,MAAXhN,IACoB,MAAlBuN,IACFP,EAAahM,EAAKzC,KAAKgP,EAAgBP,IAEvB,MAAdhG,IACFgG,EAAahM,EAAKqG,SAASL,EAAYgG,IAEzCppB,KAAKspB,iBAAiBF,EAAYhN,GAEtC,EAAGpc,KACL,EAaF4oB,EAAmBvoB,UAAUkpB,iBAC3B,SAA4CO,EAAYC,EAAWhE,EACvBiE,GAK1C,GAAID,GAAuC,iBAAnBA,EAAUxR,MAAiD,iBAArBwR,EAAUvR,OACpE,MAAM,IAAIlV,MACN,gPAMR,MAAIwmB,GAAc,SAAUA,GAAc,WAAYA,GAC/CA,EAAWvR,KAAO,GAAKuR,EAAWtR,QAAU,IAC3CuR,GAAchE,GAAYiE,MAIzBF,GAAc,SAAUA,GAAc,WAAYA,GAC/CC,GAAa,SAAUA,GAAa,WAAYA,GAChDD,EAAWvR,KAAO,GAAKuR,EAAWtR,QAAU,GAC5CuR,EAAUxR,KAAO,GAAKwR,EAAUvR,QAAU,GAC1CuN,GAKV,MAAM,IAAIziB,MAAM,oBAAsByK,KAAKC,UAAU,CACnDib,UAAWa,EACX/R,OAAQgO,EACRmD,SAAUa,EACV5kB,KAAM6kB,IAGZ,EAMFpB,EAAmBvoB,UAAU4pB,mBAC3B,WAcE,IAbA,IAOI/lB,EACAqhB,EACA2E,EACAC,EAVAvD,EAA0B,EAC1BwD,EAAwB,EACxBtD,EAAyB,EACzBD,EAAuB,EACvBG,EAAe,EACfD,EAAiB,EACjB3d,EAAS,GAMTia,EAAWrjB,KAAK8jB,UAAUtF,UACrB7d,EAAI,EAAGmd,EAAMuF,EAASte,OAAQpE,EAAImd,EAAKnd,IAAK,CAInD,GAFAuD,EAAO,IADPqhB,EAAUlC,EAAS1iB,IAGPmgB,gBAAkBsJ,EAE5B,IADAxD,EAA0B,EACnBrB,EAAQzE,gBAAkBsJ,GAC/BlmB,GAAQ,IACRkmB,SAIF,GAAIzpB,EAAI,EAAG,CACT,IAAKyc,EAAKsE,oCAAoC6D,EAASlC,EAAS1iB,EAAI,IAClE,SAEFuD,GAAQ,GACV,CAGFA,GAAQwe,EAAUlU,OAAO+W,EAAQxE,gBACJ6F,GAC7BA,EAA0BrB,EAAQxE,gBAEZ,MAAlBwE,EAAQxN,SACVoS,EAAYnqB,KAAK2jB,SAAS/J,QAAQ2L,EAAQxN,QAC1C7T,GAAQwe,EAAUlU,OAAO2b,EAAYpD,GACrCA,EAAiBoD,EAGjBjmB,GAAQwe,EAAUlU,OAAO+W,EAAQtB,aAAe,EACnB4C,GAC7BA,EAAuBtB,EAAQtB,aAAe,EAE9C/f,GAAQwe,EAAUlU,OAAO+W,EAAQrB,eACJ4C,GAC7BA,EAAyBvB,EAAQrB,eAEb,MAAhBqB,EAAQpgB,OACV+kB,EAAUlqB,KAAK0jB,OAAO9J,QAAQ2L,EAAQpgB,MACtCjB,GAAQwe,EAAUlU,OAAO0b,EAAUlD,GACnCA,EAAekD,IAInB9gB,GAAUlF,CACZ,CAEA,OAAOkF,CACT,EAEFwf,EAAmBvoB,UAAU8lB,wBAC3B,SAAmDkE,EAAUtF,GAC3D,OAAOsF,EAAS1d,IAAI,SAAUoL,GAC5B,IAAK/X,KAAK8oB,iBACR,OAAO,KAEU,MAAf/D,IACFhN,EAASqF,EAAKqG,SAASsB,EAAahN,IAEtC,IAAIhR,EAAMqW,EAAKe,YAAYpG,GAC3B,OAAOjY,OAAOO,UAAUE,eAAeuB,KAAK9B,KAAK8oB,iBAAkB/hB,GAC/D/G,KAAK8oB,iBAAiB/hB,GACtB,IACN,EAAG/G,KACL,EAKF4oB,EAAmBvoB,UAAUiqB,OAC3B,WACE,IAAI3d,EAAM,CACR0N,QAASra,KAAKsjB,SACdpL,QAASlY,KAAK2jB,SAASnF,UACvB2E,MAAOnjB,KAAK0jB,OAAOlF,UACnB6E,SAAUrjB,KAAKiqB,sBAYjB,OAVkB,MAAdjqB,KAAKomB,QACPzZ,EAAIiK,KAAO5W,KAAKomB,OAEM,MAApBpmB,KAAKkmB,cACPvZ,EAAIyW,WAAapjB,KAAKkmB,aAEpBlmB,KAAK8oB,mBACPnc,EAAIsL,eAAiBjY,KAAKmmB,wBAAwBxZ,EAAIuL,QAASvL,EAAIyW,aAG9DzW,CACT,EAKFic,EAAmBvoB,UAAUwJ,SAC3B,WACE,OAAOkE,KAAKC,UAAUhO,KAAKsqB,SAC7B,EAEF5qB,EAAQ,EAAqBkpB,C,iBCjazBA,EAAqB,QACrBxL,EAAO,EAAQ,KAIfmN,EAAgB,UAQhBC,EAAe,qBAcnB,SAASC,EAAWC,EAAOC,EAAS5E,EAAS6E,EAASZ,GACpDhqB,KAAK6qB,SAAW,GAChB7qB,KAAK8qB,eAAiB,CAAC,EACvB9qB,KAAKuY,KAAgB,MAATmS,EAAgB,KAAOA,EACnC1qB,KAAKwY,OAAoB,MAAXmS,EAAkB,KAAOA,EACvC3qB,KAAK+X,OAAoB,MAAXgO,EAAkB,KAAOA,EACvC/lB,KAAKmF,KAAgB,MAAT6kB,EAAgB,KAAOA,EACnChqB,KAAKwqB,IAAgB,EACN,MAAXI,GAAiB5qB,KAAK+d,IAAI6M,EAChC,CAUAH,EAAWM,wBACT,SAA4CC,EAAgBjC,EAAoBkC,GAG9E,IAAIC,EAAO,IAAIT,EAMXU,EAAiBH,EAAelQ,MAAMyP,GACtCa,EAAsB,EACtBC,EAAgB,WAIlB,OAHmBC,KAELA,KAAiB,IAG/B,SAASA,IACP,OAAOF,EAAsBD,EAAepmB,OACxComB,EAAeC,UAAyB3f,CAC9C,CACF,EAGI8f,EAAoB,EAAG7D,EAAsB,EAK7C8D,EAAc,KAgElB,OA9DAzC,EAAmB7D,YAAY,SAAUK,GACvC,GAAoB,OAAhBiG,EAAsB,CAGxB,KAAID,EAAoBhG,EAAQzE,eAMzB,CAIL,IACIjG,GADA4Q,EAAWN,EAAeC,IAAwB,IAClCM,OAAO,EAAGnG,EAAQxE,gBACR2G,GAO9B,OANAyD,EAAeC,GAAuBK,EAASC,OAAOnG,EAAQxE,gBAC1B2G,GACpCA,EAAsBnC,EAAQxE,gBAC9B4K,EAAmBH,EAAa3Q,QAEhC2Q,EAAcjG,EAEhB,CAlBEoG,EAAmBH,EAAaH,KAChCE,IACA7D,EAAsB,CAiB1B,CAIA,KAAO6D,EAAoBhG,EAAQzE,eACjCoK,EAAKnN,IAAIsN,KACTE,IAEF,GAAI7D,EAAsBnC,EAAQxE,gBAAiB,CACjD,IAAI0K,EAAWN,EAAeC,IAAwB,GACtDF,EAAKnN,IAAI0N,EAASC,OAAO,EAAGnG,EAAQxE,kBACpCoK,EAAeC,GAAuBK,EAASC,OAAOnG,EAAQxE,iBAC9D2G,EAAsBnC,EAAQxE,eAChC,CACAyK,EAAcjG,CAChB,EAAGvlB,MAECorB,EAAsBD,EAAepmB,SACnCymB,GAEFG,EAAmBH,EAAaH,KAGlCH,EAAKnN,IAAIoN,EAAeS,OAAOR,GAAqBzQ,KAAK,MAI3DoO,EAAmB7Q,QAAQrV,QAAQ,SAAUumB,GAC3C,IAAIhN,EAAU2M,EAAmBhB,iBAAiBqB,GACnC,MAAXhN,IACmB,MAAjB6O,IACF7B,EAAahM,EAAKzC,KAAKsQ,EAAe7B,IAExC8B,EAAK5B,iBAAiBF,EAAYhN,GAEtC,GAEO8O,EAEP,SAASS,EAAmBpG,EAAS1K,GACnC,GAAgB,OAAZ0K,QAAuC9Z,IAAnB8Z,EAAQxN,OAC9BmT,EAAKnN,IAAIlD,OACJ,CACL,IAAI9C,EAASkT,EACT7N,EAAKzC,KAAKsQ,EAAe1F,EAAQxN,QACjCwN,EAAQxN,OACZmT,EAAKnN,IAAI,IAAI0M,EAAWlF,EAAQtB,aACRsB,EAAQrB,eACRnM,EACA8C,EACA0K,EAAQpgB,MAClC,CACF,CACF,EAQFslB,EAAWpqB,UAAU0d,IAAM,SAAwB8N,GACjD,GAAI9Q,MAAM+Q,QAAQD,GAChBA,EAAOhpB,QAAQ,SAAU2M,GACvBxP,KAAK+d,IAAIvO,EACX,EAAGxP,UAEA,KAAI6rB,EAAOrB,IAAmC,iBAAXqB,EAMtC,MAAM,IAAI7nB,UACR,8EAAgF6nB,GAN9EA,GACF7rB,KAAK6qB,SAASnmB,KAAKmnB,EAOvB,CACA,OAAO7rB,IACT,EAQAyqB,EAAWpqB,UAAU0rB,QAAU,SAA4BF,GACzD,GAAI9Q,MAAM+Q,QAAQD,GAChB,IAAK,IAAIlrB,EAAIkrB,EAAO9mB,OAAO,EAAGpE,GAAK,EAAGA,IACpCX,KAAK+rB,QAAQF,EAAOlrB,QAGnB,KAAIkrB,EAAOrB,IAAmC,iBAAXqB,EAItC,MAAM,IAAI7nB,UACR,8EAAgF6nB,GAJlF7rB,KAAK6qB,SAAShP,QAAQgQ,EAMxB,CACA,OAAO7rB,IACT,EASAyqB,EAAWpqB,UAAU2rB,KAAO,SAAyBC,GAEnD,IADA,IAAIzc,EACK7O,EAAI,EAAGmd,EAAM9d,KAAK6qB,SAAS9lB,OAAQpE,EAAImd,EAAKnd,KACnD6O,EAAQxP,KAAK6qB,SAASlqB,IACZ6pB,GACRhb,EAAMwc,KAAKC,GAGG,KAAVzc,GACFyc,EAAIzc,EAAO,CAAEuI,OAAQ/X,KAAK+X,OACbQ,KAAMvY,KAAKuY,KACXC,OAAQxY,KAAKwY,OACbrT,KAAMnF,KAAKmF,MAIhC,EAQAslB,EAAWpqB,UAAUsa,KAAO,SAAyBuR,GACnD,IAAIC,EACAxrB,EACAmd,EAAM9d,KAAK6qB,SAAS9lB,OACxB,GAAI+Y,EAAM,EAAG,CAEX,IADAqO,EAAc,GACTxrB,EAAI,EAAGA,EAAImd,EAAI,EAAGnd,IACrBwrB,EAAYznB,KAAK1E,KAAK6qB,SAASlqB,IAC/BwrB,EAAYznB,KAAKwnB,GAEnBC,EAAYznB,KAAK1E,KAAK6qB,SAASlqB,IAC/BX,KAAK6qB,SAAWsB,CAClB,CACA,OAAOnsB,IACT,EASAyqB,EAAWpqB,UAAU+rB,aAAe,SAAiCC,EAAUC,GAC7E,IAAIC,EAAYvsB,KAAK6qB,SAAS7qB,KAAK6qB,SAAS9lB,OAAS,GAUrD,OATIwnB,EAAU/B,GACZ+B,EAAUH,aAAaC,EAAUC,GAEL,iBAAdC,EACdvsB,KAAK6qB,SAAS7qB,KAAK6qB,SAAS9lB,OAAS,GAAKwnB,EAAUze,QAAQue,EAAUC,GAGtEtsB,KAAK6qB,SAASnmB,KAAK,GAAGoJ,QAAQue,EAAUC,IAEnCtsB,IACT,EASAyqB,EAAWpqB,UAAUipB,iBACnB,SAAqCE,EAAaC,GAChDzpB,KAAK8qB,eAAe1N,EAAKe,YAAYqL,IAAgBC,CACvD,EAQFgB,EAAWpqB,UAAUmsB,mBACnB,SAAuCP,GACrC,IAAK,IAAItrB,EAAI,EAAGmd,EAAM9d,KAAK6qB,SAAS9lB,OAAQpE,EAAImd,EAAKnd,IAC/CX,KAAK6qB,SAASlqB,GAAG6pB,IACnBxqB,KAAK6qB,SAASlqB,GAAG6rB,mBAAmBP,GAIxC,IAAI/T,EAAUpY,OAAO4F,KAAK1F,KAAK8qB,gBAC/B,IAASnqB,EAAI,EAAGmd,EAAM5F,EAAQnT,OAAQpE,EAAImd,EAAKnd,IAC7CsrB,EAAI7O,EAAKqP,cAAcvU,EAAQvX,IAAKX,KAAK8qB,eAAe5S,EAAQvX,IAEpE,EAMF8pB,EAAWpqB,UAAUwJ,SAAW,WAC9B,IAAI6c,EAAM,GAIV,OAHA1mB,KAAKgsB,KAAK,SAAUxc,GAClBkX,GAAOlX,CACT,GACOkX,CACT,EAMA+D,EAAWpqB,UAAUqsB,sBAAwB,SAA0CjH,GACrF,IAAIwD,EAAY,CACdpO,KAAM,GACNtC,KAAM,EACNC,OAAQ,GAEN7L,EAAM,IAAIic,EAAmBnD,GAC7BkH,GAAsB,EACtBC,EAAqB,KACrBC,EAAmB,KACnBC,EAAqB,KACrBC,EAAmB,KAqEvB,OApEA/sB,KAAKgsB,KAAK,SAAUxc,EAAO0Z,GACzBD,EAAUpO,MAAQrL,EACM,OAApB0Z,EAASnR,QACY,OAAlBmR,EAAS3Q,MACW,OAApB2Q,EAAS1Q,QACXoU,IAAuB1D,EAASnR,QAC7B8U,IAAqB3D,EAAS3Q,MAC9BuU,IAAuB5D,EAAS1Q,QAChCuU,IAAqB7D,EAAS/jB,MAClCwH,EAAIwc,WAAW,CACbpR,OAAQmR,EAASnR,OACjBmR,SAAU,CACR3Q,KAAM2Q,EAAS3Q,KACfC,OAAQ0Q,EAAS1Q,QAEnByQ,UAAW,CACT1Q,KAAM0Q,EAAU1Q,KAChBC,OAAQyQ,EAAUzQ,QAEpBrT,KAAM+jB,EAAS/jB,OAGnBynB,EAAqB1D,EAASnR,OAC9B8U,EAAmB3D,EAAS3Q,KAC5BuU,EAAqB5D,EAAS1Q,OAC9BuU,EAAmB7D,EAAS/jB,KAC5BwnB,GAAsB,GACbA,IACThgB,EAAIwc,WAAW,CACbF,UAAW,CACT1Q,KAAM0Q,EAAU1Q,KAChBC,OAAQyQ,EAAUzQ,UAGtBoU,EAAqB,KACrBD,GAAsB,GAExB,IAAK,IAAItO,EAAM,EAAGtZ,EAASyK,EAAMzK,OAAQsZ,EAAMtZ,EAAQsZ,IA3WxC,KA4WT7O,EAAM+P,WAAWlB,IACnB4K,EAAU1Q,OACV0Q,EAAUzQ,OAAS,EAEf6F,EAAM,IAAMtZ,GACd6nB,EAAqB,KACrBD,GAAsB,GACbA,GACThgB,EAAIwc,WAAW,CACbpR,OAAQmR,EAASnR,OACjBmR,SAAU,CACR3Q,KAAM2Q,EAAS3Q,KACfC,OAAQ0Q,EAAS1Q,QAEnByQ,UAAW,CACT1Q,KAAM0Q,EAAU1Q,KAChBC,OAAQyQ,EAAUzQ,QAEpBrT,KAAM+jB,EAAS/jB,QAInB8jB,EAAUzQ,QAGhB,GACAxY,KAAKwsB,mBAAmB,SAAUpD,EAAY4D,GAC5CrgB,EAAI2c,iBAAiBF,EAAY4D,EACnC,GAEO,CAAEnS,KAAMoO,EAAUpO,KAAMlO,IAAKA,EACtC,C,WChYAjN,EAAQwjB,OATR,SAAgBuC,EAAOuE,EAAOiD,GAC5B,GAAIjD,KAASvE,EACX,OAAOA,EAAMuE,GACR,GAAyB,IAArBvjB,UAAU1B,OACnB,OAAOkoB,EAEP,MAAM,IAAI3pB,MAAM,IAAM0mB,EAAQ,4BAElC,EAGA,IAAIkD,EAAY,iEACZC,EAAgB,gBAEpB,SAASlF,EAASmF,GAChB,IAAIrW,EAAQqW,EAAKrW,MAAMmW,GACvB,OAAKnW,EAGE,CACLoR,OAAQpR,EAAM,GACdhM,KAAMgM,EAAM,GACZsW,KAAMtW,EAAM,GACZuW,KAAMvW,EAAM,GACZ7O,KAAM6O,EAAM,IAPL,IASX,CAGA,SAASwW,EAAYC,GACnB,IAAItf,EAAM,GAiBV,OAhBIsf,EAAWrF,SACbja,GAAOsf,EAAWrF,OAAS,KAE7Bja,GAAO,KACHsf,EAAWziB,OACbmD,GAAOsf,EAAWziB,KAAO,KAEvByiB,EAAWH,OACbnf,GAAOsf,EAAWH,MAEhBG,EAAWF,OACbpf,GAAO,IAAMsf,EAAWF,MAEtBE,EAAWtlB,OACbgG,GAAOsf,EAAWtlB,MAEbgG,CACT,CAcA,SAASqV,EAAUkK,GACjB,IAAIvlB,EAAOulB,EACPvf,EAAM+Z,EAASwF,GACnB,GAAIvf,EAAK,CACP,IAAKA,EAAIhG,KACP,OAAOulB,EAETvlB,EAAOgG,EAAIhG,IACb,CAIA,IAHA,IAGSwlB,EAHLlK,EAAa9jB,EAAQ8jB,WAAWtb,GAEhCylB,EAAQzlB,EAAK4S,MAAM,OACR8S,EAAK,EAAGjtB,EAAIgtB,EAAM5oB,OAAS,EAAGpE,GAAK,EAAGA,IAEtC,OADb+sB,EAAOC,EAAMhtB,IAEXgtB,EAAM/B,OAAOjrB,EAAG,GACE,OAAT+sB,EACTE,IACSA,EAAK,IACD,KAATF,GAIFC,EAAM/B,OAAOjrB,EAAI,EAAGitB,GACpBA,EAAK,IAELD,EAAM/B,OAAOjrB,EAAG,GAChBitB,MAUN,MAJa,MAFb1lB,EAAOylB,EAAMhT,KAAK,QAGhBzS,EAAOsb,EAAa,IAAM,KAGxBtV,GACFA,EAAIhG,KAAOA,EACJqlB,EAAYrf,IAEdhG,CACT,CAmBA,SAASyS,EAAKkT,EAAOJ,GACL,KAAVI,IACFA,EAAQ,KAEI,KAAVJ,IACFA,EAAQ,KAEV,IAAIK,EAAW7F,EAASwF,GACpBM,EAAW9F,EAAS4F,GAMxB,GALIE,IACFF,EAAQE,EAAS7lB,MAAQ,KAIvB4lB,IAAaA,EAAS3F,OAIxB,OAHI4F,IACFD,EAAS3F,OAAS4F,EAAS5F,QAEtBoF,EAAYO,GAGrB,GAAIA,GAAYL,EAAM1W,MAAMoW,GAC1B,OAAOM,EAIT,GAAIM,IAAaA,EAASV,OAASU,EAAS7lB,KAE1C,OADA6lB,EAASV,KAAOI,EACTF,EAAYQ,GAGrB,IAAIC,EAA6B,MAApBP,EAAM3nB,OAAO,GACtB2nB,EACAlK,EAAUsK,EAAM/f,QAAQ,OAAQ,IAAM,IAAM2f,GAEhD,OAAIM,GACFA,EAAS7lB,KAAO8lB,EACTT,EAAYQ,IAEdC,CACT,CAxIAtuB,EAAQuoB,SAAWA,EAsBnBvoB,EAAQ6tB,YAAcA,EAwDtB7tB,EAAQ6jB,UAAYA,EA2DpB7jB,EAAQib,KAAOA,EAEfjb,EAAQ8jB,WAAa,SAAUiK,GAC7B,MAA2B,MAApBA,EAAM3nB,OAAO,IAAconB,EAAUhW,KAAKuW,EACnD,EAwCA/tB,EAAQ+jB,SAhCR,SAAkBoK,EAAOJ,GACT,KAAVI,IACFA,EAAQ,KAGVA,EAAQA,EAAM/f,QAAQ,MAAO,IAO7B,IADA,IAAImgB,EAAQ,EAC0B,IAA/BR,EAAM7T,QAAQiU,EAAQ,MAAY,CACvC,IAAInN,EAAQmN,EAAMK,YAAY,KAC9B,GAAIxN,EAAQ,EACV,OAAO+M,EAOT,IADAI,EAAQA,EAAM9nB,MAAM,EAAG2a,IACb3J,MAAM,qBACd,OAAO0W,IAGPQ,CACJ,CAGA,OAAOlT,MAAMkT,EAAQ,GAAGtT,KAAK,OAAS8S,EAAM/B,OAAOmC,EAAM9oB,OAAS,EACpE,EAGA,IAAIopB,IAEO,cADCruB,OAAO0B,OAAO,OAI1B,SAAS4sB,EAAUlsB,GACjB,OAAOA,CACT,CA6BA,SAASmsB,EAAcnsB,GACrB,IAAKA,EACH,OAAO,EAGT,IAAI6C,EAAS7C,EAAE6C,OAEf,GAAIA,EAAS,EACX,OAAO,EAGT,GAAiC,KAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,KAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,MAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,MAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,MAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,MAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,MAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,KAA7B7C,EAAEqd,WAAWxa,EAAS,IACO,KAA7B7C,EAAEqd,WAAWxa,EAAS,GACxB,OAAO,EAGT,IAAK,IAAIpE,EAAIoE,EAAS,GAAIpE,GAAK,EAAGA,IAChC,GAAwB,KAApBuB,EAAEqd,WAAW5e,GACf,OAAO,EAIX,OAAO,CACT,CA+EA,SAAS2tB,EAAOC,EAAOC,GACrB,OAAID,IAAUC,EACL,EAGK,OAAVD,EACK,EAGK,OAAVC,GACM,EAGND,EAAQC,EACH,GAGD,CACV,CA1IA9uB,EAAQye,YAAcgQ,EAAoBC,EAP1C,SAAqBnQ,GACnB,OAAIoQ,EAAcpQ,GACT,IAAMA,EAGRA,CACT,EAUAve,EAAQ+sB,cAAgB0B,EAAoBC,EAP5C,SAAuBnQ,GACrB,OAAIoQ,EAAcpQ,GACTA,EAAKlY,MAAM,GAGbkY,CACT,EAuEAve,EAAQmmB,2BA5BR,SAAoCzE,EAAUC,EAAUoN,GACtD,IAAInO,EAAMgO,EAAOlN,EAASrJ,OAAQsJ,EAAStJ,QAC3C,OAAY,IAARuI,GAKQ,KADZA,EAAMc,EAAS6C,aAAe5C,EAAS4C,eAM3B,KADZ3D,EAAMc,EAAS8C,eAAiB7C,EAAS6C,iBACxBuK,GAKL,KADZnO,EAAMc,EAASL,gBAAkBM,EAASN,kBAM9B,KADZT,EAAMc,EAASN,cAAgBO,EAASP,eAlB/BR,EAuBFgO,EAAOlN,EAASjc,KAAMkc,EAASlc,KACxC,EAwCAzF,EAAQynB,oCA5BR,SAA6C/F,EAAUC,EAAUqN,GAC/D,IAAIpO,EAAMc,EAASN,cAAgBO,EAASP,cAC5C,OAAY,IAARR,GAKQ,KADZA,EAAMc,EAASL,gBAAkBM,EAASN,kBACzB2N,GAKL,KADZpO,EAAMgO,EAAOlN,EAASrJ,OAAQsJ,EAAStJ,UAM3B,KADZuI,EAAMc,EAAS6C,aAAe5C,EAAS4C,eAM3B,KADZ3D,EAAMc,EAAS8C,eAAiB7C,EAAS6C,gBAlBhC5D,EAuBFgO,EAAOlN,EAASjc,KAAMkc,EAASlc,KACxC,EAuDAzF,EAAQgiB,oCA5BR,SAA6CN,EAAUC,GACrD,IAAIf,EAAMc,EAASN,cAAgBO,EAASP,cAC5C,OAAY,IAARR,GAKQ,KADZA,EAAMc,EAASL,gBAAkBM,EAASN,kBAM9B,KADZT,EAAMgO,EAAOlN,EAASrJ,OAAQsJ,EAAStJ,UAM3B,KADZuI,EAAMc,EAAS6C,aAAe5C,EAAS4C,eAM3B,KADZ3D,EAAMc,EAAS8C,eAAiB7C,EAAS6C,gBAlBhC5D,EAuBFgO,EAAOlN,EAASjc,KAAMkc,EAASlc,KACxC,EAWAzF,EAAQojB,oBAHR,SAA6B4D,GAC3B,OAAO3Y,KAAK2B,MAAMgX,EAAI5Y,QAAQ,iBAAkB,IAClD,EAsDApO,EAAQmkB,iBA/CR,SAA0BT,EAAYuL,EAAWC,GA8B/C,GA7BAD,EAAYA,GAAa,GAErBvL,IAEwC,MAAtCA,EAAWA,EAAWre,OAAS,IAA+B,MAAjB4pB,EAAU,KACzDvL,GAAc,KAOhBuL,EAAYvL,EAAauL,GAiBvBC,EAAc,CAChB,IAAIC,EAAS5G,EAAS2G,GACtB,IAAKC,EACH,MAAM,IAAIvrB,MAAM,oCAElB,GAAIurB,EAAO3mB,KAAM,CAEf,IAAIwY,EAAQmO,EAAO3mB,KAAKgmB,YAAY,KAChCxN,GAAS,IACXmO,EAAO3mB,KAAO2mB,EAAO3mB,KAAK4mB,UAAU,EAAGpO,EAAQ,GAEnD,CACAiO,EAAYhU,EAAK4S,EAAYsB,GAASF,EACxC,CAEA,OAAOpL,EAAUoL,EACnB,C,aCjeA,QACAjvB,EAAQ2V,kBAAoB,EAA5B,uBACA,M,sBCPA1V,EAAOD,QAAU0H,QAAQ,K,sBCAzBzH,EAAOD,QAAU0H,QAAQ,O,sBCAzBzH,EAAOD,QAAU0H,QAAQ,Q,sBCAzBzH,EAAOD,QAAU0H,QAAQ,O,GCCrB2nB,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBxjB,IAAjByjB,EACH,OAAOA,EAAaxvB,QAGrB,IAAIC,EAASovB,EAAyBE,GAAY,CACjDE,GAAIF,EACJG,QAAQ,EACR1vB,QAAS,CAAC,GAUX,OANA2vB,EAAoBJ,GAAUntB,KAAKnC,EAAOD,QAASC,EAAQA,EAAOD,QAASsvB,GAG3ErvB,EAAOyvB,QAAS,EAGTzvB,EAAOD,OACf,C,OCzBAsvB,EAAoBM,IAAO3vB,IAC1BA,EAAO4vB,MAAQ,GACV5vB,EAAOkrB,WAAUlrB,EAAOkrB,SAAW,IACjClrB,GCAkBqvB,EAAoB,I","sources":["webpack://GeotabApi/webpack/universalModuleDefinition","webpack://GeotabApi/./lib/ApiHelper.js","webpack://GeotabApi/./lib/GeotabApi.js","webpack://GeotabApi/./lib/HttpCall.js","webpack://GeotabApi/./lib/LocalStorageCredentialStore.js","webpack://GeotabApi/./lib/LocalStorageMock.js","webpack://GeotabApi/./lib/api.js","webpack://GeotabApi/./node_modules/buffer-from/index.js","webpack://GeotabApi/./node_modules/regenerator-runtime/runtime.js","webpack://GeotabApi/./node_modules/source-map-support/source-map-support.js","webpack://GeotabApi/./node_modules/source-map/lib/array-set.js","webpack://GeotabApi/./node_modules/source-map/lib/base64-vlq.js","webpack://GeotabApi/./node_modules/source-map/lib/base64.js","webpack://GeotabApi/./node_modules/source-map/lib/binary-search.js","webpack://GeotabApi/./node_modules/source-map/lib/mapping-list.js","webpack://GeotabApi/./node_modules/source-map/lib/quick-sort.js","webpack://GeotabApi/./node_modules/source-map/lib/source-map-consumer.js","webpack://GeotabApi/./node_modules/source-map/lib/source-map-generator.js","webpack://GeotabApi/./node_modules/source-map/lib/source-node.js","webpack://GeotabApi/./node_modules/source-map/lib/util.js","webpack://GeotabApi/./node_modules/source-map/source-map.js","webpack://GeotabApi/external node-commonjs \"fs\"","webpack://GeotabApi/external node-commonjs \"http\"","webpack://GeotabApi/external node-commonjs \"https\"","webpack://GeotabApi/external node-commonjs \"path\"","webpack://GeotabApi/webpack/bootstrap","webpack://GeotabApi/webpack/runtime/node module decorator","webpack://GeotabApi/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GeotabApi\"] = factory();\n\telse\n\t\troot[\"GeotabApi\"] = factory();\n})(Object(typeof self !== \"undefined\" ? self : this), () => {\nreturn ","const LocalStorageCredentialStore = require('./LocalStorageCredentialStore.js').default;\nconst HttpCall = require('./HttpCall.js').default;\n\n/**\n * Helper method for GeotabApi.\n * Allows logic to remain somewhat encapsulated from the user\n */\nclass ApiHelper {\n\n constructor(authentication, options) {\n if (typeof authentication !== 'object') {\n throw new Error('authentication object not provided - must provide an authentication object to instantiate GeotabApi');\n }\n this.options = {\n fullResponse: typeof options.fullResponse === 'undefined' ? false : options.fullResponse,\n rememberMe: typeof options.rememberMe === 'undefined' ? true : options.rememberMe,\n timeout: typeof options.timeout === 'undefined' ? 180 : options.timeout,\n newCredentialStore: typeof options.newCredentialStore === 'undefined' ? false : options.newCredentialStore\n }\n this.credentialStore = this.createStore(options.newCredentialStore);\n if (authentication.credentials.sessionId) {\n // Throwing an error if path isn't provided when using sessionID\n if (typeof authentication.path === 'undefined') {\n throw new Error('Path not provided - Must provide server path if providing sessionId in authentication object');\n }\n if (this.options.rememberMe) {\n this.credentialStore.set(authentication.credentials, authentication.path);\n }\n }\n this.cred = authentication.credentials;\n this.server = authentication.path;\n }\n\n /**\n * Getters/Setters\n * Helps reduce code when calling from GeotabApi\n */\n get sessionId() {\n return this.cred.sessionId;\n }\n\n get database() {\n return this.cred.database;\n }\n\n get userName() {\n return this.cred.userName;\n }\n\n get password() {\n return this.cred.password;\n }\n\n get rememberMe() {\n return this.options.rememberMe;\n }\n\n get fullResponse() {\n return this.options.fullResponse;\n }\n\n /**\n * Creates the credentialStore. Either an object provided by the user,\n * created as a mock localStorage object (node) or a reference to\n * the actual localStorage (browser)\n * @param {object} newStore an Override credentialStore\n */\n createStore(newStore) {\n return newStore || new LocalStorageCredentialStore();\n }\n\n /**\n * checks the credentialStore for stored credentials\n * @returns false if no store, credentials object if there are credentials\n */\n getLocalCredentials() {\n let store = this.credentialStore.get();\n if (store) {\n if (store.server) {\n this.server = store.server;\n }\n return store.credentials;\n }\n return store;\n }\n\n /**\n * Sets the local credentials\n * @param {object} credentials credentials object using result of a promise\n */\n setLocalCredentials(credentials, server) {\n this.credentialStore.set(credentials, server);\n }\n\n clearLocalCredentials() {\n this.credentialStore.clear();\n }\n\n /**\n * Gets and stores authentication response using GeotabApi.authenticate()\n * @param {function} authenticate API authentication method - context binded to GeotabApi\n * @param {function} callbackError optional callback error for unsuccessful authentications\n * @param {boolean} rememberMe stores authentication once received\n */\n async getAuthentication(authenticate, rememberMe) {\n return authenticate().then(response => {\n // Response changes based on error handling.\n let data = response.data ? response.data.result : response;\n if (data.path !== 'ThisServer') {\n this.server = data.path;\n }\n // Successful authentication\n if (rememberMe) {\n this.setLocalCredentials(data.credentials, this.server);\n }\n this.cred.sessionId = data.credentials.sessionId;\n return data.credentials;\n });\n }\n\n /**\n * When the user doesn't have fullResposne enabled, we put some promises in front of the call\n * to return only data.result to the user\n * @param {Promise} call Http call\n */\n parseHttpResponse(call) {\n return call\n .then(response => {\n // Error handling has already taken errors out in either errorHandle() or HttpCall.send()\n if (response.data.result) {\n return response.data.result;\n }\n return response;\n });\n }\n\n /**\n * Error handling - only called if fullresponse isn't enabled, and if the user hasn't provided a callback\n * @param {Promise} call Http call\n * @param {function} callbackError Optional callback for unsuccessful calls\n */\n errorHandle(call, callbackError) {\n function dispatchError(message, errorDetails) {\n let error = new Error(message);\n if (callbackError) {\n callbackError(error.toString(), errorDetails || error);\n } else {\n throw error;\n }\n }\n // User hasn't asked for the full http object, so we should error check\n return call\n .then(response => {\n if (response.status && response.status !== 200) {\n dispatchError(`Response ${response.status} - ${response.statusText}`, null);\n }\n // node http/https returns a different response schema\n if (response.statusCode && response.statusCode !== 200) {\n dispatchError(`Response ${response.statusCode} - ${response.statusMessage}`, null);\n }\n return response;\n })\n .then(response => {\n if (response.data && response.data.error) {\n dispatchError(`${response.data.error.data.type}: ${response.data.error.message}`, response.data.error);\n }\n return response;\n });\n }\n\n /**\n * Creates a new HttpCall and returns it to the user. If the call fails,\n * and the call isn't an authentication, the call will attempt to\n * refresh the credentials\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @param {function} authenticate authentication function. Context binded to GeotabApi\n * @param {boolean} rememberMe should store authentication results\n */\n async sendHttpCall(method, params, callbackSuccess, callbackError, authenticate, rememberMe) {\n let call = new HttpCall(method, this.server, params, callbackSuccess).send(this.options.timeout);\n // We don't want to continue retrying if we fail authentication\n if (method !== 'Authenticate') {\n call = call.then(async response => {\n let data = response.data;\n // Checking for a failed authentication\n if (data.error) {\n if (data.error.data.type === 'InvalidUserException') {\n // Doesn't hurt to clear even if we're not remembering/storing them\n this.clearLocalCredentials();\n // Assuming there was a session timeout, re-running authentication\n await this.getAuthentication(authenticate, rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n return new HttpCall(method, this.server, params, callbackSuccess).send(this.options.timeout);\n }\n }\n return response;\n })\n } else {\n call = call.then(response => {\n if (response.data.result) {\n let server = response.data.result.path === 'ThisServer' ? this.server : response.data.result.path;\n this.server = server;\n if (this.rememberMe) {\n this.setLocalCredentials(response.data.result.credentials, server);\n }\n }\n return response;\n });\n }\n return call;\n }\n}\n\nexports.default = ApiHelper;\n","const ApiHelper = require('./ApiHelper.js').default;\n\n/**\n * Entrypoint to API. Separate class is used to expose \"public\"\n * methods only to the user - Babel currently doesn't support\n * ES10 access modifiers\n */\nclass GeotabApi {\n\n /**\n * Constructor for GeotabApi\n *\n * @param {Object} authentication Holds credentials: {\n * userName: '',\n * password/sessionId: '',\n * database: ''\n * }\n* path: '',\n * @param {*} newOptions overrides default options\n */\n constructor(authentication, newOptions = {}) {\n this._helper = new ApiHelper(authentication, newOptions);\n // Because we send the authenticate method to the helper, we bind it's context here\n this.authenticate = this.authenticate.bind(this);\n }\n\n /**\n * Authenticates the user against the server. Gets the sessionId and other relevant session information\n *\n * @param {function} callbackSuccess optional callback for successful authentications\n * @param {function} callbackError optional callback for unsuccessful authentications\n * @returns {promise} Call promise - result will be either response.data.error or response.data.result\n */\n async authenticate(callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n // We will never authenticate with a sessionID. Authentication provides the sessionId\n let options = {\n database: this._helper.database,\n userName: this._helper.userName,\n password: this._helper.password\n }\n let result = this.callimpl('Authenticate', options, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n\n }\n\n /**\n * Constructs an API call to MyGeotab\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @returns {promise} an http/fetch promise which will resolve to either data.error or data.result\n */\n async call(method, params, callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n\n let result = this.callimpl(method, params, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n }\n\n /**\n * Constructs an API call to MyGeotab\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @returns {promise} an http/fetch promise which will resolve to either data.error or data.result\n */\n async callimpl(method, params, callbackSuccess, callbackError) {\n // Defining our credentials\n if (this._helper.sessionId) {\n params.credentials = {\n database: this._helper.database,\n sessionId: this._helper.sessionId,\n userName: this._helper.userName\n }\n } else if (this._helper.rememberMe && method !== 'Authenticate' && !this._helper.sessionId) {\n // Check store for credentials\n let storedCredentials = await this._helper.getLocalCredentials();\n if (storedCredentials) {\n params.credentials = storedCredentials;\n } else {\n // Send auth request if no store\n await this._helper.getAuthentication(this.authenticate, this._helper.rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n }\n // assign credentials with session ID from local storage\n } else if (method !== 'Authenticate' && !this._helper.rememberMe && !this._helper.sessionId) {\n // Needs primary authentication\n await this._helper.getAuthentication(this.authenticate, this._helper.rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n }\n // Creating the actual call\n let call = this._helper.sendHttpCall(method, params, callbackSuccess, callbackError, this.authenticate, this._helper.rememberMe);\n // Seeing if the user wants the full response object, or default error handling\n if (!this._helper.fullResponse) {\n call = this._helper.errorHandle(call, callbackError);\n call = this._helper.parseHttpResponse(call);\n }\n // Returning call to user\n return call;\n }\n\n /**\n * Constructs a multicall to myGeotab\n *\n * @param {array} calls array of calls to be included in the multicall\n * @param {function} callbackSuccess optional callback function for successful multicalls\n * @param {function} callbackError optional callback function for unsuccessful multicalls\n * @returns {promise} returns call promise\n */\n async multiCall(calls, callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n let formattedCalls = calls.map(call => {\n let params = call[1];\n return {\n method: call[0],\n params: params\n }\n });\n\n\n let result = this.callimpl('ExecuteMultiCall', {\n calls: formattedCalls\n }, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n }\n\n /**\n * Gets a stored or new session\n * @param {function} callbackSuccess optional callback for successes\n * @param {boolean} newSession override any stored credentials and fetch a new session\n * @returns {promise} returns call promise\n */\n async getSession(callbackSuccess, newSession) {\n let cred = await this._helper.getLocalCredentials();\n let response;\n if (!newSession && this._helper.rememberMe) {\n // If we have a stored session\n if (cred) {\n response = this._helper.fullResponse ? { data: { result: { credentials: cred, path: this._helper.server } } } : { credentials: cred, path: this._helper.server };\n if (callbackSuccess) {\n // New behavior -> Just returning the result\n if (callbackSuccess.length === 1) {\n callbackSuccess(response);\n } else if (callbackSuccess.length === 2) {\n // Legacy behavior -> Return path and credentials\n callbackSuccess(cred.credentials, this._helper.server);\n }\n return;\n } else {\n return response;\n }\n } else {\n return this.authenticate(callbackSuccess);\n }\n // Grabbing new credentials\n } else {\n cred = this.authenticate();\n if (callbackSuccess) {\n cred = await cred.then(response => this._helper.fullResponse ? response.data.result.credentials : response);\n response = this._helper.fullResponse ? { data: { result: { credentials: cred, path: this._helper.server } } } : { credentials: cred.credentials, path: this._helper.server };\n if (callbackSuccess.length === 1) {\n callbackSuccess(response);\n } else if (callbackSuccess.length === 2) {\n // Legacy getSession asks for credentials and server\n callbackSuccess(cred.credentials, this._helper.server);\n }\n } else {\n return cred;\n }\n }\n }\n\n /**\n * Forgets the session in local storage\n * Resets session with already provided credentials\n */\n async forget() {\n this._helper.clearLocalCredentials();\n return this.authenticate();\n }\n}\n\nexports.default = GeotabApi;\n","const http = typeof window === 'undefined' ? require('http') : null;\nconst https = typeof window === 'undefined' ? require('https') : null;\n\nclass HttpCall {\n\n constructor(method, server, params, callbackSuccess) {\n this.config = {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n this.callbackSuccess = callbackSuccess;\n this.server = server;\n this.body = {\n method: method || '',\n params: params\n };\n }\n\n getCallUrl() {\n let server = this.server || 'my.geotab.com';\n let thisServer = server.replace(/\\S*:\\/\\//, '').replace(/\\/$/, '');\n return 'https://' + thisServer + '/apiv1/';\n }\n\n encode(data) {\n let stringBody = JSON.stringify({\n method: data.method || '',\n params: data.params\n })\n return stringBody;\n }\n\n /**\n * Sends http/fetch request depending on environment.\n * @param {int} timeout amount in milliseconds for timeout.\n * options.timeout * 1000 is a good start\n * Defaults to no timeout (0)\n * @returns {Promise} http/fetch response object wrapped in a promise\n */\n async send(timeout) {\n const url = this.getCallUrl();\n const body = this.encode(this.body);\n const headers = this.config.headers;\n\n if (typeof window !== 'undefined' && window.fetch) {\n // Web environment (using fetch)\n let fetchTimeout;\n const fetchPromise = fetch(url, {\n method: 'POST',\n headers: headers,\n body: body\n });\n\n const timeoutPromise = new Promise((_, reject) => {\n fetchTimeout = setTimeout(() => reject(new Error('Request timed out')), timeout * 1000);\n });\n\n return Promise.race([fetchPromise, timeoutPromise])\n .then(async response => {\n clearTimeout(fetchTimeout);\n const data = await response.json();\n response.data = data;\n if (this.callbackSuccess && !data.error) {\n this.callbackSuccess(data.result);\n }\n return response;\n })\n .catch(error => {\n return Promise.reject(error);\n });\n\n } else {\n // Node.js environment (using http/https)\n const urlObj = new URL(url);\n const options = {\n hostname: urlObj.hostname,\n path: urlObj.pathname,\n method: 'POST',\n headers: headers,\n timeout: timeout * 1000\n };\n\n return new Promise((resolve, reject) => {\n const req = (urlObj.protocol === 'https:' ? https : http).request(options, res => {\n let data = '';\n res.on('data', chunk => data += chunk);\n res.on('end', () => {\n try {\n const parsedData = JSON.parse(data);\n res.data = parsedData; // Attach parsed response body to the response object.\n if (this.callbackSuccess && !parsedData.error) {\n this.callbackSuccess(parsedData.result);\n }\n resolve(res);\n } catch (error) {\n reject(error);\n }\n });\n });\n\n req.on('error', reject);\n req.on('timeout', () => {\n req.destroy();\n reject(new Error('Request timed out'));\n });\n\n req.write(body);\n req.end();\n });\n }\n }\n}\n\nexports.default = HttpCall;\n","const LocalStorageMock = require('./LocalStorageMock').default;\n\n/**\n * Object to interact with the localStorage for stored credentials.\n * Can interact with localStorage (browser) or LocalStorageMock (node) \n */\nclass LocalStorageCredentialStore {\n constructor(){\n this.credentials_key = 'geotabAPI_credentials';\n this.server_key = 'geotabAPI_server';\n\n if (typeof localStorage === 'undefined' || localStorage === null || typeof localStorage.getItem !== 'function') {\n // Mocking local storage for nodeJS implementation. \n this.localStorage = new LocalStorageMock();\n } else {\n this.localStorage = localStorage;\n }\n }\n\n get() {\n let storedCredentials = this.localStorage.getItem(this.credentials_key);\n let storedServer = this.localStorage.getItem(this.server_key) || 'my.geotab.com';\n let thisCredentials = false;\n\n if (storedCredentials && storedServer) {\n try {\n thisCredentials = {\n credentials: JSON.parse(storedCredentials),\n server: storedServer\n }\n } catch (e) {\n console.log('error', e);\n // Malformed JSON\n return false;\n }\n }\n return thisCredentials;\n }\n\n set(credentials, server) {\n if(credentials){\n this.localStorage.setItem(this.credentials_key, JSON.stringify(credentials));\n }\n if(server){\n this.localStorage.setItem(this.server_key, server);\n }\n }\n\n clear() {\n this.localStorage.removeItem(this.credentials_key);\n this.localStorage.removeItem(this.server_key);\n }\n}\n\nexports.default = LocalStorageCredentialStore;","/**\n * A local storage mock to be used with node. Intended to \n * be an easy solution to re-working the existing localstorage system\n * and maintaining legacy support.\n * \n * Nodejs has several libraries that create it's own localStorage \n * functionality, but all of these seem to rely on node's filesystem\n * library (fs) to make things work. This turns out to be a significant\n * issue because webpack can't compile the fs library:\n * - No comparable function in the browser\n * - Not supported by their (now depreciated) core module mocks\n * https://www.npmjs.com/package/node-libs-browser\n * \n * Using the localstorage libraries in the api will work provided the\n * end user is also using webpack, and adds\n * \n * node: {\n * fs: 'empty'\n * }\n * \n * to their config file, but that would break legacy support as\n * most legacy api addins will likely use gulp\n */\nclass LocalStorageMock {\n constructor(){\n this._state = {};\n }\n\n getItem(key){\n return this._state[key];\n }\n\n setItem(key, value){\n this._state[key] = value;\n }\n\n removeItem(key){\n delete this._state[key];\n }\n\n clear(){\n this._state = {};\n }\n}\n\nexports.default = LocalStorageMock;","/*! mg-api-js - v3.0.2\n * Release on: 2026-04-13\n * Copyright (c) 2020 Geotab Inc\n * Licensed MIT */\n// UMD Declaration\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function () {\n return (root['GeotabApi'] = factory());\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n root['GeotabApi'] = factory();\n }\n}(this, function () {\n // Sourcemap node support causes browser issues. Checks for browser global before requiring\n if(typeof window !== 'object'){\n require('source-map-support').install();\n }\n // Allowing async for ie10/11 - webpack requirement\n const regeneratorRuntime = require('regenerator-runtime'); \n const GeotabApi = require('./GeotabApi.js').default;\n /**\n * ** NOTE ** This version (uncompiled with webpack) of the API will not work on browsers.\n * This will fail due to the node module dependancies not being shaken/added to the \n * output file\n */\n // Exposing the object - acts like a constructor for browser implementations\n return GeotabApi;\n}));","/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"path\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(503);\n"],"names":["root","factory","exports","module","define","amd","Object","self","this","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","key","toPrimitive","String","_toPrimitive","LocalStorageCredentialStore","require","HttpCall","ApiHelper","authentication","options","_classCallCheck","fullResponse","rememberMe","timeout","newCredentialStore","credentialStore","createStore","credentials","sessionId","path","set","cred","server","get","database","userName","password","newStore","store","clear","_getAuthentication","_callee","authenticate","_this","_context","response","data","result","setLocalCredentials","_x","_x2","callbackError","dispatchError","message","errorDetails","error","toString","status","concat","statusText","statusCode","statusMessage","_sendHttpCall","_callee3","params","callbackSuccess","_this2","_context3","send","_ref","_callee2","_context2","clearLocalCredentials","getAuthentication","auth","_x9","_x3","_x4","_x5","_x6","_x7","_x8","GeotabApi","newOptions","undefined","_helper","bind","_authenticate","callimpl","_call","_callimpl","storedCredentials","getLocalCredentials","sendHttpCall","errorHandle","parseHttpResponse","_x0","_multiCall","_callee4","calls","formattedCalls","_context4","map","_x1","_x10","_x11","_getSession","_callee5","newSession","_context5","_x12","_x13","_forget","_callee6","_context6","http","window","https","config","headers","body","replace","JSON","stringify","_send","url","fetchTimeout","fetchPromise","timeoutPromise","urlObj","getCallUrl","encode","fetch","_","reject","setTimeout","race","clearTimeout","json","URL","hostname","pathname","req","protocol","request","res","on","chunk","parsedData","parse","destroy","write","end","LocalStorageMock","credentials_key","server_key","localStorage","getItem","storedServer","thisCredentials","console","log","setItem","removeItem","_state","isModern","Buffer","alloc","allocUnsafe","from","encodingOrOffset","input","obj","byteOffset","maxLength","byteLength","RangeError","Uint8Array","fromArrayBuffer","string","encoding","isEncoding","fromString","runtime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","err","innerFn","outerFn","tryLocsList","protoGenerator","generator","context","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","PromiseImpl","record","unwrapped","previousPromise","state","doneResult","delegateResult","methodName","info","locs","entry","iterable","iteratorMethod","genFun","ctor","iter","val","object","skipTempReset","rootRecord","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","regeneratorRuntime","accidentalStrictMode","globalThis","Function","fs","SourceMapConsumer","existsSync","readFileSync","bufferFrom","dynamicRequire","mod","errorFormatterInstalled","uncaughtShimInstalled","emptyCacheBetweenOperations","environment","fileContentsCache","sourceMapCache","reSourceMap","retrieveFileHandlers","retrieveMapHandlers","isInBrowser","XMLHttpRequest","process","handlerExec","list","ret","retrieveFile","supportRelativeURL","file","dir","dirname","match","exec","startPath","test","trim","drive","contents","xhr","open","readyState","responseText","er","retrieveSourceMap","mapSourcePosition","position","sourceMap","source","urlAndMap","sourcesContent","sources","originalPositionFor","originalPosition","mapEvalOrigin","origin","line","column","CallSiteToString","fileName","fileLocation","isNative","getScriptNameOrSourceURL","isEval","getEvalOrigin","lineNumber","getLineNumber","columnNumber","getColumnNumber","functionName","getFunctionName","addSuffix","isConstructor","isToplevel","typeName","getTypeName","getMethodName","indexOf","cloneCallSite","frame","getOwnPropertyNames","wrapCallSite","nextPosition","curPosition","getFileName","headerLength","version","originalFunctionName","prepareStackTrace","stack","errorString","processedStack","join","getErrorSource","code","split","Array","sourceMapData","sourceMappingURL","fileData","sourceMapHeader","getResponseHeader","lastMatch","re","retrieveSourceMapURL","rawData","originalRetrieveFileHandlers","originalRetrieveMapHandlers","install","overrideRetrieveFile","unshift","overrideRetrieveSourceMap","hookRequire","Module","$compile","_compile","__sourceMapSupport","content","filename","installHandler","handleUncaughtExceptions","isMainThread","origEmit","emit","hasStack","hasListeners","listeners","stderr","globalProcessStderr","_handle","setBlocking","exit","resetRetrieveHandlers","util","has","hasNativeMap","Map","ArraySet","_array","_set","fromArray","aArray","aAllowDuplicates","len","add","size","aStr","sStr","toSetString","isDuplicate","idx","at","aIdx","toArray","base64","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","decode","aIndex","aOutParam","continuation","shifted","strLen","shift","charCodeAt","rest","intToCharMap","number","charCode","recursiveSearch","aLow","aHigh","aNeedle","aHaystack","aCompare","aBias","mid","Math","floor","cmp","LEAST_UPPER_BOUND","GREATEST_LOWER_BOUND","search","index","MappingList","_sorted","_last","generatedLine","generatedColumn","unsortedForEach","aCallback","aThisArg","aMapping","mappingA","mappingB","lineA","lineB","columnA","columnB","compareByGeneratedPositionsInflated","sort","swap","ary","x","temp","doQuickSort","comparator","low","high","round","random","pivot","j","q","binarySearch","base64VLQ","quickSort","aSourceMap","aSourceMapURL","parseSourceMapInput","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","getArg","names","sourceRoot","mappings","_version","normalize","isAbsolute","relative","_names","_sources","_absoluteSources","computeSourceURL","_mappings","_sourceMapURL","Mapping","originalLine","originalColumn","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","eachMapping","aContext","aOrder","_generatedMappings","_originalMappings","mapping","allGeneratedPositionsFor","aArgs","needle","_findSourceIndex","_findMapping","compareByOriginalPositions","lastColumn","aSource","relativeSource","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","originalMappings","compareByGeneratedPositionsDeflated","aMappings","aLineName","aColumnName","aComparator","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","sourceContentFor","nullOnMissing","urlParse","fileUriAbsPath","scheme","generatedPositionFor","sectionIndex","section","bias","every","generatedPosition","sectionMappings","adjustedMapping","SourceMapGenerator","_skipValidation","_sourcesContents","aSourceMapConsumer","newMapping","generated","original","addMapping","sourceFile","sourceRelative","setSourceContent","_validateMapping","aSourceFile","aSourceContent","applySourceMap","aSourceMapPath","newSources","newNames","aGenerated","aOriginal","aName","_serializeMappings","nameIdx","sourceIdx","previousGeneratedLine","aSources","toJSON","REGEX_NEWLINE","isSourceNode","SourceNode","aLine","aColumn","aChunks","children","sourceContents","fromStringWithSourceMap","aGeneratedCode","aRelativePath","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lastGeneratedLine","lastMapping","nextLine","substr","addMappingWithCode","splice","aChunk","isArray","prepend","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","fromSetString","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","host","port","urlGenerate","aParsedUrl","aPath","part","parts","up","aRoot","aPathUrl","aRootUrl","joined","level","lastIndexOf","supportsNullProto","identity","isProtoString","strcmp","aStr1","aStr2","onlyCompareOriginal","onlyCompareGenerated","sourceURL","sourceMapURL","parsed","substring","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","nmd","paths"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"api.min.js","mappings":"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","sources":["webpack://GeotabApi/webpack/universalModuleDefinition","webpack://GeotabApi/./lib/ApiHelper.js","webpack://GeotabApi/./lib/GeotabApi.js","webpack://GeotabApi/./lib/HttpCall.js","webpack://GeotabApi/./lib/LocalStorageCredentialStore.js","webpack://GeotabApi/./lib/LocalStorageMock.js","webpack://GeotabApi/./lib/api.js","webpack://GeotabApi/./node_modules/buffer-from/index.js","webpack://GeotabApi/./node_modules/regenerator-runtime/runtime.js","webpack://GeotabApi/./node_modules/source-map-support/source-map-support.js","webpack://GeotabApi/./node_modules/source-map/lib/array-set.js","webpack://GeotabApi/./node_modules/source-map/lib/base64-vlq.js","webpack://GeotabApi/./node_modules/source-map/lib/base64.js","webpack://GeotabApi/./node_modules/source-map/lib/binary-search.js","webpack://GeotabApi/./node_modules/source-map/lib/mapping-list.js","webpack://GeotabApi/./node_modules/source-map/lib/quick-sort.js","webpack://GeotabApi/./node_modules/source-map/lib/source-map-consumer.js","webpack://GeotabApi/./node_modules/source-map/lib/source-map-generator.js","webpack://GeotabApi/./node_modules/source-map/lib/source-node.js","webpack://GeotabApi/./node_modules/source-map/lib/util.js","webpack://GeotabApi/./node_modules/source-map/source-map.js","webpack://GeotabApi/external node-commonjs \"fs\"","webpack://GeotabApi/external node-commonjs \"http\"","webpack://GeotabApi/external node-commonjs \"https\"","webpack://GeotabApi/external node-commonjs \"path\"","webpack://GeotabApi/webpack/bootstrap","webpack://GeotabApi/webpack/runtime/node module decorator","webpack://GeotabApi/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GeotabApi\"] = factory();\n\telse\n\t\troot[\"GeotabApi\"] = factory();\n})(Object(typeof self !== \"undefined\" ? self : this), () => {\nreturn ","const LocalStorageCredentialStore = require('./LocalStorageCredentialStore.js').default;\nconst HttpCall = require('./HttpCall.js').default;\n\n/**\n * Helper method for GeotabApi.\n * Allows logic to remain somewhat encapsulated from the user\n */\nclass ApiHelper {\n\n constructor(authentication, options) {\n if (typeof authentication !== 'object') {\n throw new Error('authentication object not provided - must provide an authentication object to instantiate GeotabApi');\n }\n this.options = {\n fullResponse: typeof options.fullResponse === 'undefined' ? false : options.fullResponse,\n rememberMe: typeof options.rememberMe === 'undefined' ? true : options.rememberMe,\n timeout: typeof options.timeout === 'undefined' ? 180 : options.timeout,\n newCredentialStore: typeof options.newCredentialStore === 'undefined' ? false : options.newCredentialStore\n }\n this.credentialStore = this.createStore(options.newCredentialStore);\n if (authentication.credentials.sessionId) {\n // Throwing an error if path isn't provided when using sessionID\n if (typeof authentication.path === 'undefined') {\n throw new Error('Path not provided - Must provide server path if providing sessionId in authentication object');\n }\n if (this.options.rememberMe) {\n this.credentialStore.set(authentication.credentials, authentication.path);\n }\n }\n this.cred = authentication.credentials;\n this.server = authentication.path;\n }\n\n /**\n * Getters/Setters\n * Helps reduce code when calling from GeotabApi\n */\n get sessionId() {\n return this.cred.sessionId;\n }\n\n get database() {\n return this.cred.database;\n }\n\n get userName() {\n return this.cred.userName;\n }\n\n get password() {\n return this.cred.password;\n }\n\n get rememberMe() {\n return this.options.rememberMe;\n }\n\n get fullResponse() {\n return this.options.fullResponse;\n }\n\n /**\n * Creates the credentialStore. Either an object provided by the user,\n * created as a mock localStorage object (node) or a reference to\n * the actual localStorage (browser)\n * @param {object} newStore an Override credentialStore\n */\n createStore(newStore) {\n return newStore || new LocalStorageCredentialStore();\n }\n\n /**\n * checks the credentialStore for stored credentials\n * @returns false if no store, credentials object if there are credentials\n */\n getLocalCredentials() {\n let store = this.credentialStore.get();\n if (store) {\n if (store.server) {\n this.server = store.server;\n }\n return store.credentials;\n }\n return store;\n }\n\n /**\n * Sets the local credentials\n * @param {object} credentials credentials object using result of a promise\n */\n setLocalCredentials(credentials, server) {\n this.credentialStore.set(credentials, server);\n }\n\n clearLocalCredentials() {\n this.credentialStore.clear();\n }\n\n /**\n * Gets and stores authentication response using GeotabApi.authenticate()\n * @param {function} authenticate API authentication method - context binded to GeotabApi\n * @param {function} callbackError optional callback error for unsuccessful authentications\n * @param {boolean} rememberMe stores authentication once received\n */\n async getAuthentication(authenticate, rememberMe) {\n return authenticate().then(response => {\n // Response changes based on error handling.\n let data = response.data ? response.data.result : response;\n if (data.path !== 'ThisServer') {\n this.server = data.path;\n }\n // Successful authentication\n if (rememberMe) {\n this.setLocalCredentials(data.credentials, this.server);\n }\n this.cred.sessionId = data.credentials.sessionId;\n return data.credentials;\n });\n }\n\n /**\n * When the user doesn't have fullResposne enabled, we put some promises in front of the call\n * to return only data.result to the user\n * @param {Promise} call Http call\n */\n parseHttpResponse(call) {\n return call\n .then(response => {\n // Error handling has already taken errors out in either errorHandle() or HttpCall.send()\n if (response.data.result) {\n return response.data.result;\n }\n return response;\n });\n }\n\n /**\n * Error handling - only called if fullresponse isn't enabled, and if the user hasn't provided a callback\n * @param {Promise} call Http call\n * @param {function} callbackError Optional callback for unsuccessful calls\n */\n errorHandle(call, callbackError) {\n function dispatchError(message, errorDetails) {\n let error = new Error(message);\n if (callbackError) {\n callbackError(error.toString(), errorDetails || error);\n } else {\n throw error;\n }\n }\n // User hasn't asked for the full http object, so we should error check\n return call\n .then(response => {\n if (response.status && response.status !== 200) {\n dispatchError(`Response ${response.status} - ${response.statusText}`, null);\n }\n // node http/https returns a different response schema\n if (response.statusCode && response.statusCode !== 200) {\n dispatchError(`Response ${response.statusCode} - ${response.statusMessage}`, null);\n }\n return response;\n })\n .then(response => {\n if (response.data && response.data.error) {\n dispatchError(`${response.data.error.data.type}: ${response.data.error.message}`, response.data.error);\n }\n return response;\n });\n }\n\n /**\n * Creates a new HttpCall and returns it to the user. If the call fails,\n * and the call isn't an authentication, the call will attempt to\n * refresh the credentials\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @param {function} authenticate authentication function. Context binded to GeotabApi\n * @param {boolean} rememberMe should store authentication results\n */\n async sendHttpCall(method, params, callbackSuccess, callbackError, authenticate, rememberMe) {\n let call = new HttpCall(method, this.server, params, callbackSuccess).send(this.options.timeout);\n // We don't want to continue retrying if we fail authentication\n if (method !== 'Authenticate') {\n call = call.then(async response => {\n let data = response.data;\n // Checking for a failed authentication\n if (data.error) {\n if (data.error.data.type === 'InvalidUserException') {\n // Doesn't hurt to clear even if we're not remembering/storing them\n this.clearLocalCredentials();\n // Assuming there was a session timeout, re-running authentication\n await this.getAuthentication(authenticate, rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n return new HttpCall(method, this.server, params, callbackSuccess).send(this.options.timeout);\n }\n }\n return response;\n })\n } else {\n call = call.then(response => {\n if (response.data.result) {\n let server = response.data.result.path === 'ThisServer' ? this.server : response.data.result.path;\n this.server = server;\n if (this.rememberMe) {\n this.setLocalCredentials(response.data.result.credentials, server);\n }\n }\n return response;\n });\n }\n return call;\n }\n}\n\nexports.default = ApiHelper;\n","const ApiHelper = require('./ApiHelper.js').default;\n\n/**\n * Entrypoint to API. Separate class is used to expose \"public\"\n * methods only to the user - Babel currently doesn't support\n * ES10 access modifiers\n */\nclass GeotabApi {\n\n /**\n * Constructor for GeotabApi\n *\n * @param {Object} authentication Holds credentials: {\n * userName: '',\n * password/sessionId: '',\n * database: ''\n * }\n* path: '',\n * @param {*} newOptions overrides default options\n */\n constructor(authentication, newOptions = {}) {\n this._helper = new ApiHelper(authentication, newOptions);\n // Because we send the authenticate method to the helper, we bind it's context here\n this.authenticate = this.authenticate.bind(this);\n }\n\n /**\n * Authenticates the user against the server. Gets the sessionId and other relevant session information\n *\n * @param {function} callbackSuccess optional callback for successful authentications\n * @param {function} callbackError optional callback for unsuccessful authentications\n * @returns {promise} Call promise - result will be either response.data.error or response.data.result\n */\n async authenticate(callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n // We will never authenticate with a sessionID. Authentication provides the sessionId\n let options = {\n database: this._helper.database,\n userName: this._helper.userName,\n password: this._helper.password\n }\n let result = this.callimpl('Authenticate', options, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n\n }\n\n /**\n * Constructs an API call to MyGeotab\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @returns {promise} an http/fetch promise which will resolve to either data.error or data.result\n */\n async call(method, params, callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n\n let result = this.callimpl(method, params, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n }\n\n /**\n * Constructs an API call to MyGeotab\n *\n * @param {string} method method name for the API call\n * @param {Object} params method's parameters\n * @param {function} callbackSuccess Optional callback for successful calls\n * @param {function} callbackError Optional callback for unsuccessful calls\n * @returns {promise} an http/fetch promise which will resolve to either data.error or data.result\n */\n async callimpl(method, params, callbackSuccess, callbackError) {\n // Defining our credentials\n if (this._helper.sessionId) {\n params.credentials = {\n database: this._helper.database,\n sessionId: this._helper.sessionId,\n userName: this._helper.userName\n }\n } else if (this._helper.rememberMe && method !== 'Authenticate' && !this._helper.sessionId) {\n // Check store for credentials\n let storedCredentials = await this._helper.getLocalCredentials();\n if (storedCredentials) {\n params.credentials = storedCredentials;\n } else {\n // Send auth request if no store\n await this._helper.getAuthentication(this.authenticate, this._helper.rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n }\n // assign credentials with session ID from local storage\n } else if (method !== 'Authenticate' && !this._helper.rememberMe && !this._helper.sessionId) {\n // Needs primary authentication\n await this._helper.getAuthentication(this.authenticate, this._helper.rememberMe)\n .then(auth => {\n params.credentials = auth;\n });\n }\n // Creating the actual call\n let call = this._helper.sendHttpCall(method, params, callbackSuccess, callbackError, this.authenticate, this._helper.rememberMe);\n // Seeing if the user wants the full response object, or default error handling\n if (!this._helper.fullResponse) {\n call = this._helper.errorHandle(call, callbackError);\n call = this._helper.parseHttpResponse(call);\n }\n // Returning call to user\n return call;\n }\n\n /**\n * Constructs a multicall to myGeotab\n *\n * @param {array} calls array of calls to be included in the multicall\n * @param {function} callbackSuccess optional callback function for successful multicalls\n * @param {function} callbackError optional callback function for unsuccessful multicalls\n * @returns {promise} returns call promise\n */\n async multiCall(calls, callbackSuccess, callbackError) {\n if (callbackSuccess && !callbackError) {\n throw new Error(`If callbackSuccess is supplied so must callbackError`);\n }\n let formattedCalls = calls.map(call => {\n let params = call[1];\n return {\n method: call[0],\n params: params\n }\n });\n\n\n let result = this.callimpl('ExecuteMultiCall', {\n calls: formattedCalls\n }, callbackSuccess, callbackError);\n\n if (!callbackSuccess && !callbackError) {\n return result;\n }\n }\n\n /**\n * Gets a stored or new session\n * @param {function} callbackSuccess optional callback for successes\n * @param {boolean} newSession override any stored credentials and fetch a new session\n * @returns {promise} returns call promise\n */\n async getSession(callbackSuccess, newSession) {\n let cred = await this._helper.getLocalCredentials();\n let response;\n if (!newSession && this._helper.rememberMe) {\n // If we have a stored session\n if (cred) {\n response = this._helper.fullResponse ? { data: { result: { credentials: cred, path: this._helper.server } } } : { credentials: cred, path: this._helper.server };\n if (callbackSuccess) {\n // New behavior -> Just returning the result\n if (callbackSuccess.length === 1) {\n callbackSuccess(response);\n } else if (callbackSuccess.length === 2) {\n // Legacy behavior -> Return path and credentials\n callbackSuccess(cred.credentials, this._helper.server);\n }\n return;\n } else {\n return response;\n }\n } else {\n return this.authenticate(callbackSuccess);\n }\n // Grabbing new credentials\n } else {\n cred = this.authenticate();\n if (callbackSuccess) {\n cred = await cred.then(response => this._helper.fullResponse ? response.data.result.credentials : response);\n response = this._helper.fullResponse ? { data: { result: { credentials: cred, path: this._helper.server } } } : { credentials: cred.credentials, path: this._helper.server };\n if (callbackSuccess.length === 1) {\n callbackSuccess(response);\n } else if (callbackSuccess.length === 2) {\n // Legacy getSession asks for credentials and server\n callbackSuccess(cred.credentials, this._helper.server);\n }\n } else {\n return cred;\n }\n }\n }\n\n /**\n * Forgets the session in local storage\n * Resets session with already provided credentials\n */\n async forget() {\n this._helper.clearLocalCredentials();\n return this.authenticate();\n }\n}\n\nexports.default = GeotabApi;\n","const http = typeof window === 'undefined' ? require('http') : null;\nconst https = typeof window === 'undefined' ? require('https') : null;\n\nclass HttpCall {\n\n constructor(method, server, params, callbackSuccess) {\n this.config = {\n headers: {\n 'Content-Type': 'application/json'\n }\n }\n this.callbackSuccess = callbackSuccess;\n this.server = server;\n this.body = {\n method: method || '',\n params: params\n };\n }\n\n getCallUrl() {\n let server = this.server || 'my.geotab.com';\n let thisServer = server.replace(/\\S*:\\/\\//, '').replace(/\\/$/, '');\n return 'https://' + thisServer + '/apiv1/';\n }\n\n encode(data) {\n let stringBody = JSON.stringify({\n method: data.method || '',\n params: data.params\n })\n return stringBody;\n }\n\n /**\n * Sends http/fetch request depending on environment.\n * @param {int} timeout amount in milliseconds for timeout.\n * options.timeout * 1000 is a good start\n * Defaults to no timeout (0)\n * @returns {Promise} http/fetch response object wrapped in a promise\n */\n async send(timeout) {\n const url = this.getCallUrl();\n const body = this.encode(this.body);\n const headers = this.config.headers;\n\n if (typeof window !== 'undefined' && window.fetch) {\n // Web environment (using fetch)\n let fetchTimeout;\n const fetchPromise = fetch(url, {\n method: 'POST',\n headers: headers,\n body: body\n });\n\n const timeoutPromise = new Promise((_, reject) => {\n fetchTimeout = setTimeout(() => reject(new Error('Request timed out')), timeout * 1000);\n });\n\n return Promise.race([fetchPromise, timeoutPromise])\n .then(async response => {\n clearTimeout(fetchTimeout);\n const data = await response.json();\n response.data = data;\n if (this.callbackSuccess && !data.error) {\n this.callbackSuccess(data.result);\n }\n return response;\n })\n .catch(error => {\n return Promise.reject(error);\n });\n\n } else {\n // Node.js environment (using http/https)\n const urlObj = new URL(url);\n const options = {\n hostname: urlObj.hostname,\n path: urlObj.pathname,\n method: 'POST',\n headers: headers,\n timeout: timeout * 1000\n };\n\n return new Promise((resolve, reject) => {\n const req = (urlObj.protocol === 'https:' ? https : http).request(options, res => {\n let data = '';\n res.on('data', chunk => data += chunk);\n res.on('end', () => {\n try {\n const parsedData = JSON.parse(data);\n res.data = parsedData; // Attach parsed response body to the response object.\n if (this.callbackSuccess && !parsedData.error) {\n this.callbackSuccess(parsedData.result);\n }\n resolve(res);\n } catch (error) {\n reject(error);\n }\n });\n });\n\n req.on('error', reject);\n req.on('timeout', () => {\n req.destroy();\n reject(new Error('Request timed out'));\n });\n\n req.write(body);\n req.end();\n });\n }\n }\n}\n\nexports.default = HttpCall;\n","const LocalStorageMock = require('./LocalStorageMock').default;\n\n/**\n * Object to interact with the localStorage for stored credentials.\n * Can interact with localStorage (browser) or LocalStorageMock (node) \n */\nclass LocalStorageCredentialStore {\n constructor(){\n this.credentials_key = 'geotabAPI_credentials';\n this.server_key = 'geotabAPI_server';\n\n if (typeof localStorage === 'undefined' || localStorage === null || typeof localStorage.getItem !== 'function') {\n // Mocking local storage for nodeJS implementation. \n this.localStorage = new LocalStorageMock();\n } else {\n this.localStorage = localStorage;\n }\n }\n\n get() {\n let storedCredentials = this.localStorage.getItem(this.credentials_key);\n let storedServer = this.localStorage.getItem(this.server_key) || 'my.geotab.com';\n let thisCredentials = false;\n\n if (storedCredentials && storedServer) {\n try {\n thisCredentials = {\n credentials: JSON.parse(storedCredentials),\n server: storedServer\n }\n } catch (e) {\n console.log('error', e);\n // Malformed JSON\n return false;\n }\n }\n return thisCredentials;\n }\n\n set(credentials, server) {\n if(credentials){\n this.localStorage.setItem(this.credentials_key, JSON.stringify(credentials));\n }\n if(server){\n this.localStorage.setItem(this.server_key, server);\n }\n }\n\n clear() {\n this.localStorage.removeItem(this.credentials_key);\n this.localStorage.removeItem(this.server_key);\n }\n}\n\nexports.default = LocalStorageCredentialStore;","/**\n * A local storage mock to be used with node. Intended to \n * be an easy solution to re-working the existing localstorage system\n * and maintaining legacy support.\n * \n * Nodejs has several libraries that create it's own localStorage \n * functionality, but all of these seem to rely on node's filesystem\n * library (fs) to make things work. This turns out to be a significant\n * issue because webpack can't compile the fs library:\n * - No comparable function in the browser\n * - Not supported by their (now depreciated) core module mocks\n * https://www.npmjs.com/package/node-libs-browser\n * \n * Using the localstorage libraries in the api will work provided the\n * end user is also using webpack, and adds\n * \n * node: {\n * fs: 'empty'\n * }\n * \n * to their config file, but that would break legacy support as\n * most legacy api addins will likely use gulp\n */\nclass LocalStorageMock {\n constructor(){\n this._state = {};\n }\n\n getItem(key){\n return this._state[key];\n }\n\n setItem(key, value){\n this._state[key] = value;\n }\n\n removeItem(key){\n delete this._state[key];\n }\n\n clear(){\n this._state = {};\n }\n}\n\nexports.default = LocalStorageMock;","/*! mg-api-js - v3.0.3\n * Release on: 2026-07-15\n * Copyright (c) 2020 Geotab Inc\n * Licensed MIT */\n// UMD Declaration\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define([], function () {\n return (root['GeotabApi'] = factory());\n });\n } else if (typeof module === 'object' && module.exports) {\n // Node does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n } else {\n root['GeotabApi'] = factory();\n }\n}(this, function () {\n // Sourcemap node support causes browser issues. Checks for browser global before requiring\n if(typeof window !== 'object'){\n require('source-map-support').install();\n }\n // Allowing async for ie10/11 - webpack requirement\n const regeneratorRuntime = require('regenerator-runtime'); \n const GeotabApi = require('./GeotabApi.js').default;\n /**\n * ** NOTE ** This version (uncompiled with webpack) of the API will not work on browsers.\n * This will fail due to the node module dependancies not being shaken/added to the \n * output file\n */\n // Exposing the object - acts like a constructor for browser implementations\n return GeotabApi;\n}));","/* eslint-disable node/no-deprecated-api */\n\nvar toString = Object.prototype.toString\n\nvar isModern = (\n typeof Buffer !== 'undefined' &&\n typeof Buffer.alloc === 'function' &&\n typeof Buffer.allocUnsafe === 'function' &&\n typeof Buffer.from === 'function'\n)\n\nfunction isArrayBuffer (input) {\n return toString.call(input).slice(8, -1) === 'ArrayBuffer'\n}\n\nfunction fromArrayBuffer (obj, byteOffset, length) {\n byteOffset >>>= 0\n\n var maxLength = obj.byteLength - byteOffset\n\n if (maxLength < 0) {\n throw new RangeError(\"'offset' is out of bounds\")\n }\n\n if (length === undefined) {\n length = maxLength\n } else {\n length >>>= 0\n\n if (length > maxLength) {\n throw new RangeError(\"'length' is out of bounds\")\n }\n }\n\n return isModern\n ? Buffer.from(obj.slice(byteOffset, byteOffset + length))\n : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n return isModern\n ? Buffer.from(string, encoding)\n : new Buffer(string, encoding)\n}\n\nfunction bufferFrom (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (isArrayBuffer(value)) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n return isModern\n ? Buffer.from(value)\n : new Buffer(value)\n}\n\nmodule.exports = bufferFrom\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var SourceMapConsumer = require('source-map').SourceMapConsumer;\nvar path = require('path');\n\nvar fs;\ntry {\n fs = require('fs');\n if (!fs.existsSync || !fs.readFileSync) {\n // fs doesn't have all methods we need\n fs = null;\n }\n} catch (err) {\n /* nop */\n}\n\nvar bufferFrom = require('buffer-from');\n\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param {NodeModule} mod\n * @param {string} request\n */\nfunction dynamicRequire(mod, request) {\n return mod.require(request);\n}\n\n// Only install once if called multiple times\nvar errorFormatterInstalled = false;\nvar uncaughtShimInstalled = false;\n\n// If true, the caches are reset before a stack trace formatting operation\nvar emptyCacheBetweenOperations = false;\n\n// Supports {browser, node, auto}\nvar environment = \"auto\";\n\n// Maps a file path to a string containing the file contents\nvar fileContentsCache = {};\n\n// Maps a file path to a source map for that file\nvar sourceMapCache = {};\n\n// Regex for detecting source maps\nvar reSourceMap = /^data:application\\/json[^,]+base64,/;\n\n// Priority list of retrieve handlers\nvar retrieveFileHandlers = [];\nvar retrieveMapHandlers = [];\n\nfunction isInBrowser() {\n if (environment === \"browser\")\n return true;\n if (environment === \"node\")\n return false;\n return ((typeof window !== 'undefined') && (typeof XMLHttpRequest === 'function') && !(window.require && window.module && window.process && window.process.type === \"renderer\"));\n}\n\nfunction hasGlobalProcessEventEmitter() {\n return ((typeof process === 'object') && (process !== null) && (typeof process.on === 'function'));\n}\n\nfunction globalProcessVersion() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.version;\n } else {\n return '';\n }\n}\n\nfunction globalProcessStderr() {\n if ((typeof process === 'object') && (process !== null)) {\n return process.stderr;\n }\n}\n\nfunction globalProcessExit(code) {\n if ((typeof process === 'object') && (process !== null) && (typeof process.exit === 'function')) {\n return process.exit(code);\n }\n}\n\nfunction handlerExec(list) {\n return function(arg) {\n for (var i = 0; i < list.length; i++) {\n var ret = list[i](arg);\n if (ret) {\n return ret;\n }\n }\n return null;\n };\n}\n\nvar retrieveFile = handlerExec(retrieveFileHandlers);\n\nretrieveFileHandlers.push(function(path) {\n // Trim the path to make sure there is no extra whitespace.\n path = path.trim();\n if (/^file:/.test(path)) {\n // existsSync/readFileSync can't handle file protocol, but once stripped, it works\n path = path.replace(/file:\\/\\/\\/(\\w:)?/, function(protocol, drive) {\n return drive ?\n '' : // file:///C:/dir/file -> C:/dir/file\n '/'; // file:///root-dir/file -> /root-dir/file\n });\n }\n if (path in fileContentsCache) {\n return fileContentsCache[path];\n }\n\n var contents = '';\n try {\n if (!fs) {\n // Use SJAX if we are in the browser\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, /** async */ false);\n xhr.send(null);\n if (xhr.readyState === 4 && xhr.status === 200) {\n contents = xhr.responseText;\n }\n } else if (fs.existsSync(path)) {\n // Otherwise, use the filesystem\n contents = fs.readFileSync(path, 'utf8');\n }\n } catch (er) {\n /* ignore any errors */\n }\n\n return fileContentsCache[path] = contents;\n});\n\n// Support URLs relative to a directory, but be careful about a protocol prefix\n// in case we are in the browser (i.e. directories may start with \"http://\" or \"file:///\")\nfunction supportRelativeURL(file, url) {\n if (!file) return url;\n var dir = path.dirname(file);\n var match = /^\\w+:\\/\\/[^\\/]*/.exec(dir);\n var protocol = match ? match[0] : '';\n var startPath = dir.slice(protocol.length);\n if (protocol && /^\\/\\w\\:/.test(startPath)) {\n // handle file:///C:/ paths\n protocol += '/';\n return protocol + path.resolve(dir.slice(protocol.length), url).replace(/\\\\/g, '/');\n }\n return protocol + path.resolve(dir.slice(protocol.length), url);\n}\n\nfunction retrieveSourceMapURL(source) {\n var fileData;\n\n if (isInBrowser()) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', source, false);\n xhr.send(null);\n fileData = xhr.readyState === 4 ? xhr.responseText : null;\n\n // Support providing a sourceMappingURL via the SourceMap header\n var sourceMapHeader = xhr.getResponseHeader(\"SourceMap\") ||\n xhr.getResponseHeader(\"X-SourceMap\");\n if (sourceMapHeader) {\n return sourceMapHeader;\n }\n } catch (e) {\n }\n }\n\n // Get the URL of the source map\n fileData = retrieveFile(source);\n var re = /(?:\\/\\/[@#][\\s]*sourceMappingURL=([^\\s'\"]+)[\\s]*$)|(?:\\/\\*[@#][\\s]*sourceMappingURL=([^\\s*'\"]+)[\\s]*(?:\\*\\/)[\\s]*$)/mg;\n // Keep executing the search to find the *last* sourceMappingURL to avoid\n // picking up sourceMappingURLs from comments, strings, etc.\n var lastMatch, match;\n while (match = re.exec(fileData)) lastMatch = match;\n if (!lastMatch) return null;\n return lastMatch[1];\n};\n\n// Can be overridden by the retrieveSourceMap option to install. Takes a\n// generated source filename; returns a {map, optional url} object, or null if\n// there is no source map. The map field may be either a string or the parsed\n// JSON object (ie, it must be a valid argument to the SourceMapConsumer\n// constructor).\nvar retrieveSourceMap = handlerExec(retrieveMapHandlers);\nretrieveMapHandlers.push(function(source) {\n var sourceMappingURL = retrieveSourceMapURL(source);\n if (!sourceMappingURL) return null;\n\n // Read the contents of the source map\n var sourceMapData;\n if (reSourceMap.test(sourceMappingURL)) {\n // Support source map URL as a data url\n var rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(',') + 1);\n sourceMapData = bufferFrom(rawData, \"base64\").toString();\n sourceMappingURL = source;\n } else {\n // Support source map URLs relative to the source URL\n sourceMappingURL = supportRelativeURL(source, sourceMappingURL);\n sourceMapData = retrieveFile(sourceMappingURL);\n }\n\n if (!sourceMapData) {\n return null;\n }\n\n return {\n url: sourceMappingURL,\n map: sourceMapData\n };\n});\n\nfunction mapSourcePosition(position) {\n var sourceMap = sourceMapCache[position.source];\n if (!sourceMap) {\n // Call the (overrideable) retrieveSourceMap function to get the source map.\n var urlAndMap = retrieveSourceMap(position.source);\n if (urlAndMap) {\n sourceMap = sourceMapCache[position.source] = {\n url: urlAndMap.url,\n map: new SourceMapConsumer(urlAndMap.map)\n };\n\n // Load all sources stored inline with the source map into the file cache\n // to pretend like they are already loaded. They may not exist on disk.\n if (sourceMap.map.sourcesContent) {\n sourceMap.map.sources.forEach(function(source, i) {\n var contents = sourceMap.map.sourcesContent[i];\n if (contents) {\n var url = supportRelativeURL(sourceMap.url, source);\n fileContentsCache[url] = contents;\n }\n });\n }\n } else {\n sourceMap = sourceMapCache[position.source] = {\n url: null,\n map: null\n };\n }\n }\n\n // Resolve the source URL relative to the URL of the source map\n if (sourceMap && sourceMap.map && typeof sourceMap.map.originalPositionFor === 'function') {\n var originalPosition = sourceMap.map.originalPositionFor(position);\n\n // Only return the original position if a matching line was found. If no\n // matching line is found then we return position instead, which will cause\n // the stack trace to print the path and line for the compiled file. It is\n // better to give a precise location in the compiled file than a vague\n // location in the original file.\n if (originalPosition.source !== null) {\n originalPosition.source = supportRelativeURL(\n sourceMap.url, originalPosition.source);\n return originalPosition;\n }\n }\n\n return position;\n}\n\n// Parses code generated by FormatEvalOrigin(), a function inside V8:\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js\nfunction mapEvalOrigin(origin) {\n // Most eval() calls are in this format\n var match = /^eval at ([^(]+) \\((.+):(\\d+):(\\d+)\\)$/.exec(origin);\n if (match) {\n var position = mapSourcePosition({\n source: match[2],\n line: +match[3],\n column: match[4] - 1\n });\n return 'eval at ' + match[1] + ' (' + position.source + ':' +\n position.line + ':' + (position.column + 1) + ')';\n }\n\n // Parse nested eval() calls using recursion\n match = /^eval at ([^(]+) \\((.+)\\)$/.exec(origin);\n if (match) {\n return 'eval at ' + match[1] + ' (' + mapEvalOrigin(match[2]) + ')';\n }\n\n // Make sure we still return useful information if we didn't find anything\n return origin;\n}\n\n// This is copied almost verbatim from the V8 source code at\n// https://code.google.com/p/v8/source/browse/trunk/src/messages.js. The\n// implementation of wrapCallSite() used to just forward to the actual source\n// code of CallSite.prototype.toString but unfortunately a new release of V8\n// did something to the prototype chain and broke the shim. The only fix I\n// could find was copy/paste.\nfunction CallSiteToString() {\n var fileName;\n var fileLocation = \"\";\n if (this.isNative()) {\n fileLocation = \"native\";\n } else {\n fileName = this.getScriptNameOrSourceURL();\n if (!fileName && this.isEval()) {\n fileLocation = this.getEvalOrigin();\n fileLocation += \", \"; // Expecting source position to follow.\n }\n\n if (fileName) {\n fileLocation += fileName;\n } else {\n // Source code does not originate from a file and is not native, but we\n // can still get the source position inside the source string, e.g. in\n // an eval string.\n fileLocation += \"\";\n }\n var lineNumber = this.getLineNumber();\n if (lineNumber != null) {\n fileLocation += \":\" + lineNumber;\n var columnNumber = this.getColumnNumber();\n if (columnNumber) {\n fileLocation += \":\" + columnNumber;\n }\n }\n }\n\n var line = \"\";\n var functionName = this.getFunctionName();\n var addSuffix = true;\n var isConstructor = this.isConstructor();\n var isMethodCall = !(this.isToplevel() || isConstructor);\n if (isMethodCall) {\n var typeName = this.getTypeName();\n // Fixes shim to be backward compatable with Node v0 to v4\n if (typeName === \"[object Object]\") {\n typeName = \"null\";\n }\n var methodName = this.getMethodName();\n if (functionName) {\n if (typeName && functionName.indexOf(typeName) != 0) {\n line += typeName + \".\";\n }\n line += functionName;\n if (methodName && functionName.indexOf(\".\" + methodName) != functionName.length - methodName.length - 1) {\n line += \" [as \" + methodName + \"]\";\n }\n } else {\n line += typeName + \".\" + (methodName || \"\");\n }\n } else if (isConstructor) {\n line += \"new \" + (functionName || \"\");\n } else if (functionName) {\n line += functionName;\n } else {\n line += fileLocation;\n addSuffix = false;\n }\n if (addSuffix) {\n line += \" (\" + fileLocation + \")\";\n }\n return line;\n}\n\nfunction cloneCallSite(frame) {\n var object = {};\n Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach(function(name) {\n object[name] = /^(?:is|get)/.test(name) ? function() { return frame[name].call(frame); } : frame[name];\n });\n object.toString = CallSiteToString;\n return object;\n}\n\nfunction wrapCallSite(frame, state) {\n // provides interface backward compatibility\n if (state === undefined) {\n state = { nextPosition: null, curPosition: null }\n }\n if(frame.isNative()) {\n state.curPosition = null;\n return frame;\n }\n\n // Most call sites will return the source file from getFileName(), but code\n // passed to eval() ending in \"//# sourceURL=...\" will return the source file\n // from getScriptNameOrSourceURL() instead\n var source = frame.getFileName() || frame.getScriptNameOrSourceURL();\n if (source) {\n var line = frame.getLineNumber();\n var column = frame.getColumnNumber() - 1;\n\n // Fix position in Node where some (internal) code is prepended.\n // See https://github.com/evanw/node-source-map-support/issues/36\n // Header removed in node at ^10.16 || >=11.11.0\n // v11 is not an LTS candidate, we can just test the one version with it.\n // Test node versions for: 10.16-19, 10.20+, 12-19, 20-99, 100+, or 11.11\n var noHeader = /^v(10\\.1[6-9]|10\\.[2-9][0-9]|10\\.[0-9]{3,}|1[2-9]\\d*|[2-9]\\d|\\d{3,}|11\\.11)/;\n var headerLength = noHeader.test(globalProcessVersion()) ? 0 : 62;\n if (line === 1 && column > headerLength && !isInBrowser() && !frame.isEval()) {\n column -= headerLength;\n }\n\n var position = mapSourcePosition({\n source: source,\n line: line,\n column: column\n });\n state.curPosition = position;\n frame = cloneCallSite(frame);\n var originalFunctionName = frame.getFunctionName;\n frame.getFunctionName = function() {\n if (state.nextPosition == null) {\n return originalFunctionName();\n }\n return state.nextPosition.name || originalFunctionName();\n };\n frame.getFileName = function() { return position.source; };\n frame.getLineNumber = function() { return position.line; };\n frame.getColumnNumber = function() { return position.column + 1; };\n frame.getScriptNameOrSourceURL = function() { return position.source; };\n return frame;\n }\n\n // Code called using eval() needs special handling\n var origin = frame.isEval() && frame.getEvalOrigin();\n if (origin) {\n origin = mapEvalOrigin(origin);\n frame = cloneCallSite(frame);\n frame.getEvalOrigin = function() { return origin; };\n return frame;\n }\n\n // If we get here then we were unable to change the source position\n return frame;\n}\n\n// This function is part of the V8 stack trace API, for more info see:\n// https://v8.dev/docs/stack-trace-api\nfunction prepareStackTrace(error, stack) {\n if (emptyCacheBetweenOperations) {\n fileContentsCache = {};\n sourceMapCache = {};\n }\n\n var name = error.name || 'Error';\n var message = error.message || '';\n var errorString = name + \": \" + message;\n\n var state = { nextPosition: null, curPosition: null };\n var processedStack = [];\n for (var i = stack.length - 1; i >= 0; i--) {\n processedStack.push('\\n at ' + wrapCallSite(stack[i], state));\n state.nextPosition = state.curPosition;\n }\n state.curPosition = state.nextPosition = null;\n return errorString + processedStack.reverse().join('');\n}\n\n// Generate position and snippet of original source with pointer\nfunction getErrorSource(error) {\n var match = /\\n at [^(]+ \\((.*):(\\d+):(\\d+)\\)/.exec(error.stack);\n if (match) {\n var source = match[1];\n var line = +match[2];\n var column = +match[3];\n\n // Support the inline sourceContents inside the source map\n var contents = fileContentsCache[source];\n\n // Support files on disk\n if (!contents && fs && fs.existsSync(source)) {\n try {\n contents = fs.readFileSync(source, 'utf8');\n } catch (er) {\n contents = '';\n }\n }\n\n // Format the line from the original source code like node does\n if (contents) {\n var code = contents.split(/(?:\\r\\n|\\r|\\n)/)[line - 1];\n if (code) {\n return source + ':' + line + '\\n' + code + '\\n' +\n new Array(column).join(' ') + '^';\n }\n }\n }\n return null;\n}\n\nfunction printErrorAndExit (error) {\n var source = getErrorSource(error);\n\n // Ensure error is printed synchronously and not truncated\n var stderr = globalProcessStderr();\n if (stderr && stderr._handle && stderr._handle.setBlocking) {\n stderr._handle.setBlocking(true);\n }\n\n if (source) {\n console.error();\n console.error(source);\n }\n\n console.error(error.stack);\n globalProcessExit(1);\n}\n\nfunction shimEmitUncaughtException () {\n var origEmit = process.emit;\n\n process.emit = function (type) {\n if (type === 'uncaughtException') {\n var hasStack = (arguments[1] && arguments[1].stack);\n var hasListeners = (this.listeners(type).length > 0);\n\n if (hasStack && !hasListeners) {\n return printErrorAndExit(arguments[1]);\n }\n }\n\n return origEmit.apply(this, arguments);\n };\n}\n\nvar originalRetrieveFileHandlers = retrieveFileHandlers.slice(0);\nvar originalRetrieveMapHandlers = retrieveMapHandlers.slice(0);\n\nexports.wrapCallSite = wrapCallSite;\nexports.getErrorSource = getErrorSource;\nexports.mapSourcePosition = mapSourcePosition;\nexports.retrieveSourceMap = retrieveSourceMap;\n\nexports.install = function(options) {\n options = options || {};\n\n if (options.environment) {\n environment = options.environment;\n if ([\"node\", \"browser\", \"auto\"].indexOf(environment) === -1) {\n throw new Error(\"environment \" + environment + \" was unknown. Available options are {auto, browser, node}\")\n }\n }\n\n // Allow sources to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveFile) {\n if (options.overrideRetrieveFile) {\n retrieveFileHandlers.length = 0;\n }\n\n retrieveFileHandlers.unshift(options.retrieveFile);\n }\n\n // Allow source maps to be found by methods other than reading the files\n // directly from disk.\n if (options.retrieveSourceMap) {\n if (options.overrideRetrieveSourceMap) {\n retrieveMapHandlers.length = 0;\n }\n\n retrieveMapHandlers.unshift(options.retrieveSourceMap);\n }\n\n // Support runtime transpilers that include inline source maps\n if (options.hookRequire && !isInBrowser()) {\n // Use dynamicRequire to avoid including in browser bundles\n var Module = dynamicRequire(module, 'module');\n var $compile = Module.prototype._compile;\n\n if (!$compile.__sourceMapSupport) {\n Module.prototype._compile = function(content, filename) {\n fileContentsCache[filename] = content;\n sourceMapCache[filename] = undefined;\n return $compile.call(this, content, filename);\n };\n\n Module.prototype._compile.__sourceMapSupport = true;\n }\n }\n\n // Configure options\n if (!emptyCacheBetweenOperations) {\n emptyCacheBetweenOperations = 'emptyCacheBetweenOperations' in options ?\n options.emptyCacheBetweenOperations : false;\n }\n\n // Install the error reformatter\n if (!errorFormatterInstalled) {\n errorFormatterInstalled = true;\n Error.prepareStackTrace = prepareStackTrace;\n }\n\n if (!uncaughtShimInstalled) {\n var installHandler = 'handleUncaughtExceptions' in options ?\n options.handleUncaughtExceptions : true;\n\n // Do not override 'uncaughtException' with our own handler in Node.js\n // Worker threads. Workers pass the error to the main thread as an event,\n // rather than printing something to stderr and exiting.\n try {\n // We need to use `dynamicRequire` because `require` on it's own will be optimized by WebPack/Browserify.\n var worker_threads = dynamicRequire(module, 'worker_threads');\n if (worker_threads.isMainThread === false) {\n installHandler = false;\n }\n } catch(e) {}\n\n // Provide the option to not install the uncaught exception handler. This is\n // to support other uncaught exception handlers (in test frameworks, for\n // example). If this handler is not installed and there are no other uncaught\n // exception handlers, uncaught exceptions will be caught by node's built-in\n // exception handler and the process will still be terminated. However, the\n // generated JavaScript code will be shown above the stack trace instead of\n // the original source code.\n if (installHandler && hasGlobalProcessEventEmitter()) {\n uncaughtShimInstalled = true;\n shimEmitUncaughtException();\n }\n }\n};\n\nexports.resetRetrieveHandlers = function() {\n retrieveFileHandlers.length = 0;\n retrieveMapHandlers.length = 0;\n\n retrieveFileHandlers = originalRetrieveFileHandlers.slice(0);\n retrieveMapHandlers = originalRetrieveMapHandlers.slice(0);\n\n retrieveSourceMap = handlerExec(retrieveMapHandlers);\n retrieveFile = handlerExec(retrieveFileHandlers);\n}\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar has = Object.prototype.hasOwnProperty;\nvar hasNativeMap = typeof Map !== \"undefined\";\n\n/**\n * A data structure which is a combination of an array and a set. Adding a new\n * member is O(1), testing for membership is O(1), and finding the index of an\n * element is O(1). Removing elements from the set is not supported. Only\n * strings are supported for membership.\n */\nfunction ArraySet() {\n this._array = [];\n this._set = hasNativeMap ? new Map() : Object.create(null);\n}\n\n/**\n * Static method for creating ArraySet instances from an existing array.\n */\nArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) {\n var set = new ArraySet();\n for (var i = 0, len = aArray.length; i < len; i++) {\n set.add(aArray[i], aAllowDuplicates);\n }\n return set;\n};\n\n/**\n * Return how many unique items are in this ArraySet. If duplicates have been\n * added, than those do not count towards the size.\n *\n * @returns Number\n */\nArraySet.prototype.size = function ArraySet_size() {\n return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length;\n};\n\n/**\n * Add the given string to this set.\n *\n * @param String aStr\n */\nArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) {\n var sStr = hasNativeMap ? aStr : util.toSetString(aStr);\n var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr);\n var idx = this._array.length;\n if (!isDuplicate || aAllowDuplicates) {\n this._array.push(aStr);\n }\n if (!isDuplicate) {\n if (hasNativeMap) {\n this._set.set(aStr, idx);\n } else {\n this._set[sStr] = idx;\n }\n }\n};\n\n/**\n * Is the given string a member of this set?\n *\n * @param String aStr\n */\nArraySet.prototype.has = function ArraySet_has(aStr) {\n if (hasNativeMap) {\n return this._set.has(aStr);\n } else {\n var sStr = util.toSetString(aStr);\n return has.call(this._set, sStr);\n }\n};\n\n/**\n * What is the index of the given string in the array?\n *\n * @param String aStr\n */\nArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) {\n if (hasNativeMap) {\n var idx = this._set.get(aStr);\n if (idx >= 0) {\n return idx;\n }\n } else {\n var sStr = util.toSetString(aStr);\n if (has.call(this._set, sStr)) {\n return this._set[sStr];\n }\n }\n\n throw new Error('\"' + aStr + '\" is not in the set.');\n};\n\n/**\n * What is the element at the given index?\n *\n * @param Number aIdx\n */\nArraySet.prototype.at = function ArraySet_at(aIdx) {\n if (aIdx >= 0 && aIdx < this._array.length) {\n return this._array[aIdx];\n }\n throw new Error('No element indexed by ' + aIdx);\n};\n\n/**\n * Returns the array representation of this set (which has the proper indices\n * indicated by indexOf). Note that this is a copy of the internal array used\n * for storing the members so that no one can mess with internal state.\n */\nArraySet.prototype.toArray = function ArraySet_toArray() {\n return this._array.slice();\n};\n\nexports.ArraySet = ArraySet;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * Based on the Base 64 VLQ implementation in Closure Compiler:\n * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java\n *\n * Copyright 2011 The Closure Compiler Authors. All rights reserved.\n * Redistribution and use in source and binary forms, with or without\n * modification, are permitted provided that the following conditions are\n * met:\n *\n * * Redistributions of source code must retain the above copyright\n * notice, this list of conditions and the following disclaimer.\n * * Redistributions in binary form must reproduce the above\n * copyright notice, this list of conditions and the following\n * disclaimer in the documentation and/or other materials provided\n * with the distribution.\n * * Neither the name of Google Inc. nor the names of its\n * contributors may be used to endorse or promote products derived\n * from this software without specific prior written permission.\n *\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n * \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n */\n\nvar base64 = require('./base64');\n\n// A single base 64 digit can contain 6 bits of data. For the base 64 variable\n// length quantities we use in the source map spec, the first bit is the sign,\n// the next four bits are the actual value, and the 6th bit is the\n// continuation bit. The continuation bit tells us whether there are more\n// digits in this value following this digit.\n//\n// Continuation\n// | Sign\n// | |\n// V V\n// 101011\n\nvar VLQ_BASE_SHIFT = 5;\n\n// binary: 100000\nvar VLQ_BASE = 1 << VLQ_BASE_SHIFT;\n\n// binary: 011111\nvar VLQ_BASE_MASK = VLQ_BASE - 1;\n\n// binary: 100000\nvar VLQ_CONTINUATION_BIT = VLQ_BASE;\n\n/**\n * Converts from a two-complement value to a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary)\n * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary)\n */\nfunction toVLQSigned(aValue) {\n return aValue < 0\n ? ((-aValue) << 1) + 1\n : (aValue << 1) + 0;\n}\n\n/**\n * Converts to a two-complement value from a value where the sign bit is\n * placed in the least significant bit. For example, as decimals:\n * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1\n * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2\n */\nfunction fromVLQSigned(aValue) {\n var isNegative = (aValue & 1) === 1;\n var shifted = aValue >> 1;\n return isNegative\n ? -shifted\n : shifted;\n}\n\n/**\n * Returns the base 64 VLQ encoded value.\n */\nexports.encode = function base64VLQ_encode(aValue) {\n var encoded = \"\";\n var digit;\n\n var vlq = toVLQSigned(aValue);\n\n do {\n digit = vlq & VLQ_BASE_MASK;\n vlq >>>= VLQ_BASE_SHIFT;\n if (vlq > 0) {\n // There are still more digits in this value, so we must make sure the\n // continuation bit is marked.\n digit |= VLQ_CONTINUATION_BIT;\n }\n encoded += base64.encode(digit);\n } while (vlq > 0);\n\n return encoded;\n};\n\n/**\n * Decodes the next base 64 VLQ value from the given string and returns the\n * value and the rest of the string via the out parameter.\n */\nexports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) {\n var strLen = aStr.length;\n var result = 0;\n var shift = 0;\n var continuation, digit;\n\n do {\n if (aIndex >= strLen) {\n throw new Error(\"Expected more digits in base 64 VLQ value.\");\n }\n\n digit = base64.decode(aStr.charCodeAt(aIndex++));\n if (digit === -1) {\n throw new Error(\"Invalid base64 digit: \" + aStr.charAt(aIndex - 1));\n }\n\n continuation = !!(digit & VLQ_CONTINUATION_BIT);\n digit &= VLQ_BASE_MASK;\n result = result + (digit << shift);\n shift += VLQ_BASE_SHIFT;\n } while (continuation);\n\n aOutParam.value = fromVLQSigned(result);\n aOutParam.rest = aIndex;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split('');\n\n/**\n * Encode an integer in the range of 0 to 63 to a single base 64 digit.\n */\nexports.encode = function (number) {\n if (0 <= number && number < intToCharMap.length) {\n return intToCharMap[number];\n }\n throw new TypeError(\"Must be between 0 and 63: \" + number);\n};\n\n/**\n * Decode a single base 64 character code digit to an integer. Returns -1 on\n * failure.\n */\nexports.decode = function (charCode) {\n var bigA = 65; // 'A'\n var bigZ = 90; // 'Z'\n\n var littleA = 97; // 'a'\n var littleZ = 122; // 'z'\n\n var zero = 48; // '0'\n var nine = 57; // '9'\n\n var plus = 43; // '+'\n var slash = 47; // '/'\n\n var littleOffset = 26;\n var numberOffset = 52;\n\n // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ\n if (bigA <= charCode && charCode <= bigZ) {\n return (charCode - bigA);\n }\n\n // 26 - 51: abcdefghijklmnopqrstuvwxyz\n if (littleA <= charCode && charCode <= littleZ) {\n return (charCode - littleA + littleOffset);\n }\n\n // 52 - 61: 0123456789\n if (zero <= charCode && charCode <= nine) {\n return (charCode - zero + numberOffset);\n }\n\n // 62: +\n if (charCode == plus) {\n return 62;\n }\n\n // 63: /\n if (charCode == slash) {\n return 63;\n }\n\n // Invalid base64 digit.\n return -1;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nexports.GREATEST_LOWER_BOUND = 1;\nexports.LEAST_UPPER_BOUND = 2;\n\n/**\n * Recursive implementation of binary search.\n *\n * @param aLow Indices here and lower do not contain the needle.\n * @param aHigh Indices here and higher do not contain the needle.\n * @param aNeedle The element being searched for.\n * @param aHaystack The non-empty array being searched.\n * @param aCompare Function which takes two elements and returns -1, 0, or 1.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n */\nfunction recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) {\n // This function terminates when one of the following is true:\n //\n // 1. We find the exact element we are looking for.\n //\n // 2. We did not find the exact element, but we can return the index of\n // the next-closest element.\n //\n // 3. We did not find the exact element, and there is no next-closest\n // element than the one we are searching for, so we return -1.\n var mid = Math.floor((aHigh - aLow) / 2) + aLow;\n var cmp = aCompare(aNeedle, aHaystack[mid], true);\n if (cmp === 0) {\n // Found the element we are looking for.\n return mid;\n }\n else if (cmp > 0) {\n // Our needle is greater than aHaystack[mid].\n if (aHigh - mid > 1) {\n // The element is in the upper half.\n return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // The exact needle element was not found in this haystack. Determine if\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return aHigh < aHaystack.length ? aHigh : -1;\n } else {\n return mid;\n }\n }\n else {\n // Our needle is less than aHaystack[mid].\n if (mid - aLow > 1) {\n // The element is in the lower half.\n return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias);\n }\n\n // we are in termination case (3) or (2) and return the appropriate thing.\n if (aBias == exports.LEAST_UPPER_BOUND) {\n return mid;\n } else {\n return aLow < 0 ? -1 : aLow;\n }\n }\n}\n\n/**\n * This is an implementation of binary search which will always try and return\n * the index of the closest element if there is no exact hit. This is because\n * mappings between original and generated line/col pairs are single points,\n * and there is an implicit region between each of them, so a miss just means\n * that you aren't on the very start of a region.\n *\n * @param aNeedle The element you are looking for.\n * @param aHaystack The array that is being searched.\n * @param aCompare A function which takes the needle and an element in the\n * array and returns -1, 0, or 1 depending on whether the needle is less\n * than, equal to, or greater than the element, respectively.\n * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or\n * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'.\n */\nexports.search = function search(aNeedle, aHaystack, aCompare, aBias) {\n if (aHaystack.length === 0) {\n return -1;\n }\n\n var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack,\n aCompare, aBias || exports.GREATEST_LOWER_BOUND);\n if (index < 0) {\n return -1;\n }\n\n // We have found either the exact element, or the next-closest element than\n // the one we are searching for. However, there may be more than one such\n // element. Make sure we always return the smallest of these.\n while (index - 1 >= 0) {\n if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) {\n break;\n }\n --index;\n }\n\n return index;\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2014 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\n\n/**\n * Determine whether mappingB is after mappingA with respect to generated\n * position.\n */\nfunction generatedPositionAfter(mappingA, mappingB) {\n // Optimized for most common case\n var lineA = mappingA.generatedLine;\n var lineB = mappingB.generatedLine;\n var columnA = mappingA.generatedColumn;\n var columnB = mappingB.generatedColumn;\n return lineB > lineA || lineB == lineA && columnB >= columnA ||\n util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0;\n}\n\n/**\n * A data structure to provide a sorted view of accumulated mappings in a\n * performance conscious manner. It trades a neglibable overhead in general\n * case for a large speedup in case of mappings being added in order.\n */\nfunction MappingList() {\n this._array = [];\n this._sorted = true;\n // Serves as infimum\n this._last = {generatedLine: -1, generatedColumn: 0};\n}\n\n/**\n * Iterate through internal items. This method takes the same arguments that\n * `Array.prototype.forEach` takes.\n *\n * NOTE: The order of the mappings is NOT guaranteed.\n */\nMappingList.prototype.unsortedForEach =\n function MappingList_forEach(aCallback, aThisArg) {\n this._array.forEach(aCallback, aThisArg);\n };\n\n/**\n * Add the given source mapping.\n *\n * @param Object aMapping\n */\nMappingList.prototype.add = function MappingList_add(aMapping) {\n if (generatedPositionAfter(this._last, aMapping)) {\n this._last = aMapping;\n this._array.push(aMapping);\n } else {\n this._sorted = false;\n this._array.push(aMapping);\n }\n};\n\n/**\n * Returns the flat, sorted array of mappings. The mappings are sorted by\n * generated position.\n *\n * WARNING: This method returns internal data without copying, for\n * performance. The return value must NOT be mutated, and should be treated as\n * an immutable borrow. If you want to take ownership, you must make your own\n * copy.\n */\nMappingList.prototype.toArray = function MappingList_toArray() {\n if (!this._sorted) {\n this._array.sort(util.compareByGeneratedPositionsInflated);\n this._sorted = true;\n }\n return this._array;\n};\n\nexports.MappingList = MappingList;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n// It turns out that some (most?) JavaScript engines don't self-host\n// `Array.prototype.sort`. This makes sense because C++ will likely remain\n// faster than JS when doing raw CPU-intensive sorting. However, when using a\n// custom comparator function, calling back and forth between the VM's C++ and\n// JIT'd JS is rather slow *and* loses JIT type information, resulting in\n// worse generated code for the comparator function than would be optimal. In\n// fact, when sorting with a comparator, these costs outweigh the benefits of\n// sorting in C++. By using our own JS-implemented Quick Sort (below), we get\n// a ~3500ms mean speed-up in `bench/bench.html`.\n\n/**\n * Swap the elements indexed by `x` and `y` in the array `ary`.\n *\n * @param {Array} ary\n * The array.\n * @param {Number} x\n * The index of the first item.\n * @param {Number} y\n * The index of the second item.\n */\nfunction swap(ary, x, y) {\n var temp = ary[x];\n ary[x] = ary[y];\n ary[y] = temp;\n}\n\n/**\n * Returns a random integer within the range `low .. high` inclusive.\n *\n * @param {Number} low\n * The lower bound on the range.\n * @param {Number} high\n * The upper bound on the range.\n */\nfunction randomIntInRange(low, high) {\n return Math.round(low + (Math.random() * (high - low)));\n}\n\n/**\n * The Quick Sort algorithm.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n * @param {Number} p\n * Start index of the array\n * @param {Number} r\n * End index of the array\n */\nfunction doQuickSort(ary, comparator, p, r) {\n // If our lower bound is less than our upper bound, we (1) partition the\n // array into two pieces and (2) recurse on each half. If it is not, this is\n // the empty array and our base case.\n\n if (p < r) {\n // (1) Partitioning.\n //\n // The partitioning chooses a pivot between `p` and `r` and moves all\n // elements that are less than or equal to the pivot to the before it, and\n // all the elements that are greater than it after it. The effect is that\n // once partition is done, the pivot is in the exact place it will be when\n // the array is put in sorted order, and it will not need to be moved\n // again. This runs in O(n) time.\n\n // Always choose a random pivot so that an input array which is reverse\n // sorted does not cause O(n^2) running time.\n var pivotIndex = randomIntInRange(p, r);\n var i = p - 1;\n\n swap(ary, pivotIndex, r);\n var pivot = ary[r];\n\n // Immediately after `j` is incremented in this loop, the following hold\n // true:\n //\n // * Every element in `ary[p .. i]` is less than or equal to the pivot.\n //\n // * Every element in `ary[i+1 .. j-1]` is greater than the pivot.\n for (var j = p; j < r; j++) {\n if (comparator(ary[j], pivot) <= 0) {\n i += 1;\n swap(ary, i, j);\n }\n }\n\n swap(ary, i + 1, j);\n var q = i + 1;\n\n // (2) Recurse on each half.\n\n doQuickSort(ary, comparator, p, q - 1);\n doQuickSort(ary, comparator, q + 1, r);\n }\n}\n\n/**\n * Sort the given array in-place with the given comparator function.\n *\n * @param {Array} ary\n * An array to sort.\n * @param {function} comparator\n * Function to use to compare two items.\n */\nexports.quickSort = function (ary, comparator) {\n doQuickSort(ary, comparator, 0, ary.length - 1);\n};\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar util = require('./util');\nvar binarySearch = require('./binary-search');\nvar ArraySet = require('./array-set').ArraySet;\nvar base64VLQ = require('./base64-vlq');\nvar quickSort = require('./quick-sort').quickSort;\n\nfunction SourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n return sourceMap.sections != null\n ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL)\n : new BasicSourceMapConsumer(sourceMap, aSourceMapURL);\n}\n\nSourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) {\n return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL);\n}\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nSourceMapConsumer.prototype._version = 3;\n\n// `__generatedMappings` and `__originalMappings` are arrays that hold the\n// parsed mapping coordinates from the source map's \"mappings\" attribute. They\n// are lazily instantiated, accessed via the `_generatedMappings` and\n// `_originalMappings` getters respectively, and we only parse the mappings\n// and create these arrays once queried for a source location. We jump through\n// these hoops because there can be many thousands of mappings, and parsing\n// them is expensive, so we only want to do it if we must.\n//\n// Each object in the arrays is of the form:\n//\n// {\n// generatedLine: The line number in the generated code,\n// generatedColumn: The column number in the generated code,\n// source: The path to the original source file that generated this\n// chunk of code,\n// originalLine: The line number in the original source that\n// corresponds to this chunk of generated code,\n// originalColumn: The column number in the original source that\n// corresponds to this chunk of generated code,\n// name: The name of the original symbol which generated this chunk of\n// code.\n// }\n//\n// All properties except for `generatedLine` and `generatedColumn` can be\n// `null`.\n//\n// `_generatedMappings` is ordered by the generated positions.\n//\n// `_originalMappings` is ordered by the original positions.\n\nSourceMapConsumer.prototype.__generatedMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__generatedMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__generatedMappings;\n }\n});\n\nSourceMapConsumer.prototype.__originalMappings = null;\nObject.defineProperty(SourceMapConsumer.prototype, '_originalMappings', {\n configurable: true,\n enumerable: true,\n get: function () {\n if (!this.__originalMappings) {\n this._parseMappings(this._mappings, this.sourceRoot);\n }\n\n return this.__originalMappings;\n }\n});\n\nSourceMapConsumer.prototype._charIsMappingSeparator =\n function SourceMapConsumer_charIsMappingSeparator(aStr, index) {\n var c = aStr.charAt(index);\n return c === \";\" || c === \",\";\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n throw new Error(\"Subclasses must implement _parseMappings\");\n };\n\nSourceMapConsumer.GENERATED_ORDER = 1;\nSourceMapConsumer.ORIGINAL_ORDER = 2;\n\nSourceMapConsumer.GREATEST_LOWER_BOUND = 1;\nSourceMapConsumer.LEAST_UPPER_BOUND = 2;\n\n/**\n * Iterate over each mapping between an original source/line/column and a\n * generated line/column in this source map.\n *\n * @param Function aCallback\n * The function that is called with each mapping.\n * @param Object aContext\n * Optional. If specified, this object will be the value of `this` every\n * time that `aCallback` is called.\n * @param aOrder\n * Either `SourceMapConsumer.GENERATED_ORDER` or\n * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to\n * iterate over the mappings sorted by the generated file's line/column\n * order or the original's source/line/column order, respectively. Defaults to\n * `SourceMapConsumer.GENERATED_ORDER`.\n */\nSourceMapConsumer.prototype.eachMapping =\n function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) {\n var context = aContext || null;\n var order = aOrder || SourceMapConsumer.GENERATED_ORDER;\n\n var mappings;\n switch (order) {\n case SourceMapConsumer.GENERATED_ORDER:\n mappings = this._generatedMappings;\n break;\n case SourceMapConsumer.ORIGINAL_ORDER:\n mappings = this._originalMappings;\n break;\n default:\n throw new Error(\"Unknown order of iteration.\");\n }\n\n var sourceRoot = this.sourceRoot;\n mappings.map(function (mapping) {\n var source = mapping.source === null ? null : this._sources.at(mapping.source);\n source = util.computeSourceURL(sourceRoot, source, this._sourceMapURL);\n return {\n source: source,\n generatedLine: mapping.generatedLine,\n generatedColumn: mapping.generatedColumn,\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: mapping.name === null ? null : this._names.at(mapping.name)\n };\n }, this).forEach(aCallback, context);\n };\n\n/**\n * Returns all generated line and column information for the original source,\n * line, and column provided. If no column is provided, returns all mappings\n * corresponding to a either the line we are searching for or the next\n * closest line that has any mappings. Otherwise, returns all mappings\n * corresponding to the given line and either the column we are searching for\n * or the next closest column that has any offsets.\n *\n * The only argument is an object with the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number is 1-based.\n * - column: Optional. the column number in the original source.\n * The column number is 0-based.\n *\n * and an array of objects is returned, each with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nSourceMapConsumer.prototype.allGeneratedPositionsFor =\n function SourceMapConsumer_allGeneratedPositionsFor(aArgs) {\n var line = util.getArg(aArgs, 'line');\n\n // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping\n // returns the index of the closest mapping less than the needle. By\n // setting needle.originalColumn to 0, we thus find the last mapping for\n // the given line, provided such a mapping exists.\n var needle = {\n source: util.getArg(aArgs, 'source'),\n originalLine: line,\n originalColumn: util.getArg(aArgs, 'column', 0)\n };\n\n needle.source = this._findSourceIndex(needle.source);\n if (needle.source < 0) {\n return [];\n }\n\n var mappings = [];\n\n var index = this._findMapping(needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n binarySearch.LEAST_UPPER_BOUND);\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (aArgs.column === undefined) {\n var originalLine = mapping.originalLine;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we found. Since\n // mappings are sorted, this is guaranteed to find all mappings for\n // the line we found.\n while (mapping && mapping.originalLine === originalLine) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n } else {\n var originalColumn = mapping.originalColumn;\n\n // Iterate until either we run out of mappings, or we run into\n // a mapping for a different line than the one we were searching for.\n // Since mappings are sorted, this is guaranteed to find all mappings for\n // the line we are searching for.\n while (mapping &&\n mapping.originalLine === line &&\n mapping.originalColumn == originalColumn) {\n mappings.push({\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n });\n\n mapping = this._originalMappings[++index];\n }\n }\n }\n\n return mappings;\n };\n\nexports.SourceMapConsumer = SourceMapConsumer;\n\n/**\n * A BasicSourceMapConsumer instance represents a parsed source map which we can\n * query for information about the original file positions by giving it a file\n * position in the generated source.\n *\n * The first parameter is the raw source map (either as a JSON string, or\n * already parsed to an object). According to the spec, source maps have the\n * following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - sources: An array of URLs to the original source files.\n * - names: An array of identifiers which can be referrenced by individual mappings.\n * - sourceRoot: Optional. The URL root from which all sources are relative.\n * - sourcesContent: Optional. An array of contents of the original source files.\n * - mappings: A string of base64 VLQs which contain the actual mappings.\n * - file: Optional. The generated file this source map is associated with.\n *\n * Here is an example source map, taken from the source map spec[0]:\n *\n * {\n * version : 3,\n * file: \"out.js\",\n * sourceRoot : \"\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AA,AB;;ABCDE;\"\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1#\n */\nfunction BasicSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sources = util.getArg(sourceMap, 'sources');\n // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which\n // requires the array) to play nice here.\n var names = util.getArg(sourceMap, 'names', []);\n var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null);\n var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null);\n var mappings = util.getArg(sourceMap, 'mappings');\n var file = util.getArg(sourceMap, 'file', null);\n\n // Once again, Sass deviates from the spec and supplies the version as a\n // string rather than a number, so we use loose equality checking here.\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n if (sourceRoot) {\n sourceRoot = util.normalize(sourceRoot);\n }\n\n sources = sources\n .map(String)\n // Some source maps produce relative source paths like \"./foo.js\" instead of\n // \"foo.js\". Normalize these first so that future comparisons will succeed.\n // See bugzil.la/1090768.\n .map(util.normalize)\n // Always ensure that absolute sources are internally stored relative to\n // the source root, if the source root is absolute. Not doing this would\n // be particularly problematic when the source root is a prefix of the\n // source (valid, but why??). See github issue #199 and bugzil.la/1188982.\n .map(function (source) {\n return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source)\n ? util.relative(sourceRoot, source)\n : source;\n });\n\n // Pass `true` below to allow duplicate names and sources. While source maps\n // are intended to be compressed and deduplicated, the TypeScript compiler\n // sometimes generates source maps with duplicates in them. See Github issue\n // #72 and bugzil.la/889492.\n this._names = ArraySet.fromArray(names.map(String), true);\n this._sources = ArraySet.fromArray(sources, true);\n\n this._absoluteSources = this._sources.toArray().map(function (s) {\n return util.computeSourceURL(sourceRoot, s, aSourceMapURL);\n });\n\n this.sourceRoot = sourceRoot;\n this.sourcesContent = sourcesContent;\n this._mappings = mappings;\n this._sourceMapURL = aSourceMapURL;\n this.file = file;\n}\n\nBasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nBasicSourceMapConsumer.prototype.consumer = SourceMapConsumer;\n\n/**\n * Utility function to find the index of a source. Returns -1 if not\n * found.\n */\nBasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) {\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n if (this._sources.has(relativeSource)) {\n return this._sources.indexOf(relativeSource);\n }\n\n // Maybe aSource is an absolute URL as returned by |sources|. In\n // this case we can't simply undo the transform.\n var i;\n for (i = 0; i < this._absoluteSources.length; ++i) {\n if (this._absoluteSources[i] == aSource) {\n return i;\n }\n }\n\n return -1;\n};\n\n/**\n * Create a BasicSourceMapConsumer from a SourceMapGenerator.\n *\n * @param SourceMapGenerator aSourceMap\n * The source map that will be consumed.\n * @param String aSourceMapURL\n * The URL at which the source map can be found (optional)\n * @returns BasicSourceMapConsumer\n */\nBasicSourceMapConsumer.fromSourceMap =\n function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) {\n var smc = Object.create(BasicSourceMapConsumer.prototype);\n\n var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true);\n var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true);\n smc.sourceRoot = aSourceMap._sourceRoot;\n smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(),\n smc.sourceRoot);\n smc.file = aSourceMap._file;\n smc._sourceMapURL = aSourceMapURL;\n smc._absoluteSources = smc._sources.toArray().map(function (s) {\n return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL);\n });\n\n // Because we are modifying the entries (by converting string sources and\n // names to indices into the sources and names ArraySets), we have to make\n // a copy of the entry or else bad things happen. Shared mutable state\n // strikes again! See github issue #191.\n\n var generatedMappings = aSourceMap._mappings.toArray().slice();\n var destGeneratedMappings = smc.__generatedMappings = [];\n var destOriginalMappings = smc.__originalMappings = [];\n\n for (var i = 0, length = generatedMappings.length; i < length; i++) {\n var srcMapping = generatedMappings[i];\n var destMapping = new Mapping;\n destMapping.generatedLine = srcMapping.generatedLine;\n destMapping.generatedColumn = srcMapping.generatedColumn;\n\n if (srcMapping.source) {\n destMapping.source = sources.indexOf(srcMapping.source);\n destMapping.originalLine = srcMapping.originalLine;\n destMapping.originalColumn = srcMapping.originalColumn;\n\n if (srcMapping.name) {\n destMapping.name = names.indexOf(srcMapping.name);\n }\n\n destOriginalMappings.push(destMapping);\n }\n\n destGeneratedMappings.push(destMapping);\n }\n\n quickSort(smc.__originalMappings, util.compareByOriginalPositions);\n\n return smc;\n };\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nBasicSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(BasicSourceMapConsumer.prototype, 'sources', {\n get: function () {\n return this._absoluteSources.slice();\n }\n});\n\n/**\n * Provide the JIT with a nice shape / hidden class.\n */\nfunction Mapping() {\n this.generatedLine = 0;\n this.generatedColumn = 0;\n this.source = null;\n this.originalLine = null;\n this.originalColumn = null;\n this.name = null;\n}\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nBasicSourceMapConsumer.prototype._parseMappings =\n function SourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n var generatedLine = 1;\n var previousGeneratedColumn = 0;\n var previousOriginalLine = 0;\n var previousOriginalColumn = 0;\n var previousSource = 0;\n var previousName = 0;\n var length = aStr.length;\n var index = 0;\n var cachedSegments = {};\n var temp = {};\n var originalMappings = [];\n var generatedMappings = [];\n var mapping, str, segment, end, value;\n\n while (index < length) {\n if (aStr.charAt(index) === ';') {\n generatedLine++;\n index++;\n previousGeneratedColumn = 0;\n }\n else if (aStr.charAt(index) === ',') {\n index++;\n }\n else {\n mapping = new Mapping();\n mapping.generatedLine = generatedLine;\n\n // Because each offset is encoded relative to the previous one,\n // many segments often have the same encoding. We can exploit this\n // fact by caching the parsed variable length fields of each segment,\n // allowing us to avoid a second parse if we encounter the same\n // segment again.\n for (end = index; end < length; end++) {\n if (this._charIsMappingSeparator(aStr, end)) {\n break;\n }\n }\n str = aStr.slice(index, end);\n\n segment = cachedSegments[str];\n if (segment) {\n index += str.length;\n } else {\n segment = [];\n while (index < end) {\n base64VLQ.decode(aStr, index, temp);\n value = temp.value;\n index = temp.rest;\n segment.push(value);\n }\n\n if (segment.length === 2) {\n throw new Error('Found a source, but no line and column');\n }\n\n if (segment.length === 3) {\n throw new Error('Found a source and line, but no column');\n }\n\n cachedSegments[str] = segment;\n }\n\n // Generated column.\n mapping.generatedColumn = previousGeneratedColumn + segment[0];\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (segment.length > 1) {\n // Original source.\n mapping.source = previousSource + segment[1];\n previousSource += segment[1];\n\n // Original line.\n mapping.originalLine = previousOriginalLine + segment[2];\n previousOriginalLine = mapping.originalLine;\n // Lines are stored 0-based\n mapping.originalLine += 1;\n\n // Original column.\n mapping.originalColumn = previousOriginalColumn + segment[3];\n previousOriginalColumn = mapping.originalColumn;\n\n if (segment.length > 4) {\n // Original name.\n mapping.name = previousName + segment[4];\n previousName += segment[4];\n }\n }\n\n generatedMappings.push(mapping);\n if (typeof mapping.originalLine === 'number') {\n originalMappings.push(mapping);\n }\n }\n }\n\n quickSort(generatedMappings, util.compareByGeneratedPositionsDeflated);\n this.__generatedMappings = generatedMappings;\n\n quickSort(originalMappings, util.compareByOriginalPositions);\n this.__originalMappings = originalMappings;\n };\n\n/**\n * Find the mapping that best matches the hypothetical \"needle\" mapping that\n * we are searching for in the given \"haystack\" of mappings.\n */\nBasicSourceMapConsumer.prototype._findMapping =\n function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName,\n aColumnName, aComparator, aBias) {\n // To return the position we are searching for, we must first find the\n // mapping for the given position and then return the opposite position it\n // points to. Because the mappings are sorted, we can use binary search to\n // find the best mapping.\n\n if (aNeedle[aLineName] <= 0) {\n throw new TypeError('Line must be greater than or equal to 1, got '\n + aNeedle[aLineName]);\n }\n if (aNeedle[aColumnName] < 0) {\n throw new TypeError('Column must be greater than or equal to 0, got '\n + aNeedle[aColumnName]);\n }\n\n return binarySearch.search(aNeedle, aMappings, aComparator, aBias);\n };\n\n/**\n * Compute the last column for each generated mapping. The last column is\n * inclusive.\n */\nBasicSourceMapConsumer.prototype.computeColumnSpans =\n function SourceMapConsumer_computeColumnSpans() {\n for (var index = 0; index < this._generatedMappings.length; ++index) {\n var mapping = this._generatedMappings[index];\n\n // Mappings do not contain a field for the last generated columnt. We\n // can come up with an optimistic estimate, however, by assuming that\n // mappings are contiguous (i.e. given two consecutive mappings, the\n // first mapping ends where the second one starts).\n if (index + 1 < this._generatedMappings.length) {\n var nextMapping = this._generatedMappings[index + 1];\n\n if (mapping.generatedLine === nextMapping.generatedLine) {\n mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1;\n continue;\n }\n }\n\n // The last mapping for each line spans the entire line.\n mapping.lastGeneratedColumn = Infinity;\n }\n };\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nBasicSourceMapConsumer.prototype.originalPositionFor =\n function SourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._generatedMappings,\n \"generatedLine\",\n \"generatedColumn\",\n util.compareByGeneratedPositionsDeflated,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._generatedMappings[index];\n\n if (mapping.generatedLine === needle.generatedLine) {\n var source = util.getArg(mapping, 'source', null);\n if (source !== null) {\n source = this._sources.at(source);\n source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL);\n }\n var name = util.getArg(mapping, 'name', null);\n if (name !== null) {\n name = this._names.at(name);\n }\n return {\n source: source,\n line: util.getArg(mapping, 'originalLine', null),\n column: util.getArg(mapping, 'originalColumn', null),\n name: name\n };\n }\n }\n\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nBasicSourceMapConsumer.prototype.hasContentsOfAllSources =\n function BasicSourceMapConsumer_hasContentsOfAllSources() {\n if (!this.sourcesContent) {\n return false;\n }\n return this.sourcesContent.length >= this._sources.size() &&\n !this.sourcesContent.some(function (sc) { return sc == null; });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nBasicSourceMapConsumer.prototype.sourceContentFor =\n function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n if (!this.sourcesContent) {\n return null;\n }\n\n var index = this._findSourceIndex(aSource);\n if (index >= 0) {\n return this.sourcesContent[index];\n }\n\n var relativeSource = aSource;\n if (this.sourceRoot != null) {\n relativeSource = util.relative(this.sourceRoot, relativeSource);\n }\n\n var url;\n if (this.sourceRoot != null\n && (url = util.urlParse(this.sourceRoot))) {\n // XXX: file:// URIs and absolute paths lead to unexpected behavior for\n // many users. We can help them out when they expect file:// URIs to\n // behave like it would if they were running a local HTTP server. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=885597.\n var fileUriAbsPath = relativeSource.replace(/^file:\\/\\//, \"\");\n if (url.scheme == \"file\"\n && this._sources.has(fileUriAbsPath)) {\n return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)]\n }\n\n if ((!url.path || url.path == \"/\")\n && this._sources.has(\"/\" + relativeSource)) {\n return this.sourcesContent[this._sources.indexOf(\"/\" + relativeSource)];\n }\n }\n\n // This function is used recursively from\n // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we\n // don't want to throw if we can't find the source - we just want to\n // return null, so we provide a flag to exit gracefully.\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + relativeSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or\n * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the\n * closest element that is smaller than or greater than the one we are\n * searching for, respectively, if the exact element cannot be found.\n * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based.\n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nBasicSourceMapConsumer.prototype.generatedPositionFor =\n function SourceMapConsumer_generatedPositionFor(aArgs) {\n var source = util.getArg(aArgs, 'source');\n source = this._findSourceIndex(source);\n if (source < 0) {\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n }\n\n var needle = {\n source: source,\n originalLine: util.getArg(aArgs, 'line'),\n originalColumn: util.getArg(aArgs, 'column')\n };\n\n var index = this._findMapping(\n needle,\n this._originalMappings,\n \"originalLine\",\n \"originalColumn\",\n util.compareByOriginalPositions,\n util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND)\n );\n\n if (index >= 0) {\n var mapping = this._originalMappings[index];\n\n if (mapping.source === needle.source) {\n return {\n line: util.getArg(mapping, 'generatedLine', null),\n column: util.getArg(mapping, 'generatedColumn', null),\n lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null)\n };\n }\n }\n\n return {\n line: null,\n column: null,\n lastColumn: null\n };\n };\n\nexports.BasicSourceMapConsumer = BasicSourceMapConsumer;\n\n/**\n * An IndexedSourceMapConsumer instance represents a parsed source map which\n * we can query for information. It differs from BasicSourceMapConsumer in\n * that it takes \"indexed\" source maps (i.e. ones with a \"sections\" field) as\n * input.\n *\n * The first parameter is a raw source map (either as a JSON string, or already\n * parsed to an object). According to the spec for indexed source maps, they\n * have the following attributes:\n *\n * - version: Which version of the source map spec this map is following.\n * - file: Optional. The generated file this source map is associated with.\n * - sections: A list of section definitions.\n *\n * Each value under the \"sections\" field has two fields:\n * - offset: The offset into the original specified at which this section\n * begins to apply, defined as an object with a \"line\" and \"column\"\n * field.\n * - map: A source map definition. This source map could also be indexed,\n * but doesn't have to be.\n *\n * Instead of the \"map\" field, it's also possible to have a \"url\" field\n * specifying a URL to retrieve a source map from, but that's currently\n * unsupported.\n *\n * Here's an example source map, taken from the source map spec[0], but\n * modified to omit a section which uses the \"url\" field.\n *\n * {\n * version : 3,\n * file: \"app.js\",\n * sections: [{\n * offset: {line:100, column:10},\n * map: {\n * version : 3,\n * file: \"section.js\",\n * sources: [\"foo.js\", \"bar.js\"],\n * names: [\"src\", \"maps\", \"are\", \"fun\"],\n * mappings: \"AAAA,E;;ABCDE;\"\n * }\n * }],\n * }\n *\n * The second parameter, if given, is a string whose value is the URL\n * at which the source map was found. This URL is used to compute the\n * sources array.\n *\n * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt\n */\nfunction IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) {\n var sourceMap = aSourceMap;\n if (typeof aSourceMap === 'string') {\n sourceMap = util.parseSourceMapInput(aSourceMap);\n }\n\n var version = util.getArg(sourceMap, 'version');\n var sections = util.getArg(sourceMap, 'sections');\n\n if (version != this._version) {\n throw new Error('Unsupported version: ' + version);\n }\n\n this._sources = new ArraySet();\n this._names = new ArraySet();\n\n var lastOffset = {\n line: -1,\n column: 0\n };\n this._sections = sections.map(function (s) {\n if (s.url) {\n // The url field will require support for asynchronicity.\n // See https://github.com/mozilla/source-map/issues/16\n throw new Error('Support for url field in sections not implemented.');\n }\n var offset = util.getArg(s, 'offset');\n var offsetLine = util.getArg(offset, 'line');\n var offsetColumn = util.getArg(offset, 'column');\n\n if (offsetLine < lastOffset.line ||\n (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) {\n throw new Error('Section offsets must be ordered and non-overlapping.');\n }\n lastOffset = offset;\n\n return {\n generatedOffset: {\n // The offset fields are 0-based, but we use 1-based indices when\n // encoding/decoding from VLQ.\n generatedLine: offsetLine + 1,\n generatedColumn: offsetColumn + 1\n },\n consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL)\n }\n });\n}\n\nIndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype);\nIndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer;\n\n/**\n * The version of the source mapping spec that we are consuming.\n */\nIndexedSourceMapConsumer.prototype._version = 3;\n\n/**\n * The list of original sources.\n */\nObject.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', {\n get: function () {\n var sources = [];\n for (var i = 0; i < this._sections.length; i++) {\n for (var j = 0; j < this._sections[i].consumer.sources.length; j++) {\n sources.push(this._sections[i].consumer.sources[j]);\n }\n }\n return sources;\n }\n});\n\n/**\n * Returns the original source, line, and column information for the generated\n * source's line and column positions provided. The only argument is an object\n * with the following properties:\n *\n * - line: The line number in the generated source. The line number\n * is 1-based.\n * - column: The column number in the generated source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - source: The original source file, or null.\n * - line: The line number in the original source, or null. The\n * line number is 1-based.\n * - column: The column number in the original source, or null. The\n * column number is 0-based.\n * - name: The original identifier, or null.\n */\nIndexedSourceMapConsumer.prototype.originalPositionFor =\n function IndexedSourceMapConsumer_originalPositionFor(aArgs) {\n var needle = {\n generatedLine: util.getArg(aArgs, 'line'),\n generatedColumn: util.getArg(aArgs, 'column')\n };\n\n // Find the section containing the generated position we're trying to map\n // to an original position.\n var sectionIndex = binarySearch.search(needle, this._sections,\n function(needle, section) {\n var cmp = needle.generatedLine - section.generatedOffset.generatedLine;\n if (cmp) {\n return cmp;\n }\n\n return (needle.generatedColumn -\n section.generatedOffset.generatedColumn);\n });\n var section = this._sections[sectionIndex];\n\n if (!section) {\n return {\n source: null,\n line: null,\n column: null,\n name: null\n };\n }\n\n return section.consumer.originalPositionFor({\n line: needle.generatedLine -\n (section.generatedOffset.generatedLine - 1),\n column: needle.generatedColumn -\n (section.generatedOffset.generatedLine === needle.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n bias: aArgs.bias\n });\n };\n\n/**\n * Return true if we have the source content for every source in the source\n * map, false otherwise.\n */\nIndexedSourceMapConsumer.prototype.hasContentsOfAllSources =\n function IndexedSourceMapConsumer_hasContentsOfAllSources() {\n return this._sections.every(function (s) {\n return s.consumer.hasContentsOfAllSources();\n });\n };\n\n/**\n * Returns the original source content. The only argument is the url of the\n * original source file. Returns null if no original source content is\n * available.\n */\nIndexedSourceMapConsumer.prototype.sourceContentFor =\n function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n var content = section.consumer.sourceContentFor(aSource, true);\n if (content) {\n return content;\n }\n }\n if (nullOnMissing) {\n return null;\n }\n else {\n throw new Error('\"' + aSource + '\" is not in the SourceMap.');\n }\n };\n\n/**\n * Returns the generated line and column information for the original source,\n * line, and column positions provided. The only argument is an object with\n * the following properties:\n *\n * - source: The filename of the original source.\n * - line: The line number in the original source. The line number\n * is 1-based.\n * - column: The column number in the original source. The column\n * number is 0-based.\n *\n * and an object is returned with the following properties:\n *\n * - line: The line number in the generated source, or null. The\n * line number is 1-based. \n * - column: The column number in the generated source, or null.\n * The column number is 0-based.\n */\nIndexedSourceMapConsumer.prototype.generatedPositionFor =\n function IndexedSourceMapConsumer_generatedPositionFor(aArgs) {\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n\n // Only consider this section if the requested source is in the list of\n // sources of the consumer.\n if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) {\n continue;\n }\n var generatedPosition = section.consumer.generatedPositionFor(aArgs);\n if (generatedPosition) {\n var ret = {\n line: generatedPosition.line +\n (section.generatedOffset.generatedLine - 1),\n column: generatedPosition.column +\n (section.generatedOffset.generatedLine === generatedPosition.line\n ? section.generatedOffset.generatedColumn - 1\n : 0)\n };\n return ret;\n }\n }\n\n return {\n line: null,\n column: null\n };\n };\n\n/**\n * Parse the mappings in a string in to a data structure which we can easily\n * query (the ordered arrays in the `this.__generatedMappings` and\n * `this.__originalMappings` properties).\n */\nIndexedSourceMapConsumer.prototype._parseMappings =\n function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) {\n this.__generatedMappings = [];\n this.__originalMappings = [];\n for (var i = 0; i < this._sections.length; i++) {\n var section = this._sections[i];\n var sectionMappings = section.consumer._generatedMappings;\n for (var j = 0; j < sectionMappings.length; j++) {\n var mapping = sectionMappings[j];\n\n var source = section.consumer._sources.at(mapping.source);\n source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL);\n this._sources.add(source);\n source = this._sources.indexOf(source);\n\n var name = null;\n if (mapping.name) {\n name = section.consumer._names.at(mapping.name);\n this._names.add(name);\n name = this._names.indexOf(name);\n }\n\n // The mappings coming from the consumer for the section have\n // generated positions relative to the start of the section, so we\n // need to offset them to be relative to the start of the concatenated\n // generated file.\n var adjustedMapping = {\n source: source,\n generatedLine: mapping.generatedLine +\n (section.generatedOffset.generatedLine - 1),\n generatedColumn: mapping.generatedColumn +\n (section.generatedOffset.generatedLine === mapping.generatedLine\n ? section.generatedOffset.generatedColumn - 1\n : 0),\n originalLine: mapping.originalLine,\n originalColumn: mapping.originalColumn,\n name: name\n };\n\n this.__generatedMappings.push(adjustedMapping);\n if (typeof adjustedMapping.originalLine === 'number') {\n this.__originalMappings.push(adjustedMapping);\n }\n }\n }\n\n quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated);\n quickSort(this.__originalMappings, util.compareByOriginalPositions);\n };\n\nexports.IndexedSourceMapConsumer = IndexedSourceMapConsumer;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar base64VLQ = require('./base64-vlq');\nvar util = require('./util');\nvar ArraySet = require('./array-set').ArraySet;\nvar MappingList = require('./mapping-list').MappingList;\n\n/**\n * An instance of the SourceMapGenerator represents a source map which is\n * being built incrementally. You may pass an object with the following\n * properties:\n *\n * - file: The filename of the generated source.\n * - sourceRoot: A root for all relative URLs in this source map.\n */\nfunction SourceMapGenerator(aArgs) {\n if (!aArgs) {\n aArgs = {};\n }\n this._file = util.getArg(aArgs, 'file', null);\n this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null);\n this._skipValidation = util.getArg(aArgs, 'skipValidation', false);\n this._sources = new ArraySet();\n this._names = new ArraySet();\n this._mappings = new MappingList();\n this._sourcesContents = null;\n}\n\nSourceMapGenerator.prototype._version = 3;\n\n/**\n * Creates a new SourceMapGenerator based on a SourceMapConsumer\n *\n * @param aSourceMapConsumer The SourceMap.\n */\nSourceMapGenerator.fromSourceMap =\n function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) {\n var sourceRoot = aSourceMapConsumer.sourceRoot;\n var generator = new SourceMapGenerator({\n file: aSourceMapConsumer.file,\n sourceRoot: sourceRoot\n });\n aSourceMapConsumer.eachMapping(function (mapping) {\n var newMapping = {\n generated: {\n line: mapping.generatedLine,\n column: mapping.generatedColumn\n }\n };\n\n if (mapping.source != null) {\n newMapping.source = mapping.source;\n if (sourceRoot != null) {\n newMapping.source = util.relative(sourceRoot, newMapping.source);\n }\n\n newMapping.original = {\n line: mapping.originalLine,\n column: mapping.originalColumn\n };\n\n if (mapping.name != null) {\n newMapping.name = mapping.name;\n }\n }\n\n generator.addMapping(newMapping);\n });\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var sourceRelative = sourceFile;\n if (sourceRoot !== null) {\n sourceRelative = util.relative(sourceRoot, sourceFile);\n }\n\n if (!generator._sources.has(sourceRelative)) {\n generator._sources.add(sourceRelative);\n }\n\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n generator.setSourceContent(sourceFile, content);\n }\n });\n return generator;\n };\n\n/**\n * Add a single mapping from original source line and column to the generated\n * source's line and column for this source map being created. The mapping\n * object should have the following properties:\n *\n * - generated: An object with the generated line and column positions.\n * - original: An object with the original line and column positions.\n * - source: The original source file (relative to the sourceRoot).\n * - name: An optional original token name for this mapping.\n */\nSourceMapGenerator.prototype.addMapping =\n function SourceMapGenerator_addMapping(aArgs) {\n var generated = util.getArg(aArgs, 'generated');\n var original = util.getArg(aArgs, 'original', null);\n var source = util.getArg(aArgs, 'source', null);\n var name = util.getArg(aArgs, 'name', null);\n\n if (!this._skipValidation) {\n this._validateMapping(generated, original, source, name);\n }\n\n if (source != null) {\n source = String(source);\n if (!this._sources.has(source)) {\n this._sources.add(source);\n }\n }\n\n if (name != null) {\n name = String(name);\n if (!this._names.has(name)) {\n this._names.add(name);\n }\n }\n\n this._mappings.add({\n generatedLine: generated.line,\n generatedColumn: generated.column,\n originalLine: original != null && original.line,\n originalColumn: original != null && original.column,\n source: source,\n name: name\n });\n };\n\n/**\n * Set the source content for a source file.\n */\nSourceMapGenerator.prototype.setSourceContent =\n function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) {\n var source = aSourceFile;\n if (this._sourceRoot != null) {\n source = util.relative(this._sourceRoot, source);\n }\n\n if (aSourceContent != null) {\n // Add the source content to the _sourcesContents map.\n // Create a new _sourcesContents map if the property is null.\n if (!this._sourcesContents) {\n this._sourcesContents = Object.create(null);\n }\n this._sourcesContents[util.toSetString(source)] = aSourceContent;\n } else if (this._sourcesContents) {\n // Remove the source file from the _sourcesContents map.\n // If the _sourcesContents map is empty, set the property to null.\n delete this._sourcesContents[util.toSetString(source)];\n if (Object.keys(this._sourcesContents).length === 0) {\n this._sourcesContents = null;\n }\n }\n };\n\n/**\n * Applies the mappings of a sub-source-map for a specific source file to the\n * source map being generated. Each mapping to the supplied source file is\n * rewritten using the supplied source map. Note: The resolution for the\n * resulting mappings is the minimium of this map and the supplied map.\n *\n * @param aSourceMapConsumer The source map to be applied.\n * @param aSourceFile Optional. The filename of the source file.\n * If omitted, SourceMapConsumer's file property will be used.\n * @param aSourceMapPath Optional. The dirname of the path to the source map\n * to be applied. If relative, it is relative to the SourceMapConsumer.\n * This parameter is needed when the two source maps aren't in the same\n * directory, and the source map to be applied contains relative source\n * paths. If so, those relative source paths need to be rewritten\n * relative to the SourceMapGenerator.\n */\nSourceMapGenerator.prototype.applySourceMap =\n function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) {\n var sourceFile = aSourceFile;\n // If aSourceFile is omitted, we will use the file property of the SourceMap\n if (aSourceFile == null) {\n if (aSourceMapConsumer.file == null) {\n throw new Error(\n 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' +\n 'or the source map\\'s \"file\" property. Both were omitted.'\n );\n }\n sourceFile = aSourceMapConsumer.file;\n }\n var sourceRoot = this._sourceRoot;\n // Make \"sourceFile\" relative if an absolute Url is passed.\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n // Applying the SourceMap can add and remove items from the sources and\n // the names array.\n var newSources = new ArraySet();\n var newNames = new ArraySet();\n\n // Find mappings for the \"sourceFile\"\n this._mappings.unsortedForEach(function (mapping) {\n if (mapping.source === sourceFile && mapping.originalLine != null) {\n // Check if it can be mapped by the source map, then update the mapping.\n var original = aSourceMapConsumer.originalPositionFor({\n line: mapping.originalLine,\n column: mapping.originalColumn\n });\n if (original.source != null) {\n // Copy mapping\n mapping.source = original.source;\n if (aSourceMapPath != null) {\n mapping.source = util.join(aSourceMapPath, mapping.source)\n }\n if (sourceRoot != null) {\n mapping.source = util.relative(sourceRoot, mapping.source);\n }\n mapping.originalLine = original.line;\n mapping.originalColumn = original.column;\n if (original.name != null) {\n mapping.name = original.name;\n }\n }\n }\n\n var source = mapping.source;\n if (source != null && !newSources.has(source)) {\n newSources.add(source);\n }\n\n var name = mapping.name;\n if (name != null && !newNames.has(name)) {\n newNames.add(name);\n }\n\n }, this);\n this._sources = newSources;\n this._names = newNames;\n\n // Copy sourcesContents of applied map.\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aSourceMapPath != null) {\n sourceFile = util.join(aSourceMapPath, sourceFile);\n }\n if (sourceRoot != null) {\n sourceFile = util.relative(sourceRoot, sourceFile);\n }\n this.setSourceContent(sourceFile, content);\n }\n }, this);\n };\n\n/**\n * A mapping can have one of the three levels of data:\n *\n * 1. Just the generated position.\n * 2. The Generated position, original position, and original source.\n * 3. Generated and original position, original source, as well as a name\n * token.\n *\n * To maintain consistency, we validate that any new mapping being added falls\n * in to one of these categories.\n */\nSourceMapGenerator.prototype._validateMapping =\n function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource,\n aName) {\n // When aOriginal is truthy but has empty values for .line and .column,\n // it is most likely a programmer error. In this case we throw a very\n // specific error message to try to guide them the right way.\n // For example: https://github.com/Polymer/polymer-bundler/pull/519\n if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') {\n throw new Error(\n 'original.line and original.column are not numbers -- you probably meant to omit ' +\n 'the original mapping entirely and only map the generated position. If so, pass ' +\n 'null for the original mapping instead of an object with empty or null values.'\n );\n }\n\n if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aGenerated.line > 0 && aGenerated.column >= 0\n && !aOriginal && !aSource && !aName) {\n // Case 1.\n return;\n }\n else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated\n && aOriginal && 'line' in aOriginal && 'column' in aOriginal\n && aGenerated.line > 0 && aGenerated.column >= 0\n && aOriginal.line > 0 && aOriginal.column >= 0\n && aSource) {\n // Cases 2 and 3.\n return;\n }\n else {\n throw new Error('Invalid mapping: ' + JSON.stringify({\n generated: aGenerated,\n source: aSource,\n original: aOriginal,\n name: aName\n }));\n }\n };\n\n/**\n * Serialize the accumulated mappings in to the stream of base 64 VLQs\n * specified by the source map format.\n */\nSourceMapGenerator.prototype._serializeMappings =\n function SourceMapGenerator_serializeMappings() {\n var previousGeneratedColumn = 0;\n var previousGeneratedLine = 1;\n var previousOriginalColumn = 0;\n var previousOriginalLine = 0;\n var previousName = 0;\n var previousSource = 0;\n var result = '';\n var next;\n var mapping;\n var nameIdx;\n var sourceIdx;\n\n var mappings = this._mappings.toArray();\n for (var i = 0, len = mappings.length; i < len; i++) {\n mapping = mappings[i];\n next = ''\n\n if (mapping.generatedLine !== previousGeneratedLine) {\n previousGeneratedColumn = 0;\n while (mapping.generatedLine !== previousGeneratedLine) {\n next += ';';\n previousGeneratedLine++;\n }\n }\n else {\n if (i > 0) {\n if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) {\n continue;\n }\n next += ',';\n }\n }\n\n next += base64VLQ.encode(mapping.generatedColumn\n - previousGeneratedColumn);\n previousGeneratedColumn = mapping.generatedColumn;\n\n if (mapping.source != null) {\n sourceIdx = this._sources.indexOf(mapping.source);\n next += base64VLQ.encode(sourceIdx - previousSource);\n previousSource = sourceIdx;\n\n // lines are stored 0-based in SourceMap spec version 3\n next += base64VLQ.encode(mapping.originalLine - 1\n - previousOriginalLine);\n previousOriginalLine = mapping.originalLine - 1;\n\n next += base64VLQ.encode(mapping.originalColumn\n - previousOriginalColumn);\n previousOriginalColumn = mapping.originalColumn;\n\n if (mapping.name != null) {\n nameIdx = this._names.indexOf(mapping.name);\n next += base64VLQ.encode(nameIdx - previousName);\n previousName = nameIdx;\n }\n }\n\n result += next;\n }\n\n return result;\n };\n\nSourceMapGenerator.prototype._generateSourcesContent =\n function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) {\n return aSources.map(function (source) {\n if (!this._sourcesContents) {\n return null;\n }\n if (aSourceRoot != null) {\n source = util.relative(aSourceRoot, source);\n }\n var key = util.toSetString(source);\n return Object.prototype.hasOwnProperty.call(this._sourcesContents, key)\n ? this._sourcesContents[key]\n : null;\n }, this);\n };\n\n/**\n * Externalize the source map.\n */\nSourceMapGenerator.prototype.toJSON =\n function SourceMapGenerator_toJSON() {\n var map = {\n version: this._version,\n sources: this._sources.toArray(),\n names: this._names.toArray(),\n mappings: this._serializeMappings()\n };\n if (this._file != null) {\n map.file = this._file;\n }\n if (this._sourceRoot != null) {\n map.sourceRoot = this._sourceRoot;\n }\n if (this._sourcesContents) {\n map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot);\n }\n\n return map;\n };\n\n/**\n * Render the source map being generated to a string.\n */\nSourceMapGenerator.prototype.toString =\n function SourceMapGenerator_toString() {\n return JSON.stringify(this.toJSON());\n };\n\nexports.SourceMapGenerator = SourceMapGenerator;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\nvar SourceMapGenerator = require('./source-map-generator').SourceMapGenerator;\nvar util = require('./util');\n\n// Matches a Windows-style `\\r\\n` newline or a `\\n` newline used by all other\n// operating systems these days (capturing the result).\nvar REGEX_NEWLINE = /(\\r?\\n)/;\n\n// Newline character code for charCodeAt() comparisons\nvar NEWLINE_CODE = 10;\n\n// Private symbol for identifying `SourceNode`s when multiple versions of\n// the source-map library are loaded. This MUST NOT CHANGE across\n// versions!\nvar isSourceNode = \"$$$isSourceNode$$$\";\n\n/**\n * SourceNodes provide a way to abstract over interpolating/concatenating\n * snippets of generated JavaScript source code while maintaining the line and\n * column information associated with the original source code.\n *\n * @param aLine The original line number.\n * @param aColumn The original column number.\n * @param aSource The original source's filename.\n * @param aChunks Optional. An array of strings which are snippets of\n * generated JS, or other SourceNodes.\n * @param aName The original identifier.\n */\nfunction SourceNode(aLine, aColumn, aSource, aChunks, aName) {\n this.children = [];\n this.sourceContents = {};\n this.line = aLine == null ? null : aLine;\n this.column = aColumn == null ? null : aColumn;\n this.source = aSource == null ? null : aSource;\n this.name = aName == null ? null : aName;\n this[isSourceNode] = true;\n if (aChunks != null) this.add(aChunks);\n}\n\n/**\n * Creates a SourceNode from generated code and a SourceMapConsumer.\n *\n * @param aGeneratedCode The generated code\n * @param aSourceMapConsumer The SourceMap for the generated code\n * @param aRelativePath Optional. The path that relative sources in the\n * SourceMapConsumer should be relative to.\n */\nSourceNode.fromStringWithSourceMap =\n function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) {\n // The SourceNode we want to fill with the generated code\n // and the SourceMap\n var node = new SourceNode();\n\n // All even indices of this array are one line of the generated code,\n // while all odd indices are the newlines between two adjacent lines\n // (since `REGEX_NEWLINE` captures its match).\n // Processed fragments are accessed by calling `shiftNextLine`.\n var remainingLines = aGeneratedCode.split(REGEX_NEWLINE);\n var remainingLinesIndex = 0;\n var shiftNextLine = function() {\n var lineContents = getNextLine();\n // The last line of a file might not have a newline.\n var newLine = getNextLine() || \"\";\n return lineContents + newLine;\n\n function getNextLine() {\n return remainingLinesIndex < remainingLines.length ?\n remainingLines[remainingLinesIndex++] : undefined;\n }\n };\n\n // We need to remember the position of \"remainingLines\"\n var lastGeneratedLine = 1, lastGeneratedColumn = 0;\n\n // The generate SourceNodes we need a code range.\n // To extract it current and last mapping is used.\n // Here we store the last mapping.\n var lastMapping = null;\n\n aSourceMapConsumer.eachMapping(function (mapping) {\n if (lastMapping !== null) {\n // We add the code from \"lastMapping\" to \"mapping\":\n // First check if there is a new line in between.\n if (lastGeneratedLine < mapping.generatedLine) {\n // Associate first line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n lastGeneratedLine++;\n lastGeneratedColumn = 0;\n // The remaining code is added without mapping\n } else {\n // There is no new line in between.\n // Associate the code between \"lastGeneratedColumn\" and\n // \"mapping.generatedColumn\" with \"lastMapping\"\n var nextLine = remainingLines[remainingLinesIndex] || '';\n var code = nextLine.substr(0, mapping.generatedColumn -\n lastGeneratedColumn);\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn -\n lastGeneratedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n addMappingWithCode(lastMapping, code);\n // No more remaining code, continue\n lastMapping = mapping;\n return;\n }\n }\n // We add the generated code until the first mapping\n // to the SourceNode without any mapping.\n // Each line is added as separate string.\n while (lastGeneratedLine < mapping.generatedLine) {\n node.add(shiftNextLine());\n lastGeneratedLine++;\n }\n if (lastGeneratedColumn < mapping.generatedColumn) {\n var nextLine = remainingLines[remainingLinesIndex] || '';\n node.add(nextLine.substr(0, mapping.generatedColumn));\n remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn);\n lastGeneratedColumn = mapping.generatedColumn;\n }\n lastMapping = mapping;\n }, this);\n // We have processed all mappings.\n if (remainingLinesIndex < remainingLines.length) {\n if (lastMapping) {\n // Associate the remaining code in the current line with \"lastMapping\"\n addMappingWithCode(lastMapping, shiftNextLine());\n }\n // and add the remaining lines without any mapping\n node.add(remainingLines.splice(remainingLinesIndex).join(\"\"));\n }\n\n // Copy sourcesContent into SourceNode\n aSourceMapConsumer.sources.forEach(function (sourceFile) {\n var content = aSourceMapConsumer.sourceContentFor(sourceFile);\n if (content != null) {\n if (aRelativePath != null) {\n sourceFile = util.join(aRelativePath, sourceFile);\n }\n node.setSourceContent(sourceFile, content);\n }\n });\n\n return node;\n\n function addMappingWithCode(mapping, code) {\n if (mapping === null || mapping.source === undefined) {\n node.add(code);\n } else {\n var source = aRelativePath\n ? util.join(aRelativePath, mapping.source)\n : mapping.source;\n node.add(new SourceNode(mapping.originalLine,\n mapping.originalColumn,\n source,\n code,\n mapping.name));\n }\n }\n };\n\n/**\n * Add a chunk of generated JS to this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.add = function SourceNode_add(aChunk) {\n if (Array.isArray(aChunk)) {\n aChunk.forEach(function (chunk) {\n this.add(chunk);\n }, this);\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n if (aChunk) {\n this.children.push(aChunk);\n }\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Add a chunk of generated JS to the beginning of this source node.\n *\n * @param aChunk A string snippet of generated JS code, another instance of\n * SourceNode, or an array where each member is one of those things.\n */\nSourceNode.prototype.prepend = function SourceNode_prepend(aChunk) {\n if (Array.isArray(aChunk)) {\n for (var i = aChunk.length-1; i >= 0; i--) {\n this.prepend(aChunk[i]);\n }\n }\n else if (aChunk[isSourceNode] || typeof aChunk === \"string\") {\n this.children.unshift(aChunk);\n }\n else {\n throw new TypeError(\n \"Expected a SourceNode, string, or an array of SourceNodes and strings. Got \" + aChunk\n );\n }\n return this;\n};\n\n/**\n * Walk over the tree of JS snippets in this node and its children. The\n * walking function is called once for each snippet of JS and is passed that\n * snippet and the its original associated source's line/column location.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walk = function SourceNode_walk(aFn) {\n var chunk;\n for (var i = 0, len = this.children.length; i < len; i++) {\n chunk = this.children[i];\n if (chunk[isSourceNode]) {\n chunk.walk(aFn);\n }\n else {\n if (chunk !== '') {\n aFn(chunk, { source: this.source,\n line: this.line,\n column: this.column,\n name: this.name });\n }\n }\n }\n};\n\n/**\n * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between\n * each of `this.children`.\n *\n * @param aSep The separator.\n */\nSourceNode.prototype.join = function SourceNode_join(aSep) {\n var newChildren;\n var i;\n var len = this.children.length;\n if (len > 0) {\n newChildren = [];\n for (i = 0; i < len-1; i++) {\n newChildren.push(this.children[i]);\n newChildren.push(aSep);\n }\n newChildren.push(this.children[i]);\n this.children = newChildren;\n }\n return this;\n};\n\n/**\n * Call String.prototype.replace on the very right-most source snippet. Useful\n * for trimming whitespace from the end of a source node, etc.\n *\n * @param aPattern The pattern to replace.\n * @param aReplacement The thing to replace the pattern with.\n */\nSourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) {\n var lastChild = this.children[this.children.length - 1];\n if (lastChild[isSourceNode]) {\n lastChild.replaceRight(aPattern, aReplacement);\n }\n else if (typeof lastChild === 'string') {\n this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement);\n }\n else {\n this.children.push(''.replace(aPattern, aReplacement));\n }\n return this;\n};\n\n/**\n * Set the source content for a source file. This will be added to the SourceMapGenerator\n * in the sourcesContent field.\n *\n * @param aSourceFile The filename of the source file\n * @param aSourceContent The content of the source file\n */\nSourceNode.prototype.setSourceContent =\n function SourceNode_setSourceContent(aSourceFile, aSourceContent) {\n this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent;\n };\n\n/**\n * Walk over the tree of SourceNodes. The walking function is called for each\n * source file content and is passed the filename and source content.\n *\n * @param aFn The traversal function.\n */\nSourceNode.prototype.walkSourceContents =\n function SourceNode_walkSourceContents(aFn) {\n for (var i = 0, len = this.children.length; i < len; i++) {\n if (this.children[i][isSourceNode]) {\n this.children[i].walkSourceContents(aFn);\n }\n }\n\n var sources = Object.keys(this.sourceContents);\n for (var i = 0, len = sources.length; i < len; i++) {\n aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]);\n }\n };\n\n/**\n * Return the string representation of this source node. Walks over the tree\n * and concatenates all the various snippets together to one string.\n */\nSourceNode.prototype.toString = function SourceNode_toString() {\n var str = \"\";\n this.walk(function (chunk) {\n str += chunk;\n });\n return str;\n};\n\n/**\n * Returns the string representation of this source node along with a source\n * map.\n */\nSourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) {\n var generated = {\n code: \"\",\n line: 1,\n column: 0\n };\n var map = new SourceMapGenerator(aArgs);\n var sourceMappingActive = false;\n var lastOriginalSource = null;\n var lastOriginalLine = null;\n var lastOriginalColumn = null;\n var lastOriginalName = null;\n this.walk(function (chunk, original) {\n generated.code += chunk;\n if (original.source !== null\n && original.line !== null\n && original.column !== null) {\n if(lastOriginalSource !== original.source\n || lastOriginalLine !== original.line\n || lastOriginalColumn !== original.column\n || lastOriginalName !== original.name) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n lastOriginalSource = original.source;\n lastOriginalLine = original.line;\n lastOriginalColumn = original.column;\n lastOriginalName = original.name;\n sourceMappingActive = true;\n } else if (sourceMappingActive) {\n map.addMapping({\n generated: {\n line: generated.line,\n column: generated.column\n }\n });\n lastOriginalSource = null;\n sourceMappingActive = false;\n }\n for (var idx = 0, length = chunk.length; idx < length; idx++) {\n if (chunk.charCodeAt(idx) === NEWLINE_CODE) {\n generated.line++;\n generated.column = 0;\n // Mappings end at eol\n if (idx + 1 === length) {\n lastOriginalSource = null;\n sourceMappingActive = false;\n } else if (sourceMappingActive) {\n map.addMapping({\n source: original.source,\n original: {\n line: original.line,\n column: original.column\n },\n generated: {\n line: generated.line,\n column: generated.column\n },\n name: original.name\n });\n }\n } else {\n generated.column++;\n }\n }\n });\n this.walkSourceContents(function (sourceFile, sourceContent) {\n map.setSourceContent(sourceFile, sourceContent);\n });\n\n return { code: generated.code, map: map };\n};\n\nexports.SourceNode = SourceNode;\n","/* -*- Mode: js; js-indent-level: 2; -*- */\n/*\n * Copyright 2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\n\n/**\n * This is a helper function for getting values from parameter/options\n * objects.\n *\n * @param args The object we are extracting values from\n * @param name The name of the property we are getting.\n * @param defaultValue An optional value to return if the property is missing\n * from the object. If this is not specified and the property is missing, an\n * error will be thrown.\n */\nfunction getArg(aArgs, aName, aDefaultValue) {\n if (aName in aArgs) {\n return aArgs[aName];\n } else if (arguments.length === 3) {\n return aDefaultValue;\n } else {\n throw new Error('\"' + aName + '\" is a required argument.');\n }\n}\nexports.getArg = getArg;\n\nvar urlRegexp = /^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.-]*)(?::(\\d+))?(.*)$/;\nvar dataUrlRegexp = /^data:.+\\,.+$/;\n\nfunction urlParse(aUrl) {\n var match = aUrl.match(urlRegexp);\n if (!match) {\n return null;\n }\n return {\n scheme: match[1],\n auth: match[2],\n host: match[3],\n port: match[4],\n path: match[5]\n };\n}\nexports.urlParse = urlParse;\n\nfunction urlGenerate(aParsedUrl) {\n var url = '';\n if (aParsedUrl.scheme) {\n url += aParsedUrl.scheme + ':';\n }\n url += '//';\n if (aParsedUrl.auth) {\n url += aParsedUrl.auth + '@';\n }\n if (aParsedUrl.host) {\n url += aParsedUrl.host;\n }\n if (aParsedUrl.port) {\n url += \":\" + aParsedUrl.port\n }\n if (aParsedUrl.path) {\n url += aParsedUrl.path;\n }\n return url;\n}\nexports.urlGenerate = urlGenerate;\n\n/**\n * Normalizes a path, or the path portion of a URL:\n *\n * - Replaces consecutive slashes with one slash.\n * - Removes unnecessary '.' parts.\n * - Removes unnecessary '/..' parts.\n *\n * Based on code in the Node.js 'path' core module.\n *\n * @param aPath The path or url to normalize.\n */\nfunction normalize(aPath) {\n var path = aPath;\n var url = urlParse(aPath);\n if (url) {\n if (!url.path) {\n return aPath;\n }\n path = url.path;\n }\n var isAbsolute = exports.isAbsolute(path);\n\n var parts = path.split(/\\/+/);\n for (var part, up = 0, i = parts.length - 1; i >= 0; i--) {\n part = parts[i];\n if (part === '.') {\n parts.splice(i, 1);\n } else if (part === '..') {\n up++;\n } else if (up > 0) {\n if (part === '') {\n // The first part is blank if the path is absolute. Trying to go\n // above the root is a no-op. Therefore we can remove all '..' parts\n // directly after the root.\n parts.splice(i + 1, up);\n up = 0;\n } else {\n parts.splice(i, 2);\n up--;\n }\n }\n }\n path = parts.join('/');\n\n if (path === '') {\n path = isAbsolute ? '/' : '.';\n }\n\n if (url) {\n url.path = path;\n return urlGenerate(url);\n }\n return path;\n}\nexports.normalize = normalize;\n\n/**\n * Joins two paths/URLs.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be joined with the root.\n *\n * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a\n * scheme-relative URL: Then the scheme of aRoot, if any, is prepended\n * first.\n * - Otherwise aPath is a path. If aRoot is a URL, then its path portion\n * is updated with the result and aRoot is returned. Otherwise the result\n * is returned.\n * - If aPath is absolute, the result is aPath.\n * - Otherwise the two paths are joined with a slash.\n * - Joining for example 'http://' and 'www.example.com' is also supported.\n */\nfunction join(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n if (aPath === \"\") {\n aPath = \".\";\n }\n var aPathUrl = urlParse(aPath);\n var aRootUrl = urlParse(aRoot);\n if (aRootUrl) {\n aRoot = aRootUrl.path || '/';\n }\n\n // `join(foo, '//www.example.org')`\n if (aPathUrl && !aPathUrl.scheme) {\n if (aRootUrl) {\n aPathUrl.scheme = aRootUrl.scheme;\n }\n return urlGenerate(aPathUrl);\n }\n\n if (aPathUrl || aPath.match(dataUrlRegexp)) {\n return aPath;\n }\n\n // `join('http://', 'www.example.com')`\n if (aRootUrl && !aRootUrl.host && !aRootUrl.path) {\n aRootUrl.host = aPath;\n return urlGenerate(aRootUrl);\n }\n\n var joined = aPath.charAt(0) === '/'\n ? aPath\n : normalize(aRoot.replace(/\\/+$/, '') + '/' + aPath);\n\n if (aRootUrl) {\n aRootUrl.path = joined;\n return urlGenerate(aRootUrl);\n }\n return joined;\n}\nexports.join = join;\n\nexports.isAbsolute = function (aPath) {\n return aPath.charAt(0) === '/' || urlRegexp.test(aPath);\n};\n\n/**\n * Make a path relative to a URL or another path.\n *\n * @param aRoot The root path or URL.\n * @param aPath The path or URL to be made relative to aRoot.\n */\nfunction relative(aRoot, aPath) {\n if (aRoot === \"\") {\n aRoot = \".\";\n }\n\n aRoot = aRoot.replace(/\\/$/, '');\n\n // It is possible for the path to be above the root. In this case, simply\n // checking whether the root is a prefix of the path won't work. Instead, we\n // need to remove components from the root one by one, until either we find\n // a prefix that fits, or we run out of components to remove.\n var level = 0;\n while (aPath.indexOf(aRoot + '/') !== 0) {\n var index = aRoot.lastIndexOf(\"/\");\n if (index < 0) {\n return aPath;\n }\n\n // If the only part of the root that is left is the scheme (i.e. http://,\n // file:///, etc.), one or more slashes (/), or simply nothing at all, we\n // have exhausted all components, so the path is not relative to the root.\n aRoot = aRoot.slice(0, index);\n if (aRoot.match(/^([^\\/]+:\\/)?\\/*$/)) {\n return aPath;\n }\n\n ++level;\n }\n\n // Make sure we add a \"../\" for each component we removed from the root.\n return Array(level + 1).join(\"../\") + aPath.substr(aRoot.length + 1);\n}\nexports.relative = relative;\n\nvar supportsNullProto = (function () {\n var obj = Object.create(null);\n return !('__proto__' in obj);\n}());\n\nfunction identity (s) {\n return s;\n}\n\n/**\n * Because behavior goes wacky when you set `__proto__` on objects, we\n * have to prefix all the strings in our set with an arbitrary character.\n *\n * See https://github.com/mozilla/source-map/pull/31 and\n * https://github.com/mozilla/source-map/issues/30\n *\n * @param String aStr\n */\nfunction toSetString(aStr) {\n if (isProtoString(aStr)) {\n return '$' + aStr;\n }\n\n return aStr;\n}\nexports.toSetString = supportsNullProto ? identity : toSetString;\n\nfunction fromSetString(aStr) {\n if (isProtoString(aStr)) {\n return aStr.slice(1);\n }\n\n return aStr;\n}\nexports.fromSetString = supportsNullProto ? identity : fromSetString;\n\nfunction isProtoString(s) {\n if (!s) {\n return false;\n }\n\n var length = s.length;\n\n if (length < 9 /* \"__proto__\".length */) {\n return false;\n }\n\n if (s.charCodeAt(length - 1) !== 95 /* '_' */ ||\n s.charCodeAt(length - 2) !== 95 /* '_' */ ||\n s.charCodeAt(length - 3) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 4) !== 116 /* 't' */ ||\n s.charCodeAt(length - 5) !== 111 /* 'o' */ ||\n s.charCodeAt(length - 6) !== 114 /* 'r' */ ||\n s.charCodeAt(length - 7) !== 112 /* 'p' */ ||\n s.charCodeAt(length - 8) !== 95 /* '_' */ ||\n s.charCodeAt(length - 9) !== 95 /* '_' */) {\n return false;\n }\n\n for (var i = length - 10; i >= 0; i--) {\n if (s.charCodeAt(i) !== 36 /* '$' */) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Comparator between two mappings where the original positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same original source/line/column, but different generated\n * line and column the same. Useful when searching for a mapping with a\n * stubbed out mapping.\n */\nfunction compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) {\n var cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0 || onlyCompareOriginal) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByOriginalPositions = compareByOriginalPositions;\n\n/**\n * Comparator between two mappings with deflated source and name indices where\n * the generated positions are compared.\n *\n * Optionally pass in `true` as `onlyCompareGenerated` to consider two\n * mappings with the same generated line and column, but different\n * source/name/original line and column the same. Useful when searching for a\n * mapping with a stubbed out mapping.\n */\nfunction compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0 || onlyCompareGenerated) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated;\n\nfunction strcmp(aStr1, aStr2) {\n if (aStr1 === aStr2) {\n return 0;\n }\n\n if (aStr1 === null) {\n return 1; // aStr2 !== null\n }\n\n if (aStr2 === null) {\n return -1; // aStr1 !== null\n }\n\n if (aStr1 > aStr2) {\n return 1;\n }\n\n return -1;\n}\n\n/**\n * Comparator between two mappings with inflated source and name strings where\n * the generated positions are compared.\n */\nfunction compareByGeneratedPositionsInflated(mappingA, mappingB) {\n var cmp = mappingA.generatedLine - mappingB.generatedLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.generatedColumn - mappingB.generatedColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = strcmp(mappingA.source, mappingB.source);\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalLine - mappingB.originalLine;\n if (cmp !== 0) {\n return cmp;\n }\n\n cmp = mappingA.originalColumn - mappingB.originalColumn;\n if (cmp !== 0) {\n return cmp;\n }\n\n return strcmp(mappingA.name, mappingB.name);\n}\nexports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated;\n\n/**\n * Strip any JSON XSSI avoidance prefix from the string (as documented\n * in the source maps specification), and then parse the string as\n * JSON.\n */\nfunction parseSourceMapInput(str) {\n return JSON.parse(str.replace(/^\\)]}'[^\\n]*\\n/, ''));\n}\nexports.parseSourceMapInput = parseSourceMapInput;\n\n/**\n * Compute the URL of a source given the the source root, the source's\n * URL, and the source map's URL.\n */\nfunction computeSourceURL(sourceRoot, sourceURL, sourceMapURL) {\n sourceURL = sourceURL || '';\n\n if (sourceRoot) {\n // This follows what Chrome does.\n if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') {\n sourceRoot += '/';\n }\n // The spec says:\n // Line 4: An optional source root, useful for relocating source\n // files on a server or removing repeated values in the\n // “sources” entry. This value is prepended to the individual\n // entries in the “source” field.\n sourceURL = sourceRoot + sourceURL;\n }\n\n // Historically, SourceMapConsumer did not take the sourceMapURL as\n // a parameter. This mode is still somewhat supported, which is why\n // this code block is conditional. However, it's preferable to pass\n // the source map URL to SourceMapConsumer, so that this function\n // can implement the source URL resolution algorithm as outlined in\n // the spec. This block is basically the equivalent of:\n // new URL(sourceURL, sourceMapURL).toString()\n // ... except it avoids using URL, which wasn't available in the\n // older releases of node still supported by this library.\n //\n // The spec says:\n // If the sources are not absolute URLs after prepending of the\n // “sourceRoot”, the sources are resolved relative to the\n // SourceMap (like resolving script src in a html document).\n if (sourceMapURL) {\n var parsed = urlParse(sourceMapURL);\n if (!parsed) {\n throw new Error(\"sourceMapURL could not be parsed\");\n }\n if (parsed.path) {\n // Strip the last path component, but keep the \"/\".\n var index = parsed.path.lastIndexOf('/');\n if (index >= 0) {\n parsed.path = parsed.path.substring(0, index + 1);\n }\n }\n sourceURL = join(urlGenerate(parsed), sourceURL);\n }\n\n return normalize(sourceURL);\n}\nexports.computeSourceURL = computeSourceURL;\n","/*\n * Copyright 2009-2011 Mozilla Foundation and contributors\n * Licensed under the New BSD license. See LICENSE.txt or:\n * http://opensource.org/licenses/BSD-3-Clause\n */\nexports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator;\nexports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer;\nexports.SourceNode = require('./lib/source-node').SourceNode;\n","module.exports = require(\"fs\");","module.exports = require(\"http\");","module.exports = require(\"https\");","module.exports = require(\"path\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(503);\n"],"names":["root","factory","exports","module","define","amd","Object","self","this","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","_asyncToGenerator","arguments","apply","_next","_throw","_defineProperties","_toPropertyKey","key","toPrimitive","String","_toPrimitive","LocalStorageCredentialStore","require","HttpCall","ApiHelper","authentication","options","_classCallCheck","fullResponse","rememberMe","timeout","newCredentialStore","credentialStore","createStore","credentials","sessionId","path","set","cred","server","get","database","userName","password","newStore","store","clear","_getAuthentication","_callee","authenticate","_this","_context","response","data","result","setLocalCredentials","_x","_x2","callbackError","dispatchError","message","errorDetails","error","toString","status","concat","statusText","statusCode","statusMessage","_sendHttpCall","_callee3","params","callbackSuccess","_this2","_context3","send","_ref","_callee2","_context2","clearLocalCredentials","getAuthentication","auth","_x9","_x3","_x4","_x5","_x6","_x7","_x8","GeotabApi","newOptions","undefined","_helper","bind","_authenticate","callimpl","_call","_callimpl","storedCredentials","getLocalCredentials","sendHttpCall","errorHandle","parseHttpResponse","_x0","_multiCall","_callee4","calls","formattedCalls","_context4","map","_x1","_x10","_x11","_getSession","_callee5","newSession","_context5","_x12","_x13","_forget","_callee6","_context6","http","window","https","config","headers","body","replace","JSON","stringify","_send","url","fetchTimeout","fetchPromise","timeoutPromise","urlObj","getCallUrl","encode","fetch","_","reject","setTimeout","race","clearTimeout","json","URL","hostname","pathname","req","protocol","request","res","on","chunk","parsedData","parse","destroy","write","end","LocalStorageMock","credentials_key","server_key","localStorage","getItem","storedServer","thisCredentials","console","log","setItem","removeItem","_state","isModern","Buffer","alloc","allocUnsafe","from","encodingOrOffset","input","obj","byteOffset","maxLength","byteLength","RangeError","Uint8Array","fromArrayBuffer","string","encoding","isEncoding","fromString","runtime","Op","hasOwn","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","err","innerFn","outerFn","tryLocsList","protoGenerator","generator","context","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","PromiseImpl","record","unwrapped","previousPromise","state","doneResult","delegateResult","methodName","info","locs","entry","iterable","iteratorMethod","genFun","ctor","iter","val","object","skipTempReset","rootRecord","exception","loc","caught","hasCatch","hasFinally","finallyEntry","thrown","regeneratorRuntime","accidentalStrictMode","globalThis","Function","fs","SourceMapConsumer","existsSync","readFileSync","bufferFrom","dynamicRequire","mod","errorFormatterInstalled","uncaughtShimInstalled","emptyCacheBetweenOperations","environment","fileContentsCache","sourceMapCache","reSourceMap","retrieveFileHandlers","retrieveMapHandlers","isInBrowser","XMLHttpRequest","process","handlerExec","list","ret","retrieveFile","supportRelativeURL","file","dir","dirname","match","exec","startPath","test","trim","drive","contents","xhr","open","readyState","responseText","er","retrieveSourceMap","mapSourcePosition","position","sourceMap","source","urlAndMap","sourcesContent","sources","originalPositionFor","originalPosition","mapEvalOrigin","origin","line","column","CallSiteToString","fileName","fileLocation","isNative","getScriptNameOrSourceURL","isEval","getEvalOrigin","lineNumber","getLineNumber","columnNumber","getColumnNumber","functionName","getFunctionName","addSuffix","isConstructor","isToplevel","typeName","getTypeName","getMethodName","indexOf","cloneCallSite","frame","getOwnPropertyNames","wrapCallSite","nextPosition","curPosition","getFileName","headerLength","version","originalFunctionName","prepareStackTrace","stack","errorString","processedStack","join","getErrorSource","code","split","Array","sourceMapData","sourceMappingURL","fileData","sourceMapHeader","getResponseHeader","lastMatch","re","retrieveSourceMapURL","rawData","originalRetrieveFileHandlers","originalRetrieveMapHandlers","install","overrideRetrieveFile","unshift","overrideRetrieveSourceMap","hookRequire","Module","$compile","_compile","__sourceMapSupport","content","filename","installHandler","handleUncaughtExceptions","isMainThread","origEmit","emit","hasStack","hasListeners","listeners","stderr","globalProcessStderr","_handle","setBlocking","exit","resetRetrieveHandlers","util","has","hasNativeMap","Map","ArraySet","_array","_set","fromArray","aArray","aAllowDuplicates","len","add","size","aStr","sStr","toSetString","isDuplicate","idx","at","aIdx","toArray","base64","aValue","digit","encoded","vlq","toVLQSigned","VLQ_BASE","decode","aIndex","aOutParam","continuation","shifted","strLen","shift","charCodeAt","rest","intToCharMap","number","charCode","recursiveSearch","aLow","aHigh","aNeedle","aHaystack","aCompare","aBias","mid","Math","floor","cmp","LEAST_UPPER_BOUND","GREATEST_LOWER_BOUND","search","index","MappingList","_sorted","_last","generatedLine","generatedColumn","unsortedForEach","aCallback","aThisArg","aMapping","mappingA","mappingB","lineA","lineB","columnA","columnB","compareByGeneratedPositionsInflated","sort","swap","ary","x","temp","doQuickSort","comparator","low","high","round","random","pivot","j","q","binarySearch","base64VLQ","quickSort","aSourceMap","aSourceMapURL","parseSourceMapInput","sections","IndexedSourceMapConsumer","BasicSourceMapConsumer","getArg","names","sourceRoot","mappings","_version","normalize","isAbsolute","relative","_names","_sources","_absoluteSources","computeSourceURL","_mappings","_sourceMapURL","Mapping","originalLine","originalColumn","lastOffset","_sections","offset","offsetLine","offsetColumn","generatedOffset","consumer","fromSourceMap","__generatedMappings","_parseMappings","__originalMappings","_charIsMappingSeparator","aSourceRoot","GENERATED_ORDER","ORIGINAL_ORDER","eachMapping","aContext","aOrder","_generatedMappings","_originalMappings","mapping","allGeneratedPositionsFor","aArgs","needle","_findSourceIndex","_findMapping","compareByOriginalPositions","lastColumn","aSource","relativeSource","smc","_sourceRoot","_generateSourcesContent","_file","generatedMappings","destGeneratedMappings","destOriginalMappings","srcMapping","destMapping","str","segment","previousGeneratedColumn","previousOriginalLine","previousOriginalColumn","previousSource","previousName","cachedSegments","originalMappings","compareByGeneratedPositionsDeflated","aMappings","aLineName","aColumnName","aComparator","computeColumnSpans","nextMapping","lastGeneratedColumn","Infinity","hasContentsOfAllSources","some","sc","sourceContentFor","nullOnMissing","urlParse","fileUriAbsPath","scheme","generatedPositionFor","sectionIndex","section","bias","every","generatedPosition","sectionMappings","adjustedMapping","SourceMapGenerator","_skipValidation","_sourcesContents","aSourceMapConsumer","newMapping","generated","original","addMapping","sourceFile","sourceRelative","setSourceContent","_validateMapping","aSourceFile","aSourceContent","applySourceMap","aSourceMapPath","newSources","newNames","aGenerated","aOriginal","aName","_serializeMappings","nameIdx","sourceIdx","previousGeneratedLine","aSources","toJSON","REGEX_NEWLINE","isSourceNode","SourceNode","aLine","aColumn","aChunks","children","sourceContents","fromStringWithSourceMap","aGeneratedCode","aRelativePath","node","remainingLines","remainingLinesIndex","shiftNextLine","getNextLine","lastGeneratedLine","lastMapping","nextLine","substr","addMappingWithCode","splice","aChunk","isArray","prepend","walk","aFn","aSep","newChildren","replaceRight","aPattern","aReplacement","lastChild","walkSourceContents","fromSetString","toStringWithSourceMap","sourceMappingActive","lastOriginalSource","lastOriginalLine","lastOriginalColumn","lastOriginalName","sourceContent","aDefaultValue","urlRegexp","dataUrlRegexp","aUrl","host","port","urlGenerate","aParsedUrl","aPath","part","parts","up","aRoot","aPathUrl","aRootUrl","joined","level","lastIndexOf","supportsNullProto","identity","isProtoString","strcmp","aStr1","aStr2","onlyCompareOriginal","onlyCompareGenerated","sourceURL","sourceMapURL","parsed","substring","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","id","loaded","__webpack_modules__","nmd","paths"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/api.js b/lib/api.js index f625b36..860960b 100644 --- a/lib/api.js +++ b/lib/api.js @@ -1,5 +1,5 @@ -/*! mg-api-js - v3.0.2 - * Release on: 2026-04-13 +/*! mg-api-js - v3.0.3 + * Release on: 2026-07-15 * Copyright (c) 2020 Geotab Inc * Licensed MIT */ // UMD Declaration diff --git a/package-lock.json b/package-lock.json index 8eea276..9e9b105 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mg-api-js", - "version": "3.0.2", + "version": "3.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mg-api-js", - "version": "3.0.2", + "version": "3.0.3", "license": "MIT", "devDependencies": { "@babel/core": "^7.19.1", diff --git a/package.json b/package.json index 22474ae..e4ffa0a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mg-api-js", - "version": "3.0.2", + "version": "3.0.3", "description": "A MyGeotab API wrapper for clientside and serverside javascript", "main": "dist/api.min.js", "readmeFilename": "README.md",