UNPKG

@lacussoft/cpf-fmt

Version:
9 lines (8 loc) 23.9 kB
/** * LacusSoft :: cpf-fmt v1.4.1 * * @author Julio L. Muller. * @license MIT - 2020-2025 */ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).cpfFmt=n()}(this,(function(){"use strict";const{replace:e}="",n=/[&<>'"]/g,r={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#39;",'"':"&quot;"},t=e=>r[e];function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a,o;var c,d,u=i(o?a:(o=1,a=function(e){return String(e).replace(/\D/g,"")}));var f=i(function(){if(d)return c;d=1;var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var r=Object.prototype.toString.call(e);return"[object RegExp]"===r||"[object Date]"===r||function(e){return e.$$typeof===n}(e)}(e)},n="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function r(e,n){return!1!==n.clone&&n.isMergeableObject(e)?u((r=e,Array.isArray(r)?[]:{}),e,n):e;var r}function t(e,n,t){return e.concat(n).map((function(e){return r(e,t)}))}function i(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(n){return Object.propertyIsEnumerable.call(e,n)})):[]}(e))}function a(e,n){try{return n in e}catch(e){return!1}}function o(e,n,t){var o={};return t.isMergeableObject(e)&&i(e).forEach((function(n){o[n]=r(e[n],t)})),i(n).forEach((function(i){(function(e,n){return a(e,n)&&!(Object.hasOwnProperty.call(e,n)&&Object.propertyIsEnumerable.call(e,n))})(e,i)||(a(e,i)&&t.isMergeableObject(n[i])?o[i]=function(e,n){if(!n.customMerge)return u;var r=n.customMerge(e);return"function"==typeof r?r:u}(i,t)(e[i],n[i],t):o[i]=r(n[i],t))})),o}function u(n,i,a){(a=a||{}).arrayMerge=a.arrayMerge||t,a.isMergeableObject=a.isMergeableObject||e,a.cloneUnlessOtherwiseSpecified=r;var c=Array.isArray(i);return c===Array.isArray(n)?c?a.arrayMerge(n,i,a):o(n,i,a):r(i,a)}return u.all=function(e,n){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce((function(e,r){return u(e,r,n)}),{})},c=u}()),s={delimiters:{dot:".",dash:"-"},hiddenRange:{start:3,end:10},onFail:function(e){return e},hiddenKey:"*",hidden:!1,escape:!1};return function(r,i){var a=u(r).split(""),o=function(e){void 0===e&&(e={});var n=f(s,e);if(n.hidden){if(isNaN(n.hiddenRange.start)||n.hiddenRange.start<0||n.hiddenRange.start>10)throw new TypeError('Option "hiddenRange.start" must be a number between 0 and 10.');if(isNaN(n.hiddenRange.end)||n.hiddenRange.end<0||n.hiddenRange.end>10)throw new TypeError('Option "hiddenRange.end" must be a number between 0 and 10.');if(n.hiddenRange.start>n.hiddenRange.end){var r=n.hiddenRange.start;n.hiddenRange.start=n.hiddenRange.end,n.hiddenRange.end=r}}if("function"!=typeof n.onFail)throw new TypeError('The option "onFail" must be a callback function.');return n}(i);if(11!==a.length){var c=new Error('Parameter "'.concat(r,'" does not contain ').concat(11," digits."));return o.onFail(r,c)}if(o.hidden)for(var d=o.hiddenRange.start;d<=o.hiddenRange.end;d++)a[d]=o.hiddenKey;a.splice(9,0,o.delimiters.dash),a.splice(6,0,o.delimiters.dot),a.splice(3,0,o.delimiters.dot);var l,p=a.join("");return o.escape?(l=p,e.call(l,n,t)):p}})); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BmLWZtdC5taW4uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9odG1sLWVzY2FwZXIvZXNtL2luZGV4LmpzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL251bS1vbmx5L2J1aWxkL2luZGV4LmNqcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9kZWVwbWVyZ2UvZGlzdC9janMuanMiLCIuLi9zcmMvbWVyZ2Utb3B0aW9ucy50cyIsIi4uL3NyYy9jcGYtZm10LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChDKSAyMDE3LXByZXNlbnQgYnkgQW5kcmVhIEdpYW1tYXJjaGkgLSBAV2ViUmVmbGVjdGlvblxuICpcbiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbiAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbiAqIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbiAqIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuICogZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbiAqXG4gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4gKlxuICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbiAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4gKiBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4gKiBUSEUgU09GVFdBUkUuXG4gKi9cblxuY29uc3Qge3JlcGxhY2V9ID0gJyc7XG5cbi8vIGVzY2FwZVxuY29uc3QgZXMgPSAvJig/OmFtcHwjMzh8bHR8IzYwfGd0fCM2MnxhcG9zfCMzOXxxdW90fCMzNCk7L2c7XG5jb25zdCBjYSA9IC9bJjw+J1wiXS9nO1xuXG5jb25zdCBlc2NhID0ge1xuICAnJic6ICcmYW1wOycsXG4gICc8JzogJyZsdDsnLFxuICAnPic6ICcmZ3Q7JyxcbiAgXCInXCI6ICcmIzM5OycsXG4gICdcIic6ICcmcXVvdDsnXG59O1xuY29uc3QgcGUgPSBtID0+IGVzY2FbbV07XG5cbi8qKlxuICogU2FmZWx5IGVzY2FwZSBIVE1MIGVudGl0aWVzIHN1Y2ggYXMgYCZgLCBgPGAsIGA+YCwgYFwiYCwgYW5kIGAnYC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBlcyB0aGUgaW5wdXQgdG8gc2FmZWx5IGVzY2FwZVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGVzY2FwZWQgaW5wdXQsIGFuZCBpdCAqKnRocm93cyoqIGFuIGVycm9yIGlmXG4gKiAgdGhlIGlucHV0IHR5cGUgaXMgdW5leHBlY3RlZCwgZXhjZXB0IGZvciBib29sZWFuIGFuZCBudW1iZXJzLFxuICogIGNvbnZlcnRlZCBhcyBzdHJpbmcuXG4gKi9cbmV4cG9ydCBjb25zdCBlc2NhcGUgPSBlcyA9PiByZXBsYWNlLmNhbGwoZXMsIGNhLCBwZSk7XG5cblxuLy8gdW5lc2NhcGVcbmNvbnN0IHVuZXMgPSB7XG4gICcmYW1wOyc6ICcmJyxcbiAgJyYjMzg7JzogJyYnLFxuICAnJmx0Oyc6ICc8JyxcbiAgJyYjNjA7JzogJzwnLFxuICAnJmd0Oyc6ICc+JyxcbiAgJyYjNjI7JzogJz4nLFxuICAnJmFwb3M7JzogXCInXCIsXG4gICcmIzM5Oyc6IFwiJ1wiLFxuICAnJnF1b3Q7JzogJ1wiJyxcbiAgJyYjMzQ7JzogJ1wiJ1xufTtcbmNvbnN0IGNhcGUgPSBtID0+IHVuZXNbbV07XG5cbi8qKlxuICogU2FmZWx5IHVuZXNjYXBlIHByZXZpb3VzbHkgZXNjYXBlZCBlbnRpdGllcyBzdWNoIGFzIGAmYCwgYDxgLCBgPmAsIGBcImAsXG4gKiBhbmQgYCdgLlxuICogQHBhcmFtIHtzdHJpbmd9IHVuIGEgcHJldmlvdXNseSBlc2NhcGVkIHN0cmluZ1xuICogQHJldHVybnMge3N0cmluZ30gdGhlIHVuZXNjYXBlZCBpbnB1dCwgYW5kIGl0ICoqdGhyb3dzKiogYW4gZXJyb3IgaWZcbiAqICB0aGUgaW5wdXQgdHlwZSBpcyB1bmV4cGVjdGVkLCBleGNlcHQgZm9yIGJvb2xlYW4gYW5kIG51bWJlcnMsXG4gKiAgY29udmVydGVkIGFzIHN0cmluZy5cbiAqL1xuZXhwb3J0IGNvbnN0IHVuZXNjYXBlID0gdW4gPT4gcmVwbGFjZS5jYWxsKHVuLCBlcywgY2FwZSk7XG4iLCIndXNlIHN0cmljdCc7XG5cbmZ1bmN0aW9uIG51bU9ubHkodGFyZ2V0KSB7XG4gIHJldHVybiBTdHJpbmcodGFyZ2V0KS5yZXBsYWNlKC9cXEQvZywgXCJcIik7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gbnVtT25seTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04O2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pYVc1a1pYZ3VZMnB6SWl3aWMyOTFjbU5sY3lJNld5SXVMaTl6Y21NdmJuVnRMVzl1YkhrdWRITWlYU3dpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpWm5WdVkzUnBiMjRnYm5WdFQyNXNlU2gwWVhKblpYUTZJSFZ1YTI1dmQyNHBPaUJ6ZEhKcGJtY2dlMXh1SUNCeVpYUjFjbTRnVTNSeWFXNW5LSFJoY21kbGRDa3VjbVZ3YkdGalpTZ3ZYRnhFTDJjc0lDY25LVHRjYm4xY2JseHVaWGh3YjNKMElHUmxabUYxYkhRZ2JuVnRUMjVzZVR0Y2JpSmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaU96dEJRVUZCTEZOQlFWTXNVVUZCVVN4TlFVRjVRaXhGUVVGQk8wRkJRM2hETEVWQlFVRXNUMEZCVHl4TlFVRlBMRU5CUVVFc1RVRkJUU3hEUVVGRkxFTkJRVUVzVDBGQlFTeERRVUZSTEU5QlFVOHNSVUZCUlN4RFFVRkJPMEZCUTNwRE96czdPeUo5XG4iLCIndXNlIHN0cmljdCc7XG5cbnZhciBpc01lcmdlYWJsZU9iamVjdCA9IGZ1bmN0aW9uIGlzTWVyZ2VhYmxlT2JqZWN0KHZhbHVlKSB7XG5cdHJldHVybiBpc05vbk51bGxPYmplY3QodmFsdWUpXG5cdFx0JiYgIWlzU3BlY2lhbCh2YWx1ZSlcbn07XG5cbmZ1bmN0aW9uIGlzTm9uTnVsbE9iamVjdCh2YWx1ZSkge1xuXHRyZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnXG59XG5cbmZ1bmN0aW9uIGlzU3BlY2lhbCh2YWx1ZSkge1xuXHR2YXIgc3RyaW5nVmFsdWUgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpO1xuXG5cdHJldHVybiBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgUmVnRXhwXSdcblx0XHR8fCBzdHJpbmdWYWx1ZSA9PT0gJ1tvYmplY3QgRGF0ZV0nXG5cdFx0fHwgaXNSZWFjdEVsZW1lbnQodmFsdWUpXG59XG5cbi8vIHNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvYmxvYi9iNWFjOTYzZmI3OTFkMTI5OGU3ZjM5NjIzNjM4M2JjOTU1ZjkxNmMxL3NyYy9pc29tb3JwaGljL2NsYXNzaWMvZWxlbWVudC9SZWFjdEVsZW1lbnQuanMjTDIxLUwyNVxudmFyIGNhblVzZVN5bWJvbCA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLmZvcjtcbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBjYW5Vc2VTeW1ib2wgPyBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgOiAweGVhYzc7XG5cbmZ1bmN0aW9uIGlzUmVhY3RFbGVtZW50KHZhbHVlKSB7XG5cdHJldHVybiB2YWx1ZS4kJHR5cGVvZiA9PT0gUkVBQ1RfRUxFTUVOVF9UWVBFXG59XG5cbmZ1bmN0aW9uIGVtcHR5VGFyZ2V0KHZhbCkge1xuXHRyZXR1cm4gQXJyYXkuaXNBcnJheSh2YWwpID8gW10gOiB7fVxufVxuXG5mdW5jdGlvbiBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZCh2YWx1ZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gKG9wdGlvbnMuY2xvbmUgIT09IGZhbHNlICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodmFsdWUpKVxuXHRcdD8gZGVlcG1lcmdlKGVtcHR5VGFyZ2V0KHZhbHVlKSwgdmFsdWUsIG9wdGlvbnMpXG5cdFx0OiB2YWx1ZVxufVxuXG5mdW5jdGlvbiBkZWZhdWx0QXJyYXlNZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRyZXR1cm4gdGFyZ2V0LmNvbmNhdChzb3VyY2UpLm1hcChmdW5jdGlvbihlbGVtZW50KSB7XG5cdFx0cmV0dXJuIGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKGVsZW1lbnQsIG9wdGlvbnMpXG5cdH0pXG59XG5cbmZ1bmN0aW9uIGdldE1lcmdlRnVuY3Rpb24oa2V5LCBvcHRpb25zKSB7XG5cdGlmICghb3B0aW9ucy5jdXN0b21NZXJnZSkge1xuXHRcdHJldHVybiBkZWVwbWVyZ2Vcblx0fVxuXHR2YXIgY3VzdG9tTWVyZ2UgPSBvcHRpb25zLmN1c3RvbU1lcmdlKGtleSk7XG5cdHJldHVybiB0eXBlb2YgY3VzdG9tTWVyZ2UgPT09ICdmdW5jdGlvbicgPyBjdXN0b21NZXJnZSA6IGRlZXBtZXJnZVxufVxuXG5mdW5jdGlvbiBnZXRFbnVtZXJhYmxlT3duUHJvcGVydHlTeW1ib2xzKHRhcmdldCkge1xuXHRyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9sc1xuXHRcdD8gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0YXJnZXQpLmZpbHRlcihmdW5jdGlvbihzeW1ib2wpIHtcblx0XHRcdHJldHVybiBPYmplY3QucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbCh0YXJnZXQsIHN5bWJvbClcblx0XHR9KVxuXHRcdDogW11cbn1cblxuZnVuY3Rpb24gZ2V0S2V5cyh0YXJnZXQpIHtcblx0cmV0dXJuIE9iamVjdC5rZXlzKHRhcmdldCkuY29uY2F0KGdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHModGFyZ2V0KSlcbn1cblxuZnVuY3Rpb24gcHJvcGVydHlJc09uT2JqZWN0KG9iamVjdCwgcHJvcGVydHkpIHtcblx0dHJ5IHtcblx0XHRyZXR1cm4gcHJvcGVydHkgaW4gb2JqZWN0XG5cdH0gY2F0Y2goXykge1xuXHRcdHJldHVybiBmYWxzZVxuXHR9XG59XG5cbi8vIFByb3RlY3RzIGZyb20gcHJvdG90eXBlIHBvaXNvbmluZyBhbmQgdW5leHBlY3RlZCBtZXJnaW5nIHVwIHRoZSBwcm90b3R5cGUgY2hhaW4uXG5mdW5jdGlvbiBwcm9wZXJ0eUlzVW5zYWZlKHRhcmdldCwga2V5KSB7XG5cdHJldHVybiBwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpIC8vIFByb3BlcnRpZXMgYXJlIHNhZmUgdG8gbWVyZ2UgaWYgdGhleSBkb24ndCBleGlzdCBpbiB0aGUgdGFyZ2V0IHlldCxcblx0XHQmJiAhKE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRhcmdldCwga2V5KSAvLyB1bnNhZmUgaWYgdGhleSBleGlzdCB1cCB0aGUgcHJvdG90eXBlIGNoYWluLFxuXHRcdFx0JiYgT2JqZWN0LnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodGFyZ2V0LCBrZXkpKSAvLyBhbmQgYWxzbyB1bnNhZmUgaWYgdGhleSdyZSBub25lbnVtZXJhYmxlLlxufVxuXG5mdW5jdGlvbiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHR2YXIgZGVzdGluYXRpb24gPSB7fTtcblx0aWYgKG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3QodGFyZ2V0KSkge1xuXHRcdGdldEtleXModGFyZ2V0KS5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuXHRcdFx0ZGVzdGluYXRpb25ba2V5XSA9IGNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkKHRhcmdldFtrZXldLCBvcHRpb25zKTtcblx0XHR9KTtcblx0fVxuXHRnZXRLZXlzKHNvdXJjZSkuZm9yRWFjaChmdW5jdGlvbihrZXkpIHtcblx0XHRpZiAocHJvcGVydHlJc1Vuc2FmZSh0YXJnZXQsIGtleSkpIHtcblx0XHRcdHJldHVyblxuXHRcdH1cblxuXHRcdGlmIChwcm9wZXJ0eUlzT25PYmplY3QodGFyZ2V0LCBrZXkpICYmIG9wdGlvbnMuaXNNZXJnZWFibGVPYmplY3Qoc291cmNlW2tleV0pKSB7XG5cdFx0XHRkZXN0aW5hdGlvbltrZXldID0gZ2V0TWVyZ2VGdW5jdGlvbihrZXksIG9wdGlvbnMpKHRhcmdldFtrZXldLCBzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRlc3RpbmF0aW9uW2tleV0gPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZChzb3VyY2Vba2V5XSwgb3B0aW9ucyk7XG5cdFx0fVxuXHR9KTtcblx0cmV0dXJuIGRlc3RpbmF0aW9uXG59XG5cbmZ1bmN0aW9uIGRlZXBtZXJnZSh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucykge1xuXHRvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcblx0b3B0aW9ucy5hcnJheU1lcmdlID0gb3B0aW9ucy5hcnJheU1lcmdlIHx8IGRlZmF1bHRBcnJheU1lcmdlO1xuXHRvcHRpb25zLmlzTWVyZ2VhYmxlT2JqZWN0ID0gb3B0aW9ucy5pc01lcmdlYWJsZU9iamVjdCB8fCBpc01lcmdlYWJsZU9iamVjdDtcblx0Ly8gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgaXMgYWRkZWQgdG8gYG9wdGlvbnNgIHNvIHRoYXQgY3VzdG9tIGFycmF5TWVyZ2UoKVxuXHQvLyBpbXBsZW1lbnRhdGlvbnMgY2FuIHVzZSBpdC4gVGhlIGNhbGxlciBtYXkgbm90IHJlcGxhY2UgaXQuXG5cdG9wdGlvbnMuY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQgPSBjbG9uZVVubGVzc090aGVyd2lzZVNwZWNpZmllZDtcblxuXHR2YXIgc291cmNlSXNBcnJheSA9IEFycmF5LmlzQXJyYXkoc291cmNlKTtcblx0dmFyIHRhcmdldElzQXJyYXkgPSBBcnJheS5pc0FycmF5KHRhcmdldCk7XG5cdHZhciBzb3VyY2VBbmRUYXJnZXRUeXBlc01hdGNoID0gc291cmNlSXNBcnJheSA9PT0gdGFyZ2V0SXNBcnJheTtcblxuXHRpZiAoIXNvdXJjZUFuZFRhcmdldFR5cGVzTWF0Y2gpIHtcblx0XHRyZXR1cm4gY2xvbmVVbmxlc3NPdGhlcndpc2VTcGVjaWZpZWQoc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2UgaWYgKHNvdXJjZUlzQXJyYXkpIHtcblx0XHRyZXR1cm4gb3B0aW9ucy5hcnJheU1lcmdlKHRhcmdldCwgc291cmNlLCBvcHRpb25zKVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBtZXJnZU9iamVjdCh0YXJnZXQsIHNvdXJjZSwgb3B0aW9ucylcblx0fVxufVxuXG5kZWVwbWVyZ2UuYWxsID0gZnVuY3Rpb24gZGVlcG1lcmdlQWxsKGFycmF5LCBvcHRpb25zKSB7XG5cdGlmICghQXJyYXkuaXNBcnJheShhcnJheSkpIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoJ2ZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheScpXG5cdH1cblxuXHRyZXR1cm4gYXJyYXkucmVkdWNlKGZ1bmN0aW9uKHByZXYsIG5leHQpIHtcblx0XHRyZXR1cm4gZGVlcG1lcmdlKHByZXYsIG5leHQsIG9wdGlvbnMpXG5cdH0sIHt9KVxufTtcblxudmFyIGRlZXBtZXJnZV8xID0gZGVlcG1lcmdlO1xuXG5tb2R1bGUuZXhwb3J0cyA9IGRlZXBtZXJnZV8xO1xuIiwiaW1wb3J0IG1lcmdlRGVlcCBmcm9tICdkZWVwbWVyZ2UnO1xuXG50eXBlIERlZXBQYXJ0aWFsPFQ+ID0ge1xuICBbUCBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbUF0+O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGRlbGltaXRlcnM6IHtcbiAgICBkYXNoOiBzdHJpbmc7XG4gICAgZG90OiBzdHJpbmc7XG4gIH07XG4gIGVzY2FwZTogYm9vbGVhbjtcbiAgaGlkZGVuOiBib29sZWFuO1xuICBoaWRkZW5LZXk6IHN0cmluZztcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBlbmQ6IG51bWJlcjtcbiAgICBzdGFydDogbnVtYmVyO1xuICB9O1xuICBvbkZhaWw6ICh2YWx1ZTogc3RyaW5nLCBlcnJvcjogRXJyb3IpID0+IE9uRXJyRmFsbGJhY2s7XG59XG5cbmV4cG9ydCB0eXBlIENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0gRGVlcFBhcnRpYWw8XG4gIEFjdHVhbENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+XG4+O1xuXG5jb25zdCBkZWZhdWx0T3B0aW9uczogQWN0dWFsQ3BmRm9ybWF0dGluZ09wdGlvbnM8c3RyaW5nPiA9IHtcbiAgZGVsaW1pdGVyczoge1xuICAgIGRvdDogJy4nLFxuICAgIGRhc2g6ICctJyxcbiAgfSxcbiAgaGlkZGVuUmFuZ2U6IHtcbiAgICBzdGFydDogMyxcbiAgICBlbmQ6IDEwLFxuICB9LFxuICBvbkZhaWw6ICh2YWx1ZSkgPT4gdmFsdWUsXG4gIGhpZGRlbktleTogJyonLFxuICBoaWRkZW46IGZhbHNlLFxuICBlc2NhcGU6IGZhbHNlLFxufTtcblxuLyoqXG4gKiBNZXJnZSBjdXN0b20gb3B0aW9ucyB0byB0aGUgZGVmYXVsdCBvbmVzLlxuICovXG5mdW5jdGlvbiBtZXJnZU9wdGlvbnM8T25FcnJGYWxsYmFjaz4oXG4gIGN1c3RvbU9wdGlvbnM6IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+ID0ge30sXG4pOiBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPiB7XG4gIGNvbnN0IG9wdGlvbnMgPSBtZXJnZURlZXAoXG4gICAgZGVmYXVsdE9wdGlvbnMsXG4gICAgY3VzdG9tT3B0aW9ucyxcbiAgKSBhcyBBY3R1YWxDcGZGb3JtYXR0aW5nT3B0aW9uczxPbkVyckZhbGxiYWNrPjtcblxuICBpZiAob3B0aW9ucy5oaWRkZW4pIHtcbiAgICBpZiAoXG4gICAgICBpc05hTihvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0KSB8fFxuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2Uuc3RhcnQgPiAxMFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignT3B0aW9uIFwiaGlkZGVuUmFuZ2Uuc3RhcnRcIiBtdXN0IGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMTAuJyk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgaXNOYU4ob3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQpIHx8XG4gICAgICBvcHRpb25zLmhpZGRlblJhbmdlLmVuZCA8IDAgfHxcbiAgICAgIG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kID4gMTBcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ09wdGlvbiBcImhpZGRlblJhbmdlLmVuZFwiIG11c3QgYmUgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMC4nKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA+IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kKSB7XG4gICAgICBjb25zdCBhdXggPSBvcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0O1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5zdGFydCA9IG9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kO1xuICAgICAgb3B0aW9ucy5oaWRkZW5SYW5nZS5lbmQgPSBhdXg7XG4gICAgfVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb25zLm9uRmFpbCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSBvcHRpb24gXCJvbkZhaWxcIiBtdXN0IGJlIGEgY2FsbGJhY2sgZnVuY3Rpb24uJyk7XG4gIH1cblxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZXhwb3J0IGRlZmF1bHQgbWVyZ2VPcHRpb25zO1xuIiwiaW1wb3J0IHsgZXNjYXBlIGFzIGVzY2FwZUhUTUwgfSBmcm9tICdodG1sLWVzY2FwZXInO1xuaW1wb3J0IG51bU9ubHkgZnJvbSAnbnVtLW9ubHknO1xuXG5pbXBvcnQgbWVyZ2VPcHRpb25zIGZyb20gJy4vbWVyZ2Utb3B0aW9ucyc7XG5pbXBvcnQgdHlwZSB7IENwZkZvcm1hdHRpbmdPcHRpb25zIH0gZnJvbSAnLi9tZXJnZS1vcHRpb25zJztcblxuLyoqXG4gKiBGb3JtYXQgYSBnaXZlbiBDUEYgY2hhciBzZXF1ZW5jZS5cbiAqL1xuZnVuY3Rpb24gY3BmRm10PE9uRXJyRmFsbGJhY2sgPSBzdHJpbmc+KFxuICBjcGZTdHJpbmc6IHN0cmluZyxcbiAgb3B0aW9ucz86IENwZkZvcm1hdHRpbmdPcHRpb25zPE9uRXJyRmFsbGJhY2s+LFxuKTogc3RyaW5nIHtcbiAgY29uc3QgQ1BGX0xFTkdUSCA9IDExO1xuICBjb25zdCBjcGZBcnJheSA9IG51bU9ubHkoY3BmU3RyaW5nKS5zcGxpdCgnJyk7XG4gIGNvbnN0IGN1c3RvbU9wdGlvbnMgPSBtZXJnZU9wdGlvbnMob3B0aW9ucyk7XG5cbiAgaWYgKGNwZkFycmF5Lmxlbmd0aCAhPT0gQ1BGX0xFTkdUSCkge1xuICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGBQYXJhbWV0ZXIgXCIke2NwZlN0cmluZ31cIiBkb2VzIG5vdCBjb250YWluICR7Q1BGX0xFTkdUSH0gZGlnaXRzLmApO1xuXG4gICAgcmV0dXJuIGN1c3RvbU9wdGlvbnMub25GYWlsKGNwZlN0cmluZywgZXJyb3IpIGFzIHN0cmluZztcbiAgfVxuXG4gIGlmIChjdXN0b21PcHRpb25zLmhpZGRlbikge1xuICAgIGZvciAobGV0IGkgPSBjdXN0b21PcHRpb25zLmhpZGRlblJhbmdlLnN0YXJ0OyBpIDw9IGN1c3RvbU9wdGlvbnMuaGlkZGVuUmFuZ2UuZW5kOyBpKyspIHtcbiAgICAgIGNwZkFycmF5W2ldID0gY3VzdG9tT3B0aW9ucy5oaWRkZW5LZXk7XG4gICAgfVxuICB9XG5cbiAgY3BmQXJyYXkuc3BsaWNlKDksIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kYXNoKTtcbiAgY3BmQXJyYXkuc3BsaWNlKDYsIDAsIGN1c3RvbU9wdGlvbnMuZGVsaW1pdGVycy5kb3QpO1xuICBjcGZBcnJheS5zcGxpY2UoMywgMCwgY3VzdG9tT3B0aW9ucy5kZWxpbWl0ZXJzLmRvdCk7XG4gIGNvbnN0IGNwZlByZXR0eSA9IGNwZkFycmF5LmpvaW4oJycpO1xuXG4gIGlmIChjdXN0b21PcHRpb25zLmVzY2FwZSkge1xuICAgIHJldHVybiBlc2NhcGVIVE1MKGNwZlByZXR0eSk7XG4gIH1cblxuICByZXR1cm4gY3BmUHJldHR5O1xufVxuXG5leHBvcnQgZGVmYXVsdCBjcGZGbXQ7XG4iXSwibmFtZXMiOlsicmVwbGFjZSIsImNhIiwiZXNjYSIsInBlIiwibSIsImJ1aWxkIiwidGFyZ2V0IiwiU3RyaW5nIiwiaXNNZXJnZWFibGVPYmplY3QiLCJ2YWx1ZSIsImlzTm9uTnVsbE9iamVjdCIsInN0cmluZ1ZhbHVlIiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiJCR0eXBlb2YiLCJSRUFDVF9FTEVNRU5UX1RZUEUiLCJpc1JlYWN0RWxlbWVudCIsImlzU3BlY2lhbCIsIlN5bWJvbCIsImZvciIsImNsb25lVW5sZXNzT3RoZXJ3aXNlU3BlY2lmaWVkIiwib3B0aW9ucyIsImNsb25lIiwiZGVlcG1lcmdlIiwidmFsIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdEFycmF5TWVyZ2UiLCJzb3VyY2UiLCJjb25jYXQiLCJtYXAiLCJlbGVtZW50IiwiZ2V0S2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJzeW1ib2wiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImdldEVudW1lcmFibGVPd25Qcm9wZXJ0eVN5bWJvbHMiLCJwcm9wZXJ0eUlzT25PYmplY3QiLCJvYmplY3QiLCJwcm9wZXJ0eSIsIl8iLCJtZXJnZU9iamVjdCIsImRlc3RpbmF0aW9uIiwiZm9yRWFjaCIsImtleSIsImhhc093blByb3BlcnR5IiwicHJvcGVydHlJc1Vuc2FmZSIsImN1c3RvbU1lcmdlIiwiZ2V0TWVyZ2VGdW5jdGlvbiIsImFycmF5TWVyZ2UiLCJzb3VyY2VJc0FycmF5IiwiYWxsIiwiYXJyYXkiLCJFcnJvciIsInJlZHVjZSIsInByZXYiLCJuZXh0IiwiY2pzIiwiZGVmYXVsdE9wdGlvbnMiLCJkZWxpbWl0ZXJzIiwiZG90IiwiZGFzaCIsImhpZGRlblJhbmdlIiwic3RhcnQiLCJlbmQiLCJvbkZhaWwiLCJoaWRkZW5LZXkiLCJoaWRkZW4iLCJlc2NhcGUiLCJjcGZTdHJpbmciLCJjcGZBcnJheSIsIm51bU9ubHkiLCJzcGxpdCIsImN1c3RvbU9wdGlvbnMiLCJtZXJnZURlZXAiLCJpc05hTiIsIlR5cGVFcnJvciIsImF1eCIsIm1lcmdlT3B0aW9ucyIsImxlbmd0aCIsImVycm9yIiwiaSIsInNwbGljZSIsImVzIiwiY3BmUHJldHR5Iiwiam9pbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O3VPQXNCQSxNQUFNQSxRQUFDQSxHQUFXLEdBSVpDLEVBQUssV0FFTEMsRUFBTyxDQUNYLElBQUssUUFDTCxJQUFLLE9BQ0wsSUFBSyxPQUNMLElBQUssUUFDTCxJQUFLLFVBRURDLEVBQUtDLEdBQUtGLEVBQUtFLG9JQzdCckJDLEVBSkEsU0FBaUJDLEdBQ2YsT0FBT0MsT0FBT0QsR0FBUU4sUUFBUSxNQUFPLEdBQ3ZDLHlDQ0ZBLElBQUlRLEVBQW9CLFNBQTJCQyxHQUNsRCxPQUlELFNBQXlCQSxHQUN4QixRQUFTQSxHQUEwQixpQkFBVkEsQ0FDMUIsQ0FOUUMsQ0FBZ0JELEtBUXhCLFNBQW1CQSxHQUNsQixJQUFJRSxFQUFjQyxPQUFPQyxVQUFVQyxTQUFTQyxLQUFLTixHQUVqRCxNQUF1QixvQkFBaEJFLEdBQ2Esa0JBQWhCQSxHQVFMLFNBQXdCRixHQUN2QixPQUFPQSxFQUFNTyxXQUFhQyxDQUMzQixDQVRLQyxDQUFlVCxFQUNwQixDQWJNVSxDQUFVVixFQUNmLEVBZ0JHUSxFQURpQyxtQkFBWEcsUUFBeUJBLE9BQU9DLElBQ2xCRCxPQUFPQyxJQUFJLGlCQUFtQixNQVV0RSxTQUFTQyxFQUE4QmIsRUFBT2MsR0FDN0MsT0FBMEIsSUFBbEJBLEVBQVFDLE9BQW1CRCxFQUFRZixrQkFBa0JDLEdBQzFEZ0IsR0FOaUJDLEVBTUtqQixFQUxsQmtCLE1BQU1DLFFBQVFGLEdBQU8sR0FBSyxDQUFBLEdBS0FqQixFQUFPYyxHQUNyQ2QsRUFQSixJQUFxQmlCLENBUXJCLENBRUEsU0FBU0csRUFBa0J2QixFQUFRd0IsRUFBUVAsR0FDMUMsT0FBT2pC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