@dcl/asset-packs 2.11.3 → 2.11.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/triggers.js CHANGED
@@ -286,11 +286,15 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
286
286
  }
287
287
  function initOnPlayerTriggerArea(entity) {
288
288
  TriggerArea.setBox(entity);
289
- triggerAreaEventsSystem.onTriggerEnter(entity, function (_result) {
289
+ triggerAreaEventsSystem.onTriggerEnter(entity, function (result) {
290
+ if (result.trigger?.entity !== engine.PlayerEntity)
291
+ return;
290
292
  const triggerEvents = getTriggerEvents(entity);
291
293
  triggerEvents.emit(TriggerType.ON_PLAYER_ENTERS_AREA);
292
294
  });
293
- triggerAreaEventsSystem.onTriggerExit(entity, function (_result) {
295
+ triggerAreaEventsSystem.onTriggerExit(entity, function (result) {
296
+ if (result.trigger?.entity !== engine.PlayerEntity)
297
+ return;
294
298
  const triggerEvents = getTriggerEvents(entity);
295
299
  triggerEvents.emit(TriggerType.ON_PLAYER_LEAVES_AREA);
296
300
  });
@@ -331,4 +335,4 @@ export function createTriggersSystem(engine, components, pointerEventsSystem, tw
331
335
  }
332
336
  }
333
337
  }
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUVMLFVBQVUsRUFFVixXQUFXLEVBQ1gsdUJBQXVCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUWhFLE9BQU8sRUFDTCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsZ0NBQWdDLEVBQ2hDLGFBQWEsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUN6QyxNQUFNLFdBQVcsR0FBeUMsRUFBRSxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRTdDLElBQUksb0JBQW9CLEdBQXNDLElBQUksQ0FBQztBQUVuRSxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxDQUFD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a0M7WUFDckUsV0FBVyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFDbEMsQ0FBQztZQUNELE1BQU0sYUFBYSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQy9DLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSUVuZ2luZSxcbiAgRW50aXR5LFxuICBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbixcbiAgRGVlcFJlYWRvbmx5T2JqZWN0LFxuICBQb2ludGVyRXZlbnRzU3lzdGVtLFxuICBUd2VlblN5c3RlbSxcbn0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IHtcbiAgSW5wdXRBY3Rpb24sXG4gIFR3ZWVuU3RhdGUsXG4gIFR3ZWVuU3RhdGVTdGF0dXMsXG4gIFRyaWdnZXJBcmVhLFxuICB0cmlnZ2VyQXJlYUV2ZW50c1N5c3RlbSxcbn0gZnJvbSAnQGRjbC9lY3MnO1xuaW1wb3J0IHsgVmVjdG9yMyB9IGZyb20gJ0BkY2wvc2RrL21hdGgnO1xuaW1wb3J0IHsgZ2V0UGxheWVyUG9zaXRpb24sIGdldFdvcmxkUG9zaXRpb24gfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHR5cGUge1xuICBBY3Rpb24sXG4gIFRyaWdnZXIsXG4gIFRyaWdnZXJBY3Rpb24sXG4gIFRyaWdnZXJDb25kaXRpb24sXG4gIEVuZ2luZUNvbXBvbmVudHMsXG59IGZyb20gJy4vZGVmaW5pdGlvbnMnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50TmFtZSxcbiAgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbixcbiAgVHJpZ2dlckNvbmRpdGlvblR5cGUsXG4gIFRyaWdnZXJUeXBlLFxuICBnZXRDb25kaXRpb25UeXBlc0J5Q29tcG9uZW50TmFtZSxcbiAgZ2V0Q29tcG9uZW50cyxcbn0gZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBnZXRDdXJyZW50VmFsdWUsIGdldFByZXZpb3VzVmFsdWUgfSBmcm9tICcuL3N0YXRlcyc7XG5pbXBvcnQgeyBnZXRBY3Rpb25FdmVudHMsIGdldFRyaWdnZXJFdmVudHMgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBnZXRQYXlsb2FkIH0gZnJvbSAnLi9hY3Rpb24tdHlwZXMnO1xuaW1wb3J0IHsgZ2xvYmFsSW5wdXRBY3Rpb25zIH0gZnJvbSAnLi9pbnB1dC1hY3Rpb25zJztcbmltcG9ydCB7IHRpY2tTZXQgfSBmcm9tICcuL3RpbWVyJztcblxuY29uc3QgaW5pdGVkRW50aXRpZXMgPSBuZXcgU2V0PEVudGl0eT4oKTtcbmNvbnN0IGFjdGlvblF1ZXVlOiB7IGVudGl0eTogRW50aXR5OyBhY3Rpb246IEFjdGlvbiB9W10gPSBbXTtcblxuZXhwb3J0IGNvbnN0IGRhbWFnZVRhcmdldHMgPSBuZXcgU2V0PEVudGl0eT4oKTtcbmV4cG9ydCBjb25zdCBoZWFsVGFyZ2V0cyA9IG5ldyBTZXQ8RW50aXR5PigpO1xuXG5sZXQgaW50ZXJuYWxJbml0VHJpZ2dlcnM6ICgoZW50aXR5OiBFbnRpdHkpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0VHJpZ2dlcnMoZW50aXR5OiBFbnRpdHkpIHtcbiAgaWYgKGludGVybmFsSW5pdFRyaWdnZXJzKSB7XG4gICAgcmV0dXJuIGludGVybmFsSW5pdFRyaWdnZXJzKGVudGl0eSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY2FsbCBpbml0VHJpZ2dlcnMgd2hpbGUgdHJpZ2dlcnNTeXN0ZW0gaGFzIG5vdCBiZWVuIGNyZWF0ZWQnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVRyaWdnZXJzU3lzdGVtKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGNvbXBvbmVudHM6IEVuZ2luZUNvbXBvbmVudHMsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHR3ZWVuU3lzdGVtOiBUd2VlblN5c3RlbSxcbikge1xuICBjb25zdCB7IFR3ZWVuOiBUd2VlbkNvbXBvbmVudCwgUG9pbnRlckV2ZW50cyB9ID0gY29tcG9uZW50cztcbiAgY29uc3QgeyBBY3Rpb25zLCBTdGF0ZXMsIENvdW50ZXIsIFRyaWdnZXJzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSk7XG5cbiAgLy8gc2F2ZSByZWZlcmVuY2UgdG8gdGhlIGluaXQgZnVuY3Rpb25cbiAgaW50ZXJuYWxJbml0VHJpZ2dlcnMgPSBpbml0RW50aXR5VHJpZ2dlcnM7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIHRyaWdnZXJzU3lzdGVtKF9kdDogbnVtYmVyKSB7XG4gICAgLy8gcHJvY2VzcyBhY3Rpb24gcXVldWVcbiAgICB3aGlsZSAoYWN0aW9uUXVldWUubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgeyBlbnRpdHksIGFjdGlvbiB9ID0gYWN0aW9uUXVldWUuc2hpZnQoKSE7XG4gICAgICBjb25zdCBhY3Rpb25FdmVudHMgPSBnZXRBY3Rpb25FdmVudHMoZW50aXR5KTtcbiAgICAgIGFjdGlvbkV2ZW50cy5lbWl0KGFjdGlvbi5uYW1lLCBnZXRQYXlsb2FkKGFjdGlvbikpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGl0aWVzV2l0aFRyaWdnZXJzID0gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKFRyaWdnZXJzKSk7XG4gICAgZm9yIChjb25zdCBbZW50aXR5XSBvZiBlbnRpdGllc1dpdGhUcmlnZ2Vycykge1xuICAgICAgaW5pdEVudGl0eVRyaWdnZXJzKGVudGl0eSk7XG4gICAgICBoYW5kbGVPblR3ZWVuRW5kKGVudGl0eSk7XG4gICAgfVxuICB9O1xuXG4gIGZ1bmN0aW9uIGluaXRFbnRpdHlUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICAgIGlmICghVHJpZ2dlcnMuaGFzKGVudGl0eSkgfHwgaW5pdGVkRW50aXRpZXMuaGFzKGVudGl0eSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBnZXQgdHJpZ2dlcnMgZGF0YVxuICAgIGNvbnN0IHRyaWdnZXJzID0gVHJpZ2dlcnMuZ2V0KGVudGl0eSk7XG5cbiAgICAvLyBpbml0aWFsaXplIHRyaWdnZXJzIGZvciBnaXZlbiBlbnRpdHlcbiAgICBjb25zdCB0eXBlcyA9IHRyaWdnZXJzLnZhbHVlLnJlZHVjZShcbiAgICAgICh0eXBlcywgdHJpZ2dlcikgPT4gdHlwZXMuYWRkKHRyaWdnZXIudHlwZSksXG4gICAgICBuZXcgU2V0PFRyaWdnZXJUeXBlPigpLFxuICAgICk7XG4gICAgZm9yIChjb25zdCB0eXBlIG9mIHR5cGVzKSB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgLyoqIEBkZXByZWNhdGVkIHVzZSBPTl9JTlBVVF9BQ1RJT04gaW5zdGVhZCAqL1xuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0NMSUNLOiB7XG4gICAgICAgICAgaW5pdE9uQ2xpY2tUcmlnZ2VyKGVudGl0eSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9JTlBVVF9BQ1RJT046IHtcbiAgICAgICAgICBpbml0T25JbnB1dEFjdGlvblRyaWdnZXIoZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9FTlRFUlNfQVJFQTpcbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUE6IHtcbiAgICAgICAgICBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fREFNQUdFOiB7XG4gICAgICAgICAgaW5pdE9uRGFtYWdlKGVudGl0eSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9IRUFMX1BMQVlFUjoge1xuICAgICAgICAgIGluaXRPbkhlYWxQbGF5ZXIoZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSzoge1xuICAgICAgICAgIGluaXRPbkdsb2JhbENpY2soZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9QUklNQVJZOiB7XG4gICAgICAgICAgaW5pdE9uR2xvYmFsUHJpbWFyeShlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1NFQ09OREFSWToge1xuICAgICAgICAgIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fVElDSzoge1xuICAgICAgICAgIGluaXRPblRpY2soZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJpbmQgdHJpZ2dlcnNcbiAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgIGZvciAoY29uc3QgdHJpZ2dlciBvZiB0cmlnZ2Vycy52YWx1ZSkge1xuICAgICAgdHJpZ2dlckV2ZW50cy5vbih0cmlnZ2VyLnR5cGUsICgpID0+IHtcbiAgICAgICAgaWYgKGNoZWNrQ29uZGl0aW9ucyh0cmlnZ2VyKSkge1xuICAgICAgICAgIGZvciAoY29uc3QgdHJpZ2dlckFjdGlvbiBvZiB0cmlnZ2VyLmFjdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChpc1ZhbGlkQWN0aW9uKHRyaWdnZXJBY3Rpb24pKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5QWN0aW9uKHRyaWdnZXJBY3Rpb24pO1xuICAgICAgICAgICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWN0aW9ucyA9IEFjdGlvbnMuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IGFjdGlvbnMudmFsdWUuZmluZCgkID0+ICQubmFtZSA9PT0gdHJpZ2dlckFjdGlvbi5uYW1lKTtcbiAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gYWN0aW9ucyBhcmUgZW5xdWV1ZWQgdG8gYmUgZXhlY3V0ZWQgb24gdGhlIG5leHQgdGljayBhZnRlciBhbGwgdGhlIHRyaWdnZXJzIGhhdmUgYmVlbiBwcm9jZXNzZWQsXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgaXMgdG8gYXZvaWQgb25lIHRyaWdnZXIgbWVzc2luZyB3aXRoIG90aGVyIHRyaWdnZXIncyBjb25kaXRpb25zXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvblF1ZXVlLnB1c2goeyBlbnRpdHksIGFjdGlvbiB9KTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fU1BBV04pO1xuXG4gICAgaW5pdGVkRW50aXRpZXMuYWRkKGVudGl0eSk7XG4gIH1cblxuICBmdW5jdGlvbiBpc1ZhbGlkQWN0aW9uKGFjdGlvbjogVHJpZ2dlckFjdGlvbikge1xuICAgIGNvbnN0IHsgaWQsIG5hbWUgfSA9IGFjdGlvbjtcbiAgICByZXR1cm4gISFpZCAmJiAhIW5hbWU7XG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0NvbmRpdGlvbnModHJpZ2dlcjogRGVlcFJlYWRvbmx5T2JqZWN0PFRyaWdnZXI+KSB7XG4gICAgaWYgKHRyaWdnZXIuY29uZGl0aW9ucyAmJiB0cmlnZ2VyLmNvbmRpdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHRyaWdnZXIuY29uZGl0aW9ucy5tYXAoY2hlY2tDb25kaXRpb24pO1xuICAgICAgY29uc3QgaXNUcnVlID0gKHJlc3VsdD86IGJvb2xlYW4pID0+ICEhcmVzdWx0O1xuICAgICAgY29uc3Qgb3BlcmF0aW9uID0gdHJpZ2dlci5vcGVyYXRpb24gfHwgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5BTkQ7XG4gICAgICBzd2l0Y2ggKG9wZXJhdGlvbikge1xuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uQU5EOiB7XG4gICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnMuZXZlcnkoaXNUcnVlKTtcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25PcGVyYXRpb24uT1I6IHtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5zb21lKGlzVHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gaWYgdGhlcmUgYXJlIG5vIGNvbmRpdGlvbnMsIHRoZSB0cmlnZ2VyIGNhbiBjb250aW51ZVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgZnVuY3Rpb24gY2hlY2tDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uKTtcbiAgICBpZiAoZW50aXR5KSB7XG4gICAgICB0cnkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi50eXBlKSB7XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZShzdGF0ZXMpO1xuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09PSBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1NUQVRFX0lTX05PVDoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBnZXRDdXJyZW50VmFsdWUoc3RhdGVzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JUzoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpO1xuICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZSA9PT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9QUkVWSU9VU19TVEFURV9JU19OT1Q6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNWYWx1ZSA9IGdldFByZXZpb3VzVmFsdWUoc3RhdGVzKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWUgIT09IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9FUVVBTFM6IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPT09IG51bWVyaWM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPiBudW1lcmljO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0NPVU5URVJfSVNfTEVTU19USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBjb3VudGVyID0gQ291bnRlci5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgICAgICAgIGlmIChjb3VudGVyICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWMgPSBOdW1iZXIoY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb3VudGVyLnZhbHVlIDwgbnVtZXJpYztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9ESVNUQU5DRV9UT19QTEFZRVJfTEVTU19USEFOOiB7XG4gICAgICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGdldFdvcmxkUG9zaXRpb24oZW50aXR5KTtcblxuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yMy5kaXN0YW5jZShwb3NpdGlvbiwgZ2V0UGxheWVyUG9zaXRpb24oKSkgPCBudW1lcmljO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9HUkVBVEVSX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpO1xuICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgaWYgKCFpc05hTihudW1lcmljKSkge1xuICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yMy5kaXN0YW5jZShwb3NpdGlvbiwgZ2V0UGxheWVyUG9zaXRpb24oKSkgPiBudW1lcmljO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBpbiBjb25kaXRpb24nLCBjb25kaXRpb24pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbnRpdHlCeUlkPFQgZXh0ZW5kcyB7IGlkOiBudW1iZXIgfT4oY29tcG9uZW50TmFtZTogc3RyaW5nLCBpZDogbnVtYmVyKSB7XG4gICAgY29uc3QgQ29tcG9uZW50ID0gZW5naW5lLmdldENvbXBvbmVudChcbiAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgKSBhcyBMYXN0V3JpdGVXaW5FbGVtZW50U2V0Q29tcG9uZW50RGVmaW5pdGlvbjxUPjtcbiAgICBjb25zdCBlbnRpdGllcyA9IEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChDb21wb25lbnQpKTtcbiAgICBjb25zdCByZXN1bHQgPSBlbnRpdGllcy5maW5kKChbX2VudGl0eSwgdmFsdWVdKSA9PiB2YWx1ZS5pZCA9PT0gaWQpO1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHJlc3VsdCkgJiYgcmVzdWx0Lmxlbmd0aCA+IDAgPyByZXN1bHRbMF0gOiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgaWYgKGFjdGlvbi5pZCkge1xuICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlJZChDb21wb25lbnROYW1lLkFDVElPTlMsIGFjdGlvbi5pZCk7XG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgZnVuY3Rpb24gZ2V0RW50aXR5QnlDb25kaXRpb24oY29uZGl0aW9uOiBUcmlnZ2VyQ29uZGl0aW9uKSB7XG4gICAgY29uc3QgY29tcG9uZW50TmFtZSA9IE9iamVjdC52YWx1ZXMoQ29tcG9uZW50TmFtZSlcbiAgICAgIC5tYXAoY29tcG9uZW50TmFtZSA9PiAoe1xuICAgICAgICBjb21wb25lbnROYW1lLFxuICAgICAgICBjb25kaXRpb25UeXBlczogZ2V0Q29uZGl0aW9uVHlwZXNCeUNvbXBvbmVudE5hbWUoY29tcG9uZW50TmFtZSksXG4gICAgICB9KSlcbiAgICAgIC5yZWR1Y2U8Q29tcG9uZW50TmFtZSB8IG51bGw+KFxuICAgICAgICAocmVzdWx0LCB7IGNvbXBvbmVudE5hbWUsIGNvbmRpdGlvblR5cGVzIH0pID0+XG4gICAgICAgICAgY29uZGl0aW9uVHlwZXMuaW5jbHVkZXMoY29uZGl0aW9uLnR5cGUpID8gY29tcG9uZW50TmFtZSA6IHJlc3VsdCxcbiAgICAgICAgbnVsbCxcbiAgICAgICk7XG4gICAgaWYgKGNvbXBvbmVudE5hbWUgJiYgY29uZGl0aW9uLmlkKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBnZXRFbnRpdHlCeUlkKGNvbXBvbmVudE5hbWUsIGNvbmRpdGlvbi5pZCk7XG4gICAgICBpZiAoZW50aXR5KSB7XG4gICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqIEBkZXByZWNhdGVkIHVzZSBPTl9JTlBVVF9BQ1RJT04gaW5zdGVhZCAqL1xuICAvLyBPTl9DTElDS1xuICBmdW5jdGlvbiBpbml0T25DbGlja1RyaWdnZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBjb25zdCBwb2ludGVyRXZlbnQgPSBQb2ludGVyRXZlbnRzLmdldE11dGFibGVPck51bGwoZW50aXR5KTtcbiAgICBsZXQgb3B0cyA9IHsgYnV0dG9uOiBJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCBob3ZlclRleHQ6ICdDbGljaycgfTtcblxuICAgIGlmIChwb2ludGVyRXZlbnQpIHtcbiAgICAgIC8vIEF2b2lkIGNyZWF0aW5nIGR1cGxpY2F0ZXMgb2YgdGhlIHNhbWUgcG9pbnRlckV2ZW50LlxuICAgICAgLy8gVGhpcyB1c3VhbGx5IGhhcHBlbnMgd2l0aCBlbnRpdGllcyB0aGF0IGFyZSBjcmVhdGVkIGF0IHJ1bnRpbWUgYW5kIGFyZSBiZWluZyBzeW5jcm9uaXplZC5cbiAgICAgIC8vIElmIHlvdSByZWNlaXZlIGFuIGVudGl0eSB3aXRoIHBvaW50ZXJFdmVudCB0aGlzIGZ1bmN0aW9uIGluc2lkZSB0aGUgY3JlYXRlVHJpZ2dlclN5c3RlbSBpcyBnZW5lcmF0aW5nIGFub3RoZXIgb25lIHdpdGggdGhlIHNhbWUgdmFsdWVzLlxuICAgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzLmZpbmRJbmRleChcbiAgICAgICAgJCA9PiAkLmV2ZW50SW5mbz8uYnV0dG9uID09PSBvcHRzLmJ1dHRvbixcbiAgICAgICk7XG4gICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgZXZlbnRJbmZvID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHNbZXhpc3RpbmdJbmRleF0uZXZlbnRJbmZvO1xuICAgICAgICBvcHRzID0geyAuLi5vcHRzLCAuLi5ldmVudEluZm8gfTsgLy8gTWVyZ2UgZGVmYXVsdCBvcHRzIHdpdGggdGhlIGV4aXN0aW5nIHBvaW50ZXJFdmVudC5cbiAgICAgICAgcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuc3BsaWNlKGV4aXN0aW5nSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgIHtcbiAgICAgICAgZW50aXR5LFxuICAgICAgICBvcHRzLFxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0NMSUNLKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIE9OX0lOUFVUX0FDVElPTlxuICBmdW5jdGlvbiBpbml0T25JbnB1dEFjdGlvblRyaWdnZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBjb25zdCBwb2ludGVyRXZlbnQgPSBQb2ludGVyRXZlbnRzLmdldE11dGFibGVPck51bGwoZW50aXR5KTtcbiAgICBsZXQgb3B0cyA9IHsgYnV0dG9uOiBJbnB1dEFjdGlvbi5JQV9QUklNQVJZLCBob3ZlclRleHQ6ICdQcmVzcycgfTtcblxuICAgIGlmIChwb2ludGVyRXZlbnQpIHtcbiAgICAgIC8vIEF2b2lkIGNyZWF0aW5nIGR1cGxpY2F0ZXMgb2YgdGhlIHNhbWUgcG9pbnRlckV2ZW50LlxuICAgICAgLy8gVGhpcyB1c3VhbGx5IGhhcHBlbnMgd2l0aCBlbnRpdGllcyB0aGF0IGFyZSBjcmVhdGVkIGF0IHJ1bnRpbWUgYW5kIGFyZSBiZWluZyBzeW5jcm9uaXplZC5cbiAgICAgIC8vIElmIHlvdSByZWNlaXZlIGFuIGVudGl0eSB3aXRoIHBvaW50ZXJFdmVudCB0aGlzIGZ1bmN0aW9uIGluc2lkZSB0aGUgY3JlYXRlVHJpZ2dlclN5c3RlbSBpcyBnZW5lcmF0aW5nIGFub3RoZXIgb25lIHdpdGggdGhlIHNhbWUgdmFsdWVzLlxuICAgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IHBvaW50ZXJFdmVudC5wb2ludGVyRXZlbnRzLmZpbmRJbmRleChcbiAgICAgICAgJCA9PiAkLmV2ZW50SW5mbz8uYnV0dG9uID09PSBvcHRzLmJ1dHRvbixcbiAgICAgICk7XG4gICAgICBpZiAoZXhpc3RpbmdJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgZXZlbnRJbmZvID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHNbZXhpc3RpbmdJbmRleF0uZXZlbnRJbmZvO1xuICAgICAgICBvcHRzID0geyAuLi5vcHRzLCAuLi5ldmVudEluZm8gfTsgLy8gTWVyZ2UgZGVmYXVsdCBvcHRzIHdpdGggdGhlIGV4aXN0aW5nIHBvaW50ZXJFdmVudC5cbiAgICAgICAgcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuc3BsaWNlKGV4aXN0aW5nSW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHBvaW50ZXJFdmVudHNTeXN0ZW0ub25Qb2ludGVyRG93bihcbiAgICAgIHtcbiAgICAgICAgZW50aXR5LFxuICAgICAgICBvcHRzLFxuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTik7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICAvLyBPTl9QTEFZRVJfRU5URVJTX0FSRUEgLyBPTl9QTEFZRVJfTEVBVkVTX0FSRUFcbiAgZnVuY3Rpb24gaW5pdE9uUGxheWVyVHJpZ2dlckFyZWEoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBUcmlnZ2VyQXJlYS5zZXRCb3goZW50aXR5KTtcblxuICAgIHRyaWdnZXJBcmVhRXZlbnRzU3lzdGVtLm9uVHJpZ2dlckVudGVyKGVudGl0eSwgZnVuY3Rpb24gKF9yZXN1bHQpIHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSk7XG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBKTtcbiAgICB9KTtcblxuICAgIHRyaWdnZXJBcmVhRXZlbnRzU3lzdGVtLm9uVHJpZ2dlckV4aXQoZW50aXR5LCBmdW5jdGlvbiAoX3Jlc3VsdCkge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfTEVBVkVTX0FSRUEpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uRGFtYWdlKGVudGl0eTogRW50aXR5KSB7XG4gICAgZGFtYWdlVGFyZ2V0cy5hZGQoZW50aXR5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkhlYWxQbGF5ZXIoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBoZWFsVGFyZ2V0cy5hZGQoZW50aXR5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbENpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICBnbG9iYWxJbnB1dEFjdGlvbnMub24oSW5wdXRBY3Rpb24uSUFfUE9JTlRFUiwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfQ0xJQ0spO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsUHJpbWFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QUklNQVJZLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9QUklNQVJZKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPbkdsb2JhbFNlY29uZGFyeShlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9TRUNPTkRBUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSk7XG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX1NFQ09OREFSWSk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25UaWNrKGVudGl0eTogRW50aXR5KSB7XG4gICAgdGlja1NldC5hZGQoZW50aXR5KTtcbiAgfVxuXG4gIC8vIE9OX1RXRUVOX0VORFxuICBmdW5jdGlvbiBoYW5kbGVPblR3ZWVuRW5kKGVudGl0eTogRW50aXR5KSB7XG4gICAgaWYgKFxuICAgICAgVHdlZW5Db21wb25lbnQuZ2V0T3JOdWxsKGVudGl0eSkgJiZcbiAgICAgIFR3ZWVuU3RhdGUuZ2V0T3JOdWxsKGVudGl0eSk/LnN0YXRlID09PSBUd2VlblN0YXRlU3RhdHVzLlRTX0NPTVBMRVRFRCAmJlxuICAgICAgdHdlZW5TeXN0ZW0udHdlZW5Db21wbGV0ZWQoZW50aXR5KVxuICAgICkge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9UV0VFTl9FTkQpO1xuICAgIH1cbiAgfVxufVxuIl19
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJpZ2dlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUVMLFVBQVUsRUFFVixXQUFXLEVBQ1gsdUJBQXVCLEdBQ3hCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBUWhFLE9BQU8sRUFDTCxhQUFhLEVBQ2IseUJBQXlCLEVBQ3pCLG9CQUFvQixFQUNwQixXQUFXLEVBQ1gsZ0NBQWdDLEVBQ2hDLGFBQWEsR0FDZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUN6QyxNQUFNLFdBQVcsR0FBeUMsRUFBRSxDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBRTdDLElBQUksb0JBQW9CLEdBQXNDLElBQUksQ0FBQztBQUVuRSxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQWM7SUFDekMsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sb0JBQW9CLENBQUMsTUFBTSxDQUFD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LENBQUM7SUFDdEIsQ0FBQztJQUdELFNBQVMsZ0JBQWdCLENBQUMsTUFBYztRQUN0QyxJQUNFLGNBQWMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxNQUFrQztZQUNyRSxXQUFXLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUNsQyxDQUFDO1lBQ0QsTUFBTSxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0MsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDL0MsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBJRW5naW5lLFxuICBFbnRpdHksXG4gIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uLFxuICBEZWVwUmVhZG9ubHlPYmplY3QsXG4gIFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIFR3ZWVuU3lzdGVtLFxufSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQge1xuICBJbnB1dEFjdGlvbixcbiAgVHdlZW5TdGF0ZSxcbiAgVHdlZW5TdGF0ZVN0YXR1cyxcbiAgVHJpZ2dlckFyZWEsXG4gIHRyaWdnZXJBcmVhRXZlbnRzU3lzdGVtLFxufSBmcm9tICdAZGNsL2Vjcyc7XG5pbXBvcnQgeyBWZWN0b3IzIH0gZnJvbSAnQGRjbC9zZGsvbWF0aCc7XG5pbXBvcnQgeyBnZXRQbGF5ZXJQb3NpdGlvbiwgZ2V0V29ybGRQb3NpdGlvbiB9IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7XG4gIEFjdGlvbixcbiAgVHJpZ2dlcixcbiAgVHJpZ2dlckFjdGlvbixcbiAgVHJpZ2dlckNvbmRpdGlvbixcbiAgRW5naW5lQ29tcG9uZW50cyxcbn0gZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQge1xuICBDb21wb25lbnROYW1lLFxuICBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLFxuICBUcmlnZ2VyQ29uZGl0aW9uVHlwZSxcbiAgVHJpZ2dlclR5cGUsXG4gIGdldENvbmRpdGlvblR5cGVzQnlDb21wb25lbnROYW1lLFxuICBnZXRDb21wb25lbnRzLFxufSBmcm9tICcuL2RlZmluaXRpb25zJztcbmltcG9ydCB7IGdldEN1cnJlbnRWYWx1ZSwgZ2V0UHJldmlvdXNWYWx1ZSB9IGZyb20gJy4vc3RhdGVzJztcbmltcG9ydCB7IGdldEFjdGlvbkV2ZW50cywgZ2V0VHJpZ2dlckV2ZW50cyB9IGZyb20gJy4vZXZlbnRzJztcbmltcG9ydCB7IGdldFBheWxvYWQgfSBmcm9tICcuL2FjdGlvbi10eXBlcyc7XG5pbXBvcnQgeyBnbG9iYWxJbnB1dEFjdGlvbnMgfSBmcm9tICcuL2lucHV0LWFjdGlvbnMnO1xuaW1wb3J0IHsgdGlja1NldCB9IGZyb20gJy4vdGltZXInO1xuXG5jb25zdCBpbml0ZWRFbnRpdGllcyA9IG5ldyBTZXQ8RW50aXR5PigpO1xuY29uc3QgYWN0aW9uUXVldWU6IHsgZW50aXR5OiBFbnRpdHk7IGFjdGlvbjogQWN0aW9uIH1bXSA9IFtdO1xuXG5leHBvcnQgY29uc3QgZGFtYWdlVGFyZ2V0cyA9IG5ldyBTZXQ8RW50aXR5PigpO1xuZXhwb3J0IGNvbnN0IGhlYWxUYXJnZXRzID0gbmV3IFNldDxFbnRpdHk+KCk7XG5cbmxldCBpbnRlcm5hbEluaXRUcmlnZ2VyczogKChlbnRpdHk6IEVudGl0eSkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUcmlnZ2VycyhlbnRpdHk6IEVudGl0eSkge1xuICBpZiAoaW50ZXJuYWxJbml0VHJpZ2dlcnMpIHtcbiAgICByZXR1cm4gaW50ZXJuYWxJbml0VHJpZ2dlcnMoZW50aXR5KTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjYWxsIGluaXRUcmlnZ2VycyB3aGlsZSB0cmlnZ2Vyc1N5c3RlbSBoYXMgbm90IGJlZW4gY3JlYXRlZCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVHJpZ2dlcnNTeXN0ZW0oXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgY29tcG9uZW50czogRW5naW5lQ29tcG9uZW50cyxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgdHdlZW5TeXN0ZW06IFR3ZWVuU3lzdGVtLFxuKSB7XG4gIGNvbnN0IHsgVHdlZW46IFR3ZWVuQ29tcG9uZW50LCBQb2ludGVyRXZlbnRzIH0gPSBjb21wb25lbnRzO1xuICBjb25zdCB7IEFjdGlvbnMsIFN0YXRlcywgQ291bnRlciwgVHJpZ2dlcnMgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKTtcblxuICAvLyBzYXZlIHJlZmVyZW5jZSB0byB0aGUgaW5pdCBmdW5jdGlvblxuICBpbnRlcm5hbEluaXRUcmlnZ2VycyA9IGluaXRFbnRpdHlUcmlnZ2VycztcblxuICByZXR1cm4gZnVuY3Rpb24gdHJpZ2dlcnNTeXN0ZW0oX2R0OiBudW1iZXIpIHtcbiAgICAvLyBwcm9jZXNzIGFjdGlvbiBxdWV1ZVxuICAgIHdoaWxlIChhY3Rpb25RdWV1ZS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IGVudGl0eSwgYWN0aW9uIH0gPSBhY3Rpb25RdWV1ZS5zaGlmdCgpITtcbiAgICAgIGNvbnN0IGFjdGlvbkV2ZW50cyA9IGdldEFjdGlvbkV2ZW50cyhlbnRpdHkpO1xuICAgICAgYWN0aW9uRXZlbnRzLmVtaXQoYWN0aW9uLm5hbWUsIGdldFBheWxvYWQoYWN0aW9uKSk7XG4gICAgfVxuXG4gICAgY29uc3QgZW50aXRpZXNXaXRoVHJpZ2dlcnMgPSBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoVHJpZ2dlcnMpKTtcbiAgICBmb3IgKGNvbnN0IFtlbnRpdHldIG9mIGVudGl0aWVzV2l0aFRyaWdnZXJzKSB7XG4gICAgICBpbml0RW50aXR5VHJpZ2dlcnMoZW50aXR5KTtcbiAgICAgIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5KTtcbiAgICB9XG4gIH07XG5cbiAgZnVuY3Rpb24gaW5pdEVudGl0eVRyaWdnZXJzKGVudGl0eTogRW50aXR5KSB7XG4gICAgaWYgKCFUcmlnZ2Vycy5oYXMoZW50aXR5KSB8fCBpbml0ZWRFbnRpdGllcy5oYXMoZW50aXR5KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGdldCB0cmlnZ2VycyBkYXRhXG4gICAgY29uc3QgdHJpZ2dlcnMgPSBUcmlnZ2Vycy5nZXQoZW50aXR5KTtcblxuICAgIC8vIGluaXRpYWxpemUgdHJpZ2dlcnMgZm9yIGdpdmVuIGVudGl0eVxuICAgIGNvbnN0IHR5cGVzID0gdHJpZ2dlcnMudmFsdWUucmVkdWNlKFxuICAgICAgKHR5cGVzLCB0cmlnZ2VyKSA9PiB0eXBlcy5hZGQodHJpZ2dlci50eXBlKSxcbiAgICAgIG5ldyBTZXQ8VHJpZ2dlclR5cGU+KCksXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IHR5cGUgb2YgdHlwZXMpIHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAvKiogQGRlcHJlY2F0ZWQgdXNlIE9OX0lOUFVUX0FDVElPTiBpbnN0ZWFkICovXG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fQ0xJQ0s6IHtcbiAgICAgICAgICBpbml0T25DbGlja1RyaWdnZXIoZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0lOUFVUX0FDVElPTjoge1xuICAgICAgICAgIGluaXRPbklucHV0QWN0aW9uVHJpZ2dlcihlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fUExBWUVSX0VOVEVSU19BUkVBOlxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9MRUFWRVNfQVJFQToge1xuICAgICAgICAgIGluaXRPblBsYXllclRyaWdnZXJBcmVhKGVudGl0eSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9EQU1BR0U6IHtcbiAgICAgICAgICBpbml0T25EYW1hZ2UoZW50aXR5KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFRyaWdnZXJUeXBlLk9OX0hFQUxfUExBWUVSOiB7XG4gICAgICAgICAgaW5pdE9uSGVhbFBsYXllcihlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX0NMSUNLOiB7XG4gICAgICAgICAgaW5pdE9uR2xvYmFsQ2ljayhlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlk6IHtcbiAgICAgICAgICBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZOiB7XG4gICAgICAgICAgaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5PTl9USUNLOiB7XG4gICAgICAgICAgaW5pdE9uVGljayhlbnRpdHkpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gYmluZCB0cmlnZ2Vyc1xuICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSk7XG4gICAgZm9yIChjb25zdCB0cmlnZ2VyIG9mIHRyaWdnZXJzLnZhbHVlKSB7XG4gICAgICB0cmlnZ2VyRXZlbnRzLm9uKHRyaWdnZXIudHlwZSwgKCkgPT4ge1xuICAgICAgICBpZiAoY2hlY2tDb25kaXRpb25zKHRyaWdnZXIpKSB7XG4gICAgICAgICAgZm9yIChjb25zdCB0cmlnZ2VyQWN0aW9uIG9mIHRyaWdnZXIuYWN0aW9ucykge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWRBY3Rpb24odHJpZ2dlckFjdGlvbikpIHtcbiAgICAgICAgICAgICAgY29uc3QgZW50aXR5ID0gZ2V0RW50aXR5QnlBY3Rpb24odHJpZ2dlckFjdGlvbik7XG4gICAgICAgICAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25zID0gQWN0aW9ucy5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gYWN0aW9ucy52YWx1ZS5maW5kKCQgPT4gJC5uYW1lID09PSB0cmlnZ2VyQWN0aW9uLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAvLyBhY3Rpb25zIGFyZSBlbnF1ZXVlZCB0byBiZSBleGVjdXRlZCBvbiB0aGUgbmV4dCB0aWNrIGFmdGVyIGFsbCB0aGUgdHJpZ2dlcnMgaGF2ZSBiZWVuIHByb2Nlc3NlZCxcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyB0byBhdm9pZCBvbmUgdHJpZ2dlciBtZXNzaW5nIHdpdGggb3RoZXIgdHJpZ2dlcidzIGNvbmRpdGlvbnNcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uUXVldWUucHVzaCh7IGVudGl0eSwgYWN0aW9uIH0pO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9TUEFXTik7XG5cbiAgICBpbml0ZWRFbnRpdGllcy5hZGQoZW50aXR5KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGlzVmFsaWRBY3Rpb24oYWN0aW9uOiBUcmlnZ2VyQWN0aW9uKSB7XG4gICAgY29uc3QgeyBpZCwgbmFtZSB9ID0gYWN0aW9uO1xuICAgIHJldHVybiAhIWlkICYmICEhbmFtZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNoZWNrQ29uZGl0aW9ucyh0cmlnZ2VyOiBEZWVwUmVhZG9ubHlPYmplY3Q8VHJpZ2dlcj4pIHtcbiAgICBpZiAodHJpZ2dlci5jb25kaXRpb25zICYmIHRyaWdnZXIuY29uZGl0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjb25kaXRpb25zID0gdHJpZ2dlci5jb25kaXRpb25zLm1hcChjaGVja0NvbmRpdGlvbik7XG4gICAgICBjb25zdCBpc1RydWUgPSAocmVzdWx0PzogYm9vbGVhbikgPT4gISFyZXN1bHQ7XG4gICAgICBjb25zdCBvcGVyYXRpb24gPSB0cmlnZ2VyLm9wZXJhdGlvbiB8fCBUcmlnZ2VyQ29uZGl0aW9uT3BlcmF0aW9uLkFORDtcbiAgICAgIHN3aXRjaCAob3BlcmF0aW9uKSB7XG4gICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5BTkQ6IHtcbiAgICAgICAgICByZXR1cm4gY29uZGl0aW9ucy5ldmVyeShpc1RydWUpO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvbk9wZXJhdGlvbi5PUjoge1xuICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLnNvbWUoaXNUcnVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyBpZiB0aGVyZSBhcmUgbm8gY29uZGl0aW9ucywgdGhlIHRyaWdnZXIgY2FuIGNvbnRpbnVlXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBmdW5jdGlvbiBjaGVja0NvbmRpdGlvbihjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pIHtcbiAgICBjb25zdCBlbnRpdHkgPSBnZXRFbnRpdHlCeUNvbmRpdGlvbihjb25kaXRpb24pO1xuICAgIGlmIChlbnRpdHkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVM6IHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlcyA9IFN0YXRlcy5nZXRPck51bGwoZW50aXR5KTtcbiAgICAgICAgICAgIGlmIChzdGF0ZXMgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0Q3VycmVudFZhbHVlKHN0YXRlcyk7XG4gICAgICAgICAgICAgIHJldHVybiBjdXJyZW50VmFsdWUgPT09IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fU1RBVEVfSVNfTk9UOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGdldEN1cnJlbnRWYWx1ZShzdGF0ZXMpO1xuICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlICE9PSBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1BSRVZJT1VTX1NUQVRFX0lTOiB7XG4gICAgICAgICAgICBjb25zdCBzdGF0ZXMgPSBTdGF0ZXMuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICBpZiAoc3RhdGVzICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzVmFsdWUgPSBnZXRQcmV2aW91c1ZhbHVlKHN0YXRlcyk7XG4gICAgICAgICAgICAgIHJldHVybiBwcmV2aW91c1ZhbHVlID09PSBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX1BSRVZJT1VTX1NUQVRFX0lTX05PVDoge1xuICAgICAgICAgICAgY29uc3Qgc3RhdGVzID0gU3RhdGVzLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKHN0YXRlcyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBwcmV2aW91c1ZhbHVlID0gZ2V0UHJldmlvdXNWYWx1ZShzdGF0ZXMpO1xuICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXNWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0VRVUFMUzoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA9PT0gbnVtZXJpYztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNhc2UgVHJpZ2dlckNvbmRpdGlvblR5cGUuV0hFTl9DT1VOVEVSX0lTX0dSRUFURVJfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgY291bnRlciA9IENvdW50ZXIuZ2V0T3JOdWxsKGVudGl0eSk7XG4gICAgICAgICAgICBpZiAoY291bnRlciAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICAgIGlmICghaXNOYU4obnVtZXJpYykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY291bnRlci52YWx1ZSA+IG51bWVyaWM7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fQ09VTlRFUl9JU19MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50ZXIgPSBDb3VudGVyLmdldE9yTnVsbChlbnRpdHkpO1xuICAgICAgICAgICAgaWYgKGNvdW50ZXIgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgY29uc3QgbnVtZXJpYyA9IE51bWJlcihjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdW50ZXIudmFsdWUgPCBudW1lcmljO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgY2FzZSBUcmlnZ2VyQ29uZGl0aW9uVHlwZS5XSEVOX0RJU1RBTkNFX1RPX1BMQVlFUl9MRVNTX1RIQU46IHtcbiAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gZ2V0V29ybGRQb3NpdGlvbihlbnRpdHkpO1xuXG4gICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA8IG51bWVyaWM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIFRyaWdnZXJDb25kaXRpb25UeXBlLldIRU5fRElTVEFOQ0VfVE9fUExBWUVSX0dSRUFURVJfVEhBTjoge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBnZXRXb3JsZFBvc2l0aW9uKGVudGl0eSk7XG4gICAgICAgICAgICBjb25zdCBudW1lcmljID0gTnVtYmVyKGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBpZiAoIWlzTmFOKG51bWVyaWMpKSB7XG4gICAgICAgICAgICAgIHJldHVybiBWZWN0b3IzLmRpc3RhbmNlKHBvc2l0aW9uLCBnZXRQbGF5ZXJQb3NpdGlvbigpKSA+IG51bWVyaWM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGluIGNvbmRpdGlvbicsIGNvbmRpdGlvbik7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGdldEVudGl0eUJ5SWQ8VCBleHRlbmRzIHsgaWQ6IG51bWJlciB9Pihjb21wb25lbnROYW1lOiBzdHJpbmcsIGlkOiBudW1iZXIpIHtcbiAgICBjb25zdCBDb21wb25lbnQgPSBlbmdpbmUuZ2V0Q29tcG9uZW50KFxuICAgICAgY29tcG9uZW50TmFtZSxcbiAgICApIGFzIExhc3RXcml0ZVdpbkVsZW1lbnRTZXRDb21wb25lbnREZWZpbml0aW9uPFQ+O1xuICAgIGNvbnN0IGVudGl0aWVzID0gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKENvbXBvbmVudCkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IGVudGl0aWVzLmZpbmQoKFtfZW50aXR5LCB2YWx1ZV0pID0+IHZhbHVlLmlkID09PSBpZCk7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkocmVzdWx0KSAmJiByZXN1bHQubGVuZ3RoID4gMCA/IHJlc3VsdFswXSA6IG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbnRpdHlCeUFjdGlvbihhY3Rpb246IFRyaWdnZXJBY3Rpb24pIHtcbiAgICBpZiAoYWN0aW9uLmlkKSB7XG4gICAgICBjb25zdCBlbnRpdHkgPSBnZXRFbnRpdHlCeUlkKENvbXBvbmVudE5hbWUuQUNUSU9OUywgYWN0aW9uLmlkKTtcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBmdW5jdGlvbiBnZXRFbnRpdHlCeUNvbmRpdGlvbihjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pIHtcbiAgICBjb25zdCBjb21wb25lbnROYW1lID0gT2JqZWN0LnZhbHVlcyhDb21wb25lbnROYW1lKVxuICAgICAgLm1hcChjb21wb25lbnROYW1lID0+ICh7XG4gICAgICAgIGNvbXBvbmVudE5hbWUsXG4gICAgICAgIGNvbmRpdGlvblR5cGVzOiBnZXRDb25kaXRpb25UeXBlc0J5Q29tcG9uZW50TmFtZShjb21wb25lbnROYW1lKSxcbiAgICAgIH0pKVxuICAgICAgLnJlZHVjZTxDb21wb25lbnROYW1lIHwgbnVsbD4oXG4gICAgICAgIChyZXN1bHQsIHsgY29tcG9uZW50TmFtZSwgY29uZGl0aW9uVHlwZXMgfSkgPT5cbiAgICAgICAgICBjb25kaXRpb25UeXBlcy5pbmNsdWRlcyhjb25kaXRpb24udHlwZSkgPyBjb21wb25lbnROYW1lIDogcmVzdWx0LFxuICAgICAgICBudWxsLFxuICAgICAgKTtcbiAgICBpZiAoY29tcG9uZW50TmFtZSAmJiBjb25kaXRpb24uaWQpIHtcbiAgICAgIGNvbnN0IGVudGl0eSA9IGdldEVudGl0eUJ5SWQoY29tcG9uZW50TmFtZSwgY29uZGl0aW9uLmlkKTtcbiAgICAgIGlmIChlbnRpdHkpIHtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKiogQGRlcHJlY2F0ZWQgdXNlIE9OX0lOUFVUX0FDVElPTiBpbnN0ZWFkICovXG4gIC8vIE9OX0NMSUNLXG4gIGZ1bmN0aW9uIGluaXRPbkNsaWNrVHJpZ2dlcihlbnRpdHk6IEVudGl0eSkge1xuICAgIGNvbnN0IHBvaW50ZXJFdmVudCA9IFBvaW50ZXJFdmVudHMuZ2V0TXV0YWJsZU9yTnVsbChlbnRpdHkpO1xuICAgIGxldCBvcHRzID0geyBidXR0b246IElucHV0QWN0aW9uLklBX1BPSU5URVIsIGhvdmVyVGV4dDogJ0NsaWNrJyB9O1xuXG4gICAgaWYgKHBvaW50ZXJFdmVudCkge1xuICAgICAgLy8gQXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlcyBvZiB0aGUgc2FtZSBwb2ludGVyRXZlbnQuXG4gICAgICAvLyBUaGlzIHVzdWFsbHkgaGFwcGVucyB3aXRoIGVudGl0aWVzIHRoYXQgYXJlIGNyZWF0ZWQgYXQgcnVudGltZSBhbmQgYXJlIGJlaW5nIHN5bmNyb25pemVkLlxuICAgICAgLy8gSWYgeW91IHJlY2VpdmUgYW4gZW50aXR5IHdpdGggcG9pbnRlckV2ZW50IHRoaXMgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVUcmlnZ2VyU3lzdGVtIGlzIGdlbmVyYXRpbmcgYW5vdGhlciBvbmUgd2l0aCB0aGUgc2FtZSB2YWx1ZXMuXG4gICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuZmluZEluZGV4KFxuICAgICAgICAkID0+ICQuZXZlbnRJbmZvPy5idXR0b24gPT09IG9wdHMuYnV0dG9uLFxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCBldmVudEluZm8gPSBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50c1tleGlzdGluZ0luZGV4XS5ldmVudEluZm87XG4gICAgICAgIG9wdHMgPSB7IC4uLm9wdHMsIC4uLmV2ZW50SW5mbyB9OyAvLyBNZXJnZSBkZWZhdWx0IG9wdHMgd2l0aCB0aGUgZXhpc3RpbmcgcG9pbnRlckV2ZW50LlxuICAgICAgICBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cy5zcGxpY2UoZXhpc3RpbmdJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgICAge1xuICAgICAgICBlbnRpdHksXG4gICAgICAgIG9wdHMsXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fQ0xJQ0spO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLy8gT05fSU5QVVRfQUNUSU9OXG4gIGZ1bmN0aW9uIGluaXRPbklucHV0QWN0aW9uVHJpZ2dlcihlbnRpdHk6IEVudGl0eSkge1xuICAgIGNvbnN0IHBvaW50ZXJFdmVudCA9IFBvaW50ZXJFdmVudHMuZ2V0TXV0YWJsZU9yTnVsbChlbnRpdHkpO1xuICAgIGxldCBvcHRzID0geyBidXR0b246IElucHV0QWN0aW9uLklBX1BSSU1BUlksIGhvdmVyVGV4dDogJ1ByZXNzJyB9O1xuXG4gICAgaWYgKHBvaW50ZXJFdmVudCkge1xuICAgICAgLy8gQXZvaWQgY3JlYXRpbmcgZHVwbGljYXRlcyBvZiB0aGUgc2FtZSBwb2ludGVyRXZlbnQuXG4gICAgICAvLyBUaGlzIHVzdWFsbHkgaGFwcGVucyB3aXRoIGVudGl0aWVzIHRoYXQgYXJlIGNyZWF0ZWQgYXQgcnVudGltZSBhbmQgYXJlIGJlaW5nIHN5bmNyb25pemVkLlxuICAgICAgLy8gSWYgeW91IHJlY2VpdmUgYW4gZW50aXR5IHdpdGggcG9pbnRlckV2ZW50IHRoaXMgZnVuY3Rpb24gaW5zaWRlIHRoZSBjcmVhdGVUcmlnZ2VyU3lzdGVtIGlzIGdlbmVyYXRpbmcgYW5vdGhlciBvbmUgd2l0aCB0aGUgc2FtZSB2YWx1ZXMuXG4gICAgICBjb25zdCBleGlzdGluZ0luZGV4ID0gcG9pbnRlckV2ZW50LnBvaW50ZXJFdmVudHMuZmluZEluZGV4KFxuICAgICAgICAkID0+ICQuZXZlbnRJbmZvPy5idXR0b24gPT09IG9wdHMuYnV0dG9uLFxuICAgICAgKTtcbiAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCBldmVudEluZm8gPSBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50c1tleGlzdGluZ0luZGV4XS5ldmVudEluZm87XG4gICAgICAgIG9wdHMgPSB7IC4uLm9wdHMsIC4uLmV2ZW50SW5mbyB9OyAvLyBNZXJnZSBkZWZhdWx0IG9wdHMgd2l0aCB0aGUgZXhpc3RpbmcgcG9pbnRlckV2ZW50LlxuICAgICAgICBwb2ludGVyRXZlbnQucG9pbnRlckV2ZW50cy5zcGxpY2UoZXhpc3RpbmdJbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcG9pbnRlckV2ZW50c1N5c3RlbS5vblBvaW50ZXJEb3duKFxuICAgICAge1xuICAgICAgICBlbnRpdHksXG4gICAgICAgIG9wdHMsXG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fSU5QVVRfQUNUSU9OKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8vIE9OX1BMQVlFUl9FTlRFUlNfQVJFQSAvIE9OX1BMQVlFUl9MRUFWRVNfQVJFQVxuICBmdW5jdGlvbiBpbml0T25QbGF5ZXJUcmlnZ2VyQXJlYShlbnRpdHk6IEVudGl0eSkge1xuICAgIFRyaWdnZXJBcmVhLnNldEJveChlbnRpdHkpO1xuXG4gICAgdHJpZ2dlckFyZWFFdmVudHNTeXN0ZW0ub25UcmlnZ2VyRW50ZXIoZW50aXR5LCBmdW5jdGlvbiAocmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0LnRyaWdnZXI/LmVudGl0eSAhPT0gZW5naW5lLlBsYXllckVudGl0eSkgcmV0dXJuO1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9QTEFZRVJfRU5URVJTX0FSRUEpO1xuICAgIH0pO1xuXG4gICAgdHJpZ2dlckFyZWFFdmVudHNTeXN0ZW0ub25UcmlnZ2VyRXhpdChlbnRpdHksIGZ1bmN0aW9uIChyZXN1bHQpIHtcbiAgICAgIGlmIChyZXN1bHQudHJpZ2dlcj8uZW50aXR5ICE9PSBlbmdpbmUuUGxheWVyRW50aXR5KSByZXR1cm47XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX1BMQVlFUl9MRUFWRVNfQVJFQSk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25EYW1hZ2UoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBkYW1hZ2VUYXJnZXRzLmFkZChlbnRpdHkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uSGVhbFBsYXllcihlbnRpdHk6IEVudGl0eSkge1xuICAgIGhlYWxUYXJnZXRzLmFkZChlbnRpdHkpO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsQ2ljayhlbnRpdHk6IEVudGl0eSkge1xuICAgIGdsb2JhbElucHV0QWN0aW9ucy5vbihJbnB1dEFjdGlvbi5JQV9QT0lOVEVSLCAoKSA9PiB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX0dMT0JBTF9DTElDSyk7XG4gICAgfSk7XG4gIH1cblxuICBmdW5jdGlvbiBpbml0T25HbG9iYWxQcmltYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1BSSU1BUlksICgpID0+IHtcbiAgICAgIGNvbnN0IHRyaWdnZXJFdmVudHMgPSBnZXRUcmlnZ2VyRXZlbnRzKGVudGl0eSk7XG4gICAgICB0cmlnZ2VyRXZlbnRzLmVtaXQoVHJpZ2dlclR5cGUuT05fR0xPQkFMX1BSSU1BUlkpO1xuICAgIH0pO1xuICB9XG5cbiAgZnVuY3Rpb24gaW5pdE9uR2xvYmFsU2Vjb25kYXJ5KGVudGl0eTogRW50aXR5KSB7XG4gICAgZ2xvYmFsSW5wdXRBY3Rpb25zLm9uKElucHV0QWN0aW9uLklBX1NFQ09OREFSWSwgKCkgPT4ge1xuICAgICAgY29uc3QgdHJpZ2dlckV2ZW50cyA9IGdldFRyaWdnZXJFdmVudHMoZW50aXR5KTtcbiAgICAgIHRyaWdnZXJFdmVudHMuZW1pdChUcmlnZ2VyVHlwZS5PTl9HTE9CQUxfU0VDT05EQVJZKTtcbiAgICB9KTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGluaXRPblRpY2soZW50aXR5OiBFbnRpdHkpIHtcbiAgICB0aWNrU2V0LmFkZChlbnRpdHkpO1xuICB9XG5cbiAgLy8gT05fVFdFRU5fRU5EXG4gIGZ1bmN0aW9uIGhhbmRsZU9uVHdlZW5FbmQoZW50aXR5OiBFbnRpdHkpIHtcbiAgICBpZiAoXG4gICAgICBUd2VlbkNvbXBvbmVudC5nZXRPck51bGwoZW50aXR5KSAmJlxuICAgICAgVHdlZW5TdGF0ZS5nZXRPck51bGwoZW50aXR5KT8uc3RhdGUgPT09IFR3ZWVuU3RhdGVTdGF0dXMuVFNfQ09NUExFVEVEICYmXG4gICAgICB0d2VlblN5c3RlbS50d2VlbkNvbXBsZXRlZChlbnRpdHkpXG4gICAgKSB7XG4gICAgICBjb25zdCB0cmlnZ2VyRXZlbnRzID0gZ2V0VHJpZ2dlckV2ZW50cyhlbnRpdHkpO1xuICAgICAgdHJpZ2dlckV2ZW50cy5lbWl0KFRyaWdnZXJUeXBlLk9OX1RXRUVOX0VORCk7XG4gICAgfVxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dcl/asset-packs",
3
3
  "description": "Decentraland Asset Packs - curated collections of 3D assets for Decentraland scenes",
4
- "version": "2.11.3",
4
+ "version": "2.11.4",
5
5
  "author": {
6
6
  "email": "hello@decentraland.org",
7
7
  "name": "Decentraland Foundation",