mirror of
https://github.com/gosticks/PiPer.git
synced 2025-10-16 11:55:42 +00:00
6 lines
18 KiB
JavaScript
6 lines
18 KiB
JavaScript
var a;a||(a=!0,(()=>{'use strict';let d=null,e=0,f={};const h=[],k=[],l=window.setTimeout,m=window.clearTimeout,n=window.requestAnimationFrame;window.requestAnimationFrame=function(a){let c=0;d||(c=n(a),h.push(c));k.push(a);return c};function p(){h.length=0;k.length=0;n(p)}p();function q(){var a=k.slice();k.length=0;const c=window.performance.now();for(var b;b=a.pop();)b(c);a=f;f={};for(let g in a)if(b=a[g],b[0]<=c)if("function"==typeof b[1])b[1]();else eval(b[1]);else f[g]=b}
|
|
function r(a,c){const b=e++;f[b.toString()]=[window.performance.now()+(c||0),a];return b}function t(a){a&&delete f[a.toString()]}
|
|
document.addEventListener("visibilitychange",function(){if(document.hidden){var a=document.querySelectorAll("video");for(var c=a.length;c--;){const g=a[c];var b=g.hasAttribute("data-playing-picture-in-picture");if(b){d=g;break}}if(d){for(;b=h.pop();)window.cancelAnimationFrame(b);window.setTimeout=r;window.clearTimeout=t;d.addEventListener("timeupdate",q)}}else if(d){window.setTimeout=l;window.clearTimeout=m;d.removeEventListener("timeupdate",q);d=null;for(a=k.length;a--;)c=n(k[a]),h.push(c);a=window.performance.now();
|
|
for(b in f)c=f[b],l(c[1],c[0]-a);f={}}});})());
|
|
//# sourceMappingURL=data:application/json;base64,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QUFMLENBQUEsQ0FFQSxJQUFBLENBQWtCYyxDQUFsQixDQUE0QlgsQ0FBQSxDQUFTcUIsR0FBVCxFQUE1QixDQUFBLENBQ0VsQixNQUFBLENBQU9vQyxvQkFBUCxDQUE0QjVCLENBQTVCLENBR0ZSLE9BQUEsQ0FBT0MsVUFBUCxDQUFvQnNCLENBQ3BCdkIsT0FBQSxDQUFPRyxZQUFQLENBQXNCc0IsQ0FFdEIvQixFQUFBLENBQVlpQyxnQkFBWixDQUE2QixZQUE3QixDQUEyQ2YsQ0FBM0MsQ0FUQSxDQVZtQixDQUFyQixJQXVCTyxJQUFJbEIsQ0FBSixDQUFpQixDQUl0Qk0sTUFBQSxDQUFPQyxVQUFQLENBQW9CRixDQUNwQkMsT0FBQSxDQUFPRyxZQUFQLENBQXNCRCxDQUV0QlIsRUFBQSxDQUFZMkMsbUJBQVosQ0FBZ0MsWUFBaEMsQ0FBOEN6QixDQUE5QyxDQUVBbEIsRUFBQSxDQUFjLElBRWQsS0FBUzRDLENBQVQsQ0FBc0J4QyxDQUF0QixDQUFnQ2EsTUFBaEMsQ0FBd0MyQixDQUFBLEVBQXhDLENBQUEsQ0FDTTlCLENBQ0osQ0FEY0osQ0FBQSxDQUE4Qk4sQ0FBQSxDQUFVd0MsQ0FBVixDQUE5QixDQUNkLENBQUF6QyxDQUFBLENBQVNZLElBQVQsQ0FBY0QsQ0FBZCxDQUdJTyxFQUFBQSxDQUFZZixNQUFBLENBQU9nQixXQUFQLENBQW1CQyxHQUFuQixFQUNsQjtJQUFTRyxDQUFULEdBQWV4QixFQUFmLENBQ015QixDQUNKLENBRGN6QixDQUFBLENBQVN3QixDQUFULENBQ2QsQ0FBQXJCLENBQUEsQ0FBbUJzQixDQUFBLENBQVEsQ0FBUixDQUFuQixDQUErQkEsQ0FBQSxDQUFRLENBQVIsQ0FBL0IsQ0FBNENOLENBQTVDLENBRUZuQixFQUFBLENBQVcsRUFyQlcsQ0F6QnlCLENBaURuRDsiLAoic291cmNlcyI6WyIuL2ZpeC5qcyIsIi4vdmlkZW8uanMiXSwKInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluZm8gfSBmcm9tICcuL2xvZ2dlci5qcydcbmltcG9ydCB7IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUgfSBmcm9tICcuL3ZpZGVvLmpzJ1xuXG5sZXQgYWN0aXZlVmlkZW8gPSBudWxsO1xubGV0IHRpbWVvdXRJZCA9IDA7XG5sZXQgLyoqICFPYmplY3Q8c3RyaW5nLCBBcnJheT4gKi8gdGltZW91dHMgPSB7fTtcblxuY29uc3QgLyoqICFBcnJheTxudW1iZXI+ICovIHJlcXVlc3RzID0gW107XG5jb25zdCAvKiogIUFycmF5PGZ1bmN0aW9uKG51bWJlcik6IHVuZGVmaW5lZD4gKi8gY2FsbGJhY2tzID0gW107XG5cbmNvbnN0IG9yaWdpbmFsU2V0VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0O1xuY29uc3Qgb3JpZ2luYWxDbGVhclRpbWVvdXQgPSB3aW5kb3cuY2xlYXJUaW1lb3V0O1xuY29uc3Qgb3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lO1xuXG4vKipcbiAqIFRyYWNrcyBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHMgYW5kIGZvcndhcmRzIHJlcXVlc3RzIHdoZW4gcGFnZSB2aXNpYmxlXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbihudW1iZXIpOiB1bmRlZmluZWR9IGNhbGxiYWNrIC0gYSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tcbiAqL1xuY29uc3QgdHJhY2tBbmltYXRpb25GcmFtZVJlcXVlc3QgPSBmdW5jdGlvbihjYWxsYmFjaykge1xuICBsZXQgcmVxdWVzdCA9IDA7XG5cbiAgaWYgKCFhY3RpdmVWaWRlbykge1xuICAgIHJlcXVlc3QgPSBvcmlnaW5hbFJlcXVlc3RBbmltYXRpb25GcmFtZShjYWxsYmFjayk7XG4gICAgcmVxdWVzdHMucHVzaChyZXF1ZXN0KTtcbiAgfVxuXG4gIGNhbGxiYWNrcy5wdXNoKGNhbGxiYWNrKTtcblxuICByZXR1cm4gcmVxdWVzdDtcbn07XG53aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gdHJhY2tBbmltYXRpb25GcmFtZVJlcXVlc3Q7XG5cbi8qKlxuICogQ2xlYXJzIHRyYWNrZWQgYW5pbWF0aW9uIGZyYW1lIHJlcXVlc3RzIG9uIG5ldyBmcmFtZVxuICovXG5jb25zdCBjbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMgPSBmdW5jdGlvbigpIHtcbiAgcmVxdWVzdHMubGVuZ3RoID0gMDtcbiAgY2FsbGJhY2tzLmxlbmd0aCA9IDA7XG5cbiAgb3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoY2xlYXJBbmltYXRpb25GcmFtZVJlcXVlc3RzKTtcbn07XG5jbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMoKTtcblxuLyoqXG4gKiBDYWxscyB0cmFja2VkIGFuaW1hdGlvbiBmcmFtZSByZXF1ZXN0cyBhbmQgdGltZW91dHNcbiAqL1xuY29uc3QgY2FsbEFuaW1hdGlvbkZyYW1lUmVxdWVzdHNBbmRUaW1lb3V0cyA9IGZ1bmN0aW9uKCkge1xuICBcbiAgLy8gQ29weSBhbmltYXRpb24gZnJhbWUgY2FsbGJhY2tzIGJlZm9yZSBjYWxsaW5nIHRvIHByZXZlbnQgZW5kbGVzcyBsb29waW5nXG4gIGNvbnN0IGNhbGxiYWNrc0NvcHkgPSBjYWxsYmFja3Muc2xpY2UoKTtcbiAgY2FsbGJhY2tzLmxlbmd0aCA9IDA7XG5cbiAgLy8gQ2FsbCBhbmltYXRpb24gZnJhbWUgcmVxdWVzdHNcbiAgY29uc3QgdGltZXN0YW1wID0gd2luZG93LnBlcmZvcm1hbmNlLm5vdygpO1xuICBmb3IgKGxldCBjYWxsYmFjazsgY2FsbGJhY2sgPSBjYWxsYmFja3NDb3B5LnBvcCgpOykge1xuICAgIGNhbGxiYWNrKHRpbWVzdGFtcCk7XG4gIH1cblxuICAvLyBDb3B5IHRpbWVvdXRzIHRvIHByZXZlbnQgZW5kbGVzcyBsb29waW5nXG4gIGNvbnN0IHRpbWVvdXRzQ29weSA9IHRpbWVvdXRzO1xuICB0aW1lb3V0cyA9IHt9O1xuICBcbiAgLy8gQ2FsbCBlbGFwc2VkIHRpbWVvdXRzXG4gIGZvciAobGV0IGlkIGluIHRpbWVvdXRzQ29weSkge1xuICAgIGxldCB0aW1lb3V0ID0gdGltZW91dHNDb3B5W2lkXTtcbiAgICBpZiAodGltZW91dFswXSA8PSB0aW1lc3RhbXApIHtcbiAgICAgIGlmICh0eXBlb2YgdGltZW91dFsxXSA9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGltZW91dFsxXSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXZhbCgvKiogQHR5cGUge3N0cmluZ30gKi8gKHRpbWVvdXRbMV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGltZW91dHNbaWRdID0gdGltZW91dDtcbiAgICB9XG4gIH1cbn07XG5cbi8qKlxuICogQXZvaWRzIGJhY2tncm91bmQgdGhyb3R0bGluZyBieSBpbnZva2luZyB0aW1lb3V0cyB3aXRoIG1lZGlhICd0aW1ldXBkYXRlJyBldmVudHNcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufFRydXN0ZWRTY3JpcHR8c3RyaW5nfSBjYWxsYmFjayAtIGEgc2V0VGltZW91dCBjYWxsYmFja1xuICogQHBhcmFtIHtudW1iZXI9fSB0aW1lb3V0IC0gYSBkZWxheSBpbiBtc1xuICogQHJldHVybiB7bnVtYmVyfVxuICovXG5jb25zdCB1bnRocm90dGxlZFNldFRpbWVvdXQgPSBmdW5jdGlvbihjYWxsYmFjaywgdGltZW91dCkge1xuICBjb25zdCBpZCA9IHRpbWVvdXRJZCsrO1xuICB0aW1lb3V0c1tpZC50b1N0cmluZygpXSA9IFt3aW5kb3cucGVyZm9ybWFuY2Uubm93KCkgKyAodGltZW91dCB8fCAwKSwgY2FsbGJhY2tdO1xuICByZXR1cm4gaWQ7XG59O1xuXG4vKipcbiAqIENsZWFycyBxdWV1ZWQgdGltZW91dHMgdG8gYmUgaW52b2tlZCB3aXRoIG1lZGlhICd0aW1ldXBkYXRlJyBldmVudHNcbiAqXG4gKiBAcGFyYW0gez9udW1iZXJ8dW5kZWZpbmVkfSBpZCAtIGFuIGlkIHJldHVybmVkIGJ5IHVudGhyb3R0bGVkU2V0VGltZW91dFxuICovXG5jb25zdCB1bnRocm90dGxlZENsZWFyVGltZW91dCA9IGZ1bmN0aW9uKGlkKSB7XG4gIGlmIChpZCkgZGVsZXRlIHRpbWVvdXRzW2lkLnRvU3RyaW5nKCldO1xufTtcblxuLyoqXG4gKiBCeXBhc3NlcyBiYWNrZ3JvdW5kIHRpbWVyIHRocm90dGxpbmcgd2hlbiB2aWRlbyBwbGF5aW5nIHBpY3R1cmUgaW4gcGljdHVyZVxuICovXG5jb25zdCBieXBhc3NCYWNrZ3JvdW5kVGltZXJUaHJvdHRsaW5nID0gZnVuY3Rpb24oKSB7XG5cbiAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuXG4gICAgY29uc3QgYWxsVmlkZW9zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgndmlkZW8nKTtcbiAgICBmb3IgKGxldCB2aWRlb0lkID0gYWxsVmlkZW9zLmxlbmd0aDsgdmlkZW9JZC0tOykge1xuICAgICAgY29uc3QgdmlkZW8gPSAvKiogQHR5cGUgez9IVE1MVmlkZW9FbGVtZW50fSAqLyAoYWxsVmlkZW9zW3ZpZGVvSWRdKTtcbiAgICAgIGlmICh2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKSkge1xuICAgICAgICBhY3RpdmVWaWRlbyA9IHZpZGVvO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCFhY3RpdmVWaWRlbykgcmV0dXJuO1xuICAgIFxuICAgIGZvciAobGV0IHJlcXVlc3Q7IHJlcXVlc3QgPSByZXF1ZXN0cy5wb3AoKTspIHtcbiAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICB3aW5kb3cuc2V0VGltZW91dCA9IHVudGhyb3R0bGVkU2V0VGltZW91dDtcbiAgICB3aW5kb3cuY2xlYXJUaW1lb3V0ID0gdW50aHJvdHRsZWRDbGVhclRpbWVvdXQ7XG4gICAgXG4gICAgYWN0aXZlVmlkZW8uYWRkRXZlbnRMaXN0ZW5lcigndGltZXVwZGF0ZScsIGNhbGxBbmltYXRpb25GcmFtZVJlcXVlc3RzQW5kVGltZW91dHMpO1xuXG4gICAgaW5mbygnQnlwYXNzaW5nIGJhY2tncm91bmQgdGltZXIgdGhyb3R0bGluZycpO1xuXG4gIH0gZWxzZSBpZiAoYWN0aXZlVmlkZW8pIHtcblxuICAgIGluZm8oJ0ZpbmlzaGVkIGJ5cGFzc2luZyBiYWNrZ3JvdW5kIHRpbWVyIHRocm90dGxpbmcnKTtcblxuICAgIHdpbmRvdy5zZXRUaW1lb3V0ID0gb3JpZ2luYWxTZXRUaW1lb3V0O1xuICAgIHdpbmRvdy5jbGVhclRpbWVvdXQgPSBvcmlnaW5hbENsZWFyVGltZW91dDtcblxuICAgIGFjdGl2ZVZpZGVvLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RpbWV1cGRhdGUnLCBjYWxsQW5pbWF0aW9uRnJhbWVSZXF1ZXN0c0FuZFRpbWVvdXRzKTtcblxuICAgIGFjdGl2ZVZpZGVvID0gbnVsbDtcblxuICAgIGZvciAobGV0IGNhbGxiYWNrSWQgPSBjYWxsYmFja3MubGVuZ3RoOyBjYWxsYmFja0lkLS07KSB7XG4gICAgICBsZXQgcmVxdWVzdCA9IG9yaWdpbmFsUmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNhbGxiYWNrc1tjYWxsYmFja0lkXSk7XG4gICAgICByZXF1ZXN0cy5wdXNoKHJlcXVlc3QpO1xuICAgIH1cblxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IHdpbmRvdy5wZXJmb3JtYW5jZS5ub3coKTtcbiAgICBmb3IgKGxldCBpZCBpbiB0aW1lb3V0cykge1xuICAgICAgbGV0IHRpbWVvdXQgPSB0aW1lb3V0c1tpZF07XG4gICAgICBvcmlnaW5hbFNldFRpbWVvdXQodGltZW91dFsxXSwgdGltZW91dFswXSAtIHRpbWVzdGFtcCk7XG4gICAgfVxuICAgIHRpbWVvdXRzID0ge307XG4gIH1cbn07XG5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd2aXNpYmlsaXR5Y2hhbmdlJywgYnlwYXNzQmFja2dyb3VuZFRpbWVyVGhyb3R0bGluZyk7XG4iLCJpbXBvcnQgeyBpbmZvIH0gZnJvbSAnLi9sb2dnZXIuanMnXG5pbXBvcnQgeyBCcm93c2VyLCBnZXRCcm93c2VyLCBnZXRSZXNvdXJjZSB9IGZyb20gJy4vY29tbW9uLmpzJ1xuXG5jb25zdCBDSFJPTUVfUExBWUlOR19QSVBfQVRUUklCVVRFID0gJ2RhdGEtcGxheWluZy1waWN0dXJlLWluLXBpY3R1cmUnO1xuXG5jb25zdCAvKiogIUFycmF5PGZ1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsIGJvb2xlYW4pPiAqLyBldmVudExpc3RlbmVycyA9IFtdO1xuXG4vKipcbiAqIFRvZ2dsZXMgdmlkZW8gUGljdHVyZSBpbiBQaWN0dXJlXG4gKlxuICogQHBhcmFtIHtIVE1MVmlkZW9FbGVtZW50fSB2aWRlbyAtIHZpZGVvIGVsZW1lbnQgdG8gdG9nZ2xlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24odmlkZW8pIHtcbiAgY29uc3QgcGxheWluZ1BpY3R1cmVJblBpY3R1cmUgPSB2aWRlb1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKHZpZGVvKTtcbiAgc3dpdGNoIChnZXRCcm93c2VyKCkpIHtcbiAgICBjYXNlIEJyb3dzZXIuU0FGQVJJOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICBcdHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVyZS1pbi1waWN0dXJlJyk7XG4gICAgICB9XG4gICAgICBicmVhaztcbiAgICBjYXNlIEJyb3dzZXIuQ0hST01FOlxuICAgICAgaWYgKHBsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKSB7XG4gICAgICAgIC8vIFdvcmthcm91bmQgQ2hyb21lIGNvbnRlbnQgc2NyaXB0cyBiZWluZyB1bmFibGUgdG8gY2FsbCAnZXhpdFBpY3R1cmVJblBpY3R1cmUnIGRpcmVjdGx5XG4gICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgICAgICBzY3JpcHQudGV4dENvbnRlbnQgPSAnZG9jdW1lbnQuZXhpdFBpY3R1cmVJblBpY3R1cmUoKSc7XG4gICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICAgICAgc2NyaXB0LnJlbW92ZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gRm9yY2UgZW5hYmxlIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIHN1cHBvcnRcbiAgICAgICAgdmlkZW8ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlcGljdHVyZWlucGljdHVyZScpO1xuICAgICAgICBcbiAgICAgICAgdmlkZW8ucmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoKTtcbiAgICAgIH1cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICBicmVhaztcbiAgfVxufTtcblxuLyoqXG4gKiBBZGRzIGEgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVyXG4gKlxuICogQHBhcmFtIHtmdW5jdGlvbihIVE1MVmlkZW9FbGVtZW50LCBib29sZWFuKX0gbGlzdGVuZXIgLSBhbiBldmVudCBsaXN0ZW5lciB0byBhZGRcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFBpY3R1cmVJblBpY3R1cmVFdmVudExpc3RlbmVyID0gZnVuY3Rpb24obGlzdGVuZXIpIHtcbiAgY29uc3QgaW5kZXggPSBldmVudExpc3RlbmVycy5pbmRleE9mKGxpc3RlbmVyKTtcbiAgaWYgKGluZGV4ID09IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMucHVzaChsaXN0ZW5lcik7XG4gIH1cblxuICBpZiAoZ2V0QnJvd3NlcigpID09IEJyb3dzZXIuU0FGQVJJKSB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCB2aWRlb1ByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkLCB7XG4gICAgICBjYXB0dXJlOiB0cnVlLFxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIFJlbW92ZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgbGlzdGVuZXJcbiAqXG4gKiBAcGFyYW0ge2Z1bmN0aW9uKEhUTUxWaWRlb0VsZW1lbnQsYm9vbGVhbil9IGxpc3RlbmVyIC0gYW4gZXZlbnQgbGlzdGVuZXIgdG8gcmVtb3ZlXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVQaWN0dXJlSW5QaWN0dXJlRXZlbnRMaXN0ZW5lciA9IGZ1bmN0aW9uKGxpc3RlbmVyKSB7XG4gIGNvbnN0IGluZGV4ID0gZXZlbnRMaXN0ZW5lcnMuaW5kZXhPZihsaXN0ZW5lcik7XG4gIGlmIChpbmRleCA+IC0xKSB7XG4gICAgZXZlbnRMaXN0ZW5lcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuICBcbiAgaWYgKGdldEJyb3dzZXIoKSA9PSBCcm93c2VyLlNBRkFSSSAmJiBldmVudExpc3RlbmVycy5sZW5ndGggPT0gMCkge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdmlkZW9QcmVzZW50YXRpb25Nb2RlQ2hhbmdlZCk7ICAgIFxuICB9XG59O1xuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnRcbiAqXG4gKiBAcGFyYW0ge0hUTUxWaWRlb0VsZW1lbnR9IHZpZGVvIC0gdGFyZ2V0IHZpZGVvIGVsZW1lbnRcbiAqL1xuY29uc3QgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQgPSBmdW5jdGlvbih2aWRlbykge1xuICBcbiAgLy8gSWdub3JlIGV2ZW50cyBmcm9tIG90aGVyIHZpZGVvIGVsZW1lbnRzIGUuZy4gYWR2ZXJ0c1xuICBjb25zdCBleHBlY3RlZFZpZGVvID0gZ2V0UmVzb3VyY2UoKS52aWRlb0VsZW1lbnQodHJ1ZSk7XG4gIGlmICh2aWRlbyAhPSBleHBlY3RlZFZpZGVvKSByZXR1cm47XG5cbiAgY29uc3QgaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IHZpZGVvUGxheWluZ1BpY3R1cmVJblBpY3R1cmUodmlkZW8pO1xuICBpZiAoaXNQbGF5aW5nUGljdHVyZUluUGljdHVyZSkge1xuICAgIGluZm8oJ1ZpZGVvIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlJyk7XG4gIH0gZWxzZSB7XG4gICAgaW5mbygnVmlkZW8gbGVhdmluZyBQaWN0dXJlIGluIFBpY3R1cmUgbW9kZScpO1xuICB9XG5cbiAgLy8gQ2FsbCBldmVudCBsaXN0ZW5lcnMgdXNpbmcgYSBjb3B5IHRvIHByZXZlbnQgcG9zc2libGl0eSBvZiBlbmRsZXNzIGxvb3BpbmdcbiAgY29uc3QgZXZlbnRMaXN0ZW5lcnNDb3B5ID0gZXZlbnRMaXN0ZW5lcnMuc2xpY2UoKTtcbiAgZm9yIChsZXQgbGlzdGVuZXI7IGxpc3RlbmVyID0gZXZlbnRMaXN0ZW5lcnNDb3B5LnBvcCgpOykge1xuICAgIGxpc3RlbmVyKHZpZGVvLCBpc1BsYXlpbmdQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BhdGNoZXMgYSBQaWN0dXJlIGluIFBpY3R1cmUgZXZlbnQgZm9yIGV2ZXJ5ICd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcgZXZlbnRcbiAqXG4gKiBAcGFyYW0geyFFdmVudH0gZXZlbnQgLSBhIHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvUHJlc2VudGF0aW9uTW9kZUNoYW5nZWQgPSBmdW5jdGlvbihldmVudCkge1xuICBjb25zdCB2aWRlbyA9ICAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdHJ1ZSBpZiB2aWRlbyBpcyBwbGF5aW5nIFBpY3R1cmUgaW4gUGljdHVyZVxuICpcbiAqIEBwYXJhbSB7SFRNTFZpZGVvRWxlbWVudH0gdmlkZW8gLSB2aWRlbyBlbGVtZW50IHRvIHRlc3RcbiAqIEByZXR1cm4ge2Jvb2xlYW59IFxuICovXG5leHBvcnQgY29uc3QgdmlkZW9QbGF5aW5nUGljdHVyZUluUGljdHVyZSA9IGZ1bmN0aW9uKHZpZGVvKSB7XG4gIHN3aXRjaCAoZ2V0QnJvd3NlcigpKSB7XG4gICAgY2FzZSBCcm93c2VyLlNBRkFSSTpcbiAgICAgIHJldHVybiB2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnO1xuICAgIGNhc2UgQnJvd3Nlci5DSFJPTUU6XG4gICAgICByZXR1cm4gdmlkZW8uaGFzQXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUpO1xuICAgIGNhc2UgQnJvd3Nlci5VTktOT1dOOlxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0cyBQaWN0dXJlIGluIFBpY3R1cmUgYXR0cmlidXRlIGFuZCB0b2dnbGVzIGNhcHRpb25zIG9uIGVudGVyaW5nIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlXG4gKlxuICogQHBhcmFtIHshRXZlbnR9IGV2ZW50IC0gYW4gZW50ZXJwaWN0dXJlaW5waWN0dXJlIGV2ZW50XG4gKi9cbmNvbnN0IHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlID0gZnVuY3Rpb24oZXZlbnQpIHtcbiAgY29uc3QgdmlkZW8gPSAvKiogQHR5cGUge0hUTUxWaWRlb0VsZW1lbnR9ICovIChldmVudC50YXJnZXQpO1xuXG4gIC8vIFNldCBwbGF5aW5nIGluIFBpY3R1cmUgaW4gUGljdHVyZSBtb2RlIGF0dHJpYnV0ZSBhbmQgZGlzcGF0Y2ggZXZlbnRcbiAgdmlkZW8uc2V0QXR0cmlidXRlKENIUk9NRV9QTEFZSU5HX1BJUF9BVFRSSUJVVEUsIHRydWUpO1xuICBkaXNwYXRjaFBpY3R1cmVJblBpY3R1cmVFdmVudCh2aWRlbyk7XG5cbiAgLy8gUmVtb3ZlIFBpY3R1cmUgaW4gUGljdHVyZSBhdHRyaWJ1dGUgYW5kIGRpc3BhdGNoIGV2ZW50IG9uIGxlYXZpbmcgUGljdHVyZSBpbiBQaWN0dXJlIG1vZGVcbiAgdmlkZW8uYWRkRXZlbnRMaXN0ZW5lcignbGVhdmVwaWN0dXJlaW5waWN0dXJlJywgZnVuY3Rpb24oZXZlbnQpIHtcbiAgICB2aWRlby5yZW1vdmVBdHRyaWJ1dGUoQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSk7XG4gICAgZGlzcGF0Y2hQaWN0dXJlSW5QaWN0dXJlRXZlbnQodmlkZW8pO1xuICB9LCB7IG9uY2U6IHRydWUgfSk7XG59O1xuXG4vKipcbiAqIEFkZHMgUGljdHVyZSBpbiBQaWN0dXJlIGV2ZW50IGxpc3RlbmVycyB0byBhbGwgdmlkZW8gZWxlbWVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IGFkZFZpZGVvRWxlbWVudExpc3RlbmVycyA9IGZ1bmN0aW9uKCkge1xuICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpO1xuICBmb3IgKGxldCBpbmRleCA9IDAsIGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50c1tpbmRleF07IGluZGV4KyspIHtcbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2VudGVycGljdHVyZWlucGljdHVyZScsIHZpZGVvRGlkRW50ZXJQaWN0dXJlSW5QaWN0dXJlKTtcbiAgfVxufTtcbiJdLAoibmFtZXMiOlsiYWN0aXZlVmlkZW8iLCJ0aW1lb3V0SWQiLCJ0aW1lb3V0cyIsInJlcXVlc3RzIiwiY2FsbGJhY2tzIiwib3JpZ2luYWxTZXRUaW1lb3V0Iiwid2luZG93Iiwic2V0VGltZW91dCIsIm9yaWdpbmFsQ2xlYXJUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Iiwib3JpZ2luYWxSZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiLCJ0cmFja0FuaW1hdGlvbkZyYW1lUmVxdWVzdCIsImNhbGxiYWNrIiwicmVxdWVzdCIsInB1c2giLCJjbGVhckFuaW1hdGlvbkZyYW1lUmVxdWVzdHMiLCJsZW5ndGgiLCJjYWxsQW5pbWF0aW9uRnJhbWVSZXF1ZXN0c0FuZFRpbWVvdXRzIiwiY2FsbGJhY2tzQ29weSIsInNsaWNlIiwidGltZXN0YW1wIiwicGVyZm9ybWFuY2UiLCJub3ciLCJwb3AiLCJ0aW1lb3V0c0NvcHkiLCJpZCIsInRpbWVvdXQiLCJldmFsIiwidW50aHJvdHRsZWRTZXRUaW1lb3V0IiwidG9TdHJpbmciLCJ1bnRocm90dGxlZENsZWFyVGltZW91dCIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsImJ5cGFzc0JhY2tncm91bmRUaW1lclRocm90dGxpbmciLCJoaWRkZW4iLCJhbGxWaWRlb3MiLCJxdWVyeVNlbGVjdG9yQWxsIiwidmlkZW9JZCIsInZpZGVvIiwiaGFzQXR0cmlidXRlIiwiQ0hST01FX1BMQVlJTkdfUElQX0FUVFJJQlVURSIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNhbGxiYWNrSWQiXQp9Cg==
|