Comparing version 0.11.2-instancing.0 to 0.11.3-depth-texture.0
@@ -218,2 +218,2 @@ /** | ||
*/ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9CdWZmZXIuanMiXSwibmFtZXMiOlsiQnVmZmVyIiwiY29uc3RydWN0b3IiLCJpbml0RGF0YSIsIm9wdGlvbnMiLCJfaW5pdERhdGEiLCJieXRlTGVuZ3RoIiwidW5kZWZpbmVkIiwidHlwZSIsIkFycmF5QnVmZmVyIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdE9wdGlvbnMiLCJkcmF3VHlwZSIsImluc3RhbmNlRGl2aXNvciIsImR5bmFtaWNEcmF3IiwiU3RhdGljRHJhdyIsIl9nbEJ1ZmZlciIsIl9nbENvbnRleHQiLCJiaW5kIiwiZ2wiLCJsb2NhdGlvbiIsInByZXBhcmUiLCJiaW5kQnVmZmVyIiwiQVJSQVlfQlVGRkVSIiwidmVydGV4QXR0cmliUG9pbnRlciIsIml0ZW1TaXplIiwiX3RvR2xQYXJhbSIsImRhdGFUeXBlIiwibm9ybWFsaXplZCIsInN0cmlkZSIsIm9mZnNldCIsInZlcnRleEF0dHJpYkRpdmlzb3IiLCJFbGVtZW50QXJyYXlCdWZmZXIiLCJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsInJlbW92ZSIsIl91bnByZXBhcmUiLCJzdWJEYXRhIiwiaW5kZXgiLCJkYXRhIiwiYnVmZmVyU3ViRGF0YSIsImNyZWF0ZUJ1ZmZlciIsImJ1ZmZlckRhdGEiLCJkZWxldGVCdWZmZXIiLCJwYXJhbSIsIlNUQVRJQ19EUkFXIiwiRHluYW1pY0RyYXciLCJEWU5BTUlDX0RSQVciLCJCeXRlIiwiQllURSIsIlNob3J0IiwiU0hPUlQiLCJJbnQiLCJJTlQiLCJGbG9hdCIsIkZMT0FUIiwiVW5zaWduZWRCeXRlIiwiVU5TSUdORURfQllURSIsIlVuc2lnbmVkU2hvcnQiLCJVTlNJR05FRF9TSE9SVCIsIlVuc2lnbmVkSW50IiwiVU5TSUdORURfSU5UIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFRQSxNQUFNQSxNQUFOLENBQWE7QUFDVEMsZ0JBQVlDLFFBQVosRUFBc0JDLE9BQXRCLEVBQStCO0FBQzNCLGFBQUtDLFNBQUwsR0FBaUJGLFFB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RUFBa0M7QUFBRSxtQkFBT3hDLEdBQUd5QyxZQUFWO0FBQXlCO0FBQzdELGVBQU8sSUFBUDtBQUNIO0FBekpROztBQTRKYjVELE9BQU9RLFdBQVAsR0FBcUIsQ0FBckI7QUFDQVIsT0FBT2dDLGtCQUFQLEdBQTRCLENBQTVCOztBQUVBaEMsT0FBT2UsVUFBUCxHQUFvQixFQUFwQjtBQUNBZixPQUFPNkMsV0FBUCxHQUFxQixFQUFyQjs7QUFFQTdDLE9BQU9xRCxLQUFQLEdBQWUsRUFBZjtBQUNBckQsT0FBT3VELFlBQVAsR0FBc0IsRUFBdEI7QUFDQXZELE9BQU95RCxhQUFQLEdBQXVCLEVBQXZCO0FBQ0F6RCxPQUFPMkQsV0FBUCxHQUFxQixFQUFyQjtBQUNBM0QsT0FBTytDLElBQVAsR0FBYyxFQUFkO0FBQ0EvQyxPQUFPaUQsS0FBUCxHQUFlLEVBQWY7QUFDQWpELE9BQU9tRCxHQUFQLEdBQWEsRUFBYjs7QUFFQW5ELE9BQU9XLGNBQVAsR0FBd0I7QUFDcEJjLGNBQVUsQ0FEVTtBQUVwQkUsY0FBVTNCLE9BQU9xRCxLQUZHO0FBR3BCeEIsWUFBUSxDQUhZO0FBSXBCQyxZQUFRLENBSlk7QUFLcEJGLGdCQUFZLEtBTFE7QUFNcEJmLHFCQUFpQjtBQU5HLENBQXhCOztBQVNBLGVBQWViLE1BQWY7O0FBRUEiLCJmaWxlIjoiQnVmZmVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINGF0YDQsNC90LXQvdC40Y8g0Lgg0L/QvtC00LPQvtGC0L7QstC60Lgg0LTQsNC90L3Ri9GFINC00LvRjyDQv9C10YDQtdC00LDRh9C4INCyINCw0YLRgNC40LHRg9GC0Ysg0YjQtdC50LTQtdGA0LBcbiAqXG4gKiBAcGFyYW0ge1R5cGVkQXJyYXkgfCBBcnJheUJ1ZmZlciB8IG51bWJlcn0gaW5pdERhdGEg0JTQsNC90L3Ri9C1INC00LvRjyDQuNC90LjRgtCwINCx0YPRhNC10YDQsDpcbiAqINGB0L7QtNC10YDQttC40LzQvtC1INCx0YPRhNC10YDQsCDQuNC70Lgg0LXQs9C+INGA0LDQt9C80LXRgFxuICogQHBhcmFtIHs/QnVmZmVyQmluZE9wdGlvbnN9IG9wdGlvbnMg0J/QsNGA0LDQvNC10YLRgNGLINC/0LXRgNC10LTQsNGH0Lgg0LHRg9GE0LXRgNCwINCyINCy0LjQtNC10L7QutCw0YDRgtGDLFxuICog0LzQvtCz0YPRgiDQsdGL0YLRjCDQv9C10YDQtdC+0L/RgNC10LTQtdC70LXQvdGLINC40Lcge0BsaW5rIEJ1ZmZlckNoYW5uZWx9XG4gKi9cbmNsYXNzIEJ1ZmZlciB7XG4gICAgY29uc3RydWN0b3IoaW5pdERhdGEsIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5faW5pdERhdGEgPSBpbml0RGF0YTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KDQsNC30LzQtdGAINC00LDQvdC90YvRhSDQsiDQsdGD0YTQtdGA0LUg0LIg0LHQsNC50YLQsNGFXG4gICAgICAgICAqIEB0eXBlIHtOdW1iZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLmJ5dGVMZW5ndGggPSBpbml0RGF0YS5ieXRlTGVuZ3RoICE9PSB1bmRlZmluZWQgPyBpbml0RGF0YS5ieXRlTGVuZ3RoIDogaW5pdERhdGE7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LjQvyDQsdGD0YTQtdGA0LAuINCR0YPRhNC10YAg0LzQvtC20LXRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPINC00LvRjyDQv9C10YDQtdC00LDRh9C4INC80LDRgdGB0LjQstCwINC00LDQvdC90YvRhSxcbiAgICAgICAgICog0YLQsNC6INC4INC00LvRjyDQv9C10YDQtdC00LDRh9C4INC40L3QtNC10LrRgdC+0LIg0Y3Qu9C10LzQtdC90YLQvtCyINC40Lcg0LTQsNC90L3Ri9GFLlxuICAgICAgICAgKiBAdHlwZSB7QnVmZmVyLkFycmF5QnVmZmVyIHwgQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlcn1cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMudHlwZSA9IEJ1ZmZlci5BcnJheUJ1ZmZlcjtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0J/QsNGA0LDQvNC10YLRgNGLINC00LvRjyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDQsdGD0YTQtdGA0LBcbiAgICAgICAgICogQHR5cGUge0J1ZmZlckJpbmRPcHRpb25zfVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBCdWZmZXIuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQo9C60LDQt9GL0LLQsNC10YIsINC60LDQuiDRh9Cw0YHRgtC+INC00LDQvdC90YvQtSDQsdGD0YTQtdGA0LAg0LHRg9C00YPRgiDQuNC30LzQtdC90Y/RgtGM0YHRjy5cbiAgICAgICAgICogQHR5cGUge0J1ZmZlci5TdGF0aWNEcmF3IHwgQnVmZmVyLkR5bmFtaWNEcmF3fVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kcmF3VHlwZSA9IHRoaXMub3B0aW9ucy5pbnN0YW5jZURpdmlzb3IgPyBCdWZmZXIuZHluYW1pY0RyYXcgOiBCdWZmZXIuU3RhdGljRHJhdztcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JjRgdGF0L7QtNC90YvQuSBXZWJHTCDQsdGD0YTQtdGAXG4gICAgICAgICAqIEB0eXBlIHs/V2ViR0xCdWZmZXJ9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2dsQnVmZmVyID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JrQvtC90YLQtdC60YHRgiBXZWJHTCwg0LIg0LrQvtGC0L7RgNC+0Lwg0LHRi9C7INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDQvSDQsdGD0YTQtdGALlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0YLQvtC70YzQutC+INC00LvRjyDRg9C00LDQu9C10L3QuNGPINCx0YPRhNC10YDQsCwg0L/QvtC00YPQvNCw0YLRjCDRhdC+0YDQvtGI0L4sINC/0YDQtdC20LTQtSDRh9C10Lwg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC00LvRjyDRh9C10LPQvi3RgtC+INC10YnRkS5cbiAgICAgICAgICogQHR5cGUgez9XZWJHTFJlbmRlcmluZ0NvbnRleHR9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2dsQ29udGV4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQstGP0LfRi9Cy0LDQtdGCINC00LDQvdC90YvQtSDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHTC5cbiAgICAgKlxuICAgICAqINCSINGB0LvRg9GH0LDQtSBCdWZmZXIuQXJyYXlCdWZmZXIg0YHQstGP0LfRi9Cy0LDQtdGCINGBINCw0YLRgNC40LHRg9GC0LDQvNC4INGI0LXQudC00LXRgNCwLlxuICAgICAqINCQINCyINGB0LvRg9GH0LDQtSBCdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyINGB0LLRj9C30YvQstCw0LXRgiDQvNCw0YHRgdC40LIg0LjQvdC00LXQutGB0L7Qsi5cbiAgICAgKlxuICAgICAqINCV0YHQu9C4INC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQv9C10YDQstGL0Lkg0YDQsNC3LCDQtNC+0LHQsNCy0LvRj9C10YIg0LTQsNC90L3Ri9C1INCyINC60L7QvdGC0LXQutGB0YIgV2ViR0wuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0gez9OdW1iZXJ9IGxvY2F0aW9uINCf0L7Qu9C+0LbQtdC90LjQtSDQsNGC0YLRgNC40LHRg9GC0LAg0LTQu9GPINGB0LLRj9C30YvQstCw0L3QuNGPINC00LDQvdC90YvRhSDRgSDQv9C10YDQtdC80LXQvdC90YvQvNC4INCyINGI0LXQudC00LXRgNC1XG4gICAgICogQHBhcmFtIHs/QnVmZmVyQmluZE9wdGlvbnN9IG9wdGlvbnMg0J/QsNGA0LDQvNC10YLRgNGLINC/0LXRgNC10LTQsNCy0LDQtdC80YvQtSDQsiDRhNGD0L3QutGG0LjRjiB2ZXJ0ZXhBdHRyaWJQb2ludGVyLCDQtdGB0LvQuCDQuNGFINC90LXRgixcbiAgICAgKiDRgtC+INC40YHQv9C+0LvRjNC30YPRjtGC0YHRjyDQv9Cw0YDQsNC80LXRgtGA0Ysg0LrQvtC90LrRgNC10YLQvdC+0LPQviDQsdGD0YTQtdGA0LAuINCf0LDRgNCw0LzQtdGC0YDRiyDQtNC+0LvQttC90Ysg0LHRi9GC0Ywg0L/QtdGA0LXQtNCw0L3RiyDQstGB0LUuXG4gICAgICovXG4gICAgYmluZChnbCwgbG9jYXRpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9nbEJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09IEJ1ZmZlci5BcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5BUlJBWV9CVUZGRVIsIHRoaXMuX2dsQnVmZmVyKTtcblxuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwgdGhpcy5vcHRpb25zO1xuXG4gICAgICAgICAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGxvY2F0aW9uLCBvcHRpb25zLml0ZW1TaXplLCB0aGlzLl90b0dsUGFyYW0oZ2wsIG9wdGlvbnMuZGF0YVR5cGUpLFxuICAgICAgICAgICAgICAgIG9wdGlvbnMubm9ybWFsaXplZCwgb3B0aW9ucy5zdHJpZGUsIG9wdGlvbnMub2Zmc2V0KTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuaW5zdGFuY2VEaXZpc29yKSB7XG4gICAgICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliRGl2aXNvcihsb2NhdGlvbiwgb3B0aW9ucy5pbnN0YW5jZURpdmlzb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlcikge1xuICAgICAgICAgICAgZ2wuYmluZEJ1ZmZlcihnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUiwgdGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMLlxuICAgICAqL1xuICAgIHJlbW92ZSgpIHtcbiAgICAgICAgdGhpcy5fdW5wcmVwYXJlKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JfQsNC80LXQvdGP0LXRgiDRh9Cw0YHRgtGMINCx0YPRhNC10YDQsCDQvdC+0LLRi9C80Lgg0LTQsNC90L3Ri9C80Lgg0Lgg0L7RgtC/0YDQsNCy0LvRj9C10YIg0LjRhSDQsiDQstC40LTQtdC+0LrQsNGA0YLRg1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7TnVtYmVyfSBpbmRleCDQmNC90LTQtdC60YEsINGBINC60L7RgtC+0YDQvtCz0L4g0L3QsNGH0LDRgtGMINC30LDQvNC10L3Rg1xuICAgICAqIEBwYXJhbSB7VHlwZWRBcnJheX0gZGF0YSDQndC+0LLRi9C1INC00LDQvdC90YvQtVxuICAgICAqL1xuICAgIHN1YkRhdGEoZ2wsIGluZGV4LCBkYXRhKSB7XG4gICAgICAgIGdsLmJpbmRCdWZmZXIodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCB0aGlzLl9nbEJ1ZmZlcik7XG4gICAgICAgIGdsLmJ1ZmZlclN1YkRhdGEodGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLCBpbmRleCwgZGF0YSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JrQu9Cw0LTRkdGCINC00LDQvdC90YvQtSDQsiDQstC40LTQtdC+0LrQsNGA0YLRg1xuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBwcmVwYXJlKGdsKSB7XG4gICAgICAgIHRoaXMuX2dsQ29udGV4dCA9IGdsO1xuICAgICAgICB0aGlzLl9nbEJ1ZmZlciA9IGdsLmNyZWF0ZUJ1ZmZlcigpO1xuICAgICAgICBnbC5iaW5kQnVmZmVyKHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy50eXBlKSwgdGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICBnbC5idWZmZXJEYXRhKFxuICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLnR5cGUpLFxuICAgICAgICAgICAgdGhpcy5faW5pdERhdGEsXG4gICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZHJhd1R5cGUpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX2luaXREYXRhID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3VucHJlcGFyZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2dsQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9nbENvbnRleHQuZGVsZXRlQnVmZmVyKHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgICAgIHRoaXMuX2dsQnVmZmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2dsQ29udGV4dCA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0LXQvtCx0YDQsNC30L7QstGL0LLQsNC10YIg0L/QsNGA0LDQvNC10YLRgNGLINCx0YPRhNC10YDQsCDQsiDQv9Cw0YDQsNC80LXRgtGA0YsgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9IHBhcmFtXG4gICAgICogQGlnbm9yZVxuICAgICAqL1xuICAgIF90b0dsUGFyYW0oZ2wsIHBhcmFtKSB7XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5BUlJBWV9CVUZGRVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyKSB7IHJldHVybiBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5TdGF0aWNEcmF3KSB7IHJldHVybiBnbC5TVEFUSUNfRFJBVzsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5EeW5hbWljRHJhdykgeyByZXR1cm4gZ2wuRFlOQU1JQ19EUkFXOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkJ5dGUpIHsgcmV0dXJuIGdsLkJZVEU7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuU2hvcnQpIHsgcmV0dXJuIGdsLlNIT1JUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkludCkgeyByZXR1cm4gZ2wuSU5UOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkZsb2F0KSB7IHJldHVybiBnbC5GTE9BVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5VbnNpZ25lZEJ5dGUpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0JZVEU7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuVW5zaWduZWRTaG9ydCkgeyByZXR1cm4gZ2wuVU5TSUdORURfU0hPUlQ7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuVW5zaWduZWRJbnQpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0lOVDsgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG5cbkJ1ZmZlci5BcnJheUJ1ZmZlciA9IDE7XG5CdWZmZXIuRWxlbWVudEFycmF5QnVmZmVyID0gMjtcblxuQnVmZmVyLlN0YXRpY0RyYXcgPSAxMDtcbkJ1ZmZlci5EeW5hbWljRHJhdyA9IDExO1xuXG5CdWZmZXIuRmxvYXQgPSAyMDtcbkJ1ZmZlci5VbnNpZ25lZEJ5dGUgPSAyMTtcbkJ1ZmZlci5VbnNpZ25lZFNob3J0ID0gMjI7XG5CdWZmZXIuVW5zaWduZWRJbnQgPSAyMztcbkJ1ZmZlci5CeXRlID0gMjQ7XG5CdWZmZXIuU2hvcnQgPSAyNTtcbkJ1ZmZlci5JbnQgPSAyNjtcblxuQnVmZmVyLmRlZmF1bHRPcHRpb25zID0ge1xuICAgIGl0ZW1TaXplOiAzLFxuICAgIGRhdGFUeXBlOiBCdWZmZXIuRmxvYXQsXG4gICAgc3RyaWRlOiAwLFxuICAgIG9mZnNldDogMCxcbiAgICBub3JtYWxpemVkOiBmYWxzZSxcbiAgICBpbnN0YW5jZURpdmlzb3I6IDBcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEJ1ZmZlcjtcblxuLyoqXG4gKiDQn9Cw0YDQsNC80LXRgtGA0Ysg0L/QtdGA0LXQtNCw0LLQsNC10LzRi9C1INCyINGE0YPQvdC60YbQuNGOIHZlcnRleEF0dHJpYlBvaW50ZXIuXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gQnVmZmVyQmluZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBpdGVtU2l6ZSDQoNCw0LfQvNC10YDQvdC+0YHRgtGMINGN0LvQtdC80LXQvdGC0L7QsiDQsiDQsdGD0YTQtdGA0LVcbiAqIEBwcm9wZXJ0eSB7QnVmZmVyLkZsb2F0IHwgQnVmZmVyLlVuc2lnbmVkQnl0ZX0gZGF0YVR5cGUg0KLQuNC/INC00LDQvdC90YvRhSDQsiDQsdGD0YTQtdGA0LVcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gbm9ybWFsaXplZCDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0LTQu9GPINGG0LXQu9C+0YfQuNGB0LvQtdC90L3Ri9GFINGC0LjQv9C+0LIuINCV0YHQu9C4INCy0YvRgdGC0LDQstC70LXQvSDQsiB0cnVlLCDRgtC+XG4gKiDQt9C90LDRh9C10L3QuNGPINC40LzQtdGO0YnQuNC1INGC0LjQvyBCWVRFINC+0YIgLTEyOCDQtNC+IDEyOCDQsdGD0LTRg9GCINC/0LXRgNC10LLQtdC00LXQvdGLINC+0YIgLTEuMCDQtNC+IDEuMC5cbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBzdHJpZGVcbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBvZmZzZXRcbiAqL1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9CdWZmZXIuanMiXSwibmFtZXMiOlsiQnVmZmVyIiwiY29uc3RydWN0b3IiLCJpbml0RGF0YSIsIm9wdGlvbnMiLCJfaW5pdERhdGEiLCJieXRlTGVuZ3RoIiwidW5kZWZpbmVkIiwidHlwZSIsIkFycmF5QnVmZmVyIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdE9wdGlvbnMiLCJkcmF3VHlwZSIsImluc3RhbmNlRGl2aXNvciIsImR5bmFtaWNEcmF3IiwiU3RhdGljRHJhdyIsIl9nbEJ1ZmZlciIsIl9nbENvbnRleHQiLCJiaW5kIiwiZ2wiLCJsb2NhdGlvbiIsInByZXBhcmUiLCJiaW5kQnVmZmVyIiwiQVJSQVlfQlVGRkVSIiwidmVydGV4QXR0cmliUG9pbnRlciIsIml0ZW1TaXplIiwiX3RvR2xQYXJhbSIsImRhdGFUeXBlIiwibm9ybWFsaXplZCIsInN0cmlkZSIsIm9mZnNldCIsInZlcnRleEF0dHJpYkRpdmlzb3IiLCJFbGVtZW50QXJyYXlCdWZmZXIiLCJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsInJlbW92ZSIsIl91bnByZXBhcmUiLCJzdWJEYXRhIiwiaW5kZXgiLCJkYXRhIiwiYnVmZmVyU3ViRGF0YSIsImNyZWF0ZUJ1ZmZlciIsImJ1ZmZlckRhdGEiLCJkZWxldGVCdWZmZXIiLCJwYXJhbSIsIlNUQVRJQ19EUkFXIiwiRHluYW1pY0RyYXciLCJEWU5BTUlDX0RSQVciLCJCeXRlIiwiQllURSIsIlNob3J0IiwiU0hPUlQiLCJJbnQiLCJJTlQiLCJGbG9hdCIsIkZMT0FUIiwiVW5zaWduZWRCeXRlIiwiVU5TSUdORURfQllURSIsIlVuc2lnbmVkU2hvcnQiLCJVTlNJR05FRF9TSE9SVCIsIlVuc2lnbmVkSW50IiwiVU5TSUdORURfSU5UIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7QUFRQSxNQUFNQSxNQUFOLENBQWE7QUFDVEMsZ0JBQVlDLFFBQVosRUFBc0JDLE9BQXRCLEVBQStCO0FBQzNCLGFBQUtDLFNBQUwsR0FBaUJGLFFBQWpCOztBQUVBOzs7O0FBSUEsYUFBS0csVUFBTCxHQUFrQkgsU0FBU0csVUFBVCxLQUF3QkMsU0FBeEIsR0FBb0NKLFNBQVNHLFVBQTdDLEdBQTBESCxRQUE1RTs7QUFFQTs7Ozs7QUFLQSxhQUFLSyxJQUFMLEdBQVlQLE9BQU9RLFdBQW5COztBQUVBOzs7OztBQUtBLGFBQUtMLE9BQUwsR0FBZU0sT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JWLE9BQU9XLGNBQXpCLEVBQXlDUixPQUF6QyxDQUFmOztBQUVBOzs7O0FBSUEsYUFBS1MsUUFBTCxHQUFnQixLQUFLVCxPQUFMLENBQWFVLGVBQWIsR0FBK0JiLE9BQU9jLFdBQXRDLEdBQW9EZCxPQUFPZSxVQUEzRTs7QUFFQTs7Ozs7QUFLQSxhQUFLQyxTQUFMLEdBQWlCLElBQWpCOztBQUVBOzs7Ozs7QUFNQSxhQUFLQyxVQUFMLEdBQWtCLElBQWxCO0FBQ0g7O0FBRUQ7Ozs7Ozs7Ozs7Ozs7QUFhQUMsU0FBS0MsRUFBTCxFQUFTQyxRQUFULEVBQW1CakIsT0FBbkIsRUFBNEI7QUFDeEIsWUFBSSxDQUFDLEtBQUthLFNBQVYsRUFBcUI7QUFDakIsaUJBQUtLLE9BQUwsQ0FBYUYsRUFBYjtBQUNIOztBQUVELFlBQUksS0FBS1osSUFBTCxLQUFjUCxPQUFPUSxXQUF6QixFQUFzQztBQUNsQ1csZUFBR0csVUFBSCxDQUFjSCxHQUFHSSxZQUFqQixFQUErQixLQUFLUCxTQUFwQzs7QUFFQWIsc0JBQVVBLFdBQVcsS0FBS0EsT0FBMUI7O0FBRUFnQixlQUFHSyxtQkFBSCxDQUF1QkosUUFBdkIsRUFBaUNqQixRQUFRc0IsUUFBekMsRUFBbUQsS0FBS0MsVUFBTCxDQUFnQlAsRUFBaEIsRUFBb0JoQixRQUFRd0IsUUFBNUIsQ0FBbkQsRUFDSXhCLFFBQVF5QixVQURaLEVBQ3dCekIsUUFBUTBCLE1BRGhDLEVBQ3dDMUIsUUFBUTJCLE1BRGhEOztBQUdBLGdCQUFJM0IsUUFBUVUsZUFBWixFQUE2QjtBQUN6Qk0sbUJBQUdZLG1CQUFILENBQXVCWCxRQUF2QixFQUFpQ2pCLFFBQVFVLGVBQXpDO0FBQ0g7QUFDSixTQVhELE1BV08sSUFBSSxLQUFLTixJQUFMLEtBQWNQLE9BQU9nQyxrQkFBekIsRUFBNkM7QUFDaERiLGVBQUdHLFVBQUgsQ0FBY0gsR0FBR2Msb0JBQWpCLEVBQXVDLEtBQUtqQixTQUE1QztBQUNIOztBQUVELGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7QUFHQWtCLGFBQVM7QUFDTCxhQUFLQyxVQUFMOztBQUVBLGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7QUFNQUMsWUFBUWpCLEVBQVIsRUFBWWtCLEtBQVosRUFBbUJDLElBQW5CLEVBQXlCO0FBQ3JCbkIsV0FBR0csVUFBSCxDQUFjLEtBQUtJLFVBQUwsQ0FBZ0JQLEVBQWhCLEVBQW9CLEtBQUtaLElBQXpCLENBQWQsRUFBOEMsS0FBS1MsU0FBbkQ7QUFDQUcsV0FBR29CLGFBQUgsQ0FBaUIsS0FBS2IsVUFBTCxDQUFnQlAsRUFBaEIsRUFBb0IsS0FBS1osSUFBekIsQ0FBakIsRUFBaUQ4QixLQUFqRCxFQUF3REMsSUFBeEQ7O0FBRUEsZUFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7O0FBS0FqQixZQUFRRixFQUFSLEVBQVk7QUFDUixhQUFLRixVQUFMLEdBQWtCRSxFQUFsQjtBQUNBLGFBQUtILFNBQUwsR0FBaUJHLEdBQUdxQixZQUFILEVBQWpCO0FBQ0FyQixXQUFHRyxVQUFILENBQWMsS0FBS0ksVUFBTCxDQUFnQlAsRUFBaEIsRUFBb0IsS0FBS1osSUFBekIsQ0FBZCxFQUE4QyxLQUFLUyxTQUFuRDtBQUNBRyxXQUFHc0IsVUFBSCxDQUFjLEtBQUtmLFVBQUwsQ0FBZ0JQLEVBQWhCLEVBQW9CLEtBQUtaLElBQXpCLENBQWQsRUFBOEMsS0FBS0gsU0FBbkQsRUFBOEQsS0FBS3NCLFVBQUwsQ0FBZ0JQLEVBQWhCLEVBQW9CLEtBQUtQLFFBQXpCLENBQTlEO0FBQ0EsYUFBS1IsU0FBTCxHQUFpQixJQUFqQjtBQUNBLGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7O0FBSUErQixpQkFBYTtBQUNULFlBQUksS0FBS25CLFNBQVQsRUFBb0I7QUFDaEIsaUJBQUtDLFVBQUwsQ0FBZ0J5QixZQUFoQixDQUE2QixLQUFLMUIsU0FBbEM7QUFDQSxpQkFBS0EsU0FBTCxHQUFpQixJQUFqQjtBQUNBLGlCQUFLQyxVQUFMLEdBQWtCLElBQWxCO0FBQ0g7QUFDSjs7QUFFRDs7Ozs7O0FBTUFTLGVBQVdQLEVBQVgsRUFBZXdCLEtBQWYsRUFBc0I7QUFDbEIsWUFBSUEsVUFBVTNDLE9BQU9RLFdBQXJCLEVBQWtDO0FBQUUsbUJBQU9XLEdBQUdJLFlBQVY7QUFBeUI7QUFDN0QsWUFBSW9CLFVBQVUzQyxPQUFPZ0Msa0JBQXJCLEVBQXlDO0FBQUUsbUJBQU9iLEdBQUdjLG9CQUFWO0FBQWlDO0FBQzVFLFlBQUlVLFVBQVUzQyxPQUFPZSxVQUFyQixFQUFpQztBQUFFLG1CQUFPSSxHQUFHeUIsV0FBVjtBQUF3QjtBQUMzRCxZQUFJRCxVQUFVM0MsT0FBTzZDLFdBQXJCLEVBQWtDO0FBQUUsbUJBQU8xQixHQUFHMkIsWUFBVjtBQUF5QjtBQUM3RCxZQUFJSCxVQUFVM0MsT0FBTytDLElBQXJCLEVBQTJCO0FBQUUsbUJBQU81QixHQUFHNkIsSUFBVjtBQUFpQjtBQUM5QyxZQUFJTCxVQUFVM0MsT0FBT2lELEtBQXJCLEVBQTRCO0FBQUUsbUJBQU85QixHQUFHK0IsS0FBVjtBQUFrQjtBQUNoRCxZQUFJUCxVQUFVM0MsT0FBT21ELEdBQXJCLEVBQTBCO0FBQUUsbUJBQU9oQyxHQUFHaUMsR0FBVjtBQUFnQjtBQUM1QyxZQUFJVCxVQUFVM0MsT0FBT3FELEtBQXJCLEVBQTRCO0FBQUUsbUJBQU9sQyxHQUFHbUMsS0FBVjtBQUFrQjtBQUNoRCxZQUFJWCxVQUFVM0MsT0FBT3VELFlBQXJCLEVBQW1DO0FBQUUsbUJBQU9wQyxHQUFHcUMsYUFBVjtBQUEwQjtBQUMvRCxZQUFJYixVQUFVM0MsT0FBT3lELGFBQXJCLEVBQW9DO0FBQUUsbUJBQU90QyxHQUFHdUMsY0FBVjtBQUEyQjtBQUNqRSxZQUFJZixVQUFVM0MsT0FBTzJELFdBQXJCLEVBQWtDO0FBQUUsbUJBQU94QyxHQUFHeUMsWUFBVjtBQUF5QjtBQUM3RCxlQUFPLElBQVA7QUFDSDtBQXJKUTs7QUF3SmI1RCxPQUFPUSxXQUFQLEdBQXFCLENBQXJCO0FBQ0FSLE9BQU9nQyxrQkFBUCxHQUE0QixDQUE1Qjs7QUFFQWhDLE9BQU9lLFVBQVAsR0FBb0IsRUFBcEI7QUFDQWYsT0FBTzZDLFdBQVAsR0FBcUIsRUFBckI7O0FBRUE3QyxPQUFPcUQsS0FBUCxHQUFlLEVBQWY7QUFDQXJELE9BQU91RCxZQUFQLEdBQXNCLEVBQXRCO0FBQ0F2RCxPQUFPeUQsYUFBUCxHQUF1QixFQUF2QjtBQUNBekQsT0FBTzJELFdBQVAsR0FBcUIsRUFBckI7QUFDQTNELE9BQU8rQyxJQUFQLEdBQWMsRUFBZDtBQUNBL0MsT0FBT2lELEtBQVAsR0FBZSxFQUFmO0FBQ0FqRCxPQUFPbUQsR0FBUCxHQUFhLEVBQWI7O0FBRUFuRCxPQUFPVyxjQUFQLEdBQXdCO0FBQ3BCYyxjQUFVLENBRFU7QUFFcEJFLGNBQVUzQixPQUFPcUQsS0FGRztBQUdwQnhCLFlBQVEsQ0FIWTtBQUlwQkMsWUFBUSxDQUpZO0FBS3BCRixnQkFBWSxLQUxRO0FBTXBCZixxQkFBaUI7QUFORyxDQUF4Qjs7QUFTQSxlQUFlYixNQUFmOztBQUVBIiwiZmlsZSI6IkJ1ZmZlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINC00LvRjyDRhdGA0LDQvdC10L3QuNGPINC4INC/0L7QtNCz0L7RgtC+0LLQutC4INC00LDQvdC90YvRhSDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQsiDQsNGC0YDQuNCx0YPRgtGLINGI0LXQudC00LXRgNCwXG4gKlxuICogQHBhcmFtIHtUeXBlZEFycmF5IHwgQXJyYXlCdWZmZXIgfCBudW1iZXJ9IGluaXREYXRhINCU0LDQvdC90YvQtSDQtNC70Y8g0LjQvdC40YLQsCDQsdGD0YTQtdGA0LA6XG4gKiDRgdC+0LTQtdGA0LbQuNC80L7QtSDQsdGD0YTQtdGA0LAg0LjQu9C4INC10LPQviDRgNCw0LfQvNC10YBcbiAqIEBwYXJhbSB7P0J1ZmZlckJpbmRPcHRpb25zfSBvcHRpb25zINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C10YDQtdC00LDRh9C4INCx0YPRhNC10YDQsCDQsiDQstC40LTQtdC+0LrQsNGA0YLRgyxcbiAqINC80L7Qs9GD0YIg0LHRi9GC0Ywg0L/QtdGA0LXQvtC/0YDQtdC00LXQu9C10L3RiyDQuNC3IHtAbGluayBCdWZmZXJDaGFubmVsfVxuICovXG5jbGFzcyBCdWZmZXIge1xuICAgIGNvbnN0cnVjdG9yKGluaXREYXRhLCBvcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX2luaXREYXRhID0gaW5pdERhdGE7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCg0LDQt9C80LXRgCDQtNCw0L3QvdGL0YUg0LIg0LHRg9GE0LXRgNC1INCyINCx0LDQudGC0LDRhVxuICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5ieXRlTGVuZ3RoID0gaW5pdERhdGEuYnl0ZUxlbmd0aCAhPT0gdW5kZWZpbmVkID8gaW5pdERhdGEuYnl0ZUxlbmd0aCA6IGluaXREYXRhO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0LHRg9GE0LXRgNCwLiDQkdGD0YTQtdGAINC80L7QttC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRjyDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQvNCw0YHRgdC40LLQsCDQtNCw0L3QvdGL0YUsXG4gICAgICAgICAqINGC0LDQuiDQuCDQtNC70Y8g0L/QtdGA0LXQtNCw0YfQuCDQuNC90LTQtdC60YHQvtCyINGN0LvQtdC80LXQvdGC0L7QsiDQuNC3INC00LDQvdC90YvRhS5cbiAgICAgICAgICogQHR5cGUge0J1ZmZlci5BcnJheUJ1ZmZlciB8IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXJ9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSBCdWZmZXIuQXJyYXlCdWZmZXI7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YHQstGP0LfRi9Cy0LDQvdC40Y8g0LHRg9GE0LXRgNCwXG4gICAgICAgICAqIEB0eXBlIHtCdWZmZXJCaW5kT3B0aW9uc31cbiAgICAgICAgICogQGlnbm9yZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgQnVmZmVyLmRlZmF1bHRPcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0KPQutCw0LfRi9Cy0LDQtdGCLCDQutCw0Log0YfQsNGB0YLQviDQtNCw0L3QvdGL0LUg0LHRg9GE0LXRgNCwINCx0YPQtNGD0YIg0LjQt9C80LXQvdGP0YLRjNGB0Y8uXG4gICAgICAgICAqIEB0eXBlIHtCdWZmZXIuU3RhdGljRHJhdyB8IEJ1ZmZlci5EeW5hbWljRHJhd31cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuZHJhd1R5cGUgPSB0aGlzLm9wdGlvbnMuaW5zdGFuY2VEaXZpc29yID8gQnVmZmVyLmR5bmFtaWNEcmF3IDogQnVmZmVyLlN0YXRpY0RyYXc7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCY0YHRhdC+0LTQvdGL0LkgV2ViR0wg0LHRg9GE0LXRgFxuICAgICAgICAgKiBAdHlwZSB7P1dlYkdMQnVmZmVyfVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9nbEJ1ZmZlciA9IG51bGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCa0L7QvdGC0LXQutGB0YIgV2ViR0wsINCyINC60L7RgtC+0YDQvtC8INCx0YvQuyDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L0g0LHRg9GE0LXRgC5cbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjyDQsdGD0YTQtdGA0LAsINC/0L7QtNGD0LzQsNGC0Ywg0YXQvtGA0L7RiNC+LCDQv9GA0LXQttC00LUg0YfQtdC8INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0YfQtdCz0L4t0YLQviDQtdGJ0ZEuXG4gICAgICAgICAqIEB0eXBlIHs/V2ViR0xSZW5kZXJpbmdDb250ZXh0fVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiDQtNCw0L3QvdGL0LUg0YEg0LrQvtC90YLQtdC60YHRgtC+0LwgV2ViR0wuXG4gICAgICpcbiAgICAgKiDQkiDRgdC70YPRh9Cw0LUgQnVmZmVyLkFycmF5QnVmZmVyINGB0LLRj9C30YvQstCw0LXRgiDRgSDQsNGC0YDQuNCx0YPRgtCw0LzQuCDRiNC10LnQtNC10YDQsC5cbiAgICAgKiDQkCDQsiDRgdC70YPRh9Cw0LUgQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlciDRgdCy0Y/Qt9GL0LLQsNC10YIg0LzQsNGB0YHQuNCyINC40L3QtNC10LrRgdC+0LIuXG4gICAgICpcbiAgICAgKiDQldGB0LvQuCDQuNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0L/QtdGA0LLRi9C5INGA0LDQtywg0LTQvtCx0LDQstC70Y/QtdGCINC00LDQvdC90YvQtSDQsiDQutC+0L3RgtC10LrRgdGCIFdlYkdMLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQHBhcmFtIHs/TnVtYmVyfSBsb2NhdGlvbiDQn9C+0LvQvtC20LXQvdC40LUg0LDRgtGC0YDQuNCx0YPRgtCwINC00LvRjyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDQtNCw0L3QvdGL0YUg0YEg0L/QtdGA0LXQvNC10L3QvdGL0LzQuCDQsiDRiNC10LnQtNC10YDQtVxuICAgICAqIEBwYXJhbSB7P0J1ZmZlckJpbmRPcHRpb25zfSBvcHRpb25zINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C10YDQtdC00LDQstCw0LXQvNGL0LUg0LIg0YTRg9C90LrRhtC40Y4gdmVydGV4QXR0cmliUG9pbnRlciwg0LXRgdC70Lgg0LjRhSDQvdC10YIsXG4gICAgICog0YLQviDQuNGB0L/QvtC70YzQt9GD0Y7RgtGB0Y8g0L/QsNGA0LDQvNC10YLRgNGLINC60L7QvdC60YDQtdGC0L3QvtCz0L4g0LHRg9GE0LXRgNCwLiDQn9Cw0YDQsNC80LXRgtGA0Ysg0LTQvtC70LbQvdGLINCx0YvRgtGMINC/0LXRgNC10LTQsNC90Ysg0LLRgdC1LlxuICAgICAqL1xuICAgIGJpbmQoZ2wsIGxvY2F0aW9uLCBvcHRpb25zKSB7XG4gICAgICAgIGlmICghdGhpcy5fZ2xCdWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50eXBlID09PSBCdWZmZXIuQXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuQVJSQVlfQlVGRkVSLCB0aGlzLl9nbEJ1ZmZlcik7XG5cbiAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHRoaXMub3B0aW9ucztcblxuICAgICAgICAgICAgZ2wudmVydGV4QXR0cmliUG9pbnRlcihsb2NhdGlvbiwgb3B0aW9ucy5pdGVtU2l6ZSwgdGhpcy5fdG9HbFBhcmFtKGdsLCBvcHRpb25zLmRhdGFUeXBlKSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLm5vcm1hbGl6ZWQsIG9wdGlvbnMuc3RyaWRlLCBvcHRpb25zLm9mZnNldCk7XG5cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmluc3RhbmNlRGl2aXNvcikge1xuICAgICAgICAgICAgICAgIGdsLnZlcnRleEF0dHJpYkRpdmlzb3IobG9jYXRpb24sIG9wdGlvbnMuaW5zdGFuY2VEaXZpc29yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXIpIHtcbiAgICAgICAgICAgIGdsLmJpbmRCdWZmZXIoZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVIsIHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINC00LDQvdC90YvQtSDQuNC3INC60L7QvdGC0LXQutGB0YLQsCBXZWJHTC5cbiAgICAgKi9cbiAgICByZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuX3VucHJlcGFyZSgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQvNC10L3Rj9C10YIg0YfQsNGB0YLRjCDQsdGD0YTQtdGA0LAg0L3QvtCy0YvQvNC4INC00LDQvdC90YvQvNC4INC4INC+0YLQv9GA0LDQstC70Y/QtdGCINC40YUg0LIg0LLQuNC00LXQvtC60LDRgNGC0YNcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge051bWJlcn0gaW5kZXgg0JjQvdC00LXQutGBLCDRgSDQutC+0YLQvtGA0L7Qs9C+INC90LDRh9Cw0YLRjCDQt9Cw0LzQtdC90YNcbiAgICAgKiBAcGFyYW0ge1R5cGVkQXJyYXl9IGRhdGEg0J3QvtCy0YvQtSDQtNCw0L3QvdGL0LVcbiAgICAgKi9cbiAgICBzdWJEYXRhKGdsLCBpbmRleCwgZGF0YSkge1xuICAgICAgICBnbC5iaW5kQnVmZmVyKHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy50eXBlKSwgdGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICBnbC5idWZmZXJTdWJEYXRhKHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy50eXBlKSwgaW5kZXgsIGRhdGEpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCa0LvQsNC00ZHRgiDQtNCw0L3QvdGL0LUg0LIg0LLQuNC00LXQvtC60LDRgNGC0YNcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgcHJlcGFyZShnbCkge1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBnbDtcbiAgICAgICAgdGhpcy5fZ2xCdWZmZXIgPSBnbC5jcmVhdGVCdWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZEJ1ZmZlcih0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2dsQnVmZmVyKTtcbiAgICAgICAgZ2wuYnVmZmVyRGF0YSh0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMudHlwZSksIHRoaXMuX2luaXREYXRhLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMuZHJhd1R5cGUpKTtcbiAgICAgICAgdGhpcy5faW5pdERhdGEgPSBudWxsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiDQtNCw0L3QvdGL0LUg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBfdW5wcmVwYXJlKCkge1xuICAgICAgICBpZiAodGhpcy5fZ2xCdWZmZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2dsQ29udGV4dC5kZWxldGVCdWZmZXIodGhpcy5fZ2xCdWZmZXIpO1xuICAgICAgICAgICAgdGhpcy5fZ2xCdWZmZXIgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fZ2xDb250ZXh0ID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0YDQtdC+0LHRgNCw0LfQvtCy0YvQstCw0LXRgiDQv9Cw0YDQsNC80LXRgtGA0Ysg0LHRg9GE0LXRgNCwINCyINC/0LDRgNCw0LzQtdGC0YDRiyBXZWJHTFxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7QnVmZmVyLkFycmF5QnVmZmVyIHwgQnVmZmVyLkVsZW1lbnRBcnJheUJ1ZmZlcn0gcGFyYW1cbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3RvR2xQYXJhbShnbCwgcGFyYW0pIHtcbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuQXJyYXlCdWZmZXIpIHsgcmV0dXJuIGdsLkFSUkFZX0JVRkZFUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXIpIHsgcmV0dXJuIGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLlN0YXRpY0RyYXcpIHsgcmV0dXJuIGdsLlNUQVRJQ19EUkFXOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLkR5bmFtaWNEcmF3KSB7IHJldHVybiBnbC5EWU5BTUlDX0RSQVc7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuQnl0ZSkgeyByZXR1cm4gZ2wuQllURTsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5TaG9ydCkgeyByZXR1cm4gZ2wuU0hPUlQ7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuSW50KSB7IHJldHVybiBnbC5JTlQ7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBCdWZmZXIuRmxvYXQpIHsgcmV0dXJuIGdsLkZMT0FUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gQnVmZmVyLlVuc2lnbmVkQnl0ZSkgeyByZXR1cm4gZ2wuVU5TSUdORURfQllURTsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5VbnNpZ25lZFNob3J0KSB7IHJldHVybiBnbC5VTlNJR05FRF9TSE9SVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IEJ1ZmZlci5VbnNpZ25lZEludCkgeyByZXR1cm4gZ2wuVU5TSUdORURfSU5UOyB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuQnVmZmVyLkFycmF5QnVmZmVyID0gMTtcbkJ1ZmZlci5FbGVtZW50QXJyYXlCdWZmZXIgPSAyO1xuXG5CdWZmZXIuU3RhdGljRHJhdyA9IDEwO1xuQnVmZmVyLkR5bmFtaWNEcmF3ID0gMTE7XG5cbkJ1ZmZlci5GbG9hdCA9IDIwO1xuQnVmZmVyLlVuc2lnbmVkQnl0ZSA9IDIxO1xuQnVmZmVyLlVuc2lnbmVkU2hvcnQgPSAyMjtcbkJ1ZmZlci5VbnNpZ25lZEludCA9IDIzO1xuQnVmZmVyLkJ5dGUgPSAyNDtcbkJ1ZmZlci5TaG9ydCA9IDI1O1xuQnVmZmVyLkludCA9IDI2O1xuXG5CdWZmZXIuZGVmYXVsdE9wdGlvbnMgPSB7XG4gICAgaXRlbVNpemU6IDMsXG4gICAgZGF0YVR5cGU6IEJ1ZmZlci5GbG9hdCxcbiAgICBzdHJpZGU6IDAsXG4gICAgb2Zmc2V0OiAwLFxuICAgIG5vcm1hbGl6ZWQ6IGZhbHNlLFxuICAgIGluc3RhbmNlRGl2aXNvcjogMFxufTtcblxuZXhwb3J0IGRlZmF1bHQgQnVmZmVyO1xuXG4vKipcbiAqINCf0LDRgNCw0LzQtdGC0YDRiyDQv9C10YDQtdC00LDQstCw0LXQvNGL0LUg0LIg0YTRg9C90LrRhtC40Y4gdmVydGV4QXR0cmliUG9pbnRlci5cbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCdWZmZXJCaW5kT3B0aW9uc1xuICogQHByb3BlcnR5IHtOdW1iZXJ9IGl0ZW1TaXplINCg0LDQt9C80LXRgNC90L7RgdGC0Ywg0Y3Qu9C10LzQtdC90YLQvtCyINCyINCx0YPRhNC10YDQtVxuICogQHByb3BlcnR5IHtCdWZmZXIuRmxvYXQgfCBCdWZmZXIuVW5zaWduZWRCeXRlfSBkYXRhVHlwZSDQotC40L8g0LTQsNC90L3Ri9GFINCyINCx0YPRhNC10YDQtVxuICogQHByb3BlcnR5IHtCb29sZWFufSBub3JtYWxpemVkINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YbQtdC70L7Rh9C40YHQu9C10L3QvdGL0YUg0YLQuNC/0L7Qsi4g0JXRgdC70Lgg0LLRi9GB0YLQsNCy0LvQtdC9INCyIHRydWUsINGC0L5cbiAqINC30L3QsNGH0LXQvdC40Y8g0LjQvNC10Y7RidC40LUg0YLQuNC/IEJZVEUg0L7RgiAtMTI4INC00L4gMTI4INCx0YPQtNGD0YIg0L/QtdGA0LXQstC10LTQtdC90Ysg0L7RgiAtMS4wINC00L4gMS4wLlxuICogQHByb3BlcnR5IHtOdW1iZXJ9IHN0cmlkZVxuICogQHByb3BlcnR5IHtOdW1iZXJ9IG9mZnNldFxuICovXG4iXX0= |
@@ -143,2 +143,3 @@ /// <reference types="@2gis/gl-matrix" /> | ||
size: Vec2; | ||
depthTexture: boolean; | ||
} | ||
@@ -190,2 +191,3 @@ | ||
public getTexture(): Texture; | ||
public getDepthBuffer(): Texture | WebGLRenderbuffer | null; | ||
} | ||
@@ -192,0 +194,0 @@ |
{ | ||
"name": "2gl", | ||
"version": "0.11.2-instancing.0", | ||
"version": "0.11.3-depth-texture.0", | ||
"description": "WebGL library for 2GIS projects", | ||
@@ -56,7 +56,8 @@ "repository": { | ||
"lint": "eslint src test", | ||
"lint-fix": "eslint --fix src test", | ||
"doc": "./node_modules/.bin/jsdoc src -r -R README.md -t node_modules/minami -c jsdoc.json -d docs", | ||
"test": "npm run build:shaders && BABEL_ENV=cov nyc --reporter=lcov --reporter=text mocha --require=test/babelRegister.js test/*.spec.js test/**/*.spec.js", | ||
"test:dev": "npm run build:shaders && ./node_modules/.bin/_mocha --require=test/babelRegister.js -w test/*.spec.js test/**/*.spec.js", | ||
"pub": "npm run build && npm run build:es5 && npm publish --tag beta && git clean -d -f" | ||
"pub": "npm run build && npm run build:es5 && npm publish && git clean -d -f" | ||
} | ||
} |
@@ -25,2 +25,8 @@ import Texture from './Texture'; | ||
/** | ||
* @type {Texture | WebGLRenderbuffer | null} | ||
* @ignore | ||
*/ | ||
this._depthBuffer = null; | ||
/** | ||
* Контекст WebGL, в котором был инициализирован фреймбуфер. | ||
@@ -84,2 +90,10 @@ * Используется только для удаления, подумать хорошо, прежде чем использовать для чего-то ещё. | ||
/** | ||
* Возвращает текущие буфер или текстуру глубины фреймбуфера | ||
* @return {Texture | WebGLRenderbuffer | null} | ||
*/ | ||
getDepthBuffer() { | ||
return this._depthBuffer; | ||
} | ||
/** | ||
* Инициализирует фреймбуфер, текстуры и рендербуфер | ||
@@ -101,9 +115,23 @@ * @param {WebGLRenderingContext} gl | ||
this._renderBuffer = gl.createRenderbuffer(); | ||
gl.bindRenderbuffer(gl.RENDERBUFFER, this._renderBuffer); | ||
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.options.size[0], this.options.size[1]); | ||
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this._texture.getTexture(), 0); | ||
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._renderBuffer); | ||
if (this.options.depthTexture) { | ||
this._depthBuffer = new Texture(null, { | ||
magFilter: Texture.NearestFilter, | ||
minFilter: Texture.NearestFilter, | ||
format: Texture.DepthComponentFormat, | ||
size: this.options.size, | ||
premultiplyAlpha: false, | ||
generateMipmaps: false, | ||
type: Texture.UnsignedInt | ||
}); | ||
this._depthBuffer.prepare(gl); | ||
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.TEXTURE_2D, this._depthBuffer.getTexture(), 0); | ||
} else { | ||
this._depthBuffer = gl.createRenderbuffer(); | ||
gl.bindRenderbuffer(gl.RENDERBUFFER, this._depthBuffer); | ||
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.options.size[0], this.options.size[1]); | ||
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._depthBuffer); | ||
} | ||
this._checkComplete(gl); | ||
@@ -125,7 +153,10 @@ | ||
if (this._depthBuffer) { | ||
this._depthBuffer instanceof Texture ? this._depthBuffer.remove(this._glContext) : this._glContext.deleteRenderbuffer(this._depthBuffer); | ||
this._depthBuffer = null; | ||
} | ||
if (this._frameBuffer) { | ||
this._glContext.deleteFramebuffer(this._frameBuffer); | ||
this._glContext.deleteRenderbuffer(this._renderBuffer); | ||
this._frameBuffer = null; | ||
this._renderBuffer = null; | ||
} | ||
@@ -160,3 +191,4 @@ } | ||
size: [0, 0], | ||
generateMipmaps: false | ||
generateMipmaps: false, | ||
depthTexture: false | ||
}); | ||
@@ -171,3 +203,4 @@ | ||
* @property {Number[]} size | ||
* @property {Boolean} depthTexture | ||
*/ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJUYXJnZXQuanMiXSwibmFtZXMiOlsiVGV4dHVyZSIsIlJlbmRlclRhcmdldCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImRlZmF1bHRPcHRpb25zIiwiX3RleHR1cmUiLCJfZ2xDb250ZXh0IiwiYmluZCIsImdsIiwiX2ZyYW1lQnVmZmVyIiwiX3ByZXBhcmUiLCJiaW5kRnJhbWVidWZmZXIiLCJGUkFNRUJVRkZFUiIsInVuYmluZCIsInJlbW92ZSIsIl91bnByZXBhcmUiLCJzZXRTaXplIiwic2l6ZSIsImdldFRleHR1cmUiLCJwcmVwYXJlIiwiY3JlYXRlRnJhbWVidWZmZXIiLCJfcmVuZGVyQnVmZmVyIiwiY3JlYXRlUmVuZGVyYnVmZmVyIiwiYmluZFJlbmRlcmJ1ZmZlciIsIlJFTkRFUkJVRkZFUiIsInJlbmRlcmJ1ZmZlclN0b3JhZ2UiLCJERVBUSF9DT01QT05FTlQxNiIsImZyYW1lYnVmZmVyVGV4dHVyZTJEIiwiQ09MT1JfQVRUQUNITUVOVDAiLCJURVhUVVJFXzJEIiwiZnJhbWVidWZmZXJSZW5kZXJidWZmZXIiLCJERVBUSF9BVFRBQ0hNRU5UIiwiX2NoZWNrQ29tcGxldGUiLCJkZWxldGVGcmFtZWJ1ZmZlciIsImRlbGV0ZVJlbmRlcmJ1ZmZlciIsInN0YXR1cyIsImNoZWNrRnJhbWVidWZmZXJTdGF0dXMiLCJGUkFNRUJVRkZFUl9DT01QTEVURSIsIkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEIiwiY29uc29sZSIsImxvZyIsIkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCIsIkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyIsIkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIiwiZ2VuZXJhdGVNaXBtYXBzIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxPQUFQLE1BQW9CLFdBQXBCOztBQUVBOzs7OztBQUtBLE1BQU1DLFlBQU4sQ0FB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Y2VzQ29udGVudCI6WyJpbXBvcnQgVGV4dHVyZSBmcm9tICcuL1RleHR1cmUnO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDRhNGA0LXQudC80LHRg9GE0LXRgNCwLCDQutGD0LTQsCDQvNC+0LbQvdC+INC+0YLRgNC10L3QtNC10YDQuNGC0Ywg0LrQsNC00YAuXG4gKlxuICogQHBhcmFtIHtSZW5kZXJUYXJnZXRPcHRpb25zICYgVGV4dHVyZU9wdGlvbnN9IG9wdGlvbnNcbiAqL1xuY2xhc3MgUmVuZGVyVGFyZ2V0IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YHQstGP0LfRi9Cy0LDQvdC40Y8g0YTRgNC10LnQvNCx0YPRhNC10YDQsFxuICAgICAgICAgKiBAdHlwZSB7UmVuZGVyVGFyZ2V0T3B0aW9ucyAmIFRleHR1cmVPcHRpb25zfVxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIFJlbmRlclRhcmdldC5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LXQutGB0YLRg9GA0LAg0YHQvtC30LTQsNC10YLRgdGPINCyINC60L7QvdGB0YLRgNGD0LrRgtC+0YDQtSwg0YfRgtC+0LHRiyDQvNC+0LbQvdC+INCx0YvQu9C+INGB0YDQsNC30YMg0L/QvtC70YPRh9C40YLRjCDQvdCwINC90LXQtSDRgdGB0YvQu9C60YMuXG4gICAgICAgICAqIEB0eXBlIHs/VGV4dHVyZX1cbiAgICAgICAgICogQGlnbm9yZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IG5ldyBUZXh0dXJlKG51bGwsIHRoaXMub3B0aW9ucyk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCa0L7QvdGC0LXQutGB0YIgV2ViR0wsINCyINC60L7RgtC+0YDQvtC8INCx0YvQuyDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L0g0YTRgNC10LnQvNCx0YPRhNC10YAuXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4g0LTQu9GPINGD0LTQsNC70LXQvdC40Y8sINC/0L7QtNGD0LzQsNGC0Ywg0YXQvtGA0L7RiNC+LCDQv9GA0LXQttC00LUg0YfQtdC8INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0YfQtdCz0L4t0YLQviDQtdGJ0ZEuXG4gICAgICAgICAqIEB0eXBlIHs/V2ViR0xSZW5kZXJpbmdDb250ZXh0fVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiDQutC+0LzQv9C+0L3QtdC90YLRiyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHTFxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGJpbmQoZ2wpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mcmFtZUJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRoaXMuX2ZyYW1lQnVmZmVyKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDQv9GD0YHRgtC+0Lkg0YTRgNC10LnQvNCx0YPRhNC10YAg0YMg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgdW5iaW5kKGdsKSB7XG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINGE0YDQtdC50LzQsdGD0YTQtdGAINC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKi9cbiAgICByZW1vdmUoKSB7XG4gICAgICAgIHRoaXMuX3VucHJlcGFyZSgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgNCw0LfQvNC10YAg0YTRgNC10LnQvNCx0YPRhNC10YDRg1xuICAgICAqIEBwYXJhbSB7dmVjMn0gc2l6ZVxuICAgICAqL1xuICAgIHNldFNpemUoc2l6ZSkge1xuICAgICAgICB0aGlzLm9wdGlvbnMuc2l6ZSA9IHNpemU7XG4gICAgICAgIHRoaXMuX3VucHJlcGFyZSgpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiDRgtC10LrRg9GJ0YPRjiDRgtC10LrRgdGC0YPRgNGDINGE0YDQtdC50LzQsdGD0YTQtdGA0LBcbiAgICAgKiBAcmV0dXJuIHtUZXh0dXJlIHwgbnVsbH1cbiAgICAgKi9cbiAgICBnZXRUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dHVyZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGE0YDQtdC50LzQsdGD0YTQtdGALCDRgtC10LrRgdGC0YPRgNGLINC4INGA0LXQvdC00LXRgNCx0YPRhNC10YBcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fZ2xDb250ZXh0ID0gZ2w7XG4gICAgICAgIFxuICAgICAgICAvLyDQn9GA0L7QstC10YDRj9C10Lwg0L3QsNC70LjRh9C40LUg0YLQtdC60YHRgtGD0YDRiywg0YIu0LouINC+0L3QsCDQvNC+0LbQtdGCINCx0YvRgtGMINGD0LTQsNC70LXQvdCwINGH0LXRgNC10Lcg0LzQtdGC0L7QtCBfdW5wcmVwYXJlLlxuICAgICAgICBpZiAoIXRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUgPSBuZXcgVGV4dHVyZShudWxsLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RleHR1cmUucHJlcGFyZShnbCk7XG5cbiAgICAgICAgdGhpcy5fZnJhbWVCdWZmZXIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpO1xuICAgICAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRoaXMuX2ZyYW1lQnVmZmVyKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHRoaXMuX3JlbmRlckJ1ZmZlcik7XG4gICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01QT05FTlQxNiwgdGhpcy5vcHRpb25zLnNpemVbMF0sIHRoaXMub3B0aW9ucy5zaXplWzFdKTtcblxuICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRoaXMuX3RleHR1cmUuZ2V0VGV4dHVyZSgpLCAwKTtcbiAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGdsLlJFTkRFUkJVRkZFUiwgdGhpcy5fcmVuZGVyQnVmZmVyKTtcblxuICAgICAgICB0aGlzLl9jaGVja0NvbXBsZXRlKGdsKTtcblxuICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgbnVsbCk7XG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3VucHJlcGFyZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUucmVtb3ZlKHRoaXMuX2dsQ29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9mcmFtZUJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5fZ2xDb250ZXh0LmRlbGV0ZUZyYW1lYnVmZmVyKHRoaXMuX2ZyYW1lQnVmZmVyKTtcbiAgICAgICAgICAgIHRoaXMuX2dsQ29udGV4dC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fcmVuZGVyQnVmZmVyKTtcbiAgICAgICAgICAgIHRoaXMuX2ZyYW1lQnVmZmVyID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlckJ1ZmZlciA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQn9GA0L7QstC10YDRj9C10YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y4g0YTRgNC10LnQvNCx0YPRhNC10YDQsFxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBpZ25vcmVcbiAgICAgKi9cbiAgICBfY2hlY2tDb21wbGV0ZShnbCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTtcblxuICAgICAgICBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGcmFtZWJ1ZmZlciBpcyB1bnN1cHBvcnRlZCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBhdHRhY2htZW50Jyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIGRpbWVuc2lvbnMnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBtaXNzaW5nIGF0dGFjaG1lbnQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdVbmV4cGVjdGVkIGZyYW1lYnVmZmVyIHN0YXR1czogJyArIHN0YXR1cyk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cblJlbmRlclRhcmdldC5kZWZhdWx0T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIFRleHR1cmUuZGVmYXVsdE9wdGlvbnMsIHtcbiAgICBzaXplOiBbMCwgMF0sXG4gICAgZ2VuZXJhdGVNaXBtYXBzOiBmYWxzZSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBSZW5kZXJUYXJnZXQ7XG5cbi8qKlxuICog0J/QsNGA0LDQvNC10YLRgNGLINGB0LLRj9C30YvQstCw0L3QuNGPINGC0LXQutGB0YLRg9GA0YtcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSZW5kZXJUYXJnZXRPcHRpb25zXG4gKiBAcHJvcGVydHkge051bWJlcltdfSBzaXplXG4gKi9cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9SZW5kZXJUYXJnZXQuanMiXSwibmFtZXMiOlsiVGV4dHVyZSIsIlJlbmRlclRhcmdldCIsImNvbnN0cnVjdG9yIiwib3B0aW9ucyIsIk9iamVjdCIsImFzc2lnbiIsImRlZmF1bHRPcHRpb25zIiwiX3RleHR1cmUiLCJfZGVwdGhCdWZmZXIiLCJfZ2xDb250ZXh0IiwiYmluZCIsImdsIiwiX2ZyYW1lQnVmZmVyIiwiX3ByZXBhcmUiLCJiaW5kRnJhbWVidWZmZXIiLCJGUkFNRUJVRkZFUiIsInVuYmluZCIsInJlbW92ZSIsIl91bnByZXBhcmUiLCJzZXRTaXplIiwic2l6ZSIsImdldFRleHR1cmUiLCJnZXREZXB0aEJ1ZmZlciIsInByZXBhcmUiLCJjcmVhdGVGcmFtZWJ1ZmZlciIsImZyYW1lYnVmZmVyVGV4dHVyZTJEIiwiQ09MT1JfQVRUQUNITUVOVDAiLCJURVhUVVJFXzJEIiwiZGVwdGhUZXh0dXJlIiwibWFnRmlsdGVyIiwiTmVhcmVzdEZpbHRlciIsIm1pbkZpbHRlciIsImZvcm1hdCIsIkRlcHRoQ29tcG9uZW50Rm9ybWF0IiwicHJlbXVsdGlwbHlBbHBoYSIsImdlbmVyYXRlTWlwbWFwcyIsInR5cGUiLCJVbnNpZ25lZEludCIsIkRFUFRIX0FUVEFDSE1FTlQiLCJjcmVhdGVSZW5kZXJidWZmZXIiLCJiaW5kUmVuZGVyYnVmZmVyIiwiUkVOREVSQlVGRkVSIiwicmVuZGVyYnVmZmVyU3RvcmFnZSIsIkRFUFRIX0NPTVBPTkVOVDE2IiwiZnJhbWVidWZmZXJSZW5kZXJidWZmZXIiLCJfY2hlY2tDb21wbGV0ZSIsImRlbGV0ZVJlbmRlcmJ1ZmZlciIsImRlbGV0ZUZyYW1lYnVmZmVyIiwic3RhdHVzIiwiY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyIsIkZSQU1FQlVGRkVSX0NPTVBMRVRFIiwiRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQiLCJjb25zb2xlIiwibG9nIiwiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIiwiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIiwiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE9BQVAsTUFBb0IsV0FBcEI7O0FBRUE7Ozs7O0FBS0EsTUFBTUMsWUFBTixDQUFtQjtBQUNmQyxnQkFBWUMsVUFBVSxFQUF0QixFQUEwQjtBQUN0Qjs7Ozs7QUFLQSxhQUFLQSxPQUFMLEdBQWVDLE9BQU9DLE1BQVAsQ0FBYyxFQUFkLEVBQWtCSixhQUFhSyxjQUEvQixFQUErQ0gsT0FBL0MsQ0FBZjs7QUFFQTs7Ozs7QUFLQSxhQUFLSSxRQUFMLEdBQWdCLElBQUlQLE9BQUosQ0FBWSxJQUFaLEVBQWtCLEtBQUtHLE9BQXZCLENBQWhCOztBQUdBOzs7O0FBSUEsYUFBS0ssWUFBTCxHQUFvQixJQUFwQjs7QUFFQTs7Ozs7O0FBTUEsYUFBS0MsVUFBTCxHQUFrQixJQUFsQjtBQUNIOztBQUVEOzs7O0FBSUFDLFNBQUtDLEVBQUwsRUFBUztBQUNMLFlBQUksQ0FBQyxLQUFLQyxZQUFWLEVBQXdCO0FBQ3BCLGlCQUFLQyxRQUFMLENBQWNGLEVBQWQ7QUFDSDs7QUFFREEsV0FBR0csZUFBSCxDQUFtQkgsR0FBR0ksV0FBdEIsRUFBbUMsS0FBS0gsWUFBeEM7O0FBRUEsZUFBTyxJQUFQO0FBQ0g7O0FBRUQ7Ozs7QUFJQUksV0FBT0wsRUFBUCxFQUFXO0FBQ1BBLFdBQUdHLGVBQUgsQ0FBbUJILEdBQUdJLFdBQXRCLEVBQW1DLElBQW5DO0FBQ0EsZUFBTyxJQUFQO0FBQ0g7O0FBRUQ7OztBQUdBRSxhQUFTO0FBQ0wsYUFBS0MsVUFBTDtBQUNBLGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7O0FBSUFDLFlBQVFDLElBQVIsRUFBYztBQUNWLGFBQUtqQixPQUFMLENBQWFpQixJQUFiLEdBQW9CQSxJQUFwQjtBQUNBLGFBQUtGLFVBQUw7QUFDQSxlQUFPLElBQVA7QUFDSDs7QUFFRDs7OztBQUlBRyxpQkFBYTtBQUNULGVBQU8sS0FBS2QsUUFBWjtBQUNIOztBQUVEOzs7O0FBSUFlLHFCQUFpQjtBQUNiLGVBQU8sS0FBS2QsWUFBWjtBQUNIOztBQUVEOzs7OztBQUtBSyxhQUFTRixFQUFULEVBQWE7QUFDVCxhQUFLRixVQUFMLEdBQWtCRSxFQUFsQjs7QUFFQTtBQUNBLFlBQUksQ0FBQyxLQUFLSixRQUFWLEVBQW9CO0FBQ2hCLGlCQUFLQSxRQUFMLEdBQWdCLElBQUlQLE9BQUosQ0FBWSxJQUFaLEVBQWtCLEtBQUtHLE9BQXZCLENBQWhCO0FBQ0g7QUFDRCxhQUFLSSxRQUFMLENBQWNnQixPQUFkLENBQXNCWixFQUF0Qjs7QUFFQSxhQUFLQyxZQUFMLEdBQW9CRCxHQUFHYSxpQkFBSCxFQUFwQjtBQUNBYixXQUFHRyxlQUFILENBQW1CSCxHQUFHSSxXQUF0QixFQUFtQyxLQUFLSCxZQUF4Qzs7QUFFQUQsV0FBR2Msb0JBQUgsQ0FBd0JkLEdBQUdJLFdBQTNCLEVBQXdDSixHQUFHZSxpQkFBM0MsRUFBOERmLEdBQUdnQixVQUFqRSxFQUE2RSxLQUFLcEIsUUFBTCxDQUFjYyxVQUFkLEVBQTdFLEVBQXlHLENBQXpHOztBQUVBLFlBQUksS0FBS2xCLE9BQUwsQ0FBYXlCLFlBQWpCLEVBQStCO0FBQzNCLGlCQUFLcEIsWUFBTCxHQUFvQixJQUFJUixPQUFKLENBQVksSUFBWixFQUFrQjtBQUNsQzZCLDJCQUFXN0IsUUFBUThCLGFBRGU7QUFFbENDLDJCQUFXL0IsUUFBUThCLGFBRmU7QUFHbENFLHdCQUFRaEMsUUFBUWlDLG9CQUhrQjtBQUlsQ2Isc0JBQU0sS0FBS2pCLE9BQUwsQ0FBYWlCLElBSmU7QUFLbENjLGtDQUFrQixLQUxnQjtBQU1sQ0MsaUNBQWlCLEtBTmlCO0FBT2xDQyxzQkFBTXBDLFFBQVFxQztBQVBvQixhQUFsQixDQUFwQjtBQVNBLGlCQUFLN0IsWUFBTCxDQUFrQmUsT0FBbEIsQ0FBMEJaLEVBQTFCO0FBQ0FBLGVBQUdjLG9CQUFILENBQ0lkLEdBQUdJLFdBRFAsRUFFSUosR0FBRzJCLGdCQUZQLEVBR0kzQixHQUFHZ0IsVUFIUCxFQUlJLEtBQUtuQixZQUFMLENBQWtCYSxVQUFsQixFQUpKLEVBS0ksQ0FMSjtBQU9ILFNBbEJELE1Ba0JPO0FBQ0gsaUJBQUtiLFlBQUwsR0FBb0JHLEdBQUc0QixrQkFBSCxFQUFwQjtBQUNBNUIsZUFBRzZCLGdCQUFILENBQW9CN0IsR0FBRzhCLFlBQXZCLEVBQXFDLEtBQUtqQyxZQUExQztBQUNBRyxlQUFHK0IsbUJBQUgsQ0FBdUIvQixHQUFHOEIsWUFBMUIsRUFBd0M5QixHQUFHZ0MsaUJBQTNDLEVBQThELEtBQUt4QyxPQUFMLENBQWFpQixJQUFiLENBQWtCLENBQWxCLENBQTlELEVBQW9GLEtBQUtqQixPQUFMLENBQWFpQixJQUFiLENBQWtCLENBQWxCLENBQXBGO0FBQ0FULGVBQUdpQyx1QkFBSCxDQUEyQmpDLEdBQUdJLFdBQTlCLEVBQTJDSixHQUFHMkIsZ0JBQTlDLEVBQWdFM0IsR0FBRzhCLFlBQW5FLEVBQWlGLEtBQUtqQyxZQUF0RjtBQUNIOztBQUVELGFBQUtxQyxjQUFMLENBQW9CbEMsRUFBcEI7O0FBRUFBLFdBQUc2QixnQkFBSCxDQUFvQjdCLEdBQUc4QixZQUF2QixFQUFxQyxJQUFyQztBQUNBOUIsV0FBR0csZUFBSCxDQUFtQkgsR0FBR0ksV0FBdEIsRUFBbUMsSUFBbkM7QUFDSDs7QUFFRDs7OztBQUlBRyxpQkFBYTtBQUNULFlBQUksS0FBS1gsUUFBVCxFQUFtQjtBQUNmLGlCQUFLQSxRQUFMLENBQWNVLE1BQWQsQ0FBcUIsS0FBS1IsVUFBMUI7QUFDQSxpQkFBS0YsUUFBTCxHQUFnQixJQUFoQjtBQUNIOztBQUVELFlBQUksS0FBS0MsWUFBVCxFQUF1QjtBQUNuQixpQkFBS0EsWUFBTCxZQUE2QlIsT0FBN0IsR0FDSSxLQUFLUSxZQUFMLENBQWtCUyxNQUFsQixDQUF5QixLQUFLUixVQUE5QixDQURKLEdBQ2dELEtBQUtBLFVBQUwsQ0FBZ0JxQyxrQkFBaEIsQ0FBbUMsS0FBS3RDLFlBQXhDLENBRGhEO0FBRUEsaUJBQUtBLFlBQUwsR0FBb0IsSUFBcEI7QUFDSDs7QUFFRCxZQUFJLEtBQUtJLFlBQVQsRUFBdUI7QUFDbkIsaUJBQUtILFVBQUwsQ0FBZ0JzQyxpQkFBaEIsQ0FBa0MsS0FBS25DLFlBQXZDO0FBQ0EsaUJBQUtBLFlBQUwsR0FBb0IsSUFBcEI7QUFDSDtBQUNKOztBQUVEOzs7OztBQUtBaUMsbUJBQWVsQyxFQUFmLEVBQW1CO0FBQ2YsY0FBTXFDLFNBQVNyQyxHQUFHc0Msc0JBQUgsQ0FBMEJ0QyxHQUFHSSxXQUE3QixDQUFmOztBQUVBLFlBQUlpQyxXQUFXckMsR0FBR3VDLG9CQUFsQixFQUF3QztBQUNwQztBQUNILFNBRkQsTUFFTyxJQUFJRixXQUFXckMsR0FBR3dDLHVCQUFsQixFQUEyQztBQUM5Q0Msb0JBQVFDLEdBQVIsQ0FBWSw0QkFBWjtBQUNILFNBRk0sTUFFQSxJQUFJTCxXQUFXckMsR0FBRzJDLGlDQUFsQixFQUFxRDtBQUN4REYsb0JBQVFDLEdBQVIsQ0FBWSxtQ0FBWjtBQUNILFNBRk0sTUFFQSxJQUFJTCxXQUFXckMsR0FBRzRDLGlDQUFsQixFQUFxRDtBQUN4REgsb0JBQVFDLEdBQVIsQ0FBWSxtQ0FBWjtBQUNILFNBRk0sTUFFQSxJQUFJTCxXQUFXckMsR0FBRzZDLHlDQUFsQixFQUE2RDtBQUNoRUosb0JBQVFDLEdBQVIsQ0FBWSwyQ0FBWjtBQUNILFNBRk0sTUFFQTtBQUNIRCxvQkFBUUMsR0FBUixDQUFZLG9DQUFvQ0wsTUFBaEQ7QUFDSDtBQUNKO0FBdExjOztBQXlMbkIvQyxhQUFhSyxjQUFiLEdBQThCRixPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQkwsUUFBUU0sY0FBMUIsRUFBMEM7QUFDcEVjLFVBQU0sQ0FBQyxDQUFELEVBQUksQ0FBSixDQUQ4RDtBQUVwRWUscUJBQWlCLEtBRm1EO0FBR3BFUCxrQkFBYztBQUhzRCxDQUExQyxDQUE5Qjs7QUFNQSxlQUFlM0IsWUFBZjs7QUFFQSIsImZpbGUiOiJSZW5kZXJUYXJnZXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgVGV4dHVyZSBmcm9tICcuL1RleHR1cmUnO1xuXG4vKipcbiAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQtNC70Y8g0YHQvtC30LTQsNC90LjRjyDRhNGA0LXQudC80LHRg9GE0LXRgNCwLCDQutGD0LTQsCDQvNC+0LbQvdC+INC+0YLRgNC10L3QtNC10YDQuNGC0Ywg0LrQsNC00YAuXG4gKlxuICogQHBhcmFtIHtSZW5kZXJUYXJnZXRPcHRpb25zICYgVGV4dHVyZU9wdGlvbnN9IG9wdGlvbnNcbiAqL1xuY2xhc3MgUmVuZGVyVGFyZ2V0IHtcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zID0ge30pIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YHQstGP0LfRi9Cy0LDQvdC40Y8g0YTRgNC10LnQvNCx0YPRhNC10YDQsFxuICAgICAgICAgKiBAdHlwZSB7UmVuZGVyVGFyZ2V0T3B0aW9ucyAmIFRleHR1cmVPcHRpb25zfVxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIFJlbmRlclRhcmdldC5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCi0LXQutGB0YLRg9GA0LAg0YHQvtC30LTQsNC10YLRgdGPINCyINC60L7QvdGB0YLRgNGD0LrRgtC+0YDQtSwg0YfRgtC+0LHRiyDQvNC+0LbQvdC+INCx0YvQu9C+INGB0YDQsNC30YMg0L/QvtC70YPRh9C40YLRjCDQvdCwINC90LXQtSDRgdGB0YvQu9C60YMuXG4gICAgICAgICAqIEB0eXBlIHs/VGV4dHVyZX1cbiAgICAgICAgICogQGlnbm9yZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IG5ldyBUZXh0dXJlKG51bGwsIHRoaXMub3B0aW9ucyk7XG5cblxuICAgICAgICAvKipcbiAgICAgICAgICogQHR5cGUge1RleHR1cmUgfCBXZWJHTFJlbmRlcmJ1ZmZlciB8IG51bGx9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2RlcHRoQnVmZmVyID0gbnVsbDtcblxuICAgICAgICAvKipcbiAgICAgICAgICog0JrQvtC90YLQtdC60YHRgiBXZWJHTCwg0LIg0LrQvtGC0L7RgNC+0Lwg0LHRi9C7INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDQvSDRhNGA0LXQudC80LHRg9GE0LXRgC5cbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjywg0L/QvtC00YPQvNCw0YLRjCDRhdC+0YDQvtGI0L4sINC/0YDQtdC20LTQtSDRh9C10Lwg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC00LvRjyDRh9C10LPQvi3RgtC+INC10YnRkS5cbiAgICAgICAgICogQHR5cGUgez9XZWJHTFJlbmRlcmluZ0NvbnRleHR9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2dsQ29udGV4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQstGP0LfRi9Cy0LDQtdGCINC60L7QvNC/0L7QvdC10L3RgtGLINGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdMXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgYmluZChnbCkge1xuICAgICAgICBpZiAoIXRoaXMuX2ZyYW1lQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGhpcy5fZnJhbWVCdWZmZXIpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINC/0YPRgdGC0L7QuSDRhNGA0LXQudC80LHRg9GE0LXRgCDRgyDQutC+0L3RgtC10LrRgdGC0LAgV2ViR0xcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICB1bmJpbmQoZ2wpIHtcbiAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBudWxsKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YTRgNC10LnQvNCx0YPRhNC10YAg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqL1xuICAgIHJlbW92ZSgpIHtcbiAgICAgICAgdGhpcy5fdW5wcmVwYXJlKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0YHRgtCw0L3QsNCy0LvQuNCy0LDQtdGCINGA0LDQt9C80LXRgCDRhNGA0LXQudC80LHRg9GE0LXRgNGDXG4gICAgICogQHBhcmFtIHt2ZWMyfSBzaXplXG4gICAgICovXG4gICAgc2V0U2l6ZShzaXplKSB7XG4gICAgICAgIHRoaXMub3B0aW9ucy5zaXplID0gc2l6ZTtcbiAgICAgICAgdGhpcy5fdW5wcmVwYXJlKCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnRg9GOINGC0LXQutGB0YLRg9GA0YMg0YTRgNC10LnQvNCx0YPRhNC10YDQsFxuICAgICAqIEByZXR1cm4ge1RleHR1cmUgfCBudWxsfVxuICAgICAqL1xuICAgIGdldFRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0dXJlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCS0L7Qt9Cy0YDQsNGJ0LDQtdGCINGC0LXQutGD0YnQuNC1INCx0YPRhNC10YAg0LjQu9C4INGC0LXQutGB0YLRg9GA0YMg0LPQu9GD0LHQuNC90Ysg0YTRgNC10LnQvNCx0YPRhNC10YDQsFxuICAgICAqIEByZXR1cm4ge1RleHR1cmUgfCBXZWJHTFJlbmRlcmJ1ZmZlciB8IG51bGx9XG4gICAgICovXG4gICAgZ2V0RGVwdGhCdWZmZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kZXB0aEJ1ZmZlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGE0YDQtdC50LzQsdGD0YTQtdGALCDRgtC10LrRgdGC0YPRgNGLINC4INGA0LXQvdC00LXRgNCx0YPRhNC10YBcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3ByZXBhcmUoZ2wpIHtcbiAgICAgICAgdGhpcy5fZ2xDb250ZXh0ID0gZ2w7XG5cbiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0Y/QtdC8INC90LDQu9C40YfQuNC1INGC0LXQutGB0YLRg9GA0YssINGCLtC6LiDQvtC90LAg0LzQvtC20LXRgiDQsdGL0YLRjCDRg9C00LDQu9C10L3QsCDRh9C10YDQtdC3INC80LXRgtC+0LQgX3VucHJlcGFyZS5cbiAgICAgICAgaWYgKCF0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlID0gbmV3IFRleHR1cmUobnVsbCwgdGhpcy5vcHRpb25zKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90ZXh0dXJlLnByZXBhcmUoZ2wpO1xuXG4gICAgICAgIHRoaXMuX2ZyYW1lQnVmZmVyID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTtcbiAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0aGlzLl9mcmFtZUJ1ZmZlcik7XG5cbiAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlLmdldFRleHR1cmUoKSwgMCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5kZXB0aFRleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlcHRoQnVmZmVyID0gbmV3IFRleHR1cmUobnVsbCwge1xuICAgICAgICAgICAgICAgIG1hZ0ZpbHRlcjogVGV4dHVyZS5OZWFyZXN0RmlsdGVyLFxuICAgICAgICAgICAgICAgIG1pbkZpbHRlcjogVGV4dHVyZS5OZWFyZXN0RmlsdGVyLFxuICAgICAgICAgICAgICAgIGZvcm1hdDogVGV4dHVyZS5EZXB0aENvbXBvbmVudEZvcm1hdCxcbiAgICAgICAgICAgICAgICBzaXplOiB0aGlzLm9wdGlvbnMuc2l6ZSxcbiAgICAgICAgICAgICAgICBwcmVtdWx0aXBseUFscGhhOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZU1pcG1hcHM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHR5cGU6IFRleHR1cmUuVW5zaWduZWRJbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2RlcHRoQnVmZmVyLnByZXBhcmUoZ2wpO1xuICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoXG4gICAgICAgICAgICAgICAgZ2wuRlJBTUVCVUZGRVIsXG4gICAgICAgICAgICAgICAgZ2wuREVQVEhfQVRUQUNITUVOVCxcbiAgICAgICAgICAgICAgICBnbC5URVhUVVJFXzJELFxuICAgICAgICAgICAgICAgIHRoaXMuX2RlcHRoQnVmZmVyLmdldFRleHR1cmUoKSxcbiAgICAgICAgICAgICAgICAwXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTtcbiAgICAgICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCB0aGlzLl9kZXB0aEJ1ZmZlcik7XG4gICAgICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHRoaXMub3B0aW9ucy5zaXplWzBdLCB0aGlzLm9wdGlvbnMuc2l6ZVsxXSk7XG4gICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZ2wuUkVOREVSQlVGRkVSLCB0aGlzLl9kZXB0aEJ1ZmZlcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGVja0NvbXBsZXRlKGdsKTtcblxuICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgbnVsbCk7XG4gICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgbnVsbCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0LTQsNC90L3Ri9C1INC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX3VucHJlcGFyZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUucmVtb3ZlKHRoaXMuX2dsQ29udGV4dCk7XG4gICAgICAgICAgICB0aGlzLl90ZXh0dXJlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kZXB0aEJ1ZmZlcikge1xuICAgICAgICAgICAgdGhpcy5fZGVwdGhCdWZmZXIgaW5zdGFuY2VvZiBUZXh0dXJlID9cbiAgICAgICAgICAgICAgICB0aGlzLl9kZXB0aEJ1ZmZlci5yZW1vdmUodGhpcy5fZ2xDb250ZXh0KSA6IHRoaXMuX2dsQ29udGV4dC5kZWxldGVSZW5kZXJidWZmZXIodGhpcy5fZGVwdGhCdWZmZXIpO1xuICAgICAgICAgICAgdGhpcy5fZGVwdGhCdWZmZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2ZyYW1lQnVmZmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9nbENvbnRleHQuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5fZnJhbWVCdWZmZXIpO1xuICAgICAgICAgICAgdGhpcy5fZnJhbWVCdWZmZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J/RgNC+0LLQtdGA0Y/QtdGCINC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGOINGE0YDQtdC50LzQsdGD0YTQtdGA0LBcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX2NoZWNrQ29tcGxldGUoZ2wpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7XG5cbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaXMgdW5zdXBwb3J0ZWQnKTtcbiAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGluY29tcGxldGUgYXR0YWNobWVudCcpO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBkaW1lbnNpb25zJyk7XG4gICAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ0ZyYW1lYnVmZmVyIGluY29tcGxldGUgbWlzc2luZyBhdHRhY2htZW50Jyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZygnVW5leHBlY3RlZCBmcmFtZWJ1ZmZlciBzdGF0dXM6ICcgKyBzdGF0dXMpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5SZW5kZXJUYXJnZXQuZGVmYXVsdE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBUZXh0dXJlLmRlZmF1bHRPcHRpb25zLCB7XG4gICAgc2l6ZTogWzAsIDBdLFxuICAgIGdlbmVyYXRlTWlwbWFwczogZmFsc2UsXG4gICAgZGVwdGhUZXh0dXJlOiBmYWxzZSxcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBSZW5kZXJUYXJnZXQ7XG5cbi8qKlxuICog0J/QsNGA0LDQvNC10YLRgNGLINGB0LLRj9C30YvQstCw0L3QuNGPINGC0LXQutGB0YLRg9GA0YtcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBSZW5kZXJUYXJnZXRPcHRpb25zXG4gKiBAcHJvcGVydHkge051bWJlcltdfSBzaXplXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGRlcHRoVGV4dHVyZVxuICovXG4iXX0= |
@@ -28,3 +28,3 @@ /** | ||
let firstLine = true; | ||
for (let line of lines) { | ||
for (const line of lines) { | ||
// Если в шейдерах указана версия, то ее нужно обязательно | ||
@@ -107,2 +107,2 @@ // поместить первой строкой | ||
export default Shader; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXIuanMiXSwibmFtZXMiOlsiU2hhZGVyIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwiY29kZSIsImRlZmluaXRpb25zIiwiVmVydGV4IiwiRnJhZ21lbnQiLCJyZXN1bHQiLCJtYXAiLCJkZWYiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImxpbmVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlyc3RMaW5lIiwibGluZSIsImluZGV4T2YiLCJ1bnNoaWZ0IiwicHVzaCIsIl9jb2RlIiwiam9pbiIsImdldCIsImdsIiwiX3NoYWRlciIsIl9jb21waWxlIiwicmVtb3ZlIiwiZGVsZXRlU2hhZGVyIiwiZ2xUeXBlIiwiVkVSVEVYX1NIQURFUiIsIkZSQUdNRU5UX1NIQURFUiIsInNoYWRlciIsImNyZWF0ZVNoYWRlciIsImlzQ29udGV4dExvc3QiLCJFcnJvciIsInNoYWRlclNvdXJjZSIsImNvbXBpbGVTaGFkZXIiLCJnZXRTaGFkZXJQYXJhbWV0ZXIiLCJDT01QSUxFX1NUQVRVUyIsImluZm9Mb2ciLCJnZXRTaGFkZXJJbmZvTG9nIiwiY29kZUxpbmVzIiwic3BsaXQiLCJyZXBsYWNlIiwid2hvbGVNYXRjaCIsImNvbCIsInJvdyIsIm1lc3NhZ2UiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7QUFTQSxNQUFNQSxNQUFOLENBQWE7QUFDVEMsZ0JBQVlDLElBQVosRUFBa0JDLElBQWxCLEVBQXdCQyxjQUFjLEVBQXRDLEVBQTBDO0FBQ3RDOzs7O0FBSUEsYUFBS0YsSUFBTCxHQUFZQSxTQUFTLFFBQVQsR0FBb0JGLE9BQU9LLE1BQTNCLEdBQW9DTCxPQUFPTSxRQUF2RDs7QUFFQSxjQUFNQyxTQUNGSCxZQUNLSSxHQURMLENBQ1VDLEdBQUQsSUFBUztBQUNWLGdCQUFJQSxJQUFJQyxLQUFKLEtBQWNDLFNBQWxCLEVBQTZCO0FBQ3pCLHVCQUFPLGFBQWFGLElBQUlQLElBQWpCLEdBQXdCLEdBQXhCLEdBQThCTyxJQUFJQyxLQUF6QztBQUNILGFBRkQsTUFFTztBQUNILHVCQUFPLGFBQWFELElBQUlQLElBQXhCO0FBQ0g7QUFDSixTQVBMLENBREo7O0FBVUEsY0FBTVUsUUFBUUMsTUFBTUMsT0FBTixDQUFjWCxJQUFkLElBQXNCQSxJQUF0QixHQUE2QixDQUFDQSxRQUFRLEVBQVQsQ0FBM0M7QUFDQSxZQUFJWSxZQUFZLElBQWhCO0FBQ0EsYUFBSyxJQUFJQyxJQUFULElBQWlCSixLQUFqQixFQUF3QjtBQUNwQjtBQUNBO0FBQ0EsZ0JBQUlHLGFBQWFDLEtBQUtDLE9BQUwsQ0FBYSxVQUFiLE1BQTZCLENBQUMsQ0FBL0MsRUFBa0Q7QUFDOUNWLHVCQUFPVyxPQUFQLENBQWVGLElBQWY7QUFDSCxhQUZELE1BRU87QUFDSFQsdUJBQU9ZLElBQVAsQ0FBWUgsSUFBWjtBQUNIO0FBQ0RELHdCQUFZLEtBQVo7QUFDSDs7QUFFRDs7Ozs7QUFLQSxhQUFLSyxLQUFMLEdBQWFiLE9BQU9jLElBQVAsQ0FBWSxJQUFaLENBQWI7QUFDSDs7QUFFRDs7OztBQUlBQyxRQUFJQyxFQUFKLEVBQVE7QUFDSixZQUFJLENBQUMsS0FBS0MsT0FBVixFQUFtQjtBQUNmLGlCQUFLQyxRQUFMLENBQWNGLEVBQWQ7QUFDSDtBQUNELGVBQU8sS0FBS0MsT0FBWjtBQUNIOztBQUVEOzs7O0FBSUFFLFdBQU9ILEVBQVAsRUFBVztBQUNQLFlBQUksS0FBS0MsT0FBVCxFQUFrQjtBQUNkRCxlQUFHSSxZQUFILENBQWdCLEtBQUtILE9BQXJCO0FBQ0g7QUFDSjs7QUFFRDs7Ozs7QUFLQUMsYUFBU0YsRUFBVCxFQUFhO0FBQ1QsY0FBTUssU0FBUyxLQUFLMUIsSUFBTCxLQUFjRixPQUFPSyxNQUFyQixHQUE4QmtCLEdBQUdNLGFBQWpDLEdBQWlETixHQUFHTyxlQUFuRTtBQUNBLGNBQU1DLFNBQVUsS0FBS1AsT0FBTCxHQUFlRCxHQUFHUyxZQUFILENBQWdCSixNQUFoQixDQUEvQjs7QUFFQSxZQUFJLENBQUNHLE1BQUQsSUFBV1IsR0FBR1UsYUFBSCxFQUFmLEVBQW1DO0FBQy9CLGtCQUFNLElBQUlDLEtBQUosQ0FDRCxrREFBaUQsQ0FBQ0gsTUFBTyxzQkFBcUJSLEdBQUdVLGFBQUgsRUFBbUIsRUFEaEcsQ0FBTjtBQUdIOztBQUVEVixXQUFHWSxZQUFILENBQWdCSixNQUFoQixFQUF3QixLQUFLWCxLQUE3QjtBQUNBRyxXQUFHYSxhQUFILENBQWlCTCxNQUFqQjs7QUFFQSxZQUFJLENBQUNSLEdBQUdjLGtCQUFILENBQXNCTixNQUF0QixFQUE4QlIsR0FBR2UsY0FBakMsQ0FBTCxFQUF1RDtBQUNuRCxrQkFBTUMsVUFBVWhCLEdBQUdpQixnQkFBSCxDQUFvQlQsTUFBcEIsQ0FBaEI7QUFDQSxrQkFBTVUsWUFBWSxDQUFDLEtBQUtyQixLQUFMLElBQWMsRUFBZixFQUFtQnNCLEtBQW5CLENBQXlCLElBQXpCLENBQWxCO0FBQ0Esa0JBQU0sSUFBSVIsS0FBSixDQUFVSyxRQUFRSSxPQUFSLENBQWdCLGtDQUFoQjtBQUNaO0FBQ0E7QUFDQSxzQkFBVUMsVUFBVixFQUFzQkMsR0FBdEIsRUFBMkJDLEdBQTNCLEVBQWdDQyxPQUFoQyxFQUF5QztBQUNyQyxzQkFBTS9CLE9BQU95QixVQUFVTyxPQUFPRixHQUFQLElBQWMsQ0FBeEIsQ0FBYjtBQUNBLG9CQUFJOUIsSUFBSixFQUFVO0FBQ04sMkJBQVEsU0FBUTZCLEdBQUksSUFBR0MsR0FBSSxLQUFJQyxPQUFRLHVCQUFzQi9CLElBQUssTUFBbEU7QUFDSCxpQkFGRCxNQUVPO0FBQ0gsMkJBQU80QixVQUFQO0FBQ0g7QUFDSixhQVZXLENBQVYsQ0FBTjtBQVdIO0FBQ0o7QUE3RlE7O0FBZ0diNUMsT0FBT0ssTUFBUCxHQUFnQixDQUFoQjtBQUNBTCxPQUFPTSxRQUFQLEdBQWtCLENBQWxCOztBQUVBLGVBQWVOLE1BQWYiLCJmaWxlIjoiU2hhZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQqNC10LnQtNC10YAg0LrQvtC80L/QuNC70LjRgNGD0LXRgiDQutC+0LQg0Lgg0YXRgNCw0L3QuNGCINC10LPQviDQsiDQstC40LTQtdC+0LrQsNGA0YLQtS5cbiAqINCe0LTQuNC9INGI0LXQudC00LXRgCDQvNC+0LbQtdGCINCx0YvRgtGMINC40YHQv9C+0LvRjNC30L7QstCw0L0g0LTQu9GPINC90LXRgdC60L7Qu9GM0LrQuNGFINC/0YDQvtCz0YDQsNC80LwuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGUg0KLQuNC/INGI0LXQudC00LXRgNCwOiDQuNC70LggdmVydGV4LCDQuNC70LggZnJhZ21lbnRcbiAqIEBwYXJhbSB7U3RyaW5nIHwgU3RyaW5nW119IGNvZGUg0JrQvtC0INGI0LXQudC00LXRgNCwINC90LDQv9C40YHQsNC90L3Ri9C5INC90LAg0Y/Qt9GL0LrQtSBHTFNMLlxuICog0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINC90LXRgdC60L7Qu9GM0LrQviDRgdGC0YDQvtC6INCyINCy0LjQtNC1INC80LDRgdGB0LjQstCwLCDRgtC+0LPQtNCwINC/0LXRgNC10LQg0LrQvtC80L/QuNC70Y/RhtC40LXQuSDRgdGC0YDQvtC60Lgg0YHQu9C+0LbQsNGC0YHRjy5cbiAqIEBwYXJhbSB7T2JqZWN0W119IFtkZWZpbml0aW9ucz1bXV1cbiAqL1xuY2xhc3MgU2hhZGVyIHtcbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBjb2RlLCBkZWZpbml0aW9ucyA9IFtdKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0YjQtdC50LTQtdGA0LBcbiAgICAgICAgICogQHR5cGUge1NoYWRlci5WZXJ0ZXggfCBTaGFkZXIuRnJhZ21lbnR9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlID09PSAndmVydGV4JyA/IFNoYWRlci5WZXJ0ZXggOiBTaGFkZXIuRnJhZ21lbnQ7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gXG4gICAgICAgICAgICBkZWZpbml0aW9uc1xuICAgICAgICAgICAgICAgIC5tYXAoKGRlZikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGVmLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnI2RlZmluZSAnICsgZGVmLnR5cGUgKyAnICcgKyBkZWYudmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyNkZWZpbmUgJyArIGRlZi50eXBlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbGluZXMgPSBBcnJheS5pc0FycmF5KGNvZGUpID8gY29kZSA6IFtjb2RlIHx8ICcnXTtcbiAgICAgICAgbGV0IGZpcnN0TGluZSA9IHRydWU7XG4gICAgICAgIGZvciAobGV0IGxpbmUgb2YgbGluZXMpIHtcbiAgICAgICAgICAgIC8vINCV0YHQu9C4INCyINGI0LXQudC00LXRgNCw0YUg0YPQutCw0LfQsNC90LAg0LLQtdGA0YHQuNGPLCDRgtC+INC10LUg0L3Rg9C20L3QviDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+XG4gICAgICAgICAgICAvLyDQv9C+0LzQtdGB0YLQuNGC0Ywg0L/QtdGA0LLQvtC5INGB0YLRgNC+0LrQvtC5XG4gICAgICAgICAgICBpZiAoZmlyc3RMaW5lICYmIGxpbmUuaW5kZXhPZignI3ZlcnNpb24nKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICByZXN1bHQudW5zaGlmdChsaW5lKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnB1c2gobGluZSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpcnN0TGluZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCa0L7QtCDRiNC10LnQtNC10YDQsFxuICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9jb2RlID0gcmVzdWx0LmpvaW4oJ1xcbicpXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIgd2ViZ2wg0YjQtdC50LTQtdGAINC00LvRjyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDRgSDQv9GA0L7Qs9GA0LDQvNC80L7QuS5cbiAgICAgKiDQldGB0LvQuCDRiNC10LnQtNC10YAg0LjRgdC/0L7Qu9GM0LfRg9GO0LXRgtGB0Y8g0L/QtdGA0LLRi9C5INGA0LDQtywg0YLQviDQutC+0LzQv9C40LvQuNGA0YPQtdGCINC10LPQvi5cbiAgICAgKi9cbiAgICBnZXQoZ2wpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zaGFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBpbGUoZ2wpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zaGFkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YjQtdC50LTQtdGAINC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAcGFyYW0gIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsINCa0L7QvdGC0LXQutGB0YIgV2ViR2xcbiAgICAgKi9cbiAgICByZW1vdmUoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NoYWRlcikge1xuICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKHRoaXMuX3NoYWRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C40LvQuNGA0YPQtdGCINC00LDQvdC90YvQuSDRiNC10LnQtNC10YBcbiAgICAgKiBAcGFyYW0gIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsINCa0L7QvdGC0LXQutGB0YIgV2ViR0xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX2NvbXBpbGUoZ2wpIHtcbiAgICAgICAgY29uc3QgZ2xUeXBlID0gdGhpcy50eXBlID09PSBTaGFkZXIuVmVydGV4ID8gZ2wuVkVSVEVYX1NIQURFUiA6IGdsLkZSQUdNRU5UX1NIQURFUjtcbiAgICAgICAgY29uc3Qgc2hhZGVyID0gKHRoaXMuX3NoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbFR5cGUpKTtcblxuICAgICAgICBpZiAoIXNoYWRlciB8fCBnbC5pc0NvbnRleHRMb3N0KCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgWzJnbF0gRmFpbGVkIHRvIGNyZWF0ZSBzaGFkZXIuIFNoYWRlciBpcyBudWxsOiAkeyFzaGFkZXJ9LiBDb250ZXh0IGlzIGxvc3Q6ICR7Z2wuaXNDb250ZXh0TG9zdCgpfWAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wuc2hhZGVyU291cmNlKHNoYWRlciwgdGhpcy5fY29kZSk7XG4gICAgICAgIGdsLmNvbXBpbGVTaGFkZXIoc2hhZGVyKTsgICAgXG5cbiAgICAgICAgaWYgKCFnbC5nZXRTaGFkZXJQYXJhbWV0ZXIoc2hhZGVyLCBnbC5DT01QSUxFX1NUQVRVUykpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZm9Mb2cgPSBnbC5nZXRTaGFkZXJJbmZvTG9nKHNoYWRlcik7XG4gICAgICAgICAgICBjb25zdCBjb2RlTGluZXMgPSAodGhpcy5fY29kZSB8fCAnJykuc3BsaXQoJ1xcbicpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGluZm9Mb2cucmVwbGFjZSgvXkVSUk9SOlxccyooXFxkKyk6KFxcZCspOlxccyooLio/KVxcbi8sIFxuICAgICAgICAgICAgICAgIC8vIEl0J3MgdXNlZnVsIHRvIGluamVjdCBlcnJvbmVvdXMgbGluZSBvZiBjb2RlXG4gICAgICAgICAgICAgICAgLy8gaW4gdGhlIGVycm9yIG1lc3NhZ2UgdG8gY29uY2lzZSB3aGF0IGhhcHBlbmVkXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gKHdob2xlTWF0Y2gsIGNvbCwgcm93LCBtZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxpbmUgPSBjb2RlTGluZXNbTnVtYmVyKHJvdykgLSAxXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpbmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgRVJST1IgJHtjb2x9OiR7cm93fTogJHttZXNzYWdlfVxcbkVycm9uZW91cyBsaW5lOiA8PCR7bGluZX0+PlxcbmA7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd2hvbGVNYXRjaDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuU2hhZGVyLlZlcnRleCA9IDE7XG5TaGFkZXIuRnJhZ21lbnQgPSAyO1xuXG5leHBvcnQgZGVmYXVsdCBTaGFkZXI7XG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXIuanMiXSwibmFtZXMiOlsiU2hhZGVyIiwiY29uc3RydWN0b3IiLCJ0eXBlIiwiY29kZSIsImRlZmluaXRpb25zIiwiVmVydGV4IiwiRnJhZ21lbnQiLCJyZXN1bHQiLCJtYXAiLCJkZWYiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsImxpbmVzIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlyc3RMaW5lIiwibGluZSIsImluZGV4T2YiLCJ1bnNoaWZ0IiwicHVzaCIsIl9jb2RlIiwiam9pbiIsImdldCIsImdsIiwiX3NoYWRlciIsIl9jb21waWxlIiwicmVtb3ZlIiwiZGVsZXRlU2hhZGVyIiwiZ2xUeXBlIiwiVkVSVEVYX1NIQURFUiIsIkZSQUdNRU5UX1NIQURFUiIsInNoYWRlciIsImNyZWF0ZVNoYWRlciIsImlzQ29udGV4dExvc3QiLCJFcnJvciIsInNoYWRlclNvdXJjZSIsImNvbXBpbGVTaGFkZXIiLCJnZXRTaGFkZXJQYXJhbWV0ZXIiLCJDT01QSUxFX1NUQVRVUyIsImluZm9Mb2ciLCJnZXRTaGFkZXJJbmZvTG9nIiwiY29kZUxpbmVzIiwic3BsaXQiLCJyZXBsYWNlIiwid2hvbGVNYXRjaCIsImNvbCIsInJvdyIsIm1lc3NhZ2UiLCJOdW1iZXIiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7QUFTQSxNQUFNQSxNQUFOLENBQWE7QUFDVEMsZ0JBQVlDLElBQVosRUFBa0JDLElBQWxCLEVBQXdCQyxjQUFjLEVBQXRDLEVBQTBDO0FBQ3RDOzs7O0FBSUEsYUFBS0YsSUFBTCxHQUFZQSxTQUFTLFFBQVQsR0FBb0JGLE9BQU9LLE1BQTNCLEdBQW9DTCxPQUFPTSxRQUF2RDs7QUFFQSxjQUFNQyxTQUNGSCxZQUNLSSxHQURMLENBQ1VDLEdBQUQsSUFBUztBQUNWLGdCQUFJQSxJQUFJQyxLQUFKLEtBQWNDLFNBQWxCLEVBQTZCO0FBQ3pCLHVCQUFPLGFBQWFGLElBQUlQLElBQWpCLEdBQXdCLEdBQXhCLEdBQThCTyxJQUFJQyxLQUF6QztBQUNILGFBRkQsTUFFTztBQUNILHVCQUFPLGFBQWFELElBQUlQLElBQXhCO0FBQ0g7QUFDSixTQVBMLENBREo7O0FBVUEsY0FBTVUsUUFBUUMsTUFBTUMsT0FBTixDQUFjWCxJQUFkLElBQXNCQSxJQUF0QixHQUE2QixDQUFDQSxRQUFRLEVBQVQsQ0FBM0M7QUFDQSxZQUFJWSxZQUFZLElBQWhCO0FBQ0EsYUFBSyxNQUFNQyxJQUFYLElBQW1CSixLQUFuQixFQUEwQjtBQUN0QjtBQUNBO0FBQ0EsZ0JBQUlHLGFBQWFDLEtBQUtDLE9BQUwsQ0FBYSxVQUFiLE1BQTZCLENBQUMsQ0FBL0MsRUFBa0Q7QUFDOUNWLHVCQUFPVyxPQUFQLENBQWVGLElBQWY7QUFDSCxhQUZELE1BRU87QUFDSFQsdUJBQU9ZLElBQVAsQ0FBWUgsSUFBWjtBQUNIO0FBQ0RELHdCQUFZLEtBQVo7QUFDSDs7QUFFRDs7Ozs7QUFLQSxhQUFLSyxLQUFMLEdBQWFiLE9BQU9jLElBQVAsQ0FBWSxJQUFaLENBQWI7QUFDSDs7QUFFRDs7OztBQUlBQyxRQUFJQyxFQUFKLEVBQVE7QUFDSixZQUFJLENBQUMsS0FBS0MsT0FBVixFQUFtQjtBQUNmLGlCQUFLQyxRQUFMLENBQWNGLEVBQWQ7QUFDSDtBQUNELGVBQU8sS0FBS0MsT0FBWjtBQUNIOztBQUVEOzs7O0FBSUFFLFdBQU9ILEVBQVAsRUFBVztBQUNQLFlBQUksS0FBS0MsT0FBVCxFQUFrQjtBQUNkRCxlQUFHSSxZQUFILENBQWdCLEtBQUtILE9BQXJCO0FBQ0g7QUFDSjs7QUFFRDs7Ozs7QUFLQUMsYUFBU0YsRUFBVCxFQUFhO0FBQ1QsY0FBTUssU0FBUyxLQUFLMUIsSUFBTCxLQUFjRixPQUFPSyxNQUFyQixHQUE4QmtCLEdBQUdNLGFBQWpDLEdBQWlETixHQUFHTyxlQUFuRTtBQUNBLGNBQU1DLFNBQVUsS0FBS1AsT0FBTCxHQUFlRCxHQUFHUyxZQUFILENBQWdCSixNQUFoQixDQUEvQjs7QUFFQSxZQUFJLENBQUNHLE1BQUQsSUFBV1IsR0FBR1UsYUFBSCxFQUFmLEVBQW1DO0FBQy9CLGtCQUFNLElBQUlDLEtBQUosQ0FDRCxrREFBaUQsQ0FBQ0gsTUFBTyxzQkFBcUJSLEdBQUdVLGFBQUgsRUFBbUIsRUFEaEcsQ0FBTjtBQUdIOztBQUVEVixXQUFHWSxZQUFILENBQWdCSixNQUFoQixFQUF3QixLQUFLWCxLQUE3QjtBQUNBRyxXQUFHYSxhQUFILENBQWlCTCxNQUFqQjs7QUFFQSxZQUFJLENBQUNSLEdBQUdjLGtCQUFILENBQXNCTixNQUF0QixFQUE4QlIsR0FBR2UsY0FBakMsQ0FBTCxFQUF1RDtBQUNuRCxrQkFBTUMsVUFBVWhCLEdBQUdpQixnQkFBSCxDQUFvQlQsTUFBcEIsQ0FBaEI7QUFDQSxrQkFBTVUsWUFBWSxDQUFDLEtBQUtyQixLQUFMLElBQWMsRUFBZixFQUFtQnNCLEtBQW5CLENBQXlCLElBQXpCLENBQWxCO0FBQ0Esa0JBQU0sSUFBSVIsS0FBSixDQUFVSyxRQUFRSSxPQUFSLENBQWdCLGtDQUFoQjtBQUNaO0FBQ0E7QUFDQSxzQkFBU0MsVUFBVCxFQUFxQkMsR0FBckIsRUFBMEJDLEdBQTFCLEVBQStCQyxPQUEvQixFQUF3QztBQUNwQyxzQkFBTS9CLE9BQU95QixVQUFVTyxPQUFPRixHQUFQLElBQWMsQ0FBeEIsQ0FBYjtBQUNBLG9CQUFJOUIsSUFBSixFQUFVO0FBQ04sMkJBQVEsU0FBUTZCLEdBQUksSUFBR0MsR0FBSSxLQUFJQyxPQUFRLHVCQUFzQi9CLElBQUssTUFBbEU7QUFDSCxpQkFGRCxNQUVPO0FBQ0gsMkJBQU80QixVQUFQO0FBQ0g7QUFDSixhQVZXLENBQVYsQ0FBTjtBQVdIO0FBQ0o7QUE3RlE7O0FBZ0diNUMsT0FBT0ssTUFBUCxHQUFnQixDQUFoQjtBQUNBTCxPQUFPTSxRQUFQLEdBQWtCLENBQWxCOztBQUVBLGVBQWVOLE1BQWYiLCJmaWxlIjoiU2hhZGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiDQqNC10LnQtNC10YAg0LrQvtC80L/QuNC70LjRgNGD0LXRgiDQutC+0LQg0Lgg0YXRgNCw0L3QuNGCINC10LPQviDQsiDQstC40LTQtdC+0LrQsNGA0YLQtS5cbiAqINCe0LTQuNC9INGI0LXQudC00LXRgCDQvNC+0LbQtdGCINCx0YvRgtGMINC40YHQv9C+0LvRjNC30L7QstCw0L0g0LTQu9GPINC90LXRgdC60L7Qu9GM0LrQuNGFINC/0YDQvtCz0YDQsNC80LwuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHR5cGUg0KLQuNC/INGI0LXQudC00LXRgNCwOiDQuNC70LggdmVydGV4LCDQuNC70LggZnJhZ21lbnRcbiAqIEBwYXJhbSB7U3RyaW5nIHwgU3RyaW5nW119IGNvZGUg0JrQvtC0INGI0LXQudC00LXRgNCwINC90LDQv9C40YHQsNC90L3Ri9C5INC90LAg0Y/Qt9GL0LrQtSBHTFNMLlxuICog0JzQvtC20L3QviDQv9C10YDQtdC00LDRgtGMINC90LXRgdC60L7Qu9GM0LrQviDRgdGC0YDQvtC6INCyINCy0LjQtNC1INC80LDRgdGB0LjQstCwLCDRgtC+0LPQtNCwINC/0LXRgNC10LQg0LrQvtC80L/QuNC70Y/RhtC40LXQuSDRgdGC0YDQvtC60Lgg0YHQu9C+0LbQsNGC0YHRjy5cbiAqIEBwYXJhbSB7T2JqZWN0W119IFtkZWZpbml0aW9ucz1bXV1cbiAqL1xuY2xhc3MgU2hhZGVyIHtcbiAgICBjb25zdHJ1Y3Rvcih0eXBlLCBjb2RlLCBkZWZpbml0aW9ucyA9IFtdKSB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQotC40L8g0YjQtdC50LTQtdGA0LBcbiAgICAgICAgICogQHR5cGUge1NoYWRlci5WZXJ0ZXggfCBTaGFkZXIuRnJhZ21lbnR9XG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLnR5cGUgPSB0eXBlID09PSAndmVydGV4JyA/IFNoYWRlci5WZXJ0ZXggOiBTaGFkZXIuRnJhZ21lbnQ7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID1cbiAgICAgICAgICAgIGRlZmluaXRpb25zXG4gICAgICAgICAgICAgICAgLm1hcCgoZGVmKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkZWYudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcjZGVmaW5lICcgKyBkZWYudHlwZSArICcgJyArIGRlZi52YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnI2RlZmluZSAnICsgZGVmLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBsaW5lcyA9IEFycmF5LmlzQXJyYXkoY29kZSkgPyBjb2RlIDogW2NvZGUgfHwgJyddO1xuICAgICAgICBsZXQgZmlyc3RMaW5lID0gdHJ1ZTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICAvLyDQldGB0LvQuCDQsiDRiNC10LnQtNC10YDQsNGFINGD0LrQsNC30LDQvdCwINCy0LXRgNGB0LjRjywg0YLQviDQtdC1INC90YPQttC90L4g0L7QsdGP0LfQsNGC0LXQu9GM0L3QvlxuICAgICAgICAgICAgLy8g0L/QvtC80LXRgdGC0LjRgtGMINC/0LXRgNCy0L7QuSDRgdGC0YDQvtC60L7QuVxuICAgICAgICAgICAgaWYgKGZpcnN0TGluZSAmJiBsaW5lLmluZGV4T2YoJyN2ZXJzaW9uJykgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0LnVuc2hpZnQobGluZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKGxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmlyc3RMaW5lID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKipcbiAgICAgICAgICog0JrQvtC0INGI0LXQudC00LXRgNCwXG4gICAgICAgICAqIEB0eXBlIHtTdHJpbmd9XG4gICAgICAgICAqIEBpZ25vcmVcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2NvZGUgPSByZXN1bHQuam9pbignXFxuJyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIgd2ViZ2wg0YjQtdC50LTQtdGAINC00LvRjyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDRgSDQv9GA0L7Qs9GA0LDQvNC80L7QuS5cbiAgICAgKiDQldGB0LvQuCDRiNC10LnQtNC10YAg0LjRgdC/0L7Qu9GM0LfRg9GO0LXRgtGB0Y8g0L/QtdGA0LLRi9C5INGA0LDQtywg0YLQviDQutC+0LzQv9C40LvQuNGA0YPQtdGCINC10LPQvi5cbiAgICAgKi9cbiAgICBnZXQoZ2wpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zaGFkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXBpbGUoZ2wpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zaGFkZXI7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YjQtdC50LTQtdGAINC40Lcg0LLQuNC00LXQvtC60LDRgNGC0YtcbiAgICAgKiBAcGFyYW0gIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsINCa0L7QvdGC0LXQutGB0YIgV2ViR2xcbiAgICAgKi9cbiAgICByZW1vdmUoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NoYWRlcikge1xuICAgICAgICAgICAgZ2wuZGVsZXRlU2hhZGVyKHRoaXMuX3NoYWRlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C40LvQuNGA0YPQtdGCINC00LDQvdC90YvQuSDRiNC10LnQtNC10YBcbiAgICAgKiBAcGFyYW0gIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsINCa0L7QvdGC0LXQutGB0YIgV2ViR0xcbiAgICAgKiBAaWdub3JlXG4gICAgICovXG4gICAgX2NvbXBpbGUoZ2wpIHtcbiAgICAgICAgY29uc3QgZ2xUeXBlID0gdGhpcy50eXBlID09PSBTaGFkZXIuVmVydGV4ID8gZ2wuVkVSVEVYX1NIQURFUiA6IGdsLkZSQUdNRU5UX1NIQURFUjtcbiAgICAgICAgY29uc3Qgc2hhZGVyID0gKHRoaXMuX3NoYWRlciA9IGdsLmNyZWF0ZVNoYWRlcihnbFR5cGUpKTtcblxuICAgICAgICBpZiAoIXNoYWRlciB8fCBnbC5pc0NvbnRleHRMb3N0KCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgWzJnbF0gRmFpbGVkIHRvIGNyZWF0ZSBzaGFkZXIuIFNoYWRlciBpcyBudWxsOiAkeyFzaGFkZXJ9LiBDb250ZXh0IGlzIGxvc3Q6ICR7Z2wuaXNDb250ZXh0TG9zdCgpfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBnbC5zaGFkZXJTb3VyY2Uoc2hhZGVyLCB0aGlzLl9jb2RlKTtcbiAgICAgICAgZ2wuY29tcGlsZVNoYWRlcihzaGFkZXIpO1xuXG4gICAgICAgIGlmICghZ2wuZ2V0U2hhZGVyUGFyYW1ldGVyKHNoYWRlciwgZ2wuQ09NUElMRV9TVEFUVVMpKSB7XG4gICAgICAgICAgICBjb25zdCBpbmZvTG9nID0gZ2wuZ2V0U2hhZGVySW5mb0xvZyhzaGFkZXIpO1xuICAgICAgICAgICAgY29uc3QgY29kZUxpbmVzID0gKHRoaXMuX2NvZGUgfHwgJycpLnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihpbmZvTG9nLnJlcGxhY2UoL15FUlJPUjpcXHMqKFxcZCspOihcXGQrKTpcXHMqKC4qPylcXG4vLFxuICAgICAgICAgICAgICAgIC8vIEl0J3MgdXNlZnVsIHRvIGluamVjdCBlcnJvbmVvdXMgbGluZSBvZiBjb2RlXG4gICAgICAgICAgICAgICAgLy8gaW4gdGhlIGVycm9yIG1lc3NhZ2UgdG8gY29uY2lzZSB3aGF0IGhhcHBlbmVkXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24od2hvbGVNYXRjaCwgY29sLCByb3csIG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbGluZSA9IGNvZGVMaW5lc1tOdW1iZXIocm93KSAtIDFdO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGluZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBFUlJPUiAke2NvbH06JHtyb3d9OiAke21lc3NhZ2V9XFxuRXJyb25lb3VzIGxpbmU6IDw8JHtsaW5lfT4+XFxuYDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3aG9sZU1hdGNoO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5TaGFkZXIuVmVydGV4ID0gMTtcblNoYWRlci5GcmFnbWVudCA9IDI7XG5cbmV4cG9ydCBkZWZhdWx0IFNoYWRlcjtcbiJdfQ== |
@@ -166,2 +166,2 @@ import ShaderAttribute from './ShaderAttribute'; | ||
export default ShaderProgram; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJQcm9ncmFtLmpzIl0sIm5hbWVzIjpbIlNoYWRlckF0dHJpYnV0ZSIsIlNoYWRlclVuaWZvcm0iLCJTaGFkZXJQcm9ncmFtIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX3ZlcnRleFNoYWRlciIsInZlcnRleCIsIl9mcmFnbWVudFNoYWRlciIsImZyYWdtZW50IiwidW5pZm9ybXMiLCJmb3JFYWNoIiwib2JqIiwibmFtZSIsImF0dHJpYnV0ZXMiLCJfbGlua2VkIiwiX2xvY2F0ZWQiLCJfZXJyb3IiLCJlbmFibGUiLCJnbCIsImxpbmsiLCJsb2NhdGUiLCJ1c2VQcm9ncmFtIiwiX3dlYmdsUHJvZ3JhbSIsImJpbmQiLCJkaXNhYmxlIiwiY3JlYXRlUHJvZ3JhbSIsImF0dGFjaFNoYWRlciIsImdldCIsImJpbmRMb2NhdGlvbiIsImxpbmtQcm9ncmFtIiwiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIkxJTktfU1RBVFVTIiwiRXJyb3IiLCJnZXRQcm9ncmFtSW5mb0xvZyIsImVycm9yIiwiZ2V0TG9jYXRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsYUFBUCxNQUEwQixpQkFBMUI7O0FBRUE7Ozs7Ozs7OztBQVNBLE1BQU1DLGFBQU4sQ0FBb0I7QUFDaEJDLGdCQUFZQyxPQUFaLEVBQXFCO0FBQ2pCQSxrQkFBVUEsV0FBVyxFQUFyQjs7QUFFQSxhQUFLQyxhQUFMLEdBQXFCRCxRQUFRRSxNQUE3QjtBQUNBLGFBQUtDLGVBQUwsR0FBdUJILFFBQVFJLFFBQS9COztBQUVBLGFBQUtDLFFBQUwsR0FBZ0IsRUFBaEI7QUFDQUwsZ0JBQVFLLFFBQVIsR0FBbUJMLFFBQVFLLFFBQVIsSUFBb0IsRUFBdkM7QUFDQUwsZ0JBQVFLLFFBQVIsQ0FBaUJDLE9BQWpCLENBQXlCQyxPQUFPO0FBQzVCLGlCQUFLRixRQUFMLENBQWNFLElBQUlDLElBQWxCLElBQTBCLElBQUlYLGFBQUosQ0FBa0JVLEdB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MkNKLEdBQUdhLFdBQTlDLENBQUwsRUFBaUU7QUFDN0Qsc0JBQU0sSUFBSUMsS0FBSixDQUFVZCxHQUFHZSxpQkFBSCxDQUFxQixLQUFLWCxhQUExQixDQUFWLENBQU47QUFDSDs7QUFFRCxpQkFBS1IsT0FBTCxHQUFlLElBQWY7QUFDSCxTQXJCRCxDQXFCRSxPQUFPb0IsS0FBUCxFQUFjO0FBQ1osaUJBQUtsQixNQUFMLEdBQWMsSUFBZDtBQUNBLGtCQUFNa0IsS0FBTjtBQUNIOztBQUVELGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7QUFNQWQsV0FBT0YsRUFBUCxFQUFXO0FBQ1AsWUFBSSxLQUFLSCxRQUFMLElBQWlCLEtBQUtDLE1BQTFCLEVBQWtDO0FBQzlCLG1CQUFPLElBQVA7QUFDSDs7QUFFRCxhQUFLLE1BQU1KLElBQVgsSUFBbUIsS0FBS0MsVUFBeEIsRUFBb0M7QUFDaEMsaUJBQUtBLFVBQUwsQ0FBZ0JELElBQWhCLEVBQXNCdUIsV0FBdEIsQ0FBa0NqQixFQUFsQyxFQUFzQyxLQUFLSSxhQUEzQztBQUNIOztBQUVELGFBQUssTUFBTVYsSUFBWCxJQUFtQixLQUFLSCxRQUF4QixFQUFrQztBQUM5QixpQkFBS0EsUUFBTCxDQUFjRyxJQUFkLEVBQW9CdUIsV0FBcEIsQ0FBZ0NqQixFQUFoQyxFQUFvQyxLQUFLSSxhQUF6QztBQUNIOztBQUVELGFBQUtQLFFBQUwsR0FBZ0IsSUFBaEI7O0FBRUEsZUFBTyxJQUFQO0FBQ0g7QUFySmU7O0FBd0pwQixlQUFlYixhQUFmIiwiZmlsZSI6IlNoYWRlclByb2dyYW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU2hhZGVyQXR0cmlidXRlIGZyb20gJy4vU2hhZGVyQXR0cmlidXRlJztcbmltcG9ydCBTaGFkZXJVbmlmb3JtIGZyb20gJy4vU2hhZGVyVW5pZm9ybSc7XG5cbi8qKlxuICog0KjQtdC50LTQtdGA0L3QsNGPINC/0YDQvtCz0YDQsNC80LzQsCDQuNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGI0LXQudC00LXRgNGLLCDQv9C+0LTQs9C+0YLQsNCy0LvQuNCy0LDQtdGCINC4INGB0LLRj9C30YvQstCw0LXRgiDQtNCw0L3QvdGL0LUg0YEgV2ViR0wuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7U2hhZGVyfSB2ZXJ0ZXgg0JLQtdGA0YjQuNC90L3Ri9C5INGI0LXQudC00LXRgFxuICogQHBhcmFtIHtTaGFkZXJ9IGZyYWdtZW50INCk0YDQsNCz0LzQtdC90YLQvdGL0Lkg0YjQtdC50LTQtdGAXG4gKiBAcGFyYW0ge1VuaWZvcm1EZWZpbml0aW9uW119IFtvcHRpb25zLnVuaWZvcm1zPVtdXSDQntC/0LjRgdCw0L3QuNC1INGO0L3QuNGE0L7RgNC8XG4gKiBAcGFyYW0ge0F0dHJpYnV0ZURlZmluaXRpb25bXX0gW29wdGlvbnMuYXR0cmlidXRlcz1bXV0g0J7Qv9C40YHQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtC+0LJcbiAqL1xuY2xhc3MgU2hhZGVyUHJvZ3JhbSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICB0aGlzLl92ZXJ0ZXhTaGFkZXIgPSBvcHRpb25zLnZlcnRleDtcbiAgICAgICAgdGhpcy5fZnJhZ21lbnRTaGFkZXIgPSBvcHRpb25zLmZyYWdtZW50O1xuXG4gICAgICAgIHRoaXMudW5pZm9ybXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy51bmlmb3JtcyA9IG9wdGlvbnMudW5pZm9ybXMgfHwgW107XG4gICAgICAgIG9wdGlvbnMudW5pZm9ybXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy51bmlmb3Jtc1tvYmoubmFtZV0gPSBuZXcgU2hhZGVyVW5pZm9ybShvYmopO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0gb3B0aW9ucy5hdHRyaWJ1dGVzIHx8IFtdO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW29iai5uYW1lXSA9IG5ldyBTaGFkZXJBdHRyaWJ1dGUob2JqKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fbGlua2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2xvY2F0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINC/0YDQvtCz0YDQsNC80LzRgyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHbFxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgZW5hYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saW5rKGdsKTtcbiAgICAgICAgdGhpcy5sb2NhdGUoZ2wpO1xuICAgICAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wudXNlUHJvZ3JhbSh0aGlzLl93ZWJnbFByb2dyYW0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiDRjtC90LjRhNC+0YDQvNGLINC4INCw0YLRgNC40LHRg9GC0Ysg0L/RgNC+0LPRgNCw0LzQvNGLINGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3VuaWZvcm1zXSBLZXktdmFsdWUg0L7QsdGK0LXQutGCINGB0L7QtNC10YDQttCw0YnQuNC5INC30L3QsNGH0LXQvdC40Y8g0Y7QvdC40YTQvtGA0LxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2F0dHJpYnV0ZXNdIEtleS12YWx1ZSDQvtCx0YrQtdC60YIg0YHQvtC00LXRgNC20LDRidC40Lkg0LfQvdCw0YfQtdC90LjRjyDQsNGC0YDQuNCx0YPRgtC+0LJcbiAgICAgKi9cbiAgICBiaW5kKGdsLCB1bmlmb3JtcywgYXR0cmlidXRlcykge1xuICAgICAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bmlmb3Jtcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHVuaWZvcm1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bmlmb3Jtc1tuYW1lXS5iaW5kKGdsLCB1bmlmb3Jtc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0uYmluZChnbCwgYXR0cmlidXRlc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LrQu9GO0YfQsNC10YIg0L/RgNC+0LPRgNCw0LzQvNGDXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBkaXNhYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0uZGlzYWJsZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C40LvQuNGA0YPQtdGCINGI0LXQudC00LXRgNGLINC4INGB0LvQuNC90LrQvtCy0YvQstCw0LXRgiDQv9GA0L7Qs9GA0LDQvNC80YMuXG4gICAgICog0J7QtNC90LAg0LjQtyDQtNCy0YPRhSDQvdC10L7QsdGF0L7QtNC40LzRi9GFINGE0YPQvdC60YbQuNC5INC00LvRjyDRgNCw0LHQvtGC0Ysg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGxpbmsoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbmtlZCB8fCB0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5fd2ViZ2xQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fdmVydGV4U2hhZGVyKSB7XG4gICAgICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHRoaXMuX3dlYmdsUHJvZ3JhbSwgdGhpcy5fdmVydGV4U2hhZGVyLmdldChnbCkpO1xuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgaWYgKHRoaXMuX2ZyYWdtZW50U2hhZGVyKSB7XG4gICAgICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHRoaXMuX3dlYmdsUHJvZ3JhbSwgdGhpcy5fZnJhZ21lbnRTaGFkZXIuZ2V0KGdsKSk7XG4gICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdLmJpbmRMb2NhdGlvbihnbCwgdGhpcy5fd2ViZ2xQcm9ncmFtKTtcbiAgICAgICAgICAgIH1cbiAgICBcbiAgICAgICAgICAgIGdsLmxpbmtQcm9ncmFtKHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgICAgICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2wuZ2V0UHJvZ3JhbUluZm9Mb2codGhpcy5fd2ViZ2xQcm9ncmFtKSk7XG4gICAgICAgICAgICB9XG4gICAgXG4gICAgICAgICAgICB0aGlzLl9saW5rZWQgPSB0cnVlOyAgICBcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIHRoaXMuX2Vycm9yID0gdHJ1ZTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JvQvtGG0LjRgNGD0LXRgiDQsNGC0YDQuNCx0YPRgtGLINC4INGO0L3QuNGE0L7RgNC80LUg0L3QsCDQvtGB0L3QvtCy0LUg0YjQtdC50LTQtdGA0LAuXG4gICAgICog0J7QtNC90LAg0LjQtyDQtNCy0YPRhSDQvdC10L7QsdGF0L7QtNC40LzRi9GFINGE0YPQvdC60YbQuNC5INC00LvRjyDRgNCw0LHQvtGC0Ysg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGxvY2F0ZShnbCkge1xuICAgICAgICBpZiAodGhpcy5fbG9jYXRlZCB8fCB0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0uZ2V0TG9jYXRpb24oZ2wsIHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy51bmlmb3Jtcykge1xuICAgICAgICAgICAgdGhpcy51bmlmb3Jtc1tuYW1lXS5nZXRMb2NhdGlvbihnbCwgdGhpcy5fd2ViZ2xQcm9ncmFtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2xvY2F0ZWQgPSB0cnVlO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hhZGVyUHJvZ3JhbTtcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9TaGFkZXJQcm9ncmFtLmpzIl0sIm5hbWVzIjpbIlNoYWRlckF0dHJpYnV0ZSIsIlNoYWRlclVuaWZvcm0iLCJTaGFkZXJQcm9ncmFtIiwiY29uc3RydWN0b3IiLCJvcHRpb25zIiwiX3ZlcnRleFNoYWRlciIsInZlcnRleCIsIl9mcmFnbWVudFNoYWRlciIsImZyYWdtZW50IiwidW5pZm9ybXMiLCJmb3JFYWNoIiwib2JqIiwibmFtZSIsImF0dHJpYnV0ZXMiLCJfbGlua2VkIiwiX2xvY2F0ZWQiLCJfZXJyb3IiLCJlbmFibGUiLCJnbCIsImxpbmsiLCJsb2NhdGUiLCJ1c2VQcm9ncmFtIiwiX3dlYmdsUHJvZ3JhbSIsImJpbmQiLCJkaXNhYmxlIiwiY3JlYXRlUHJvZ3JhbSIsImF0dGFjaFNoYWRlciIsImdldCIsImJpbmRMb2NhdGlvbiIsImxpbmtQcm9ncmFtIiwiZ2V0UHJvZ3JhbVBhcmFtZXRlciIsIkxJTktfU1RBVFVTIiwiRXJyb3IiLCJnZXRQcm9ncmFtSW5mb0xvZyIsImVycm9yIiwiZ2V0TG9jYXRpb24iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLGVBQVAsTUFBNEIsbUJBQTVCO0FBQ0EsT0FBT0MsYUFBUCxNQUEwQixpQkFBMUI7O0FBRUE7Ozs7Ozs7OztBQVNBLE1BQU1DLGFBQU4sQ0FBb0I7QUFDaEJDLGdCQUFZQyxPQUFaLEVBQXFCO0FBQ2pCQSxrQkFBVUEsV0FBVyxFQUFyQjs7QUFFQSxhQUFLQyxhQUFMLEdBQXFCRCxRQUFRRSxNQUE3QjtBQUNBLGFBQUtDLGVBQUwsR0FBdUJILFFBQVFJLFFBQS9COztBQUVBLGFBQUtDLFFBQUwsR0FBZ0IsRUFBaEI7QUFDQUwsZ0JBQVFLLFFBQVIsR0FBbUJMLFFBQVFLLFFBQVIsSUFBb0IsRUFBdkM7QUFDQUwsZ0JBQVFLLFFBQVIsQ0FBaUJDLE9BQWpCLENBQXlCQyxPQUFPO0FBQzVCLGlCQUFLRixRQUFMLENBQWNFLElBQUlDLElBQWxCLElBQTBCLElBQUlYLGFBQUosQ0FBa0JVLEdB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MkNKLEdBQUdhLFdBQTlDLENBQUwsRUFBaUU7QUFDN0Qsc0JBQU0sSUFBSUMsS0FBSixDQUFVZCxHQUFHZSxpQkFBSCxDQUFxQixLQUFLWCxhQUExQixDQUFWLENBQU47QUFDSDs7QUFFRCxpQkFBS1IsT0FBTCxHQUFlLElBQWY7QUFDSCxTQXJCRCxDQXFCRSxPQUFPb0IsS0FBUCxFQUFjO0FBQ1osaUJBQUtsQixNQUFMLEdBQWMsSUFBZDtBQUNBLGtCQUFNa0IsS0FBTjtBQUNIOztBQUVELGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7Ozs7QUFNQWQsV0FBT0YsRUFBUCxFQUFXO0FBQ1AsWUFBSSxLQUFLSCxRQUFMLElBQWlCLEtBQUtDLE1BQTFCLEVBQWtDO0FBQzlCLG1CQUFPLElBQVA7QUFDSDs7QUFFRCxhQUFLLE1BQU1KLElBQVgsSUFBbUIsS0FBS0MsVUFBeEIsRUFBb0M7QUFDaEMsaUJBQUtBLFVBQUwsQ0FBZ0JELElBQWhCLEVBQXNCdUIsV0FBdEIsQ0FBa0NqQixFQUFsQyxFQUFzQyxLQUFLSSxhQUEzQztBQUNIOztBQUVELGFBQUssTUFBTVYsSUFBWCxJQUFtQixLQUFLSCxRQUF4QixFQUFrQztBQUM5QixpQkFBS0EsUUFBTCxDQUFjRyxJQUFkLEVBQW9CdUIsV0FBcEIsQ0FBZ0NqQixFQUFoQyxFQUFvQyxLQUFLSSxhQUF6QztBQUNIOztBQUVELGFBQUtQLFFBQUwsR0FBZ0IsSUFBaEI7O0FBRUEsZUFBTyxJQUFQO0FBQ0g7QUFySmU7O0FBd0pwQixlQUFlYixhQUFmIiwiZmlsZSI6IlNoYWRlclByb2dyYW0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU2hhZGVyQXR0cmlidXRlIGZyb20gJy4vU2hhZGVyQXR0cmlidXRlJztcbmltcG9ydCBTaGFkZXJVbmlmb3JtIGZyb20gJy4vU2hhZGVyVW5pZm9ybSc7XG5cbi8qKlxuICog0KjQtdC50LTQtdGA0L3QsNGPINC/0YDQvtCz0YDQsNC80LzQsCDQuNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGI0LXQudC00LXRgNGLLCDQv9C+0LTQs9C+0YLQsNCy0LvQuNCy0LDQtdGCINC4INGB0LLRj9C30YvQstCw0LXRgiDQtNCw0L3QvdGL0LUg0YEgV2ViR0wuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnNcbiAqIEBwYXJhbSB7U2hhZGVyfSB2ZXJ0ZXgg0JLQtdGA0YjQuNC90L3Ri9C5INGI0LXQudC00LXRgFxuICogQHBhcmFtIHtTaGFkZXJ9IGZyYWdtZW50INCk0YDQsNCz0LzQtdC90YLQvdGL0Lkg0YjQtdC50LTQtdGAXG4gKiBAcGFyYW0ge1VuaWZvcm1EZWZpbml0aW9uW119IFtvcHRpb25zLnVuaWZvcm1zPVtdXSDQntC/0LjRgdCw0L3QuNC1INGO0L3QuNGE0L7RgNC8XG4gKiBAcGFyYW0ge0F0dHJpYnV0ZURlZmluaXRpb25bXX0gW29wdGlvbnMuYXR0cmlidXRlcz1bXV0g0J7Qv9C40YHQsNC90LjQtSDQsNGC0YDQuNCx0YPRgtC+0LJcbiAqL1xuY2xhc3MgU2hhZGVyUHJvZ3JhbSB7XG4gICAgY29uc3RydWN0b3Iob3B0aW9ucykge1xuICAgICAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblxuICAgICAgICB0aGlzLl92ZXJ0ZXhTaGFkZXIgPSBvcHRpb25zLnZlcnRleDtcbiAgICAgICAgdGhpcy5fZnJhZ21lbnRTaGFkZXIgPSBvcHRpb25zLmZyYWdtZW50O1xuXG4gICAgICAgIHRoaXMudW5pZm9ybXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy51bmlmb3JtcyA9IG9wdGlvbnMudW5pZm9ybXMgfHwgW107XG4gICAgICAgIG9wdGlvbnMudW5pZm9ybXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy51bmlmb3Jtc1tvYmoubmFtZV0gPSBuZXcgU2hhZGVyVW5pZm9ybShvYmopO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgb3B0aW9ucy5hdHRyaWJ1dGVzID0gb3B0aW9ucy5hdHRyaWJ1dGVzIHx8IFtdO1xuICAgICAgICBvcHRpb25zLmF0dHJpYnV0ZXMuZm9yRWFjaChvYmogPT4ge1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW29iai5uYW1lXSA9IG5ldyBTaGFkZXJBdHRyaWJ1dGUob2JqKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fbGlua2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2xvY2F0ZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5fZXJyb3IgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINC/0YDQvtCz0YDQsNC80LzRgyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHbFxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgZW5hYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5saW5rKGdsKTtcbiAgICAgICAgdGhpcy5sb2NhdGUoZ2wpO1xuICAgICAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wudXNlUHJvZ3JhbSh0aGlzLl93ZWJnbFByb2dyYW0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiDRjtC90LjRhNC+0YDQvNGLINC4INCw0YLRgNC40LHRg9GC0Ysg0L/RgNC+0LPRgNCw0LzQvNGLINGBINC60L7QvdGC0LXQutGB0YLQvtC8IFdlYkdsXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW3VuaWZvcm1zXSBLZXktdmFsdWUg0L7QsdGK0LXQutGCINGB0L7QtNC10YDQttCw0YnQuNC5INC30L3QsNGH0LXQvdC40Y8g0Y7QvdC40YTQvtGA0LxcbiAgICAgKiBAcGFyYW0ge09iamVjdH0gW2F0dHJpYnV0ZXNdIEtleS12YWx1ZSDQvtCx0YrQtdC60YIg0YHQvtC00LXRgNC20LDRidC40Lkg0LfQvdCw0YfQtdC90LjRjyDQsNGC0YDQuNCx0YPRgtC+0LJcbiAgICAgKi9cbiAgICBiaW5kKGdsLCB1bmlmb3JtcywgYXR0cmlidXRlcykge1xuICAgICAgICBpZiAodGhpcy5fZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1bmlmb3Jtcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHVuaWZvcm1zKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bmlmb3Jtc1tuYW1lXS5iaW5kKGdsLCB1bmlmb3Jtc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoYXR0cmlidXRlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0uYmluZChnbCwgYXR0cmlidXRlc1tuYW1lXSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktGL0LrQu9GO0YfQsNC10YIg0L/RgNC+0LPRgNCw0LzQvNGDXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBkaXNhYmxlKGdsKSB7XG4gICAgICAgIGlmICh0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gdGhpcy5hdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXNbbmFtZV0uZGlzYWJsZShnbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQmtC+0LzQv9C40LvQuNGA0YPQtdGCINGI0LXQudC00LXRgNGLINC4INGB0LvQuNC90LrQvtCy0YvQstCw0LXRgiDQv9GA0L7Qs9GA0LDQvNC80YMuXG4gICAgICog0J7QtNC90LAg0LjQtyDQtNCy0YPRhSDQvdC10L7QsdGF0L7QtNC40LzRi9GFINGE0YPQvdC60YbQuNC5INC00LvRjyDRgNCw0LHQvtGC0Ysg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqL1xuICAgIGxpbmsoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbmtlZCB8fCB0aGlzLl9lcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5fd2ViZ2xQcm9ncmFtID0gZ2wuY3JlYXRlUHJvZ3JhbSgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fdmVydGV4U2hhZGVyKSB7XG4gICAgICAgICAgICAgICAgZ2wuYXR0YWNoU2hhZGVyKHRoaXMuX3dlYmdsUHJvZ3JhbSwgdGhpcy5fdmVydGV4U2hhZGVyLmdldChnbCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fZnJhZ21lbnRTaGFkZXIpIHtcbiAgICAgICAgICAgICAgICBnbC5hdHRhY2hTaGFkZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCB0aGlzLl9mcmFnbWVudFNoYWRlci5nZXQoZ2wpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuYXR0cmlidXRlc1tuYW1lXS5iaW5kTG9jYXRpb24oZ2wsIHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGdsLmxpbmtQcm9ncmFtKHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgICAgICBpZiAoIWdsLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5fd2ViZ2xQcm9ncmFtLCBnbC5MSU5LX1NUQVRVUykpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZ2wuZ2V0UHJvZ3JhbUluZm9Mb2codGhpcy5fd2ViZ2xQcm9ncmFtKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2xpbmtlZCA9IHRydWU7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICB0aGlzLl9lcnJvciA9IHRydWU7XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCb0L7RhtC40YDRg9C10YIg0LDRgtGA0LjQsdGD0YLRiyDQuCDRjtC90LjRhNC+0YDQvNC1INC90LAg0L7RgdC90L7QstC1INGI0LXQudC00LXRgNCwLlxuICAgICAqINCe0LTQvdCwINC40Lcg0LTQstGD0YUg0L3QtdC+0LHRhdC+0LTQuNC80YvRhSDRhNGD0L3QutGG0LjQuSDQtNC70Y8g0YDQsNCx0L7RgtGLINGI0LXQudC00LXRgNC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YsuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKi9cbiAgICBsb2NhdGUoZ2wpIHtcbiAgICAgICAgaWYgKHRoaXMuX2xvY2F0ZWQgfHwgdGhpcy5fZXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMuYXR0cmlidXRlcykge1xuICAgICAgICAgICAgdGhpcy5hdHRyaWJ1dGVzW25hbWVdLmdldExvY2F0aW9uKGdsLCB0aGlzLl93ZWJnbFByb2dyYW0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBuYW1lIGluIHRoaXMudW5pZm9ybXMpIHtcbiAgICAgICAgICAgIHRoaXMudW5pZm9ybXNbbmFtZV0uZ2V0TG9jYXRpb24oZ2wsIHRoaXMuX3dlYmdsUHJvZ3JhbSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb2NhdGVkID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNoYWRlclByb2dyYW07XG4iXX0= |
@@ -80,3 +80,3 @@ /** | ||
options.normalized, options.stride, options.offset); | ||
if (options.instanceDivisor) { | ||
@@ -123,7 +123,3 @@ gl.vertexAttribDivisor(location, options.instanceDivisor); | ||
gl.bindBuffer(this._toGlParam(gl, this.type), this._glBuffer); | ||
gl.bufferData( | ||
this._toGlParam(gl, this.type), | ||
this._initData, | ||
this._toGlParam(gl, this.drawType) | ||
); | ||
gl.bufferData(this._toGlParam(gl, this.type), this._initData, this._toGlParam(gl, this.drawType)); | ||
this._initData = null; | ||
@@ -130,0 +126,0 @@ return this; |
@@ -24,3 +24,10 @@ import Texture from './Texture'; | ||
/** | ||
* @type {Texture | WebGLRenderbuffer | null} | ||
* @ignore | ||
*/ | ||
this._depthBuffer = null; | ||
/** | ||
* Контекст WebGL, в котором был инициализирован фреймбуфер. | ||
@@ -84,2 +91,10 @@ * Используется только для удаления, подумать хорошо, прежде чем использовать для чего-то ещё. | ||
/** | ||
* Возвращает текущие буфер или текстуру глубины фреймбуфера | ||
* @return {Texture | WebGLRenderbuffer | null} | ||
*/ | ||
getDepthBuffer() { | ||
return this._depthBuffer; | ||
} | ||
/** | ||
* Инициализирует фреймбуфер, текстуры и рендербуфер | ||
@@ -91,3 +106,3 @@ * @param {WebGLRenderingContext} gl | ||
this._glContext = gl; | ||
// Проверяем наличие текстуры, т.к. она может быть удалена через метод _unprepare. | ||
@@ -102,9 +117,29 @@ if (!this._texture) { | ||
this._renderBuffer = gl.createRenderbuffer(); | ||
gl.bindRenderbuffer(gl.RENDERBUFFER, this._renderBuffer); | ||
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.options.size[0], this.options.size[1]); | ||
gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, this._texture.getTexture(), 0); | ||
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._renderBuffer); | ||
if (this.options.depthTexture) { | ||
this._depthBuffer = new Texture(null, { | ||
magFilter: Texture.NearestFilter, | ||
minFilter: Texture.NearestFilter, | ||
format: Texture.DepthComponentFormat, | ||
size: this.options.size, | ||
premultiplyAlpha: false, | ||
generateMipmaps: false, | ||
type: Texture.UnsignedInt, | ||
}); | ||
this._depthBuffer.prepare(gl); | ||
gl.framebufferTexture2D( | ||
gl.FRAMEBUFFER, | ||
gl.DEPTH_ATTACHMENT, | ||
gl.TEXTURE_2D, | ||
this._depthBuffer.getTexture(), | ||
0 | ||
); | ||
} else { | ||
this._depthBuffer = gl.createRenderbuffer(); | ||
gl.bindRenderbuffer(gl.RENDERBUFFER, this._depthBuffer); | ||
gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.options.size[0], this.options.size[1]); | ||
gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._depthBuffer); | ||
} | ||
this._checkComplete(gl); | ||
@@ -126,7 +161,11 @@ | ||
if (this._depthBuffer) { | ||
this._depthBuffer instanceof Texture ? | ||
this._depthBuffer.remove(this._glContext) : this._glContext.deleteRenderbuffer(this._depthBuffer); | ||
this._depthBuffer = null; | ||
} | ||
if (this._frameBuffer) { | ||
this._glContext.deleteFramebuffer(this._frameBuffer); | ||
this._glContext.deleteRenderbuffer(this._renderBuffer); | ||
this._frameBuffer = null; | ||
this._renderBuffer = null; | ||
} | ||
@@ -162,2 +201,3 @@ } | ||
generateMipmaps: false, | ||
depthTexture: false, | ||
}); | ||
@@ -172,2 +212,3 @@ | ||
* @property {Number[]} size | ||
* @property {Boolean} depthTexture | ||
*/ |
@@ -18,3 +18,3 @@ /** | ||
const result = | ||
const result = | ||
definitions | ||
@@ -31,3 +31,3 @@ .map((def) => { | ||
let firstLine = true; | ||
for (let line of lines) { | ||
for (const line of lines) { | ||
// Если в шейдерах указана версия, то ее нужно обязательно | ||
@@ -38,3 +38,3 @@ // поместить первой строкой | ||
} else { | ||
result.push(line) | ||
result.push(line); | ||
} | ||
@@ -49,3 +49,3 @@ firstLine = false; | ||
*/ | ||
this._code = result.join('\n') | ||
this._code = result.join('\n'); | ||
} | ||
@@ -85,3 +85,3 @@ | ||
throw new Error( | ||
`[2gl] Failed to create shader. Shader is null: ${!shader}. Context is lost: ${gl.isContextLost()}`, | ||
`[2gl] Failed to create shader. Shader is null: ${!shader}. Context is lost: ${gl.isContextLost()}` | ||
); | ||
@@ -91,3 +91,3 @@ } | ||
gl.shaderSource(shader, this._code); | ||
gl.compileShader(shader); | ||
gl.compileShader(shader); | ||
@@ -97,6 +97,6 @@ if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) { | ||
const codeLines = (this._code || '').split('\n'); | ||
throw new Error(infoLog.replace(/^ERROR:\s*(\d+):(\d+):\s*(.*?)\n/, | ||
throw new Error(infoLog.replace(/^ERROR:\s*(\d+):(\d+):\s*(.*?)\n/, | ||
// It's useful to inject erroneous line of code | ||
// in the error message to concise what happened | ||
function (wholeMatch, col, row, message) { | ||
function(wholeMatch, col, row, message) { | ||
const line = codeLines[Number(row) - 1]; | ||
@@ -103,0 +103,0 @@ if (line) { |
@@ -117,11 +117,11 @@ import ShaderAttribute from './ShaderAttribute'; | ||
} | ||
if (this._fragmentShader) { | ||
gl.attachShader(this._webglProgram, this._fragmentShader.get(gl)); | ||
} | ||
for (const name in this.attributes) { | ||
this.attributes[name].bindLocation(gl, this._webglProgram); | ||
} | ||
gl.linkProgram(this._webglProgram); | ||
@@ -131,4 +131,4 @@ if (!gl.getProgramParameter(this._webglProgram, gl.LINK_STATUS)) { | ||
} | ||
this._linked = true; | ||
this._linked = true; | ||
} catch (error) { | ||
@@ -135,0 +135,0 @@ this._error = true; |
@@ -94,3 +94,3 @@ /** | ||
this._toGlParam(gl, this.options.type), | ||
src, | ||
src | ||
); | ||
@@ -169,5 +169,7 @@ | ||
if (param === Texture.RgbFormat) { return gl.RGB; } | ||
if (param === Texture.DepthComponentFormat) { return gl.DEPTH_COMPONENT; } | ||
if (param === Texture.UnsignedByte) { return gl.UNSIGNED_BYTE; } | ||
if (param === Texture.Float) { return gl.FLOAT; } | ||
if (param === Texture.UnsignedInt) { return gl.UNSIGNED_INT; } | ||
@@ -189,2 +191,3 @@ return null; | ||
Texture.DepthComponentFormat = 7; | ||
Texture.RgbaFormat = 11; | ||
@@ -196,2 +199,3 @@ Texture.AlphaFormat = 12; | ||
Texture.Float = 15; | ||
Texture.UnsignedInt = 16; | ||
@@ -198,0 +202,0 @@ Texture.defaultOptions = { |
@@ -74,3 +74,3 @@ /** | ||
this._ext = ext; | ||
this._vao = this._glCreateVertexArray(); | ||
@@ -92,7 +92,6 @@ this._glBindVertexArray(this._vao); | ||
_glCreateVertexArray() { | ||
const gl = this._gl; | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
return gl.createVertexArray(); | ||
@@ -102,2 +101,3 @@ } else if (ext) { | ||
} | ||
return undefined; | ||
} | ||
@@ -108,3 +108,3 @@ | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
gl.bindVertexArray(vao); | ||
@@ -122,3 +122,3 @@ } else if (ext) { | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
gl.deleteVertexArray(vao); | ||
@@ -129,4 +129,8 @@ } else if (ext) { | ||
} | ||
_isWebGL2(gl) { | ||
return 'WebGL2RenderingContext' in window && gl instanceof WebGL2RenderingContext; | ||
} | ||
} | ||
export default Vao; |
@@ -165,2 +165,5 @@ /** | ||
} | ||
if (param === Texture.DepthComponentFormat) { | ||
return gl.DEPTH_COMPONENT; | ||
} | ||
@@ -173,2 +176,5 @@ if (param === Texture.UnsignedByte) { | ||
} | ||
if (param === Texture.UnsignedInt) { | ||
return gl.UNSIGNED_INT; | ||
} | ||
@@ -190,2 +196,3 @@ return null; | ||
Texture.DepthComponentFormat = 7; | ||
Texture.RgbaFormat = 11; | ||
@@ -197,2 +204,3 @@ Texture.AlphaFormat = 12; | ||
Texture.Float = 15; | ||
Texture.UnsignedInt = 16; | ||
@@ -247,2 +255,2 @@ Texture.defaultOptions = { | ||
*/ | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9UZXh0dXJlLmpzIl0sIm5hbWVzIjpbIlRleHR1cmUiLCJjb25zdHJ1Y3RvciIsInNyYyIsIm9wdGlvbnMiLCJfc3JjIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdE9wdGlvbnMiLCJfZ2xDb250ZXh0IiwiZW5hYmxlIiwiZ2wiLCJpbmRleCIsInVuaXQiLCJ1bmRlZmluZWQiLCJhY3RpdmVUZXh0dXJlIiwiVEVYVFVSRTAiLCJfdGV4dHVyZSIsInByZXBhcmUiLCJiaW5kVGV4dHVyZSIsIlRFWFRVUkVfMkQiLCJyZW1vdmUiLCJkZWxldGVUZXh0dXJlIiwiZ2V0VGV4dHVyZSIsInN1YkltYWdlIiwieCIsInkiLCJwaXhlbFN0b3JlaSIsIlVOUEFDS19GTElQX1lfV0VCR0wiLCJmbGlwWSIsIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCIsInByZW11bHRpcGx5QWxwaGEiLCJ0ZXhTdWJJbWFnZTJEIiwiX3RvR2xQYXJhbSIsImZvcm1hdCIsInR5cGUiLCJjcmVhdGVUZXh0dXJlIiwic2l6ZSIsInRleEltYWdlMkQiLCJ0ZXhQYXJhbWV0ZXJpIiwiVEVYVFVSRV9XUkFQX1MiLCJ3cmFwUyIsIlRFWFRVUkVfV1JBUF9UIiwid3JhcFQiLCJURVhUVVJFX01BR19GSUxURVIiLCJtYWdGaWx0ZXIiLCJURVhUVVJFX01JTl9GSUxURVIiLCJtaW5GaWx0ZXIiLCJnZW5lcmF0ZU1pcG1hcHMiLCJOZWFyZXN0RmlsdGVyIiwiTGluZWFyRmlsdGVyIiwiZ2VuZXJhdGVNaXBtYXAiLCJwYXJhbSIsIkNsYW1wVG9FZGdlV3JhcHBpbmciLCJDTEFNUF9UT19FREdFIiwiUmVwZWF0IiwiUkVQRUFUIiwiTWlycm9yZWRSZXBlYXQiLCJNSVJST1JFRF9SRVBFQVQiLCJORUFSRVNUIiwiTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwiTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciIsIk5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsIkxJTkVBUiIsIkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIiLCJMSU5FQVJfTUlQTUFQX05FQVJFU1QiLCJMaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIiLCJMSU5FQVJfTUlQTUFQX0xJTkVBUiIsIlJnYmFGb3JtYXQiLCJSR0JBIiwiQWxwaGFGb3JtYXQiLCJBTFBIQSIsIlJnYkZvcm1hdCIsIlJHQiIsIlVuc2lnbmVkQnl0ZSIsIlVOU0lHTkVEX0JZVEUiLCJGbG9hdCIsIkZMT0FUIl0sIm1hcHBpbmdzIjoiQUFBQTs7OztBQUlBLE1BQU1BLE9BQU4sQ0FBYztBQUNWOzs7OztBQUtBQyxnQkFBWUMsR0FBWixFQUFpQkMsVUFBVSxFQUEzQixFQUErQjtBQUMzQixhQUFLQyxJQUFMLEdBQVlGLE9BQU8sSUFBbkI7O0FBRUE7Ozs7O0FBS0EsYUFBS0MsT0FBTCxHQUFlRSxPQUFPQyxNQUFQLENBQWMsRUFBZCxFQUFrQk4sUUFBUU8sY0FBMUIsRUFBMENKLE9BQTFDLENBQWY7O0FBRUE7Ozs7OztBQU1BLGFBQUtLLFVBQUwsR0FBa0IsSUFBbEI7QUFDSDs7QUFFRDs7Ozs7Ozs7QUFRQUMsV0FBT0MsRUFBUCxFQUFXQyxLQUFYLEVBQWtCO0FBQ2QsY0FBTUMsT0FBT0QsVUFBVUUsU0FBVixHQUFzQkYsS0FBdEIsR0FBOEIsS0FBS1IsT0FBTCxDQUFhUyxJQUF4RDs7QUFFQSxZQUFJQSxTQUFTQyxTQUFiLEVBQXdCO0FBQ3BCSCxlQUFHSSxhQUFILENBQWlCSixHQUFHSyxRQUFILEdBQWNILElBQS9CO0FBQ0g7O0FBRUQsWUFBSSxDQUFDLEtBQUtJLFFBQVYsRUFBb0I7QUFDaEIsaUJBQUtDLE9BQUwsQ0FBYVAsRUFBYjtBQUNIOztBQUVEQSxXQUFHUSxXQUFILENBQWVSLEdBQUdTLFVBQWxCLEVBQThCLEtBQUtILFFBQW5DOztBQUVBLGVBQU8sSUFBUDtBQUNIOztBQUVEOzs7QUFHQUksYUFBUztBQUNMLFlBQUksS0FBS0osUUFBVCxFQUFtQjtBQUNmLGlCQUFLUixVQUFMLENBQWdCYSxh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QUFyQztBQUNBM0QsUUFBUTZELHlCQUFSLEdBQW9DLENBQXBDO0FBQ0E3RCxRQUFRaUQsWUFBUixHQUF1QixDQUF2QjtBQUNBakQsUUFBUWdFLHlCQUFSLEdBQW9DLENBQXBDO0FBQ0FoRSxRQUFRa0Usd0JBQVIsR0FBbUMsQ0FBbkM7O0FBRUFsRSxRQUFRb0UsVUFBUixHQUFxQixFQUFyQjtBQUNBcEUsUUFBUXNFLFdBQVIsR0FBc0IsRUFBdEI7QUFDQXRFLFFBQVF3RSxTQUFSLEdBQW9CLEVBQXBCOztBQUVBeEUsUUFBUTBFLFlBQVIsR0FBdUIsRUFBdkI7QUFDQTFFLFFBQVE0RSxLQUFSLEdBQWdCLEVBQWhCOztBQUVBNUUsUUFBUU8sY0FBUixHQUF5QjtBQUNyQnFDLGVBQVc1QyxRQUFRaUQsWUFERTtBQUVyQkgsZUFBVzlDLFFBQVFrRSx3QkFGRTtBQUdyQjFCLFdBQU94QyxRQUFRb0QsbUJBSE07QUFJckJWLFdBQU8xQyxRQUFRb0QsbUJBSk07QUFLckJuQixZQUFRakMsUUFBUW9FLFVBTEs7QUFNckJyQixxQkFBaUIsSUFOSTtBQU9yQm5CLFdBQU8sSUFQYztBQVFyQkUsc0JBQWtCLElBUkc7QUFTckJJLFVBQU1sQyxRQUFRMEU7QUFUTyxDQUF6Qjs7QUFZQSxlQUFlMUUsT0FBZjs7QUFFQTs7Ozs7O0FBTUE7Ozs7QUFJQTs7OztBQUlBOzs7O0FBSUEiLCJmaWxlIjoiVGV4dHVyZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0KLQtdC60YHRgtGD0YDRiyDQuNGB0L/QvtC70YzQt9GD0Y7RgtGB0Y8g0LTQu9GPINC+0YLRgNC40YHQvtCy0LrQuCDQuNC30L7QsdGA0LDQttC10L3QuNC5INCyIFdlYkdMXG4gKi9cblxuY2xhc3MgVGV4dHVyZSB7XG4gICAgLyoqXG4gICAgICogQHBhcmFtIHtIVE1MSW1hZ2VFbGVtZW50IHwgSFRNTENhbnZhc0VsZW1lbnQgfCBJbWFnZUJpdG1hcCB8IEltYWdlRGF0YSB8IFR5cGVkQXJyYXl9IFtzcmM9bnVsbF0g0JIg0LrQsNGH0LXRgdGC0LLQtVxuICAgICAqINC40LfQvtCx0YDQsNC20LXQvdC40Y8g0LzQvtC20LXRgiDQsdGL0YLRjCDQu9C40LHQviDRjdC70LXQvNC10L3RgiBpbWcsINC70LjQsdC+IGNhbnZhc1xuICAgICAqIEBwYXJhbSB7P1RleHR1cmVPcHRpb25zfSBvcHRpb25zXG4gICAgICovXG4gICAgY29uc3RydWN0b3Ioc3JjLCBvcHRpb25zID0ge30pIHtcbiAgICAgICAgdGhpcy5fc3JjID0gc3JjIHx8IG51bGw7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCf0LDRgNCw0LzQtdGC0YDRiyDQtNC70Y8g0YHQstGP0LfRi9Cy0LDQvdC40Y8g0YLQtdC60YHRgtGD0YDRi1xuICAgICAgICAgKiBAdHlwZSB7VGV4dHVyZU9wdGlvbnN9XG4gICAgICAgICAqIEByZWFkb25seVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgVGV4dHVyZS5kZWZhdWx0T3B0aW9ucywgb3B0aW9ucyk7XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqINCa0L7QvdGC0LXQutGB0YIgV2ViR0wsINCyINC60L7RgtC+0YDQvtC8INCx0YvQu9CwINC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDQvdCwINGC0LXQutGB0YLRg9GA0LAuXG4gICAgICAgICAqINCY0YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRgtC+0LvRjNC60L4g0LTQu9GPINGD0LTQsNC70LXQvdC40Y8sINC/0L7QtNGD0LzQsNGC0Ywg0YXQvtGA0L7RiNC+LCDQv9GA0LXQttC00LUg0YfQtdC8INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0YfQtdCz0L4t0YLQviDQtdGJ0ZEuXG4gICAgICAgICAqIEB0eXBlIHs/V2ViR0xSZW5kZXJpbmdDb250ZXh0fVxuICAgICAgICAgKiBAaWdub3JlXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiBXZWJHTCDQuCDQtNCw0L3QvdGL0LUg0YLQtdC60YHRgtGD0YDRiy5cbiAgICAgKiDQn9GA0Lgg0L/QtdGA0LLQvtC8INCy0YvQt9C+0LIg0L/RgNC+0LjRgdGF0L7QtNC40YIg0LjQvdC40YbQuNCw0LvQuNC30LDRhtC40Y8uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0gez9OdW1iZXJ9IGluZGV4INCd0L7QvNC10YAg0YLQtdC60YHRgtGD0YDRiyDQsiDQutC+0L3RgtC10LrRgdGC0LUgV2ViR0wuXG4gICAgICog0JXRgdC70Lgg0LXQs9C+INC90LXRgiwg0LjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGD0LbQtSDQsNC60YLQuNCy0LjRgNC+0LLQsNC90L3Ri9C5INGO0L3QuNGCINGC0LXQutGB0YLRg9GA0YsuXG4gICAgICovXG4gICAgZW5hYmxlKGdsLCBpbmRleCkge1xuICAgICAgICBjb25zdCB1bml0ID0gaW5kZXggIT09IHVuZGVmaW5lZCA/IGluZGV4IDogdGhpcy5vcHRpb25zLnVuaXQ7XG5cbiAgICAgICAgaWYgKHVuaXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZ2wuYWN0aXZlVGV4dHVyZShnbC5URVhUVVJFMCArIHVuaXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl90ZXh0dXJlKSB7XG4gICAgICAgICAgICB0aGlzLnByZXBhcmUoZ2wpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGhpcy5fdGV4dHVyZSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KPQtNCw0LvRj9C10YIg0YLQtdC60YHRgtGD0YDRgyDQuNC3INCy0LjQtNC10L7QutCw0YDRgtGLXG4gICAgICovXG4gICAgcmVtb3ZlKCkge1xuICAgICAgICBpZiAodGhpcy5fdGV4dHVyZSkge1xuICAgICAgICAgICAgdGhpcy5fZ2xDb250ZXh0LmRlbGV0ZVRleHR1cmUodGhpcy5fdGV4dHVyZSk7XG4gICAgICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fdGV4dHVyZSA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQktC+0LfQstGA0LDRidCw0LXRgiBXZWJHTCDRgtC10LrRgdGC0YPRgNGDXG4gICAgICogQHJldHVybiB7V2ViR0xUZXh0dXJlfVxuICAgICAqL1xuICAgIGdldFRleHR1cmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0dXJlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCe0LHQvdC+0LLQu9GP0LXRgiDRh9Cw0YHRgtGMINGC0LXQutGB0YLRg9GA0YtcbiAgICAgKlxuICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbFxuICAgICAqIEBwYXJhbSB7SFRNTEltYWdlRWxlbWVudCB8IEhUTUxDYW52YXNFbGVtZW50IHwgSW1hZ2VCaXRtYXAgfCBJbWFnZURhdGEgfCBUeXBlZEFycmF5fSBzcmNcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geCDQk9C+0YDQuNC30L7QvdGC0LDQu9GM0L3QvtC1INGB0LzQtdGJ0LXQvdC40LUsINGBINC60L7RgtC+0YDQvtCz0L4g0LfQsNC/0LjRgdGL0LLQsNC10Lwg0LIg0YLQtdC60YHRgtGD0YDRg1xuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB5INCS0LXRgNGC0LjQutCw0LvRjNC90L7QtSDRgdC80LXRidC10L3QuNC1LCDRgSDQutC+0YLQvtGA0L7Qs9C+INC30LDQv9C40YHRi9Cy0LDQtdC8INCyINGC0LXQutGB0YLRg9GA0YNcbiAgICAgKi9cbiAgICBzdWJJbWFnZShnbCwgc3JjLCB4LCB5KSB7XG4gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMuX3RleHR1cmUpO1xuICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfRkxJUF9ZX1dFQkdMLCB0aGlzLm9wdGlvbnMuZmxpcFkpO1xuICAgICAgICBnbC5waXhlbFN0b3JlaShnbC5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsIHRoaXMub3B0aW9ucy5wcmVtdWx0aXBseUFscGhhKTtcblxuICAgICAgICBnbC50ZXhTdWJJbWFnZTJEKFxuICAgICAgICAgICAgZ2wuVEVYVFVSRV8yRCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICB4LCB5LFxuICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMuZm9ybWF0KSxcbiAgICAgICAgICAgIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy5vcHRpb25zLnR5cGUpLFxuICAgICAgICAgICAgc3JjLFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCa0LvQsNC00ZHRgiDRgtC10LrRgdGC0YPRgNGDINCyINCy0LjQtNC10L7QutCw0YDRgtGDXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgcHJlcGFyZShnbCkge1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBnbDtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTtcblxuICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdGhpcy5vcHRpb25zLmZsaXBZKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0aGlzLm9wdGlvbnMucHJlbXVsdGlwbHlBbHBoYSk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaXplKSB7XG4gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKFxuICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5mb3JtYXQpLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zaXplWzBdLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zaXplWzFdLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMuZm9ybWF0KSxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy50eXBlKSxcbiAgICAgICAgICAgICAgICB0aGlzLl9zcmNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKFxuICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5mb3JtYXQpLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy5vcHRpb25zLmZvcm1hdCksXG4gICAgICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMudHlwZSksXG4gICAgICAgICAgICAgICAgdGhpcy5fc3JjXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMud3JhcFMpKTtcbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMud3JhcFQpKTtcblxuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMubWFnRmlsdGVyKSk7XG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5taW5GaWx0ZXIpKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmdlbmVyYXRlTWlwbWFwcyAmJlxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1pbkZpbHRlciAhPT0gVGV4dHVyZS5OZWFyZXN0RmlsdGVyICYmXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWluRmlsdGVyICE9PSBUZXh0dXJlLkxpbmVhckZpbHRlclxuICAgICAgICApIHtcbiAgICAgICAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3RvR2xQYXJhbShnbCwgcGFyYW0pIHtcbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmcpIHsgcmV0dXJuIGdsLkNMQU1QX1RPX0VER0U7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLlJlcGVhdCkgeyByZXR1cm4gZ2wuUkVQRUFUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5NaXJyb3JlZFJlcGVhdCkgeyByZXR1cm4gZ2wuTUlSUk9SRURfUkVQRUFUOyB9XG5cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLk5FQVJFU1Q7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVI7IH1cblxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuUmdiYUZvcm1hdCkgeyByZXR1cm4gZ2wuUkdCQTsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuQWxwaGFGb3JtYXQpIHsgcmV0dXJuIGdsLkFMUEhBOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5SZ2JGb3JtYXQpIHsgcmV0dXJuIGdsLlJHQjsgfVxuXG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5VbnNpZ25lZEJ5dGUpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0JZVEU7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkZsb2F0KSB7IHJldHVybiBnbC5GTE9BVDsgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nID0gODtcblRleHR1cmUuUmVwZWF0ID0gOTtcblRleHR1cmUuTWlycm9yZWRSZXBlYXQgPSAxMDtcblxuVGV4dHVyZS5OZWFyZXN0RmlsdGVyID0gMTtcblRleHR1cmUuTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIgPSAyO1xuVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyID0gMztcblRleHR1cmUuTGluZWFyRmlsdGVyID0gNDtcblRleHR1cmUuTGluZWFyTWlwTWFwTmVhcmVzdEZpbHRlciA9IDU7XG5UZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlciA9IDY7XG5cblRleHR1cmUuUmdiYUZvcm1hdCA9IDExO1xuVGV4dHVyZS5BbHBoYUZvcm1hdCA9IDEyO1xuVGV4dHVyZS5SZ2JGb3JtYXQgPSAxMztcblxuVGV4dHVyZS5VbnNpZ25lZEJ5dGUgPSAxNDtcblRleHR1cmUuRmxvYXQgPSAxNTtcblxuVGV4dHVyZS5kZWZhdWx0T3B0aW9ucyA9IHtcbiAgICBtYWdGaWx0ZXI6IFRleHR1cmUuTGluZWFyRmlsdGVyLFxuICAgIG1pbkZpbHRlcjogVGV4dHVyZS5MaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIsXG4gICAgd3JhcFM6IFRleHR1cmUuQ2xhbXBUb0VkZ2VXcmFwcGluZyxcbiAgICB3cmFwVDogVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nLFxuICAgIGZvcm1hdDogVGV4dHVyZS5SZ2JhRm9ybWF0LFxuICAgIGdlbmVyYXRlTWlwbWFwczogdHJ1ZSxcbiAgICBmbGlwWTogdHJ1ZSxcbiAgICBwcmVtdWx0aXBseUFscGhhOiB0cnVlLFxuICAgIHR5cGU6IFRleHR1cmUuVW5zaWduZWRCeXRlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgVGV4dHVyZTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7VGV4dHVyZS5OZWFyZXN0RmlsdGVyIHwgVGV4dHVyZS5OZWFyZXN0TWlwTWFwTmVhcmVzdEZpbHRlciB8XG4gKiBUZXh0dXJlLk5lYXJlc3RNaXBNYXBMaW5lYXJGaWx0ZXIgfCBUZXh0dXJlLkxpbmVhckZpbHRlciB8XG4gKiBUZXh0dXJlLkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIgfCBUZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcn0gVGV4dHVyZUZpbHRlclxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1RleHR1cmUuQ2xhbXBUb0VkZ2VXcmFwcGluZ30gVGV4dHVyZUNsYW1wXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VGV4dHVyZS5SZ2JhRm9ybWF0IHwgVGV4dHVyZS5BbHBoYUZvcm1hdH0gVGV4dHVyZUZvcm1hdFxuICovXG5cbi8qKlxuICogQHR5cGVkZWYge1RleHR1cmUuVW5zaWduZWRCeXRlIHwgVGV4dHVyZS5GbG9hdH0gVGV4dHVyZVR5cGVcbiAqL1xuXG4vKipcbiAqINCf0LDRgNCw0LzQtdGC0YDRiyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDRgtC10LrRgdGC0YPRgNGLXG4gKlxuICogQHR5cGVkZWYge09iamVjdH0gVGV4dHVyZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7VGV4dHVyZUZpbHRlcn0gbWFnRmlsdGVyXG4gKiBAcHJvcGVydHkge1RleHR1cmVGaWx0ZXJ9IG1pbkZpbHRlclxuICogQHByb3BlcnR5IHtUZXh0dXJlQ2xhbXB9IHdyYXBTXG4gKiBAcHJvcGVydHkge1RleHR1cmVDbGFtcH0gd3JhcFRcbiAqIEBwcm9wZXJ0eSB7VGV4dHVyZUZvcm1hdH0gZm9ybWF0XG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGdlbmVyYXRlTWlwbWFwc1xuICogQHByb3BlcnR5IHtCb29sZWFufSBmbGlwWVxuICogQHByb3BlcnR5IHtCb29sZWFufSBwcmVtdWx0aXBseUFscGhhXG4gKiBAcHJvcGVydHkgez9OdW1iZXJbXX0gc2l6ZVxuICogQHByb3BlcnR5IHs/TnVtYmVyfSB1bml0XG4gKiBAcHJvcGVydHkgez9UZXh0dXJlVHlwZX0gdHlwZVxuICovXG4iXX0= | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9UZXh0dXJlLmpzIl0sIm5hbWVzIjpbIlRleHR1cmUiLCJjb25zdHJ1Y3RvciIsInNyYyIsIm9wdGlvbnMiLCJfc3JjIiwiT2JqZWN0IiwiYXNzaWduIiwiZGVmYXVsdE9wdGlvbnMiLCJfZ2xDb250ZXh0IiwiZW5hYmxlIiwiZ2wiLCJpbmRleCIsInVuaXQiLCJ1bmRlZmluZWQiLCJhY3RpdmVUZXh0dXJlIiwiVEVYVFVSRTAiLCJfdGV4dHVyZSIsInByZXBhcmUiLCJiaW5kVGV4dHVyZSIsIlRFWFRVUkVfMkQiLCJyZW1vdmUiLCJkZWxldGVUZXh0dXJlIiwiZ2V0VGV4dHVyZSIsInN1YkltYWdlIiwieCIsInkiLCJwaXhlbFN0b3JlaSIsIlVOUEFDS19GTElQX1lfV0VCR0wiLCJmbGlwWSIsIlVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTCIsInByZW11bHRpcGx5QWxwaGEiLCJ0ZXhTdWJJbWFnZTJEIiwiX3RvR2xQYXJhbSIsImZvcm1hdCIsInR5cGUiLCJjcmVhdGVUZXh0dXJlIiwic2l6ZSIsInRleEltYWdlMkQiLCJ0ZXhQYXJhbWV0ZXJpIiwiVEVYVFVSRV9XUkFQX1MiLCJ3cmFwUyIsIlRFWFRVUkVfV1JBUF9UIiwid3JhcFQiLCJURVhUVVJFX01BR19GSUxURVIiLCJtYWdGaWx0ZXIiLCJURVhUVVJFX01JTl9GSUxURVIiLCJtaW5GaWx0ZXIiLCJnZW5lcmF0ZU1pcG1hcHMiLCJOZWFyZXN0RmlsdGVyIiwiTGluZWFyRmlsdGVyIiwiZ2VuZXJhdGVNaXBtYXAiLCJwYXJhbSIsIkNsYW1wVG9FZGdlV3JhcHBpbmciLCJDTEFNUF9UT19FREdFIiwiUmVwZWF0IiwiUkVQRUFUIiwiTWlycm9yZWRSZXBlYXQiLCJNSVJST1JFRF9SRVBFQVQiLCJORUFSRVNUIiwiTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIiLCJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiwiTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciIsIk5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsIkxJTkVBUiIsIkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIiLCJMSU5FQVJfTUlQTUFQX05FQVJFU1QiLCJMaW5lYXJNaXBNYXBMaW5lYXJGaWx0ZXIiLCJMSU5FQVJfTUlQTUFQX0xJTkVBUiIsIlJnYmFGb3JtYXQiLCJSR0JBIiwiQWxwaGFGb3JtYXQiLCJBTFBIQSIsIlJnYkZvcm1hdCIsIlJHQiIsIkRlcHRoQ29tcG9uZW50Rm9ybWF0IiwiREVQVEhfQ09NUE9ORU5UIiwiVW5zaWduZWRCeXRlIiwiVU5TSUdORURfQllURSIsIkZsb2F0IiwiRkxPQVQiLCJVbnNpZ25lZEludCIsIlVOU0lHTkVEX0lOVCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7QUFJQSxNQUFNQSxPQUFOLENBQWM7QUFDVjs7Ozs7QUFLQUMsZ0JBQVlDLEdBQVosRUFBaUJDLFVBQVUsRUFBM0IsRUFBK0I7QUFDM0IsYUFBS0MsSUFBTCxHQUFZRixPQUFPLElBQW5COztBQUVBOzs7OztBQUtBLGFBQUtDLE9BQUwsR0FBZUUsT0FBT0MsTUFBUCxDQUFjLEVBQWQsRUFBa0JOLFFBQVFPLGNBQTFCLEVBQTBDSixPQUExQyxDQUFmOztBQUVBOzs7Ozs7QUFNQSxhQUFLSyxVQUFMLEdBQWtCLElBQWxCO0FBQ0g7O0FBRUQ7Ozs7Ozs7O0FBUUFDLFdBQU9DLEVBQVAsRUFBV0MsS0FBWCxFQUFrQjtBQUNkLGNBQU1DLE9BQU9ELFVBQVVFLFNBQVYsR0FBc0JGLEtBQXRCLEdBQThCLEtBQUtSLE9BQUwsQ0FBYVMsSUFBeEQ7O0FBRUEsWUFBSUEsU0FBU0MsU0FBYixFQUF3QjtBQUNwQkgsZUFBR0ksYUFBSCxDQUFpQkosR0FBR0ssUUFBSCxHQUFjSCxJQUEvQjtBQUNIOztBQUVELFlBQUksQ0FBQyxLQUFLSSxRQUFWLEVBQW9CO0FBQ2hCLGlCQUFLQyxPQUFMLENBQWFQLEVBQWI7QUFDSDs7QUFFREEsV0FBR1EsV0FBSCxDQUFlUixHQUFHUyxVQUFsQixFQUE4QixLQUFLSCxRQUFuQzs7QUFFQSxlQUFPLElBQVA7QUFDSDs7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Q29udGVudCI6WyIvKipcbiAqINCi0LXQutGB0YLRg9GA0Ysg0LjRgdC/0L7Qu9GM0LfRg9GO0YLRgdGPINC00LvRjyDQvtGC0YDQuNGB0L7QstC60Lgg0LjQt9C+0LHRgNCw0LbQtdC90LjQuSDQsiBXZWJHTFxuICovXG5cbmNsYXNzIFRleHR1cmUge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSB7SFRNTEltYWdlRWxlbWVudCB8IEhUTUxDYW52YXNFbGVtZW50IHwgSW1hZ2VCaXRtYXAgfCBJbWFnZURhdGEgfCBUeXBlZEFycmF5fSBbc3JjPW51bGxdINCSINC60LDRh9C10YHRgtCy0LVcbiAgICAgKiDQuNC30L7QsdGA0LDQttC10L3QuNGPINC80L7QttC10YIg0LHRi9GC0Ywg0LvQuNCx0L4g0Y3Qu9C10LzQtdC90YIgaW1nLCDQu9C40LHQviBjYW52YXNcbiAgICAgKiBAcGFyYW0gez9UZXh0dXJlT3B0aW9uc30gb3B0aW9uc1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHNyYywgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHRoaXMuX3NyYyA9IHNyYyB8fCBudWxsO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQn9Cw0YDQsNC80LXRgtGA0Ysg0LTQu9GPINGB0LLRj9C30YvQstCw0L3QuNGPINGC0LXQutGB0YLRg9GA0YtcbiAgICAgICAgICogQHR5cGUge1RleHR1cmVPcHRpb25zfVxuICAgICAgICAgKiBAcmVhZG9ubHlcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIFRleHR1cmUuZGVmYXVsdE9wdGlvbnMsIG9wdGlvbnMpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiDQmtC+0L3RgtC10LrRgdGCIFdlYkdMLCDQsiDQutC+0YLQvtGA0L7QvCDQsdGL0LvQsCDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L3QsCDRgtC10LrRgdGC0YPRgNCwLlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0YLQvtC70YzQutC+INC00LvRjyDRg9C00LDQu9C10L3QuNGPLCDQv9C+0LTRg9C80LDRgtGMINGF0L7RgNC+0YjQviwg0L/RgNC10LbQtNC1INGH0LXQvCDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0Ywg0LTQu9GPINGH0LXQs9C+LdGC0L4g0LXRidGRLlxuICAgICAgICAgKiBAdHlwZSB7P1dlYkdMUmVuZGVyaW5nQ29udGV4dH1cbiAgICAgICAgICogQGlnbm9yZVxuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5fZ2xDb250ZXh0ID0gbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodCy0Y/Qt9GL0LLQsNC10YIgV2ViR0wg0Lgg0LTQsNC90L3Ri9C1INGC0LXQutGB0YLRg9GA0YsuXG4gICAgICog0J/RgNC4INC/0LXRgNCy0L7QvCDQstGL0LfQvtCyINC/0YDQvtC40YHRhdC+0LTQuNGCINC40L3QuNGG0LjQsNC70LjQt9Cw0YbQuNGPLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICogQHBhcmFtIHs/TnVtYmVyfSBpbmRleCDQndC+0LzQtdGAINGC0LXQutGB0YLRg9GA0Ysg0LIg0LrQvtC90YLQtdC60YHRgtC1IFdlYkdMLlxuICAgICAqINCV0YHQu9C4INC10LPQviDQvdC10YIsINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDRg9C20LUg0LDQutGC0LjQstC40YDQvtCy0LDQvdC90YvQuSDRjtC90LjRgiDRgtC10LrRgdGC0YPRgNGLLlxuICAgICAqL1xuICAgIGVuYWJsZShnbCwgaW5kZXgpIHtcbiAgICAgICAgY29uc3QgdW5pdCA9IGluZGV4ICE9PSB1bmRlZmluZWQgPyBpbmRleCA6IHRoaXMub3B0aW9ucy51bml0O1xuXG4gICAgICAgIGlmICh1bml0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGdsLmFjdGl2ZVRleHR1cmUoZ2wuVEVYVFVSRTAgKyB1bml0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fdGV4dHVyZSkge1xuICAgICAgICAgICAgdGhpcy5wcmVwYXJlKGdsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRoaXMuX3RleHR1cmUpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCINGC0LXQutGB0YLRg9GA0YMg0LjQtyDQstC40LTQtdC+0LrQsNGA0YLRi1xuICAgICAqL1xuICAgIHJlbW92ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3RleHR1cmUpIHtcbiAgICAgICAgICAgIHRoaXMuX2dsQ29udGV4dC5kZWxldGVUZXh0dXJlKHRoaXMuX3RleHR1cmUpO1xuICAgICAgICAgICAgdGhpcy5fZ2xDb250ZXh0ID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX3RleHR1cmUgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0JLQvtC30LLRgNCw0YnQsNC10YIgV2ViR0wg0YLQtdC60YHRgtGD0YDRg1xuICAgICAqIEByZXR1cm4ge1dlYkdMVGV4dHVyZX1cbiAgICAgKi9cbiAgICBnZXRUZXh0dXJlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGV4dHVyZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntCx0L3QvtCy0LvRj9C10YIg0YfQsNGB0YLRjCDRgtC10LrRgdGC0YPRgNGLXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1dlYkdMUmVuZGVyaW5nQ29udGV4dH0gZ2xcbiAgICAgKiBAcGFyYW0ge0hUTUxJbWFnZUVsZW1lbnQgfCBIVE1MQ2FudmFzRWxlbWVudCB8IEltYWdlQml0bWFwIHwgSW1hZ2VEYXRhIHwgVHlwZWRBcnJheX0gc3JjXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IHgg0JPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtSDRgdC80LXRidC10L3QuNC1LCDRgSDQutC+0YLQvtGA0L7Qs9C+INC30LDQv9C40YHRi9Cy0LDQtdC8INCyINGC0LXQutGB0YLRg9GA0YNcbiAgICAgKiBAcGFyYW0ge251bWJlcn0geSDQktC10YDRgtC40LrQsNC70YzQvdC+0LUg0YHQvNC10YnQtdC90LjQtSwg0YEg0LrQvtGC0L7RgNC+0LPQviDQt9Cw0L/QuNGB0YvQstCw0LXQvCDQsiDRgtC10LrRgdGC0YPRgNGDXG4gICAgICovXG4gICAgc3ViSW1hZ2UoZ2wsIHNyYywgeCwgeSkge1xuICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdGhpcy5vcHRpb25zLmZsaXBZKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0aGlzLm9wdGlvbnMucHJlbXVsdGlwbHlBbHBoYSk7XG5cbiAgICAgICAgZ2wudGV4U3ViSW1hZ2UyRChcbiAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgeCwgeSxcbiAgICAgICAgICAgIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy5vcHRpb25zLmZvcm1hdCksXG4gICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy50eXBlKSxcbiAgICAgICAgICAgIHNyY1xuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCa0LvQsNC00ZHRgiDRgtC10LrRgdGC0YPRgNGDINCyINCy0LjQtNC10L7QutCw0YDRgtGDXG4gICAgICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsXG4gICAgICovXG4gICAgcHJlcGFyZShnbCkge1xuICAgICAgICB0aGlzLl9nbENvbnRleHQgPSBnbDtcbiAgICAgICAgdGhpcy5fdGV4dHVyZSA9IGdsLmNyZWF0ZVRleHR1cmUoKTtcblxuICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0aGlzLl90ZXh0dXJlKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX0ZMSVBfWV9XRUJHTCwgdGhpcy5vcHRpb25zLmZsaXBZKTtcbiAgICAgICAgZ2wucGl4ZWxTdG9yZWkoZ2wuVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMLCB0aGlzLm9wdGlvbnMucHJlbXVsdGlwbHlBbHBoYSk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5zaXplKSB7XG4gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKFxuICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5mb3JtYXQpLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zaXplWzBdLFxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5zaXplWzFdLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMuZm9ybWF0KSxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy50eXBlKSxcbiAgICAgICAgICAgICAgICB0aGlzLl9zcmNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKFxuICAgICAgICAgICAgICAgIGdsLlRFWFRVUkVfMkQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5mb3JtYXQpLFxuICAgICAgICAgICAgICAgIHRoaXMuX3RvR2xQYXJhbShnbCwgdGhpcy5vcHRpb25zLmZvcm1hdCksXG4gICAgICAgICAgICAgICAgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMudHlwZSksXG4gICAgICAgICAgICAgICAgdGhpcy5fc3JjXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfUywgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMud3JhcFMpKTtcbiAgICAgICAgZ2wudGV4UGFyYW1ldGVyaShnbC5URVhUVVJFXzJELCBnbC5URVhUVVJFX1dSQVBfVCwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMud3JhcFQpKTtcblxuICAgICAgICBnbC50ZXhQYXJhbWV0ZXJpKGdsLlRFWFRVUkVfMkQsIGdsLlRFWFRVUkVfTUFHX0ZJTFRFUiwgdGhpcy5fdG9HbFBhcmFtKGdsLCB0aGlzLm9wdGlvbnMubWFnRmlsdGVyKSk7XG4gICAgICAgIGdsLnRleFBhcmFtZXRlcmkoZ2wuVEVYVFVSRV8yRCwgZ2wuVEVYVFVSRV9NSU5fRklMVEVSLCB0aGlzLl90b0dsUGFyYW0oZ2wsIHRoaXMub3B0aW9ucy5taW5GaWx0ZXIpKTtcblxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmdlbmVyYXRlTWlwbWFwcyAmJlxuICAgICAgICAgICAgdGhpcy5vcHRpb25zLm1pbkZpbHRlciAhPT0gVGV4dHVyZS5OZWFyZXN0RmlsdGVyICYmXG4gICAgICAgICAgICB0aGlzLm9wdGlvbnMubWluRmlsdGVyICE9PSBUZXh0dXJlLkxpbmVhckZpbHRlclxuICAgICAgICApIHtcbiAgICAgICAgICAgIGdsLmdlbmVyYXRlTWlwbWFwKGdsLlRFWFRVUkVfMkQpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgbnVsbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgX3RvR2xQYXJhbShnbCwgcGFyYW0pIHtcbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmcpIHsgcmV0dXJuIGdsLkNMQU1QX1RPX0VER0U7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLlJlcGVhdCkgeyByZXR1cm4gZ2wuUkVQRUFUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5NaXJyb3JlZFJlcGVhdCkgeyByZXR1cm4gZ2wuTUlSUk9SRURfUkVQRUFUOyB9XG5cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLk5FQVJFU1Q7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9ORUFSRVNUOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5ORUFSRVNUX01JUE1BUF9MSU5FQVI7IH1cblxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVI7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkxpbmVhck1pcE1hcE5lYXJlc3RGaWx0ZXIpIHsgcmV0dXJuIGdsLkxJTkVBUl9NSVBNQVBfTkVBUkVTVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyKSB7IHJldHVybiBnbC5MSU5FQVJfTUlQTUFQX0xJTkVBUjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuUmdiYUZvcm1hdCkgeyByZXR1cm4gZ2wuUkdCQTsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuQWxwaGFGb3JtYXQpIHsgcmV0dXJuIGdsLkFMUEhBOyB9XG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5SZ2JGb3JtYXQpIHsgcmV0dXJuIGdsLlJHQjsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuRGVwdGhDb21wb25lbnRGb3JtYXQpIHsgcmV0dXJuIGdsLkRFUFRIX0NPTVBPTkVOVDsgfVxuXG4gICAgICAgIGlmIChwYXJhbSA9PT0gVGV4dHVyZS5VbnNpZ25lZEJ5dGUpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0JZVEU7IH1cbiAgICAgICAgaWYgKHBhcmFtID09PSBUZXh0dXJlLkZsb2F0KSB7IHJldHVybiBnbC5GTE9BVDsgfVxuICAgICAgICBpZiAocGFyYW0gPT09IFRleHR1cmUuVW5zaWduZWRJbnQpIHsgcmV0dXJuIGdsLlVOU0lHTkVEX0lOVDsgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nID0gODtcblRleHR1cmUuUmVwZWF0ID0gOTtcblRleHR1cmUuTWlycm9yZWRSZXBlYXQgPSAxMDtcblxuVGV4dHVyZS5OZWFyZXN0RmlsdGVyID0gMTtcblRleHR1cmUuTmVhcmVzdE1pcE1hcE5lYXJlc3RGaWx0ZXIgPSAyO1xuVGV4dHVyZS5OZWFyZXN0TWlwTWFwTGluZWFyRmlsdGVyID0gMztcblRleHR1cmUuTGluZWFyRmlsdGVyID0gNDtcblRleHR1cmUuTGluZWFyTWlwTWFwTmVhcmVzdEZpbHRlciA9IDU7XG5UZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlciA9IDY7XG5cblRleHR1cmUuRGVwdGhDb21wb25lbnRGb3JtYXQgPSA3O1xuVGV4dHVyZS5SZ2JhRm9ybWF0ID0gMTE7XG5UZXh0dXJlLkFscGhhRm9ybWF0ID0gMTI7XG5UZXh0dXJlLlJnYkZvcm1hdCA9IDEzO1xuXG5UZXh0dXJlLlVuc2lnbmVkQnl0ZSA9IDE0O1xuVGV4dHVyZS5GbG9hdCA9IDE1O1xuVGV4dHVyZS5VbnNpZ25lZEludCA9IDE2O1xuXG5UZXh0dXJlLmRlZmF1bHRPcHRpb25zID0ge1xuICAgIG1hZ0ZpbHRlcjogVGV4dHVyZS5MaW5lYXJGaWx0ZXIsXG4gICAgbWluRmlsdGVyOiBUZXh0dXJlLkxpbmVhck1pcE1hcExpbmVhckZpbHRlcixcbiAgICB3cmFwUzogVGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nLFxuICAgIHdyYXBUOiBUZXh0dXJlLkNsYW1wVG9FZGdlV3JhcHBpbmcsXG4gICAgZm9ybWF0OiBUZXh0dXJlLlJnYmFGb3JtYXQsXG4gICAgZ2VuZXJhdGVNaXBtYXBzOiB0cnVlLFxuICAgIGZsaXBZOiB0cnVlLFxuICAgIHByZW11bHRpcGx5QWxwaGE6IHRydWUsXG4gICAgdHlwZTogVGV4dHVyZS5VbnNpZ25lZEJ5dGUsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBUZXh0dXJlO1xuXG4vKipcbiAqIEB0eXBlZGVmIHtUZXh0dXJlLk5lYXJlc3RGaWx0ZXIgfCBUZXh0dXJlLk5lYXJlc3RNaXBNYXBOZWFyZXN0RmlsdGVyIHxcbiAqIFRleHR1cmUuTmVhcmVzdE1pcE1hcExpbmVhckZpbHRlciB8IFRleHR1cmUuTGluZWFyRmlsdGVyIHxcbiAqIFRleHR1cmUuTGluZWFyTWlwTWFwTmVhcmVzdEZpbHRlciB8IFRleHR1cmUuTGluZWFyTWlwTWFwTGluZWFyRmlsdGVyfSBUZXh0dXJlRmlsdGVyXG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VGV4dHVyZS5DbGFtcFRvRWRnZVdyYXBwaW5nfSBUZXh0dXJlQ2xhbXBcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtUZXh0dXJlLlJnYmFGb3JtYXQgfCBUZXh0dXJlLkFscGhhRm9ybWF0fSBUZXh0dXJlRm9ybWF0XG4gKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7VGV4dHVyZS5VbnNpZ25lZEJ5dGUgfCBUZXh0dXJlLkZsb2F0fSBUZXh0dXJlVHlwZVxuICovXG5cbi8qKlxuICog0J/QsNGA0LDQvNC10YLRgNGLINGB0LLRj9C30YvQstCw0L3QuNGPINGC0LXQutGB0YLRg9GA0YtcbiAqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBUZXh0dXJlT3B0aW9uc1xuICogQHByb3BlcnR5IHtUZXh0dXJlRmlsdGVyfSBtYWdGaWx0ZXJcbiAqIEBwcm9wZXJ0eSB7VGV4dHVyZUZpbHRlcn0gbWluRmlsdGVyXG4gKiBAcHJvcGVydHkge1RleHR1cmVDbGFtcH0gd3JhcFNcbiAqIEBwcm9wZXJ0eSB7VGV4dHVyZUNsYW1wfSB3cmFwVFxuICogQHByb3BlcnR5IHtUZXh0dXJlRm9ybWF0fSBmb3JtYXRcbiAqIEBwcm9wZXJ0eSB7Qm9vbGVhbn0gZ2VuZXJhdGVNaXBtYXBzXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IGZsaXBZXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IHByZW11bHRpcGx5QWxwaGFcbiAqIEBwcm9wZXJ0eSB7P051bWJlcltdfSBzaXplXG4gKiBAcHJvcGVydHkgez9OdW1iZXJ9IHVuaXRcbiAqIEBwcm9wZXJ0eSB7P1RleHR1cmVUeXBlfSB0eXBlXG4gKi9cbiJdfQ== |
13
Vao.js
@@ -94,3 +94,3 @@ /** | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
return gl.createVertexArray(); | ||
@@ -100,2 +100,3 @@ } else if (ext) { | ||
} | ||
return undefined; | ||
} | ||
@@ -106,3 +107,3 @@ | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
gl.bindVertexArray(vao); | ||
@@ -120,3 +121,3 @@ } else if (ext) { | ||
const ext = this._ext; | ||
if (gl instanceof WebGL2RenderingContext) { | ||
if (this._isWebGL2(gl)) { | ||
gl.deleteVertexArray(vao); | ||
@@ -127,5 +128,9 @@ } else if (ext) { | ||
} | ||
_isWebGL2(gl) { | ||
return 'WebGL2RenderingContext' in window && gl instanceof WebGL2RenderingContext; | ||
} | ||
} | ||
export default Vao; | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9WYW8uanMiXSwibmFtZXMiOlsiVmFvIiwiY29uc3RydWN0b3IiLCJzaGFkZXJQcm9ncmFtIiwiYXR0cmlidXRlcyIsIl92YW8iLCJfYXR0cmlidXRlcyIsIl9zaGFkZXJQcm9ncmFtIiwiX2V4dCIsImJpbmQiLCJzdGF0ZSIsImV4dCIsImV4dGVuc2lvbnMiLCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIsIl9iaW5kIiwiZ2wiLCJ1bmJpbmQiLCJfZ2xCaW5kVmVydGV4QXJyYXkiLCJzZXRBdHRyaWJ1dGUiLCJuYW1lIiwiYnVmZmVyIiwicmVtb3ZlIiwiX2dsRGVsZXRlVmVydGV4QXJyYXkiLCJ1bmRlZmluZWQiLCJfcHJlcGFyZSIsIl9nbCIsIl9nbENyZWF0ZVZlcnRleEFycmF5Iiwic2hhZGVyQXR0cmlidXRlcyIsInNoYWRlckF0dHJpYnV0ZSIsImluZGV4IiwiZW5hYmxlVmVydGV4QXR0cmliQXJyYXkiLCJsb2NhdGlvbiIsIldlYkdMMlJlbmRlcmluZ0NvbnRleHQiLCJjcmVhdGVWZXJ0ZXhBcnJheSIsImNyZWF0ZVZlcnRleEFycmF5T0VTIiwidmFvIiwiYmluZFZlcnRleEFycmF5IiwiYmluZFZlcnRleEFycmF5T0VTIiwiZGVsZXRlVmVydGV4QXJyYXkiLCJkZWxldGVWZXJ0ZXhBcnJheU9FUyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztBQVNBLE1BQU1BLEdBQU4sQ0FBVTtBQUNOQyxnQkFBWUMsYUFBWixFQUEyQkMsYUFBYSxFQUF4QyxFQUE0QztBQUN4QyxhQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNBLGFBQUtDLFdBQUwsR0FBbUJGLFVBQW5CO0FBQ0EsYUFBS0csY0FBTCxHQUFzQkosYUFBdEI7O0FBRUE7Ozs7QUFJQSxhQUFLSyxJQUFMLEdBQVksSUFBWjtBQUNIOztBQUVEOzs7OztBQUtBQyxTQUFLQyxLQUFMLEVBQVk7QUFDUixjQUFNQyxNQUFNRCxNQUFNRSxVQUFOLENBQWlCQyx1QkFBN0I7O0FBRUEsYUFBS0MsS0FB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IiwiZmlsZSI6IlZhby5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICog0J7QsdC10YDRgtC60LAg0L3QsNC0IHZlcnRleCBhcnJheSBvYmplY3QuXG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9ydS9kb2NzL1dlYi9BUEkvT0VTX3ZlcnRleF9hcnJheV9vYmplY3RcbiAqXG4gKiDQlNC70Y8g0LjRgdC/0L7Qu9GM0LfQvtCy0LDQvdC40Y8g0L3QtdC+0LHRhdC+0LTQuNC80L4g0LLQutC70Y7Rh9C40YLRjCDRgNCw0YHRiNC40YDQtdC90LjQtSByZW5kZXJlci5hZGRFeHRlbnNpb24oJ09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0JylcbiAqXG4gKiBAcGFyYW0ge1NoYWRlclByb2dyYW19INCo0LXQudC00LXRgNC90LDRjyDQv9GA0L7Qs9GA0LDQvNC80LAsINC60LDQttC00YvQuSBWYW8g0L/RgNC40LLRj9C30LDQvSDQuiDQvtC00L3QvtC5INGI0LXQudC00LXRgNC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80LUuXG4gKiBAcGFyYW0ge09iamVjdH0gS2V5LXZhbHVlINC+0LHRitC10LrRgiDRgdC+0LTQtdGA0LbQsNGJ0LjQuSDQtNCw0L3QvdGL0LUg0LDRgtGA0LjQsdGD0YLQvtCyLlxuICovXG5jbGFzcyBWYW8ge1xuICAgIGNvbnN0cnVjdG9yKHNoYWRlclByb2dyYW0sIGF0dHJpYnV0ZXMgPSB7fSkge1xuICAgICAgICB0aGlzLl92YW8gPSBudWxsO1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzID0gYXR0cmlidXRlcztcbiAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbSA9IHNoYWRlclByb2dyYW07XG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFdlYkdMINGN0LrRgdGC0LXQvdGI0LXQvSwg0LIg0LrQvtGC0L7RgNC+0Lwg0LHRi9C7INC40L3QuNGG0LjQsNC70LjQt9C40YDQvtCy0LDQvSDQsdGD0YTQtdGALlxuICAgICAgICAgKiDQmNGB0L/QvtC70YzQt9GD0LXRgtGB0Y8g0YLQvtC70YzQutC+INC00LvRjyDRg9C00LDQu9C10L3QuNGPIHZhbywg0L/QvtC00YPQvNCw0YLRjCDRhdC+0YDQvtGI0L4sINC/0YDQtdC20LTQtSDRh9C10Lwg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGMINC00LvRjyDRh9C10LPQvi3RgtC+INC10YnRkS5cbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuX2V4dCA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0KHQstGP0LfRi9Cy0LDQtdGCIHZhbyDRgSDQutC+0L3RgtC10LrRgdGC0L7QvCBXZWJHTC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7U3RhdGV9INCh0YLQtdC50YIg0YDQtdC90LTQtdGA0LBcbiAgICAgKi9cbiAgICBiaW5kKHN0YXRlKSB7XG4gICAgICAgIGNvbnN0IGV4dCA9IHN0YXRlLmV4dGVuc2lvbnMuT0VTX3ZlcnRleF9hcnJheV9vYmplY3Q7XG5cbiAgICAgICAgdGhpcy5fYmluZChzdGF0ZS5nbCwgZXh0KTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQntGC0LLRj9C30YvQstCw0LXRgiB2YW8g0L7RgiDQutC+0L3RgtC10LrRgdGC0LAgV2ViR0wuXG4gICAgICog0JLQndCY0JzQkNCd0JjQlTog0K3RgtC+0YIg0LzQtdGC0L7QtCDQvdGD0LbQvdC+INCy0YvQt9GL0LLQsNGC0Ywg0LLRgdC10LPQtNCwLCDQv9C10YDQtdC0INGC0LXQvCDQutCw0Log0LHRg9C00LXRgiDQuNGB0L/QvtC70YzQt9C+0LLQsNGC0YzRgdGPXG4gICAgICog0YHRgtCw0L3QtNCw0YDRgtC90YvQuSDQv9C+0LTRhdC+0LQg0LTQu9GPINGB0LLRj9C30YvQstCw0L3QuNGPINCw0YLRgNC40LHRg9GC0L7QsiDRh9C10YDQtdC3IHtAbGluayBTaGFkZXJQcm9ncmFtI2JpbmR9LlxuICAgICAqL1xuICAgIHVuYmluZCgpIHtcbiAgICAgICAgdGhpcy5fZ2xCaW5kVmVydGV4QXJyYXkobnVsbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc2V0QXR0cmlidXRlKG5hbWUsIGJ1ZmZlcikge1xuICAgICAgICB0aGlzLl9hdHRyaWJ1dGVzW25hbWVdID0gYnVmZmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCj0LTQsNC70Y/QtdGCIHZhby5cbiAgICAgKi9cbiAgICByZW1vdmUoKSB7XG4gICAgICAgIGlmICh0aGlzLl92YW8pIHtcbiAgICAgICAgICAgIHRoaXMuX2dsRGVsZXRlVmVydGV4QXJyYXkodGhpcy5fdmFvKTtcbiAgICAgICAgICAgIHRoaXMuX3ZhbyA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIF9iaW5kKGdsLCBleHQpIHtcbiAgICAgICAgaWYgKCF0aGlzLl92YW8pIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmUoZ2wsIGV4dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9nbEJpbmRWZXJ0ZXhBcnJheSh0aGlzLl92YW8pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX3ByZXBhcmUoZ2wsIGV4dCkge1xuICAgICAgICB0aGlzLl9nbCA9IGdsO1xuICAgICAgICB0aGlzLl9leHQgPSBleHQ7XG4gICAgICAgXG4gICAgICAgIHRoaXMuX3ZhbyA9IHRoaXMuX2dsQ3JlYXRlVmVydGV4QXJyYXkoKTtcbiAgICAgICAgdGhpcy5fZ2xCaW5kVmVydGV4QXJyYXkodGhpcy5fdmFvKTtcblxuICAgICAgICBjb25zdCBzaGFkZXJBdHRyaWJ1dGVzID0gdGhpcy5fc2hhZGVyUHJvZ3JhbS5hdHRyaWJ1dGVzO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5fYXR0cmlidXRlcztcblxuICAgICAgICAvLyDQkdC40L3QtNC40Lwg0LDRgtGA0LjQsdGD0YLRiyDQv9C10YDQtdC00LDQvdC90YvQtSDQsiDQutC+0L3RgdGC0YDRg9C60YLQvtGALCDQuNGFINC/0LDRgNCw0LzQtdGC0YDRiyDQsdC10YDRkdC8INC40Lcg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRi1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgY29uc3Qgc2hhZGVyQXR0cmlidXRlID0gc2hhZGVyQXR0cmlidXRlc1tuYW1lXTtcbiAgICAgICAgICAgIGlmIChzaGFkZXJBdHRyaWJ1dGUuaW5kZXggIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShzaGFkZXJBdHRyaWJ1dGUubG9jYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXR0cmlidXRlc1tuYW1lXS5iaW5kKGdsLCBzaGFkZXJBdHRyaWJ1dGUubG9jYXRpb24sIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIF9nbENyZWF0ZVZlcnRleEFycmF5KCkge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuICAgICAgICBjb25zdCBleHQgPSB0aGlzLl9leHQ7XG4gICAgICAgIGlmIChnbCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBnbC5jcmVhdGVWZXJ0ZXhBcnJheSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dC5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgX2dsQmluZFZlcnRleEFycmF5KHZhbykge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuICAgICAgICBjb25zdCBleHQgPSB0aGlzLl9leHQ7XG4gICAgICAgIGlmIChnbCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIHtcbiAgICAgICAgICAgIGdsLmJpbmRWZXJ0ZXhBcnJheSh2YW8pO1xuICAgICAgICB9IGVsc2UgaWYgKGV4dCkge1xuICAgICAgICAgICAgZXh0LmJpbmRWZXJ0ZXhBcnJheU9FUyh2YW8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8g0JIg0YHQu9GD0YfQsNC1INGE0L7Qu9C70LHQtdC60LAgLSDQsdC40L3QtNC40Lwg0LDRgtGA0LjQsdGD0YLRiyDQv9GA0Y/QvNC+INC40Lcg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRi1xuICAgICAgICAgICAgdGhpcy5fc2hhZGVyUHJvZ3JhbS5iaW5kKGdsLCBudWxsLCB0aGlzLl9hdHRyaWJ1dGVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9nbERlbGV0ZVZlcnRleEFycmF5KHZhbykge1xuICAgICAgICBjb25zdCBnbCA9IHRoaXMuX2dsO1xuICAgICAgICBjb25zdCBleHQgPSB0aGlzLl9leHQ7XG4gICAgICAgIGlmIChnbCBpbnN0YW5jZW9mIFdlYkdMMlJlbmRlcmluZ0NvbnRleHQpIHtcbiAgICAgICAgICAgIGdsLmRlbGV0ZVZlcnRleEFycmF5KHZhbyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXh0KSB7XG4gICAgICAgICAgICBleHQuZGVsZXRlVmVydGV4QXJyYXlPRVModmFvKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFvO1xuIl19 | ||
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9WYW8uanMiXSwibmFtZXMiOlsiVmFvIiwiY29uc3RydWN0b3IiLCJzaGFkZXJQcm9ncmFtIiwiYXR0cmlidXRlcyIsIl92YW8iLCJfYXR0cmlidXRlcyIsIl9zaGFkZXJQcm9ncmFtIiwiX2V4dCIsImJpbmQiLCJzdGF0ZSIsImV4dCIsImV4dGVuc2lvbnMiLCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIsIl9iaW5kIiwiZ2wiLCJ1bmJpbmQiLCJfZ2xCaW5kVmVydGV4QXJyYXkiLCJzZXRBdHRyaWJ1dGUiLCJuYW1lIiwiYnVmZmVyIiwicmVtb3ZlIiwiX2dsRGVsZXRlVmVydGV4QXJyYXkiLCJ1bmRlZmluZWQiLCJfcHJlcGFyZSIsIl9nbCIsIl9nbENyZWF0ZVZlcnRleEFycmF5Iiwic2hhZGVyQXR0cmlidXRlcyIsInNoYWRlckF0dHJpYnV0ZSIsImluZGV4IiwiZW5hYmxlVmVydGV4QXR0cmliQXJyYXkiLCJsb2NhdGlvbiIsIl9pc1dlYkdMMiIsImNyZWF0ZVZlcnRleEFycmF5IiwiY3JlYXRlVmVydGV4QXJyYXlPRVMiLCJ2YW8iLCJiaW5kVmVydGV4QXJyYXkiLCJiaW5kVmVydGV4QXJyYXlPRVMiLCJkZWxldGVWZXJ0ZXhBcnJheSIsImRlbGV0ZVZlcnRleEFycmF5T0VTIiwid2luZG93IiwiV2ViR0wyUmVuZGVyaW5nQ29udGV4dCJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7OztBQVNBLE1BQU1BLEdBQU4sQ0FBVTtBQUNOQyxnQkFBWUMsYUFBWixFQUEyQkMsYUFBYSxFQUF4QyxFQUE0QztBQUN4QyxhQUFLQyxJQUFMLEdBQVksSUFBWjtBQUNBLGFBQUtDLFdBQUwsR0FBbUJGLFVBQW5CO0FBQ0EsYUFBS0csY0FBTCxHQUFzQkosYUFBdEI7O0FBRUE7Ozs7QUFJQSxhQUFLSyxJQUFMLEdBQVksSUFBWjtBQUNIOztBQUVEOzs7OztBQUtBQyxTQUFLQyxLQUFMLEVBQVk7QUFDUixjQUFNQyxNQUFNRCxNQUFNRSxVQUFOLENBQWlCQyx1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QUosRUFBUztBQUNaQSxnQkFBSTRCLG9CQUFKLENBQXlCSixHQUF6QjtBQUNIO0FBQ0o7O0FBRURILGNBQVVqQixFQUFWLEVBQWM7QUFDVixlQUFPLDRCQUE0QnlCLE1BQTVCLElBQXNDekIsY0FBYzBCLHNCQUEzRDtBQUNIO0FBckhLOztBQXdIVixlQUFleEMsR0FBZiIsImZpbGUiOiJWYW8uanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCe0LHQtdGA0YLQutCwINC90LDQtCB2ZXJ0ZXggYXJyYXkgb2JqZWN0LlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvcnUvZG9jcy9XZWIvQVBJL09FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0XG4gKlxuICog0JTQu9GPINC40YHQv9C+0LvRjNC30L7QstCw0L3QuNGPINC90LXQvtCx0YXQvtC00LjQvNC+INCy0LrQu9GO0YfQuNGC0Ywg0YDQsNGB0YjQuNGA0LXQvdC40LUgcmVuZGVyZXIuYWRkRXh0ZW5zaW9uKCdPRVNfdmVydGV4X2FycmF5X29iamVjdCcpXG4gKlxuICogQHBhcmFtIHtTaGFkZXJQcm9ncmFtfSDQqNC10LnQtNC10YDQvdCw0Y8g0L/RgNC+0LPRgNCw0LzQvNCwLCDQutCw0LbQtNGL0LkgVmFvINC/0YDQuNCy0Y/Qt9Cw0L0g0Log0L7QtNC90L7QuSDRiNC10LnQtNC10YDQvdC+0Lkg0L/RgNC+0LPRgNCw0LzQvNC1LlxuICogQHBhcmFtIHtPYmplY3R9IEtleS12YWx1ZSDQvtCx0YrQtdC60YIg0YHQvtC00LXRgNC20LDRidC40Lkg0LTQsNC90L3Ri9C1INCw0YLRgNC40LHRg9GC0L7Qsi5cbiAqL1xuY2xhc3MgVmFvIHtcbiAgICBjb25zdHJ1Y3RvcihzaGFkZXJQcm9ncmFtLCBhdHRyaWJ1dGVzID0ge30pIHtcbiAgICAgICAgdGhpcy5fdmFvID0gbnVsbDtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXM7XG4gICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0gPSBzaGFkZXJQcm9ncmFtO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXZWJHTCDRjdC60YHRgtC10L3RiNC10L0sINCyINC60L7RgtC+0YDQvtC8INCx0YvQuyDQuNC90LjRhtC40LDQu9C40LfQuNGA0L7QstCw0L0g0LHRg9GE0LXRgC5cbiAgICAgICAgICog0JjRgdC/0L7Qu9GM0LfRg9C10YLRgdGPINGC0L7Qu9GM0LrQviDQtNC70Y8g0YPQtNCw0LvQtdC90LjRjyB2YW8sINC/0L7QtNGD0LzQsNGC0Ywg0YXQvtGA0L7RiNC+LCDQv9GA0LXQttC00LUg0YfQtdC8INC40YHQv9C+0LvRjNC30L7QstCw0YLRjCDQtNC70Y8g0YfQtdCz0L4t0YLQviDQtdGJ0ZEuXG4gICAgICAgICAqL1xuICAgICAgICB0aGlzLl9leHQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCh0LLRj9C30YvQstCw0LXRgiB2YW8g0YEg0LrQvtC90YLQtdC60YHRgtC+0LwgV2ViR0wuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge1N0YXRlfSDQodGC0LXQudGCINGA0LXQvdC00LXRgNCwXG4gICAgICovXG4gICAgYmluZChzdGF0ZSkge1xuICAgICAgICBjb25zdCBleHQgPSBzdGF0ZS5leHRlbnNpb25zLk9FU192ZXJ0ZXhfYXJyYXlfb2JqZWN0O1xuXG4gICAgICAgIHRoaXMuX2JpbmQoc3RhdGUuZ2wsIGV4dCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7RgtCy0Y/Qt9GL0LLQsNC10YIgdmFvINC+0YIg0LrQvtC90YLQtdC60YHRgtCwIFdlYkdMLlxuICAgICAqINCS0J3QmNCc0JDQndCY0JU6INCt0YLQvtGCINC80LXRgtC+0LQg0L3Rg9C20L3QviDQstGL0LfRi9Cy0LDRgtGMINCy0YHQtdCz0LTQsCwg0L/QtdGA0LXQtCDRgtC10Lwg0LrQsNC6INCx0YPQtNC10YIg0LjRgdC/0L7Qu9GM0LfQvtCy0LDRgtGM0YHRj1xuICAgICAqINGB0YLQsNC90LTQsNGA0YLQvdGL0Lkg0L/QvtC00YXQvtC0INC00LvRjyDRgdCy0Y/Qt9GL0LLQsNC90LjRjyDQsNGC0YDQuNCx0YPRgtC+0LIg0YfQtdGA0LXQtyB7QGxpbmsgU2hhZGVyUHJvZ3JhbSNiaW5kfS5cbiAgICAgKi9cbiAgICB1bmJpbmQoKSB7XG4gICAgICAgIHRoaXMuX2dsQmluZFZlcnRleEFycmF5KG51bGwpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHNldEF0dHJpYnV0ZShuYW1lLCBidWZmZXIpIHtcbiAgICAgICAgdGhpcy5fYXR0cmlidXRlc1tuYW1lXSA9IGJ1ZmZlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9C00LDQu9GP0LXRgiB2YW8uXG4gICAgICovXG4gICAgcmVtb3ZlKCkge1xuICAgICAgICBpZiAodGhpcy5fdmFvKSB7XG4gICAgICAgICAgICB0aGlzLl9nbERlbGV0ZVZlcnRleEFycmF5KHRoaXMuX3Zhbyk7XG4gICAgICAgICAgICB0aGlzLl92YW8gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBfYmluZChnbCwgZXh0KSB7XG4gICAgICAgIGlmICghdGhpcy5fdmFvKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlKGdsLCBleHQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZ2xCaW5kVmVydGV4QXJyYXkodGhpcy5fdmFvKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIF9wcmVwYXJlKGdsLCBleHQpIHtcbiAgICAgICAgdGhpcy5fZ2wgPSBnbDtcbiAgICAgICAgdGhpcy5fZXh0ID0gZXh0O1xuXG4gICAgICAgIHRoaXMuX3ZhbyA9IHRoaXMuX2dsQ3JlYXRlVmVydGV4QXJyYXkoKTtcbiAgICAgICAgdGhpcy5fZ2xCaW5kVmVydGV4QXJyYXkodGhpcy5fdmFvKTtcblxuICAgICAgICBjb25zdCBzaGFkZXJBdHRyaWJ1dGVzID0gdGhpcy5fc2hhZGVyUHJvZ3JhbS5hdHRyaWJ1dGVzO1xuICAgICAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5fYXR0cmlidXRlcztcblxuICAgICAgICAvLyDQkdC40L3QtNC40Lwg0LDRgtGA0LjQsdGD0YLRiyDQv9C10YDQtdC00LDQvdC90YvQtSDQsiDQutC+0L3RgdGC0YDRg9C60YLQvtGALCDQuNGFINC/0LDRgNCw0LzQtdGC0YDRiyDQsdC10YDRkdC8INC40Lcg0YjQtdC50LTQtdGA0L3QvtC5INC/0YDQvtCz0YDQsNC80LzRi1xuICAgICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gYXR0cmlidXRlcykge1xuICAgICAgICAgICAgY29uc3Qgc2hhZGVyQXR0cmlidXRlID0gc2hhZGVyQXR0cmlidXRlc1tuYW1lXTtcbiAgICAgICAgICAgIGlmIChzaGFkZXJBdHRyaWJ1dGUuaW5kZXggIT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBnbC5lbmFibGVWZXJ0ZXhBdHRyaWJBcnJheShzaGFkZXJBdHRyaWJ1dGUubG9jYXRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYXR0cmlidXRlc1tuYW1lXS5iaW5kKGdsLCBzaGFkZXJBdHRyaWJ1dGUubG9jYXRpb24sIHVuZGVmaW5lZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfZ2xDcmVhdGVWZXJ0ZXhBcnJheSgpIHtcbiAgICAgICAgY29uc3QgZ2wgPSB0aGlzLl9nbDtcbiAgICAgICAgY29uc3QgZXh0ID0gdGhpcy5fZXh0O1xuICAgICAgICBpZiAodGhpcy5faXNXZWJHTDIoZ2wpKSB7XG4gICAgICAgICAgICByZXR1cm4gZ2wuY3JlYXRlVmVydGV4QXJyYXkoKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBleHQuY3JlYXRlVmVydGV4QXJyYXlPRVMoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIF9nbEJpbmRWZXJ0ZXhBcnJheSh2YW8pIHtcbiAgICAgICAgY29uc3QgZ2wgPSB0aGlzLl9nbDtcbiAgICAgICAgY29uc3QgZXh0ID0gdGhpcy5fZXh0O1xuICAgICAgICBpZiAodGhpcy5faXNXZWJHTDIoZ2wpKSB7XG4gICAgICAgICAgICBnbC5iaW5kVmVydGV4QXJyYXkodmFvKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHQpIHtcbiAgICAgICAgICAgIGV4dC5iaW5kVmVydGV4QXJyYXlPRVModmFvKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vINCSINGB0LvRg9GH0LDQtSDRhNC+0LvQu9Cx0LXQutCwIC0g0LHQuNC90LTQuNC8INCw0YLRgNC40LHRg9GC0Ysg0L/RgNGP0LzQviDQuNC3INGI0LXQudC00LXRgNC90L7QuSDQv9GA0L7Qs9GA0LDQvNC80YtcbiAgICAgICAgICAgIHRoaXMuX3NoYWRlclByb2dyYW0uYmluZChnbCwgbnVsbCwgdGhpcy5fYXR0cmlidXRlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfZ2xEZWxldGVWZXJ0ZXhBcnJheSh2YW8pIHtcbiAgICAgICAgY29uc3QgZ2wgPSB0aGlzLl9nbDtcbiAgICAgICAgY29uc3QgZXh0ID0gdGhpcy5fZXh0O1xuICAgICAgICBpZiAodGhpcy5faXNXZWJHTDIoZ2wpKSB7XG4gICAgICAgICAgICBnbC5kZWxldGVWZXJ0ZXhBcnJheSh2YW8pO1xuICAgICAgICB9IGVsc2UgaWYgKGV4dCkge1xuICAgICAgICAgICAgZXh0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHZhbyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBfaXNXZWJHTDIoZ2wpIHtcbiAgICAgICAgcmV0dXJuICdXZWJHTDJSZW5kZXJpbmdDb250ZXh0JyBpbiB3aW5kb3cgJiYgZ2wgaW5zdGFuY2VvZiBXZWJHTDJSZW5kZXJpbmdDb250ZXh0O1xuICAgIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgVmFvO1xuIl19 |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
8276
1572470
123