Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shift-reducer

Package Overview
Dependencies
Maintainers
3
Versions
24
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shift-reducer - npm Package Compare versions

Comparing version 1.0.2 to 1.0.3

3

lib/index.js

@@ -71,2 +71,3 @@ "use strict";

LiteralNullExpression: [],
LiteralInfinityExpression: [],
LiteralNumericExpression: [],

@@ -123,2 +124,2 @@ LiteralRegExpExpression: [],

exports["default"] = reduce;
//# sourceMappingURL=data:application/json;base64,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S1IsQ0FBQztBQUpsQixVQUFHLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLGtCQUFTO0FBQ3RELFVBQUksb0JBQW9CLEdBQUcsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUN4QyxPQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBUyxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQzdCLGVBQU8sT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FDL0QsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFDLENBQUM7aUJBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7U0FBQSxDQUFDLENBQzdDLENBQUMsQ0FBQztPQUNKLENBQUM7T0FGZSxDQUFDOzs7R0FHbkI7QUFDRCxTQUFPLENBQUMsQ0FBQztDQUNWLEVBQUUsQ0FBQyxDQUFDOzs7QUFHVSxTQUFTLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFO0FBQ2pELFNBQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7Q0FDbkQ7cUJBRnVCLE1BQU0iLCJmaWxlIjoic3JjL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNCBTaGFwZSBTZWN1cml0eSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIilcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIFNoaWZ0IGZyb20gXCJzaGlmdC1hc3RcIlxuaW1wb3J0IE1vbm9pZGFsUmVkdWNlciBmcm9tIFwiLi9tb25vaWRhbC1yZWR1Y2VyXCJcbmV4cG9ydCB7TW9ub2lkYWxSZWR1Y2VyfTtcblxuXG5mdW5jdGlvbiByZWN1cnNlKGJyYW5jaCkge1xuICByZXR1cm4gZnVuY3Rpb24ocmVkdWNlciwgbm9kZSkge1xuICAgIGxldCBicmFuY2hOb2RlID0gbm9kZVticmFuY2hdO1xuICAgIHJldHVybiBEUklWRVJbYnJhbmNoTm9kZS50eXBlXShyZWR1Y2VyLCBicmFuY2hOb2RlKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVjdXJzZU1heWJlKGJyYW5jaCkge1xuICByZXR1cm4gZnVuY3Rpb24ocmVkdWNlciwgbm9kZSkge1xuICAgIGxldCBicmFuY2hOb2RlID0gbm9kZVticmFuY2hdO1xuICAgIGlmIChicmFuY2hOb2RlID09IG51bGwpIHJldHVybiBudWxsO1xuICAgIHJldHVybiBEUklWRVJbYnJhbmNoTm9kZS50eXBlXShyZWR1Y2VyLCBicmFuY2hOb2RlKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVjdXJzZUxpc3QoYnJhbmNoKSB7XG4gIHJldHVybiBmdW5jdGlvbihyZWR1Y2VyLCBub2RlKSB7XG4gICAgcmV0dXJuIFtdLm1hcC5jYWxsKG5vZGVbYnJhbmNoXSwgKG4pID0+IERSSVZFUltuLnR5cGVdKHJlZHVjZXIsIG4pKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gcmVjdXJzZUxpc3RNYXliZShicmFuY2gpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHJlZHVjZXIsIG5vZGUpIHtcbiAgICByZXR1cm4gW10ubWFwLmNhbGwobm9kZVticmFuY2hdLCAobikgPT4ge1xuICAgICAgaWYgKG4gPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgICByZXR1cm4gRFJJVkVSW24udHlwZV0ocmVkdWNlciwgbik7XG4gICAgfSk7XG4gIH07XG59XG5cbmNvbnN0IFJFRFVDRVJfU1BFQyA9IHtcbiAgQXJyYXlFeHByZXNzaW9uOiBbcmVjdXJzZUxpc3RNYXliZSgnZWxlbWVudHMnKV0sXG4gIEFzc2lnbm1lbnRFeHByZXNzaW9uOiBbcmVjdXJzZSgnYmluZGluZycpLCByZWN1cnNlKCdleHByZXNzaW9uJyldLFxuICBCaW5hcnlFeHByZXNzaW9uOiBbcmVjdXJzZSgnbGVmdCcpLCByZWN1cnNlKCdyaWdodCcpXSxcbiAgQmxvY2s6IFtyZWN1cnNlTGlzdCgnc3RhdGVtZW50cycpXSxcbiAgQmxvY2tTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdibG9jaycpXSxcbiAgQnJlYWtTdGF0ZW1lbnQ6IFtyZWN1cnNlTWF5YmUoJ2xhYmVsJyldLFxuICBDYWxsRXhwcmVzc2lvbjogW3JlY3Vyc2UoJ2NhbGxlZScpLCByZWN1cnNlTGlzdCgnYXJndW1lbnRzJyldLFxuICBDYXRjaENsYXVzZTogW3JlY3Vyc2UoJ2JpbmRpbmcnKSwgcmVjdXJzZSgnYm9keScpXSxcbiAgQ29tcHV0ZWRNZW1iZXJFeHByZXNzaW9uOiBbcmVjdXJzZSgnb2JqZWN0JyksIHJlY3Vyc2UoJ2V4cHJlc3Npb24nKV0sXG4gIENvbmRpdGlvbmFsRXhwcmVzc2lvbjogW3JlY3Vyc2UoJ3Rlc3QnKSwgcmVjdXJzZSgnY29uc2VxdWVudCcpLCByZWN1cnNlKCdhbHRlcm5hdGUnKV0sXG4gIENvbnRpbnVlU3RhdGVtZW50OiBbcmVjdXJzZU1heWJlKCdsYWJlbCcpXSxcbiAgRGF0YVByb3BlcnR5OiBbcmVjdXJzZSgnbmFtZScpLCByZWN1cnNlKCdleHByZXNzaW9uJyldLFxuICBEZWJ1Z2dlclN0YXRlbWVudDogW10sXG4gIERvV2hpbGVTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdib2R5JyksIHJlY3Vyc2UoJ3Rlc3QnKV0sXG4gIEVtcHR5U3RhdGVtZW50OiBbXSxcbiAgRXhwcmVzc2lvblN0YXRlbWVudDogW3JlY3Vyc2UoJ2V4cHJlc3Npb24nKV0sXG4gIEZvckluU3RhdGVtZW50OiBbcmVjdXJzZSgnbGVmdCcpLCByZWN1cnNlKCdyaWdodCcpLCByZWN1cnNlKCdib2R5JyldLFxuICBGb3JTdGF0ZW1lbnQ6IFtyZWN1cnNlTWF5YmUoJ2luaXQnKSwgcmVjdXJzZU1heWJlKCd0ZXN0JyksIHJlY3Vyc2VNYXliZSgndXBkYXRlJyksIHJlY3Vyc2UoJ2JvZHknKV0sXG4gIEZ1bmN0aW9uQm9keTogW3JlY3Vyc2VMaXN0KCdkaXJlY3RpdmVzJyksIHJlY3Vyc2VMaXN0KCdzdGF0ZW1lbnRzJyldLFxuICBGdW5jdGlvbkRlY2xhcmF0aW9uOiBbcmVjdXJzZSgnbmFtZScpLCByZWN1cnNlTGlzdCgncGFyYW1ldGVycycpLCByZWN1cnNlKCdib2R5JyldLFxuICBGdW5jdGlvbkV4cHJlc3Npb246IFtyZWN1cnNlTWF5YmUoJ25hbWUnKSwgcmVjdXJzZUxpc3QoJ3BhcmFtZXRlcnMnKSwgcmVjdXJzZSgnYm9keScpXSxcbiAgR2V0dGVyOiBbcmVjdXJzZSgnbmFtZScpLCByZWN1cnNlKCdib2R5JyldLFxuICBJZGVudGlmaWVyOiBbXSxcbiAgSWRlbnRpZmllckV4cHJlc3Npb246IFtyZWN1cnNlKCdpZGVudGlmaWVyJyldLFxuICBJZlN0YXRlbWVudDogW3JlY3Vyc2UoJ3Rlc3QnKSwgcmVjdXJzZSgnY29uc2VxdWVudCcpLCByZWN1cnNlTWF5YmUoJ2FsdGVybmF0ZScpXSxcbiAgTGFiZWxlZFN0YXRlbWVudDogW3JlY3Vyc2UoJ2xhYmVsJyksIHJlY3Vyc2UoJ2JvZHknKV0sXG4gIExpdGVyYWxCb29sZWFuRXhwcmVzc2lvbjogW10sXG4gIExpdGVyYWxOdWxsRXhwcmVzc2lvbjogW10sXG4gIExpdGVyYWxOdW1lcmljRXhwcmVzc2lvbjogW10sXG4gIExpdGVyYWxSZWdFeHBFeHByZXNzaW9uOiBbXSxcbiAgTGl0ZXJhbFN0cmluZ0V4cHJlc3Npb246IFtdLFxuICBOZXdFeHByZXNzaW9uOiBbcmVjdXJzZSgnY2FsbGVlJyksIHJlY3Vyc2VMaXN0KCdhcmd1bWVudHMnKV0sXG4gIE9iamVjdEV4cHJlc3Npb246IFtyZWN1cnNlTGlzdCgncHJvcGVydGllcycpXSxcbiAgUG9zdGZpeEV4cHJlc3Npb246IFtyZWN1cnNlKCdvcGVyYW5kJyldLFxuICBQcmVmaXhFeHByZXNzaW9uOiBbcmVjdXJzZSgnb3BlcmFuZCcpXSxcbiAgUHJvcGVydHlOYW1lOiBbXSxcbiAgUmV0dXJuU3RhdGVtZW50OiBbcmVjdXJzZU1heWJlKCdleHByZXNzaW9uJyldLFxuICBTY3JpcHQ6IFtyZWN1cnNlKCdib2R5JyldLFxuICBTZXR0ZXI6IFtyZWN1cnNlKCduYW1lJyksIHJlY3Vyc2UoJ3BhcmFtZXRlcicpLCByZWN1cnNlKCdib2R5JyldLFxuICBTdGF0aWNNZW1iZXJFeHByZXNzaW9uOiBbcmVjdXJzZSgnb2JqZWN0JyksIHJlY3Vyc2UoJ3Byb3BlcnR5JyldLFxuICBTd2l0Y2hDYXNlOiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlTGlzdCgnY29uc2VxdWVudCcpXSxcbiAgU3dpdGNoRGVmYXVsdDogW3JlY3Vyc2VMaXN0KCdjb25zZXF1ZW50JyldLFxuICBTd2l0Y2hTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdkaXNjcmltaW5hbnQnKSwgcmVjdXJzZUxpc3QoJ2Nhc2VzJyldLFxuICBTd2l0Y2hTdGF0ZW1lbnRXaXRoRGVmYXVsdDogW3JlY3Vyc2UoJ2Rpc2NyaW1pbmFudCcpLCByZWN1cnNlTGlzdCgncHJlRGVmYXVsdENhc2VzJyksIHJlY3Vyc2UoJ2RlZmF1bHRDYXNlJyksIHJlY3Vyc2VMaXN0KCdwb3N0RGVmYXVsdENhc2VzJyldLFxuICBUaGlzRXhwcmVzc2lvbjogW10sXG4gIFRocm93U3RhdGVtZW50OiBbcmVjdXJzZSgnZXhwcmVzc2lvbicpXSxcbiAgVHJ5Q2F0Y2hTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdib2R5JyksIHJlY3Vyc2UoJ2NhdGNoQ2xhdXNlJyldLFxuICBUcnlGaW5hbGx5U3RhdGVtZW50OiBbcmVjdXJzZSgnYm9keScpLCByZWN1cnNlTWF5YmUoJ2NhdGNoQ2xhdXNlJyksIHJlY3Vyc2UoJ2ZpbmFsaXplcicpXSxcbiAgVW5rbm93bkRpcmVjdGl2ZTogW10sXG4gIFVzZVN0cmljdERpcmVjdGl2ZTogW10sXG4gIFZhcmlhYmxlRGVjbGFyYXRpb246IFtyZWN1cnNlTGlzdCgnZGVjbGFyYXRvcnMnKV0sXG4gIFZhcmlhYmxlRGVjbGFyYXRpb25TdGF0ZW1lbnQ6IFtyZWN1cnNlKCdkZWNsYXJhdGlvbicpXSxcbiAgVmFyaWFibGVEZWNsYXJhdG9yOiBbcmVjdXJzZSgnYmluZGluZycpLCByZWN1cnNlTWF5YmUoJ2luaXQnKV0sXG4gIFdoaWxlU3RhdGVtZW50OiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlKCdib2R5JyldLFxuICBXaXRoU3RhdGVtZW50OiBbcmVjdXJzZSgnb2JqZWN0JyksIHJlY3Vyc2UoJ2JvZHknKV0sXG59O1xuXG5jb25zdCBEUklWRVIgPSAoZnVuY3Rpb24oKXtcbiAgdmFyIG8gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBmb3IobGV0IFQgaW4gUkVEVUNFUl9TUEVDKSB7XG4gICAgaWYoIXt9Lmhhc093blByb3BlcnR5LmNhbGwoUkVEVUNFUl9TUEVDLCBUKSkgY29udGludWU7XG4gICAgbGV0IHJlZHVjaW5nRnVuY3Rpb25OYW1lID0gJ3JlZHVjZScgKyBUO1xuICAgIG9bVF0gPSBmdW5jdGlvbihyZWR1Y2VyLCBub2RlKSB7XG4gICAgICByZXR1cm4gcmVkdWNlcltyZWR1Y2luZ0Z1bmN0aW9uTmFtZV0uYXBwbHkocmVkdWNlciwgW25vZGVdLmNvbmNhdChcbiAgICAgICAgUkVEVUNFUl9TUEVDW1RdLm1hcCgoZikgPT4gZihyZWR1Y2VyLCBub2RlKSlcbiAgICAgICkpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIG87XG59KCkpO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlZHVjZShyZWR1Y2VyLCByZWR1Y2libGUpIHtcbiAgcmV0dXJuIERSSVZFUltyZWR1Y2libGUudHlwZV0ocmVkdWNlciwgcmVkdWNpYmxlKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,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Q0FBQyxJQUFJLFlBQVksRUFBRTswQkFLUixDQUFDO0FBSmxCLFVBQUcsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLEVBQUUsa0JBQVM7QUFDdEQsVUFBSSxvQkFBb0IsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3hDLE9BQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFTLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDN0IsZUFBTyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUMvRCxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQUMsQ0FBQztpQkFBSyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQztTQUFBLENBQUMsQ0FDN0MsQ0FBQyxDQUFDO09BQ0osQ0FBQztPQUZlLENBQUM7OztHQUduQjtBQUNELFNBQU8sQ0FBQyxDQUFDO0NBQ1YsRUFBRSxDQUFDLENBQUM7OztBQUdVLFNBQVMsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUU7QUFDakQsU0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztDQUNuRDtxQkFGdUIsTUFBTSIsImZpbGUiOiJzcmMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0IFNoYXBlIFNlY3VyaXR5LCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKVxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgU2hpZnQgZnJvbSBcInNoaWZ0LWFzdFwiXG5pbXBvcnQgTW9ub2lkYWxSZWR1Y2VyIGZyb20gXCIuL21vbm9pZGFsLXJlZHVjZXJcIlxuZXhwb3J0IHtNb25vaWRhbFJlZHVjZXJ9O1xuXG5cbmZ1bmN0aW9uIHJlY3Vyc2UoYnJhbmNoKSB7XG4gIHJldHVybiBmdW5jdGlvbihyZWR1Y2VyLCBub2RlKSB7XG4gICAgbGV0IGJyYW5jaE5vZGUgPSBub2RlW2JyYW5jaF07XG4gICAgcmV0dXJuIERSSVZFUlticmFuY2hOb2RlLnR5cGVdKHJlZHVjZXIsIGJyYW5jaE5vZGUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWN1cnNlTWF5YmUoYnJhbmNoKSB7XG4gIHJldHVybiBmdW5jdGlvbihyZWR1Y2VyLCBub2RlKSB7XG4gICAgbGV0IGJyYW5jaE5vZGUgPSBub2RlW2JyYW5jaF07XG4gICAgaWYgKGJyYW5jaE5vZGUgPT0gbnVsbCkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIERSSVZFUlticmFuY2hOb2RlLnR5cGVdKHJlZHVjZXIsIGJyYW5jaE5vZGUpO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWN1cnNlTGlzdChicmFuY2gpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHJlZHVjZXIsIG5vZGUpIHtcbiAgICByZXR1cm4gW10ubWFwLmNhbGwobm9kZVticmFuY2hdLCAobikgPT4gRFJJVkVSW24udHlwZV0ocmVkdWNlciwgbikpO1xuICB9O1xufVxuXG5mdW5jdGlvbiByZWN1cnNlTGlzdE1heWJlKGJyYW5jaCkge1xuICByZXR1cm4gZnVuY3Rpb24ocmVkdWNlciwgbm9kZSkge1xuICAgIHJldHVybiBbXS5tYXAuY2FsbChub2RlW2JyYW5jaF0sIChuKSA9PiB7XG4gICAgICBpZiAobiA9PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgIHJldHVybiBEUklWRVJbbi50eXBlXShyZWR1Y2VyLCBuKTtcbiAgICB9KTtcbiAgfTtcbn1cblxuY29uc3QgUkVEVUNFUl9TUEVDID0ge1xuICBBcnJheUV4cHJlc3Npb246IFtyZWN1cnNlTGlzdE1heWJlKCdlbGVtZW50cycpXSxcbiAgQXNzaWdubWVudEV4cHJlc3Npb246IFtyZWN1cnNlKCdiaW5kaW5nJyksIHJlY3Vyc2UoJ2V4cHJlc3Npb24nKV0sXG4gIEJpbmFyeUV4cHJlc3Npb246IFtyZWN1cnNlKCdsZWZ0JyksIHJlY3Vyc2UoJ3JpZ2h0JyldLFxuICBCbG9jazogW3JlY3Vyc2VMaXN0KCdzdGF0ZW1lbnRzJyldLFxuICBCbG9ja1N0YXRlbWVudDogW3JlY3Vyc2UoJ2Jsb2NrJyldLFxuICBCcmVha1N0YXRlbWVudDogW3JlY3Vyc2VNYXliZSgnbGFiZWwnKV0sXG4gIENhbGxFeHByZXNzaW9uOiBbcmVjdXJzZSgnY2FsbGVlJyksIHJlY3Vyc2VMaXN0KCdhcmd1bWVudHMnKV0sXG4gIENhdGNoQ2xhdXNlOiBbcmVjdXJzZSgnYmluZGluZycpLCByZWN1cnNlKCdib2R5JyldLFxuICBDb21wdXRlZE1lbWJlckV4cHJlc3Npb246IFtyZWN1cnNlKCdvYmplY3QnKSwgcmVjdXJzZSgnZXhwcmVzc2lvbicpXSxcbiAgQ29uZGl0aW9uYWxFeHByZXNzaW9uOiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlKCdjb25zZXF1ZW50JyksIHJlY3Vyc2UoJ2FsdGVybmF0ZScpXSxcbiAgQ29udGludWVTdGF0ZW1lbnQ6IFtyZWN1cnNlTWF5YmUoJ2xhYmVsJyldLFxuICBEYXRhUHJvcGVydHk6IFtyZWN1cnNlKCduYW1lJyksIHJlY3Vyc2UoJ2V4cHJlc3Npb24nKV0sXG4gIERlYnVnZ2VyU3RhdGVtZW50OiBbXSxcbiAgRG9XaGlsZVN0YXRlbWVudDogW3JlY3Vyc2UoJ2JvZHknKSwgcmVjdXJzZSgndGVzdCcpXSxcbiAgRW1wdHlTdGF0ZW1lbnQ6IFtdLFxuICBFeHByZXNzaW9uU3RhdGVtZW50OiBbcmVjdXJzZSgnZXhwcmVzc2lvbicpXSxcbiAgRm9ySW5TdGF0ZW1lbnQ6IFtyZWN1cnNlKCdsZWZ0JyksIHJlY3Vyc2UoJ3JpZ2h0JyksIHJlY3Vyc2UoJ2JvZHknKV0sXG4gIEZvclN0YXRlbWVudDogW3JlY3Vyc2VNYXliZSgnaW5pdCcpLCByZWN1cnNlTWF5YmUoJ3Rlc3QnKSwgcmVjdXJzZU1heWJlKCd1cGRhdGUnKSwgcmVjdXJzZSgnYm9keScpXSxcbiAgRnVuY3Rpb25Cb2R5OiBbcmVjdXJzZUxpc3QoJ2RpcmVjdGl2ZXMnKSwgcmVjdXJzZUxpc3QoJ3N0YXRlbWVudHMnKV0sXG4gIEZ1bmN0aW9uRGVjbGFyYXRpb246IFtyZWN1cnNlKCduYW1lJyksIHJlY3Vyc2VMaXN0KCdwYXJhbWV0ZXJzJyksIHJlY3Vyc2UoJ2JvZHknKV0sXG4gIEZ1bmN0aW9uRXhwcmVzc2lvbjogW3JlY3Vyc2VNYXliZSgnbmFtZScpLCByZWN1cnNlTGlzdCgncGFyYW1ldGVycycpLCByZWN1cnNlKCdib2R5JyldLFxuICBHZXR0ZXI6IFtyZWN1cnNlKCduYW1lJyksIHJlY3Vyc2UoJ2JvZHknKV0sXG4gIElkZW50aWZpZXI6IFtdLFxuICBJZGVudGlmaWVyRXhwcmVzc2lvbjogW3JlY3Vyc2UoJ2lkZW50aWZpZXInKV0sXG4gIElmU3RhdGVtZW50OiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlKCdjb25zZXF1ZW50JyksIHJlY3Vyc2VNYXliZSgnYWx0ZXJuYXRlJyldLFxuICBMYWJlbGVkU3RhdGVtZW50OiBbcmVjdXJzZSgnbGFiZWwnKSwgcmVjdXJzZSgnYm9keScpXSxcbiAgTGl0ZXJhbEJvb2xlYW5FeHByZXNzaW9uOiBbXSxcbiAgTGl0ZXJhbE51bGxFeHByZXNzaW9uOiBbXSxcbiAgTGl0ZXJhbEluZmluaXR5RXhwcmVzc2lvbjogW10sXG4gIExpdGVyYWxOdW1lcmljRXhwcmVzc2lvbjogW10sXG4gIExpdGVyYWxSZWdFeHBFeHByZXNzaW9uOiBbXSxcbiAgTGl0ZXJhbFN0cmluZ0V4cHJlc3Npb246IFtdLFxuICBOZXdFeHByZXNzaW9uOiBbcmVjdXJzZSgnY2FsbGVlJyksIHJlY3Vyc2VMaXN0KCdhcmd1bWVudHMnKV0sXG4gIE9iamVjdEV4cHJlc3Npb246IFtyZWN1cnNlTGlzdCgncHJvcGVydGllcycpXSxcbiAgUG9zdGZpeEV4cHJlc3Npb246IFtyZWN1cnNlKCdvcGVyYW5kJyldLFxuICBQcmVmaXhFeHByZXNzaW9uOiBbcmVjdXJzZSgnb3BlcmFuZCcpXSxcbiAgUHJvcGVydHlOYW1lOiBbXSxcbiAgUmV0dXJuU3RhdGVtZW50OiBbcmVjdXJzZU1heWJlKCdleHByZXNzaW9uJyldLFxuICBTY3JpcHQ6IFtyZWN1cnNlKCdib2R5JyldLFxuICBTZXR0ZXI6IFtyZWN1cnNlKCduYW1lJyksIHJlY3Vyc2UoJ3BhcmFtZXRlcicpLCByZWN1cnNlKCdib2R5JyldLFxuICBTdGF0aWNNZW1iZXJFeHByZXNzaW9uOiBbcmVjdXJzZSgnb2JqZWN0JyksIHJlY3Vyc2UoJ3Byb3BlcnR5JyldLFxuICBTd2l0Y2hDYXNlOiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlTGlzdCgnY29uc2VxdWVudCcpXSxcbiAgU3dpdGNoRGVmYXVsdDogW3JlY3Vyc2VMaXN0KCdjb25zZXF1ZW50JyldLFxuICBTd2l0Y2hTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdkaXNjcmltaW5hbnQnKSwgcmVjdXJzZUxpc3QoJ2Nhc2VzJyldLFxuICBTd2l0Y2hTdGF0ZW1lbnRXaXRoRGVmYXVsdDogW3JlY3Vyc2UoJ2Rpc2NyaW1pbmFudCcpLCByZWN1cnNlTGlzdCgncHJlRGVmYXVsdENhc2VzJyksIHJlY3Vyc2UoJ2RlZmF1bHRDYXNlJyksIHJlY3Vyc2VMaXN0KCdwb3N0RGVmYXVsdENhc2VzJyldLFxuICBUaGlzRXhwcmVzc2lvbjogW10sXG4gIFRocm93U3RhdGVtZW50OiBbcmVjdXJzZSgnZXhwcmVzc2lvbicpXSxcbiAgVHJ5Q2F0Y2hTdGF0ZW1lbnQ6IFtyZWN1cnNlKCdib2R5JyksIHJlY3Vyc2UoJ2NhdGNoQ2xhdXNlJyldLFxuICBUcnlGaW5hbGx5U3RhdGVtZW50OiBbcmVjdXJzZSgnYm9keScpLCByZWN1cnNlTWF5YmUoJ2NhdGNoQ2xhdXNlJyksIHJlY3Vyc2UoJ2ZpbmFsaXplcicpXSxcbiAgVW5rbm93bkRpcmVjdGl2ZTogW10sXG4gIFVzZVN0cmljdERpcmVjdGl2ZTogW10sXG4gIFZhcmlhYmxlRGVjbGFyYXRpb246IFtyZWN1cnNlTGlzdCgnZGVjbGFyYXRvcnMnKV0sXG4gIFZhcmlhYmxlRGVjbGFyYXRpb25TdGF0ZW1lbnQ6IFtyZWN1cnNlKCdkZWNsYXJhdGlvbicpXSxcbiAgVmFyaWFibGVEZWNsYXJhdG9yOiBbcmVjdXJzZSgnYmluZGluZycpLCByZWN1cnNlTWF5YmUoJ2luaXQnKV0sXG4gIFdoaWxlU3RhdGVtZW50OiBbcmVjdXJzZSgndGVzdCcpLCByZWN1cnNlKCdib2R5JyldLFxuICBXaXRoU3RhdGVtZW50OiBbcmVjdXJzZSgnb2JqZWN0JyksIHJlY3Vyc2UoJ2JvZHknKV0sXG59O1xuXG5jb25zdCBEUklWRVIgPSAoZnVuY3Rpb24oKXtcbiAgdmFyIG8gPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICBmb3IobGV0IFQgaW4gUkVEVUNFUl9TUEVDKSB7XG4gICAgaWYoIXt9Lmhhc093blByb3BlcnR5LmNhbGwoUkVEVUNFUl9TUEVDLCBUKSkgY29udGludWU7XG4gICAgbGV0IHJlZHVjaW5nRnVuY3Rpb25OYW1lID0gJ3JlZHVjZScgKyBUO1xuICAgIG9bVF0gPSBmdW5jdGlvbihyZWR1Y2VyLCBub2RlKSB7XG4gICAgICByZXR1cm4gcmVkdWNlcltyZWR1Y2luZ0Z1bmN0aW9uTmFtZV0uYXBwbHkocmVkdWNlciwgW25vZGVdLmNvbmNhdChcbiAgICAgICAgUkVEVUNFUl9TUEVDW1RdLm1hcCgoZikgPT4gZihyZWR1Y2VyLCBub2RlKSlcbiAgICAgICkpO1xuICAgIH07XG4gIH1cbiAgcmV0dXJuIG87XG59KCkpO1xuXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlZHVjZShyZWR1Y2VyLCByZWR1Y2libGUpIHtcbiAgcmV0dXJuIERSSVZFUltyZWR1Y2libGUudHlwZV0ocmVkdWNlciwgcmVkdWNpYmxlKTtcbn1cbiJdfQ==

@@ -145,2 +145,6 @@ "use strict";

MonoidalReducer.prototype.reduceLiteralInfinityExpression = function (node) {
return this.identity;
};
MonoidalReducer.prototype.reduceLiteralNumericExpression = function (node) {

@@ -258,2 +262,2 @@ return this.identity;

exports["default"] = MonoidalReducer;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb25vaWRhbC1yZWR1Y2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0lBZ0JxQixlQUFlO01BQWYsZUFBZSxHQUN2QixTQURRLGVBQWUsQ0FDdEIsTUFBTSxFQUFFO0FBQ2xCLFFBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQy9CLFFBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMxRSxRQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBQyxDQUFDLEVBQUUsQ0FBQzthQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUFBLENBQUM7R0FDMUQ7O0FBTGtCLGlCQUFlLFdBT2xDLFFBQVEsR0FBQSxVQUFDLENBQUMsRUFBRTtBQUNWLFdBQU8sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztHQUN0Qzs7QUFUa0IsaUJBQWUsV0FVbEMsT0FBTyxHQUFBLFVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDZixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7R0FDMUM7O0FBWmtCLGlCQUFlLFdBYWxDLE9BQU8sR0FBQSxVQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNsQixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0dBQzlDOztBQWZrQixpQkFBZSxXQWdCbEMsSUFBSSxHQUFBLFVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTs7QUFDVixXQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsQ0FBQzthQUFLLE1BQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7S0FBQSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztHQUNwRjs7QUFsQmtCLGlCQUFlLFdBb0JsQyxxQkFBcUIsR0FBQSxVQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDO2FBQUssQ0FBQyxJQUFJLElBQUk7S0FBQSxDQUFDLENBQUMsQ0FBQztHQUNyRDs7QUF0QmtCLGlCQUFlLFdBdUJsQywwQkFBMEIsR0FBQSxVQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0FBQ3BELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7R0FDekM7O0FBekJrQixpQkFBZSxXQTBCbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN4QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQ2pDOztBQTVCa0IsaUJBQWUsV0E2QmxDLFdBQVcsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDNUIsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0dBQzlCOztBQS9Ca0IsaUJBQWUsV0FnQ2xDLG9CQUFvQixHQUFBLFVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNoQzs7O0FBakNpQixpQkFBZSxXQW1DbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO0FBQ2hDLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUM3Qjs7QUFyQ2tCLGlCQUFlLFdBc0NsQyxvQkFBb0IsR0FBQSxVQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ3ZDLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7R0FDaEM7O0FBeENrQixpQkFBZSxXQXlDbEMsaUJBQWlCLEdBQUEsVUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNyQyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ25DOztBQTNDa0IsaUJBQWUsV0E0Q2xDLDhCQUE4QixHQUFBLFVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7QUFDdkQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztHQUN4Qzs7QUE5Q2tCLGlCQUFlLFdBK0NsQywyQkFBMkIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtBQUM3RCxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztHQUNsRDs7QUFqRGtCLGlCQUFlLFdBa0RsQyx1QkFBdUIsR0FBQSxVQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7QUFDbkMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzdCOztBQXBEa0IsaUJBQWUsV0FxRGxDLGtCQUFrQixHQUFBLFVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDekMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztHQUN0Qzs7QUF2RGtCLGlCQUFlLFdBd0RsQyx1QkFBdUIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUM1QixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBMURrQixpQkFBZSxXQTJEbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN2QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQTdEa0IsaUJBQWUsV0E4RGxDLG9CQUFvQixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUFoRWtCLGlCQUFlLFdBaUVsQyx5QkFBeUIsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDMUMsV0FBTyxVQUFVLENBQUM7R0FDbkI7O0FBbkVrQixpQkFBZSxXQW9FbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDNUMsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDeEM7O0FBdEVrQixpQkFBZSxXQXVFbEMsa0JBQWtCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ2pELFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUM1Rjs7QUF6RWtCLGlCQUFlLFdBMEVsQyxrQkFBa0IsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFO0FBQy9DLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztHQUNsRTs7QUE1RWtCLGlCQUFlLFdBNkVsQyx5QkFBeUIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtBQUN0RCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDdkQ7O0FBL0VrQixpQkFBZSxXQWdGbEMsd0JBQXdCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7QUFDckQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUN0RTs7QUFsRmtCLGlCQUFlLFdBbUZsQyxZQUFZLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUM3QixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQXJGa0IsaUJBQWUsV0FzRmxDLGdCQUFnQixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ3JCLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUF4RmtCLGlCQUFlLFdBeUZsQywwQkFBMEIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDckMsV0FBTyxJQUFJLENBQUM7R0FDYjs7QUEzRmtCLGlCQUFlLFdBNEZsQyxpQkFBaUIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtBQUNuRCxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7R0FDakU7O0FBOUZrQixpQkFBZSxXQStGbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN4QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQWpHa0IsaUJBQWUsV0FrR2xDLDhCQUE4QixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ25DLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUFwR2tCLGlCQUFlLFdBcUdsQywyQkFBMkIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBdkdrQixpQkFBZSxXQXdHbEMsOEJBQThCLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDbkMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQTFHa0IsaUJBQWUsV0EyR2xDLDZCQUE2QixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ2xDLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUE3R2tCLGlCQUFlLFdBOEdsQyw2QkFBNkIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBaEhrQixpQkFBZSxXQWlIbEMsbUJBQW1CLEdBQUEsVUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtBQUN0QyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0dBQ2hDOztBQW5Ia0IsaUJBQWUsV0FvSGxDLHNCQUFzQixHQUFBLFVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUN2QyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7R0FDOUI7O0FBdEhrQixpQkFBZSxXQXVIbEMsdUJBQXVCLEdBQUEsVUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO0FBQ3JDLFdBQU8sT0FBTyxDQUFDO0dBQ2hCOztBQXpIa0IsaUJBQWUsV0EwSGxDLHNCQUFzQixHQUFBLFVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUNwQyxXQUFPLE9BQU8sQ0FBQztHQUNoQjs7QUE1SGtCLGlCQUFlLFdBNkhsQyxrQkFBa0IsR0FBQSxVQUFDLElBQUksRUFBRTtBQUN2QixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBL0hrQixpQkFBZSxXQWdJbEMscUJBQXFCLEdBQUEsVUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ3RDLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztHQUNsQzs7QUFsSWtCLGlCQUFlLFdBbUlsQyxZQUFZLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3ZCLFdBQU8sSUFBSSxDQUFDO0dBQ2I7O0FBcklrQixpQkFBZSxXQXNJbEMsWUFBWSxHQUFBLFVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO0FBQ3hDLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQzVDOztBQXhJa0IsaUJBQWUsV0F5SWxDLDRCQUE0QixHQUFBLFVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUU7QUFDbkQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztHQUN0Qzs7QUEzSWtCLGlCQUFlLFdBNElsQyxnQkFBZ0IsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ3ZDLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDcEM7O0FBOUlrQixpQkFBZSxXQStJbEMsbUJBQW1CLEdBQUEsVUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ3BDLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztHQUM5Qjs7QUFqSmtCLGlCQUFlLFdBa0psQyxxQkFBcUIsR0FBQSxVQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFO0FBQy9DLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7R0FDdkM7O0FBcEprQixpQkFBZSxXQXFKbEMsZ0NBQWdDLEdBQUEsVUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUU7QUFDbkcsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztHQUN6Rzs7QUF2SmtCLGlCQUFlLFdBd0psQyxvQkFBb0IsR0FBQSxVQUFDLElBQUksRUFBRTtBQUN6QixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBMUprQixpQkFBZSxXQTJKbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO0FBQ3JDLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztHQUNsQzs7QUE3SmtCLGlCQUFlLFdBOEpsQyx1QkFBdUIsR0FBQSxVQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0FBQ2hELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7R0FDeEM7O0FBaEtrQixpQkFBZSxXQWlLbEMseUJBQXlCLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUU7QUFDN0QsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0dBQ25FOztBQW5La0IsaUJBQWUsV0FvS2xDLHNCQUFzQixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQzNCLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUF0S2tCLGlCQUFlLFdBdUtsQyx3QkFBd0IsR0FBQSxVQUFDLElBQUksRUFBRTtBQUM3QixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBektrQixpQkFBZSxXQTBLbEMseUJBQXlCLEdBQUEsVUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQzNDLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztHQUMvQjs7QUE1S2tCLGlCQUFlLFdBNktsQyxrQ0FBa0MsR0FBQSxVQUFDLElBQUksRUFBRSxXQUFXLEVBQUU7QUFDcEQsV0FBTyxXQUFXLENBQUM7R0FDcEI7O0FBL0trQixpQkFBZSxXQWdMbEMsd0JBQXdCLEdBQUEsVUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtBQUM1QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztHQUNsRDs7QUFsTGtCLGlCQUFlLFdBbUxsQyxvQkFBb0IsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO0FBQ3JDLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDaEM7O0FBckxrQixpQkFBZSxXQXNMbEMsbUJBQW1CLEdBQUEsVUFBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtBQUN0QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2xDOztTQXhMa0IsZUFBZTs7O3FCQUFmLGVBQWUiLCJmaWxlIjoic3JjL21vbm9pZGFsLXJlZHVjZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDE0IFNoYXBlIFNlY3VyaXR5LCBJbmMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKVxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9ub2lkYWxSZWR1Y2VyIHtcbiAgY29uc3RydWN0b3IobW9ub2lkKSB7XG4gICAgdGhpcy5pZGVudGl0eSA9IG1vbm9pZC5lbXB0eSgpO1xuICAgIGxldCBjb25jYXQgPSBtb25vaWQucHJvdG90eXBlICYmIG1vbm9pZC5wcm90b3R5cGUuY29uY2F0IHx8IG1vbm9pZC5jb25jYXQ7XG4gICAgdGhpcy5hcHBlbmQgPSB0aGlzLmFwcGVuZDIgPSAoYSwgYikgPT4gY29uY2F0LmNhbGwoYSwgYik7XG4gIH1cblxuICBmcm9tTnVsbChhKSB7XG4gICAgcmV0dXJuIGEgPT0gbnVsbCA/IHRoaXMuaWRlbnRpdHkgOiBhO1xuICB9XG4gIGFwcGVuZDMoYSwgYiwgYykge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZCh0aGlzLmFwcGVuZChhLCBiKSwgYyk7XG4gIH1cbiAgYXBwZW5kNChhLCBiLCBjLCBkKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKHRoaXMuYXBwZW5kMyhhLCBiLCBjKSwgZCk7XG4gIH1cbiAgZm9sZChhcywgYSkge1xuICAgIHJldHVybiBhcy5yZWR1Y2UoKG1lbW8sIHgpID0+IHRoaXMuYXBwZW5kKG1lbW8sIHgpLCBhID09IG51bGwgPyB0aGlzLmlkZW50aXR5IDogYSk7XG4gIH1cblxuICByZWR1Y2VBcnJheUV4cHJlc3Npb24obm9kZSwgZWxlbWVudHMpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKGVsZW1lbnRzLmZpbHRlcigoeCkgPT4geCAhPSBudWxsKSk7XG4gIH1cbiAgcmVkdWNlQXNzaWdubWVudEV4cHJlc3Npb24obm9kZSwgYmluZGluZywgZXhwcmVzc2lvbikge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChiaW5kaW5nLCBleHByZXNzaW9uKTtcbiAgfVxuICByZWR1Y2VCaW5hcnlFeHByZXNzaW9uKG5vZGUsIGxlZnQsIHJpZ2h0KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKGxlZnQsIHJpZ2h0KTtcbiAgfVxuICByZWR1Y2VCbG9jayhub2RlLCBzdGF0ZW1lbnRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChzdGF0ZW1lbnRzKTtcbiAgfVxuICByZWR1Y2VCbG9ja1N0YXRlbWVudChub2RlLCBibG9jaykge1xuICAgIHJldHVybiBibG9jaztcbiAgfVxuICByZWR1Y2VCcmVha1N0YXRlbWVudChub2RlLCBsYWJlbCkge1xuICAgIHJldHVybiB0aGlzLmZyb21OdWxsKGxhYmVsKTtcbiAgfVxuICByZWR1Y2VDYWxsRXhwcmVzc2lvbihub2RlLCBjYWxsZWUsIGFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKGFyZ3MsIGNhbGxlZSk7XG4gIH1cbiAgcmVkdWNlQ2F0Y2hDbGF1c2Uobm9kZSwgYmluZGluZywgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChiaW5kaW5nLCBib2R5KTtcbiAgfVxuICByZWR1Y2VDb21wdXRlZE1lbWJlckV4cHJlc3Npb24obm9kZSwgb2JqZWN0LCBleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKG9iamVjdCwgZXhwcmVzc2lvbik7XG4gIH1cbiAgcmVkdWNlQ29uZGl0aW9uYWxFeHByZXNzaW9uKG5vZGUsIHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZDModGVzdCwgY29uc2VxdWVudCwgYWx0ZXJuYXRlKTtcbiAgfVxuICByZWR1Y2VDb250aW51ZVN0YXRlbWVudChub2RlLCBsYWJlbCkge1xuICAgIHJldHVybiB0aGlzLmZyb21OdWxsKGxhYmVsKTtcbiAgfVxuICByZWR1Y2VEYXRhUHJvcGVydHkobm9kZSwgbmFtZSwgZXhwcmVzc2lvbikge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChuYW1lLCBleHByZXNzaW9uKTtcbiAgfVxuICByZWR1Y2VEZWJ1Z2dlclN0YXRlbWVudChub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlRG9XaGlsZVN0YXRlbWVudChub2RlLCBib2R5LCB0ZXN0KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKGJvZHksIHRlc3QpO1xuICB9XG4gIHJlZHVjZUVtcHR5U3RhdGVtZW50KG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VFeHByZXNzaW9uU3RhdGVtZW50KG5vZGUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gZXhwcmVzc2lvbjtcbiAgfVxuICByZWR1Y2VGb3JJblN0YXRlbWVudChub2RlLCBsZWZ0LCByaWdodCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZDMobGVmdCwgcmlnaHQsIGJvZHkpO1xuICB9XG4gIHJlZHVjZUZvclN0YXRlbWVudChub2RlLCBpbml0LCB0ZXN0LCB1cGRhdGUsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQ0KHRoaXMuZnJvbU51bGwoaW5pdCksIHRoaXMuZnJvbU51bGwodGVzdCksIHRoaXMuZnJvbU51bGwodXBkYXRlKSwgYm9keSk7XG4gIH1cbiAgcmVkdWNlRnVuY3Rpb25Cb2R5KG5vZGUsIGRpcmVjdGl2ZXMsIHN0YXRlbWVudHMpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQodGhpcy5mb2xkKGRpcmVjdGl2ZXMpLCB0aGlzLmZvbGQoc3RhdGVtZW50cykpO1xuICB9XG4gIHJlZHVjZUZ1bmN0aW9uRGVjbGFyYXRpb24obm9kZSwgbmFtZSwgcGFyYW1ldGVycywgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZCh0aGlzLmZvbGQocGFyYW1ldGVycywgbmFtZSksIGJvZHkpO1xuICB9XG4gIHJlZHVjZUZ1bmN0aW9uRXhwcmVzc2lvbihub2RlLCBuYW1lLCBwYXJhbWV0ZXJzLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKHRoaXMuZm9sZChwYXJhbWV0ZXJzLCB0aGlzLmZyb21OdWxsKG5hbWUpKSwgYm9keSk7XG4gIH1cbiAgcmVkdWNlR2V0dGVyKG5vZGUsIG5hbWUsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQobmFtZSwgYm9keSk7XG4gIH1cbiAgcmVkdWNlSWRlbnRpZmllcihub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlSWRlbnRpZmllckV4cHJlc3Npb24obm9kZSwgbmFtZSkge1xuICAgIHJldHVybiBuYW1lO1xuICB9XG4gIHJlZHVjZUlmU3RhdGVtZW50KG5vZGUsIHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZDModGVzdCwgY29uc2VxdWVudCwgdGhpcy5mcm9tTnVsbChhbHRlcm5hdGUpKTtcbiAgfVxuICByZWR1Y2VMYWJlbGVkU3RhdGVtZW50KG5vZGUsIGxhYmVsLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKGxhYmVsLCBib2R5KTtcbiAgfVxuICByZWR1Y2VMaXRlcmFsQm9vbGVhbkV4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZUxpdGVyYWxOdWxsRXhwcmVzc2lvbihub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlTGl0ZXJhbE51bWVyaWNFeHByZXNzaW9uKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VMaXRlcmFsUmVnRXhwRXhwcmVzc2lvbihub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlTGl0ZXJhbFN0cmluZ0V4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZU5ld0V4cHJlc3Npb24obm9kZSwgY2FsbGVlLCBhcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChhcmdzLCBjYWxsZWUpO1xuICB9XG4gIHJlZHVjZU9iamVjdEV4cHJlc3Npb24obm9kZSwgcHJvcGVydGllcykge1xuICAgIHJldHVybiB0aGlzLmZvbGQocHJvcGVydGllcyk7XG4gIH1cbiAgcmVkdWNlUG9zdGZpeEV4cHJlc3Npb24obm9kZSwgb3BlcmFuZCkge1xuICAgIHJldHVybiBvcGVyYW5kO1xuICB9XG4gIHJlZHVjZVByZWZpeEV4cHJlc3Npb24obm9kZSwgb3BlcmFuZCkge1xuICAgIHJldHVybiBvcGVyYW5kO1xuICB9XG4gIHJlZHVjZVByb3BlcnR5TmFtZShub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlUmV0dXJuU3RhdGVtZW50KG5vZGUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tTnVsbChleHByZXNzaW9uKTtcbiAgfVxuICByZWR1Y2VTY3JpcHQobm9kZSwgYm9keSkge1xuICAgIHJldHVybiBib2R5O1xuICB9XG4gIHJlZHVjZVNldHRlcihub2RlLCBuYW1lLCBwYXJhbWV0ZXIsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQzKG5hbWUsIHBhcmFtZXRlciwgYm9keSk7XG4gIH1cbiAgcmVkdWNlU3RhdGljTWVtYmVyRXhwcmVzc2lvbihub2RlLCBvYmplY3QsIHByb3BlcnR5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKG9iamVjdCwgcHJvcGVydHkpO1xuICB9XG4gIHJlZHVjZVN3aXRjaENhc2Uobm9kZSwgdGVzdCwgY29uc2VxdWVudCkge1xuICAgIHJldHVybiB0aGlzLmZvbGQoY29uc2VxdWVudCwgdGVzdCk7XG4gIH1cbiAgcmVkdWNlU3dpdGNoRGVmYXVsdChub2RlLCBjb25zZXF1ZW50KSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChjb25zZXF1ZW50KTtcbiAgfVxuICByZWR1Y2VTd2l0Y2hTdGF0ZW1lbnQobm9kZSwgZGlzY3JpbWluYW50LCBjYXNlcykge1xuICAgIHJldHVybiB0aGlzLmZvbGQoY2FzZXMsIGRpc2NyaW1pbmFudCk7XG4gIH1cbiAgcmVkdWNlU3dpdGNoU3RhdGVtZW50V2l0aERlZmF1bHQobm9kZSwgZGlzY3JpbWluYW50LCBwcmVEZWZhdWx0Q2FzZXMsIGRlZmF1bHRDYXNlLCBwb3N0RGVmYXVsdENhc2VzKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kNChkaXNjcmltaW5hbnQsIHRoaXMuZm9sZChwcmVEZWZhdWx0Q2FzZXMpLCBkZWZhdWx0Q2FzZSwgdGhpcy5mb2xkKHBvc3REZWZhdWx0Q2FzZXMpKTtcbiAgfVxuICByZWR1Y2VUaGlzRXhwcmVzc2lvbihub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlVGhyb3dTdGF0ZW1lbnQobm9kZSwgZXhwcmVzc2lvbikge1xuICAgIHJldHVybiB0aGlzLmZyb21OdWxsKGV4cHJlc3Npb24pO1xuICB9XG4gIHJlZHVjZVRyeUNhdGNoU3RhdGVtZW50KG5vZGUsIGJsb2NrLCBjYXRjaENsYXVzZSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChibG9jaywgY2F0Y2hDbGF1c2UpO1xuICB9XG4gIHJlZHVjZVRyeUZpbmFsbHlTdGF0ZW1lbnQobm9kZSwgYmxvY2ssIGNhdGNoQ2xhdXNlLCBmaW5hbGl6ZXIpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQzKGJsb2NrLCB0aGlzLmZyb21OdWxsKGNhdGNoQ2xhdXNlKSwgZmluYWxpemVyKTtcbiAgfVxuICByZWR1Y2VVbmtub3duRGlyZWN0aXZlKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VVc2VTdHJpY3REaXJlY3RpdmUobm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZVZhcmlhYmxlRGVjbGFyYXRpb24obm9kZSwgZGVjbGFyYXRvcnMpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKGRlY2xhcmF0b3JzKTtcbiAgfVxuICByZWR1Y2VWYXJpYWJsZURlY2xhcmF0aW9uU3RhdGVtZW50KG5vZGUsIGRlY2xhcmF0aW9uKSB7XG4gICAgcmV0dXJuIGRlY2xhcmF0aW9uO1xuICB9XG4gIHJlZHVjZVZhcmlhYmxlRGVjbGFyYXRvcihub2RlLCBiaW5kaW5nLCBpbml0KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKGJpbmRpbmcsIHRoaXMuZnJvbU51bGwoaW5pdCkpO1xuICB9XG4gIHJlZHVjZVdoaWxlU3RhdGVtZW50KG5vZGUsIHRlc3QsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQodGVzdCwgYm9keSk7XG4gIH1cbiAgcmVkdWNlV2l0aFN0YXRlbWVudChub2RlLCBvYmplY3QsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQob2JqZWN0LCBib2R5KTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9tb25vaWRhbC1yZWR1Y2VyLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0lBZ0JxQixlQUFlO01BQWYsZUFBZSxHQUN2QixTQURRLGVBQWUsQ0FDdEIsTUFBTSxFQUFFO0FBQ2xCLFFBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQy9CLFFBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUMxRSxRQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBQyxDQUFDLEVBQUUsQ0FBQzthQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUFBLENBQUM7R0FDMUQ7O0FBTGtCLGlCQUFlLFdBT2xDLFFBQVEsR0FBQSxVQUFDLENBQUMsRUFBRTtBQUNWLFdBQU8sQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztHQUN0Qzs7QUFUa0IsaUJBQWUsV0FVbEMsT0FBTyxHQUFBLFVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDZixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7R0FDMUM7O0FBWmtCLGlCQUFlLFdBYWxDLE9BQU8sR0FBQSxVQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNsQixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0dBQzlDOztBQWZrQixpQkFBZSxXQWdCbEMsSUFBSSxHQUFBLFVBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTs7QUFDVixXQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsVUFBQyxJQUFJLEVBQUUsQ0FBQzthQUFLLE1BQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7S0FBQSxFQUFFLENBQUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztHQUNwRjs7QUFsQmtCLGlCQUFlLFdBb0JsQyxxQkFBcUIsR0FBQSxVQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDcEMsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBQyxDQUFDO2FBQUssQ0FBQyxJQUFJLElBQUk7S0FBQSxDQUFDLENBQUMsQ0FBQztHQUNyRDs7QUF0QmtCLGlCQUFlLFdBdUJsQywwQkFBMEIsR0FBQSxVQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO0FBQ3BELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7R0FDekM7O0FBekJrQixpQkFBZSxXQTBCbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUN4QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0dBQ2pDOztBQTVCa0IsaUJBQWUsV0E2QmxDLFdBQVcsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDNUIsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0dBQzlCOztBQS9Ca0IsaUJBQWUsV0FnQ2xDLG9CQUFvQixHQUFBLFVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtBQUNoQzs7O0FBakNpQixpQkFBZSxXQW1DbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFO0FBQ2hDLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztHQUM3Qjs7QUFyQ2tCLGlCQUFlLFdBc0NsQyxvQkFBb0IsR0FBQSxVQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ3ZDLFdBQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7R0FDaEM7O0FBeENrQixpQkFBZSxXQXlDbEMsaUJBQWlCLEdBQUEsVUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRTtBQUNyQyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ25DOztBQTNDa0IsaUJBQWUsV0E0Q2xDLDhCQUE4QixHQUFBLFVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUU7QUFDdkQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztHQUN4Qzs7QUE5Q2tCLGlCQUFlLFdBK0NsQywyQkFBMkIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtBQUM3RCxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztHQUNsRDs7QUFqRGtCLGlCQUFlLFdBa0RsQyx1QkFBdUIsR0FBQSxVQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7QUFDbkMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzdCOztBQXBEa0IsaUJBQWUsV0FxRGxDLGtCQUFrQixHQUFBLFVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDekMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztHQUN0Qzs7QUF2RGtCLGlCQUFlLFdBd0RsQyx1QkFBdUIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUM1QixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBMURrQixpQkFBZSxXQTJEbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN2QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQTdEa0IsaUJBQWUsV0E4RGxDLG9CQUFvQixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ3pCLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUFoRWtCLGlCQUFlLFdBaUVsQyx5QkFBeUIsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDMUMsV0FBTyxVQUFVLENBQUM7R0FDbkI7O0FBbkVrQixpQkFBZSxXQW9FbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7QUFDNUMsV0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDeEM7O0FBdEVrQixpQkFBZSxXQXVFbEMsa0JBQWtCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0FBQ2pELFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUM1Rjs7QUF6RWtCLGlCQUFlLFdBMEVsQyxrQkFBa0IsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFO0FBQy9DLFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztHQUNsRTs7QUE1RWtCLGlCQUFlLFdBNkVsQyx5QkFBeUIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtBQUN0RCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7R0FDdkQ7O0FBL0VrQixpQkFBZSxXQWdGbEMsd0JBQXdCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUU7QUFDckQsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUN0RTs7QUFsRmtCLGlCQUFlLFdBbUZsQyxZQUFZLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUM3QixXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQXJGa0IsaUJBQWUsV0FzRmxDLGdCQUFnQixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ3JCLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUF4RmtCLGlCQUFlLFdBeUZsQywwQkFBMEIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7QUFDckMsV0FBTyxJQUFJLENBQUM7R0FDYjs7QUEzRmtCLGlCQUFlLFdBNEZsQyxpQkFBaUIsR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTtBQUNuRCxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7R0FDakU7O0FBOUZrQixpQkFBZSxXQStGbEMsc0JBQXNCLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtBQUN4QyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2pDOztBQWpHa0IsaUJBQWUsV0FrR2xDLDhCQUE4QixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ25DLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUFwR2tCLGlCQUFlLFdBcUdsQywyQkFBMkIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUNoQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBdkdrQixpQkFBZSxXQXdHbEMsK0JBQStCLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDcEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQTFHa0IsaUJBQWUsV0EyR2xDLDhCQUE4QixHQUFBLFVBQUMsSUFBSSxFQUFFO0FBQ25DLFdBQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztHQUN0Qjs7QUE3R2tCLGlCQUFlLFdBOEdsQyw2QkFBNkIsR0FBQSxVQUFDLElBQUksRUFBRTtBQUNsQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBaEhrQixpQkFBZSxXQWlIbEMsNkJBQTZCLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDbEMsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQW5Ia0IsaUJBQWUsV0FvSGxDLG1CQUFtQixHQUFBLFVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDdEMsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztHQUNoQzs7QUF0SGtCLGlCQUFlLFdBdUhsQyxzQkFBc0IsR0FBQSxVQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7QUFDdkMsV0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0dBQzlCOztBQXpIa0IsaUJBQWUsV0EwSGxDLHVCQUF1QixHQUFBLFVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRTtBQUNyQyxXQUFPLE9BQU8sQ0FBQztHQUNoQjs7QUE1SGtCLGlCQUFlLFdBNkhsQyxzQkFBc0IsR0FBQSxVQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7QUFDcEMsV0FBTyxPQUFPLENBQUM7R0FDaEI7O0FBL0hrQixpQkFBZSxXQWdJbEMsa0JBQWtCLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDdkIsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQWxJa0IsaUJBQWUsV0FtSWxDLHFCQUFxQixHQUFBLFVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUN0QyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7R0FDbEM7O0FBcklrQixpQkFBZSxXQXNJbEMsWUFBWSxHQUFBLFVBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtBQUN2QixXQUFPLElBQUksQ0FBQztHQUNiOztBQXhJa0IsaUJBQWUsV0F5SWxDLFlBQVksR0FBQSxVQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtBQUN4QyxXQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztHQUM1Qzs7QUEzSWtCLGlCQUFlLFdBNElsQyw0QkFBNEIsR0FBQSxVQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO0FBQ25ELFdBQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7R0FDdEM7O0FBOUlrQixpQkFBZSxXQStJbEMsZ0JBQWdCLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUN2QyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ3BDOztBQWpKa0IsaUJBQWUsV0FrSmxDLG1CQUFtQixHQUFBLFVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUNwQyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7R0FDOUI7O0FBcEprQixpQkFBZSxXQXFKbEMscUJBQXFCLEdBQUEsVUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRTtBQUMvQyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0dBQ3ZDOztBQXZKa0IsaUJBQWUsV0F3SmxDLGdDQUFnQyxHQUFBLFVBQUMsSUFBSSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFO0FBQ25HLFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7R0FDekc7O0FBMUprQixpQkFBZSxXQTJKbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDekIsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQTdKa0IsaUJBQWUsV0E4SmxDLG9CQUFvQixHQUFBLFVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtBQUNyQyxXQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7R0FDbEM7O0FBaEtrQixpQkFBZSxXQWlLbEMsdUJBQXVCLEdBQUEsVUFBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtBQUNoRCxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0dBQ3hDOztBQW5La0IsaUJBQWUsV0FvS2xDLHlCQUF5QixHQUFBLFVBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFO0FBQzdELFdBQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztHQUNuRTs7QUF0S2tCLGlCQUFlLFdBdUtsQyxzQkFBc0IsR0FBQSxVQUFDLElBQUksRUFBRTtBQUMzQixXQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7R0FDdEI7O0FBektrQixpQkFBZSxXQTBLbEMsd0JBQXdCLEdBQUEsVUFBQyxJQUFJLEVBQUU7QUFDN0IsV0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0dBQ3RCOztBQTVLa0IsaUJBQWUsV0E2S2xDLHlCQUF5QixHQUFBLFVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRTtBQUMzQyxXQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7R0FDL0I7O0FBL0trQixpQkFBZSxXQWdMbEMsa0NBQWtDLEdBQUEsVUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO0FBQ3BELFdBQU8sV0FBVyxDQUFDO0dBQ3BCOztBQWxMa0IsaUJBQWUsV0FtTGxDLHdCQUF3QixHQUFBLFVBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDNUMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7R0FDbEQ7O0FBckxrQixpQkFBZSxXQXNMbEMsb0JBQW9CLEdBQUEsVUFBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtBQUNyQyxXQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQ2hDOztBQXhMa0IsaUJBQWUsV0F5TGxDLG1CQUFtQixHQUFBLFVBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7QUFDdEMsV0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztHQUNsQzs7U0EzTGtCLGVBQWU7OztxQkFBZixlQUFlIiwiZmlsZSI6InNyYy9tb25vaWRhbC1yZWR1Y2VyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAxNCBTaGFwZSBTZWN1cml0eSwgSW5jLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIilcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE1vbm9pZGFsUmVkdWNlciB7XG4gIGNvbnN0cnVjdG9yKG1vbm9pZCkge1xuICAgIHRoaXMuaWRlbnRpdHkgPSBtb25vaWQuZW1wdHkoKTtcbiAgICBsZXQgY29uY2F0ID0gbW9ub2lkLnByb3RvdHlwZSAmJiBtb25vaWQucHJvdG90eXBlLmNvbmNhdCB8fCBtb25vaWQuY29uY2F0O1xuICAgIHRoaXMuYXBwZW5kID0gdGhpcy5hcHBlbmQyID0gKGEsIGIpID0+IGNvbmNhdC5jYWxsKGEsIGIpO1xuICB9XG5cbiAgZnJvbU51bGwoYSkge1xuICAgIHJldHVybiBhID09IG51bGwgPyB0aGlzLmlkZW50aXR5IDogYTtcbiAgfVxuICBhcHBlbmQzKGEsIGIsIGMpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQodGhpcy5hcHBlbmQoYSwgYiksIGMpO1xuICB9XG4gIGFwcGVuZDQoYSwgYiwgYywgZCkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZCh0aGlzLmFwcGVuZDMoYSwgYiwgYyksIGQpO1xuICB9XG4gIGZvbGQoYXMsIGEpIHtcbiAgICByZXR1cm4gYXMucmVkdWNlKChtZW1vLCB4KSA9PiB0aGlzLmFwcGVuZChtZW1vLCB4KSwgYSA9PSBudWxsID8gdGhpcy5pZGVudGl0eSA6IGEpO1xuICB9XG5cbiAgcmVkdWNlQXJyYXlFeHByZXNzaW9uKG5vZGUsIGVsZW1lbnRzKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChlbGVtZW50cy5maWx0ZXIoKHgpID0+IHggIT0gbnVsbCkpO1xuICB9XG4gIHJlZHVjZUFzc2lnbm1lbnRFeHByZXNzaW9uKG5vZGUsIGJpbmRpbmcsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQoYmluZGluZywgZXhwcmVzc2lvbik7XG4gIH1cbiAgcmVkdWNlQmluYXJ5RXhwcmVzc2lvbihub2RlLCBsZWZ0LCByaWdodCkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChsZWZ0LCByaWdodCk7XG4gIH1cbiAgcmVkdWNlQmxvY2sobm9kZSwgc3RhdGVtZW50cykge1xuICAgIHJldHVybiB0aGlzLmZvbGQoc3RhdGVtZW50cyk7XG4gIH1cbiAgcmVkdWNlQmxvY2tTdGF0ZW1lbnQobm9kZSwgYmxvY2spIHtcbiAgICByZXR1cm4gYmxvY2s7XG4gIH1cbiAgcmVkdWNlQnJlYWtTdGF0ZW1lbnQobm9kZSwgbGFiZWwpIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tTnVsbChsYWJlbCk7XG4gIH1cbiAgcmVkdWNlQ2FsbEV4cHJlc3Npb24obm9kZSwgY2FsbGVlLCBhcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChhcmdzLCBjYWxsZWUpO1xuICB9XG4gIHJlZHVjZUNhdGNoQ2xhdXNlKG5vZGUsIGJpbmRpbmcsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQoYmluZGluZywgYm9keSk7XG4gIH1cbiAgcmVkdWNlQ29tcHV0ZWRNZW1iZXJFeHByZXNzaW9uKG5vZGUsIG9iamVjdCwgZXhwcmVzc2lvbikge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChvYmplY3QsIGV4cHJlc3Npb24pO1xuICB9XG4gIHJlZHVjZUNvbmRpdGlvbmFsRXhwcmVzc2lvbihub2RlLCB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQzKHRlc3QsIGNvbnNlcXVlbnQsIGFsdGVybmF0ZSk7XG4gIH1cbiAgcmVkdWNlQ29udGludWVTdGF0ZW1lbnQobm9kZSwgbGFiZWwpIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tTnVsbChsYWJlbCk7XG4gIH1cbiAgcmVkdWNlRGF0YVByb3BlcnR5KG5vZGUsIG5hbWUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQobmFtZSwgZXhwcmVzc2lvbik7XG4gIH1cbiAgcmVkdWNlRGVidWdnZXJTdGF0ZW1lbnQobm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZURvV2hpbGVTdGF0ZW1lbnQobm9kZSwgYm9keSwgdGVzdCkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChib2R5LCB0ZXN0KTtcbiAgfVxuICByZWR1Y2VFbXB0eVN0YXRlbWVudChub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlRXhwcmVzc2lvblN0YXRlbWVudChub2RlLCBleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIGV4cHJlc3Npb247XG4gIH1cbiAgcmVkdWNlRm9ySW5TdGF0ZW1lbnQobm9kZSwgbGVmdCwgcmlnaHQsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQzKGxlZnQsIHJpZ2h0LCBib2R5KTtcbiAgfVxuICByZWR1Y2VGb3JTdGF0ZW1lbnQobm9kZSwgaW5pdCwgdGVzdCwgdXBkYXRlLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kNCh0aGlzLmZyb21OdWxsKGluaXQpLCB0aGlzLmZyb21OdWxsKHRlc3QpLCB0aGlzLmZyb21OdWxsKHVwZGF0ZSksIGJvZHkpO1xuICB9XG4gIHJlZHVjZUZ1bmN0aW9uQm9keShub2RlLCBkaXJlY3RpdmVzLCBzdGF0ZW1lbnRzKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKHRoaXMuZm9sZChkaXJlY3RpdmVzKSwgdGhpcy5mb2xkKHN0YXRlbWVudHMpKTtcbiAgfVxuICByZWR1Y2VGdW5jdGlvbkRlY2xhcmF0aW9uKG5vZGUsIG5hbWUsIHBhcmFtZXRlcnMsIGJvZHkpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQodGhpcy5mb2xkKHBhcmFtZXRlcnMsIG5hbWUpLCBib2R5KTtcbiAgfVxuICByZWR1Y2VGdW5jdGlvbkV4cHJlc3Npb24obm9kZSwgbmFtZSwgcGFyYW1ldGVycywgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZCh0aGlzLmZvbGQocGFyYW1ldGVycywgdGhpcy5mcm9tTnVsbChuYW1lKSksIGJvZHkpO1xuICB9XG4gIHJlZHVjZUdldHRlcihub2RlLCBuYW1lLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKG5hbWUsIGJvZHkpO1xuICB9XG4gIHJlZHVjZUlkZW50aWZpZXIobm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZUlkZW50aWZpZXJFeHByZXNzaW9uKG5vZGUsIG5hbWUpIHtcbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuICByZWR1Y2VJZlN0YXRlbWVudChub2RlLCB0ZXN0LCBjb25zZXF1ZW50LCBhbHRlcm5hdGUpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQzKHRlc3QsIGNvbnNlcXVlbnQsIHRoaXMuZnJvbU51bGwoYWx0ZXJuYXRlKSk7XG4gIH1cbiAgcmVkdWNlTGFiZWxlZFN0YXRlbWVudChub2RlLCBsYWJlbCwgYm9keSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChsYWJlbCwgYm9keSk7XG4gIH1cbiAgcmVkdWNlTGl0ZXJhbEJvb2xlYW5FeHByZXNzaW9uKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VMaXRlcmFsTnVsbEV4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZUxpdGVyYWxJbmZpbml0eUV4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZUxpdGVyYWxOdW1lcmljRXhwcmVzc2lvbihub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlTGl0ZXJhbFJlZ0V4cEV4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZUxpdGVyYWxTdHJpbmdFeHByZXNzaW9uKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VOZXdFeHByZXNzaW9uKG5vZGUsIGNhbGxlZSwgYXJncykge1xuICAgIHJldHVybiB0aGlzLmZvbGQoYXJncywgY2FsbGVlKTtcbiAgfVxuICByZWR1Y2VPYmplY3RFeHByZXNzaW9uKG5vZGUsIHByb3BlcnRpZXMpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKHByb3BlcnRpZXMpO1xuICB9XG4gIHJlZHVjZVBvc3RmaXhFeHByZXNzaW9uKG5vZGUsIG9wZXJhbmQpIHtcbiAgICByZXR1cm4gb3BlcmFuZDtcbiAgfVxuICByZWR1Y2VQcmVmaXhFeHByZXNzaW9uKG5vZGUsIG9wZXJhbmQpIHtcbiAgICByZXR1cm4gb3BlcmFuZDtcbiAgfVxuICByZWR1Y2VQcm9wZXJ0eU5hbWUobm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZVJldHVyblN0YXRlbWVudChub2RlLCBleHByZXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU51bGwoZXhwcmVzc2lvbik7XG4gIH1cbiAgcmVkdWNlU2NyaXB0KG5vZGUsIGJvZHkpIHtcbiAgICByZXR1cm4gYm9keTtcbiAgfVxuICByZWR1Y2VTZXR0ZXIobm9kZSwgbmFtZSwgcGFyYW1ldGVyLCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kMyhuYW1lLCBwYXJhbWV0ZXIsIGJvZHkpO1xuICB9XG4gIHJlZHVjZVN0YXRpY01lbWJlckV4cHJlc3Npb24obm9kZSwgb2JqZWN0LCBwcm9wZXJ0eSkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChvYmplY3QsIHByb3BlcnR5KTtcbiAgfVxuICByZWR1Y2VTd2l0Y2hDYXNlKG5vZGUsIHRlc3QsIGNvbnNlcXVlbnQpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKGNvbnNlcXVlbnQsIHRlc3QpO1xuICB9XG4gIHJlZHVjZVN3aXRjaERlZmF1bHQobm9kZSwgY29uc2VxdWVudCkge1xuICAgIHJldHVybiB0aGlzLmZvbGQoY29uc2VxdWVudCk7XG4gIH1cbiAgcmVkdWNlU3dpdGNoU3RhdGVtZW50KG5vZGUsIGRpc2NyaW1pbmFudCwgY2FzZXMpIHtcbiAgICByZXR1cm4gdGhpcy5mb2xkKGNhc2VzLCBkaXNjcmltaW5hbnQpO1xuICB9XG4gIHJlZHVjZVN3aXRjaFN0YXRlbWVudFdpdGhEZWZhdWx0KG5vZGUsIGRpc2NyaW1pbmFudCwgcHJlRGVmYXVsdENhc2VzLCBkZWZhdWx0Q2FzZSwgcG9zdERlZmF1bHRDYXNlcykge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZDQoZGlzY3JpbWluYW50LCB0aGlzLmZvbGQocHJlRGVmYXVsdENhc2VzKSwgZGVmYXVsdENhc2UsIHRoaXMuZm9sZChwb3N0RGVmYXVsdENhc2VzKSk7XG4gIH1cbiAgcmVkdWNlVGhpc0V4cHJlc3Npb24obm9kZSkge1xuICAgIHJldHVybiB0aGlzLmlkZW50aXR5O1xuICB9XG4gIHJlZHVjZVRocm93U3RhdGVtZW50KG5vZGUsIGV4cHJlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tTnVsbChleHByZXNzaW9uKTtcbiAgfVxuICByZWR1Y2VUcnlDYXRjaFN0YXRlbWVudChub2RlLCBibG9jaywgY2F0Y2hDbGF1c2UpIHtcbiAgICByZXR1cm4gdGhpcy5hcHBlbmQoYmxvY2ssIGNhdGNoQ2xhdXNlKTtcbiAgfVxuICByZWR1Y2VUcnlGaW5hbGx5U3RhdGVtZW50KG5vZGUsIGJsb2NrLCBjYXRjaENsYXVzZSwgZmluYWxpemVyKSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kMyhibG9jaywgdGhpcy5mcm9tTnVsbChjYXRjaENsYXVzZSksIGZpbmFsaXplcik7XG4gIH1cbiAgcmVkdWNlVW5rbm93bkRpcmVjdGl2ZShub2RlKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRlbnRpdHk7XG4gIH1cbiAgcmVkdWNlVXNlU3RyaWN0RGlyZWN0aXZlKG5vZGUpIHtcbiAgICByZXR1cm4gdGhpcy5pZGVudGl0eTtcbiAgfVxuICByZWR1Y2VWYXJpYWJsZURlY2xhcmF0aW9uKG5vZGUsIGRlY2xhcmF0b3JzKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9sZChkZWNsYXJhdG9ycyk7XG4gIH1cbiAgcmVkdWNlVmFyaWFibGVEZWNsYXJhdGlvblN0YXRlbWVudChub2RlLCBkZWNsYXJhdGlvbikge1xuICAgIHJldHVybiBkZWNsYXJhdGlvbjtcbiAgfVxuICByZWR1Y2VWYXJpYWJsZURlY2xhcmF0b3Iobm9kZSwgYmluZGluZywgaW5pdCkge1xuICAgIHJldHVybiB0aGlzLmFwcGVuZChiaW5kaW5nLCB0aGlzLmZyb21OdWxsKGluaXQpKTtcbiAgfVxuICByZWR1Y2VXaGlsZVN0YXRlbWVudChub2RlLCB0ZXN0LCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKHRlc3QsIGJvZHkpO1xuICB9XG4gIHJlZHVjZVdpdGhTdGF0ZW1lbnQobm9kZSwgb2JqZWN0LCBib2R5KSB7XG4gICAgcmV0dXJuIHRoaXMuYXBwZW5kKG9iamVjdCwgYm9keSk7XG4gIH1cbn1cbiJdfQ==
{
"name": "shift-reducer",
"version": "1.0.2",
"version": "1.0.3",
"description": "reducer for the Shift AST format",

@@ -20,3 +20,3 @@ "author": "Shape Security Labs",

"dependencies": {
"shift-ast": "^1.0.0"
"shift-ast": "^1.0.3"
},

@@ -23,0 +23,0 @@ "devDependencies": {

@@ -24,53 +24,5 @@ Shift Reducer

### ES6
See [examples](./examples).
```js
import reduce, {MonoidalReducer} from "shift-reducer"
class IdentifierCounter extends MonoidalReducer {
static count(program) {
return reduce(new this, program);
}
constructor() {
super(class Sum {
static empty() { return 0; }
concat(a) { return this + a; }
});
}
reduceIdentifierExpression(node, identifier) {
return 1;
}
}
IdentifierCounter.count(PROGRAM);
```
### ES5
```js
var reducer = require('shift-reducer');
function IdentifierCounter() {
reducer.MonoidalReducer.call(this, {
empty : function () { return 0; },
concat : function (a) { return this + a; }
});
}
IdentifierCounter.count = function(program){
return reducer.default(new this, program);
};
IdentifierCounter.prototype = Object.create(reducer.MonoidalReducer.prototype);
IdentifierCounter.prototype.reduceIdentifierExpression = function (node, identifier) {
return 1;
};
IdentifierCounter.count(PROGRAM);
```
### Fantasy Land

@@ -80,3 +32,3 @@

The `MonoidalReducer` is compatible with [Fantasy Land](https://github.com/fantasyland/fantasy-land) Monoids.
`MonoidalReducer` is compatible with [Fantasy Land](https://github.com/fantasyland/fantasy-land) Monoids.

@@ -83,0 +35,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc